summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/field/mauville_man.c52
-rw-r--r--src/field/region_map.c88
-rw-r--r--src/scene/berry_blender.c8
-rw-r--r--src/scene/cable_car.c276
4 files changed, 158 insertions, 266 deletions
diff --git a/src/field/mauville_man.c b/src/field/mauville_man.c
index ec2f3cb69..a68d5071d 100644
--- a/src/field/mauville_man.c
+++ b/src/field/mauville_man.c
@@ -253,32 +253,32 @@ void SetupMauvilleOldMan(void)
#if DEBUG
void debug_sub_810B32C(u8 a)
{
- u8 i;
- u8 savedArr[8];
-
- switch (a)
- {
- case 0:
- SetupBard();
- break;
- case 1:
- for (i = 0; i < 8; i++)
- savedArr[i] = gSaveBlock1.unk2D8C[i];
- SetupHipster();
- for (i = 0; i < 8; i++)
- gSaveBlock1.unk2D8C[i] = savedArr[i];
- break;
- case 2:
- SetupTrader();
- break;
- case 3:
- SetupStoryteller();
- break;
- case 4:
- SetupGiddy();
- break;
- }
- sub_80F83D0();
+ u8 i;
+ u8 savedArr[8];
+
+ switch (a)
+ {
+ case 0:
+ SetupBard();
+ break;
+ case 1:
+ for (i = 0; i < 8; i++)
+ savedArr[i] = gSaveBlock1.unk2D8C[i];
+ SetupHipster();
+ for (i = 0; i < 8; i++)
+ gSaveBlock1.unk2D8C[i] = savedArr[i];
+ break;
+ case 2:
+ SetupTrader();
+ break;
+ case 3:
+ SetupStoryteller();
+ break;
+ case 4:
+ SetupGiddy();
+ break;
+ }
+ sub_80F83D0();
}
#endif
diff --git a/src/field/region_map.c b/src/field/region_map.c
index bd625402b..6d50701d6 100644
--- a/src/field/region_map.c
+++ b/src/field/region_map.c
@@ -1411,22 +1411,26 @@ static const u8 sUnknown_083E7920[][3] =
{0, 49, 0},
};
-struct UnknownStruct4
+static const u8 *const sEverGrandeCityAreaNames[] =
+{
+ OtherText_PokeLeague,
+ OtherText_PokeCenter,
+};
+
+struct MultiPartMapSection
{
const u8 *const *partNames;
u16 mapSectionId;
u16 requiredFlag;
};
-static const u8 *const sEverGrandeCityAreaNames[] = {OtherText_PokeLeague, OtherText_PokeCenter};
-
-static const struct UnknownStruct4 sMultiPartMapSections[1] =
+// Map sections that are divided into multiple parts. Ever Grande City is the only one.
+static const struct MultiPartMapSection sMultiPartMapSections[1] =
{
{sEverGrandeCityAreaNames, MAPSEC_EVER_GRANDE_CITY, FLAG_SYS_POKEMON_LEAGUE_FLY},
};
-// XXX: what is this?
-static u8 *const ewram_ = gSharedMem;
+static struct UnknownStruct3 *const sFlyDataPtr = (struct UnknownStruct3 *)gSharedMem;
static const struct SpritePalette sFlyTargetIconSpritePalette = {sFlyTargetIcons_Pal, 2};
@@ -1547,10 +1551,10 @@ void CB2_InitFlyRegionMap(void)
Menu_EraseScreen();
break;
case 3:
- InitRegionMap(&ewram0_3.regionMap, 0);
+ InitRegionMap(&sFlyDataPtr->regionMap, 0);
CreateRegionMapCursor(0, 0);
CreateRegionMapPlayerIcon(1, 1);
- ewram0_3.unk6 = ewram0_3.regionMap.mapSectionId;
+ sFlyDataPtr->unk6 = sFlyDataPtr->regionMap.mapSectionId;
StringFill(ewramBlankMapName, CHAR_SPACE, 12);
PrintFlyTargetName();
break;
@@ -1593,33 +1597,33 @@ static void VBlankCB_FlyRegionMap(void)
void CB2_FlyRegionMap(void)
{
- ewram0_3.unk0();
+ sFlyDataPtr->unk0();
AnimateSprites();
BuildOamBuffer();
}
void sub_80FC244(void (*func)(void))
{
- ewram0_3.unk0 = func;
- ewram0_3.unk4 = 0;
+ sFlyDataPtr->unk0 = func;
+ sFlyDataPtr->unk4 = 0;
}
static void PrintFlyTargetName(void)
{
- if (ewram0_3.regionMap.unk16 == 2 || ewram0_3.regionMap.unk16 == 4)
+ if (sFlyDataPtr->regionMap.unk16 == 2 || sFlyDataPtr->regionMap.unk16 == 4)
{
bool8 drawFrameDisabled = FALSE;
u16 i;
for (i = 0; i < ARRAY_COUNT(sMultiPartMapSections); i++)
{
- if (ewram0_3.regionMap.mapSectionId == sMultiPartMapSections[i].mapSectionId)
+ if (sFlyDataPtr->regionMap.mapSectionId == sMultiPartMapSections[i].mapSectionId)
{
if (FlagGet(sMultiPartMapSections[i].requiredFlag))
{
Menu_DrawStdWindowFrame(16, 14, 29, 19);
- Menu_PrintText(ewram0_3.regionMap.mapSectionName, 17, 15);
- MenuPrint_RightAligned(sMultiPartMapSections[i].partNames[ewram0_3.regionMap.everGrandeCityArea], 29, 17);
+ Menu_PrintText(sFlyDataPtr->regionMap.mapSectionName, 17, 15);
+ MenuPrint_RightAligned(sMultiPartMapSections[i].partNames[sFlyDataPtr->regionMap.everGrandeCityArea], 29, 17);
drawFrameDisabled = TRUE;
}
break;
@@ -1629,7 +1633,7 @@ static void PrintFlyTargetName(void)
if (!drawFrameDisabled)
{
Menu_DrawStdWindowFrame(16, 16, 29, 19);
- Menu_PrintText(ewram0_3.regionMap.mapSectionName, 17, 17);
+ Menu_PrintText(sFlyDataPtr->regionMap.mapSectionName, 17, 17);
Menu_EraseWindowRect(16, 14, 29, 15);
}
}
@@ -1730,7 +1734,7 @@ static void CreateSpecialAreaFlyTargetIcons(void)
static void SpriteCB_FlyTargetIcons(struct Sprite *sprite)
{
// Blink if our mapSectionId is the one selected on the map
- if (ewram0_3.regionMap.mapSectionId == sprite->data[0])
+ if (sFlyDataPtr->regionMap.mapSectionId == sprite->data[0])
{
// Toggle visibility every 16 frames
sprite->data[1]++;
@@ -1749,11 +1753,11 @@ static void SpriteCB_FlyTargetIcons(struct Sprite *sprite)
static void sub_80FC5B4(void)
{
- switch (ewram0_3.unk4)
+ switch (sFlyDataPtr->unk4)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
break;
case 1:
if (UpdatePaletteFade() != 0)
@@ -1765,7 +1769,7 @@ static void sub_80FC5B4(void)
static void sub_80FC600(void)
{
- if (ewram0_3.unk4 == 0)
+ if (sFlyDataPtr->unk4 == 0)
{
switch (sub_80FAB60())
{
@@ -1777,7 +1781,7 @@ static void sub_80FC600(void)
PrintFlyTargetName();
break;
case INPUT_EVENT_A_BUTTON:
- if (ewram0_3.regionMap.unk16 == 2 || ewram0_3.regionMap.unk16 == 4)
+ if (sFlyDataPtr->regionMap.unk16 == 2 || sFlyDataPtr->regionMap.unk16 == 4)
{
m4aSongNumStart(SE_SELECT);
ewramA6E = 1;
@@ -1795,11 +1799,11 @@ static void sub_80FC600(void)
void sub_80FC69C(void)
{
- switch (ewram0_3.unk4)
+ switch (sFlyDataPtr->unk4)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
break;
case 1:
if (UpdatePaletteFade() != 0)
@@ -1807,7 +1811,7 @@ void sub_80FC69C(void)
FreeRegionMapIconResources();
if (ewramA6E != 0)
{
- switch (ewram0_3.regionMap.mapSectionId)
+ switch (sFlyDataPtr->regionMap.mapSectionId)
{
case MAPSEC_SOUTHERN_ISLAND:
sub_8053538(22);
@@ -1819,13 +1823,13 @@ void sub_80FC69C(void)
sub_8053538((gSaveBlock2.playerGender == MALE) ? 12 : 13);
break;
case MAPSEC_EVER_GRANDE_CITY:
- sub_8053538((FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && ewram0_3.regionMap.everGrandeCityArea == 0) ? 20 : 11);
+ sub_8053538((FlagGet(FLAG_SYS_POKEMON_LEAGUE_FLY) && sFlyDataPtr->regionMap.everGrandeCityArea == 0) ? 20 : 11);
break;
default:
- if (sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][2] != 0)
- sub_8053538(sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][2]);
+ if (sUnknown_083E7920[sFlyDataPtr->regionMap.mapSectionId][2] != 0)
+ sub_8053538(sUnknown_083E7920[sFlyDataPtr->regionMap.mapSectionId][2]);
else
- warp1_set_2(sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][0], sUnknown_083E7920[ewram0_3.regionMap.mapSectionId][1], -1);
+ warp1_set_2(sUnknown_083E7920[sFlyDataPtr->regionMap.mapSectionId][0], sUnknown_083E7920[sFlyDataPtr->regionMap.mapSectionId][1], -1);
break;
}
sub_80865BC();
@@ -1848,17 +1852,17 @@ void debug_sub_8110CCC(void)
for (i = 0; i < ARRAY_COUNT(sMultiPartMapSections); i++)
{
- if (ewram0_3.regionMap.mapSectionId == sMultiPartMapSections[i].mapSectionId)
+ if (sFlyDataPtr->regionMap.mapSectionId == sMultiPartMapSections[i].mapSectionId)
{
if (FlagGet(sMultiPartMapSections[i].requiredFlag))
{
- indent = 12 - StringLength(sMultiPartMapSections[i].partNames[ewram0_3.regionMap.everGrandeCityArea]);
+ indent = 12 - StringLength(sMultiPartMapSections[i].partNames[sFlyDataPtr->regionMap.everGrandeCityArea]);
if (indent < 0)
indent = 0;
r7 = TRUE;
Menu_DrawStdWindowFrame(16, 14, 29, 19);
- Menu_PrintText(ewram0_3.regionMap.mapSectionName, 17, 15);
- Menu_PrintText(sMultiPartMapSections[i].partNames[ewram0_3.regionMap.everGrandeCityArea], 17 + indent, 17);
+ Menu_PrintText(sFlyDataPtr->regionMap.mapSectionName, 17, 15);
+ Menu_PrintText(sMultiPartMapSections[i].partNames[sFlyDataPtr->regionMap.everGrandeCityArea], 17 + indent, 17);
}
break;
}
@@ -1866,22 +1870,22 @@ void debug_sub_8110CCC(void)
if (!r7)
{
Menu_DrawStdWindowFrame(16, 16, 29, 19);
- Menu_PrintText(ewram0_3.regionMap.mapSectionName, 17, 17);
+ Menu_PrintText(sFlyDataPtr->regionMap.mapSectionName, 17, 17);
Menu_EraseWindowRect(16, 14, 29, 15);
}
}
void debug_sub_8110D84(void)
{
- switch (ewram0_3.unk4)
+ switch (sFlyDataPtr->unk4)
{
case 0:
BeginNormalPaletteFade(0xFFFFFFFF, 0, 16, 0, 0);
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
break;
case 1:
if (!UpdatePaletteFade())
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
break;
case 2:
switch (sub_80FAB60())
@@ -1892,7 +1896,7 @@ void debug_sub_8110D84(void)
debug_sub_8110CCC();
break;
case 4:
- if (ewram0_3.regionMap.unk16 != 0)
+ if (sFlyDataPtr->regionMap.unk16 != 0)
{
m4aSongNumStart(SE_SELECT);
gSharedMem[0xA6E] = 1; // TODO: what is this?
@@ -1902,7 +1906,7 @@ void debug_sub_8110D84(void)
case 5:
m4aSongNumStart(SE_SELECT);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
break;
}
break;
@@ -1919,14 +1923,14 @@ void debug_sub_8110D84(void)
{
sub_80FBCA0();
sub_80FAEC4();
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
}
break;
case 5:
if (sub_80FAFC0() == 0)
{
CreateRegionMapCursor(0, 0);
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
}
break;
case 6:
@@ -1938,14 +1942,14 @@ void debug_sub_8110D84(void)
{
sub_80FBCA0();
sub_80FAEC4();
- ewram0_3.unk4++;
+ sFlyDataPtr->unk4++;
}
break;
case 7:
if (sub_80FAFC0() == 0)
{
CreateRegionMapCursor(0, 0);
- ewram0_3.unk4 = 3;
+ sFlyDataPtr->unk4 = 3;
}
break;
}
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