From 376f9852d088003b5e1cc15e599131991de20516 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 21:03:58 +0200 Subject: [PATCH 1/3] [ntsc-1.2] Match z_message.c (#2098) * match Message_ResetOcarinaNoteState, Message_DrawTextChar * match Message_OpenText * Match Message_SetTables * Match Message_StartTextbox * forgor #if * format * match Message_DrawMain (ty inspect) * review --- include/n64dd.h | 8 +++++- src/code/z_message.c | 67 ++++++++++++++++++++++++++++++++++++-------- 2 files changed, 63 insertions(+), 12 deletions(-) diff --git a/include/n64dd.h b/include/n64dd.h index 596092cfd0..399334d55c 100644 --- a/include/n64dd.h +++ b/include/n64dd.h @@ -5,8 +5,10 @@ #include "z64pause.h" #include "z64scene.h" +struct Font; struct GameState; union Gfx; +struct MessageTableEntry; struct PlayState; struct RegEditor; struct RoomContext; @@ -39,7 +41,11 @@ typedef struct n64ddStruct_80121220 { struct SceneTableEntry* (*unk_48)(s32 sceneId, struct SceneTableEntry* sceneTable); char unk_4C[0x08]; s32 (*unk_54)(struct PlayState*); - char unk_58[0x14]; + void (*unk_58)(struct MessageTableEntry**, struct MessageTableEntry**, struct MessageTableEntry**); + char unk_5C[0x4]; + s32 (*unk_60)(struct Font*); + s32 (*unk_64)(struct Font*); + s32 (*unk_68)(struct Font*); void (*unk_6C)(struct PlayState*, SceneDrawConfigFunc*); s32 (*unk_70)(struct DmaRequest* req, void* ram, uintptr_t vrom, size_t size, u32 unk, OSMesgQueue* queue, OSMesg msg); void (*unk_74)(struct GameState*); diff --git a/src/code/z_message.c b/src/code/z_message.c index a610f036fd..a61c1620b4 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -4,9 +4,22 @@ #include "versions.h" #include "assets/textures/parameter_static/parameter_static.h" #include "versions.h" +#if PLATFORM_N64 +#include "n64dd.h" +#endif #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" +#if PLATFORM_N64 +#define OCARINA_BUTTON_A_PRIM_R 80 +#define OCARINA_BUTTON_A_PRIM_G 150 +#define OCARINA_BUTTON_A_PRIM_B 255 +#else +#define OCARINA_BUTTON_A_PRIM_R 80 +#define OCARINA_BUTTON_A_PRIM_G 255 +#define OCARINA_BUTTON_A_PRIM_B 150 +#endif + s16 sTextFade = false; // original name: key_off_flag ? u8 D_8014B2F4 = 0; @@ -192,9 +205,9 @@ void Message_ResetOcarinaNoteState(void) { sOcarinaButtonAlphaValues[0] = sOcarinaButtonAlphaValues[1] = sOcarinaButtonAlphaValues[2] = sOcarinaButtonAlphaValues[3] = sOcarinaButtonAlphaValues[4] = sOcarinaButtonAlphaValues[5] = sOcarinaButtonAlphaValues[6] = sOcarinaButtonAlphaValues[7] = sOcarinaButtonAlphaValues[8] = 0; - sOcarinaButtonAPrimR = 80; - sOcarinaButtonAPrimG = 255; - sOcarinaButtonAPrimB = 150; + sOcarinaButtonAPrimR = OCARINA_BUTTON_A_PRIM_R; + sOcarinaButtonAPrimG = OCARINA_BUTTON_A_PRIM_G; + sOcarinaButtonAPrimB = OCARINA_BUTTON_A_PRIM_B; sOcarinaButtonAEnvR = 10; sOcarinaButtonAEnvG = 10; sOcarinaButtonAEnvB = 10; @@ -298,6 +311,7 @@ void Message_DrawTextChar(PlayState* play, void* textureImage, Gfx** p) { Gfx* gfx = *p; s16 x = msgCtx->textPosX; s16 y = msgCtx->textPosY; + s32 pad; gDPPipeSync(gfx++); @@ -2446,20 +2460,47 @@ void Message_OpenText(PlayState* play, u16 textId) { if (sTextIsCredits) { Message_FindCreditsMessage(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_60 != NULL) && B_80121AF0->unk_60(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength, "../z_message_PAL.c", 1954); +#endif } else { #if OOT_NTSC if (gSaveContext.language == LANGUAGE_JPN) { Message_FindMessageJPN(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_64 != NULL) && B_80121AF0->unk_64(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength); +#endif } else { Message_FindMessageNES(play, textId); msgCtx->msgLength = font->msgLength; +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_68 != NULL) && B_80121AF0->unk_68(&play->msgCtx.font)) { + + } else { + DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, + font->msgLength); + } +#else DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, font->msgLength); +#endif } #else if (gSaveContext.language == LANGUAGE_ENG) { @@ -2541,6 +2582,9 @@ void Message_StartTextbox(PlayState* play, u16 textId, Actor* actor) { void Message_ContinueTextbox(PlayState* play, u16 textId) { s32 pad; MessageContext* msgCtx = &play->msgCtx; +#if PLATFORM_N64 + s32 pad2[3]; +#endif PRINTF(VT_FGCOL(GREEN)); // "Message" @@ -2792,13 +2836,9 @@ void Message_SetView(View* view) { } #if OOT_NTSC -#define DRAW_TEXT(play, gfx, isCredits) \ - if (gSaveContext.language == LANGUAGE_JPN && !(isCredits)) { \ - Message_DrawTextWide(play, gfx); \ - } else { \ - Message_DrawText(play, gfx); \ - } \ - (void)0 +#define DRAW_TEXT(play, gfx, isCredits) \ + ((gSaveContext.language == LANGUAGE_JPN) && !(isCredits)) ? Message_DrawTextWide(play, gfx) \ + : Message_DrawText(play, gfx) #else #define DRAW_TEXT(play, gfx, isCredits) Message_DrawText(play, gfx) #endif @@ -3016,7 +3056,6 @@ void Message_DrawMain(PlayState* play, Gfx** p) { &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); } - if (msgCtx->ocarinaStaff == NULL) {} // fake Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_NOTHING); } else { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); @@ -4237,4 +4276,10 @@ void Message_SetTables(void) { #endif sStaffMessageEntryTablePtr = sStaffMessageEntryTable; + +#if PLATFORM_N64 + if ((B_80121AF0 != NULL) && (B_80121AF0->unk_58 != NULL)) { + B_80121AF0->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr); + } +#endif } From c7b55f9a072359d3c28b9cfca2d20e2fc23b35a4 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 22:48:10 +0200 Subject: [PATCH 2/3] Fix merge issue between z_message.c match and n64dd renames (#2131) --- src/code/z_message.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/code/z_message.c b/src/code/z_message.c index a61c1620b4..0f42e5e82f 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -2461,7 +2461,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Message_FindCreditsMessage(play, textId); msgCtx->msgLength = font->msgLength; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_60 != NULL) && B_80121AF0->unk_60(&play->msgCtx.font)) { + if ((B_80121220 != NULL) && (B_80121220->unk_60 != NULL) && B_80121220->unk_60(&play->msgCtx.font)) { } else { DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_staff_message_data_staticSegmentRomStart + font->msgOffset, @@ -2477,7 +2477,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Message_FindMessageJPN(play, textId); msgCtx->msgLength = font->msgLength; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_64 != NULL) && B_80121AF0->unk_64(&play->msgCtx.font)) { + if ((B_80121220 != NULL) && (B_80121220->unk_64 != NULL) && B_80121220->unk_64(&play->msgCtx.font)) { } else { DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, @@ -2491,7 +2491,7 @@ void Message_OpenText(PlayState* play, u16 textId) { Message_FindMessageNES(play, textId); msgCtx->msgLength = font->msgLength; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_68 != NULL) && B_80121AF0->unk_68(&play->msgCtx.font)) { + if ((B_80121220 != NULL) && (B_80121220->unk_68 != NULL) && B_80121220->unk_68(&play->msgCtx.font)) { } else { DmaMgr_RequestSync(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, @@ -4278,8 +4278,8 @@ void Message_SetTables(void) { sStaffMessageEntryTablePtr = sStaffMessageEntryTable; #if PLATFORM_N64 - if ((B_80121AF0 != NULL) && (B_80121AF0->unk_58 != NULL)) { - B_80121AF0->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr); + if ((B_80121220 != NULL) && (B_80121220->unk_58 != NULL)) { + B_80121220->unk_58(&sJpnMessageEntryTablePtr, &sNesMessageEntryTablePtr, &sStaffMessageEntryTablePtr); } #endif } From dc469461a96589d9b4e4be0d0310b38cc4dfc952 Mon Sep 17 00:00:00 2001 From: Dragorn421 Date: Wed, 4 Sep 2024 23:51:08 +0200 Subject: [PATCH 3/3] Pause docs: `WorldMapArea` enum and related data (#2130) * Pause docs: WorldMapArea enum and related data * `WORLD_MAP_AREA_20` -> `_QUESTION_MARK` * bss --- .../xml/textures/icon_item_field_static.xml | 32 ++-- include/z64save.h | 26 +++ src/code/sys_cfb.c | 2 +- src/code/sys_matrix.c | 2 +- src/code/z_play.c | 2 +- src/code/z_scene.c | 2 +- src/code/z_skin.c | 2 +- src/overlays/actors/ovl_Fishing/z_fishing.c | 2 +- .../misc/ovl_kaleido_scope/z_kaleido_map.c | 152 ++++++++++++++++-- .../misc/ovl_kaleido_scope/z_kaleido_scope.c | 102 ++++++++++-- 10 files changed, 275 insertions(+), 49 deletions(-) diff --git a/assets/xml/textures/icon_item_field_static.xml b/assets/xml/textures/icon_item_field_static.xml index 1d94ffda11..1ee2483501 100644 --- a/assets/xml/textures/icon_item_field_static.xml +++ b/assets/xml/textures/icon_item_field_static.xml @@ -12,21 +12,21 @@ - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + diff --git a/include/z64save.h b/include/z64save.h index f270600254..12491072ce 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -176,6 +176,32 @@ typedef enum TimerId { #define ENV_HAZARD_TEXT_TRIGGER_HOTROOM (1 << 0) #define ENV_HAZARD_TEXT_TRIGGER_UNDERWATER (1 << 1) +typedef enum WorldMapArea { + /* 0 */ WORLD_MAP_AREA_HYRULE_FIELD, + /* 1 */ WORLD_MAP_AREA_KAKARIKO_VILLAGE, + /* 2 */ WORLD_MAP_AREA_GRAVEYARD, + /* 3 */ WORLD_MAP_AREA_ZORAS_RIVER, + /* 4 */ WORLD_MAP_AREA_KOKIRI_FOREST, + /* 5 */ WORLD_MAP_AREA_SACRED_FOREST_MEADOW, + /* 6 */ WORLD_MAP_AREA_LAKE_HYLIA, + /* 7 */ WORLD_MAP_AREA_ZORAS_DOMAIN, + /* 8 */ WORLD_MAP_AREA_ZORAS_FOUNTAIN, + /* 9 */ WORLD_MAP_AREA_GERUDO_VALLEY, + /* 10 */ WORLD_MAP_AREA_LOST_WOODS, + /* 11 */ WORLD_MAP_AREA_DESERT_COLOSSUS, + /* 12 */ WORLD_MAP_AREA_GERUDOS_FORTRESS, + /* 13 */ WORLD_MAP_AREA_HAUNTED_WASTELAND, + /* 14 */ WORLD_MAP_AREA_MARKET, + /* 15 */ WORLD_MAP_AREA_HYRULE_CASTLE, + /* 16 */ WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, + /* 17 */ WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER, + /* 18 */ WORLD_MAP_AREA_GORON_CITY, + /* 19 */ WORLD_MAP_AREA_LON_LON_RANCH, + /* 20 */ WORLD_MAP_AREA_QUESTION_MARK, // Windmill/Dampé's Grave (and a Lon Lon Ranch cutscene). Labeled as "?" + /* 21 */ WORLD_MAP_AREA_GANONS_CASTLE, + /* 22 */ WORLD_MAP_AREA_MAX // also grottos and fairy's/great fairy's fountains (scenes with varying locations) +} WorldMapArea; + // offsets in SavePlayerData and SaveContext/Save typedef struct SavePlayerData { /* 0x00 0x001C */ char newf[6]; // string "ZELDAZ" diff --git a/src/code/sys_cfb.c b/src/code/sys_cfb.c index 5c7c0bcae4..e770025758 100644 --- a/src/code/sys_cfb.c +++ b/src/code/sys_cfb.c @@ -1,6 +1,6 @@ #include "global.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" uintptr_t sSysCfbFbPtr[2]; uintptr_t sSysCfbEnd; diff --git a/src/code/sys_matrix.c b/src/code/sys_matrix.c index 440e4c6d6c..08fb315792 100644 --- a/src/code/sys_matrix.c +++ b/src/code/sys_matrix.c @@ -19,7 +19,7 @@ MtxF gMtxFClear = { }; // clang-format on -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" MtxF* sMatrixStack; // "Matrix_stack" MtxF* sCurrentMatrix; // "Matrix_now" diff --git a/src/code/z_play.c b/src/code/z_play.c index c650cbd6c3..4a0309b5fa 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -1527,7 +1527,7 @@ void Play_InitScene(PlayState* this, s32 spawn) { TransitionActor_InitContext(&this->state, &this->transiActorCtx); func_80096FD4(this, &this->roomCtx.curRoom); R_SCENE_CAM_TYPE = SCENE_CAM_TYPE_DEFAULT; - gSaveContext.worldMapArea = 0; + gSaveContext.worldMapArea = WORLD_MAP_AREA_HYRULE_FIELD; Scene_ExecuteCommands(this, this->sceneSegment); Play_InitEnvironment(this, this->skyboxId); } diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 34ddb933f8..83714b8a4d 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -462,7 +462,7 @@ BAD_RETURN(s32) Scene_CommandMiscSettings(PlayState* play, SceneCmd* cmd) { if ((play->sceneId == SCENE_BAZAAR) || (play->sceneId == SCENE_SHOOTING_GALLERY)) { if (LINK_AGE_IN_YEARS == YEARS_ADULT) { - gSaveContext.worldMapArea = 1; + gSaveContext.worldMapArea = WORLD_MAP_AREA_KAKARIKO_VILLAGE; } } diff --git a/src/code/z_skin.c b/src/code/z_skin.c index ab3b8624a4..77b7aedc45 100644 --- a/src/code/z_skin.c +++ b/src/code/z_skin.c @@ -1,6 +1,6 @@ #include "global.h" -#pragma increment_block_number "gc-eu:128 gc-eu-mq:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" MtxF gSkinLimbMatrices[60]; // holds matrices for each limb of the skeleton currently being drawn diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index e22bb5e868..861301efe4 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -14,7 +14,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:166 gc-eu-mq:166 gc-jp:168 gc-jp-ce:168 gc-jp-mq:168 gc-us:168 gc-us-mq:168" +#pragma increment_block_number "gc-eu:163 gc-eu-mq:163 gc-jp:165 gc-jp-ce:165 gc-jp-mq:165 gc-us:165 gc-us-mq:165" #define FLAGS ACTOR_FLAG_4 diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index 0b45c13bf8..74324b9011 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -358,13 +358,32 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { static void* cloudTexs[] = { - gWorldMapCloud16Tex, gWorldMapCloud15Tex, gWorldMapCloud14Tex, gWorldMapCloud13Tex, - gWorldMapCloud12Tex, gWorldMapCloud11Tex, gWorldMapCloud10Tex, gWorldMapCloud9Tex, - gWorldMapCloud8Tex, gWorldMapCloud7Tex, gWorldMapCloud6Tex, gWorldMapCloud5Tex, - gWorldMapCloud4Tex, gWorldMapCloud3Tex, gWorldMapCloud2Tex, gWorldMapCloud1Tex, + gWorldMapCloudSacredForestMeadowTex, gWorldMapCloudHyruleFieldTex, + gWorldMapCloudLonLonRanchTex, gWorldMapCloudMarketTex, + gWorldMapCloudHyruleCastleTex, gWorldMapCloudKakarikoVillageTex, + gWorldMapCloudGraveyardTex, gWorldMapCloudDeathMountainTrailTex, + gWorldMapCloudGoronCityTex, gWorldMapCloudZorasRiverTex, + gWorldMapCloudZorasDomainTex, gWorldMapCloudZorasFountainTex, + gWorldMapCloudGerudoValleyTex, gWorldMapCloudGerudosFortressTex, + gWorldMapCloudDesertColossusTex, gWorldMapCloudLakeHyliaTex, }; static u16 cloudFlagNums[] = { - 0x05, 0x00, 0x13, 0x0E, 0x0F, 0x01, 0x02, 0x10, 0x12, 0x03, 0x07, 0x08, 0x09, 0x0C, 0x0B, 0x06, + WORLD_MAP_AREA_SACRED_FOREST_MEADOW, + WORLD_MAP_AREA_HYRULE_FIELD, + WORLD_MAP_AREA_LON_LON_RANCH, + WORLD_MAP_AREA_MARKET, + WORLD_MAP_AREA_HYRULE_CASTLE, + WORLD_MAP_AREA_KAKARIKO_VILLAGE, + WORLD_MAP_AREA_GRAVEYARD, + WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL, + WORLD_MAP_AREA_GORON_CITY, + WORLD_MAP_AREA_ZORAS_RIVER, + WORLD_MAP_AREA_ZORAS_DOMAIN, + WORLD_MAP_AREA_ZORAS_FOUNTAIN, + WORLD_MAP_AREA_GERUDO_VALLEY, + WORLD_MAP_AREA_GERUDOS_FORTRESS, + WORLD_MAP_AREA_DESERT_COLOSSUS, + WORLD_MAP_AREA_LAKE_HYLIA, }; static s16 pointPulsePrimColor[] = { 0, 0, 255 }; static s16 pointPrimColors[][3] = { @@ -380,23 +399,124 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { static s16 pointPulseTimer = 20; static s16 D_8082A5B8[] = { 64, 64, 64, 28 }; static s16 areaBoxPosX[] = { - -41, 19, 44, 40, 49, 51, -49, 83, 80, -67, 50, -109, -76, -86, -10, -6, 19, 24, 11, -17, 37, -6, + -41, // WORLD_MAP_AREA_HYRULE_FIELD + 19, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 44, // WORLD_MAP_AREA_GRAVEYARD + 40, // WORLD_MAP_AREA_ZORAS_RIVER + 49, // WORLD_MAP_AREA_KOKIRI_FOREST + 51, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -49, // WORLD_MAP_AREA_LAKE_HYLIA + 83, // WORLD_MAP_AREA_ZORAS_DOMAIN + 80, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + -67, // WORLD_MAP_AREA_GERUDO_VALLEY + 50, // WORLD_MAP_AREA_LOST_WOODS + -109, // WORLD_MAP_AREA_DESERT_COLOSSUS + -76, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -86, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -10, // WORLD_MAP_AREA_MARKET + -6, // WORLD_MAP_AREA_HYRULE_CASTLE + 19, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 24, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 11, // WORLD_MAP_AREA_GORON_CITY + -17, // WORLD_MAP_AREA_LON_LON_RANCH + 37, // WORLD_MAP_AREA_QUESTION_MARK + -6, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 areaBoxWidths[] = { - 96, 32, 32, 48, 48, 32, 48, 32, 32, 32, 16, 32, 32, 16, 32, 32, 32, 32, 32, 32, 16, 32, + 96, // WORLD_MAP_AREA_HYRULE_FIELD + 32, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 32, // WORLD_MAP_AREA_GRAVEYARD + 48, // WORLD_MAP_AREA_ZORAS_RIVER + 48, // WORLD_MAP_AREA_KOKIRI_FOREST + 32, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 48, // WORLD_MAP_AREA_LAKE_HYLIA + 32, // WORLD_MAP_AREA_ZORAS_DOMAIN + 32, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 32, // WORLD_MAP_AREA_GERUDO_VALLEY + 16, // WORLD_MAP_AREA_LOST_WOODS + 32, // WORLD_MAP_AREA_DESERT_COLOSSUS + 32, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 16, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 32, // WORLD_MAP_AREA_MARKET + 32, // WORLD_MAP_AREA_HYRULE_CASTLE + 32, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 32, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 32, // WORLD_MAP_AREA_GORON_CITY + 32, // WORLD_MAP_AREA_LON_LON_RANCH + 16, // WORLD_MAP_AREA_QUESTION_MARK + 32, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 areaBoxPosY[] = { - 30, 36, 35, 26, 7, 11, -31, 30, 38, 23, 2, 42, 40, 32, 38, 50, 57, 58, 56, 12, 36, 50, + 30, // WORLD_MAP_AREA_HYRULE_FIELD + 36, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 35, // WORLD_MAP_AREA_GRAVEYARD + 26, // WORLD_MAP_AREA_ZORAS_RIVER + 7, // WORLD_MAP_AREA_KOKIRI_FOREST + 11, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -31, // WORLD_MAP_AREA_LAKE_HYLIA + 30, // WORLD_MAP_AREA_ZORAS_DOMAIN + 38, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 23, // WORLD_MAP_AREA_GERUDO_VALLEY + 2, // WORLD_MAP_AREA_LOST_WOODS + 42, // WORLD_MAP_AREA_DESERT_COLOSSUS + 40, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 32, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 38, // WORLD_MAP_AREA_MARKET + 50, // WORLD_MAP_AREA_HYRULE_CASTLE + 57, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 58, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 56, // WORLD_MAP_AREA_GORON_CITY + 12, // WORLD_MAP_AREA_LON_LON_RANCH + 36, // WORLD_MAP_AREA_QUESTION_MARK + 50, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 areaBoxHeights[] = { - 59, 19, 13, 19, 38, 17, 38, 17, 13, 26, 16, 26, 26, 16, 19, 17, 26, 13, 17, 17, 16, 17, + 59, // WORLD_MAP_AREA_HYRULE_FIELD + 19, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 13, // WORLD_MAP_AREA_GRAVEYARD + 19, // WORLD_MAP_AREA_ZORAS_RIVER + 38, // WORLD_MAP_AREA_KOKIRI_FOREST + 17, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 38, // WORLD_MAP_AREA_LAKE_HYLIA + 17, // WORLD_MAP_AREA_ZORAS_DOMAIN + 13, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 26, // WORLD_MAP_AREA_GERUDO_VALLEY + 16, // WORLD_MAP_AREA_LOST_WOODS + 26, // WORLD_MAP_AREA_DESERT_COLOSSUS + 26, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 16, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 19, // WORLD_MAP_AREA_MARKET + 17, // WORLD_MAP_AREA_HYRULE_CASTLE + 26, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 13, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 17, // WORLD_MAP_AREA_GORON_CITY + 17, // WORLD_MAP_AREA_LON_LON_RANCH + 16, // WORLD_MAP_AREA_QUESTION_MARK + 17, // WORLD_MAP_AREA_GANONS_CASTLE }; static void* areaBoxTexs[] = { - gWorldMapAreaBox7Tex, gWorldMapAreaBox1Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox6Tex, gWorldMapAreaBox2Tex, - gWorldMapAreaBox3Tex, gWorldMapAreaBox2Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox5Tex, - gWorldMapAreaBox8Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox8Tex, gWorldMapAreaBox1Tex, - gWorldMapAreaBox3Tex, gWorldMapAreaBox5Tex, gWorldMapAreaBox4Tex, gWorldMapAreaBox3Tex, gWorldMapAreaBox3Tex, - gWorldMapAreaBox8Tex, gWorldMapAreaBox3Tex, + gWorldMapAreaBox7Tex, // WORLD_MAP_AREA_HYRULE_FIELD + gWorldMapAreaBox1Tex, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + gWorldMapAreaBox4Tex, // WORLD_MAP_AREA_GRAVEYARD + gWorldMapAreaBox6Tex, // WORLD_MAP_AREA_ZORAS_RIVER + gWorldMapAreaBox2Tex, // WORLD_MAP_AREA_KOKIRI_FOREST + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + gWorldMapAreaBox2Tex, // WORLD_MAP_AREA_LAKE_HYLIA + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_ZORAS_DOMAIN + gWorldMapAreaBox4Tex, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_GERUDO_VALLEY + gWorldMapAreaBox8Tex, // WORLD_MAP_AREA_LOST_WOODS + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_DESERT_COLOSSUS + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_GERUDOS_FORTRESS + gWorldMapAreaBox8Tex, // WORLD_MAP_AREA_HAUNTED_WASTELAND + gWorldMapAreaBox1Tex, // WORLD_MAP_AREA_MARKET + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_HYRULE_CASTLE + gWorldMapAreaBox5Tex, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + gWorldMapAreaBox4Tex, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_GORON_CITY + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_LON_LON_RANCH + gWorldMapAreaBox8Tex, // WORLD_MAP_AREA_QUESTION_MARK + gWorldMapAreaBox3Tex, // WORLD_MAP_AREA_GANONS_CASTLE }; static void* currentPosTitleTexs[] = LANGUAGE_ARRAY(gPauseCurrentPositionJPNTex, gPauseCurrentPositionENGTex, gPauseCurrentPositionGERTex, gPauseCurrentPositionFRATex); @@ -615,7 +735,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { } } - if (gSaveContext.worldMapArea < 22) { + if (gSaveContext.worldMapArea < WORLD_MAP_AREA_MAX) { gDPPipeSync(POLY_OPA_DISP++); gDPSetTextureFilter(POLY_OPA_DISP++, G_TF_POINT); @@ -749,7 +869,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); } - if (gSaveContext.worldMapArea < 22) { + if (gSaveContext.worldMapArea < WORLD_MAP_AREA_MAX) { gDPPipeSync(POLY_OPA_DISP++); gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index 0f9d3e8693..c72a47810a 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -2192,23 +2192,103 @@ static s16* sVtxPageQuadsHeight[] = { }; static s16 sVtxMapWorldAreaX[] = { - 0xFFC6, 0x000B, 0x001E, 0x001E, 0x000F, 0x0026, 0xFFC2, 0x003C, 0x003D, 0xFFB2, 0xFED4, - 0xFFAA, 0xFFBF, 0xFED4, 0xFED4, 0xFFEB, 0x000E, 0x000D, 0x0014, 0xFFDE, 0xFED4, 0x0000, + -58, // WORLD_MAP_AREA_HYRULE_FIELD + 11, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 30, // WORLD_MAP_AREA_GRAVEYARD + 30, // WORLD_MAP_AREA_ZORAS_RIVER + 15, // WORLD_MAP_AREA_KOKIRI_FOREST + 38, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -62, // WORLD_MAP_AREA_LAKE_HYLIA + 60, // WORLD_MAP_AREA_ZORAS_DOMAIN + 61, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + -78, // WORLD_MAP_AREA_GERUDO_VALLEY + -300, // WORLD_MAP_AREA_LOST_WOODS + -86, // WORLD_MAP_AREA_DESERT_COLOSSUS + -65, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -300, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -300, // WORLD_MAP_AREA_MARKET + -21, // WORLD_MAP_AREA_HYRULE_CASTLE + 14, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 13, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 20, // WORLD_MAP_AREA_GORON_CITY + -34, // WORLD_MAP_AREA_LON_LON_RANCH + -300, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaWidth[] = { - 0x0059, 0x0014, 0x000E, 0x0023, 0x0020, 0x0011, 0x0032, 0x0010, 0x0015, 0x0014, 0xFFFF, - 0x0020, 0x0010, 0xFFFF, 0xFFFF, 0x0013, 0x0013, 0x0015, 0x0010, 0x0014, 0xFFFF, 0x0000, + 89, // WORLD_MAP_AREA_HYRULE_FIELD + 20, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 14, // WORLD_MAP_AREA_GRAVEYARD + 35, // WORLD_MAP_AREA_ZORAS_RIVER + 32, // WORLD_MAP_AREA_KOKIRI_FOREST + 17, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 50, // WORLD_MAP_AREA_LAKE_HYLIA + 16, // WORLD_MAP_AREA_ZORAS_DOMAIN + 21, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 20, // WORLD_MAP_AREA_GERUDO_VALLEY + -1, // WORLD_MAP_AREA_LOST_WOODS + 32, // WORLD_MAP_AREA_DESERT_COLOSSUS + 16, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -1, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -1, // WORLD_MAP_AREA_MARKET + 19, // WORLD_MAP_AREA_HYRULE_CASTLE + 19, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 21, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 16, // WORLD_MAP_AREA_GORON_CITY + 20, // WORLD_MAP_AREA_LON_LON_RANCH + -1, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaY[] = { - 0x0001, 0x000F, 0x0014, 0x0009, 0xFFE2, 0xFFEF, 0xFFDE, 0x000F, 0x001E, 0x0001, 0xFED4, - 0x002A, 0x0007, 0xFED4, 0xFED4, 0x0018, 0x0024, 0x0035, 0x0025, 0xFFF3, 0xFED4, 0x0000, + 1, // WORLD_MAP_AREA_HYRULE_FIELD + 15, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 20, // WORLD_MAP_AREA_GRAVEYARD + 9, // WORLD_MAP_AREA_ZORAS_RIVER + -30, // WORLD_MAP_AREA_KOKIRI_FOREST + -17, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + -34, // WORLD_MAP_AREA_LAKE_HYLIA + 15, // WORLD_MAP_AREA_ZORAS_DOMAIN + 30, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 1, // WORLD_MAP_AREA_GERUDO_VALLEY + -300, // WORLD_MAP_AREA_LOST_WOODS + 42, // WORLD_MAP_AREA_DESERT_COLOSSUS + 7, // WORLD_MAP_AREA_GERUDOS_FORTRESS + -300, // WORLD_MAP_AREA_HAUNTED_WASTELAND + -300, // WORLD_MAP_AREA_MARKET + 24, // WORLD_MAP_AREA_HYRULE_CASTLE + 36, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 53, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 37, // WORLD_MAP_AREA_GORON_CITY + -13, // WORLD_MAP_AREA_LON_LON_RANCH + -300, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaHeight[] = { - 0x0024, 0x000F, 0x0010, 0x0017, 0x0017, 0x0010, 0x0018, 0x000D, 0x0011, 0x0012, 0x0001, - 0x0019, 0x000D, 0x0001, 0x0001, 0x000D, 0x0015, 0x000F, 0x000D, 0x000C, 0x0001, 0x0000, + 36, // WORLD_MAP_AREA_HYRULE_FIELD + 15, // WORLD_MAP_AREA_KAKARIKO_VILLAGE + 16, // WORLD_MAP_AREA_GRAVEYARD + 23, // WORLD_MAP_AREA_ZORAS_RIVER + 23, // WORLD_MAP_AREA_KOKIRI_FOREST + 16, // WORLD_MAP_AREA_SACRED_FOREST_MEADOW + 24, // WORLD_MAP_AREA_LAKE_HYLIA + 13, // WORLD_MAP_AREA_ZORAS_DOMAIN + 17, // WORLD_MAP_AREA_ZORAS_FOUNTAIN + 18, // WORLD_MAP_AREA_GERUDO_VALLEY + 1, // WORLD_MAP_AREA_LOST_WOODS + 25, // WORLD_MAP_AREA_DESERT_COLOSSUS + 13, // WORLD_MAP_AREA_GERUDOS_FORTRESS + 1, // WORLD_MAP_AREA_HAUNTED_WASTELAND + 1, // WORLD_MAP_AREA_MARKET + 13, // WORLD_MAP_AREA_HYRULE_CASTLE + 21, // WORLD_MAP_AREA_DEATH_MOUNTAIN_TRAIL + 15, // WORLD_MAP_AREA_DEATH_MOUNTAIN_CRATER + 13, // WORLD_MAP_AREA_GORON_CITY + 12, // WORLD_MAP_AREA_LON_LON_RANCH + 1, // WORLD_MAP_AREA_QUESTION_MARK + 0, // WORLD_MAP_AREA_GANONS_CASTLE }; s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 numQuads) { @@ -3269,7 +3349,7 @@ void KaleidoScope_Update(PlayState* play) { Interface_SetDoAction(play, DO_ACTION_DECIDE); PRINTF("サイズ=%x\n", size2 + size1 + size0 + size + 0x800); - if (((void)0, gSaveContext.worldMapArea) < 22) { + if (((void)0, gSaveContext.worldMapArea) < WORLD_MAP_AREA_MAX) { #if OOT_NTSC if (gSaveContext.language == LANGUAGE_JPN) { DmaMgr_RequestSync(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), @@ -3421,7 +3501,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->worldMapPoints[7] = 1; } - if (gBitFlags[1] & gSaveContext.save.info.worldMapAreaData) { + if (gBitFlags[WORLD_MAP_AREA_KAKARIKO_VILLAGE] & gSaveContext.save.info.worldMapAreaData) { pauseCtx->worldMapPoints[8] = 1; } @@ -3457,7 +3537,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->worldMapPoints[8] = 1; } - if (gBitFlags[10] & gSaveContext.save.info.worldMapAreaData) { + if (gBitFlags[WORLD_MAP_AREA_LOST_WOODS] & gSaveContext.save.info.worldMapAreaData) { pauseCtx->worldMapPoints[9] = 1; }