diff --git a/assets/xml/archives/map_grand_static.xml b/assets/xml/archives/map_grand_static.xml index d5d80bdd6..f9fe649af 100644 --- a/assets/xml/archives/map_grand_static.xml +++ b/assets/xml/archives/map_grand_static.xml @@ -1,102 +1,102 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/archives/map_i_static.xml b/assets/xml/archives/map_i_static.xml index dbb64185d..3ea496aa3 100644 --- a/assets/xml/archives/map_i_static.xml +++ b/assets/xml/archives/map_i_static.xml @@ -1,62 +1,62 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/include/functions.h b/include/functions.h index 8bdc6c6c8..d3230e467 100644 --- a/include/functions.h +++ b/include/functions.h @@ -984,7 +984,7 @@ void func_8010565C(PlayState* play, s32 num, void* segmentAddress); void func_80105818(PlayState* play, s32 num, TransitionActorEntry* transitionActorList); void MapDisp_Destroy(PlayState* play); void func_80105B34(PlayState* play); -void func_80105C40(s16 room); +void MapDisp_SwapRooms(s16 nextRoom); // void func_80105FE0(void); // void func_80106408(void); // void func_80106450(void); @@ -1007,45 +1007,45 @@ s32 func_801090B0(s32 arg0); s32 func_80109124(s16 arg0); void func_801091F0(PlayState* play); void func_80109428(PlayState* play); -void func_801094A0(s32 arg0, Color_RGBA8* color); +void MapData_GetMapColor(s32 colorIndex, Color_RGBA8* color); // void func_801094C8(void); -// void func_801094F8(void); -// void func_80109528(void); -// void func_8010954C(void); +// void MapData_GetMapTexOffsetGameplayDangeonKeep(void); +// void MapData_GetMapDrawTypeGameplayDangeonKeep(void); +// void MapData_GetMapColorIndexGameplayDangeonKeep(void); // void func_8010956C(void); -// void func_8010958C(void); +// void MapData_GetMapTexGameplayDangeonKeep(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 MapData_GetMapTexGameplayDangeonKeepOffset(void); +// void MapData_GetMapGrandDrawType(void); +// void MapData_GetMapGrandColorIndex(void); +// void MapData_GetMapGrandScale(void); +// void MapData_MapGrandTexSizeTest(void); +// void MapData_GetSizeOfMapGrandTex(void); +// void MapData_MID_GetType(void); // void func_80109754(void); -// void func_801097C8(void); +// void MapData_GetMapTexOffset(void); // void func_8010983C(void); -// void func_801098A0(void); -// void func_80109908(void); +// void MapData_GetDrawType(void); +// void MapData_GetMapColorIndex(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 MapData_GetMapITexDim(void); +// void MapData_GetMapITexOffset(void); +// void MapData_GetMapIDrawType(void); +// void MapData_GetMapIColorIndex(void); +// void MapData_GetMapIScale(void); +// void MapData_MapITexSizeTest(void); +// void MapDisp_GetSizeOfMapITex(void); +// void MapData_GetMapIId(void); // void func_80109B38(void); -// void func_80109BA0(void); -// void func_80109BF4(void); +// void MapData_GetMapCompactId(void); +// void MapData_CPID_GetType(void); // void func_80109C38(void); // void MapData_GetIMapSize(void); -// void func_80109D40(void); -// void func_80109DD8(void); -// void func_80109E70(void); -// void func_80109EF8(void); -// void func_80109F78(void); +// void MapData_CPID_GetTexDim(void); +// void MapData_CPID_GetTexOffset(void); +// void MapData_CPID_GetDrawType(void); +// void MapData_CPID_GetMapColorIndex(void); +// void MapData_CPID_GetMapScale(void); s32 Map_GetDungeonOrBossAreaIndex(PlayState* play); s32 Map_IsInDungeonOrBossArea(PlayState* play); s32 func_8010A0A4(PlayState* play); diff --git a/include/variables.h b/include/variables.h index 4cf303c7c..26282bb76 100644 --- a/include/variables.h +++ b/include/variables.h @@ -455,19 +455,19 @@ extern MinimapList D_801BEC14; // 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 mapColorTable; +// extern UNK_TYPE1 gameplay_dangeon_keep_Info; // extern UNK_TYPE1 D_801BED54; // extern UNK_TYPE1 D_801BED55; // extern UNK_TYPE1 D_801BED56; -// extern UNK_TYPE1 D_801BED88; +// extern UNK_TYPE1 map_grand_static_Info; // extern UNK_TYPE1 D_801BEFC8; // extern UNK_TYPE1 D_801BF15C; -// extern UNK_TYPE1 D_801BF170; +// extern UNK_TYPE1 map_i_static_Info; // extern UNK_TYPE1 D_801BF176; // extern UNK_TYPE1 D_801BF177; // extern UNK_TYPE1 D_801BF178; -// extern UNK_TYPE1 D_801BF3B4; +// extern UNK_TYPE1 map_i_for_gameplay_dangeon_keep; // extern UNK_TYPE2 D_801BF550; // extern UNK_TYPE2 D_801BF554; // extern UNK_TYPE2 D_801BF558; diff --git a/include/z64map.h b/include/z64map.h index 3e977ba73..2eba34577 100644 --- a/include/z64map.h +++ b/include/z64map.h @@ -2,71 +2,99 @@ #define Z64MAP_H #include "ultra64.h" #include "z64scene.h" + +/* +Handles L-minimap and pause screen dungeon minimap 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 L-minimap data from gameplay_dangeon_keep +0x005-0x039 fetches dungeon minimap data from map_i_static +0x100-0x161 fetches L-minimap data from map_grand_static + +mapCompactId +0x000-0x039 fetches dungeon minimap data from map_i_static +0x03A-0x09B fetches L-minimap data from map_grand_static + +*/ + #define FLOOR_INDEX_MAX 4 /* z_map_data */ +#define MAPDATA_MAP_I_MAX 0x3A +#define MAPDATA_MAP_GRAND 0x100 +#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_GRAND_MAP_STATIC 1 +#define MAPDATA_MID_MAP_GRAND_STATIC 1 #define MAPDATA_MID_MAP_I_STATIC 2 -#define MAPDATA_CPID_GRAND_MAP_STATIC 0 +#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 + typedef struct { /* 0x00 */ TexturePtr lmapTex; //minimap texture /* 0x04 */ u8 width; /* 0x05 */ u8 height; - /* 0x06 */ u8 unk6; - /* 0x07 */ u8 unk7; - /* 0x08 */ u8 unk8; - /* 0x09 */ u8 unk9; + /* 0x06 */ u8 offsetX; + /* 0x07 */ u8 offsetY; + /* 0x08 */ u8 drawType; + /* 0x09 */ u8 colorIndex; /* 0x0A */ s16 scale; -} T_801BED4C; // size 0x0C +} MapSpriteInfo2; // size 0x0C typedef struct { - u8 unk0; - u8 unk1; - s16 unk2; - s16 unk4; - u8 unk6; - u8 unk7; - s16 unk8; -} T_801BF170; // size 0x0A, ident to T_801BED88 + u8 texWidth; + u8 texHeight; + s16 offsetX; + s16 offsetY; + u8 drawType; + u8 colorIndex; + s16 scale; +} MapSpriteInfo; // size 0x0A /* z_map_disp */ typedef struct { - /* 0x00 */ MinimapList* unk0; + /* 0x00 */ MinimapList* minimapList; /* 0x04 */ s32 curRoom; /* 0x08 */ s16 unk8; /* 0x0A */ s16 unkA; /* 0x0C */ s16 unkC; /* 0x0E */ s16 unkE; - /* 0x10 */ TexturePtr unk10; // gameplay cur minimap room + /* 0x10 */ TexturePtr lMapCurTex; // gameplay cur minimap room /* 0x14 */ s32 prevRoom; - /* 0x18 */ TexturePtr unk18; + /* 0x18 */ TexturePtr lMapPrevTex; /* 0x1C */ s16 unk1C; //same as 0C /* 0x1E */ s16 unk1E; //same as 0E /* 0x20 */ s32 unk20; - /* 0x24 */ s32 unk24; - /* 0x28 */ TexturePtr unk28; //unk type - /* 0x2C */ TexturePtr unk2C; //unk type - /* 0x30 */ s16 unk30; //scene minBounds.x - /* 0x32 */ s16 unk32; //scene minBounds.z - /* 0x34 */ s16 unk34; //scene boundsWidth.x - /* 0x36 */ s16 unk36; //scene boundsWidth.z - /* 0x38 */ s16 unk38; //scene boundsMidpoint.x - /* 0x3A */ s16 unk3A; //scene boundsMidpoint.z + /* 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* unk3C; /* 0x40 */ s16 unk40; /* 0x42 */ s16 unk42; /* 0x44 */ s16 unk44; /* 0x48 */ s16* unk48; /* 0x4C */ s16 unk4C; - /* 0x50 */ s32 unk50; //num chests + /* 0x50 */ s32 numChests; /* 0x54 */ MinimapChest* unk54; /* 0x58 */ s16 unk58; /* 0x5A */ s16 unk5A; @@ -96,20 +124,19 @@ typedef struct { } T_801F56B0; /* z_map_data */ -TexturePtr func_8010958C(s32); - -s16 func_80109F78(s32); -s32 func_80109BA0(s32); -s32 func_80109714(s32); -s32 MapData_GetMapSize(s32); -void func_801098A0(s32, s32*); -s32 func_80109908(s32); -s32 func_80109A98(s32); -s32 func_80109AD8(s32); -s32 func_801096D4(s32 mapId); +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); +s32 MapData_GetMapIId(s32); +s32 MapData_GetSizeOfMapGrandTex(s32 mapId); void MapData_GetMapTexDim(s32 mapId, s32* width, s32* height); -void func_801097C8(s32 mapId, s32* arg1, s32* arg2); +void MapData_GetMapTexOffset(s32 mapId, s32* offsetX, s32* offsetY); void MapData_GetMapScale(s32 mapId, s32 *scale); -void func_80109D40(s32, s32*, s32*); -void func_80109DD8(s32, s32*, s32*); +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); #endif diff --git a/include/z64scene.h b/include/z64scene.h index 440c04a94..afba71eaa 100644 --- a/include/z64scene.h +++ b/include/z64scene.h @@ -497,7 +497,7 @@ typedef struct { /* 0x02 */ s16 unk2; /* 0x04 */ s16 unk4; /* 0x06 */ s16 unk6; - /* 0x08 */ u16 unk8; + /* 0x08 */ u16 unk8; // flags; 1 = mirror x? 2 = mirror y? } MinimapEntry; // size = 0xA typedef struct { diff --git a/src/code/z_map_data.c b/src/code/z_map_data.c index 67dbe6d31..0dbd8d534 100644 --- a/src/code/z_map_data.c +++ b/src/code/z_map_data.c @@ -1,179 +1,302 @@ #include "global.h" #include "z64map.h" +#include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" -static Color_RGBA8 D_801BED40[3] = { +static Color_RGBA8 mapColorTable[3] = { { 255, 255, 255, 255 }, - { 0, 255, 255, 160 }, + { 0, 255, 255, 160 }, // Blue { 100, 255, 255, 255 }, }; -static T_801BED4C D_801BED4C[5] = { - { 0x050022C8, 96, 85, 48, 42, 0x00, 0x00, 20 }, { 0x050042C8, 96, 85, 48, 62, 0x00, 0x00, 20 }, - { 0x050052C8, 96, 85, 68, 42, 0x00, 0x00, 20 }, { 0x050032C8, 96, 85, 48, 62, 0x00, 0x00, 20 }, - { 0x050062C8, 96, 85, 68, 62, 0x00, 0x00, 20 }, + +static MapSpriteInfo2 gameplay_dangeon_keep_Info[5] = { + { &gameplay_dangeon_keep_Tex_0022C8, 96, 85, 48, 42, MAPDATA_DRAW_0, 0, 20 }, + { &gameplay_dangeon_keep_Tex_0042C8, 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 }, + { &gameplay_dangeon_keep_Tex_0052C8, 96, 85, 68, 42, MAPDATA_DRAW_0, 0, 20 }, + { &gameplay_dangeon_keep_Tex_0032C8, 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 }, + { &gameplay_dangeon_keep_Tex_0062C8, 96, 85, 68, 62, MAPDATA_DRAW_0, 0, 20 }, }; -static T_801BF170 D_801BED88[98] = { - { 96, 85, 48, 42, 0x00, 0x00, 20 }, { 96, 85, 48, 62, 0x00, 0x00, 20 }, { 96, 85, 68, 42, 0x00, 0x00, 20 }, - { 96, 85, 48, 62, 0x00, 0x00, 20 }, { 96, 85, 68, 62, 0x00, 0x00, 20 }, { 80, 72, 40, 35, 0x01, 0x01, 52 }, - { 96, 85, 49, 43, 0x03, 0x02, 20 }, { 96, 85, 49, 43, 0x03, 0x02, 20 }, { 96, 85, 49, 43, 0x03, 0x02, 20 }, - { 96, 85, 49, 49, 0x03, 0x02, 20 }, { 48, 44, 25, 23, 0x03, 0x02, 20 }, { 96, 85, 49, 43, 0x03, 0x02, 20 }, - { 48, 46, 25, 24, 0x03, 0x02, 20 }, { 64, 61, 32, 31, 0x03, 0x02, 20 }, { 96, 85, 49, 50, 0x03, 0x02, 20 }, - { 96, 85, 49, 62, 0x03, 0x02, 20 }, { 96, 85, 49, 43, 0x03, 0x02, 20 }, { 48, 80, 21, 41, 0x01, 0x01, 198 }, - { 32, 128, 17, 87, 0x01, 0x01, 138 }, { 80, 53, 40, 27, 0x01, 0x01, 54 }, { 32, 81, 16, 15, 0x03, 0x02, 20 }, - { 80, 45, 35, 23, 0x03, 0x02, 20 }, { 64, 87, 36, 44, 0x03, 0x02, 20 }, { 64, 51, 31, 23, 0x03, 0x02, 20 }, - { 80, 79, 40, 40, 0x03, 0x02, 20 }, { 96, 75, 36, 26, 0x03, 0x02, 20 }, { 48, 41, 24, 20, 0x03, 0x02, 20 }, - { 64, 45, 31, 20, 0x03, 0x02, 20 }, { 80, 52, 38, 28, 0x03, 0x02, 20 }, { 48, 45, 23, 20, 0x03, 0x02, 20 }, - { 48, 59, 25, 37, 0x03, 0x02, 20 }, { 48, 60, 21, 38, 0x03, 0x02, 20 }, { 48, 81, 24, 40, 0x03, 0x02, 20 }, - { 48, 81, 24, 40, 0x03, 0x02, 20 }, { 80, 89, 41, 26, 0x03, 0x02, 20 }, { 80, 53, 39, 26, 0x03, 0x02, 20 }, - { 64, 78, 37, 36, 0x03, 0x02, 20 }, { 64, 68, 33, 33, 0x03, 0x02, 20 }, { 48, 68, 23, 35, 0x03, 0x02, 20 }, - { 48, 36, 25, 17, 0x03, 0x02, 20 }, { 48, 25, 24, 12, 0x03, 0x02, 20 }, { 64, 75, 24, 37, 0x03, 0x02, 20 }, - { 32, 53, 17, 26, 0x03, 0x02, 20 }, { 80, 62, 35, 27, 0x01, 0x01, 105 }, { 64, 76, 31, 31, 0x01, 0x01, 133 }, - { 96, 85, 47, 43, 0x03, 0x02, 20 }, { 80, 71, 48, 33, 0x01, 0x01, 180 }, { 80, 87, 44, 44, 0x01, 0x01, 72 }, - { 64, 65, 31, 36, 0x01, 0x01, 57 }, { 48, 41, 28, 20, 0x01, 0x01, 60 }, { 64, 76, 17, 36, 0x01, 0x01, 58 }, - { 80, 60, 27, 22, 0x01, 0x01, 83 }, { 80, 47, 38, 23, 0x01, 0x01, 69 }, { 80, 60, 40, 38, 0x01, 0x01, 29 }, - { 48, 19, 17, 8, 0x01, 0x01, 25 }, { 32, 99, 17, 16, 0x01, 0x01, 88 }, { 48, 69, 19, 28, 0x01, 0x01, 76 }, - { 48, 83, 34, 47, 0x01, 0x01, 104 }, { 80, 54, 45, 27, 0x01, 0x01, 61 }, { 80, 92, 35, 50, 0x01, 0x01, 60 }, - { 48, 75, 24, 37, 0x03, 0x02, 20 }, { 64, 49, 32, 23, 0x03, 0x02, 20 }, { 64, 49, 25, 24, 0x03, 0x02, 20 }, - { 64, 52, 32, 24, 0x03, 0x02, 34 }, { 64, 49, 31, 24, 0x03, 0x02, 34 }, { 32, 33, 18, 14, 0x03, 0x02, 34 }, - { 48, 50, 25, 25, 0x03, 0x02, 34 }, { 64, 52, 32, 25, 0x03, 0x02, 34 }, { 48, 35, 24, 18, 0x03, 0x02, 34 }, - { 64, 51, 32, 26, 0x03, 0x02, 34 }, { 48, 35, 24, 18, 0x03, 0x02, 34 }, { 48, 53, 24, 28, 0x03, 0x02, 34 }, - { 64, 53, 33, 25, 0x03, 0x02, 34 }, { 64, 47, 31, 24, 0x03, 0x02, 34 }, { 64, 52, 32, 35, 0x03, 0x02, 34 }, - { 48, 48, 24, 23, 0x03, 0x02, 34 }, { 64, 87, 32, 26, 0x03, 0x02, 34 }, { 48, 30, 24, 14, 0x03, 0x02, 34 }, - { 80, 74, 40, 36, 0x01, 0x01, 50 }, { 80, 87, 6, 41, 0x01, 0x01, 42 }, { 80, 56, 19, 27, 0x01, 0x01, 40 }, - { 80, 65, 25, 33, 0x01, 0x01, 40 }, { 16, 38, 8, 12, 0x01, 0x01, 47 }, { 80, 78, 46, 33, 0x01, 0x01, 142 }, - { 80, 55, 32, 29, 0x01, 0x01, 155 }, { 80, 98, 67, 48, 0x01, 0x01, 51 }, { 80, 62, 47, 19, 0x01, 0x01, 55 }, - { 32, 123, 15, 83, 0x01, 0x01, 140 }, { 80, 60, 47, 14, 0x01, 0x01, 170 }, { 48, 77, 18, 59, 0x01, 0x01, 79 }, - { 80, 64, 35, 30, 0x01, 0x01, 33 }, { 64, 50, 29, 22, 0x01, 0x01, 40 }, { 80, 65, 39, 5, 0x01, 0x01, 37 }, - { 32, 61, 8, 56, 0x01, 0x01, 35 }, { 80, 83, 37, 42, 0x01, 0x01, 95 }, { 80, 27, 30, 21, 0x01, 0x01, 134 }, - { 80, 23, 122, -18, 0x01, 0x01, 53 }, { 80, 60, 27, 22, 0x01, 0x01, 83 }, + +static MapSpriteInfo map_grand_static_Info[98] = { + { 96, 85, 48, 42, MAPDATA_DRAW_0, 0, 20 }, { 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 }, + { 96, 85, 68, 42, MAPDATA_DRAW_0, 0, 20 }, { 96, 85, 48, 62, MAPDATA_DRAW_0, 0, 20 }, + { 96, 85, 68, 62, MAPDATA_DRAW_0, 0, 20 }, { 80, 72, 40, 35, MAPDATA_DRAW_1, 1, 52 }, + { 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, + { 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 49, MAPDATA_DRAW_3, 2, 20 }, + { 48, 44, 25, 23, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, + { 48, 46, 25, 24, MAPDATA_DRAW_3, 2, 20 }, { 64, 61, 32, 31, MAPDATA_DRAW_3, 2, 20 }, + { 96, 85, 49, 50, MAPDATA_DRAW_3, 2, 20 }, { 96, 85, 49, 62, MAPDATA_DRAW_3, 2, 20 }, + { 96, 85, 49, 43, MAPDATA_DRAW_3, 2, 20 }, { 48, 80, 21, 41, MAPDATA_DRAW_1, 1, 198 }, + { 32, 128, 17, 87, MAPDATA_DRAW_1, 1, 138 }, { 80, 53, 40, 27, MAPDATA_DRAW_1, 1, 54 }, + { 32, 81, 16, 15, MAPDATA_DRAW_3, 2, 20 }, { 80, 45, 35, 23, MAPDATA_DRAW_3, 2, 20 }, + { 64, 87, 36, 44, MAPDATA_DRAW_3, 2, 20 }, { 64, 51, 31, 23, MAPDATA_DRAW_3, 2, 20 }, + { 80, 79, 40, 40, MAPDATA_DRAW_3, 2, 20 }, { 96, 75, 36, 26, MAPDATA_DRAW_3, 2, 20 }, + { 48, 41, 24, 20, MAPDATA_DRAW_3, 2, 20 }, { 64, 45, 31, 20, MAPDATA_DRAW_3, 2, 20 }, + { 80, 52, 38, 28, MAPDATA_DRAW_3, 2, 20 }, { 48, 45, 23, 20, MAPDATA_DRAW_3, 2, 20 }, + { 48, 59, 25, 37, MAPDATA_DRAW_3, 2, 20 }, { 48, 60, 21, 38, MAPDATA_DRAW_3, 2, 20 }, + { 48, 81, 24, 40, MAPDATA_DRAW_3, 2, 20 }, { 48, 81, 24, 40, MAPDATA_DRAW_3, 2, 20 }, + { 80, 89, 41, 26, MAPDATA_DRAW_3, 2, 20 }, { 80, 53, 39, 26, MAPDATA_DRAW_3, 2, 20 }, + { 64, 78, 37, 36, MAPDATA_DRAW_3, 2, 20 }, { 64, 68, 33, 33, MAPDATA_DRAW_3, 2, 20 }, + { 48, 68, 23, 35, MAPDATA_DRAW_3, 2, 20 }, { 48, 36, 25, 17, MAPDATA_DRAW_3, 2, 20 }, + { 48, 25, 24, 12, MAPDATA_DRAW_3, 2, 20 }, { 64, 75, 24, 37, MAPDATA_DRAW_3, 2, 20 }, + { 32, 53, 17, 26, MAPDATA_DRAW_3, 2, 20 }, { 80, 62, 35, 27, MAPDATA_DRAW_1, 1, 105 }, + { 64, 76, 31, 31, MAPDATA_DRAW_1, 1, 133 }, { 96, 85, 47, 43, MAPDATA_DRAW_3, 2, 20 }, + { 80, 71, 48, 33, MAPDATA_DRAW_1, 1, 180 }, { 80, 87, 44, 44, MAPDATA_DRAW_1, 1, 72 }, + { 64, 65, 31, 36, MAPDATA_DRAW_1, 1, 57 }, { 48, 41, 28, 20, MAPDATA_DRAW_1, 1, 60 }, + { 64, 76, 17, 36, MAPDATA_DRAW_1, 1, 58 }, { 80, 60, 27, 22, MAPDATA_DRAW_1, 1, 83 }, + { 80, 47, 38, 23, MAPDATA_DRAW_1, 1, 69 }, { 80, 60, 40, 38, MAPDATA_DRAW_1, 1, 29 }, + { 48, 19, 17, 8, MAPDATA_DRAW_1, 1, 25 }, { 32, 99, 17, 16, MAPDATA_DRAW_1, 1, 88 }, + { 48, 69, 19, 28, MAPDATA_DRAW_1, 1, 76 }, { 48, 83, 34, 47, MAPDATA_DRAW_1, 1, 104 }, + { 80, 54, 45, 27, MAPDATA_DRAW_1, 1, 61 }, { 80, 92, 35, 50, MAPDATA_DRAW_1, 1, 60 }, + { 48, 75, 24, 37, MAPDATA_DRAW_3, 2, 20 }, { 64, 49, 32, 23, MAPDATA_DRAW_3, 2, 20 }, + { 64, 49, 25, 24, MAPDATA_DRAW_3, 2, 20 }, { 64, 52, 32, 24, MAPDATA_DRAW_3, 2, 34 }, + { 64, 49, 31, 24, MAPDATA_DRAW_3, 2, 34 }, { 32, 33, 18, 14, MAPDATA_DRAW_3, 2, 34 }, + { 48, 50, 25, 25, MAPDATA_DRAW_3, 2, 34 }, { 64, 52, 32, 25, MAPDATA_DRAW_3, 2, 34 }, + { 48, 35, 24, 18, MAPDATA_DRAW_3, 2, 34 }, { 64, 51, 32, 26, MAPDATA_DRAW_3, 2, 34 }, + { 48, 35, 24, 18, MAPDATA_DRAW_3, 2, 34 }, { 48, 53, 24, 28, MAPDATA_DRAW_3, 2, 34 }, + { 64, 53, 33, 25, MAPDATA_DRAW_3, 2, 34 }, { 64, 47, 31, 24, MAPDATA_DRAW_3, 2, 34 }, + { 64, 52, 32, 35, MAPDATA_DRAW_3, 2, 34 }, { 48, 48, 24, 23, MAPDATA_DRAW_3, 2, 34 }, + { 64, 87, 32, 26, MAPDATA_DRAW_3, 2, 34 }, { 48, 30, 24, 14, MAPDATA_DRAW_3, 2, 34 }, + { 80, 74, 40, 36, MAPDATA_DRAW_1, 1, 50 }, { 80, 87, 6, 41, MAPDATA_DRAW_1, 1, 42 }, + { 80, 56, 19, 27, MAPDATA_DRAW_1, 1, 40 }, { 80, 65, 25, 33, MAPDATA_DRAW_1, 1, 40 }, + { 16, 38, 8, 12, MAPDATA_DRAW_1, 1, 47 }, { 80, 78, 46, 33, MAPDATA_DRAW_1, 1, 142 }, + { 80, 55, 32, 29, MAPDATA_DRAW_1, 1, 155 }, { 80, 98, 67, 48, MAPDATA_DRAW_1, 1, 51 }, + { 80, 62, 47, 19, MAPDATA_DRAW_1, 1, 55 }, { 32, 123, 15, 83, MAPDATA_DRAW_1, 1, 140 }, + { 80, 60, 47, 14, MAPDATA_DRAW_1, 1, 170 }, { 48, 77, 18, 59, MAPDATA_DRAW_1, 1, 79 }, + { 80, 64, 35, 30, MAPDATA_DRAW_1, 1, 33 }, { 64, 50, 29, 22, MAPDATA_DRAW_1, 1, 40 }, + { 80, 65, 39, 5, MAPDATA_DRAW_1, 1, 37 }, { 32, 61, 8, 56, MAPDATA_DRAW_1, 1, 35 }, + { 80, 83, 37, 42, MAPDATA_DRAW_1, 1, 95 }, { 80, 27, 30, 21, MAPDATA_DRAW_1, 1, 134 }, + { 80, 23, 122, -18, MAPDATA_DRAW_1, 1, 53 }, { 80, 60, 27, 22, MAPDATA_DRAW_1, 1, 83 }, }; + static s32 D_801BF15C[5] = { 0x50, 0x50, 0x8D, 0x50, 0x50, }; -static T_801BF170 D_801BF170[58] = { - { 96, 85, 73, 67, 0x00, 0x00, 60 }, { 96, 85, 73, 74, 0x00, 0x00, 60 }, { 96, 85, 80, 67, 0x00, 0x00, 60 }, - { 96, 85, 73, 67, 0x00, 0x00, 60 }, { 96, 85, 80, 74, 0x00, 0x00, 60 }, { 32, 29, 17, 14, 0x02, 0x00, 50 }, - { 32, 27, 16, 13, 0x02, 0x00, 50 }, { 32, 30, 16, 15, 0x02, 0x00, 50 }, { 16, 32, 8, 20, 0x02, 0x00, 50 }, - { 16, 12, 8, 6, 0x02, 0x00, 50 }, { 32, 27, 16, 13, 0x02, 0x00, 50 }, { 16, 14, 8, 7, 0x02, 0x00, 50 }, - { 32, 19, 16, 9, 0x02, 0x00, 50 }, { 32, 26, 16, 16, 0x02, 0x00, 50 }, { 16, 32, 8, 22, 0x02, 0x00, 50 }, - { 32, 27, 16, 13, 0x02, 0x00, 50 }, { 16, 35, 9, 5, 0x02, 0x00, 45 }, { 32, 18, 14, 9, 0x02, 0x00, 45 }, - { 32, 38, 18, 19, 0x02, 0x00, 45 }, { 32, 21, 16, 9, 0x02, 0x00, 45 }, { 32, 34, 16, 17, 0x02, 0x00, 45 }, - { 48, 32, 19, 11, 0x02, 0x00, 45 }, { 32, 17, 16, 8, 0x02, 0x00, 45 }, { 32, 17, 16, 7, 0x02, 0x00, 45 }, - { 32, 21, 16, 11, 0x02, 0x00, 45 }, { 32, 18, 16, 8, 0x02, 0x00, 45 }, { 16, 24, 9, 15, 0x02, 0x00, 45 }, - { 16, 25, 7, 16, 0x02, 0x00, 45 }, { 32, 35, 16, 17, 0x02, 0x00, 45 }, { 16, 19, 5, 9, 0x02, 0x00, 80 }, - { 32, 28, 17, 7, 0x02, 0x00, 66 }, { 32, 16, 16, 8, 0x02, 0x00, 66 }, { 32, 24, 18, 11, 0x02, 0x00, 66 }, - { 32, 21, 16, 10, 0x02, 0x00, 66 }, { 16, 21, 8, 11, 0x02, 0x00, 66 }, { 16, 10, 8, 4, 0x02, 0x00, 66 }, - { 16, 7, 8, 3, 0x02, 0x00, 66 }, { 32, 23, 13, 11, 0x02, 0x00, 66 }, { 16, 16, 8, 8, 0x02, 0x00, 66 }, - { 16, 17, 8, 7, 0x02, 0x00, 50 }, { 16, 23, 9, 10, 0x02, 0x00, 66 }, { 16, 15, 8, 7, 0x02, 0x00, 66 }, - { 32, 15, 15, 7, 0x02, 0x00, 66 }, { 32, 17, 16, 8, 0x02, 0x00, 90 }, { 32, 16, 16, 8, 0x02, 0x00, 90 }, - { 16, 10, 8, 5, 0x02, 0x00, 90 }, { 16, 17, 8, 8, 0x02, 0x00, 90 }, { 32, 17, 17, 8, 0x02, 0x00, 90 }, - { 16, 11, 8, 5, 0x02, 0x00, 90 }, { 32, 17, 15, 9, 0x02, 0x00, 90 }, { 16, 12, 8, 6, 0x02, 0x00, 90 }, - { 16, 18, 9, 9, 0x02, 0x00, 90 }, { 32, 17, 17, 8, 0x02, 0x00, 90 }, { 32, 15, 16, 8, 0x02, 0x00, 90 }, - { 16, 18, 9, 13, 0x02, 0x00, 90 }, { 16, 16, 8, 7, 0x02, 0x00, 90 }, { 16, 30, 9, 8, 0x02, 0x00, 90 }, - { 16, 9, 9, 4, 0x02, 0x00, 90 }, + +static MapSpriteInfo map_i_static_Info[MAPDATA_MAP_I_MAX] = { + { 96, 85, 73, 67, MAPDATA_DRAW_0, 0, 60 }, { 96, 85, 73, 74, MAPDATA_DRAW_0, 0, 60 }, + { 96, 85, 80, 67, MAPDATA_DRAW_0, 0, 60 }, { 96, 85, 73, 67, MAPDATA_DRAW_0, 0, 60 }, + { 96, 85, 80, 74, MAPDATA_DRAW_0, 0, 60 }, { 32, 29, 17, 14, MAPDATA_DRAW_2, 0, 50 }, + { 32, 27, 16, 13, MAPDATA_DRAW_2, 0, 50 }, { 32, 30, 16, 15, MAPDATA_DRAW_2, 0, 50 }, + { 16, 32, 8, 20, MAPDATA_DRAW_2, 0, 50 }, { 16, 12, 8, 6, MAPDATA_DRAW_2, 0, 50 }, + { 32, 27, 16, 13, MAPDATA_DRAW_2, 0, 50 }, { 16, 14, 8, 7, MAPDATA_DRAW_2, 0, 50 }, + { 32, 19, 16, 9, MAPDATA_DRAW_2, 0, 50 }, { 32, 26, 16, 16, MAPDATA_DRAW_2, 0, 50 }, + { 16, 32, 8, 22, MAPDATA_DRAW_2, 0, 50 }, { 32, 27, 16, 13, MAPDATA_DRAW_2, 0, 50 }, + { 16, 35, 9, 5, MAPDATA_DRAW_2, 0, 45 }, { 32, 18, 14, 9, MAPDATA_DRAW_2, 0, 45 }, + { 32, 38, 18, 19, MAPDATA_DRAW_2, 0, 45 }, { 32, 21, 16, 9, MAPDATA_DRAW_2, 0, 45 }, + { 32, 34, 16, 17, MAPDATA_DRAW_2, 0, 45 }, { 48, 32, 19, 11, MAPDATA_DRAW_2, 0, 45 }, + { 32, 17, 16, 8, MAPDATA_DRAW_2, 0, 45 }, { 32, 17, 16, 7, MAPDATA_DRAW_2, 0, 45 }, + { 32, 21, 16, 11, MAPDATA_DRAW_2, 0, 45 }, { 32, 18, 16, 8, MAPDATA_DRAW_2, 0, 45 }, + { 16, 24, 9, 15, MAPDATA_DRAW_2, 0, 45 }, { 16, 25, 7, 16, MAPDATA_DRAW_2, 0, 45 }, + { 32, 35, 16, 17, MAPDATA_DRAW_2, 0, 45 }, { 16, 19, 5, 9, MAPDATA_DRAW_2, 0, 80 }, + { 32, 28, 17, 7, MAPDATA_DRAW_2, 0, 66 }, { 32, 16, 16, 8, MAPDATA_DRAW_2, 0, 66 }, + { 32, 24, 18, 11, MAPDATA_DRAW_2, 0, 66 }, { 32, 21, 16, 10, MAPDATA_DRAW_2, 0, 66 }, + { 16, 21, 8, 11, MAPDATA_DRAW_2, 0, 66 }, { 16, 10, 8, 4, MAPDATA_DRAW_2, 0, 66 }, + { 16, 7, 8, 3, MAPDATA_DRAW_2, 0, 66 }, { 32, 23, 13, 11, MAPDATA_DRAW_2, 0, 66 }, + { 16, 16, 8, 8, MAPDATA_DRAW_2, 0, 66 }, { 16, 17, 8, 7, MAPDATA_DRAW_2, 0, 50 }, + { 16, 23, 9, 10, MAPDATA_DRAW_2, 0, 66 }, { 16, 15, 8, 7, MAPDATA_DRAW_2, 0, 66 }, + { 32, 15, 15, 7, MAPDATA_DRAW_2, 0, 66 }, { 32, 17, 16, 8, MAPDATA_DRAW_2, 0, 90 }, + { 32, 16, 16, 8, MAPDATA_DRAW_2, 0, 90 }, { 16, 10, 8, 5, MAPDATA_DRAW_2, 0, 90 }, + { 16, 17, 8, 8, MAPDATA_DRAW_2, 0, 90 }, { 32, 17, 17, 8, MAPDATA_DRAW_2, 0, 90 }, + { 16, 11, 8, 5, MAPDATA_DRAW_2, 0, 90 }, { 32, 17, 15, 9, MAPDATA_DRAW_2, 0, 90 }, + { 16, 12, 8, 6, MAPDATA_DRAW_2, 0, 90 }, { 16, 18, 9, 9, MAPDATA_DRAW_2, 0, 90 }, + { 32, 17, 17, 8, MAPDATA_DRAW_2, 0, 90 }, { 32, 15, 16, 8, MAPDATA_DRAW_2, 0, 90 }, + { 16, 18, 9, 13, MAPDATA_DRAW_2, 0, 90 }, { 16, 16, 8, 7, MAPDATA_DRAW_2, 0, 90 }, + { 16, 30, 9, 8, MAPDATA_DRAW_2, 0, 90 }, { 16, 9, 9, 4, MAPDATA_DRAW_2, 0, 90 }, }; -static s32 D_801BF3B4[5] = { + +static s32 map_i_for_gameplay_dangeon_keep[5] = { 0x00, 0x01, 0x02, 0x03, 0x04, }; -static s32 D_801BF3C8[98] = { - 0x3A, 0x01, 0x02, 0x03, 0x04, 0x3A, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F, - 0x3A, 0x3A, 0x3A, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1A, 0x1B, 0x1C, 0x3A, - 0x1E, 0x1F, 0x20, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x3A, 0x3A, 0x27, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, - 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x28, 0x29, 0x2A, 0x2B, 0x2C, 0x2D, 0x2E, 0x2F, - 0x30, 0x31, 0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, - 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, 0x3A, + +static s32 map_i_for_map_grand[98] = { + MAPDATA_MAP_I_MAX, + 0x01, + 0x02, + 0x03, + 0x04, + MAPDATA_MAP_I_MAX, + 0x05, + 0x06, + 0x07, + 0x08, + 0x09, + 0x0A, + 0x0B, + 0x0C, + 0x0D, + 0x0E, + 0x0F, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + 0x10, + 0x11, + 0x12, + 0x13, + 0x14, + 0x15, + 0x16, + 0x17, + 0x18, + 0x19, + 0x1A, + 0x1B, + 0x1C, + MAPDATA_MAP_I_MAX, + 0x1E, + 0x1F, + 0x20, + 0x21, + 0x22, + 0x23, + 0x24, + 0x25, + 0x26, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + 0x27, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + 0x28, + 0x29, + 0x2A, + 0x2B, + 0x2C, + 0x2D, + 0x2E, + 0x2F, + 0x30, + 0x31, + 0x32, + 0x33, + 0x34, + 0x35, + 0x36, + 0x37, + 0x38, + 0x39, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, + MAPDATA_MAP_I_MAX, }; -// mapId -// 0-4 is gameplay_dangeon_keep -// 5-0x3A is map_i_static -// 0x100-0x162 is map_grand_static -s32 func_80109A98(s32); +s32 MapDisp_GetSizeOfMapITex(s32 mapId); -// Get ? Color -void func_801094A0(s32 arg0, Color_RGBA8* color) { - *color = D_801BED40[arg0]; +void MapData_GetMapColor(s32 colorIndex, Color_RGBA8* color) { + *color = mapColorTable[colorIndex]; } void MapData_GetMapTexDimGameplayDangeonKeep(s32 mapId, s32* width, s32* height) { - *width = D_801BED4C[mapId].width; - *height = D_801BED4C[mapId].height; + *width = gameplay_dangeon_keep_Info[mapId].width; + *height = gameplay_dangeon_keep_Info[mapId].height; } -void func_801094F8(s32 mapId, s32* arg1, s32* arg2) { - *arg1 = D_801BED4C[mapId].unk6; - *arg2 = D_801BED4C[mapId].unk7; +void MapData_GetMapTexOffsetGameplayDangeonKeep(s32 mapId, s32* offsetX, s32* offsetY) { + *offsetX = gameplay_dangeon_keep_Info[mapId].offsetX; + *offsetY = gameplay_dangeon_keep_Info[mapId].offsetY; } -void func_80109528(s32 mapId, s32* arg1) { - *arg1 = D_801BED4C[mapId].unk8; +void MapData_GetMapDrawTypeGameplayDangeonKeep(s32 mapId, s32* drawType) { + *drawType = gameplay_dangeon_keep_Info[mapId].drawType; } -u8 func_8010954C(s32 arg0) { - return D_801BED4C[arg0].unk9; +u8 MapData_GetMapColorIndexGameplayDangeonKeep(s32 mapId) { + return gameplay_dangeon_keep_Info[mapId].colorIndex; } -s16 MapData_GetMapScaleGameplayDangeonKeep(s32 mapId) { - return D_801BED4C[mapId].scale; +s16 MapData_GetMapGameplayDangeonKeepScale(s32 mapId) { + return gameplay_dangeon_keep_Info[mapId].scale; } -TexturePtr func_8010958C(s32 arg0) { - return D_801BED4C[arg0].lmapTex; +TexturePtr MapData_GetMapTexGameplayDangeonKeep(s32 mapId) { + return gameplay_dangeon_keep_Info[mapId].lmapTex; } -void MapData_GetMapTexDimGrandMap(s32 mapId, s32* arg1, s32* arg2) { - *arg1 = D_801BED88[mapId - 0x100].unk0; - *arg2 = D_801BED88[mapId - 0x100].unk1; +void MapData_GetMapTexGameplayDangeonKeepDim(s32 mapId, s32* width, s32* height) { + *width = map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texWidth; + *height = map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texHeight; } -void func_801095DC(s32 mapId, s32* arg1, s32* arg2) { - *arg1 = D_801BED88[mapId - 0x100].unk2; - *arg2 = D_801BED88[mapId - 0x100].unk4; +void MapData_GetMapTexGameplayDangeonKeepOffset(s32 mapId, s32* offsetX, s32* offsetY) { + *offsetX = map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].offsetX; + *offsetY = map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].offsetY; } -void func_8010960C(s32 mapId, s32* arg1) { - *arg1 = D_801BED88[mapId - 0x100].unk6; +void MapData_GetMapGrandDrawType(s32 mapId, s32* drawType) { + *drawType = map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].drawType; } -u8 func_80109630(s32 mapId) { - return D_801BED88[mapId - 0x100].unk7; +u8 MapData_GetMapGrandColorIndex(s32 mapId) { + return map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].colorIndex; } -s16 func_80109650(s32 mapId) { - return D_801BED88[mapId - 0x100].unk8; +s16 MapData_GetMapGrandScale(s32 mapId) { + return map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].scale; } -s32 func_80109670(s32 mapId) { - s32 cond = mapId - 0x100; - s32 var_s1 = 0; +s32 MapData_MapGrandTexSizeTest(s32 mapId) { + s32 endMap = mapId - MAPDATA_MAP_GRAND; + s32 size = 0; s32 i; - for (i = 1; i < cond + 1; i++) { - var_s1 += func_801096D4((i - 1) + 0x100); + for (i = 1; i < endMap + 1; i++) { + size += MapData_GetSizeOfMapGrandTex((i - 1) + MAPDATA_MAP_GRAND); } - return var_s1; + return size; } -s32 func_801096D4(s32 mapId) { - return (D_801BED88[mapId - 0x100].unk0 * D_801BED88[mapId - 0x100].unk1) / 2; +s32 MapData_GetSizeOfMapGrandTex(s32 mapId) { + return (map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texWidth * + map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texHeight) / + 2; } -s32 func_80109714(s32 mapId) { +s32 MapData_MID_GetType(s32 mapId) { if ((mapId >= 0) && (mapId < 5)) { return MAPDATA_MID_GAMEPLAY_DANGEON_KEEP; } if ((mapId >= 0x100) && (mapId < 0x162)) { - return MAPDATA_MID_GRAND_MAP_STATIC; + return MAPDATA_MID_MAP_GRAND_STATIC; } return MAPDATA_MID_MAP_I_STATIC; } void MapData_GetMapTexDim(s32 mapId, s32* width, s32* height) { - switch (func_80109714(mapId)) { + switch (MapData_MID_GetType(mapId)) { case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: MapData_GetMapTexDimGameplayDangeonKeep(mapId, width, height); return; - case MAPDATA_MID_GRAND_MAP_STATIC: - MapData_GetMapTexDimGrandMap(mapId, width, height); + case MAPDATA_MID_MAP_GRAND_STATIC: + MapData_GetMapTexGameplayDangeonKeepDim(mapId, width, height); return; default: *width = *height = 0; @@ -181,55 +304,54 @@ void MapData_GetMapTexDim(s32 mapId, s32* width, s32* height) { } } -void func_801097C8(s32 mapId, s32* arg1, s32* arg2) { - switch (func_80109714(mapId)) { +void MapData_GetMapTexOffset(s32 mapId, s32* offsetX, s32* offsetY) { + switch (MapData_MID_GetType(mapId)) { case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: - func_801094F8(mapId, arg1, arg2); + MapData_GetMapTexOffsetGameplayDangeonKeep(mapId, offsetX, offsetY); return; - case MAPDATA_MID_GRAND_MAP_STATIC: - func_801095DC(mapId, arg1, arg2); + case MAPDATA_MID_MAP_GRAND_STATIC: + MapData_GetMapTexGameplayDangeonKeepOffset(mapId, offsetX, offsetY); return; default: - *arg1 = *arg2 = 0; + *offsetX = *offsetY = 0; return; } } void MapData_GetMapScale(s32 mapId, s32* scale) { - switch (func_80109714(mapId)) { + switch (MapData_MID_GetType(mapId)) { default: *scale = 0; return; case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: - *scale = MapData_GetMapScaleGameplayDangeonKeep(mapId); + *scale = MapData_GetMapGameplayDangeonKeepScale(mapId); return; - case MAPDATA_MID_GRAND_MAP_STATIC: - *scale = func_80109650(mapId); + case MAPDATA_MID_MAP_GRAND_STATIC: + *scale = MapData_GetMapGrandScale(mapId); return; } } -void func_801098A0(s32 mapId, s32* arg1) { - switch (func_80109714(mapId)) { +void MapData_GetDrawType(s32 mapId, s32* drawType) { + switch (MapData_MID_GetType(mapId)) { case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: - func_80109528(mapId, arg1); + MapData_GetMapDrawTypeGameplayDangeonKeep(mapId, drawType); return; - case MAPDATA_MID_GRAND_MAP_STATIC: - func_8010960C(mapId, arg1); + case MAPDATA_MID_MAP_GRAND_STATIC: + MapData_GetMapGrandDrawType(mapId, drawType); return; default: - *arg1 = 0; + *drawType = 0; return; } } -// return some color index? -s32 func_80109908(s32 mapId) { - switch (func_80109714(mapId)) { +s32 MapData_GetMapColorIndex(s32 mapId) { + switch (MapData_MID_GetType(mapId)) { case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: - return func_8010954C(mapId); - case MAPDATA_MID_GRAND_MAP_STATIC: - return func_80109630(mapId); + return MapData_GetMapColorIndexGameplayDangeonKeep(mapId); + case MAPDATA_MID_MAP_GRAND_STATIC: + return MapData_GetMapGrandColorIndex(mapId); default: return 0; } @@ -239,75 +361,74 @@ s32 func_80109964(s32 arg0) { return D_801BF15C[arg0]; } -void func_8010997C(s32 arg0, s32* arg1, s32* arg2) { - *arg1 = D_801BF170[arg0].unk0; - *arg2 = D_801BF170[arg0].unk1; +void MapData_GetMapITexDim(s32 mapId, s32* width, s32* height) { + *width = map_i_static_Info[mapId].texWidth; + *height = map_i_static_Info[mapId].texHeight; } -void func_801099AC(s32 arg0, s32* arg1, s32* arg2) { - *arg1 = D_801BF170[arg0].unk2; - *arg2 = D_801BF170[arg0].unk4; +void MapData_GetMapITexOffset(s32 mapId, s32* offsetX, s32* offsetY) { + *offsetX = map_i_static_Info[mapId].offsetX; + *offsetY = map_i_static_Info[mapId].offsetY; } -void func_801099DC(s32 arg0, s32* arg1) { - *arg1 = D_801BF170[arg0].unk6; +void MapData_GetMapIDrawType(s32 mapId, s32* drawType) { + *drawType = map_i_static_Info[mapId].drawType; } -u8 func_80109A00(s32 arg0) { - return D_801BF170[arg0].unk7; +u8 MapData_GetMapIColorIndex(s32 mapId) { + return map_i_static_Info[mapId].colorIndex; } -s16 func_80109A20(s32 arg0) { - return D_801BF170[arg0].unk8; +s16 MapData_GetMapIScale(s32 mapId) { + return map_i_static_Info[mapId].scale; } -s32 func_80109A40(s32 arg0) { - s32 temp_s2; - s32 var_s0; - s32 var_s1; +s32 MapData_MapITexSizeTest(s32 mapId) { + s32 i; + s32 size; - var_s1 = 0; - for (var_s0 = 1; var_s0 < arg0 + 1; var_s0++) { - var_s1 += func_80109A98(var_s0 - 1); + size = 0; + for (i = 1; i < mapId + 1; i++) { + size += MapDisp_GetSizeOfMapITex(i - 1); } - return var_s1; + return size; } -s32 func_80109A98(s32 arg0) { - return (D_801BF170[arg0].unk0 * D_801BF170[arg0].unk1) / 2; +s32 MapDisp_GetSizeOfMapITex(s32 mapId) { + return (map_i_static_Info[mapId].texWidth * map_i_static_Info[mapId].texHeight) / 2; } -s32 func_80109AD8(s32 mapId) { - switch (func_80109714(mapId)) { +s32 MapData_GetMapIId(s32 mapId) { + switch (MapData_MID_GetType(mapId)) { case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: - return D_801BF3B4[mapId]; - case MAPDATA_MID_GRAND_MAP_STATIC: - return D_801BF3C8[mapId - 0x100]; + return map_i_for_gameplay_dangeon_keep[mapId]; + case MAPDATA_MID_MAP_GRAND_STATIC: + return map_i_for_map_grand[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)]; default: return 0; } } s32 func_80109B38(s32 mapId) { - if (func_80109AD8(mapId) != 0x3A) { + if (MapData_GetMapIId(mapId) != MAPDATA_MAP_I_MAX) { return 1; } - switch (func_80109714(mapId)) { + switch (MapData_MID_GetType(mapId)) { case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: return 2; - case MAPDATA_MID_GRAND_MAP_STATIC: + case MAPDATA_MID_MAP_GRAND_STATIC: return 0; default: return 0; } } -s32 func_80109BA0(s32 mapId) { - s32 temp_v0 = func_80109AD8(mapId); +s32 MapData_GetMapCompactId(s32 mapId) { + s32 mapI = MapData_GetMapIId(mapId); - if (temp_v0 != 0x3A) { - return temp_v0; + if (mapI != MAPDATA_MAP_I_MAX) { + return mapI; } if ((mapId >= 0x100) && (mapId < 0x162)) { return mapId - 0xC6; @@ -315,28 +436,29 @@ s32 func_80109BA0(s32 mapId) { return -1; } -s32 func_80109BF4(s32 mapCompactId) { +s32 MapData_CPID_GetType(s32 mapCompactId) { if (mapCompactId == -1) { return MAPDATA_CPID_2; } - if (mapCompactId < 0x3A) { + if (mapCompactId < MAPDATA_MAP_I_MAX) { return MAPDATA_CPID_MAP_I_STATIC; } - if (mapCompactId >= 0x3A) { - return MAPDATA_CPID_GRAND_MAP_STATIC; + if (mapCompactId >= MAPDATA_MAP_I_MAX) { + return MAPDATA_CPID_MAP_GRAND_STATIC; } return MAPDATA_CPID_2; } +// Unused s32 func_80109C38(s32 mapCompactId) { if (mapCompactId == -1) { return 0; } - switch (func_80109BF4(mapCompactId)) { - case MAPDATA_CPID_GRAND_MAP_STATIC: - return func_80109670(mapCompactId + 0xC6); + switch (MapData_CPID_GetType(mapCompactId)) { + case MAPDATA_CPID_MAP_GRAND_STATIC: + return MapData_MapGrandTexSizeTest(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId)); case MAPDATA_CPID_MAP_I_STATIC: - return func_80109A40(mapCompactId); + return MapData_MapITexSizeTest(mapCompactId); case MAPDATA_CPID_2: return 0; default: @@ -344,15 +466,15 @@ s32 func_80109C38(s32 mapCompactId) { } } -s32 MapData_GetMapSize(s32 mapCompactId) { +s32 MapData_CPID_GetSizeOfMapTex(s32 mapCompactId) { if (mapCompactId == -1) { return 0; } - switch (func_80109BF4(mapCompactId)) { - case MAPDATA_CPID_GRAND_MAP_STATIC: - return func_801096D4(mapCompactId + 0xC6); + switch (MapData_CPID_GetType(mapCompactId)) { + case MAPDATA_CPID_MAP_GRAND_STATIC: + return MapData_GetSizeOfMapGrandTex(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId)); case MAPDATA_CPID_MAP_I_STATIC: - return func_80109A98(mapCompactId); + return MapDisp_GetSizeOfMapITex(mapCompactId); case MAPDATA_CPID_2: return 0; default: @@ -360,90 +482,94 @@ s32 MapData_GetMapSize(s32 mapCompactId) { } } -void func_80109D40(s32 mapCompactId, s32* arg1, s32* arg2) { +// GOOD +void MapData_CPID_GetTexDim(s32 mapCompactId, s32* width, s32* height) { if (mapCompactId == -1) { - *arg1 = *arg2 = 0; + *width = *height = 0; return; } - switch (func_80109BF4(mapCompactId)) { - case MAPDATA_CPID_GRAND_MAP_STATIC: - // id base 0x100 - MapData_GetMapTexDimGrandMap(mapCompactId + 0xC6, arg1, arg2); + switch (MapData_CPID_GetType(mapCompactId)) { + case MAPDATA_CPID_MAP_GRAND_STATIC: + MapData_GetMapTexGameplayDangeonKeepDim(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), width, + height); return; case MAPDATA_CPID_MAP_I_STATIC: - func_8010997C(mapCompactId, arg1, arg2); + MapData_GetMapITexDim(mapCompactId, width, height); return; case MAPDATA_CPID_2: default: - *arg1 = *arg2 = 0; + *width = *height = 0; return; } } -void func_80109DD8(s32 mapCompactId, s32* arg1, s32* arg2) { - s32 temp_v0; - +// GOOD +void MapData_CPID_GetTexOffset(s32 mapCompactId, s32* offsetX, s32* offsetY) { if (mapCompactId == -1) { - *arg1 = *arg2 = 0; + *offsetX = *offsetY = 0; return; } - switch (func_80109BF4(mapCompactId)) { - case MAPDATA_CPID_GRAND_MAP_STATIC: - func_801095DC(mapCompactId + 0xC6, arg1, arg2); + switch (MapData_CPID_GetType(mapCompactId)) { + case MAPDATA_CPID_MAP_GRAND_STATIC: + MapData_GetMapTexGameplayDangeonKeepOffset(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), offsetX, + offsetY); return; case MAPDATA_CPID_MAP_I_STATIC: - func_801099AC(mapCompactId, arg1, arg2); + MapData_GetMapITexOffset(mapCompactId, offsetX, offsetY); return; case MAPDATA_CPID_2: default: - *arg1 = *arg2 = 0; + *offsetX = *offsetY = 0; return; } } -void func_80109E70(s32 mapCompactId, s32* arg1) { +// Unused +void MapData_CPID_GetDrawType(s32 mapCompactId, s32* drawType) { if (mapCompactId == -1) { - *arg1 = 0; + *drawType = MAPDATA_DRAW_0; return; } - switch (func_80109BF4(mapCompactId)) { - case MAPDATA_CPID_GRAND_MAP_STATIC: - func_8010960C(mapCompactId + 0xC6, arg1); + switch (MapData_CPID_GetType(mapCompactId)) { + case MAPDATA_CPID_MAP_GRAND_STATIC: + MapData_GetMapGrandDrawType(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), drawType); return; case MAPDATA_CPID_MAP_I_STATIC: - func_801099DC(mapCompactId, arg1); + MapData_GetMapIDrawType(mapCompactId, drawType); return; case MAPDATA_CPID_2: default: - *arg1 = 0; + *drawType = MAPDATA_DRAW_0; return; } } -u8 func_80109EF8(s32 mapCompactId) { +// Unused +u8 MapData_CPID_GetMapColorIndex(s32 mapCompactId) { if (mapCompactId == -1) { return 0; } - switch (func_80109BF4(mapCompactId)) { - case MAPDATA_CPID_GRAND_MAP_STATIC: - return func_80109630(mapCompactId + 0xC6); + switch (MapData_CPID_GetType(mapCompactId)) { + case MAPDATA_CPID_MAP_GRAND_STATIC: + return MapData_GetMapGrandColorIndex(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId)); case MAPDATA_CPID_MAP_I_STATIC: - return func_80109A00(mapCompactId); + return MapData_GetMapIColorIndex(mapCompactId); case MAPDATA_CPID_2: default: return 0; } } -s16 func_80109F78(s32 mapCompactId) { +// GOOD +s16 MapData_CPID_GetMapScale(s32 mapCompactId) { if (mapCompactId == -1) { return 0; } - switch (func_80109BF4(mapCompactId)) { - case MAPDATA_CPID_GRAND_MAP_STATIC: - return func_80109650(mapCompactId + 0xC6); + switch (MapData_CPID_GetType(mapCompactId)) { + case MAPDATA_CPID_MAP_GRAND_STATIC: + return MapData_GetMapGrandScale(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId)); case MAPDATA_CPID_MAP_I_STATIC: - return func_80109A20(mapCompactId); + return MapData_GetMapIScale(mapCompactId); case MAPDATA_CPID_2: default: return 0; diff --git a/src/code/z_map_disp.c b/src/code/z_map_disp.c index 7bd458870..194c8f2ef 100644 --- a/src/code/z_map_disp.c +++ b/src/code/z_map_disp.c @@ -1,8 +1,9 @@ #include "global.h" #include "gfx.h" +#include "overlays/actors/ovl_En_Door/z_en_door.h" -void MapDisp_DestroyIMap(PlayState* play); -void MapDisp_InitIMap(PlayState* play); +void MapDisp_DestroyMapI(PlayState* play); +void MapDisp_InitMapI(PlayState* play); extern s32 D_801BEAD0[4]; // G_IM_SIZ extern s32 D_801BEAE0[4]; // siz_LOAD_BLOCK @@ -37,9 +38,9 @@ extern TexturePtr D_02003F20; extern Gfx D_0401ED00[]; extern TexturePtr D_0C000000; -void MapDisp_GetIMapTexture(void* dst, s32 iMapId) { - if (func_80109A98(iMapId) != 0) { - CmpDma_LoadFile(SEGMENT_ROM_START(map_i_static), iMapId, dst, func_80109A98(iMapId)); +void MapDisp_GetMapITexture(void* dst, s32 mapId) { + if (MapDisp_GetSizeOfMapITex(mapId) != 0) { + CmpDma_LoadFile(SEGMENT_ROM_START(map_i_static), mapId, dst, MapDisp_GetSizeOfMapITex(mapId)); } } @@ -69,11 +70,11 @@ s32 func_80102EF0(PlayState* play) { if (curRoom == -1) { return false; } - entry = &D_801BEBB8.unk0->entry[curRoom]; + entry = &D_801BEBB8.minimapList->entry[curRoom]; if (entry->mapId == 0xFFFF) { return false; } - if (func_80109AD8(entry->mapId) == 0x3A) { + if (MapData_GetMapIId(entry->mapId) == MAPDATA_MAP_I_MAX) { return false; } return true; @@ -96,37 +97,37 @@ f32 func_80102F9C(f32 arg0) { return 0.0f; } -void MapDisp_GetMapTexDim(MinimapEntry* arg0, s32* out1, s32* out2) { - MapData_GetMapTexDim(arg0->mapId, out1, out2); +void MapDisp_GetMapTexDim(MinimapEntry* minimapEntry, s32* width, s32* height) { + MapData_GetMapTexDim(minimapEntry->mapId, width, height); } -void MapDisp_GetMapScale(MinimapEntry* arg0, s32* scale) { - MapData_GetMapScale(arg0->mapId, scale); +void MapDisp_GetMapScale(MinimapEntry* minimapEntry, s32* scale) { + MapData_GetMapScale(minimapEntry->mapId, scale); if (*scale == 0) { *scale = 20; } } -void MapDisp_GetMapPos(MinimapEntry* arg0, s32* arg1, s32* arg2) { +void MapDisp_GetMapPos(MinimapEntry* minimapEntry, s32* offsetX, s32* offsetY) { s32 width; s32 height; s32 temp; s32 temp2; - if (arg0->mapId == 0xFFFF) { - *arg1 = 0; - *arg2 = 0; + if (minimapEntry->mapId == 0xFFFF) { + *offsetX = 0; + *offsetY = 0; return; } - MapDisp_GetMapTexDim(arg0, &width, &height); - func_801097C8(arg0->mapId, arg1, arg2); - if (arg0->unk8 & 1) { + MapDisp_GetMapTexDim(minimapEntry, &width, &height); + MapData_GetMapTexOffset(minimapEntry->mapId, offsetX, offsetY); + if (minimapEntry->unk8 & 1) { temp = width / 2; - *arg1 = (temp - *arg1) + temp; + *offsetX = (temp - *offsetX) + temp; } - if (arg0->unk8 & 2) { + if (minimapEntry->unk8 & 2) { temp2 = height / 2; - *arg2 = (temp2 - *arg2) + temp2; + *offsetY = (temp2 - *offsetY) + temp2; } } @@ -142,32 +143,32 @@ void func_801031D0(PlayState* play, TexturePtr arg1, s32 arg2, s32 arg3, s32 arg s32 var_t1; s32 var_v1_4; s32 var_v1_5; - Color_RGBA8 spAC; - s32 spA8; + Color_RGBA8 spAC_color; + s32 spA8_drawType; - spCC = &D_801BEBB8.unk0->entry[arg4]; + spCC = &D_801BEBB8.minimapList->entry[arg4]; if ((spCC->mapId != 0xFFFF) && (arg1 != 0)) { MapDisp_GetMapTexDim(spCC, &spC8, &spC4); OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL39_Overlay(play->state.gfxCtx); - func_801094A0(func_80109908(spCC->mapId), &spAC); - gDPSetPrimColor(OVERLAY_DISP++, 0, 0, spAC.r, spAC.g, spAC.b, - (s32)(play->interfaceCtx.minimapAlpha * arg5 * spAC.a / 255.0f)); - func_801098A0(spCC->mapId, &spA8); - switch (spA8) { - case 1: + MapData_GetMapColor(MapData_GetMapColorIndex(spCC->mapId), &spAC_color); + gDPSetPrimColor(OVERLAY_DISP++, 0, 0, spAC_color.r, spAC_color.g, spAC_color.b, + (s32)(play->interfaceCtx.minimapAlpha * arg5 * spAC_color.a / 255.0f)); + MapData_GetDrawType(spCC->mapId, &spA8_drawType); + switch (spA8_drawType) { + case MAPDATA_DRAW_1: gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPLoadTextureBlock_4b(OVERLAY_DISP++, arg1, G_IM_FMT_IA, spC8, spC4, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); break; - case 3: + case MAPDATA_DRAW_3: gDPSetCombineLERP(OVERLAY_DISP++, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0, 0, 0, 0, PRIMITIVE, 0, 0, 0, TEXEL0); gDPLoadTextureBlock_4b(OVERLAY_DISP++, arg1, G_IM_FMT_I, spC8, spC4, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); break; default: - case 0: + case MAPDATA_DRAW_0: gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPLoadTextureBlock_4b(OVERLAY_DISP++, arg1, G_IM_FMT_I, spC8, spC4, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); @@ -242,25 +243,25 @@ void func_80103A58(PlayState* play, Actor* actor) { s32 spC4; f32 spC0; u32 pad; - s32 var_v0; + s32 scale; Player* spB4; u32 pad2; - s32 spAC; + s32 spAC_scaleTemp; // GraphicsContext *spA8; - spDC = &D_801BEBB8.unk0->entry[D_801BEBB8.curRoom]; + spDC = &D_801BEBB8.minimapList->entry[D_801BEBB8.curRoom]; spB4 = GET_PLAYER(play); if (spDC->mapId != 0xFFFF) { MapDisp_GetMapPos(spDC, &spD0, &spCC); MapDisp_GetMapTexDim(spDC, &spC8, &spC4); - var_v0 = D_801BEBB8.unk0->scale; - if (D_801BEBB8.unk0->scale == 0) { - var_v0 = 20; - } else if (D_801BEBB8.unk0->scale == -1) { - MapDisp_GetMapScale(spDC, &spAC); - var_v0 = spAC; + scale = D_801BEBB8.minimapList->scale; + if (D_801BEBB8.minimapList->scale == 0) { + scale = 20; + } else if (D_801BEBB8.minimapList->scale == -1) { + MapDisp_GetMapScale(spDC, &spAC_scaleTemp); + scale = spAC_scaleTemp; } - spC0 = 1.0f / (f32)var_v0; + spC0 = 1.0f / (f32)scale; if (!MapDisp_IsDataRotated(play)) { spD8 = (s32)((actor->world.pos.x - (f32)spDC->unk2) * spC0) + D_801BEBB8.unk8 + D_801BEBB8.unkC - D_801BEBB8.unk8 + spD0; @@ -408,15 +409,15 @@ void func_801045AC(PlayState* play, Actor* actor) { if (sp50 < 0) { sp50 = 0.0f; } - sp7C = &D_801BEBB8.unk0->entry[D_801BEBB8.curRoom]; + sp7C = &D_801BEBB8.minimapList->entry[D_801BEBB8.curRoom]; if (sp7C->mapId != 0xFFFF) { MapDisp_GetMapPos(sp7C, &sp70, &sp6C); MapDisp_GetMapTexDim(sp7C, &sp68, &sp64); - var_v1 = D_801BEBB8.unk0->scale; - if (D_801BEBB8.unk0->scale == 0) { + var_v1 = D_801BEBB8.minimapList->scale; + if (D_801BEBB8.minimapList->scale == 0) { var_v1 = 20; - } else if (D_801BEBB8.unk0->scale == -1) { + } else if (D_801BEBB8.minimapList->scale == -1) { s32 sp4C; MapDisp_GetMapScale(sp7C, &sp4C); var_v1 = sp4C; @@ -446,14 +447,14 @@ void func_801045AC(PlayState* play, Actor* actor) { s32 pad; gDPSetPrimColor(OVERLAY_DISP++, 0, 0, D_801BEC2C[actor->category].r, D_801BEC2C[actor->category].g, D_801BEC2C[actor->category].b, - (s32)((D_801BEC2C[actor->category].a * (1.0f - D_801BEBB8.unk24 * 0.05f) * sp50 * - play->interfaceCtx.minimapAlpha) / + (s32)((D_801BEC2C[actor->category].a * (1.0f - D_801BEBB8.swapAnimTimer * 0.05f) * + sp50 * play->interfaceCtx.minimapAlpha) / 255.0f)); - var_v1 = D_801BEBB8.unk0->scale; - if (D_801BEBB8.unk0->scale == 0) { + var_v1 = D_801BEBB8.minimapList->scale; + if (D_801BEBB8.minimapList->scale == 0) { var_v1 = 20; - } else if (D_801BEBB8.unk0->scale == -1) { + } else if (D_801BEBB8.minimapList->scale == -1) { s32 sp34; MapDisp_GetMapScale(sp7C, &sp34); var_v1 = sp34; @@ -511,33 +512,33 @@ void func_80104C80(PlayState* play) { void MapDisp_Init(PlayState* play) { s32 i; - D_801BEBB8.unk0 = NULL; + D_801BEBB8.minimapList = NULL; D_801BEBB8.curRoom = -1; D_801BEBB8.unk8 = 0xD2; D_801BEBB8.unkA = 0x8C; D_801BEBB8.unkC = 0xD2; D_801BEBB8.unkE = 0x8C; - D_801BEBB8.unk10 = NULL; + D_801BEBB8.lMapCurTex = NULL; D_801BEBB8.prevRoom = -1; - D_801BEBB8.unk18 = NULL; + D_801BEBB8.lMapPrevTex = NULL; D_801BEBB8.unk1C = 0; D_801BEBB8.unk1E = 0; D_801BEBB8.unk20 = 0; - D_801BEBB8.unk24 = 0; + D_801BEBB8.swapAnimTimer = 0; if (!Map_IsInBossArea(play)) { D_801BEC1C = play->numRooms; } - D_801BEBB8.unk28 = THA_AllocTailAlign16(&play->state.heap, 0x4000); - D_801BEBB8.unk2C = THA_AllocTailAlign16(&play->state.heap, 0x4000); + D_801BEBB8.texBuff0 = THA_AllocTailAlign16(&play->state.heap, 0x4000); + D_801BEBB8.texBuff1 = THA_AllocTailAlign16(&play->state.heap, 0x4000); func_80104C80(play); if (!Map_IsInBossArea(play)) { - D_801BEBB8.unk30 = 0; - D_801BEBB8.unk32 = 0; - D_801BEBB8.unk34 = 0x64; - D_801BEBB8.unk36 = 0x64; - D_801BEBB8.unk38 = (s16)(s32)((f32)D_801BEBB8.unk30 + ((f32)D_801BEBB8.unk34 * 0.5f)); - D_801BEBB8.unk3A = (s16)(s32)((f32)D_801BEBB8.unk32 + ((f32)D_801BEBB8.unk36 * 0.5f)); + D_801BEBB8.sceneMinX = 0; + D_801BEBB8.sceneMinZ = 0; + D_801BEBB8.sceneWidth = 100; + D_801BEBB8.sceneHeight = 100; + D_801BEBB8.sceneMidX = (s16)(s32)((f32)D_801BEBB8.sceneMinX + ((f32)D_801BEBB8.sceneWidth * 0.5f)); + D_801BEBB8.sceneMidZ = (s16)(s32)((f32)D_801BEBB8.sceneMinZ + ((f32)D_801BEBB8.sceneHeight * 0.5f)); } D_801BEBB8.unk3C = THA_AllocTailAlign16(&play->state.heap, D_801BEC1C * sizeof(s16)); @@ -549,7 +550,7 @@ void MapDisp_Init(PlayState* play) { for (i = 0; i < 32; i++) { D_801BEBB8.unk48[i] = -0x7FFF; } - MapDisp_InitIMap(play); + MapDisp_InitMapI(play); D_801BEBB8.unk58 = 0; D_801BEBB8.unk5A = 0; if (Map_IsInBossArea(play) != 0) { @@ -568,7 +569,7 @@ void func_80104F34(PlayState* play) { D_801BEBB8.unk48[i1] = -0x7FFF; } for (i2 = 0; i2 < D_801BEC1C; i2++) { - MinimapEntry* mapEntry1 = &D_801BEBB8.unk0->entry[i2]; + MinimapEntry* mapEntry1 = &D_801BEBB8.minimapList->entry[i2]; if (mapEntry1->mapId == 0xFFFF) { continue; @@ -599,7 +600,7 @@ void func_80104F34(PlayState* play) { } } for (i2 = 0; i2 < D_801BEC1C; i2++) { - MinimapEntry* mapEntry2 = &D_801BEBB8.unk0->entry[i2]; + MinimapEntry* mapEntry2 = &D_801BEBB8.minimapList->entry[i2]; D_801BEBB8.unk3C[i2] = -1; @@ -629,7 +630,7 @@ void func_80104F34(PlayState* play) { s32 func_80105294(void) { T_801BEC70 sp4 = D_801BEC70; - if ((D_801BEBB8.unk0 == NULL) || (D_801BEBB8.unk58 < 0) || (D_801BEBB8.unk58 >= 5) || (D_801BEC1C == 0)) { + if ((D_801BEBB8.minimapList == NULL) || (D_801BEBB8.unk58 < 0) || (D_801BEBB8.unk58 >= 5) || (D_801BEC1C == 0)) { return 0x7B; } return sp4.unk0[D_801BEBB8.unk58]; @@ -641,30 +642,27 @@ s16 func_80105318(void) { // TransitionActor params test s32 func_80105328(s32 params) { - if (((((u16)params) >> 7) & 7) == 5) { - return 1; + if (ENDOOR_PARAMS_GET_TYPE((u16)params) == ENDOOR_TYPE_5) { + return true; } - return 0; + return false; } void func_8010534C(PlayState* play) { - TransitionActorList* transitionActors; - TransitionActorEntry* var_s0; + TransitionActorList* transitionActors = &D_801BEC24; s32 var_v0; - s32 var_s2; + s32 i; - transitionActors = &D_801BEC24; - - for (var_s2 = 0; var_s2 < transitionActors->count; var_s2++) { - if (func_80105328(D_801F53B0[var_s2].params) != 0) { - if (ABS_ALT(D_801F53B0[var_s2].id) != 0x18) { + for (i = 0; i < transitionActors->count; i++) { + if (func_80105328(D_801F53B0[i].params) != 0) { + if (ABS_ALT(D_801F53B0[i].id) != 0x18) { for (var_v0 = 0; var_v0 < D_801BEBB8.unk40; var_v0++) { s32 temp = (D_801BEBB8.unk48[var_v0] - 5); // needed for matching - if (((var_v0 == D_801BEBB8.unk40 - 1) && - (D_801F53B0[var_s2].pos.y >= (D_801BEBB8.unk48[var_v0] - 5))) || - ((var_v0 != D_801BEBB8.unk40 - 1) && - (D_801F53B0[var_s2].pos.y >= (D_801BEBB8.unk48[var_v0] - 5)) && - (D_801F53B0[var_s2].pos.y < (D_801BEBB8.unk48[var_v0 + 1] - 5)))) { + if (((var_v0 == D_801BEBB8.unk40 - 1) && (D_801F53B0[i].pos.y >= (D_801BEBB8.unk48[var_v0] - 5))) + + || + ((var_v0 != D_801BEBB8.unk40 - 1) && (D_801F53B0[i].pos.y >= (D_801BEBB8.unk48[var_v0] - 5)) && + (D_801F53B0[i].pos.y < (D_801BEBB8.unk48[var_v0 + 1] - 5)))) { D_801BEBB8.unk58 = var_v0; return; } @@ -692,15 +690,15 @@ void func_8010549C(PlayState* play, void* segmentAddress) { D_801BEC14.entry = D_801F5130; if (play->colCtx.colHeader != NULL) { - D_801BEBB8.unk30 = play->colCtx.colHeader->minBounds.x; - D_801BEBB8.unk32 = play->colCtx.colHeader->minBounds.z; - D_801BEBB8.unk34 = play->colCtx.colHeader->maxBounds.x - play->colCtx.colHeader->minBounds.x; - D_801BEBB8.unk36 = play->colCtx.colHeader->maxBounds.z - play->colCtx.colHeader->minBounds.z; - D_801BEBB8.unk38 = D_801BEBB8.unk30 + (D_801BEBB8.unk34 * 0.5f); - D_801BEBB8.unk3A = D_801BEBB8.unk32 + (D_801BEBB8.unk36 * 0.5f); + D_801BEBB8.sceneMinX = play->colCtx.colHeader->minBounds.x; + D_801BEBB8.sceneMinZ = play->colCtx.colHeader->minBounds.z; + D_801BEBB8.sceneWidth = play->colCtx.colHeader->maxBounds.x - play->colCtx.colHeader->minBounds.x; + D_801BEBB8.sceneHeight = play->colCtx.colHeader->maxBounds.z - play->colCtx.colHeader->minBounds.z; + D_801BEBB8.sceneMidX = D_801BEBB8.sceneMinX + (D_801BEBB8.sceneWidth * 0.5f); + D_801BEBB8.sceneMidZ = D_801BEBB8.sceneMinZ + (D_801BEBB8.sceneHeight * 0.5f); } } - D_801BEBB8.unk0 = &D_801BEC14; + D_801BEBB8.minimapList = &D_801BEC14; func_80104F34(play); func_8010534C(play); } @@ -717,7 +715,7 @@ void func_8010565C(PlayState* play, s32 num, void* segmentAddress) { D_801BEC20 = num; } D_801BEBB8.unk54 = D_801F5270; - D_801BEBB8.unk50 = D_801BEC20; + D_801BEBB8.numChests = D_801BEC20; } void func_80105818(PlayState* play, s32 num, TransitionActorEntry* transitionActorList) { @@ -735,19 +733,19 @@ void func_80105818(PlayState* play, s32 num, TransitionActorEntry* transitionAct void MapDisp_Destroy(PlayState* play) { s32 i; - D_801BEBB8.unk0 = NULL; + D_801BEBB8.minimapList = NULL; D_801BEBB8.curRoom = -1; D_801BEBB8.unkC = 0xD2; D_801BEBB8.unkE = 0x8C; - D_801BEBB8.unk10 = NULL; + D_801BEBB8.lMapCurTex = NULL; D_801BEBB8.prevRoom = -1; - D_801BEBB8.unk18 = NULL; + D_801BEBB8.lMapPrevTex = NULL; D_801BEBB8.unk1C = 0; D_801BEBB8.unk1E = 0; D_801BEBB8.unk20 = 0; - D_801BEBB8.unk24 = 0; - D_801BEBB8.unk28 = NULL; - D_801BEBB8.unk2C = NULL; + D_801BEBB8.swapAnimTimer = 0; + D_801BEBB8.texBuff0 = NULL; + D_801BEBB8.texBuff1 = NULL; for (i = 0; i < D_801BEC1C; i++) { func_80102EA4(play, &D_801BEBB8.unk3C[i]); @@ -759,9 +757,9 @@ void MapDisp_Destroy(PlayState* play) { D_801BEBB8.unk44 = 0; D_801BEBB8.unk4C = 0; D_801BEBB8.unk48 = NULL; - D_801BEBB8.unk50 = 0; + D_801BEBB8.numChests = 0; D_801BEBB8.unk54 = NULL; - MapDisp_DestroyIMap(play); + MapDisp_DestroyMapI(play); D_801BEBB8.unk5A = 0; } @@ -770,39 +768,39 @@ void func_80105B34(PlayState* play) { s16 temp_a0_2; s16 temp_v1; s16 temp_v1_2; - s32 temp_v0; - if ((D_801BEBB8.unk0 != NULL) && (D_801BEC1C != 0)) { + if ((D_801BEBB8.minimapList != NULL) && (D_801BEC1C != 0)) { D_801BEBFA = 8 - play->pauseCtx.unk_256; if (D_801BEBB8.prevRoom != -1) { - temp_v0 = D_801BEBB8.unk24; - if (temp_v0 > 0) { + if (D_801BEBB8.swapAnimTimer > 0) { temp_v1 = D_801BEBB8.unk8; temp_a0 = D_801BEBB8.unkC; if (temp_v1 != temp_a0) { - D_801BEBB8.unkC = (s16)(s32)(((f32)(temp_v1 - temp_a0) / (f32)temp_v0) + (f32)temp_a0); + D_801BEBB8.unkC = + (s16)(s32)(((f32)(temp_v1 - temp_a0) / (f32)D_801BEBB8.swapAnimTimer) + (f32)temp_a0); } temp_v1_2 = D_801BEBB8.unkA; temp_a0_2 = D_801BEBB8.unkE; if (temp_v1_2 != temp_a0_2) { - D_801BEBB8.unkE = (s16)(s32)(((f32)(temp_v1_2 - temp_a0_2) / (f32)temp_v0) + (f32)temp_a0_2); + D_801BEBB8.unkE = + (s16)(s32)(((f32)(temp_v1_2 - temp_a0_2) / (f32)D_801BEBB8.swapAnimTimer) + (f32)temp_a0_2); } - D_801BEBB8.unk24 = temp_v0 - 1; - return; + D_801BEBB8.swapAnimTimer--; + } else { + D_801BEBB8.prevRoom = -1; + D_801BEBB8.swapAnimTimer = 0; + D_801BEBB8.unkC = D_801BEBB8.unk8; + D_801BEBB8.unkE = D_801BEBB8.unkA; } - D_801BEBB8.prevRoom = -1; - D_801BEBB8.unk24 = 0; - D_801BEBB8.unkC = D_801BEBB8.unk8; - D_801BEBB8.unkE = D_801BEBB8.unkA; - return; + } else { + D_801BEBB8.swapAnimTimer = 0; } - D_801BEBB8.unk24 = 0; } } -void func_80105C40(s16 room) { - MinimapEntry* temp_s0; - MinimapEntry* sp58; +void MapDisp_SwapRooms(s16 nextRoom) { + MinimapEntry* nextMinimapEntry; + MinimapEntry* prevMinimapEntry; s32 sp54; s32 sp50; s32 sp4C; @@ -810,40 +808,41 @@ void func_80105C40(s16 room) { s32 sp44; s32 sp40; - if ((D_801BEBB8.unk0 != NULL) && (D_801BEC1C != 0) && (room != -1)) { - temp_s0 = &D_801BEBB8.unk0->entry[room]; - if ((temp_s0->mapId < 5) || ((temp_s0->mapId >= 0x100) && (temp_s0->mapId < 0x162)) || - temp_s0->mapId == 0xFFFF) { + if ((D_801BEBB8.minimapList != NULL) && (D_801BEC1C != 0) && (nextRoom != -1)) { + nextMinimapEntry = &D_801BEBB8.minimapList->entry[nextRoom]; + if ((nextMinimapEntry->mapId < 5) || + ((nextMinimapEntry->mapId >= 0x100) && (nextMinimapEntry->mapId < 0x162)) || + nextMinimapEntry->mapId == 0xFFFF) { D_801BEBB8.prevRoom = D_801BEBB8.curRoom; - D_801BEBB8.curRoom = room; - D_801BEBB8.unk24 = 0x14; + D_801BEBB8.curRoom = nextRoom; + D_801BEBB8.swapAnimTimer = 20; - D_801BEBB8.unk18 = D_801BEBB8.unk10; + D_801BEBB8.lMapPrevTex = D_801BEBB8.lMapCurTex; sp54 = D_801BEBB8.unk8; sp50 = D_801BEBB8.unkA; - temp_s0 = &D_801BEBB8.unk0->entry[D_801BEBB8.curRoom]; + nextMinimapEntry = &D_801BEBB8.minimapList->entry[D_801BEBB8.curRoom]; - if (temp_s0->mapId == 0xFFFF) { + if (nextMinimapEntry->mapId == 0xFFFF) { D_801BEBB8.unk1E = 0; D_801BEBB8.unk8 = 0xD2; D_801BEBB8.unkA = 0x8C; D_801BEBB8.unkC = 0xD2; D_801BEBB8.unkE = 0x8C; - D_801BEBB8.unk10 = NULL; + D_801BEBB8.lMapCurTex = NULL; D_801BEBB8.unk1C = D_801BEBB8.unk1E; return; } - MapDisp_GetMapPos(temp_s0, &sp44, &sp40); - MapDisp_GetMapTexDim(temp_s0, &sp4C, &sp48); + MapDisp_GetMapPos(nextMinimapEntry, &sp44, &sp40); + MapDisp_GetMapTexDim(nextMinimapEntry, &sp4C, &sp48); D_801BEBB8.unk8 = 0x127 - sp4C; D_801BEBB8.unkA = 0xDC - sp48; if (D_801BEBB8.prevRoom != -1) { - sp58 = &D_801BEBB8.unk0->entry[D_801BEBB8.prevRoom]; - if (sp58->mapId == 0xFFFF) { + prevMinimapEntry = &D_801BEBB8.minimapList->entry[D_801BEBB8.prevRoom]; + if (prevMinimapEntry->mapId == 0xFFFF) { D_801BEBB8.unk1E = 0; - D_801BEBB8.unk10 = NULL; + D_801BEBB8.lMapCurTex = NULL; D_801BEBB8.unk1C = D_801BEBB8.unk1E; D_801BEBB8.unkC = D_801BEBB8.unk8; D_801BEBB8.unkE = D_801BEBB8.unkA; @@ -851,21 +850,23 @@ void func_80105C40(s16 room) { } else { s32 sp3C; s32 sp38; - s32 var_v0; + s32 scale; s32 pad; - MapDisp_GetMapPos(sp58, &sp3C, &sp38); - var_v0 = D_801BEBB8.unk0->scale; - if (D_801BEBB8.unk0->scale == 0) { - var_v0 = 20; - } else if (D_801BEBB8.unk0->scale == -1) { - s32 sp2C; - MapDisp_GetMapScale(temp_s0, &sp2C); - var_v0 = sp2C; + MapDisp_GetMapPos(prevMinimapEntry, &sp3C, &sp38); + scale = D_801BEBB8.minimapList->scale; + if (D_801BEBB8.minimapList->scale == 0) { + scale = 20; + } else if (D_801BEBB8.minimapList->scale == -1) { + s32 scaleTemp; + MapDisp_GetMapScale(nextMinimapEntry, &scaleTemp); + scale = scaleTemp; } D_801BEBB8.unk1C = (s16)(s32)( - ((f32)sp44 + (((f32)sp58->unk2 - (f32)temp_s0->unk2) * (1.0f / var_v0))) - (f32)sp3C); + ((f32)sp44 + (((f32)prevMinimapEntry->unk2 - (f32)nextMinimapEntry->unk2) * (1.0f / scale))) - + (f32)sp3C); D_801BEBB8.unk1E = (s16)(s32)( - ((f32)sp40 + (((f32)sp58->unk6 - (f32)temp_s0->unk6) * (1.0f / var_v0))) - (f32)sp38); + ((f32)sp40 + (((f32)prevMinimapEntry->unk6 - (f32)nextMinimapEntry->unk6) * (1.0f / scale))) - + (f32)sp38); D_801BEBB8.unkC = sp54 - D_801BEBB8.unk1C; D_801BEBB8.unkE = sp50 - D_801BEBB8.unk1E; } @@ -874,21 +875,21 @@ void func_80105C40(s16 room) { D_801BEBB8.unkC = D_801BEBB8.unk8; D_801BEBB8.unkE = D_801BEBB8.unkA; } - D_801BEBB8.unk10 = NULL; + D_801BEBB8.lMapCurTex = NULL; - switch (func_80109714(temp_s0->mapId)) { - case 0: - D_801BEBB8.unk10 = func_8010958C(temp_s0->mapId); + switch (MapData_MID_GetType(nextMinimapEntry->mapId)) { + case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP: + D_801BEBB8.lMapCurTex = MapData_GetMapTexGameplayDangeonKeep(nextMinimapEntry->mapId); return; - case 1: - if (D_801BEBB8.unk18 == D_801BEBB8.unk28) { - D_801BEBB8.unk10 = D_801BEBB8.unk2C; + case MAPDATA_MID_MAP_GRAND_STATIC: + if (D_801BEBB8.lMapPrevTex == D_801BEBB8.texBuff0) { + D_801BEBB8.lMapCurTex = D_801BEBB8.texBuff1; } else { - D_801BEBB8.unk10 = D_801BEBB8.unk28; + D_801BEBB8.lMapCurTex = D_801BEBB8.texBuff0; } - if (func_801096D4(temp_s0->mapId) != 0) { - CmpDma_LoadFile(SEGMENT_ROM_START(map_grand_static), temp_s0->mapId - 0x100, - (s32)D_801BEBB8.unk10, func_801096D4(temp_s0->mapId)); + if (MapData_GetSizeOfMapGrandTex(nextMinimapEntry->mapId) != 0) { + CmpDma_LoadFile(SEGMENT_ROM_START(map_grand_static), nextMinimapEntry->mapId - 0x100, + D_801BEBB8.lMapCurTex, MapData_GetSizeOfMapGrandTex(nextMinimapEntry->mapId)); } break; } @@ -908,15 +909,15 @@ void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot) { s32 sp54; s32 var_v0; - sp6C = &D_801BEBB8.unk0->entry[D_801BEBB8.curRoom]; + sp6C = &D_801BEBB8.minimapList->entry[D_801BEBB8.curRoom]; if (sp6C->mapId != 0xFFFF) { f32 sp4C; MapDisp_GetMapPos(sp6C, &sp60, &sp5C); MapDisp_GetMapTexDim(sp6C, &sp58, &sp54); - var_v0 = D_801BEBB8.unk0->scale; - if (D_801BEBB8.unk0->scale == 0) { + var_v0 = D_801BEBB8.minimapList->scale; + if (D_801BEBB8.minimapList->scale == 0) { var_v0 = 20; - } else if (D_801BEBB8.unk0->scale == -1) { + } else if (D_801BEBB8.minimapList->scale == -1) { s32 sp48; MapDisp_GetMapScale(sp6C, &sp48); var_v0 = sp48; @@ -987,20 +988,20 @@ s32 func_80106530(PlayState* play) { return false; } -s32 func_8010657C(s32 arg0, s32 arg1) { +s32 func_8010657C(s32 curRoom, s32 prevRoom) { MinimapEntry* entry; s16* temp1; // Can be removed, but adds readability - if ((arg0 == -1) || (arg1 == -1)) { + if ((curRoom == -1) || (prevRoom == -1)) { return 0; } - entry = &D_801BEBB8.unk0->entry[arg0]; + entry = &D_801BEBB8.minimapList->entry[curRoom]; temp1 = D_801BEBB8.unk3C; - if ((temp1[arg0] <= temp1[arg1]) && (temp1[arg1] <= (temp1[arg0] + ((entry->unk8 >> 2) & 7)))) { + if ((temp1[curRoom] <= temp1[prevRoom]) && (temp1[prevRoom] <= (temp1[curRoom] + ((entry->unk8 >> 2) & 7)))) { return 1; } - entry = &D_801BEBB8.unk0->entry[arg1]; - if ((temp1[arg1] <= temp1[arg0]) && (temp1[arg0] <= (temp1[arg1] + ((entry->unk8 >> 2) & 7)))) { + entry = &D_801BEBB8.minimapList->entry[prevRoom]; + if ((temp1[prevRoom] <= temp1[curRoom]) && (temp1[curRoom] <= (temp1[prevRoom] + ((entry->unk8 >> 2) & 7)))) { return 1; } return 0; @@ -1009,16 +1010,17 @@ s32 func_8010657C(s32 arg0, s32 arg1) { void func_80106644(PlayState* play, s32 x, s32 z, s32 rot) { PauseContext* pauseCtx = &play->pauseCtx; - if ((D_801BEBB8.unk0 != 0) && ((s32)pauseCtx->state < 4) && (XREG(95) == 0) && + if ((D_801BEBB8.minimapList != 0) && ((s32)pauseCtx->state < 4) && (XREG(95) == 0) && (play->interfaceCtx.minimapAlpha != 0)) { if ((func_801064CC(play) == 0) && (D_801BEC1C != 0)) { if (func_80106450(play) != 0) { - func_801031D0(play, D_801BEBB8.unk10, D_801BEBB8.unkC, D_801BEBB8.unkE, D_801BEBB8.curRoom, - 1.0f - (D_801BEBB8.unk24 * 0.05f)); + func_801031D0(play, D_801BEBB8.lMapCurTex, D_801BEBB8.unkC, D_801BEBB8.unkE, D_801BEBB8.curRoom, + 1.0f - (D_801BEBB8.swapAnimTimer * 0.05f)); if ((D_801BEBB8.curRoom != D_801BEBB8.prevRoom) && (func_8010657C(D_801BEBB8.curRoom, D_801BEBB8.prevRoom) != 0)) { - func_801031D0(play, D_801BEBB8.unk18, D_801BEBB8.unkC + D_801BEBB8.unk1C, - D_801BEBB8.unkE + D_801BEBB8.unk1E, D_801BEBB8.prevRoom, D_801BEBB8.unk24 * 0.05f); + func_801031D0(play, D_801BEBB8.lMapPrevTex, D_801BEBB8.unkC + D_801BEBB8.unk1C, + D_801BEBB8.unkE + D_801BEBB8.unk1E, D_801BEBB8.prevRoom, + D_801BEBB8.swapAnimTimer * 0.05f); } func_80104AE8(play); } @@ -1047,85 +1049,84 @@ void MapDisp_ResetIMap(void) { D_801BEBB8.unk20 &= ~1; } -void MapDisp_InitIMap(PlayState* play) { +void MapDisp_InitMapI(PlayState* play) { MapDisp_ResetIMap(); } -void MapDisp_DestroyIMap(PlayState* play) { +void MapDisp_DestroyMapI(PlayState* play) { MapDisp_ResetIMap(); } // alloc pause screen dungeon map void* func_801068FC(PlayState* play, void* heap) { void* heapNext; - s32 temp_s2; - s32 temp_v0; - s32 var_s1; + s32 mapId; + s32 mapCompactId; + s32 dungeonMapRoomIter; s32 var_s2; - s32 var_s4; + s32 roomIter; MinimapEntry* entry; s32 var_s3; heapNext = heap; - if ((D_801BEBB8.unk0 == NULL) || (D_801BEC1C == 0)) { + if ((D_801BEBB8.minimapList == NULL) || (D_801BEC1C == 0)) { return heapNext; } D_801F56B0.rooms = 0; // loop for number of rooms - for (var_s4 = 0; var_s4 < D_801BEC1C; var_s4++) { - var_s2 = 0; - entry = &D_801BEBB8.unk0->entry[var_s4]; + for (roomIter = 0; roomIter < D_801BEC1C; roomIter++) { + var_s2 = false; + entry = &D_801BEBB8.minimapList->entry[roomIter]; if (entry->mapId == 0xFFFF) { continue; - } else { - temp_v0 = func_80109BA0(entry->mapId); - if (temp_v0 == -1) { - continue; - } else { - for (var_s1 = 0; var_s1 < D_801F56B0.rooms; var_s1++) { - if (temp_v0 == D_801F56B0.unk4[var_s1]) { - var_s2 = 1; - break; - } - } - if (var_s2 == 0) { - D_801F56B0.unk4[D_801F56B0.rooms] = temp_v0; - D_801F56B0.rooms += 1; - } + } + mapCompactId = MapData_GetMapCompactId(entry->mapId); + if (mapCompactId == -1) { + continue; + } + for (dungeonMapRoomIter = 0; dungeonMapRoomIter < D_801F56B0.rooms; dungeonMapRoomIter++) { + if (mapCompactId == D_801F56B0.unk4[dungeonMapRoomIter]) { + var_s2 = true; + break; } } + if (var_s2 == false) { + D_801F56B0.unk4[D_801F56B0.rooms] = mapCompactId; + D_801F56B0.rooms += 1; + } } D_801F56B0.unk84[0] = heap; - for (var_s1 = 0; var_s1 < D_801F56B0.rooms; var_s1++) { - temp_s2 = D_801F56B0.unk4[var_s1]; - MapDisp_GetIMapTexture(D_801F56B0.unk84[var_s1], temp_s2); - if (var_s1 + 1 < D_801F56B0.rooms) { - D_801F56B0.unk84[var_s1 + 1] = ALIGN16((intptr_t)D_801F56B0.unk84[var_s1] + MapData_GetMapSize(temp_s2)); + for (dungeonMapRoomIter = 0; dungeonMapRoomIter < D_801F56B0.rooms; dungeonMapRoomIter++) { + mapId = D_801F56B0.unk4[dungeonMapRoomIter]; + MapDisp_GetMapITexture(D_801F56B0.unk84[dungeonMapRoomIter], mapId); + if (dungeonMapRoomIter + 1 < D_801F56B0.rooms) { + D_801F56B0.unk84[dungeonMapRoomIter + 1] = + ALIGN16((intptr_t)D_801F56B0.unk84[dungeonMapRoomIter] + MapData_CPID_GetSizeOfMapTex(mapId)); } else { - heapNext = (intptr_t)D_801F56B0.unk84[var_s1] + MapData_GetMapSize(temp_s2); + heapNext = (intptr_t)D_801F56B0.unk84[dungeonMapRoomIter] + MapData_CPID_GetSizeOfMapTex(mapId); } } - for (var_s4 = 0; var_s4 < D_801BEC1C; var_s4++) { - entry = &D_801BEBB8.unk0->entry[var_s4]; + for (roomIter = 0; roomIter < D_801BEC1C; roomIter++) { + entry = &D_801BEBB8.minimapList->entry[roomIter]; if (entry->mapId == 0xFFFF) { - D_801F56B0.unk104[var_s4] = NULL; + D_801F56B0.unk104[roomIter] = NULL; } else { var_s3 = false; - temp_v0 = func_80109BA0(entry->mapId); - for (var_s1 = 0; var_s1 < D_801F56B0.rooms; var_s1++) { - if (temp_v0 == D_801F56B0.unk4[var_s1]) { + mapCompactId = MapData_GetMapCompactId(entry->mapId); + for (dungeonMapRoomIter = 0; dungeonMapRoomIter < D_801F56B0.rooms; dungeonMapRoomIter++) { + if (mapCompactId == D_801F56B0.unk4[dungeonMapRoomIter]) { var_s3 = true; break; } } if (!var_s3) { - D_801F56B0.unk104[var_s4] = NULL; + D_801F56B0.unk104[roomIter] = NULL; } else { - void* dummy = D_801F56B0.unk84[var_s1]; //! FAKE: + void* dummy = D_801F56B0.unk84[dungeonMapRoomIter]; //! FAKE: - D_801F56B0.unk104[var_s4] = D_801F56B0.unk84[var_s1]; + D_801F56B0.unk104[roomIter] = D_801F56B0.unk84[dungeonMapRoomIter]; } } } @@ -1205,10 +1206,10 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_RGBA16); for (var_s2 = 0; var_s2 < D_801BEC1C; var_s2++) { - s32 sp118; - s32 sp114; - s32 sp110; - s32 sp10C; + s32 sp118_texWidth; + s32 sp114_texHeight; + s32 sp110_offsetX; + s32 sp10C_offsetY; MinimapEntry* sp108; s32 pad104; s32 sp100; @@ -1221,66 +1222,70 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 s32 padE4; s32 padE0; - sp108 = &D_801BEBB8.unk0->entry[var_s2]; + sp108 = &D_801BEBB8.minimapList->entry[var_s2]; if ((sp108->mapId != 0xFFFF) && (sp108->mapId < 0x162)) { if ((D_801BEBB8.unk42 >= D_801BEBB8.unk3C[var_s2]) && ((D_801BEBB8.unk3C[var_s2] + ((sp108->unk8 >> 2) & 7)) >= D_801BEBB8.unk42)) { temp_s1 = D_801F56B0.unk104[var_s2]; if (temp_s1 != NULL) { - spE8 = func_80109BA0(sp108->mapId); + spE8 = MapData_GetMapCompactId(sp108->mapId); if (spE8 == -1) { continue; } else { // sp3C = play + 0x18000; - func_80109D40(spE8, &sp118, &sp114); - func_80109DD8(spE8, &sp110, &sp10C); + MapData_CPID_GetTexDim(spE8, &sp118_texWidth, &sp114_texHeight); + MapData_CPID_GetTexOffset(spE8, &sp110_offsetX, &sp10C_offsetY); if (sp108->unk8 & 1) { - sp110 = (sp118 / 2 - sp110) + sp118 / 2; - sp100 = (sp118 - 1) << 5; + sp110_offsetX = (sp118_texWidth / 2 - sp110_offsetX) + sp118_texWidth / 2; + sp100 = (sp118_texWidth - 1) << 5; spF8 = 0xFC00; } else { sp100 = 0; spF8 = 0x400; } if (sp108->unk8 & 2) { - sp10C = (sp114 / 2 - sp10C) + sp114 / 2; - spFC = (sp114 - 1) << 5; + sp10C_offsetY = (sp114_texHeight / 2 - sp10C_offsetY) + sp114_texHeight / 2; + spFC = (sp114_texHeight - 1) << 5; spF4 = 0xFC00; } else { spFC = 0; spF4 = 0x400; } - spF0 = ((sp108->unk2 - (f32)D_801BEBB8.unk38) * arg5 - sp110) + ((arg3 / 2) + arg1); - spEC = ((sp108->unk6 - (f32)D_801BEBB8.unk3A) * arg5 - sp10C) + ((arg4 / 2) + arg2); + spF0 = ((sp108->unk2 - (f32)D_801BEBB8.sceneMidX) * arg5 - sp110_offsetX) + ((arg3 / 2) + arg1); + spEC = ((sp108->unk6 - (f32)D_801BEBB8.sceneMidZ) * arg5 - sp10C_offsetY) + ((arg4 / 2) + arg2); if (var_s2 == play->roomCtx.curRoom.num) { if (Map_IsInBossArea(play) != 0) { - gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118, sp114, 1, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118_texWidth, + sp114_texHeight, 1, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD); } else { - gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118, sp114, 2, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, - G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118_texWidth, + sp114_texHeight, 2, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD); } } else if (gSaveContext.save.saveInfo .permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))] .rooms & (1 << var_s2)) { - gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118, sp114, 1, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118_texWidth, + sp114_texHeight, 1, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD); } else if (CHECK_DUNGEON_ITEM( 2, arg6)) { //*(gBitFlags + 8) & gSaveContext.save.inventory.dungeonItems[arg6]) { - gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118, sp114, 0, - G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, - G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); + gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118_texWidth, + sp114_texHeight, 0, G_TX_NOMIRROR | G_TX_WRAP, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, + G_TX_NOLOD); } else { continue; } - gSPTextureRectangle(POLY_OPA_DISP++, (spF0 << 2), (spEC << 2), (spF0 + sp118) << 2, - (spEC + sp114) << 2, 0, sp100, spFC, spF8, spF4); + gSPTextureRectangle(POLY_OPA_DISP++, (spF0 << 2), (spEC << 2), (spF0 + sp118_texWidth) << 2, + (spEC + sp114_texHeight) << 2, 0, sp100, spFC, spF8, spF4); gDPPipeSync(POLY_OPA_DISP++); } } @@ -1410,10 +1415,10 @@ void func_80107B78(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 var_s3 = 0; var_s0 = D_801BEBB8.unk54; - // if (D_801BEBB8.unk50 > 0) { - for (var_s3 = 0; var_s3 < D_801BEBB8.unk50; var_s3++) { + // if (D_801BEBB8.numChests > 0) { + for (var_s3 = 0; var_s3 < D_801BEBB8.numChests; var_s3++) { sp3C = var_s0[var_s3].unk0; - sp38 = &D_801BEBB8.unk0->entry[sp3C]; + sp38 = &D_801BEBB8.minimapList->entry[sp3C]; switch (arg0->sceneId) { case SCENE_MITURIN_BS: var_v1_2 = gSaveContext.cycleSceneFlags[SCENE_MITURIN].chest & (1 << var_s0[var_s3].unk2); @@ -1437,9 +1442,9 @@ void func_80107B78(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 } else if (func_80106BEC((s32)D_801BEBB8.unk42, (f32)var_s0[var_s3].unk6) == 0) { continue; } else { - temp_ft0 = (s32)(((((f32)var_s0[var_s3].unk4 - (f32)D_801BEBB8.unk38) * arg5) - (f32)4) + + temp_ft0 = (s32)(((((f32)var_s0[var_s3].unk4 - (f32)D_801BEBB8.sceneMidX) * arg5) - (f32)4) + (f32)((arg3 / 2) + arg1)); - temp_ft0_2 = (s32)(((((f32)var_s0[var_s3].unk8 - (f32)D_801BEBB8.unk3A) * arg5) - (f32)4) + + temp_ft0_2 = (s32)(((((f32)var_s0[var_s3].unk8 - (f32)D_801BEBB8.sceneMidZ) * arg5) - (f32)4) + (f32)((arg4 / 2) + arg2)); // temp_v1_13 = temp_s1->polyOpa.p; // temp_s1->polyOpa.p = temp_v1_13 + 8; @@ -1482,17 +1487,19 @@ void func_80108124(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 roomA = D_801F53B0[i].sides[0].room; roomB = D_801F53B0[i].sides[1].room; if (CHECK_DUNGEON_ITEM(2, gSaveContext.mapIndex) || (roomA < 0) || - (gSaveContext.save.saveInfo.permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))] + (gSaveContext.save.saveInfo + .permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))] .rooms & (1 << roomA)) || (roomB < 0) || - (gSaveContext.save.saveInfo.permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))] + (gSaveContext.save.saveInfo + .permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))] .rooms & (1 << roomB))) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha); - tempX = ((f32)D_801F53B0[i].pos.x - D_801BEBB8.unk38) * arg5 + ((arg3 / 2) + arg1); - tempY = ((f32)D_801F53B0[i].pos.z - D_801BEBB8.unk3A) * arg5 + ((arg4 / 2) + arg2); + tempX = ((f32)D_801F53B0[i].pos.x - D_801BEBB8.sceneMidX) * arg5 + ((arg3 / 2) + arg1); + tempY = ((f32)D_801F53B0[i].pos.z - D_801BEBB8.sceneMidZ) * arg5 + ((arg4 / 2) + arg2); gSPTextureRectangle(POLY_OPA_DISP++, ((tempX - 1) << 2), ((tempY - 1) << 2), ((tempX + 1) << 2), ((tempY + 1) << 2), G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); } @@ -1528,9 +1535,10 @@ void func_80108558(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32 if ((func_80105328((s32)D_801F53B0[var_s2].params) != 0) && (func_80106BEC((s32)D_801BEBB8.unk42, (f32)D_801F53B0[var_s2].pos.y) != 0)) { if (ABS_ALT(D_801F53B0[var_s2].id) != ACTOR_EN_HOLL) { - temp_ft0 = ((((f32)D_801F53B0[var_s2].pos.x - D_801BEBB8.unk38) * arg5) - 4) + ((arg3 / 2) + arg1); + temp_ft0 = + ((((f32)D_801F53B0[var_s2].pos.x - D_801BEBB8.sceneMidX) * arg5) - 4) + ((arg3 / 2) + arg1); temp_ft0_2 = - ((((f32)D_801F53B0[var_s2].pos.z - D_801BEBB8.unk3A) * arg5) - 4) + ((arg4 / 2) + arg2); + ((((f32)D_801F53B0[var_s2].pos.z - D_801BEBB8.sceneMidZ) * arg5) - 4) + ((arg4 / 2) + arg2); gSPTextureRectangle(POLY_OPA_DISP++, temp_ft0 << 2, temp_ft0_2 << 2, (temp_ft0 + 8) << 2, (temp_ft0_2 + 8) << 2, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400); } @@ -1583,7 +1591,7 @@ void func_80108AF8(PlayState* play) { s32 var_s1; s32 spB4 = 0; - if ((D_801BEBB8.unk0 != NULL) && (D_801BEC1C != 0) && (func_80108A64(play) == 0)) { + if ((D_801BEBB8.minimapList != NULL) && (D_801BEC1C != 0) && (func_80108A64(play) == 0)) { if (Map_IsInBossArea(play) != 0) { switch (play->sceneId) { case SCENE_MITURIN_BS: @@ -1608,7 +1616,8 @@ void func_80108AF8(PlayState* play) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 200, pauseCtx->alpha); for (var_s1 = 0; var_s1 < D_801BEBB8.unk40; var_s1++) { - if ((gSaveContext.save.saveInfo.permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))].unk_14 & + if ((gSaveContext.save.saveInfo.permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))] + .unk_14 & gBitFlags[4 - var_s1]) || CHECK_DUNGEON_ITEM2(2, spB4)) { gDPLoadTextureBlock(POLY_OPA_DISP++, func_80108A10(D_801BEBB8.unk44 + var_s1), G_IM_FMT_IA, G_IM_SIZ_8b, @@ -1645,7 +1654,7 @@ void func_80108AF8(PlayState* play) { } s32 func_801090B0(s32 arg0) { - if ((D_801BEBB8.unk0 == NULL) || (D_801BEC1C == 0)) { + if ((D_801BEBB8.minimapList == NULL) || (D_801BEC1C == 0)) { return false; } if ((arg0 < 0) || (arg0 >= 6)) { @@ -1660,7 +1669,7 @@ s32 func_801090B0(s32 arg0) { s32 func_80109124(s16 arg0) { s32 i; - if ((D_801BEBB8.unk0 == NULL) || (D_801BEC1C == 0)) { + if ((D_801BEBB8.minimapList == NULL) || (D_801BEC1C == 0)) { return -1; } if (D_801BEBB8.unk40 < 2) { @@ -1709,11 +1718,11 @@ void func_801091F0(PlayState* play) { } else { sp44 = gSaveContext.mapIndex; } - temp_a0 = D_801BEBB8.unk0->entry->mapId; + temp_a0 = D_801BEBB8.minimapList->entry->mapId; if ((temp_a0 != 0xFFFF) && (temp_a0 < 0x162)) { - temp_v0_2 = func_80109BA0(temp_a0); + temp_v0_2 = MapData_GetMapCompactId(temp_a0); if (temp_v0_2 != -1) { - var_t2 = func_80109F78(temp_v0_2); + var_t2 = MapData_CPID_GetMapScale(temp_v0_2); if (var_t2 == 0) { var_t2 = 0x50; } diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index 534f9b2c3..0ca5a9683 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -152,7 +152,7 @@ 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)) { @@ -178,7 +178,7 @@ 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.heap, 0x1000); diff --git a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c index 3a64f9763..69f64156b 100644 --- a/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c +++ b/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c @@ -697,7 +697,8 @@ void DoorShutter_Draw(Actor* thisx, PlayState* play) { } if (sp44->unk_04 != 0) { - TransitionActorEntry* transitionEntry = &play->transitionActors.list[DOOR_GET_TRANSITION_ID(&this->slidingDoor.dyna.actor)]; + TransitionActorEntry* transitionEntry = + &play->transitionActors.list[DOOR_GET_TRANSITION_ID(&this->slidingDoor.dyna.actor)]; if ((play->roomCtx.prevRoom.num >= 0) || (transitionEntry->sides[0].room == transitionEntry->sides[1].room)) { diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.h b/src/overlays/actors/ovl_En_Door/z_en_door.h index 03dc31ab6..417dc69c4 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.h +++ b/src/overlays/actors/ovl_En_Door/z_en_door.h @@ -9,6 +9,7 @@ struct EnDoor; typedef void (*EnDoorActionFunc)(struct EnDoor*, PlayState*); +#define ENDOOR_PARAMS_GET_TYPE(params) ((params >> 7) & 7) #define ENDOOR_GET_TYPE(thisx) (((thisx)->params >> 7) & 7) #define ENDOOR_GET_PARAM_7F(thisx) (((thisx)->params) & 0x7F) diff --git a/tools/buildtools/makeyar.c b/tools/buildtools/makeyar.c index 6a241f6f5..e064b2050 100644 --- a/tools/buildtools/makeyar.c +++ b/tools/buildtools/makeyar.c @@ -188,20 +188,26 @@ void createArchive(Bytearray *archive, const DataSection *dataSect) { offset = firstEntryOffset; for (i = 0; i < dataSect->symbols.len; i++) { const struct Elf32_Symbol *sym = &dataSect->symbols.symbols[i]; - size_t uncompressedSize = sym->size; - uint8_t *output = malloc(uncompressedSize * sizeof(uint8_t)); // assume compressed shouldn't be bigger than uncompressed + size_t realUncompressedSize = sym->size; + size_t alignedUncompressedSize = ALIGN16(realUncompressedSize); + uint8_t *inputBuf = malloc(alignedUncompressedSize* sizeof(uint8_t)); + uint8_t *output = malloc(alignedUncompressedSize * sizeof(uint8_t)); // assume compressed shouldn't be bigger than uncompressed size_t compressedSize; + memcpy(inputBuf, &dataSect->data.bytes[sym->value], realUncompressedSize); + if (realUncompressedSize < alignedUncompressedSize) { + memset(&inputBuf[realUncompressedSize], 0, alignedUncompressedSize - realUncompressedSize); + } + output[0] = 'Y'; output[1] = 'a'; output[2] = 'z'; output[3] = '0'; - util_write_uint32_be(&output[4], uncompressedSize); + util_write_uint32_be(&output[4], alignedUncompressedSize); memset(&output[8], 0, 8); compressedSize = 0x10; - assert(sym->value + uncompressedSize <= dataSect->data.size); - compressedSize += yaz0_encode(&dataSect->data.bytes[sym->value], &output[0x10], uncompressedSize); + compressedSize += yaz0_encode(inputBuf, &output[0x10], alignedUncompressedSize); // Pad to 0x10 while (compressedSize % 0x10 != 0) { diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 3eaeca601..0f6f573c1 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -1901,7 +1901,7 @@ 0x80102DBC:("ZeldaArena_Init",), 0x80102DEC:("ZeldaArena_Cleanup",), 0x80102E10:("ZeldaArena_IsInitialized",), - 0x80102E40:("MapDisp_GetIMapTexture",), + 0x80102E40:("MapDisp_GetMapITexture",), 0x80102E90:("func_80102E90",), 0x80102EA4:("func_80102EA4",), 0x80102EB4:("func_80102EB4",), @@ -1930,7 +1930,7 @@ 0x80105818:("func_80105818",), 0x80105A40:("MapDisp_Destroy",), 0x80105B34:("func_80105B34",), - 0x80105C40:("func_80105C40",), + 0x80105C40:("MapDisp_SwapRooms",), 0x80105FE0:("func_80105FE0",), 0x80106408:("func_80106408",), 0x80106450:("func_80106450",), @@ -1939,8 +1939,8 @@ 0x8010657C:("func_8010657C",), 0x80106644:("func_80106644",), 0x8010683C:("MapDisp_ResetIMap",), - 0x801068B4:("MapDisp_InitIMap",), - 0x801068D8:("MapDisp_DestroyIMap",), + 0x801068B4:("MapDisp_InitMapI",), + 0x801068D8:("MapDisp_DestroyMapI",), 0x801068FC:("func_801068FC",), 0x80106BEC:("func_80106BEC",), 0x80106D08:("func_80106D08",), @@ -1955,45 +1955,45 @@ 0x80109124:("func_80109124",), 0x801091F0:("func_801091F0",), 0x80109428:("func_80109428",), - 0x801094A0:("func_801094A0",), + 0x801094A0:("MapData_GetMapColor",), 0x801094C8:("func_801094C8",), - 0x801094F8:("func_801094F8",), - 0x80109528:("func_80109528",), - 0x8010954C:("func_8010954C",), + 0x801094F8:("MapData_GetMapTexOffsetGameplayDangeonKeep",), + 0x80109528:("MapData_GetMapDrawTypeGameplayDangeonKeep",), + 0x8010954C:("MapData_GetMapColorIndexGameplayDangeonKeep",), 0x8010956C:("func_8010956C",), - 0x8010958C:("func_8010958C",), - 0x801095AC:("MapData_GetMapTexDimGrandMap",), - 0x801095DC:("func_801095DC",), - 0x8010960C:("func_8010960C",), - 0x80109630:("func_80109630",), - 0x80109650:("func_80109650",), - 0x80109670:("func_80109670",), - 0x801096D4:("func_801096D4",), - 0x80109714:("func_80109714",), + 0x8010958C:("MapData_GetMapTexGameplayDangeonKeep",), + 0x801095AC:("MapData_GetMapTexGameplayDangeonKeepDim",), + 0x801095DC:("MapData_GetMapTexGameplayDangeonKeepOffset",), + 0x8010960C:("MapData_GetMapGrandDrawType",), + 0x80109630:("MapData_GetMapGrandColorIndex",), + 0x80109650:("MapData_GetMapGrandScale",), + 0x80109670:("MapData_MapGrandTexSizeTest",), + 0x801096D4:("MapData_GetSizeOfMapGrandTex",), + 0x80109714:("MapData_MID_GetType",), 0x80109754:("MapData_GetMapTexDim",), - 0x801097C8:("func_801097C8",), + 0x801097C8:("MapData_GetMapTexOffset",), 0x8010983C:("MapData_GetMapScale",), - 0x801098A0:("func_801098A0",), - 0x80109908:("func_80109908",), + 0x801098A0:("MapData_GetDrawType",), + 0x80109908:("MapData_GetMapColorIndex",), 0x80109964:("func_80109964",), - 0x8010997C:("func_8010997C",), - 0x801099AC:("func_801099AC",), - 0x801099DC:("func_801099DC",), - 0x80109A00:("func_80109A00",), - 0x80109A20:("func_80109A20",), - 0x80109A40:("func_80109A40",), - 0x80109A98:("func_80109A98",), - 0x80109AD8:("func_80109AD8",), + 0x8010997C:("MapData_GetMapITexDim",), + 0x801099AC:("MapData_GetMapITexOffset",), + 0x801099DC:("MapData_GetMapIDrawType",), + 0x80109A00:("MapData_GetMapIColorIndex",), + 0x80109A20:("MapData_GetMapIScale",), + 0x80109A40:("MapData_MapITexSizeTest",), + 0x80109A98:("MapDisp_GetSizeOfMapITex",), + 0x80109AD8:("MapData_GetMapIId",), 0x80109B38:("func_80109B38",), - 0x80109BA0:("func_80109BA0",), - 0x80109BF4:("func_80109BF4",), + 0x80109BA0:("MapData_GetMapCompactId",), + 0x80109BF4:("MapData_CPID_GetType",), 0x80109C38:("func_80109C38",), - 0x80109CBC:("MapData_GetMapSize",), - 0x80109D40:("func_80109D40",), - 0x80109DD8:("func_80109DD8",), - 0x80109E70:("func_80109E70",), - 0x80109EF8:("func_80109EF8",), - 0x80109F78:("func_80109F78",), + 0x80109CBC:("MapData_CPID_GetSizeOfMapTex",), + 0x80109D40:("MapData_CPID_GetTexDim",), + 0x80109DD8:("MapData_CPID_GetTexOffset",), + 0x80109E70:("MapData_CPID_GetDrawType",), + 0x80109EF8:("MapData_CPID_GetMapColorIndex",), + 0x80109F78:("MapData_CPID_GetMapScale",), 0x8010A000:("Map_GetDungeonOrBossAreaIndex",), 0x8010A074:("Map_IsInDungeonOrBossAreaArea",), 0x8010A0A4:("func_8010A0A4",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 06d554b09..99610b6c7 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -1014,13 +1014,13 @@ 0x801BECE4:("D_801BECE4","UNK_TYPE1","",0x1C), 0x801BED00:("D_801BED00","UNK_TYPE1","",0x24), 0x801BED24:("D_801BED24","UNK_TYPE2","",0x18), - 0x801BED40:("D_801BED40","UNK_TYPE1","",0x1), - 0x801BED4C:("D_801BED4C","UNK_TYPE1","",0x3C), - 0x801BED88:("D_801BED88","UNK_TYPE1","",0x1), + 0x801BED40:("mapColorTable","UNK_TYPE1","",0x1), + 0x801BED4C:("gameplay_dangeon_keep_Info","UNK_TYPE1","",0x3C), + 0x801BED88:("map_grand_static_Info","UNK_TYPE1","",0x1), 0x801BF15C:("D_801BF15C","UNK_TYPE1","",0x1), - 0x801BF170:("D_801BF170","UNK_TYPE1","",0x244), - 0x801BF3B4:("D_801BF3B4","s32","",0x14), - 0x801BF3C8:("D_801BF3C8","s32","",0x188), + 0x801BF170:("map_i_static_Info","UNK_TYPE1","",0x244), + 0x801BF3B4:("map_i_for_gameplay_dangeon_keep","s32","",0x14), + 0x801BF3C8:("map_i_for_map_grand","s32","",0x188), 0x801BF550:("D_801BF550","UNK_TYPE2","",0x2), 0x801BF554:("D_801BF554","UNK_TYPE2","",0x2), 0x801BF558:("D_801BF558","UNK_TYPE2","",0x2), diff --git a/tools/overlayhelpers/mapdata.py b/tools/overlayhelpers/mapdata.py index 26c91dfa2..2799bc5f3 100755 --- a/tools/overlayhelpers/mapdata.py +++ b/tools/overlayhelpers/mapdata.py @@ -3,15 +3,15 @@ # Extracts z_map_data.c data import argparse, os, struct, math -D_801BF170_ROM = 0x1196B0 +map_i_static_Info_ROM = 0x1196B0 CODE_START_VRAM = 0x800A5AC0 MAP_DATA_DATA_START = 0x801BED40 MAP_DATA_DATA_END = 0x801BF550 typeInfo = { "Color_RGBA8" : [ 0x04, ">BBBB", "{{ {0}, {1}, {2}, {3} }}" ], - "T_801BED4C" : [ 0x0C, ">IBBBBBBh", "{{ D_{0:08X}, {1}, {2}, {3}, {4}, 0x{5:02X}, 0x{6:02X}, {7} }}"], - "T_801BF170" : [ 0x0A, ">BBhhBBh", "{{ {0}, {1}, {2}, {3}, 0x{4:02X}, 0x{5:02X}, {6} }}"], + "MapSpriteInfo2" : [ 0x0C, ">IBBBBBBh", "{{ D_{0:08X}, {1}, {2}, {3}, {4}, MAPDATA_DRAW_{5}, {6}, {7} }}"], + "MapSpriteInfo" : [ 0x0A, ">BBhhBBh", "{{ {0}, {1}, {2}, {3}, MAPDATA_DRAW_{4}, {5}, {6} }}"], "s32" : [ 0x04, ">I", "0x{0:02X}"] } @@ -27,10 +27,10 @@ def GetDataOff(vram): def dumpList(data, vram, keyword, typeKey, varName, length): if keyword is None: keyword = "" - else: + else: keyword = f"{keyword} " cstr = f"{keyword}{typeKey} {varName}[{length}] = {{\n" - + ty = typeInfo[typeKey] off = GetDataOff(vram) for i in range(length): @@ -41,6 +41,54 @@ def dumpList(data, vram, keyword, typeKey, varName, length): return cstr +def dumpMapGrandStatic(data, vram, typeKey, length): + xmlStr = "\n" + ty = typeInfo[typeKey] + off = GetDataOff(vram) + mapId = 0x100 + textureOff = 0 + + for i in range(length): + val = struct.unpack_from(ty[1], data, off) + off += ty[0] + textureWidth = val[0] + textureHeight = val[1] + + xmlStr += f' \n' + # inc cursors + + textureOff += textureWidth * textureHeight // 2 + textureOff = ((textureOff + 0xF) // 0x10) * 0x10 + mapId += 1 + + + xmlStr += "};\n" + return xmlStr + +def dumpMapIStatic(data, vram, typeKey, length): + xmlStr = "\n" + ty = typeInfo[typeKey] + off = GetDataOff(vram) + mapId = 0x0 + textureOff = 0 + + for i in range(length): + val = struct.unpack_from(ty[1], data, off) + off += ty[0] + textureWidth = val[0] + textureHeight = val[1] + + xmlStr += f' \n' + # inc cursors + + textureOff += textureWidth * textureHeight // 2 + textureOff = ((textureOff + 0xF) // 0x10) * 0x10 + mapId += 1 + + + xmlStr += "};\n" + return xmlStr + def dump(): data = [] @@ -49,13 +97,16 @@ def dump(): codefile.seek(GetCodeOff(MAP_DATA_DATA_START)) data = codefile.read(MAP_DATA_DATA_END - MAP_DATA_DATA_START) - cstr += dumpList(data, 0x801BED40, "static", "Color_RGBA8", "D_801BED40", 3) - cstr += dumpList(data, 0x801BED4C, "static", "T_801BED4C", "D_801BED4C", 5) - cstr += dumpList(data, 0x801BED88, "static", "T_801BF170", "D_801BED88", 0x62) + cstr += dumpList(data, 0x801BED40, "static", "Color_RGBA8", "mapColorTable", 3) + cstr += dumpList(data, 0x801BED4C, "static", "MapSpriteInfo2", "gameplay_dangeon_keep_Info", 5) + cstr += dumpList(data, 0x801BED88, "static", "MapSpriteInfo", "map_grand_static_Info", 98) cstr += dumpList(data, 0x801BF15C, "static", "s32", "D_801BF15C", 5) - cstr += dumpList(data, 0x801BF170, "static", "T_801BF170", "D_801BF170", 0x3A) - cstr += dumpList(data, 0x801BF3B4, "static", "s32", "D_801BF3B4", 5) - cstr += dumpList(data, 0x801BF3C8, "static", "s32", "D_801BF3C8", 0x62) + cstr += dumpList(data, 0x801BF170, "static", "MapSpriteInfo", "map_i_static_Info", 58) + cstr += dumpList(data, 0x801BF3B4, "static", "s32", "map_i_for_gameplay_dangeon_keep", 5) + cstr += dumpList(data, 0x801BF3C8, "static", "s32", "map_i_for_map_grand", 98) + + cstr += dumpMapGrandStatic(data, 0x801BED88, "MapSpriteInfo", 98) + cstr += dumpMapIStatic(data, 0x801BF170, "MapSpriteInfo", 58) print(cstr) diff --git a/tools/sizes/code_functions.csv b/tools/sizes/code_functions.csv index 42d1e5f0b..2d023a046 100644 --- a/tools/sizes/code_functions.csv +++ b/tools/sizes/code_functions.csv @@ -1444,7 +1444,7 @@ asm/non_matchings/code/z_map_disp/func_8010565C.s,func_8010565C,0x8010565C,0x6F asm/non_matchings/code/z_map_disp/func_80105818.s,func_80105818,0x80105818,0x8A asm/non_matchings/code/z_map_disp/func_80105A40.s,func_80105A40,0x80105A40,0x3D asm/non_matchings/code/z_map_disp/func_80105B34.s,func_80105B34,0x80105B34,0x43 -asm/non_matchings/code/z_map_disp/func_80105C40.s,func_80105C40,0x80105C40,0xE8 +asm/non_matchings/code/z_map_disp/MapDisp_SwapRooms.s,MapDisp_SwapRooms,0x80105C40,0xE8 asm/non_matchings/code/z_map_disp/func_80105FE0.s,func_80105FE0,0x80105FE0,0x10A asm/non_matchings/code/z_map_disp/func_80106408.s,func_80106408,0x80106408,0x12 asm/non_matchings/code/z_map_disp/func_80106450.s,func_80106450,0x80106450,0x1F @@ -1469,45 +1469,45 @@ asm/non_matchings/code/z_map_disp/func_801090B0.s,func_801090B0,0x801090B0,0x1D asm/non_matchings/code/z_map_disp/func_80109124.s,func_80109124,0x80109124,0x33 asm/non_matchings/code/z_map_disp/func_801091F0.s,func_801091F0,0x801091F0,0x8E asm/non_matchings/code/z_map_disp/func_80109428.s,func_80109428,0x80109428,0x1E -asm/non_matchings/code/z_map_data/func_801094A0.s,func_801094A0,0x801094A0,0xA +asm/non_matchings/code/z_map_data/MapData_GetMapColor.s,MapData_GetMapColor,0x801094A0,0xA asm/non_matchings/code/z_map_data/func_801094C8.s,func_801094C8,0x801094C8,0xC -asm/non_matchings/code/z_map_data/func_801094F8.s,func_801094F8,0x801094F8,0xC -asm/non_matchings/code/z_map_data/func_80109528.s,func_80109528,0x80109528,0x9 -asm/non_matchings/code/z_map_data/func_8010954C.s,func_8010954C,0x8010954C,0x8 +asm/non_matchings/code/z_map_data/MapData_GetMapTexOffsetGameplayDangeonKeep.s,MapData_GetMapTexOffsetGameplayDangeonKeep,0x801094F8,0xC +asm/non_matchings/code/z_map_data/MapData_GetMapDrawTypeGameplayDangeonKeep.s,MapData_GetMapDrawTypeGameplayDangeonKeep,0x80109528,0x9 +asm/non_matchings/code/z_map_data/MapData_GetMapColorIndexGameplayDangeonKeep.s,MapData_GetMapColorIndexGameplayDangeonKeep,0x8010954C,0x8 asm/non_matchings/code/z_map_data/func_8010956C.s,func_8010956C,0x8010956C,0x8 -asm/non_matchings/code/z_map_data/func_8010958C.s,func_8010958C,0x8010958C,0x8 +asm/non_matchings/code/z_map_data/MapData_GetMapTexGameplayDangeonKeep.s,MapData_GetMapTexGameplayDangeonKeep,0x8010958C,0x8 asm/non_matchings/code/z_map_data/func_801095AC.s,func_801095AC,0x801095AC,0xC -asm/non_matchings/code/z_map_data/func_801095DC.s,func_801095DC,0x801095DC,0xC -asm/non_matchings/code/z_map_data/func_8010960C.s,func_8010960C,0x8010960C,0x9 -asm/non_matchings/code/z_map_data/func_80109630.s,func_80109630,0x80109630,0x8 -asm/non_matchings/code/z_map_data/func_80109650.s,func_80109650,0x80109650,0x8 -asm/non_matchings/code/z_map_data/func_80109670.s,func_80109670,0x80109670,0x19 -asm/non_matchings/code/z_map_data/func_801096D4.s,func_801096D4,0x801096D4,0x10 -asm/non_matchings/code/z_map_data/func_80109714.s,func_80109714,0x80109714,0x10 +asm/non_matchings/code/z_map_data/MapData_GetMapTexGameplayDangeonKeepOffset.s,MapData_GetMapTexGameplayDangeonKeepOffset,0x801095DC,0xC +asm/non_matchings/code/z_map_data/MapData_GetMapGrandDrawType.s,MapData_GetMapGrandDrawType,0x8010960C,0x9 +asm/non_matchings/code/z_map_data/MapData_GetMapGrandColorIndex.s,MapData_GetMapGrandColorIndex,0x80109630,0x8 +asm/non_matchings/code/z_map_data/MapData_GetMapGrandScale.s,MapData_GetMapGrandScale,0x80109650,0x8 +asm/non_matchings/code/z_map_data/MapData_MapGrandTexSizeTest.s,MapData_MapGrandTexSizeTest,0x80109670,0x19 +asm/non_matchings/code/z_map_data/MapData_GetSizeOfMapGrandTex.s,MapData_GetSizeOfMapGrandTex,0x801096D4,0x10 +asm/non_matchings/code/z_map_data/MapData_MID_GetType.s,MapData_MID_GetType,0x80109714,0x10 asm/non_matchings/code/z_map_data/func_80109754.s,func_80109754,0x80109754,0x1D -asm/non_matchings/code/z_map_data/func_801097C8.s,func_801097C8,0x801097C8,0x1D +asm/non_matchings/code/z_map_data/MapData_GetMapTexOffset.s,MapData_GetMapTexOffset,0x801097C8,0x1D asm/non_matchings/code/z_map_data/func_8010983C.s,func_8010983C,0x8010983C,0x19 -asm/non_matchings/code/z_map_data/func_801098A0.s,func_801098A0,0x801098A0,0x1A -asm/non_matchings/code/z_map_data/func_80109908.s,func_80109908,0x80109908,0x17 +asm/non_matchings/code/z_map_data/MapData_GetDrawType.s,MapData_GetDrawType,0x801098A0,0x1A +asm/non_matchings/code/z_map_data/MapData_GetMapColorIndex.s,MapData_GetMapColorIndex,0x80109908,0x17 asm/non_matchings/code/z_map_data/func_80109964.s,func_80109964,0x80109964,0x6 -asm/non_matchings/code/z_map_data/func_8010997C.s,func_8010997C,0x8010997C,0xC -asm/non_matchings/code/z_map_data/func_801099AC.s,func_801099AC,0x801099AC,0xC -asm/non_matchings/code/z_map_data/func_801099DC.s,func_801099DC,0x801099DC,0x9 -asm/non_matchings/code/z_map_data/func_80109A00.s,func_80109A00,0x80109A00,0x8 -asm/non_matchings/code/z_map_data/func_80109A20.s,func_80109A20,0x80109A20,0x8 -asm/non_matchings/code/z_map_data/func_80109A40.s,func_80109A40,0x80109A40,0x16 -asm/non_matchings/code/z_map_data/func_80109A98.s,func_80109A98,0x80109A98,0x10 -asm/non_matchings/code/z_map_data/func_80109AD8.s,func_80109AD8,0x80109AD8,0x18 +asm/non_matchings/code/z_map_data/MapData_GetMapITexDim.s,MapData_GetMapITexDim,0x8010997C,0xC +asm/non_matchings/code/z_map_data/MapData_GetMapITexOffset.s,MapData_GetMapITexOffset,0x801099AC,0xC +asm/non_matchings/code/z_map_data/MapData_GetMapIDrawType.s,MapData_GetMapIDrawType,0x801099DC,0x9 +asm/non_matchings/code/z_map_data/MapData_GetMapIColorIndex.s,MapData_GetMapIColorIndex,0x80109A00,0x8 +asm/non_matchings/code/z_map_data/MapData_GetMapIScale.s,MapData_GetMapIScale,0x80109A20,0x8 +asm/non_matchings/code/z_map_data/MapData_MapITexSizeTest.s,MapData_MapITexSizeTest,0x80109A40,0x16 +asm/non_matchings/code/z_map_data/MapDisp_GetSizeOfMapITex.s,MapDisp_GetSizeOfMapITex,0x80109A98,0x10 +asm/non_matchings/code/z_map_data/MapData_GetMapIId.s,MapData_GetMapIId,0x80109AD8,0x18 asm/non_matchings/code/z_map_data/func_80109B38.s,func_80109B38,0x80109B38,0x1A -asm/non_matchings/code/z_map_data/func_80109BA0.s,func_80109BA0,0x80109BA0,0x15 -asm/non_matchings/code/z_map_data/func_80109BF4.s,func_80109BF4,0x80109BF4,0x11 +asm/non_matchings/code/z_map_data/MapData_GetMapCompactId.s,MapData_GetMapCompactId,0x80109BA0,0x15 +asm/non_matchings/code/z_map_data/MapData_CPID_GetType.s,MapData_CPID_GetType,0x80109BF4,0x11 asm/non_matchings/code/z_map_data/func_80109C38.s,func_80109C38,0x80109C38,0x21 asm/non_matchings/code/z_map_data/func_80109CBC.s,func_80109CBC,0x80109CBC,0x21 -asm/non_matchings/code/z_map_data/func_80109D40.s,func_80109D40,0x80109D40,0x26 -asm/non_matchings/code/z_map_data/func_80109DD8.s,func_80109DD8,0x80109DD8,0x26 -asm/non_matchings/code/z_map_data/func_80109E70.s,func_80109E70,0x80109E70,0x22 -asm/non_matchings/code/z_map_data/func_80109EF8.s,func_80109EF8,0x80109EF8,0x20 -asm/non_matchings/code/z_map_data/func_80109F78.s,func_80109F78,0x80109F78,0x22 +asm/non_matchings/code/z_map_data/MapData_CPID_GetTexDim.s,MapData_CPID_GetTexDim,0x80109D40,0x26 +asm/non_matchings/code/z_map_data/MapData_CPID_GetTexOffset.s,MapData_CPID_GetTexOffset,0x80109DD8,0x26 +asm/non_matchings/code/z_map_data/MapData_CPID_GetDrawType.s,MapData_CPID_GetDrawType,0x80109E70,0x22 +asm/non_matchings/code/z_map_data/MapData_CPID_GetMapColorIndex.s,MapData_CPID_GetMapColorIndex,0x80109EF8,0x20 +asm/non_matchings/code/z_map_data/MapData_CPID_GetMapScale.s,MapData_CPID_GetMapScale,0x80109F78,0x22 asm/non_matchings/code/z_map_exp/Map_GetDungeonOrBossAreaIndex.s,Map_GetDungeonOrBossAreaIndex,0x8010A000,0x1D asm/non_matchings/code/z_map_exp/Map_IsInDungeonOrBossArea.s,Map_IsInDungeonOrBossArea,0x8010A074,0xC asm/non_matchings/code/z_map_exp/func_8010A0A4.s,func_8010A0A4,0x8010A0A4,0x13