mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
z_map
This commit is contained in:
@@ -5,7 +5,11 @@
|
||||
<Texture Name="gDoorLockTex" OutName="door_lock" Format="rgba16" Width="32" Height="32" Offset="0x2C0" />
|
||||
<Texture Name="gBossDoorLockTex" OutName="boss_door_lock" Format="rgba16" Width="32" Height="32" Offset="0xAC0" />
|
||||
<Texture Name="gDoorChainTex" OutName="door_chain" Format="rgba16" Width="16" Height="128" Offset="0x12C0" />
|
||||
<Blob Name="gameplay_dangeon_keep_Blob_0022C0" Size="0x5000" Offset="0x22C0" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_0022C8" OutName="tex_0022C8" Format="i4" Width="96" Height="85" Offset="0x22C8" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_0032C8" OutName="tex_0032C8" Format="i4" Width="96" Height="85" Offset="0x32C8" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_0042C8" OutName="tex_0042C8" Format="i4" Width="96" Height="85" Offset="0x42C8" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_0052C8" OutName="tex_0052C8" Format="i4" Width="96" Height="85" Offset="0x52C8" />
|
||||
<Texture Name="gameplay_dangeon_keep_Tex_0062C8" OutName="tex_0062C8" Format="i4" Width="96" Height="85" Offset="0x62C8" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_007300" Offset="0x7300" />
|
||||
<Collision Name="gameplay_dangeon_keep_Colheader_007498" Offset="0x7498" />
|
||||
<DList Name="gameplay_dangeon_keep_DL_007650" Offset="0x7650" />
|
||||
|
||||
@@ -880,7 +880,7 @@
|
||||
<!-- Bombchu -->
|
||||
<Texture Name="gBombchuBodyTex" OutName="bombchu_body" Format="rgba16" Width="8" Height="8" Offset="0x16060" />
|
||||
<DList Name="gBombchuDL" Offset="0x16360" />
|
||||
|
||||
|
||||
<Texture Name="gEffBombExplosion1Tex" OutName="eff_bomb_explosion_1" Format="ia16" Width="32" Height="32" Offset="0x164D0" />
|
||||
<Texture Name="gEffBombExplosion2Tex" OutName="eff_bomb_explosion_2" Format="ia16" Width="32" Height="32" Offset="0x16CD0" />
|
||||
<Texture Name="gEffBombExplosion3Tex" OutName="eff_bomb_explosion_3" Format="ia16" Width="32" Height="32" Offset="0x174D0" />
|
||||
@@ -908,7 +908,7 @@
|
||||
<Texture Name="gElegyShellBeltAndTunicTex" OutName="elegy_shell_human_belt_and_tunic" Format="rgba16" Width="32" Height="16" Offset="0x1E6F8" />
|
||||
<Texture Name="gElegyShellHumanHairTex" OutName="elegy_shell_human_hair" Format="rgba16" Width="16" Height="16" Offset="0x1EAF8" />
|
||||
|
||||
<DList Name="gameplay_keep_DL_01ED00" Offset="0x1ED00" />
|
||||
<DList Name="gCompassArrowDL" Offset="0x1ED00" />
|
||||
<DList Name="gameplay_keep_DL_01ED90" Offset="0x1ED90" />
|
||||
<DList Name="gZTargetArrowDL" Offset="0x1F0F0" />
|
||||
<Texture Name="gameplay_keep_Tex_01F200" OutName="tex_01F200" Format="i8" Width="8" Height="8" Offset="0x1F200" />
|
||||
@@ -1290,7 +1290,7 @@
|
||||
<Texture Name="gDropDekuNutTex" OutName="drop_deku_nut" Format="rgba16" Width="32" Height="32" Offset="0x607C0" />
|
||||
<Texture Name="gDropDekuStickTex" OutName="drop_deku_stick" Format="rgba16" Width="32" Height="32" Offset="0x60FC0" />
|
||||
<Texture Name="gDropMagicLargeTex" OutName="drop_magic_large" Format="rgba16" Width="32" Height="32" Offset="0x617C0" />
|
||||
|
||||
|
||||
<!-- Rupees -->
|
||||
<Texture Name="gRupeeGreenTex" OutName="rupee_green" Format="rgba16" Width="4" Height="4" Offset="0x61FC0" />
|
||||
<Texture Name="gRupeeBlueTex" OutName="rupee_blue" Format="rgba16" Width="4" Height="4" Offset="0x61FE0" />
|
||||
@@ -1306,7 +1306,7 @@
|
||||
<Texture Name="gRupeeLightRedTex" OutName="rupee_light_red" Format="rgba16" Width="4" Height="4" Offset="0x63B90" />
|
||||
<Texture Name="gRupeeLightBlueTex" OutName="rupee_light_blue" Format="rgba16" Width="4" Height="4" Offset="0x63BB0" />
|
||||
<Texture Name="gHeartContainerTex" OutName="heart_container" Format="rgba16" Width="32" Height="32" Offset="0x63BD0" />
|
||||
|
||||
|
||||
<Texture Name="gameplay_keep_Tex_0643D0" OutName="tex_0643D0" Format="rgba16" Width="32" Height="32" Offset="0x643D0" />
|
||||
<Texture Name="gameplay_keep_Tex_064BD0" OutName="tex_064BD0" Format="rgba16" Width="32" Height="32" Offset="0x64BD0" />
|
||||
<Texture Name="gameplay_keep_Tex_0653D0" OutName="tex_0653D0" Format="rgba16" Width="32" Height="32" Offset="0x653D0" />
|
||||
@@ -1315,12 +1315,12 @@
|
||||
<Texture Name="gameplay_keep_Tex_066BD0" OutName="tex_066BD0" Format="rgba16" Width="64" Height="32" Offset="0x66BD0" />
|
||||
<Texture Name="gameplay_keep_Tex_067BD0" OutName="tex_067BD0" Format="rgba16" Width="32" Height="32" Offset="0x67BD0" />
|
||||
<Texture Name="gameplay_keep_Tex_0683D0" OutName="tex_0683D0" Format="rgba16" Width="32" Height="32" Offset="0x683D0" />
|
||||
|
||||
|
||||
<Texture Name="gSignRectangularSideTex" OutName="sign_rectangular_side" Format="rgba16" Width="32" Height="16" Offset="0x68BD0" />
|
||||
<Texture Name="gSignRectangularFrontTex" OutName="sign_rectangular_front" Format="rgba16" Width="32" Height="16" Offset="0x68FD0" />
|
||||
<Texture Name="gSignPostWoodTex" OutName="sign_post_wood" Format="rgba16" Width="64" Height="8" Offset="0x693D0" />
|
||||
<Texture Name="gSignLetteringTex" OutName="sign_lettering" Format="rgba16" Width="64" Height="32" Offset="0x697D0" />
|
||||
|
||||
|
||||
<DList Name="gameplay_keep_DL_06A800" Offset="0x6A800" />
|
||||
<Texture Name="gameplay_keep_Tex_06A880" OutName="tex_06A880" Format="i8" Width="16" Height="16" Offset="0x6A880" />
|
||||
<DList Name="gameplay_keep_DL_06AB30" Offset="0x6AB30" />
|
||||
@@ -1403,7 +1403,7 @@
|
||||
<Texture Name="gSunEvening1Tex" OutName="sun_evening_1" Format="i4" Width="64" Height="31" Offset="0x7A310" />
|
||||
<Texture Name="gSunEvening2Tex" OutName="sun_evening_2" Format="i4" Width="64" Height="16" Offset="0x7A6F0" />
|
||||
<Texture Name="gSunEvening3Tex" OutName="sun_evening_3" Format="i4" Width="64" Height="17" Offset="0x7A8F0" />
|
||||
|
||||
|
||||
<DList Name="gSunSparkleMaterialDL" Offset="0x7AB10" /> <!-- sun (sparkles when small) displaylist -->
|
||||
<DList Name="gSunSparkleModelDL" Offset="0x7AB58" />
|
||||
<DList Name="gSunDL" Offset="0x7AB70" />
|
||||
|
||||
@@ -592,114 +592,6 @@ s32 ZeldaArena_Check(void);
|
||||
void ZeldaArena_Init(void* start, size_t size);
|
||||
void ZeldaArena_Cleanup(void);
|
||||
u8 ZeldaArena_IsInitialized(void);
|
||||
// void func_80102E40(void);
|
||||
// void func_80102E90(void);
|
||||
// void func_80102EA4(void);
|
||||
void func_80102EB4(u32 param_1);
|
||||
void func_80102ED0(u32 param_1);
|
||||
s32 func_80102EF0(PlayState* play);
|
||||
// void func_80102F9C(void);
|
||||
// void func_80103090(void);
|
||||
// void func_801030B4(void);
|
||||
// void func_801030F4(void);
|
||||
// void func_801031D0(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_801039EC(void);
|
||||
// void func_80103A10(void);
|
||||
// void func_80103A58(void);
|
||||
// void func_8010439C(void);
|
||||
// void func_801045AC(void);
|
||||
// void func_80104AE8(void);
|
||||
// void func_80104C80(void);
|
||||
void func_80104CF4(PlayState* play);
|
||||
// void func_80104F34(void);
|
||||
s32 func_80105294(void);
|
||||
s16 func_80105318(void);
|
||||
// void func_80105328(void);
|
||||
// void func_8010534C(void);
|
||||
void func_8010549C(PlayState* play, void* segmentAddress);
|
||||
void func_8010565C(PlayState* play, u8 num, void* segmentAddress);
|
||||
void func_80105818(PlayState* play, u32 uParm2, TransitionActorEntry* puParm3);
|
||||
void func_80105A40(PlayState* play);
|
||||
void func_80105B34(PlayState* play);
|
||||
void func_80105C40(s16 arg0);
|
||||
// void func_80105FE0(void);
|
||||
// void func_80106408(void);
|
||||
// void func_80106450(void);
|
||||
// void func_801064CC(void);
|
||||
s32 func_80106530(PlayState* play);
|
||||
// void func_8010657C(void);
|
||||
void func_80106644(PlayState* play, s16 arg1, s16 arg2, s16 arg3);
|
||||
// void func_8010683C(void);
|
||||
// void func_801068B4(void);
|
||||
// void func_801068D8(void);
|
||||
void* func_801068FC(PlayState* play, void* arg1, size_t size);
|
||||
// void func_80106BEC(void);
|
||||
// void func_80106D08(void);
|
||||
// void func_80106D5C(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_80107B78(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_80108124(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6);
|
||||
// void func_80108558(UNK_TYPE1 param_1, UNK_TYPE1 param_2, UNK_TYPE1 param_3, UNK_TYPE1 param_4, UNK_TYPE4 param_5, UNK_TYPE4 param_6, UNK_TYPE4 param_7);
|
||||
// void func_80108A10(void);
|
||||
// void func_80108A64(void);
|
||||
void func_80108AF8(PlayState* play);
|
||||
s32 func_801090B0(s32 arg0);
|
||||
s32 func_80109124(s16 arg0);
|
||||
void func_801091F0(PlayState* play);
|
||||
void func_80109428(PlayState* play);
|
||||
// void func_801094A0(void);
|
||||
// void func_801094C8(void);
|
||||
// void func_801094F8(void);
|
||||
// void func_80109528(void);
|
||||
// void func_8010954C(void);
|
||||
// void func_8010956C(void);
|
||||
// void func_8010958C(void);
|
||||
// void func_801095AC(void);
|
||||
// void func_801095DC(void);
|
||||
// void func_8010960C(void);
|
||||
// void func_80109630(void);
|
||||
// void func_80109650(void);
|
||||
// void func_80109670(void);
|
||||
// void func_801096D4(void);
|
||||
// void func_80109714(void);
|
||||
// void func_80109754(void);
|
||||
// void func_801097C8(void);
|
||||
// void func_8010983C(void);
|
||||
// void func_801098A0(void);
|
||||
// void func_80109908(void);
|
||||
// UNK_TYPE4 func_80109964(s32 param_1);
|
||||
// void func_8010997C(void);
|
||||
// void func_801099AC(void);
|
||||
// void func_801099DC(void);
|
||||
// void func_80109A00(void);
|
||||
// void func_80109A20(void);
|
||||
// void func_80109A40(void);
|
||||
// void func_80109A98(void);
|
||||
// void func_80109AD8(void);
|
||||
// void func_80109B38(void);
|
||||
// void func_80109BA0(void);
|
||||
// void func_80109BF4(void);
|
||||
// void func_80109C38(void);
|
||||
// void func_80109CBC(void);
|
||||
// void func_80109D40(void);
|
||||
// void func_80109DD8(void);
|
||||
// void func_80109E70(void);
|
||||
// void func_80109EF8(void);
|
||||
// void func_80109F78(void);
|
||||
s32 Map_GetDungeonOrBossAreaIndex(PlayState* play);
|
||||
s32 Map_IsInDungeonOrBossArea(PlayState* play);
|
||||
s32 func_8010A0A4(PlayState* play);
|
||||
// void Map_GetDungeonAreaIndex(PlayState* play);
|
||||
// void Map_IsInDungeonArea(PlayState* play);
|
||||
// void Map_GetBossAreaIndex(PlayState* play);
|
||||
// void Map_IsInBossArea(PlayState* play);
|
||||
// void func_8010A238(PlayState* play);
|
||||
// void func_8010A2AC(PlayState* play);
|
||||
void Minimap_SavePlayerRoomInitInfo(PlayState* play);
|
||||
void Map_InitRoomData(PlayState* play, s16 room);
|
||||
void Map_Destroy(PlayState* play);
|
||||
void Map_Init(PlayState* play);
|
||||
void Minimap_Draw(PlayState* play);
|
||||
void Map_Update(PlayState* play);
|
||||
// void func_8010A760(void);
|
||||
// void func_8010A7CC(void);
|
||||
// void func_8010A814(void);
|
||||
|
||||
+1
-1
@@ -146,7 +146,7 @@ extern RegEditor* gRegEditor;
|
||||
#define R_MOON_CRASH_TIMER_X XREG(81)
|
||||
#define R_PAUSE_OWLWARP_ALPHA XREG(87)
|
||||
#define R_STORY_FILL_SCREEN_ALPHA XREG(91)
|
||||
#define R_REVERSE_FLOOR_INDEX XREG(94)
|
||||
#define R_PLAYER_FLOOR_REVERSE_INDEX XREG(94) // stores what floor the player is on
|
||||
#define R_MINIMAP_DISABLED XREG(95)
|
||||
|
||||
#define R_ENV_LIGHT1_DIR(i) cREG(3 + (i))
|
||||
|
||||
+1
-63
@@ -100,62 +100,8 @@ extern BgSpecialSceneMaxObjects sCustomDynapolyMem[];
|
||||
|
||||
extern u8 kanfontOrdering[92];
|
||||
// extern actor_init_var_func sInitChainHandlers[11];
|
||||
// extern UNK_TYPE4 D_801BEAD4;
|
||||
// extern UNK_TYPE4 D_801BEAD8;
|
||||
// extern UNK_TYPE1 D_801BEAE0;
|
||||
// extern UNK_TYPE4 D_801BEAF4;
|
||||
// extern UNK_TYPE4 D_801BEAF8;
|
||||
// extern UNK_TYPE4 D_801BEB04;
|
||||
// extern UNK_TYPE4 D_801BEB08;
|
||||
// extern UNK_TYPE4 D_801BEB14;
|
||||
// extern UNK_TYPE4 D_801BEB18;
|
||||
// extern UNK_TYPE4 D_801BEB24;
|
||||
// extern UNK_TYPE4 D_801BEB28;
|
||||
// extern UNK_TYPE1 D_801BEB38;
|
||||
// extern UNK_TYPE4 D_801BEBB8;
|
||||
// extern UNK_TYPE4 D_801BEBD8;
|
||||
// extern UNK_TYPE2 D_801BEBF8;
|
||||
// extern UNK_TYPE2 D_801BEBFA;
|
||||
// extern UNK_TYPE2 D_801BEBFC;
|
||||
// extern UNK_TYPE2 D_801BEC10;
|
||||
extern UNK_PTR D_801BEC14;
|
||||
// extern UNK_TYPE4 D_801BEC1C;
|
||||
// extern UNK_TYPE4 D_801BEC20;
|
||||
// extern UNK_TYPE1 D_801BEC24;
|
||||
// extern UNK_TYPE1 D_801BEC2C;
|
||||
// extern UNK_TYPE2 D_801BEC5C;
|
||||
// extern UNK_TYPE2 D_801BEC5E;
|
||||
// extern UNK_TYPE4 D_801BEC70;
|
||||
// extern UNK_TYPE1 D_801BEC84;
|
||||
// extern UNK_TYPE1 D_801BECA4;
|
||||
// extern UNK_TYPE1 D_801BECC4;
|
||||
// extern UNK_TYPE1 D_801BECE4;
|
||||
// extern UNK_TYPE1 D_801BED00;
|
||||
// extern UNK_TYPE2 D_801BED24;
|
||||
// extern UNK_TYPE1 D_801BED3C;
|
||||
// extern UNK_TYPE1 D_801BED40;
|
||||
// extern UNK_TYPE1 D_801BED4C;
|
||||
// extern UNK_TYPE1 D_801BED54;
|
||||
// extern UNK_TYPE1 D_801BED55;
|
||||
// extern UNK_TYPE1 D_801BED56;
|
||||
// extern UNK_TYPE1 D_801BED88;
|
||||
// extern UNK_TYPE1 D_801BEFC8;
|
||||
// extern UNK_TYPE1 D_801BF15C;
|
||||
// extern UNK_TYPE1 D_801BF170;
|
||||
// extern UNK_TYPE1 D_801BF176;
|
||||
// extern UNK_TYPE1 D_801BF177;
|
||||
// extern UNK_TYPE1 D_801BF178;
|
||||
// extern UNK_TYPE1 D_801BF3B4;
|
||||
// extern UNK_TYPE2 D_801BF550;
|
||||
// extern UNK_TYPE2 D_801BF554;
|
||||
// extern UNK_TYPE2 D_801BF558;
|
||||
// extern UNK_TYPE4 D_801BF55C;
|
||||
// extern UNK_TYPE4 D_801BF580;
|
||||
// extern UNK_TYPE4 D_801BF594;
|
||||
// extern UNK_TYPE4 D_801BF5A4;
|
||||
// extern UNK_TYPE2 D_801BF5B0;
|
||||
|
||||
extern UNK_PTR D_801BF5C0;
|
||||
// extern UNK_TYPE1 D_801BF68C;
|
||||
|
||||
extern FlexSkeletonHeader* gPlayerSkeletons[PLAYER_FORM_MAX];
|
||||
extern PlayerModelIndices gPlayerModelTypes[];
|
||||
@@ -1664,14 +1610,6 @@ extern SaveContext gSaveContext;
|
||||
// extern UNK_TYPE1 D_801F4F68;
|
||||
// extern UNK_TYPE1 D_801F4F6A;
|
||||
// extern LightsBuffer sLightsBuffer;
|
||||
// extern UNK_TYPE1 D_801F5130;
|
||||
// extern UNK_TYPE1 D_801F5270;
|
||||
// extern UNK_TYPE1 D_801F528E;
|
||||
// extern UNK_TYPE1 D_801F53B0;
|
||||
// extern UNK_TYPE1 D_801F56B0;
|
||||
// extern UNK_TYPE1 D_801F5730;
|
||||
// extern UNK_TYPE1 D_801F57B4;
|
||||
// extern UNK_TYPE1 D_801F5834;
|
||||
|
||||
// extern UNK_TYPE1 sSkyboxDrawMatrix;
|
||||
// extern UNK_TYPE1 D_801F6AF0;
|
||||
|
||||
+2
-2
@@ -113,7 +113,7 @@ typedef struct PauseContext {
|
||||
/* 0x238 */ s16 cursorPoint[5];
|
||||
/* 0x242 */ s16 cursorXIndex[5];
|
||||
/* 0x24C */ s16 cursorYIndex[5];
|
||||
/* 0x256 */ s16 unk_256; // Uses DungeonItem enum
|
||||
/* 0x256 */ s16 cursorMapDungeonItem; // Uses DungeonItem enum
|
||||
/* 0x258 */ s16 cursorSpecialPos;
|
||||
/* 0x25A */ s16 pageSwitchInputTimer; // Used to introduce a delay before switching page when arriving on the "scroll left/right" positions while holding stick left/right.
|
||||
/* 0x25C */ u16 namedItem;
|
||||
@@ -202,7 +202,7 @@ typedef struct PlayState {
|
||||
/* 0x17104 */ AnimationContext animationCtx;
|
||||
/* 0x17D88 */ ObjectContext objectCtx;
|
||||
/* 0x186E0 */ RoomContext roomCtx;
|
||||
/* 0x18760 */ DoorContext doorCtx;
|
||||
/* 0x18760 */ TransitionActorList transitionActors;
|
||||
/* 0x18768 */ void (*playerInit)(Player* player, struct PlayState* play, FlexSkeletonHeader* skelHeader);
|
||||
/* 0x1876C */ void (*playerUpdate)(Player* player, struct PlayState* play, Input* input);
|
||||
/* 0x18770 */ void (*unk_18770)(struct PlayState* play, Player* player);
|
||||
|
||||
@@ -1,6 +1,144 @@
|
||||
#ifndef Z64MAP_H
|
||||
#define Z64MAP_H
|
||||
#include "ultra64.h"
|
||||
#include "z64scene.h"
|
||||
|
||||
struct PlayState;
|
||||
|
||||
/*
|
||||
Handles the minimap and pause screen dungeon map system.
|
||||
|
||||
z_map_data.c stores MapSpriteInfo and helper functions to "simplify" accessing this data
|
||||
|
||||
Two separate Id systems are used to access data
|
||||
|
||||
mapId
|
||||
0x000-0x004 fetches minimap sprite data from gameplay_dangeon_keep
|
||||
0x005-0x039 fetches dungeon map sprite data from map_i_static
|
||||
0x100-0x161 fetches minimap sprite data from map_grand_static
|
||||
|
||||
mapCompactId
|
||||
0x000-0x039 fetches dungeon map sprite data from map_i_static
|
||||
0x03A-0x09B fetches minimap sprite data from map_grand_static
|
||||
*/
|
||||
|
||||
#define FLOOR_INDEX_MAX 4
|
||||
#define FLOOR_MIN_Y -32767
|
||||
|
||||
/* z_map_data */
|
||||
#define MAPDATA_GAMEPLAY_DANGEON_KEEP_MAX 5
|
||||
#define MAPDATA_MAP_I_MAX 0x3A
|
||||
#define MAPDATA_MAP_GRAND 0x100
|
||||
#define MAPDATA_MAP_GRAND_MAX 0x162
|
||||
#define MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(id) (id + (MAPDATA_MAP_GRAND - MAPDATA_MAP_I_MAX))
|
||||
#define MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId) (mapId - MAPDATA_MAP_GRAND)
|
||||
|
||||
#define MAPDATA_MID_GAMEPLAY_DANGEON_KEEP 0
|
||||
#define MAPDATA_MID_MAP_GRAND_STATIC 1
|
||||
#define MAPDATA_MID_MAP_I_STATIC 2
|
||||
|
||||
#define MAPDATA_CPID_MAP_GRAND_STATIC 0
|
||||
#define MAPDATA_CPID_MAP_I_STATIC 1
|
||||
#define MAPDATA_CPID_2 2
|
||||
|
||||
#define MAPDATA_DRAW_0 0
|
||||
#define MAPDATA_DRAW_1 1
|
||||
#define MAPDATA_DRAW_2 2
|
||||
#define MAPDATA_DRAW_3 3
|
||||
|
||||
/* z_map_disp */
|
||||
typedef struct {
|
||||
/* 0x00 */ MapDataScene* mapDataScene;
|
||||
/* 0x04 */ s32 curRoom;
|
||||
/* 0x08 */ s16 minimapBaseX;
|
||||
/* 0x0A */ s16 minimapBaseY;
|
||||
/* 0x0C */ s16 minimapCurX;
|
||||
/* 0x0E */ s16 minimapCurY;
|
||||
/* 0x10 */ TexturePtr minimapCurTex; // gameplay cur minimap room
|
||||
/* 0x14 */ s32 prevRoom;
|
||||
/* 0x18 */ TexturePtr minimapPrevTex;
|
||||
/* 0x1C */ s16 minimapPrevX; // for room swap animation
|
||||
/* 0x1E */ s16 minimapPrevY; // for room swap animation
|
||||
/* 0x20 */ s32 unk20;
|
||||
/* 0x24 */ s32 swapAnimTimer;
|
||||
/* 0x28 */ void* texBuff0;
|
||||
/* 0x2C */ void* texBuff1;
|
||||
/* 0x30 */ s16 sceneMinX; //scene minBounds.x
|
||||
/* 0x32 */ s16 sceneMinZ; //scene minBounds.z
|
||||
/* 0x34 */ s16 sceneWidth; //scene boundsWidth.x
|
||||
/* 0x36 */ s16 sceneHeight; //scene boundsWidth.z
|
||||
/* 0x38 */ s16 sceneMidX; //scene boundsMidpoint.x
|
||||
/* 0x3A */ s16 sceneMidZ; //scene boundsMidpoint.z
|
||||
/* 0x3C */ s16* roomStoreyList; // list of lowest storey each room crosses
|
||||
/* 0x40 */ s16 numStoreys; // number of distinct storeys
|
||||
/* 0x42 */ s16 pauseMapCurStorey;
|
||||
/* 0x44 */ s16 bottomStorey; // configures what storey 0 is displayed as
|
||||
/* 0x48 */ s16* storeyYList; // list of min Ys for each storey
|
||||
/* 0x4C */ s16 timer;
|
||||
/* 0x50 */ s32 numChests;
|
||||
/* 0x54 */ MapDataChest* mapDataChests;
|
||||
/* 0x58 */ s16 bossRoomStorey;
|
||||
/* 0x5A */ s16 unk5A;
|
||||
} MapDisp; // size = 0x5C
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ s32 textureCount;
|
||||
/* 0x004 */ s32 mapI_mapCompactId[ROOM_MAX];
|
||||
/* 0x084 */ void* mapI_roomTextures[ROOM_MAX];
|
||||
/* 0x104 */ void* roomSprite[ROOM_MAX];
|
||||
/* 0x184 */ s32 animTimer;
|
||||
} PauseDungeonMap; // size = 0x188
|
||||
|
||||
/* z_map_disp */
|
||||
void func_80102EB4(u32 flag);
|
||||
void func_80102ED0(u32 flag);
|
||||
s32 MapDisp_CurRoomHasMapI(struct PlayState* play);
|
||||
void MapDisp_Init(struct PlayState* play);
|
||||
s32 MapDisp_GetBossIconY(void);
|
||||
s16 MapDisp_GetBossRoomStorey(void);
|
||||
void MapDisp_InitMapData(struct PlayState* play, void* segmentAddress);
|
||||
void MapDisp_InitChestData(struct PlayState* play, s32 num, void* segmentAddress);
|
||||
void MapDisp_InitTransitionActorData(struct PlayState* play, s32 num, TransitionActorEntry* transitionActorList);
|
||||
void MapDisp_Destroy(struct PlayState* play);
|
||||
void MapDisp_Update(struct PlayState* play);
|
||||
void MapDisp_SwapRooms(s16 nextRoom);
|
||||
s32 MapDisp_IsMinimapToggleBlocked(struct PlayState* play);
|
||||
void MapDisp_DrawMinimap(struct PlayState* play, s32 playerInitX, s32 playerInitZ, s32 playerInitDir);
|
||||
void* MapDisp_AllocDungeonMap(struct PlayState* play, void* heap);
|
||||
void MapDisp_DrawDungeonFloorSelect(struct PlayState* play);
|
||||
s32 MapDisp_IsValidStorey(s32 storey);
|
||||
s32 MapDisp_GetPlayerStorey(s16 checkY);
|
||||
void MapDisp_DrawDungeonMap(struct PlayState* play);
|
||||
void MapDisp_UpdateDungeonMap(struct PlayState* play);
|
||||
|
||||
/* z_map_data */
|
||||
void MapData_GetMapColor(s32 colorIndex, Color_RGBA8* color);
|
||||
TexturePtr MapData_GetMapTexGameplayDangeonKeep(s32);
|
||||
s32 MapData_GetMapCompactId(s32);
|
||||
s32 MapData_MID_GetType(s32);
|
||||
s32 MapData_CPID_GetSizeOfMapTex(s32);
|
||||
void MapData_GetDrawType(s32, s32*);
|
||||
s32 MapData_GetMapColorIndex(s32);
|
||||
s32 MapDisp_GetSizeOfMapITex(s32 mapCompactId);
|
||||
s32 MapData_GetMapIId(s32);
|
||||
s32 MapData_GetSizeOfMapGrandTex(s32 mapId);
|
||||
void MapData_GetMapTexDim(s32 mapId, s32* width, s32* height);
|
||||
void MapData_GetMapTexOffset(s32 mapId, s32* offsetX, s32* offsetY);
|
||||
void MapData_GetMapScale(s32 mapId, s32 *scale);
|
||||
void MapData_CPID_GetTexDim(s32 mapCompactId, s32* width, s32* height);
|
||||
void MapData_CPID_GetTexOffset(s32 mapCompactId, s32* offsetX, s32* offsetY);
|
||||
s16 MapData_CPID_GetMapScale(s32 mapCompactId);
|
||||
|
||||
/* z_map_exp */
|
||||
s32 Map_GetDungeonOrBossAreaIndex(struct PlayState* play);
|
||||
s32 Map_IsInDungeonOrBossArea(struct PlayState* play);
|
||||
s32 MapExp_CurRoomHasMapI(struct PlayState* play);
|
||||
s32 Map_IsInBossScene(struct PlayState* play);
|
||||
void Map_SetAreaEntrypoint(struct PlayState* play);
|
||||
void Map_InitRoomData(struct PlayState* play, s16 room);
|
||||
void Map_Destroy(struct PlayState* play);
|
||||
void Map_Init(struct PlayState* play);
|
||||
void Map_DrawMinimap(struct PlayState* play);
|
||||
void Map_Update(struct PlayState* play);
|
||||
|
||||
#endif
|
||||
|
||||
@@ -493,8 +493,15 @@ typedef enum {
|
||||
#define RESET_HEART_PIECE_COUNT (gSaveContext.save.saveInfo.inventory.questItems ^= (4 << QUEST_HEART_PIECE_COUNT))
|
||||
|
||||
#define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.saveInfo.inventory.dungeonItems[(void)0, dungeonIndex] & gBitFlags[item])
|
||||
#define CHECK_DUNGEON_ITEM_ALT(item, dungeonIndex) (gSaveContext.save.saveInfo.inventory.dungeonItems[dungeonIndex] & gBitFlags[item])
|
||||
#define SET_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.saveInfo.inventory.dungeonItems[(void)0, dungeonIndex] |= (u8)gBitFlags[item])
|
||||
#define DUNGEON_KEY_COUNT(dungeonIndex) (gSaveContext.save.saveInfo.inventory.dungeonKeys[(void)0, dungeonIndex])
|
||||
#define GET_DUNGEON_FLOOR_VISITED(sceneId, floor) (gSaveContext.save.saveInfo.permanentSceneFlags[(sceneId)].unk_14 & gBitFlags[floor])
|
||||
#define SET_DUNGEON_FLOOR_VISITED(sceneId, floor) (gSaveContext.save.saveInfo.permanentSceneFlags[(sceneId)].unk_14 |= gBitFlags[floor])
|
||||
#define GET_ROOM_VISITED(sceneId, room) (((void)0, gSaveContext.save.saveInfo.permanentSceneFlags[(sceneId)].rooms) & (1 << (room)))
|
||||
#define SET_ROOM_VISITED(sceneId, room) (gSaveContext.save.saveInfo.permanentSceneFlags[(sceneId)].rooms |= gBitFlags[room])
|
||||
#define GET_CYCLE_CHEST_OPENED(sceneId, chestFlagId) ((void)0, gSaveContext.cycleSceneFlags[(sceneId)].chest) & (1 << (chestFlagId));
|
||||
|
||||
|
||||
#define GET_CUR_FORM_BTN_ITEM(btn) ((u8)((btn) == EQUIP_SLOT_B ? BUTTON_ITEM_EQUIP(CUR_FORM, btn) : BUTTON_ITEM_EQUIP(0, btn)))
|
||||
#define GET_CUR_FORM_BTN_SLOT(btn) ((u8)((btn) == EQUIP_SLOT_B ? C_SLOT_EQUIP(CUR_FORM, btn) : C_SLOT_EQUIP(0, btn)))
|
||||
|
||||
+81
-63
@@ -9,6 +9,9 @@
|
||||
struct GameState;
|
||||
struct PlayState;
|
||||
|
||||
#define ROOM_MAX 32 // maximum number of rooms in a scene
|
||||
#define ROOM_TRANSITION_MAX 48 // maximum number of transition actors in a scene
|
||||
|
||||
#define SPAWN_ROT_FLAGS(rotation, flags) (((rotation) << 7) | (flags))
|
||||
|
||||
typedef struct {
|
||||
@@ -111,7 +114,7 @@ typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdTransiActorList; // size = 0x8
|
||||
} SCmdTransitionActorList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
@@ -211,13 +214,13 @@ typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 data1;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdMinimapSettings; // size = 0x8
|
||||
} SCmdMapData; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 code;
|
||||
/* 0x1 */ u8 num;
|
||||
/* 0x4 */ void* segment;
|
||||
} SCmdMinimapChests; // size = 0x8
|
||||
} SCmdMapDataChests; // size = 0x8
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ ROOM_SHAPE_TYPE_NORMAL,
|
||||
@@ -380,9 +383,9 @@ typedef struct TransitionActorEntry {
|
||||
} TransitionActorEntry; // size = 0x10
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ u8 numTransitionActors;
|
||||
/* 0x4 */ TransitionActorEntry* transitionActorList;
|
||||
} DoorContext; // size = 0x8
|
||||
/* 0x0 */ u8 count;
|
||||
/* 0x4 */ TransitionActorEntry* list;
|
||||
} TransitionActorList; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ s16 id;
|
||||
@@ -495,25 +498,38 @@ typedef struct {
|
||||
} Path; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ UNK_TYPE2 unk0;
|
||||
/* 0x2 */ UNK_TYPE2 unk2;
|
||||
/* 0x4 */ UNK_TYPE2 unk4;
|
||||
/* 0x6 */ UNK_TYPE2 unk6;
|
||||
/* 0x8 */ UNK_TYPE2 unk8;
|
||||
} MinimapEntry; // size = 0xA
|
||||
/* 0x0 */ u16 mapId;
|
||||
/* 0x2 */ s16 centerX;
|
||||
/* 0x4 */ s16 floorY;
|
||||
/* 0x6 */ s16 centerZ;
|
||||
/* 0x8 */ u16 flags;
|
||||
} MapDataRoom; // size = 0xA
|
||||
|
||||
#define MAP_DATA_NO_MAP 0xFFFF
|
||||
#define MAP_DATA_ROOM_FLIP_X 1
|
||||
#define MAP_DATA_ROOM_FLIP_Y 2
|
||||
#define MAP_DATA_ROOM_GET_EXTRA_STOREYS(mapDataRoom) ((((mapDataRoom)->flags) >> 2) & 7)
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ MinimapEntry* entry;
|
||||
/* 0x4 */ s16 unk4;
|
||||
} MinimapList; // size = 0x8
|
||||
/* 0x0 */ MapDataRoom* rooms;
|
||||
/* 0x4 */ s16 scale;
|
||||
} MapDataScene; // size = 0x8
|
||||
|
||||
typedef struct {
|
||||
/* 0x0 */ UNK_TYPE2 unk0;
|
||||
/* 0x2 */ UNK_TYPE2 unk2;
|
||||
/* 0x4 */ UNK_TYPE2 unk4;
|
||||
/* 0x6 */ UNK_TYPE2 unk6;
|
||||
/* 0x8 */ UNK_TYPE2 unk8;
|
||||
} MinimapChest; // size = 0xA
|
||||
/* 0x0 */ s16 room;
|
||||
/* 0x2 */ s16 chestFlagId;
|
||||
/* 0x4 */ s16 x;
|
||||
/* 0x6 */ s16 y;
|
||||
/* 0x8 */ s16 z;
|
||||
} MapDataChest; // size = 0xA
|
||||
|
||||
// TODO: ZAPD updates
|
||||
typedef SCmdMapData SCmdMinimapSettings;
|
||||
typedef SCmdMapDataChests SCmdMinimapChests;
|
||||
typedef MapDataRoom MinimapEntry;
|
||||
typedef MapDataScene MinimapList;
|
||||
typedef MapDataChest MinimapChest;
|
||||
typedef SCmdTransitionActorList SCmdTransiActorList;
|
||||
|
||||
// TODO: consider merging with bgCamInfo?
|
||||
typedef struct {
|
||||
@@ -525,38 +541,38 @@ typedef struct {
|
||||
typedef ActorCsCamInfo CsCameraEntry; // TODO: Remove once ZAPD updates its structs
|
||||
|
||||
typedef union {
|
||||
/* Command: N/A */ SCmdBase base;
|
||||
/* Command: 0x00 */ SCmdSpawnList spawnList;
|
||||
/* Command: 0x01 */ SCmdActorList actorList;
|
||||
/* Command: 0x02 */ SCmdCsCameraList actorCsCamList;
|
||||
/* Command: 0x03 */ SCmdColHeader colHeader;
|
||||
/* Command: 0x04 */ SCmdRoomList roomList;
|
||||
/* Command: 0x05 */ SCmdWindSettings windSettings;
|
||||
/* Command: 0x06 */ SCmdEntranceList entranceList;
|
||||
/* Command: 0x07 */ SCmdSpecialFiles specialFiles;
|
||||
/* Command: 0x08 */ SCmdRoomBehavior roomBehavior;
|
||||
/* Command: N/A */ SCmdBase base;
|
||||
/* Command: 0x00 */ SCmdSpawnList spawnList;
|
||||
/* Command: 0x01 */ SCmdActorList actorList;
|
||||
/* Command: 0x02 */ SCmdCsCameraList actorCsCamList;
|
||||
/* Command: 0x03 */ SCmdColHeader colHeader;
|
||||
/* Command: 0x04 */ SCmdRoomList roomList;
|
||||
/* Command: 0x05 */ SCmdWindSettings windSettings;
|
||||
/* Command: 0x06 */ SCmdEntranceList entranceList;
|
||||
/* Command: 0x07 */ SCmdSpecialFiles specialFiles;
|
||||
/* Command: 0x08 */ SCmdRoomBehavior roomBehavior;
|
||||
/* Command: 0x09 */ // Unused
|
||||
/* Command: 0x0A */ SCmdMesh mesh;
|
||||
/* Command: 0x0B */ SCmdObjectList objectList;
|
||||
/* Command: 0x0C */ SCmdLightList lightList;
|
||||
/* Command: 0x0D */ SCmdPathList pathList;
|
||||
/* Command: 0x0E */ SCmdTransiActorList transiActorList;
|
||||
/* Command: 0x0F */ SCmdLightSettingList lightSettingList;
|
||||
/* Command: 0x10 */ SCmdTimeSettings timeSettings;
|
||||
/* Command: 0x11 */ SCmdSkyboxSettings skyboxSettings;
|
||||
/* Command: 0x12 */ SCmdSkyboxDisables skyboxDisables;
|
||||
/* Command: 0x13 */ SCmdExitList exitList;
|
||||
/* Command: 0x14 */ SCmdEndMarker endMarker;
|
||||
/* Command: 0x15 */ SCmdSoundSettings soundSettings;
|
||||
/* Command: 0x16 */ SCmdEchoSettings echoSettings;
|
||||
/* Command: 0x17 */ SCmdCsScriptList scriptList;
|
||||
/* Command: 0x18 */ SCmdAltHeaders altHeaders;
|
||||
/* Command: 0x19 */ SCmdRegionVisited regionVisited;
|
||||
/* Command: 0x1A */ SCmdTextureAnimations textureAnimations;
|
||||
/* Command: 0x1B */ SCmdCutsceneList cutsceneList;
|
||||
/* Command: 0x1C */ SCmdMinimapSettings minimapSettings;
|
||||
/* Command: 0x0A */ SCmdMesh mesh;
|
||||
/* Command: 0x0B */ SCmdObjectList objectList;
|
||||
/* Command: 0x0C */ SCmdLightList lightList;
|
||||
/* Command: 0x0D */ SCmdPathList pathList;
|
||||
/* Command: 0x0E */ SCmdTransitionActorList transitionActorList;
|
||||
/* Command: 0x0F */ SCmdLightSettingList lightSettingList;
|
||||
/* Command: 0x10 */ SCmdTimeSettings timeSettings;
|
||||
/* Command: 0x11 */ SCmdSkyboxSettings skyboxSettings;
|
||||
/* Command: 0x12 */ SCmdSkyboxDisables skyboxDisables;
|
||||
/* Command: 0x13 */ SCmdExitList exitList;
|
||||
/* Command: 0x14 */ SCmdEndMarker endMarker;
|
||||
/* Command: 0x15 */ SCmdSoundSettings soundSettings;
|
||||
/* Command: 0x16 */ SCmdEchoSettings echoSettings;
|
||||
/* Command: 0x17 */ SCmdCsScriptList scriptList;
|
||||
/* Command: 0x18 */ SCmdAltHeaders altHeaders;
|
||||
/* Command: 0x19 */ SCmdRegionVisited regionVisited;
|
||||
/* Command: 0x1A */ SCmdTextureAnimations textureAnimations;
|
||||
/* Command: 0x1B */ SCmdCutsceneList cutsceneList;
|
||||
/* Command: 0x1C */ SCmdMapData mapData;
|
||||
/* Command: 0x1D */ // Unused
|
||||
/* Command: 0x1E */ SCmdMinimapChests minimapChests;
|
||||
/* Command: 0x1E */ SCmdMapDataChests mapDataChests;
|
||||
} SceneCmd; // size = 0x8
|
||||
|
||||
// Sets cursor point options on the world map
|
||||
@@ -796,9 +812,9 @@ typedef enum {
|
||||
/* 0x19 */ SCENE_CMD_ID_SET_REGION_VISITED,
|
||||
/* 0x1A */ SCENE_CMD_ID_ANIMATED_MATERIAL_LIST,
|
||||
/* 0x1B */ SCENE_CMD_ID_ACTOR_CUTSCENE_LIST,
|
||||
/* 0x1C */ SCENE_CMD_ID_MINIMAP_INFO,
|
||||
/* 0x1C */ SCENE_CMD_ID_MAP_DATA,
|
||||
/* 0x1D */ SCENE_CMD_ID_UNUSED_1D,
|
||||
/* 0x1E */ SCENE_CMD_ID_MINIMAP_COMPASS_ICON_INFO,
|
||||
/* 0x1E */ SCENE_CMD_ID_MAP_DATA_CHESTS,
|
||||
/* 0x1F */ SCENE_CMD_MAX
|
||||
} SceneCommandTypeId;
|
||||
|
||||
@@ -844,13 +860,13 @@ typedef enum {
|
||||
{ SCENE_CMD_ID_OBJECT_LIST, numObjects, CMD_PTR(objectList) }
|
||||
|
||||
#define SCENE_CMD_LIGHT_LIST(numLights, lightList) \
|
||||
{ SCENE_CMD_ID_LIGHT_LIST, numLights, CMD_PTR(lightList) }
|
||||
{ SCENE_CMD_ID_LIGHT_LIST, numLights, CMD_PTR(lightList) }
|
||||
|
||||
#define SCENE_CMD_PATH_LIST(pathList) \
|
||||
{ SCENE_CMD_ID_PATH_LIST, 0, CMD_PTR(pathList) }
|
||||
|
||||
#define SCENE_CMD_TRANSITION_ACTOR_LIST(numTransitionActors, actorList) \
|
||||
{ SCENE_CMD_ID_TRANSI_ACTOR_LIST, numTransitionActors, CMD_PTR(actorList) }
|
||||
{ SCENE_CMD_ID_TRANSI_ACTOR_LIST, numTransitionActors, CMD_PTR(actorList) }
|
||||
|
||||
#define SCENE_CMD_ENV_LIGHT_SETTINGS(numLightSettings, lightSettingsList) \
|
||||
{ SCENE_CMD_ID_ENV_LIGHT_SETTINGS, numLightSettings, CMD_PTR(lightSettingsList) }
|
||||
@@ -891,15 +907,17 @@ typedef enum {
|
||||
#define SCENE_CMD_ACTOR_CUTSCENE_LIST(numEntries, actorCutsceneList) \
|
||||
{ SCENE_CMD_ID_ACTOR_CUTSCENE_LIST, numEntries, CMD_PTR(actorCutsceneList) }
|
||||
|
||||
#define SCENE_CMD_MINIMAP_INFO(minimapInfo) \
|
||||
{ SCENE_CMD_ID_MINIMAP_INFO, 0, CMD_PTR(minimapInfo) }
|
||||
#define SCENE_CMD_MAP_DATA(mapData) \
|
||||
{ SCENE_CMD_ID_MAP_DATA, 0, CMD_PTR(mapData) }
|
||||
|
||||
#define SCENE_CMD_MINIMAP_COMPASS_ICON_INFO(compassIconCount, compassIconInfo) \
|
||||
{ SCENE_CMD_ID_MINIMAP_COMPASS_ICON_INFO, compassIconCount, CMD_PTR(compassIconInfo) }
|
||||
#define SCENE_CMD_MAP_DATA_CHESTS(chestCount, chestInfo) \
|
||||
{ SCENE_CMD_ID_MAP_DATA_CHESTS, chestCount, CMD_PTR(chestInfo) }
|
||||
|
||||
// TODO: ZAPD Capatability
|
||||
#define SCENE_CMD_MISC_SETTINGS SCENE_CMD_SET_REGION_VISITED
|
||||
#define SCENE_CMD_CUTSCENE_LIST SCENE_CMD_CUTSCENE_SCRIPT_LIST
|
||||
#define SCENE_CMD_MINIMAP_INFO SCENE_CMD_MAP_DATA
|
||||
#define SCENE_CMD_MINIMAP_COMPASS_ICON_INFO SCENE_CMD_MAP_DATA_CHESTS
|
||||
|
||||
s32 Object_SpawnPersistent(ObjectContext* objectCtx, s16 id);
|
||||
void Object_InitContext(struct GameState* gameState, ObjectContext* objectCtx);
|
||||
@@ -920,8 +938,8 @@ void Scene_CommandMesh(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandObjectList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandLightList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandPathList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandTransiActorList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Door_InitContext(struct GameState* gameState, DoorContext* doorCtx);
|
||||
void Scene_CommandTransitionActorList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_ResetTransitionActorList(GameState* gameState, TransitionActorList* transitionActors);
|
||||
void Scene_CommandEnvLightSettings(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_LoadAreaTextures(struct PlayState* play, s32 fileIndex);
|
||||
void Scene_CommandSkyboxSettings(struct PlayState* play, SceneCmd* cmd);
|
||||
@@ -935,9 +953,9 @@ void Scene_CommandEchoSetting(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandAltHeaderList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandCutsceneScriptList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandCutsceneList(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandMiniMap(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandMapData(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_Command1D(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandMiniMapCompassInfo(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandMapDataChests(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandSetRegionVisitedFlag(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_CommandAnimatedMaterials(struct PlayState* play, SceneCmd* cmd);
|
||||
void Scene_SetExitFade(struct PlayState* play);
|
||||
|
||||
@@ -481,8 +481,6 @@ beginseg
|
||||
include "build/src/code/z_lights.o"
|
||||
include "build/src/code/z_malloc.o"
|
||||
include "build/src/code/z_map_disp.o"
|
||||
include "build/data/code/z_map_disp.data.o"
|
||||
include "build/data/code/z_map_disp.bss.o"
|
||||
include "build/src/code/z_map_data.o"
|
||||
include "build/src/code/z_map_exp.o"
|
||||
include "build/src/code/z_msgevent.o"
|
||||
@@ -654,7 +652,7 @@ beginseg
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/z_file_choose_NES.o"
|
||||
#ifdef NON_MATCHING
|
||||
include "build/src/overlays/gamestates/ovl_file_choose/ovl_file_choose_reloc.o"
|
||||
#else
|
||||
#else
|
||||
include "build/data/ovl_file_choose/ovl_file_choose.reloc.o"
|
||||
#endif
|
||||
endseg
|
||||
|
||||
@@ -1,4 +1,3 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "global.h"
|
||||
#include "fault.h"
|
||||
#include "stack.h"
|
||||
|
||||
@@ -30,7 +30,7 @@ void Setup_SetRegs(void) {
|
||||
XREG(90) = 0x1C2;
|
||||
|
||||
R_STORY_FILL_SCREEN_ALPHA = 0;
|
||||
R_REVERSE_FLOOR_INDEX = 0;
|
||||
R_PLAYER_FLOOR_REVERSE_INDEX = 0;
|
||||
R_MINIMAP_DISABLED = false;
|
||||
|
||||
R_PICTO_FOCUS_BORDER_TOPLEFT_X = 80;
|
||||
|
||||
+3
-3
@@ -3383,9 +3383,9 @@ Actor* Actor_SpawnAsChild(ActorContext* actorCtx, Actor* parent, PlayState* play
|
||||
}
|
||||
|
||||
void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx) {
|
||||
TransitionActorEntry* transitionActorList = play->doorCtx.transitionActorList;
|
||||
TransitionActorEntry* transitionActorList = play->transitionActors.list;
|
||||
s32 i;
|
||||
s16 numTransitionActors = play->doorCtx.numTransitionActors;
|
||||
s16 numTransitionActors = play->transitionActors.count;
|
||||
|
||||
for (i = 0; i < numTransitionActors; transitionActorList++, i++) {
|
||||
if (transitionActorList->id >= 0) {
|
||||
@@ -3404,7 +3404,7 @@ void Actor_SpawnTransitionActors(PlayState* play, ActorContext* actorCtx) {
|
||||
transitionActorList->rotY & 0x7F, HALFDAYBIT_ALL, 0) != NULL) {
|
||||
transitionActorList->id = -transitionActorList->id;
|
||||
}
|
||||
numTransitionActors = play->doorCtx.numTransitionActors;
|
||||
numTransitionActors = play->transitionActors.count;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,7 @@
|
||||
#include "prevent_bss_reordering.h"
|
||||
#include "prevent_bss_reordering2.h"
|
||||
|
||||
#include "PR/ultratypes.h"
|
||||
|
||||
// Variables are put before most headers as a hacky way to bypass bss reordering
|
||||
struct CutsceneCamera;
|
||||
|
||||
s16 sCutsceneQuakeIndex;
|
||||
struct CutsceneCamera sCutsceneCameraInfo;
|
||||
u16 sCueTypeList[10];
|
||||
|
||||
@@ -142,18 +142,18 @@ void KaleidoSetup_Init(PlayState* play) {
|
||||
pauseCtx->unk_20C = 936.0f;
|
||||
pauseCtx->roll = -314.0f;
|
||||
|
||||
pauseCtx->cursorPoint[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
pauseCtx->cursorPoint[PAUSE_MAP] = R_PLAYER_FLOOR_REVERSE_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
|
||||
pauseCtx->cursorSpecialPos = PAUSE_CURSOR_PAGE_RIGHT;
|
||||
pauseCtx->pageSwitchInputTimer = 0;
|
||||
|
||||
pauseCtx->cursorItem[PAUSE_ITEM] = PAUSE_ITEM_NONE;
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
pauseCtx->cursorItem[PAUSE_MAP] = R_PLAYER_FLOOR_REVERSE_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] = R_REVERSE_FLOOR_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
pauseCtx->cursorSlot[PAUSE_MAP] = R_PLAYER_FLOOR_REVERSE_INDEX + (DUNGEON_FLOOR_INDEX_4 - 1);
|
||||
|
||||
pauseCtx->cursorColorSet = PAUSE_CURSOR_COLOR_SET_YELLOW;
|
||||
pauseCtx->ocarinaSongIndex = -1;
|
||||
|
||||
+582
-39
File diff suppressed because it is too large
Load Diff
+1822
-54
File diff suppressed because it is too large
Load Diff
+80
-68
@@ -1,20 +1,23 @@
|
||||
#include "global.h"
|
||||
#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
|
||||
|
||||
s16 sMinimapInitPosX = 0;
|
||||
s16 sMinimapInitPosZ = 0;
|
||||
s16 sMinimapInitDir = 0;
|
||||
|
||||
s32 sDungeonAndBossSceneIds[] = {
|
||||
SCENE_MITURIN, SCENE_HAKUGIN, SCENE_SEA, SCENE_INISIE_N, SCENE_INISIE_R,
|
||||
SCENE_MITURIN_BS, SCENE_HAKUGIN_BS, SCENE_SEA_BS, SCENE_INISIE_BS,
|
||||
};
|
||||
s16 sPlayerInitPosX = 0;
|
||||
s16 sPlayerInitPosZ = 0;
|
||||
s16 sPlayerInitDir = 0;
|
||||
|
||||
/**
|
||||
* If the current scene is a dungeon or boss scene, this function returns an index
|
||||
* indicating which one it is. Otherwise, it returns -1.
|
||||
* Gets the mapIndex for the current dungeon or boss scene
|
||||
* @return the current scene's mapIndex, or -1 if it isn't a dungeon or boss scene.
|
||||
*/
|
||||
s32 Map_GetDungeonOrBossAreaIndex(PlayState* play) {
|
||||
static s32 sDungeonAndBossSceneIds[] = {
|
||||
SCENE_MITURIN, // DUNGEON_INDEX_WOODFALL_TEMPLE
|
||||
SCENE_HAKUGIN, // DUNGEON_INDEX_SNOWHEAD_TEMPLE
|
||||
SCENE_SEA, // DUNGEON_INDEX_GREAT_BAY_TEMPLE
|
||||
SCENE_INISIE_N, // DUNGEON_INDEX_STONE_TOWER_TEMPLE
|
||||
SCENE_INISIE_R, // DUNGEON_INDEX_STONE_TOWER_TEMPLE
|
||||
SCENE_MITURIN_BS, SCENE_HAKUGIN_BS, SCENE_SEA_BS, SCENE_INISIE_BS,
|
||||
};
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sDungeonAndBossSceneIds); i++) {
|
||||
@@ -27,7 +30,8 @@ s32 Map_GetDungeonOrBossAreaIndex(PlayState* play) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the current scene is a dungeon or boss scene, false otherwise.
|
||||
* Tests if the current scene is in a dungeon or boss scene.
|
||||
* @return true if the current scene is a dungeon or boss scene, false otherwise.
|
||||
*/
|
||||
s32 Map_IsInDungeonOrBossArea(PlayState* play) {
|
||||
if (Map_GetDungeonOrBossAreaIndex(play) == -1) {
|
||||
@@ -37,23 +41,26 @@ s32 Map_IsInDungeonOrBossArea(PlayState* play) {
|
||||
return true;
|
||||
}
|
||||
|
||||
s32 func_8010A0A4(PlayState* play) {
|
||||
if ((Map_GetDungeonOrBossAreaIndex(play) == -1) || !func_80102EF0(play)) {
|
||||
s32 MapExp_CurRoomHasMapI(PlayState* play) {
|
||||
if ((Map_GetDungeonOrBossAreaIndex(play) == -1) || !MapDisp_CurRoomHasMapI(play)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
s32 sDungeonSceneIds[] = {
|
||||
SCENE_MITURIN, SCENE_HAKUGIN, SCENE_SEA, SCENE_INISIE_N, SCENE_INISIE_R,
|
||||
};
|
||||
|
||||
/**
|
||||
* If the current scene is a dungeon scene, this function returns an index
|
||||
* indicating which one it is. Otherwise, it returns -1.
|
||||
* Tests if the current scene is a dungeon scene, excluding boss scenes.
|
||||
* @return -1 if not a dungeon scene, else returns the dungeonIndex of the dungeon scene
|
||||
*/
|
||||
s32 Map_GetDungeonAreaIndex(PlayState* play) {
|
||||
static s32 sDungeonSceneIds[] = {
|
||||
SCENE_MITURIN, // DUNGEON_INDEX_WOODFALL_TEMPLE
|
||||
SCENE_HAKUGIN, // DUNGEON_INDEX_SNOWHEAD_TEMPLE
|
||||
SCENE_SEA, // DUNGEON_INDEX_GREAT_BAY_TEMPLE
|
||||
SCENE_INISIE_N, // DUNGEON_INDEX_STONE_TOWER_TEMPLE
|
||||
SCENE_INISIE_R, // DUNGEON_INDEX_STONE_TOWER_TEMPLE
|
||||
};
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sDungeonSceneIds); i++) {
|
||||
@@ -66,9 +73,10 @@ s32 Map_GetDungeonAreaIndex(PlayState* play) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the current scene is a dungeon scene, false otherwise.
|
||||
* Test if the current scene is a dungeon scene, excluding boss rooms
|
||||
* @return true if the current scene is a dungeon scene, false otherwise.
|
||||
*/
|
||||
s32 Map_IsInDungeonArea(PlayState* play) {
|
||||
s32 Map_IsInDungeonScene(PlayState* play) {
|
||||
if (Map_GetDungeonAreaIndex(play) == -1) {
|
||||
return false;
|
||||
}
|
||||
@@ -76,18 +84,17 @@ s32 Map_IsInDungeonArea(PlayState* play) {
|
||||
return true;
|
||||
}
|
||||
|
||||
s32 sBossSceneIds[] = {
|
||||
SCENE_MITURIN_BS, // DUNGEON_INDEX_WOODFALL_TEMPLE
|
||||
SCENE_HAKUGIN_BS, // DUNGEON_INDEX_SNOWHEAD_TEMPLE
|
||||
SCENE_SEA_BS, // DUNGEON_INDEX_GREAT_BAY_TEMPLE
|
||||
SCENE_INISIE_BS, // DUNGEON_INDEX_STONE_TOWER_TEMPLE
|
||||
};
|
||||
|
||||
/**
|
||||
* If the current scene is a boss scene, this function returns an index
|
||||
* indicating which one it is. Otherwise, it returns -1.
|
||||
* Tests if the current scene is a boss scene.
|
||||
* @return -1 if not a boss scene, else returns the dungeonIndex of the boss scene
|
||||
*/
|
||||
s32 Map_GetBossAreaIndex(PlayState* play) {
|
||||
static s32 sBossSceneIds[] = {
|
||||
SCENE_MITURIN_BS, // DUNGEON_INDEX_WOODFALL_TEMPLE
|
||||
SCENE_HAKUGIN_BS, // DUNGEON_INDEX_SNOWHEAD_TEMPLE
|
||||
SCENE_SEA_BS, // DUNGEON_INDEX_GREAT_BAY_TEMPLE
|
||||
SCENE_INISIE_BS, // DUNGEON_INDEX_STONE_TOWER_TEMPLE
|
||||
};
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(sBossSceneIds); i++) {
|
||||
@@ -100,9 +107,10 @@ s32 Map_GetBossAreaIndex(PlayState* play) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns true if the current scene is a boss scene, false otherwise.
|
||||
* Checks if the current scene is a boss scene.
|
||||
* @return true if the current scene is a boss scene, false otherwise.
|
||||
*/
|
||||
s32 Map_IsInBossArea(PlayState* play) {
|
||||
s32 Map_IsInBossScene(PlayState* play) {
|
||||
if (Map_GetBossAreaIndex(play) == -1) {
|
||||
return false;
|
||||
}
|
||||
@@ -110,13 +118,16 @@ s32 Map_IsInBossArea(PlayState* play) {
|
||||
return true;
|
||||
}
|
||||
|
||||
s32 D_801BF5A4[] = {
|
||||
SCENE_22DEKUCITY,
|
||||
SCENE_KOEPONARACE,
|
||||
SCENE_F01,
|
||||
};
|
||||
|
||||
s32 func_8010A238(PlayState* play) {
|
||||
/**
|
||||
* Test if the current scene is in a set of overworld scenes.
|
||||
* @return -1 if not in the set, else returns the mapIndex of the overworld scene
|
||||
*/
|
||||
s32 Map_GetUnkOverworldAreaIndex(PlayState* play) {
|
||||
static s32 D_801BF5A4[] = {
|
||||
SCENE_22DEKUCITY,
|
||||
SCENE_KOEPONARACE,
|
||||
SCENE_F01,
|
||||
};
|
||||
s32 i;
|
||||
|
||||
for (i = 0; i < ARRAY_COUNT(D_801BF5A4); i++) {
|
||||
@@ -128,8 +139,12 @@ s32 func_8010A238(PlayState* play) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
s32 func_8010A2AC(PlayState* play) {
|
||||
if (func_8010A238(play) == -1) {
|
||||
/**
|
||||
* Checks if the current scene is in a set of overworld scenes.
|
||||
* @return true if the current scene is in the set, false otherwise.
|
||||
*/
|
||||
s32 Map_IsInUnkOverworldArea(PlayState* play) {
|
||||
if (Map_GetUnkOverworldAreaIndex(play) == -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -137,27 +152,26 @@ s32 func_8010A2AC(PlayState* play) {
|
||||
}
|
||||
|
||||
/**
|
||||
* When a room is loaded, this function is used to save the player's position and rotation
|
||||
* so that the red arrow on the minimap can be drawn correctly.
|
||||
* Sets the position and rotation of where the player has entered the area.
|
||||
* Used to draw the red marker on the minimap.
|
||||
*/
|
||||
void Minimap_SavePlayerRoomInitInfo(PlayState* play) {
|
||||
void Map_SetAreaEntrypoint(PlayState* play) {
|
||||
Player* player = GET_PLAYER(play);
|
||||
|
||||
sMinimapInitPosX = player->actor.world.pos.x;
|
||||
sMinimapInitPosZ = player->actor.world.pos.z;
|
||||
sMinimapInitDir = (0x7FFF - player->actor.shape.rot.y) / 0x400;
|
||||
sPlayerInitPosX = player->actor.world.pos.x;
|
||||
sPlayerInitPosZ = player->actor.world.pos.z;
|
||||
sPlayerInitDir = (0x7FFF - player->actor.shape.rot.y) / 0x400;
|
||||
}
|
||||
|
||||
void Map_InitRoomData(PlayState* play, s16 room) {
|
||||
s32 mapIndex = gSaveContext.mapIndex;
|
||||
InterfaceContext* interfaceCtx = &play->interfaceCtx;
|
||||
|
||||
func_80105C40(room);
|
||||
MapDisp_SwapRooms(room);
|
||||
|
||||
if (room >= 0) {
|
||||
if (Map_IsInDungeonOrBossArea(play)) {
|
||||
gSaveContext.save.saveInfo.permanentSceneFlags[Play_GetOriginalSceneId(play->sceneId)].rooms |=
|
||||
gBitFlags[room];
|
||||
SET_ROOM_VISITED(Play_GetOriginalSceneId(play->sceneId), room);
|
||||
interfaceCtx->mapRoomNum = room;
|
||||
interfaceCtx->dungeonOrBossAreaMapIndex = mapIndex;
|
||||
}
|
||||
@@ -171,25 +185,24 @@ void Map_InitRoomData(PlayState* play, s16 room) {
|
||||
}
|
||||
|
||||
void Map_Destroy(PlayState* play) {
|
||||
func_80105A40(play);
|
||||
MapDisp_Destroy(play);
|
||||
}
|
||||
|
||||
void Map_Init(PlayState* play) {
|
||||
InterfaceContext* interfaceCtx = &play->interfaceCtx;
|
||||
s32 dungeonIndex;
|
||||
|
||||
func_80105C40(play->roomCtx.curRoom.num);
|
||||
MapDisp_SwapRooms(play->roomCtx.curRoom.num);
|
||||
interfaceCtx->unk_278 = -1;
|
||||
interfaceCtx->dungeonOrBossAreaMapIndex = -1;
|
||||
interfaceCtx->mapSegment = THA_AllocTailAlign16(&play->state.tha, 0x1000);
|
||||
if (func_8010A2AC(play)) {
|
||||
gSaveContext.mapIndex = func_8010A238(play);
|
||||
if (Map_IsInUnkOverworldArea(play)) {
|
||||
gSaveContext.mapIndex = Map_GetUnkOverworldAreaIndex(play);
|
||||
return;
|
||||
}
|
||||
|
||||
if (Map_IsInDungeonOrBossArea(play)) {
|
||||
dungeonIndex = Map_GetDungeonOrBossAreaIndex(play);
|
||||
gSaveContext.mapIndex = dungeonIndex;
|
||||
gSaveContext.mapIndex = dungeonIndex = Map_GetDungeonOrBossAreaIndex(play);
|
||||
switch (play->sceneId) {
|
||||
case SCENE_MITURIN_BS:
|
||||
dungeonIndex = DUNGEON_INDEX_WOODFALL_TEMPLE;
|
||||
@@ -213,8 +226,8 @@ void Map_Init(PlayState* play) {
|
||||
}
|
||||
}
|
||||
|
||||
void Minimap_Draw(PlayState* play) {
|
||||
func_80106644(play, sMinimapInitPosX, sMinimapInitPosZ, sMinimapInitDir);
|
||||
void Map_DrawMinimap(PlayState* play) {
|
||||
MapDisp_DrawMinimap(play, sPlayerInitPosX, sPlayerInitPosZ, sPlayerInitDir);
|
||||
}
|
||||
|
||||
s16 sLastRoomNum = 99;
|
||||
@@ -228,7 +241,7 @@ void Map_Update(PlayState* play) {
|
||||
s32 pad2;
|
||||
|
||||
if ((play->pauseCtx.state <= PAUSE_STATE_OPENING_2) && (CHECK_BTN_ALL(controller->press.button, BTN_L)) &&
|
||||
!Play_InCsMode(play) && !func_80106530(play)) {
|
||||
!Play_InCsMode(play) && !MapDisp_IsMinimapToggleBlocked(play)) {
|
||||
if (!R_MINIMAP_DISABLED) {
|
||||
Audio_PlaySfx(NA_SE_SY_CAMERA_ZOOM_UP);
|
||||
} else {
|
||||
@@ -238,22 +251,21 @@ void Map_Update(PlayState* play) {
|
||||
R_MINIMAP_DISABLED ^= 1;
|
||||
}
|
||||
|
||||
func_80105B34(play);
|
||||
MapDisp_Update(play);
|
||||
|
||||
if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugEditor == DEBUG_EDITOR_NONE)) {
|
||||
if (Map_IsInDungeonArea(play)) {
|
||||
floor = func_80109124(player->actor.world.pos.y);
|
||||
if (Map_IsInDungeonScene(play)) {
|
||||
floor = MapDisp_GetPlayerStorey(player->actor.world.pos.y);
|
||||
if (floor != -1) {
|
||||
gSaveContext.save.saveInfo.permanentSceneFlags[Play_GetOriginalSceneId(play->sceneId)].unk_14 |=
|
||||
gBitFlags[FLOOR_INDEX_MAX - floor];
|
||||
R_REVERSE_FLOOR_INDEX = FLOOR_INDEX_MAX - floor;
|
||||
SET_DUNGEON_FLOOR_VISITED(Play_GetOriginalSceneId(play->sceneId), FLOOR_INDEX_MAX - floor);
|
||||
R_PLAYER_FLOOR_REVERSE_INDEX = FLOOR_INDEX_MAX - floor;
|
||||
if (interfaceCtx->mapRoomNum != sLastRoomNum) {
|
||||
sLastRoomNum = interfaceCtx->mapRoomNum;
|
||||
}
|
||||
}
|
||||
} else if (Map_IsInBossArea(play)) {
|
||||
func_80105294();
|
||||
R_REVERSE_FLOOR_INDEX = FLOOR_INDEX_MAX - func_80105318();
|
||||
} else if (Map_IsInBossScene(play)) {
|
||||
MapDisp_GetBossIconY();
|
||||
R_PLAYER_FLOOR_REVERSE_INDEX = FLOOR_INDEX_MAX - MapDisp_GetBossRoomStorey();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2119,7 +2119,7 @@ void Message_LoadOwlWarpText(PlayState* play, s32* offset, f32* arg2, s16* decod
|
||||
s16 owlWarpId;
|
||||
s16 i;
|
||||
|
||||
if (func_8010A0A4(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
if (MapExp_CurRoomHasMapI(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
owlWarpId = OWL_WARP_ENTRANCE;
|
||||
} else {
|
||||
owlWarpId = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];
|
||||
@@ -5682,7 +5682,7 @@ void Message_Update(PlayState* play) {
|
||||
|
||||
if (sLastPlayedSong == OCARINA_SONG_SOARING) {
|
||||
if (interfaceCtx->restrictions.songOfSoaring == 0) {
|
||||
if (func_8010A0A4(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
if (MapExp_CurRoomHasMapI(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
Message_StartTextbox(play, 0x1B93, NULL);
|
||||
play->msgCtx.ocarinaMode = OCARINA_MODE_1B;
|
||||
sLastPlayedSong = 0xFF;
|
||||
|
||||
@@ -280,7 +280,7 @@ void Message_LoadOwlWarpTextNES(PlayState* play, s32* offset, f32* arg2, s16* de
|
||||
s16 owlWarpId;
|
||||
s16 stringLimit;
|
||||
|
||||
if (func_8010A0A4(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
if (MapExp_CurRoomHasMapI(play) || (play->sceneId == SCENE_SECOM)) {
|
||||
owlWarpId = OWL_WARP_ENTRANCE;
|
||||
} else {
|
||||
owlWarpId = play->pauseCtx.cursorPoint[PAUSE_WORLD_MAP];
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user