attempt to match Task_OptionMenu
This commit is contained in:
+25
-164
@@ -361,19 +361,21 @@ static bool8 LoadOptionMenuPalette(void)
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
// I could not get this function to match. GOTO statements weren't even compiling correctly.
|
|
||||||
#ifdef NONMATCHING
|
|
||||||
static void Task_OptionMenu(u8 taskId)
|
static void Task_OptionMenu(u8 taskId)
|
||||||
{
|
{
|
||||||
u8 v2, v5;
|
u8 v2, v5;
|
||||||
struct OptionMenu v4;
|
struct OptionMenu *vPtr;
|
||||||
|
struct OptionMenu *v4;
|
||||||
|
|
||||||
switch (sOptionMenuPtr->state3)
|
switch (sOptionMenuPtr->state3)
|
||||||
{
|
{
|
||||||
case 0:
|
case 0:
|
||||||
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
|
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0x10, 0, RGB_BLACK);
|
||||||
OptionMenu_SetVBlankCallback();
|
OptionMenu_SetVBlankCallback();
|
||||||
sOptionMenuPtr->state3++;
|
vPtr = sOptionMenuPtr;
|
||||||
|
v4 = vPtr;
|
||||||
|
goto STATE_PLUS;
|
||||||
|
v2 = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if ((bool32) sub_80BF72C() == TRUE) //cast to bool32 to remove the lsl/lsr 0x18 after func call
|
if ((bool32) sub_80BF72C() == TRUE) //cast to bool32 to remove the lsl/lsr 0x18 after func call
|
||||||
@@ -381,20 +383,27 @@ static void Task_OptionMenu(u8 taskId)
|
|||||||
switch (OptionMenu_ProcessInput())
|
switch (OptionMenu_ProcessInput())
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
sOptionMenuPtr->state3++;
|
vPtr = sOptionMenuPtr;
|
||||||
|
goto STATE_PLUS;
|
||||||
|
v2 = 1;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
LoadBgTiles(1, GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->tiles, 0x120, 0x1AA);
|
||||||
LoadPalette(GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
LoadPalette(GetUserFrameGraphicsInfo(sOptionMenuPtr->option[MENUITEM_FRAMETYPE])->palette, 0x20, 0x20);
|
||||||
BufferOptionMenuString(sOptionMenuPtr->unkE);
|
BufferOptionMenuString(sOptionMenuPtr->unkE);
|
||||||
sOptionMenuPtr->state3++;
|
|
||||||
|
vPtr = sOptionMenuPtr;
|
||||||
|
goto GET_STRING;
|
||||||
|
v2 = 1;
|
||||||
break;
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
sub_8088DE0(sOptionMenuPtr->unkE);
|
sub_8088DE0(sOptionMenuPtr->unkE);
|
||||||
break;
|
break;
|
||||||
case 4:
|
case 4:
|
||||||
BufferOptionMenuString(sOptionMenuPtr->unkE);
|
vPtr = sOptionMenuPtr;
|
||||||
sOptionMenuPtr->state3++;
|
|
||||||
|
GET_STRING:
|
||||||
|
BufferOptionMenuString(vPtr->unkE);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
return;
|
||||||
@@ -404,9 +413,14 @@ static void Task_OptionMenu(u8 taskId)
|
|||||||
sOptionMenuPtr->state3++;
|
sOptionMenuPtr->state3++;
|
||||||
case 1:
|
case 1:
|
||||||
case 4:
|
case 4:
|
||||||
if (gPaletteFade.active)
|
if (!(gPaletteFade.active))
|
||||||
return;
|
{
|
||||||
sOptionMenuPtr->state3++;
|
STATE_PLUS:
|
||||||
|
v2 = vPtr->state3;
|
||||||
|
v2++;
|
||||||
|
vPtr->state3 = v2;
|
||||||
|
}
|
||||||
|
break;
|
||||||
case 5:
|
case 5:
|
||||||
CloseAndSaveOptionMenu(taskId);
|
CloseAndSaveOptionMenu(taskId);
|
||||||
break;
|
break;
|
||||||
@@ -414,159 +428,6 @@ static void Task_OptionMenu(u8 taskId)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
NAKED
|
|
||||||
static void Task_OptionMenu(u8 taskId)
|
|
||||||
{
|
|
||||||
asm_unified("\tpush {r4,lr}\n"
|
|
||||||
"\tsub sp, 0x4\n"
|
|
||||||
"\tlsls r0, 24\n"
|
|
||||||
"\tlsrs r2, r0, 24\n"
|
|
||||||
"\tldr r1, _080887A0 @ =sOptionMenuPtr\n"
|
|
||||||
"\tldr r0, [r1]\n"
|
|
||||||
"\tldrb r0, [r0, 0x10]\n"
|
|
||||||
"\tadds r3, r1, 0\n"
|
|
||||||
"\tcmp r0, 0x5\n"
|
|
||||||
"\tbls _08088796\n"
|
|
||||||
"\tb _080888B6\n"
|
|
||||||
"_08088796:\n"
|
|
||||||
"\tlsls r0, 2\n"
|
|
||||||
"\tldr r1, _080887A4 @ =_080887A8\n"
|
|
||||||
"\tadds r0, r1\n"
|
|
||||||
"\tldr r0, [r0]\n"
|
|
||||||
"\tmov pc, r0\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_080887A0: .4byte sOptionMenuPtr\n"
|
|
||||||
"_080887A4: .4byte _080887A8\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_080887A8:\n"
|
|
||||||
"\t.4byte _080887C0\n"
|
|
||||||
"\t.4byte _08088894\n"
|
|
||||||
"\t.4byte _080887E0\n"
|
|
||||||
"\t.4byte _08088878\n"
|
|
||||||
"\t.4byte _08088894\n"
|
|
||||||
"\t.4byte _080888B0\n"
|
|
||||||
"_080887C0:\n"
|
|
||||||
"\tmovs r0, 0x1\n"
|
|
||||||
"\tnegs r0, r0\n"
|
|
||||||
"\tmovs r1, 0\n"
|
|
||||||
"\tstr r1, [sp]\n"
|
|
||||||
"\tmovs r2, 0x10\n"
|
|
||||||
"\tmovs r3, 0\n"
|
|
||||||
"\tbl BeginNormalPaletteFade\n"
|
|
||||||
"\tbl OptionMenu_SetVBlankCallback\n"
|
|
||||||
"\tldr r0, _080887DC @ =sOptionMenuPtr\n"
|
|
||||||
"\tldr r1, [r0]\n"
|
|
||||||
"\tb _080888A2\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_080887DC: .4byte sOptionMenuPtr\n"
|
|
||||||
"_080887E0:\n"
|
|
||||||
"\tbl sub_80BF72C\n"
|
|
||||||
"\tcmp r0, 0x1\n"
|
|
||||||
"\tbeq _080888B6\n"
|
|
||||||
"\tbl OptionMenu_ProcessInput\n"
|
|
||||||
"\tlsls r0, 24\n"
|
|
||||||
"\tlsrs r0, 24\n"
|
|
||||||
"\tcmp r0, 0x4\n"
|
|
||||||
"\tbhi _080888B6\n"
|
|
||||||
"\tlsls r0, 2\n"
|
|
||||||
"\tldr r1, _08088800 @ =_08088804\n"
|
|
||||||
"\tadds r0, r1\n"
|
|
||||||
"\tldr r0, [r0]\n"
|
|
||||||
"\tmov pc, r0\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_08088800: .4byte _08088804\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_08088804:\n"
|
|
||||||
"\t.4byte _080888B6\n"
|
|
||||||
"\t.4byte _08088818\n"
|
|
||||||
"\t.4byte _08088824\n"
|
|
||||||
"\t.4byte _08088858\n"
|
|
||||||
"\t.4byte _08088868\n"
|
|
||||||
"_08088818:\n"
|
|
||||||
"\tldr r0, _08088820 @ =sOptionMenuPtr\n"
|
|
||||||
"\tldr r1, [r0]\n"
|
|
||||||
"\tb _080888A2\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_08088820: .4byte sOptionMenuPtr\n"
|
|
||||||
"_08088824:\n"
|
|
||||||
"\tldr r4, _08088854 @ =sOptionMenuPtr\n"
|
|
||||||
"\tldr r0, [r4]\n"
|
|
||||||
"\tldrb r0, [r0, 0xA]\n"
|
|
||||||
"\tbl GetUserFrameGraphicsInfo\n"
|
|
||||||
"\tldr r1, [r0]\n"
|
|
||||||
"\tmovs r2, 0x90\n"
|
|
||||||
"\tlsls r2, 1\n"
|
|
||||||
"\tmovs r3, 0xD5\n"
|
|
||||||
"\tlsls r3, 1\n"
|
|
||||||
"\tmovs r0, 0x1\n"
|
|
||||||
"\tbl LoadBgTiles\n"
|
|
||||||
"\tldr r0, [r4]\n"
|
|
||||||
"\tldrb r0, [r0, 0xA]\n"
|
|
||||||
"\tbl GetUserFrameGraphicsInfo\n"
|
|
||||||
"\tldr r0, [r0, 0x4]\n"
|
|
||||||
"\tmovs r1, 0x20\n"
|
|
||||||
"\tmovs r2, 0x20\n"
|
|
||||||
"\tbl LoadPalette\n"
|
|
||||||
"\tldr r0, [r4]\n"
|
|
||||||
"\tb _0808886C\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_08088854: .4byte sOptionMenuPtr\n"
|
|
||||||
"_08088858:\n"
|
|
||||||
"\tldr r0, _08088864 @ =sOptionMenuPtr\n"
|
|
||||||
"\tldr r0, [r0]\n"
|
|
||||||
"\tldrh r0, [r0, 0xE]\n"
|
|
||||||
"\tbl sub_8088DE0\n"
|
|
||||||
"\tb _080888B6\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_08088864: .4byte sOptionMenuPtr\n"
|
|
||||||
"_08088868:\n"
|
|
||||||
"\tldr r0, _08088874 @ =sOptionMenuPtr\n"
|
|
||||||
"\tldr r0, [r0]\n"
|
|
||||||
"_0808886C:\n"
|
|
||||||
"\tldrb r0, [r0, 0xE]\n"
|
|
||||||
"\tbl BufferOptionMenuString\n"
|
|
||||||
"\tb _080888B6\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_08088874: .4byte sOptionMenuPtr\n"
|
|
||||||
"_08088878:\n"
|
|
||||||
"\tmovs r0, 0x1\n"
|
|
||||||
"\tnegs r0, r0\n"
|
|
||||||
"\tmovs r1, 0\n"
|
|
||||||
"\tstr r1, [sp]\n"
|
|
||||||
"\tmovs r2, 0\n"
|
|
||||||
"\tmovs r3, 0x10\n"
|
|
||||||
"\tbl BeginNormalPaletteFade\n"
|
|
||||||
"\tldr r0, _08088890 @ =sOptionMenuPtr\n"
|
|
||||||
"\tldr r1, [r0]\n"
|
|
||||||
"\tb _080888A2\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_08088890: .4byte sOptionMenuPtr\n"
|
|
||||||
"_08088894:\n"
|
|
||||||
"\tldr r0, _080888AC @ =gPaletteFade\n"
|
|
||||||
"\tldrb r1, [r0, 0x7]\n"
|
|
||||||
"\tmovs r0, 0x80\n"
|
|
||||||
"\tands r0, r1\n"
|
|
||||||
"\tcmp r0, 0\n"
|
|
||||||
"\tbne _080888B6\n"
|
|
||||||
"\tldr r1, [r3]\n"
|
|
||||||
"_080888A2:\n"
|
|
||||||
"\tldrb r0, [r1, 0x10]\n"
|
|
||||||
"\tadds r0, 0x1\n"
|
|
||||||
"\tstrb r0, [r1, 0x10]\n"
|
|
||||||
"\tb _080888B6\n"
|
|
||||||
"\t.align 2, 0\n"
|
|
||||||
"_080888AC: .4byte gPaletteFade\n"
|
|
||||||
"_080888B0:\n"
|
|
||||||
"\tadds r0, r2, 0\n"
|
|
||||||
"\tbl CloseAndSaveOptionMenu\n"
|
|
||||||
"_080888B6:\n"
|
|
||||||
"\tadd sp, 0x4\n"
|
|
||||||
"\tpop {r4}\n"
|
|
||||||
"\tpop {r0}\n"
|
|
||||||
"\tbx r0\n");
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
static u8 OptionMenu_ProcessInput(void)
|
static u8 OptionMenu_ProcessInput(void)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user