diff options
Diffstat (limited to 'src/scene')
-rw-r--r-- | src/scene/berry_blender.c | 8 | ||||
-rw-r--r-- | src/scene/cable_car.c | 276 |
2 files changed, 86 insertions, 198 deletions
diff --git a/src/scene/berry_blender.c b/src/scene/berry_blender.c index ef9dd5ab7..bf634a49f 100644 --- a/src/scene/berry_blender.c +++ b/src/scene/berry_blender.c @@ -277,8 +277,8 @@ bool8 Blender_PrintBlendingResults(void); static void sub_80510E8(void); static void sub_8050E30(void); static void sub_805197C(u16 a0, u16 a1); -/*static*/ void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst); -/*static*/ void sub_8052BD0(u8 taskID); +static void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst); +static void sub_8052BD0(u8 taskID); static void sub_8052AF8(void); static void sub_804F8C8(u8 taskID); static void sub_804F9F4(u8 taskID); @@ -3122,7 +3122,7 @@ bool8 Blender_PrintBlendingResults(void) return FALSE; } -/*static*/ void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst) +static void Blender_PrintMadePokeblockString(struct Pokeblock* pokeblock, u8* dst) { u8 text[12]; u8 flavourLvl, feel; @@ -3545,7 +3545,7 @@ void ShowBerryBlenderRecordWindow(void) } } -/*static*/ void sub_8052BD0(u8 taskID) +static void sub_8052BD0(u8 taskID) { if (gTasks[taskID].data[0] == 0) { diff --git a/src/scene/cable_car.c b/src/scene/cable_car.c index 60efee67d..65fd37fb2 100644 --- a/src/scene/cable_car.c +++ b/src/scene/cable_car.c @@ -21,9 +21,12 @@ #include "constants/map_objects.h" #include "constants/weather.h" +extern u8 (*gMenuCallback)(void); + // Static type declarations -struct CableCarEwramStruct1 { +struct CableCarEwramStruct1 +{ u8 unk_0000; u8 unk_0001; u8 unk_0002; @@ -55,7 +58,8 @@ struct CableCarEwramStruct1 { u16 unk_08fc[0x20][0x20]; }; // size 0x10FC -struct CableCarEwramStruct2 { +struct CableCarEwramStruct2 +{ /* 0x000 */ u16 mtChimneyTilemap[0xb4]; /* 0x168 */ u16 treeTilemap[0x1e0]; /* 0x528 */ u16 mountainTilemap[0x258]; @@ -97,8 +101,8 @@ static void sub_81248AC(u8); #if DEBUG -u8 debug_sub_8138D74(void); -u8 debug_sub_8138D8C(void); +void debug_sub_8138D74(void); +void debug_sub_8138D8C(void); u8 debug_sub_8138C14(void); u8 debug_sub_8138C34(void); u8 debug_sub_810CD9C(void); @@ -111,8 +115,8 @@ const u8 Str_842DBFC[] = _("View a MAIL"); const struct MenuAction gUnkDebug4Menu[] = { - {Str_842DBD0, debug_sub_8138D74}, - {Str_842DBDC, debug_sub_8138D8C}, + {Str_842DBD0, (u8 (*)(void))debug_sub_8138D74}, // why do these two functions have a different prototype? + {Str_842DBDC, (u8 (*)(void))debug_sub_8138D8C}, {Str_842DBE8, debug_sub_8138C14}, {Str_842DBF2, debug_sub_8138C34}, {Str_842DBFC, debug_sub_810CD9C}, @@ -170,184 +174,90 @@ static const struct OamData gOamData_8401D38 = { .priority = 2 }; -static const struct SpriteTemplate gSpriteTemplate_8401D40[] = { +static const struct SpriteTemplate gSpriteTemplate_8401D40[] = +{ { - 1, - 1, - &gOamData_8401D28, - gDummySpriteAnimTable, - NULL, - gDummySpriteAffineAnimTable, - sub_8123CB8 - }, { - 2, - 1, - &gOamData_8401D30, - gDummySpriteAnimTable, - NULL, - gDummySpriteAffineAnimTable, - sub_8123CB8 - }, { - 3, - 1, - &gOamData_8401D38, - gDummySpriteAnimTable, - NULL, - gDummySpriteAffineAnimTable, - nullsub_76 + .tileTag = 1, + .paletteTag = 1, + .oam = &gOamData_8401D28, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8123CB8, + }, + { + .tileTag = 2, + .paletteTag = 1, + .oam = &gOamData_8401D30, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = sub_8123CB8, + }, + { + .tileTag = 3, + .paletteTag = 1, + .oam = &gOamData_8401D38, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = nullsub_76, } }; -// .text - #if DEBUG -__attribute__((naked)) +extern u8 unk_203955C; + +extern const u8 MauvilleCity_GameCorner_EventScript_1C407E[]; +extern const u8 MauvilleCity_GameCorner_EventScript_1C40AC[]; + u8 debug_sub_8138C14(void) { - asm("\n\ - push {lr}\n\ - ldr r0, ._1 @ unk_203955C\n\ - mov r1, #0x1\n\ - strb r1, [r0]\n\ - ldr r0, ._1 + 4 @ MauvilleCity_GameCorner_EventScript_1C407E\n\ - bl ScriptContext1_SetupScript\n\ - bl CloseMenu\n\ - mov r0, #0x1\n\ - pop {r1}\n\ - bx r1\n\ -._2:\n\ - .align 2, 0\n\ -._1:\n\ - .word unk_203955C\n\ - .word MauvilleCity_GameCorner_EventScript_1C407E"); + unk_203955C = 1; + ScriptContext1_SetupScript(MauvilleCity_GameCorner_EventScript_1C407E); + CloseMenu(); + return 1; } -__attribute__((naked)) u8 debug_sub_8138C34(void) { - asm("\n\ - push {lr}\n\ - ldr r0, ._3 @ unk_203955C\n\ - mov r1, #0x1\n\ - strb r1, [r0]\n\ - ldr r0, ._3 + 4 @ MauvilleCity_GameCorner_EventScript_1C40AC\n\ - bl ScriptContext1_SetupScript\n\ - bl CloseMenu\n\ - mov r0, #0x1\n\ - pop {r1}\n\ - bx r1\n\ -._4:\n\ - .align 2, 0\n\ -._3:\n\ - .word unk_203955C\n\ - .word MauvilleCity_GameCorner_EventScript_1C40AC"); + unk_203955C = 1; + ScriptContext1_SetupScript(MauvilleCity_GameCorner_EventScript_1C40AC); + CloseMenu(); + return 1; } -__attribute__((naked)) u8 debug_sub_8138C54(void) { - asm("\n\ - push {r4, lr}\n\ - ldr r4, ._10 @ gMain\n\ - ldrh r0, [r4, #0x2e]\n\ - cmp r0, #0x40\n\ - bne ._5 @cond_branch\n\ - mov r0, #0x1\n\ - neg r0, r0\n\ - bl Menu_MoveCursor\n\ -._5:\n\ - ldrh r0, [r4, #0x2e]\n\ - cmp r0, #0x80\n\ - bne ._6 @cond_branch\n\ - mov r0, #0x1\n\ - bl Menu_MoveCursor\n\ -._6:\n\ - ldrh r1, [r4, #0x2e]\n\ - cmp r1, #0x1\n\ - beq ._7 @cond_branch\n\ - ldr r0, ._10 + 4 @ 0x101\n\ - cmp r1, r0\n\ - bne ._8 @cond_branch\n\ - ldr r1, ._10 + 8 @ gSpecialVar_0x8004\n\ - mov r0, #0x1\n\ - strh r0, [r1]\n\ -._7:\n\ - ldr r4, ._10 + 12 @ gUnkDebug4Menu\n\ - bl Menu_GetCursorPos\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x15\n\ - add r4, r4, #0x4\n\ - add r0, r0, r4\n\ - ldr r0, [r0]\n\ - bl _call_via_r0\n\ - lsl r0, r0, #0x18\n\ - lsr r0, r0, #0x18\n\ - b ._13\n\ -._11:\n\ - .align 2, 0\n\ -._10:\n\ - .word gMain\n\ - .word 0x101\n\ - .word gSpecialVar_0x8004\n\ - .word gUnkDebug4Menu\n\ -._8:\n\ - cmp r1, #0x2\n\ - beq ._12 @cond_branch\n\ - mov r0, #0x0\n\ - b ._13\n\ -._12:\n\ - bl CloseMenu\n\ - mov r0, #0x1\n\ -._13:\n\ - pop {r4}\n\ - pop {r1}\n\ - bx r1"); + if (gMain.newKeys == DPAD_UP) + Menu_MoveCursor(-1); + if (gMain.newKeys == DPAD_DOWN) + Menu_MoveCursor(1); + if (gMain.newKeys == A_BUTTON) + return gUnkDebug4Menu[Menu_GetCursorPos()].func(); + if (gMain.newKeys == (R_BUTTON | A_BUTTON)) + { + gSpecialVar_0x8004 = 1; + return gUnkDebug4Menu[Menu_GetCursorPos()].func(); + } + if (gMain.newKeys == B_BUTTON) + { + CloseMenu(); + return 1; + } + return 0; } -__attribute__((naked)) u8 debug_sub_8138CC4(void) { - asm("\n\ - push {lr}\n\ - add sp, sp, #0xfffffff8\n\ - ldr r1, ._14 @ gSpecialVar_0x8004\n\ - mov r0, #0x0\n\ - strh r0, [r1]\n\ - bl Menu_EraseScreen\n\ - mov r0, #0x13\n\ - mov r1, #0x0\n\ - mov r2, #0x1d\n\ - mov r3, #0xc\n\ - bl Menu_DrawStdWindowFrame\n\ - ldr r3, ._14 + 4 @ gUnkDebug4Menu\n\ - mov r0, #0x14\n\ - mov r1, #0x1\n\ - mov r2, #0x5\n\ - bl Menu_PrintItems\n\ - mov r0, #0x0\n\ - str r0, [sp]\n\ - mov r0, #0x8\n\ - str r0, [sp, #0x4]\n\ - mov r0, #0x0\n\ - mov r1, #0x14\n\ - mov r2, #0x1\n\ - mov r3, #0x5\n\ - bl InitMenu\n\ - ldr r1, ._14 + 8 @ gMenuCallback\n\ - ldr r0, ._14 + 12 @ debug_sub_8138C54\n\ - str r0, [r1]\n\ - mov r0, #0x0\n\ - add sp, sp, #0x8\n\ - pop {r1}\n\ - bx r1\n\ -._15:\n\ - .align 2, 0\n\ -._14:\n\ - .word gSpecialVar_0x8004\n\ - .word gUnkDebug4Menu\n\ - .word gMenuCallback\n\ - .word debug_sub_8138C54+1"); + gSpecialVar_0x8004 = 0; + Menu_EraseScreen(); + Menu_DrawStdWindowFrame(19, 0, 29, 12); + Menu_PrintItems(20, 1, 5, gUnkDebug4Menu); + InitMenu(0, 20, 1, 5, 0, 8); + gMenuCallback = debug_sub_8138C54; + return 0; } #endif @@ -370,40 +280,18 @@ void CableCar(void) #if DEBUG -__attribute__((naked)) -u8 debug_sub_8138D74(void) +void debug_sub_8138D74(void) { - asm("\n\ - push {lr}\n\ - ldr r1, ._21 @ gSpecialVar_0x8004\n\ - mov r0, #0x0\n\ - strh r0, [r1]\n\ - bl CloseMenu\n\ - bl CableCar\n\ - pop {r0}\n\ - bx r0\n\ -._22:\n\ - .align 2, 0\n\ -._21:\n\ - .word gSpecialVar_0x8004"); + gSpecialVar_0x8004 = 0; + CloseMenu(); + CableCar(); } -__attribute__((naked)) -u8 debug_sub_8138D8C(void) +void debug_sub_8138D8C(void) { - asm("\n\ - push {lr}\n\ - ldr r1, ._23 @ gSpecialVar_0x8004\n\ - mov r0, #0x1\n\ - strh r0, [r1]\n\ - bl CloseMenu\n\ - bl CableCar\n\ - pop {r0}\n\ - bx r0\n\ -._24:\n\ - .align 2, 0\n\ -._23:\n\ - .word gSpecialVar_0x8004"); + gSpecialVar_0x8004 = 1; + CloseMenu(); + CableCar(); } #endif |