From 5914c8522c17bedbd4f7cd87fdcf64ae9db5f860 Mon Sep 17 00:00:00 2001 From: DizzyEggg Date: Mon, 2 Jun 2025 11:34:14 +0200 Subject: [PATCH] main loops some documentation --- include/world_map.h | 4 +++- src/main_loops.c | 48 ++++++++++++++++++++++----------------------- src/world_map.c | 4 ++-- 3 files changed, 29 insertions(+), 27 deletions(-) diff --git a/include/world_map.h b/include/world_map.h index 30dbda41f..a8c44c7da 100644 --- a/include/world_map.h +++ b/include/world_map.h @@ -33,13 +33,15 @@ struct WorldMap u8 unk5E98[1500]; }; +#define WORLD_MAP_UNK_6D_COUNT 63 + struct WorldMapInfo { DungeonLocation startLocation; DungeonSetupSubstruct unk4; PokemonStruct1 mon; u8 unk6C; - u8 unk6D[63]; + u8 unk6D[WORLD_MAP_UNK_6D_COUNT]; }; struct WorldMapSetupStruct diff --git a/src/main_loops.c b/src/main_loops.c index 9cbbb56d8..ee5d8a571 100644 --- a/src/main_loops.c +++ b/src/main_loops.c @@ -552,7 +552,7 @@ enum MODE_FRIEND_AREAS, MODE_DUNGEON_FROM_WORLD_MAP, MODE_6, - MODE_7, + MODE_CONTINUE_QUICKSAVE, MODE_8, MODE_DUNGEON_WON, MODE_10, @@ -568,18 +568,18 @@ static u32 RunGameMode_Async(u32 a0) sub_801180C(); FadeOutAllMusic(0x10); - if (mode == 7) { + if (mode == MODE_CONTINUE_QUICKSAVE) { if (a0 == 2) { - mode = 8; + mode = MODE_8; } else if (a0 == 3) { - mode = 11; + mode = MODE_11; SetScriptVarValue(NULL, START_MODE, 11); sub_8096BD0(); QuickSave_Async(3); } } - else if (mode != 0 && mode != 11) { + else if (mode != MODE_NEW_GAME && mode != MODE_11) { mode = MODE_CONTINUE_GAME; } @@ -619,12 +619,12 @@ static u32 RunGameMode_Async(u32 a0) s32 dungId = (s16) GetScriptVarValue(NULL, DUNGEON_SELECT); u8 r6 = sub_80A2740(dungId); - for (i = 0; i < 63; i++) { + for (i = 0; i < WORLD_MAP_UNK_6D_COUNT; i++) { worldMapSetup.info.unk6D[i] = sub_80A28F0(i); } if (r6 == 99) { - mode = 2; + mode = MODE_GROUND; continue; } @@ -660,14 +660,14 @@ static u32 RunGameMode_Async(u32 a0) sub_800A8F8(4); r5 = xxx_script_related_8001334(5); } - else if (mode == 8) { + else if (mode == MODE_8) { r5 = 0; } - else if (mode == 7) { + else if (mode == MODE_CONTINUE_QUICKSAVE) { r5 = 2; } else { - if (mode == 11) { + if (mode == MODE_11) { RemoveAllMoneyAndItems(); } else if (mode == MODE_DUNGEON_LOST) { @@ -738,12 +738,12 @@ static u32 RunGameMode_Async(u32 a0) } else if (var == 0xF1208) { r5 = 1; - mode = 11; + mode = MODE_11; sub_8096BD0(); } else { r5 = 1; - mode = 11; + mode = MODE_11; sub_8096BD0(); } @@ -762,12 +762,12 @@ static u32 RunGameMode_Async(u32 a0) } else if (var == 0xF1208) { r5 = 1; - mode = 11; + mode = MODE_11; sub_8096BD0(); } else { r5 = 1; - mode = 11; + mode = MODE_11; sub_8096BD0(); } } @@ -778,16 +778,16 @@ static u32 RunGameMode_Async(u32 a0) if (r5 == 3) { u8 r4 = sub_8001170(); r5 = 1; - mode = 11; + mode = MODE_11; sub_8096BD0(); if (r4 != 63 && r4 != 99 && IsEnterWithoutGameSave(r4)) { if (sub_8011C1C() == 2) { r5 = 3; - mode = 7; + mode = MODE_CONTINUE_QUICKSAVE; } else { r5 = 12; - mode = 10; + mode = MODE_10; } } @@ -797,12 +797,12 @@ static u32 RunGameMode_Async(u32 a0) } else if (r5 == 4) { r5 = 1; - mode = 11; + mode = MODE_11; sub_8096BD0(); sub_80008C0_Async(1); } else if (r5 == 1) { - mode = 11; + mode = MODE_11; sub_8096BD0(); } } @@ -847,22 +847,22 @@ static u32 RunGameMode_Async(u32 a0) switch (dungeonSetup.info.unk7C) { case 1: case 4: - mode = 9; + mode = MODE_DUNGEON_WON; SetScriptVarArrayValue(NULL, EVENT_S08E01, 0, (dungeonSetup.info.unk7E != 0) ? 2 : 1); break; case 2: - mode = 10; + mode = MODE_10; break; case -1: - mode = 12; + mode = MODE_DUNGEON_LOST; sub_8096BD0(); break; case 5: - mode = 11; + mode = MODE_11; sub_8096BD0(); break; default: - mode = 11; + mode = MODE_11; sub_8096BD0(); break; } diff --git a/src/world_map.c b/src/world_map.c index 7ef959c18..760a5c37f 100644 --- a/src/world_map.c +++ b/src/world_map.c @@ -238,7 +238,7 @@ static void sub_8010494(struct WorldMapInfo *info) struct UnkStruct_Sub1 *structPtr = &sWorldMapPtr->unk0[i]; u8 r0; - if (i < 63) { + if (i < WORLD_MAP_UNK_6D_COUNT) { r0 = info->unk6D[i]; } else { @@ -247,7 +247,7 @@ static void sub_8010494(struct WorldMapInfo *info) if (r0) { structPtr->unk0 = 1; - AxResInitFile(&structPtr->unk8, sWorldMapPtr->unk1100[2], (i == 63) ? 12 : 1, 0, 0x40, 0, 1); + AxResInitFile(&structPtr->unk8, sWorldMapPtr->unk1100[2], (i == WORLD_MAP_UNK_6D_COUNT) ? 12 : 1, 0, 0x40, 0, 1); structPtr->unk4 = gDungeonCoordinates[i]; } else {