diff options
| author | engineer124 <47598039+engineer124@users.noreply.github.com> | 2022-10-05 01:15:39 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-05 06:15:39 +0100 |
| commit | f379012742c07f2e069b24d77e4f30a614f63080 (patch) | |
| tree | 2c27c31a663a82497efe4c97ac45734ddc77ac42 /src/code | |
| parent | 2006a65ba62e7e848823cd1de009c9e16d6421eb (diff) | |
z_kaleido_map.c OK and Documented (Pause Menu Map Page) + related icon_item statics (dungeon/field/jpn) (#1094)
* import pause menu map page
* better owl-warp docs
* fix func name
* missed some owlwarps
* fix merge from master
* fix scene region code
* PR Suggestions
* add comment
* add description of gWorldMapImageTex, thanks @EllipticEllipsis
* clearup docs
* missed a comma
* bad formatter, drop comment
* more cleanup
Diffstat (limited to 'src/code')
| -rw-r--r-- | src/code/code_8012EC80.c | 109 | ||||
| -rw-r--r-- | src/code/title_setup.c | 6 | ||||
| -rw-r--r-- | src/code/z_actor.c | 7 | ||||
| -rw-r--r-- | src/code/z_kaleido_setup.c | 24 | ||||
| -rw-r--r-- | src/code/z_map_exp.c | 4 | ||||
| -rw-r--r-- | src/code/z_message.c | 25 | ||||
| -rw-r--r-- | src/code/z_message_nes.c | 66 | ||||
| -rw-r--r-- | src/code/z_scene.c | 17 |
8 files changed, 134 insertions, 124 deletions
diff --git a/src/code/code_8012EC80.c b/src/code/code_8012EC80.c index 278ef0830..eb70cfbc8 100644 --- a/src/code/code_8012EC80.c +++ b/src/code/code_8012EC80.c @@ -96,7 +96,7 @@ u32 gGsFlagsShift[] = { }; // TODO: use symbols for these icon textures once textures are properly in C -void* gItemIcons[] = { +TexturePtr gItemIcons[] = { 0x08000000, // ITEM_OCARINA 0x08001000, // ITEM_BOW 0x08002000, // ITEM_ARROW_FIRE @@ -249,7 +249,7 @@ u8 gItemSlots[] = { SLOT_LENS, // ITEM_LENS SLOT_HOOKSHOT, // ITEM_HOOKSHOT SLOT_SWORD_GREAT_FAIRY, // ITEM_SWORD_GREAT_FAIRY - SLOT_BOTTLE_1, // + SLOT_BOTTLE_1, // ITEM_LONGSHOT SLOT_BOTTLE_1, // ITEM_BOTTLE SLOT_BOTTLE_1, // ITEM_POTION_RED SLOT_BOTTLE_1, // ITEM_POTION_GREEN @@ -365,8 +365,8 @@ s16 gItemPrices[] = { }; // Used to map scene indexes to their region in Termina -u16 gSceneIdsPerRegion[11][27] = { - // Great Bay +u16 gSceneIdsPerRegion[REGION_MAX][27] = { + // REGION_GREAT_BAY { SCENE_30GYOSON, SCENE_LABO, @@ -378,15 +378,15 @@ u16 gSceneIdsPerRegion[11][27] = { SCENE_PIRATE, SCENE_35TAKI, SCENE_KINDAN2, - -1, + 0xFFFF, }, - // Zora Hall + // REGION_ZORA_HALL { SCENE_33ZORACITY, SCENE_BANDROOM, - -1, + 0xFFFF, }, - // Romani Ranch + // REGION_ROMANI_RANCH { SCENE_F01, SCENE_ROMANYMAE, @@ -394,17 +394,17 @@ u16 gSceneIdsPerRegion[11][27] = { SCENE_F01C, SCENE_F01_B, SCENE_KOEPONARACE, - -1, + 0xFFFF, }, - // Deku Palace + // REGION_DEKU_PALACE { SCENE_22DEKUCITY, SCENE_DEKU_KING, SCENE_26SARUNOMORI, SCENE_DANPEI, - -1, + 0xFFFF, }, - // Southern Swamp + // REGION_WOODFALL { SCENE_20SICHITAI, SCENE_20SICHITAI2, @@ -412,21 +412,18 @@ u16 gSceneIdsPerRegion[11][27] = { SCENE_WITCH_SHOP, SCENE_21MITURINMAE, SCENE_KINSTA1, - -1, + 0xFFFF, }, - // Clock Town + // REGION_CLOCK_TOWN { - SCENE_00KEIKOKU, SCENE_TENMON_DAI, SCENE_13HUBUKINOMITI, - SCENE_24KEMONOMITI, SCENE_SYATEKI_MORI, SCENE_IKANAMAE, - SCENE_TOWN, SCENE_SYATEKI_MIZU, SCENE_BOWLING, - SCENE_TAKARAYA, SCENE_YADOYA, SCENE_SONCHONOIE, - SCENE_MILK_BAR, SCENE_ICHIBA, SCENE_BOMYA, - SCENE_AYASHIISHOP, SCENE_8ITEMSHOP, SCENE_DOUJOU, - SCENE_POSTHOUSE, SCENE_TAKARAKUJI, SCENE_BACKTOWN, - SCENE_CLOCKTOWER, SCENE_INSIDETOWER, SCENE_OKUJOU, - SCENE_ALLEY, SCENE_DEKUTES, -1, + SCENE_00KEIKOKU, SCENE_TENMON_DAI, SCENE_13HUBUKINOMITI, SCENE_24KEMONOMITI, SCENE_SYATEKI_MORI, + SCENE_IKANAMAE, SCENE_TOWN, SCENE_SYATEKI_MIZU, SCENE_BOWLING, SCENE_TAKARAYA, + SCENE_YADOYA, SCENE_SONCHONOIE, SCENE_MILK_BAR, SCENE_ICHIBA, SCENE_BOMYA, + SCENE_AYASHIISHOP, SCENE_8ITEMSHOP, SCENE_DOUJOU, SCENE_POSTHOUSE, SCENE_TAKARAKUJI, + SCENE_BACKTOWN, SCENE_CLOCKTOWER, SCENE_INSIDETOWER, SCENE_OKUJOU, SCENE_ALLEY, + SCENE_DEKUTES, 0xFFFF, }, - // Snowhead + // REGION_SNOWHEAD { SCENE_10YUKIYAMANOMURA, SCENE_10YUKIYAMANOMURA2, @@ -437,15 +434,15 @@ u16 gSceneIdsPerRegion[11][27] = { SCENE_GORON_HAKA, SCENE_17SETUGEN, SCENE_17SETUGEN2, - -1, + 0xFFFF, }, - // Ikana Graveyard + // REGION_IKANA_GRAVEYARD { SCENE_BOTI, SCENE_DANPEI2TEST, - -1, + 0xFFFF, }, - // Ikana Canyon + // REGION_IKANA_CANYON { SCENE_CASTLE, SCENE_IKNINSIDE, @@ -456,21 +453,21 @@ u16 gSceneIdsPerRegion[11][27] = { SCENE_REDEAD, SCENE_TOUGITES, SCENE_HAKASHITA, - -1, + 0xFFFF, }, - // Goron Village + // REGION_GORON_VILLAGE { SCENE_11GORONNOSATO, SCENE_11GORONNOSATO2, SCENE_16GORON_HOUSE, SCENE_GORONSHOP, - -1, + 0xFFFF, }, - // Stone Tower + // REGION_STONE_TOWER { SCENE_F40, SCENE_F41, - -1, + 0xFFFF, }, }; @@ -553,9 +550,9 @@ s32 Inventory_IsMapVisible(s16 sceneId) { return false; } -static u16 sSceneIdsPerTingleMap[6][12] = { +static u16 sSceneIdsPerTingleMap[TINGLE_MAP_MAX][12] = { { - // Clock Town Tingle Map + // TINGLE_MAP_CLOCK_TOWN SCENE_00KEIKOKU, SCENE_BOTI, SCENE_13HUBUKINOMITI, @@ -566,20 +563,20 @@ static u16 sSceneIdsPerTingleMap[6][12] = { SCENE_BACKTOWN, SCENE_CLOCKTOWER, SCENE_ALLEY, - -1, + 0xFFFF, }, { - // Woodfall Tingle Map + // TINGLE_MAP_WOODFALL SCENE_20SICHITAI, SCENE_20SICHITAI2, SCENE_21MITURINMAE, SCENE_22DEKUCITY, SCENE_DEKU_KING, SCENE_KINSTA1, - -1, + 0xFFFF, }, { - // Snowhead Tingle Map + // TINGLE_MAP_SNOWHEAD SCENE_10YUKIYAMANOMURA, SCENE_10YUKIYAMANOMURA2, SCENE_11GORONNOSATO, @@ -590,20 +587,20 @@ static u16 sSceneIdsPerTingleMap[6][12] = { SCENE_GORONRACE, SCENE_17SETUGEN, SCENE_17SETUGEN2, - -1, + 0xFFFF, }, { - // Romani Ranch Tingle Map + // TINGLE_MAP_ROMANI_RANCH SCENE_F01, SCENE_ROMANYMAE, SCENE_OMOYA, SCENE_F01C, SCENE_F01_B, SCENE_KOEPONARACE, - -1, + 0xFFFF, }, { - // Great Bay Tingle Map + // TINGLE_MAP_GREAT_BAY SCENE_30GYOSON, SCENE_SINKAI, SCENE_31MISAKI, @@ -611,28 +608,28 @@ static u16 sSceneIdsPerTingleMap[6][12] = { SCENE_KAIZOKU, SCENE_33ZORACITY, SCENE_35TAKI, - -1, + 0xFFFF, }, { - // Stone Tower Tingle Map + // TINGLE_MAP_STONE_TOWER SCENE_F40, SCENE_F41, SCENE_CASTLE, SCENE_IKANA, SCENE_REDEAD, - -1, + 0xFFFF, }, }; /** - * Map visibility is achieved by purchasing a tingle map + * Removing clouds from the World Map is achieved by purchasing a tingle map */ -void Inventory_SetMapVisibility(s16 tingleIndex) { +void Inventory_SetWorldMapCloudVisibility(s16 tingleIndex) { s16 i = 0; s16 index = 0; u16(*tingleMapSceneIds)[] = &sSceneIdsPerTingleMap[tingleIndex]; - if ((tingleIndex >= 0) && (tingleIndex < 6)) { + if ((tingleIndex >= 0) && (tingleIndex < TINGLE_MAP_MAX)) { while (true) { if ((*tingleMapSceneIds)[i] == 0xFFFF) { break; @@ -665,21 +662,21 @@ void Inventory_SetMapVisibility(s16 tingleIndex) { } if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[0]) { - gSaveContext.save.mapsVisible |= 3; + gSaveContext.save.worldMapCloudVisibility |= 3; } else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[1]) { - gSaveContext.save.mapsVisible |= 0x1C; + gSaveContext.save.worldMapCloudVisibility |= 0x1C; } else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[2]) { - gSaveContext.save.mapsVisible |= 0xE0; + gSaveContext.save.worldMapCloudVisibility |= 0xE0; } else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[3]) { - gSaveContext.save.mapsVisible |= 0x100; + gSaveContext.save.worldMapCloudVisibility |= 0x100; } else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[4]) { - gSaveContext.save.mapsVisible |= 0x1E00; + gSaveContext.save.worldMapCloudVisibility |= 0x1E00; } else if ((*tingleMapSceneIds) == sSceneIdsPerTingleMap[5]) { - gSaveContext.save.mapsVisible |= 0x6000; + gSaveContext.save.worldMapCloudVisibility |= 0x6000; } } - XREG(95) = 0; + R_MINIMAP_DISABLED = false; } /** diff --git a/src/code/title_setup.c b/src/code/title_setup.c index dad3c6458..641160ea8 100644 --- a/src/code/title_setup.c +++ b/src/code/title_setup.c @@ -23,13 +23,13 @@ void Setup_SetRegs(void) { XREG(77) = 0x3C; XREG(78) = 0x2F; XREG(79) = 0x62; - XREG(87) = 0; + R_PAUSE_OWLWARP_ALPHA = 0; XREG(88) = 0x56; XREG(89) = 0x258; XREG(90) = 0x1C2; XREG(91) = 0; - XREG(94) = 0; - XREG(95) = 0; + R_REVERSE_FLOOR_INDEX = 0; + R_MINIMAP_DISABLED = false; YREG(32) = 0x50; YREG(33) = 0x3C; diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 84616f083..c5783f4d7 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -861,10 +861,11 @@ void TitleCard_Draw(GameState* gameState, TitleCardContext* titleCtx) { OPEN_DISPS(gameState->gfxCtx); - height = (width * height > TMEM_SIZE) ? TMEM_SIZE / width : height; - spB4 = spB8 + (height * 4); + if (width * height > TMEM_SIZE) { + height = TMEM_SIZE / width; + } - if (1) {} + spB4 = spB8 + (height * 4); OVERLAY_DISP = func_8012C014(OVERLAY_DISP); diff --git a/src/code/z_kaleido_setup.c b/src/code/z_kaleido_setup.c index 0109dc4ab..2f2e3c388 100644 --- a/src/code/z_kaleido_setup.c +++ b/src/code/z_kaleido_setup.c @@ -22,19 +22,19 @@ void func_800F4A10(PlayState* play) { pauseCtx->unk_27E = -40; for (i = 0; i < ARRAY_COUNT(pauseCtx->worldMapPoints); i++) { - pauseCtx->worldMapPoints[i] = 0; + pauseCtx->worldMapPoints[i] = false; } if (pauseCtx->state == 1) { - for (i = 0; i < 11; i++) { - if ((gSaveContext.save.mapsVisited >> i) & 1) { - pauseCtx->worldMapPoints[i] = 1; + for (i = 0; i < REGION_MAX; i++) { + if ((gSaveContext.save.regionsVisited >> i) & 1) { + pauseCtx->worldMapPoints[i] = true; } } } else { - for (i = 9; i >= 0; i--) { + for (i = OWL_WARP_STONE_TOWER; i >= OWL_WARP_GREAT_BAY_COAST; i--) { if ((gSaveContext.save.playerData.owlActivationFlags >> i) & 1) { - pauseCtx->worldMapPoints[i] = 1; + pauseCtx->worldMapPoints[i] = true; pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = i; } } @@ -57,9 +57,9 @@ void func_800F4A10(PlayState* play) { YREG(21) = -0x0622; YREG(22) = -0x0C44; YREG(23) = 0x0622; - YREG(24) = -0x0622; - YREG(25) = -0x005A; - YREG(26) = -0x3840; + R_PAUSE_WORLD_MAP_YAW = -0x622; + R_PAUSE_WORLD_MAP_Y_OFFSET = -90; + R_PAUSE_WORLD_MAP_DEPTH = -14400; } void KaleidoSetup_Update(PlayState* play) { @@ -124,18 +124,18 @@ void KaleidoSetup_Init(PlayState* play) { pauseCtx->unk_20C = 936.0f; pauseCtx->unk_220 = -314.0f; - pauseCtx->cursorPoint[PAUSE_MAP] = XREG(94) + 3; + pauseCtx->cursorPoint[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1); pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_RIGHT; pauseCtx->pageSwitchTimer = 0; pauseCtx->cursorItem[PAUSE_ITEM] = PAUSE_ITEM_NONE; - pauseCtx->cursorItem[PAUSE_MAP] = XREG(94) + 3; + pauseCtx->cursorItem[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1); pauseCtx->cursorItem[PAUSE_QUEST] = PAUSE_ITEM_NONE; pauseCtx->cursorItem[PAUSE_MASK] = PAUSE_ITEM_NONE; pauseCtx->cursorSlot[PAUSE_ITEM] = 0; - pauseCtx->cursorSlot[PAUSE_MAP] = XREG(94) + 3; + pauseCtx->cursorSlot[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1); pauseCtx->cursorColorSet = 2; pauseCtx->unk_2A0 = -1; diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index 2b5eb1aac..57f51a20a 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -245,14 +245,14 @@ void Map_Update(PlayState* play) { if (floor != -1) { gSaveContext.save.permanentSceneFlags[Play_GetOriginalSceneId(play->sceneId)].unk_14 |= gBitFlags[FLOOR_INDEX_MAX - floor]; - XREG(94) = FLOOR_INDEX_MAX - floor; + R_REVERSE_FLOOR_INDEX = FLOOR_INDEX_MAX - floor; if (interfaceCtx->mapRoomNum != sLastRoomNum) { sLastRoomNum = interfaceCtx->mapRoomNum; } } } else if (Map_IsInBossArea(play)) { func_80105294(); - XREG(94) = FLOOR_INDEX_MAX - func_80105318(); + R_REVERSE_FLOOR_INDEX = FLOOR_INDEX_MAX - func_80105318(); } } } diff --git a/src/code/z_message.c b/src/code/z_message.c index 94f1e5992..de3a81c73 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -256,34 +256,33 @@ void func_8014CCB4(PlayState* play, s16* decodedBufPos, s32* offset, f32* arg3) #pragma GLOBAL_ASM("asm/non_matchings/code/z_message/func_8014D304.s") -extern u16 D_801D0188[][9]; -extern s16 D_801D0250[]; +extern u16 D_801D0188[OWL_WARP_MAX][9]; +extern s16 D_801D0250[OWL_WARP_MAX]; void func_8014D62C(PlayState* play, s32* arg1, f32* arg2, s16* arg3) { MessageContext* msgCtx = &play->msgCtx; PauseContext* pauseCtx = &play->pauseCtx; - s16 temp_s6; + s16 stringLimit; s16 temp_s1 = *arg3; s32 temp_s2 = *arg1; f32 sp3C = *arg2; - s16 phi_v0; + s16 owlWarpId; s16 phi_s0; - if ((func_8010A0A4(play) != 0) || (play->sceneId == SCENE_SECOM)) { - phi_v0 = 0xA; + if (func_8010A0A4(play) || (play->sceneId == SCENE_SECOM)) { + owlWarpId = OWL_WARP_ENTRANCE; } else { - phi_v0 = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; + owlWarpId = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; } + stringLimit = D_801D0250[owlWarpId]; - temp_s6 = D_801D0250[phi_v0]; - - for (phi_s0 = 0; phi_s0 < temp_s6; phi_s0++, temp_s1++, temp_s2 += 0x80) { - msgCtx->decodedBuffer.wchar[temp_s1] = D_801D0188[phi_v0][phi_s0]; - Font_LoadChar(play, D_801D0188[phi_v0][phi_s0], temp_s2); + for (phi_s0 = 0; phi_s0 < stringLimit; phi_s0++, temp_s1++, temp_s2 += 0x80) { + msgCtx->decodedBuffer.wchar[temp_s1] = D_801D0188[owlWarpId][phi_s0]; + Font_LoadChar(play, D_801D0188[owlWarpId][phi_s0], temp_s2); } temp_s1--; - sp3C += (temp_s6 - 1) * (16.0f * msgCtx->unk12098); + sp3C += (stringLimit - 1) * (16.0f * msgCtx->unk12098); *arg3 = temp_s1; *arg1 = temp_s2; diff --git a/src/code/z_message_nes.c b/src/code/z_message_nes.c index fef293b46..fb8dbfcbf 100644 --- a/src/code/z_message_nes.c +++ b/src/code/z_message_nes.c @@ -17,31 +17,43 @@ u8 D_801D06F0[4][8] = { { "rupee(s)" }, //EN // rupeesTextLength u8 D_801D0710[4] = {8,8,5,8}; -//TextArea -char D_801D0714[11][16] = { - "Great Bay Coast", - "Zora Cape", - "Snowhead", - "Mountain Village", - "Clock Town", - "Milk Road", - "Woodfall", - "Southern Swamp", - "Ikana Canyon", - "Stone Tower", - "Entrance" - }; - -//TextAreaLength -s16 D_801D07C4[11] = {15,9,8,16,10,9,8,14,12,11,8}; +// sOwlWarpText +char D_801D0714[OWL_WARP_MAX][16] = { + "Great Bay Coast", // OWL_WARP_GREAT_BAY_COAST + "Zora Cape", // OWL_WARP_ZORA_CAPE + "Snowhead", // OWL_WARP_SNOWHEAD + "Mountain Village", // OWL_WARP_MOUNTAIN_VILLAGE + "Clock Town", // OWL_WARP_CLOCK_TOWN + "Milk Road", // OWL_WARP_MILK_ROAD + "Woodfall", // OWL_WARP_WOODFALL + "Southern Swamp", // OWL_WARP_SOUTHERN_SWAMP + "Ikana Canyon", // OWL_WARP_IKANA_CANYON + "Stone Tower", // OWL_WARP_STONE_TOWER + "Entrance", // OWL_WARP_ENTRANCE +}; + +// sOwlWarpTextLength +s16 D_801D07C4[OWL_WARP_MAX] = { + 15, // OWL_WARP_GREAT_BAY_COAST + 9, // OWL_WARP_ZORA_CAPE + 8, // OWL_WARP_SNOWHEAD + 16, // OWL_WARP_MOUNTAIN_VILLAGE + 10, // OWL_WARP_CLOCK_TOWN + 9, // OWL_WARP_MILK_ROAD + 8, // OWL_WARP_WOODFALL + 14, // OWL_WARP_SOUTHERN_SWAMP + 12, // OWL_WARP_IKANA_CANYON + 11, // OWL_WARP_STONE_TOWER + 8, // OWL_WARP_ENTRANCE +}; #endif extern f32 D_801D0470[159]; extern u8 D_801D06F0[4][8]; extern u8 D_801D0710[4]; -extern u8 D_801D0714[11][16]; -extern s16 D_801D07C4[11]; +extern u8 D_801D0714[OWL_WARP_MAX][16]; +extern s16 D_801D07C4[OWL_WARP_MAX]; void Message_FindMessageNES(PlayState* play, u16 textId) { MessageContext* msgCtx = &play->msgCtx; @@ -244,28 +256,28 @@ void Message_LoadTimeNES(PlayState* play, u8 arg1, s32* offset, f32* arg3, s16* *arg3 = f; } -void Message_LoadAreaTextNES(PlayState* play, s32* offset, f32* arg2, s16* decodedBufPos) { +void Message_LoadOwlWarpTextNES(PlayState* play, s32* offset, f32* arg2, s16* decodedBufPos) { MessageContext* msgCtx = &play->msgCtx; s16 p = *decodedBufPos; s32 o = *offset; f32 f = *arg2; s16 i; u8 currentChar; - s16 currentArea; + s16 owlWarpId; s16 stringLimit; - if ((func_8010A0A4(play) != 0) || (play->sceneId == SCENE_SECOM)) { - currentArea = 10; + if (func_8010A0A4(play) || (play->sceneId == SCENE_SECOM)) { + owlWarpId = OWL_WARP_ENTRANCE; } else { - currentArea = play->pauseCtx.cursorPoint[PAUSE_WORLD_MAP]; + owlWarpId = play->pauseCtx.cursorPoint[PAUSE_WORLD_MAP]; } - stringLimit = D_801D07C4[currentArea]; + stringLimit = D_801D07C4[owlWarpId]; for (i = 0; i < stringLimit; i++) { - msgCtx->decodedBuffer.schar[p] = D_801D0714[currentArea][i]; + msgCtx->decodedBuffer.schar[p] = D_801D0714[owlWarpId][i]; currentChar = msgCtx->decodedBuffer.schar[p]; if (currentChar != ' ') { - Font_LoadCharNES(play, D_801D0714[currentArea][i], o); + Font_LoadCharNES(play, D_801D0714[owlWarpId][i], o); o += FONT_CHAR_TEX_SIZE; } currentChar = msgCtx->decodedBuffer.schar[p]; diff --git a/src/code/z_scene.c b/src/code/z_scene.c index c32a2271d..1167f14ab 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -468,8 +468,8 @@ void Scene_HeaderCmdAltHeaderList(PlayState* play, SceneCmd* cmd) { // SceneTableEntry Header Command 0x17: Cutscene List void Scene_HeaderCmdCutsceneList(PlayState* play, SceneCmd* cmd) { - play->csCtx.sceneCsCount = cmd->base.data1; - play->csCtx.sceneCsList = Lib_SegmentedToVirtual(cmd->base.data2); + play->csCtx.sceneCsCount = cmd->cutsceneList.sceneCsCount; + play->csCtx.sceneCsList = Lib_SegmentedToVirtual(cmd->cutsceneList.segment); } // SceneTableEntry Header Command 0x1B: Actor Cutscene List @@ -492,8 +492,8 @@ void Scene_HeaderCmdMiniMapCompassInfo(PlayState* play, SceneCmd* cmd) { func_8010565C(play, cmd->minimapChests.num, cmd->minimapChests.segment); } -// SceneTableEntry Header Command 0x1A: Sets Area Visited Flag -void Scene_HeaderCmdSetAreaVisitedFlag(PlayState* play, SceneCmd* cmd) { +// SceneTableEntry Header Command 0x19: Sets Region Visited Flag +void Scene_HeaderCmdSetRegionVisitedFlag(PlayState* play, SceneCmd* cmd) { s16 j = 0; s16 i = 0; @@ -502,7 +502,7 @@ void Scene_HeaderCmdSetAreaVisitedFlag(PlayState* play, SceneCmd* cmd) { i++; j = 0; - if (i == ARRAY_COUNT(gSceneIdsPerRegion)) { + if (i == REGION_MAX) { break; } } @@ -514,8 +514,9 @@ void Scene_HeaderCmdSetAreaVisitedFlag(PlayState* play, SceneCmd* cmd) { j++; } - if (i < ARRAY_COUNT(gSceneIdsPerRegion)) { - gSaveContext.save.mapsVisited = (gBitFlags[i] | gSaveContext.save.mapsVisited) | gSaveContext.save.mapsVisited; + if (i < REGION_MAX) { + gSaveContext.save.regionsVisited = + (gBitFlags[i] | gSaveContext.save.regionsVisited) | gSaveContext.save.regionsVisited; } } @@ -561,7 +562,7 @@ s32 Scene_ProcessHeader(PlayState* play, SceneCmd* header) { Scene_HeaderCmdEchoSetting, Scene_HeaderCmdCutsceneList, Scene_HeaderCmdAltHeaderList, - Scene_HeaderCmdSetAreaVisitedFlag, + Scene_HeaderCmdSetRegionVisitedFlag, Scene_HeaderCmdAnimatedMaterials, Scene_HeaderCmdActorCutsceneList, Scene_HeaderCmdMiniMap, |
