diff options
| author | Archez <Archez@users.noreply.github.com> | 2024-10-07 13:05:17 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-10-07 13:05:17 -0400 |
| commit | fa702ed90c3d28093dfb95cb9069018e4fa03a48 (patch) | |
| tree | c456303ffaa6c786d3b2ad62aae7454c41849cde /mm/src/code | |
| parent | 7e10b1315ede6522c28db47fa3d0f2d8b87167a2 (diff) | |
Extract pause maps and minimaps, support alt assets, fix pause map icons (#780)
* extract pause maps and minimaps and support alt assets
* Fix missing door transitions on pause menu map
Diffstat (limited to 'mm/src/code')
| -rw-r--r-- | mm/src/code/z_map_disp.c | 113 |
1 files changed, 54 insertions, 59 deletions
diff --git a/mm/src/code/z_map_disp.c b/mm/src/code/z_map_disp.c index 6f2ce25fb..7ed312f3a 100644 --- a/mm/src/code/z_map_disp.c +++ b/mm/src/code/z_map_disp.c @@ -9,6 +9,7 @@ #include "BenPort.h" #include "BenGui/HudEditor.h" +#include "assets/2s2h_assets.h" void MapDisp_DestroyMapI(PlayState* play); void MapDisp_InitMapI(PlayState* play); @@ -102,58 +103,41 @@ static Color_RGBA8 sMinimapActorCategoryColors[12] = { TransitionActorEntry sTransitionActors[ROOM_TRANSITION_MAX]; PauseDungeonMap sPauseDungeonMap; -static const char* sMapTextures[] = { - map_i_static_Blob_000000, map_i_static_Blob_000FF0, map_i_static_Blob_001FE0, map_i_static_Blob_002FD0, - map_i_static_Blob_003FC0, map_i_static_Blob_004FB0, map_i_static_Blob_005180, map_i_static_Blob_005330, - map_i_static_Blob_005510, map_i_static_Blob_005610, map_i_static_Blob_005670, map_i_static_Blob_005820, - map_i_static_Blob_005890, map_i_static_Blob_0059C0, map_i_static_Blob_005B60, map_i_static_Blob_005C60, - map_i_static_Blob_005E10, map_i_static_Blob_005F30, map_i_static_Blob_006050, map_i_static_Blob_0062B0, - map_i_static_Blob_006400, map_i_static_Blob_006620, map_i_static_Blob_006920, map_i_static_Blob_006A30, - map_i_static_Blob_006B40, map_i_static_Blob_006C90, map_i_static_Blob_006DB0, map_i_static_Blob_006E70, - map_i_static_Blob_006F40, map_i_static_Blob_007170, map_i_static_Blob_007210, map_i_static_Blob_0073D0, - map_i_static_Blob_0074D0, map_i_static_Blob_007650, map_i_static_Blob_0077A0, map_i_static_Blob_007850, - map_i_static_Blob_0078A0, map_i_static_Blob_0078E0, map_i_static_Blob_007A50, map_i_static_Blob_007AD0, - map_i_static_Blob_007B60, map_i_static_Blob_007C20, map_i_static_Blob_007CA0, map_i_static_Blob_007D90, - map_i_static_Blob_007EA0, map_i_static_Blob_007FA0, map_i_static_Blob_007FF0, map_i_static_Blob_008080, - map_i_static_Blob_008190, map_i_static_Blob_0081F0, map_i_static_Blob_008300, map_i_static_Blob_008360, - map_i_static_Blob_0083F0, map_i_static_Blob_008500, map_i_static_Blob_0085F0, map_i_static_Blob_008680, - map_i_static_Blob_008700, map_i_static_Blob_0087F0, +// 2S2H [Port] Textures maps and extra variables for enhancement features +static TexturePtr sMapITextures[] = { + gMapIStatic00Tex, gMapIStatic01Tex, gMapIStatic02Tex, gMapIStatic03Tex, gMapIStatic04Tex, gMapIStatic05Tex, + gMapIStatic06Tex, gMapIStatic07Tex, gMapIStatic08Tex, gMapIStatic09Tex, gMapIStatic0ATex, gMapIStatic0BTex, + gMapIStatic0CTex, gMapIStatic0DTex, gMapIStatic0ETex, gMapIStatic0FTex, gMapIStatic10Tex, gMapIStatic11Tex, + gMapIStatic12Tex, gMapIStatic13Tex, gMapIStatic14Tex, gMapIStatic15Tex, gMapIStatic16Tex, gMapIStatic17Tex, + gMapIStatic18Tex, gMapIStatic19Tex, gMapIStatic1ATex, gMapIStatic1BTex, gMapIStatic1CTex, gMapIStatic1DTex, + gMapIStatic1ETex, gMapIStatic1FTex, gMapIStatic20Tex, gMapIStatic21Tex, gMapIStatic22Tex, gMapIStatic23Tex, + gMapIStatic24Tex, gMapIStatic25Tex, gMapIStatic26Tex, gMapIStatic27Tex, gMapIStatic28Tex, gMapIStatic29Tex, + gMapIStatic2ATex, gMapIStatic2BTex, gMapIStatic2CTex, gMapIStatic2DTex, gMapIStatic2ETex, gMapIStatic2FTex, + gMapIStatic30Tex, gMapIStatic31Tex, gMapIStatic32Tex, gMapIStatic33Tex, gMapIStatic34Tex, gMapIStatic35Tex, + gMapIStatic36Tex, gMapIStatic37Tex, gMapIStatic38Tex, gMapIStatic39Tex, }; -static const char* sMapGrandTextures[] = { - map_grand_static_Blob_000000, map_grand_static_Blob_000FF0, map_grand_static_Blob_001FE0, - map_grand_static_Blob_002FD0, map_grand_static_Blob_003FC0, map_grand_static_Blob_004FB0, - map_grand_static_Blob_005AF0, map_grand_static_Blob_006AE0, map_grand_static_Blob_007AD0, - map_grand_static_Blob_008AC0, map_grand_static_Blob_009AB0, map_grand_static_Blob_009ED0, - map_grand_static_Blob_00AEC0, map_grand_static_Blob_00B310, map_grand_static_Blob_00BAB0, - map_grand_static_Blob_00CAA0, map_grand_static_Blob_00DA90, map_grand_static_Blob_00EA80, - map_grand_static_Blob_00F200, map_grand_static_Blob_00FA00, map_grand_static_Blob_010250, - map_grand_static_Blob_010760, map_grand_static_Blob_010E70, map_grand_static_Blob_011950, - map_grand_static_Blob_011FB0, map_grand_static_Blob_012C10, map_grand_static_Blob_013A20, - map_grand_static_Blob_013E00, map_grand_static_Blob_0143A0, map_grand_static_Blob_014BC0, - map_grand_static_Blob_015000, map_grand_static_Blob_015590, map_grand_static_Blob_015B30, - map_grand_static_Blob_0162D0, map_grand_static_Blob_016A70, map_grand_static_Blob_017860, - map_grand_static_Blob_0180B0, map_grand_static_Blob_018A70, map_grand_static_Blob_0192F0, - map_grand_static_Blob_019950, map_grand_static_Blob_019CB0, map_grand_static_Blob_019F10, - map_grand_static_Blob_01A870, map_grand_static_Blob_01ABC0, map_grand_static_Blob_01B570, - map_grand_static_Blob_01BEF0, map_grand_static_Blob_01CEE0, map_grand_static_Blob_01DA00, - map_grand_static_Blob_01E7A0, map_grand_static_Blob_01EFC0, map_grand_static_Blob_01F3A0, - map_grand_static_Blob_01FD20, map_grand_static_Blob_020680, map_grand_static_Blob_020DE0, - map_grand_static_Blob_021740, map_grand_static_Blob_021910, map_grand_static_Blob_021F40, - map_grand_static_Blob_0225C0, map_grand_static_Blob_022D90, map_grand_static_Blob_023600, - map_grand_static_Blob_024460, map_grand_static_Blob_024B70, map_grand_static_Blob_025190, - map_grand_static_Blob_0257B0, map_grand_static_Blob_025E30, map_grand_static_Blob_026450, - map_grand_static_Blob_026660, map_grand_static_Blob_026B10, map_grand_static_Blob_027190, - map_grand_static_Blob_0274E0, map_grand_static_Blob_027B40, map_grand_static_Blob_027E90, - map_grand_static_Blob_028390, map_grand_static_Blob_028A30, map_grand_static_Blob_029010, - map_grand_static_Blob_029690, map_grand_static_Blob_029B10, map_grand_static_Blob_02A5F0, - map_grand_static_Blob_02A8C0, map_grand_static_Blob_02B450, map_grand_static_Blob_02C1F0, - map_grand_static_Blob_02CAB0, map_grand_static_Blob_02D4E0, map_grand_static_Blob_02D610, - map_grand_static_Blob_02E240, map_grand_static_Blob_02EAE0, map_grand_static_Blob_02FA30, - map_grand_static_Blob_0303E0, map_grand_static_Blob_030B90, map_grand_static_Blob_0314F0, - map_grand_static_Blob_031C30, map_grand_static_Blob_032630, map_grand_static_Blob_032C70, - map_grand_static_Blob_0336A0, map_grand_static_Blob_033A70, map_grand_static_Blob_034770, - map_grand_static_Blob_034BB0, map_grand_static_Blob_034F50, +static TexturePtr sMapGrandTextures[] = { + gMapGrandStatic100Tex, gMapGrandStatic101Tex, gMapGrandStatic102Tex, gMapGrandStatic103Tex, gMapGrandStatic104Tex, + gMapGrandStatic105Tex, gMapGrandStatic106Tex, gMapGrandStatic107Tex, gMapGrandStatic108Tex, gMapGrandStatic109Tex, + gMapGrandStatic10ATex, gMapGrandStatic10BTex, gMapGrandStatic10CTex, gMapGrandStatic10DTex, gMapGrandStatic10ETex, + gMapGrandStatic10FTex, gMapGrandStatic110Tex, gMapGrandStatic111Tex, gMapGrandStatic112Tex, gMapGrandStatic113Tex, + gMapGrandStatic114Tex, gMapGrandStatic115Tex, gMapGrandStatic116Tex, gMapGrandStatic117Tex, gMapGrandStatic118Tex, + gMapGrandStatic119Tex, gMapGrandStatic11ATex, gMapGrandStatic11BTex, gMapGrandStatic11CTex, gMapGrandStatic11DTex, + gMapGrandStatic11ETex, gMapGrandStatic11FTex, gMapGrandStatic120Tex, gMapGrandStatic121Tex, gMapGrandStatic122Tex, + gMapGrandStatic123Tex, gMapGrandStatic124Tex, gMapGrandStatic125Tex, gMapGrandStatic126Tex, gMapGrandStatic127Tex, + gMapGrandStatic128Tex, gMapGrandStatic129Tex, gMapGrandStatic12ATex, gMapGrandStatic12BTex, gMapGrandStatic12CTex, + gMapGrandStatic12DTex, gMapGrandStatic12ETex, gMapGrandStatic12FTex, gMapGrandStatic130Tex, gMapGrandStatic131Tex, + gMapGrandStatic132Tex, gMapGrandStatic133Tex, gMapGrandStatic134Tex, gMapGrandStatic135Tex, gMapGrandStatic136Tex, + gMapGrandStatic137Tex, gMapGrandStatic138Tex, gMapGrandStatic139Tex, gMapGrandStatic13ATex, gMapGrandStatic13BTex, + gMapGrandStatic13CTex, gMapGrandStatic13DTex, gMapGrandStatic13ETex, gMapGrandStatic13FTex, gMapGrandStatic140Tex, + gMapGrandStatic141Tex, gMapGrandStatic142Tex, gMapGrandStatic143Tex, gMapGrandStatic144Tex, gMapGrandStatic145Tex, + gMapGrandStatic146Tex, gMapGrandStatic147Tex, gMapGrandStatic148Tex, gMapGrandStatic149Tex, gMapGrandStatic14ATex, + gMapGrandStatic14BTex, gMapGrandStatic14CTex, gMapGrandStatic14DTex, gMapGrandStatic14ETex, gMapGrandStatic14FTex, + gMapGrandStatic150Tex, gMapGrandStatic151Tex, gMapGrandStatic152Tex, gMapGrandStatic153Tex, gMapGrandStatic154Tex, + gMapGrandStatic155Tex, gMapGrandStatic156Tex, gMapGrandStatic157Tex, gMapGrandStatic158Tex, gMapGrandStatic159Tex, + gMapGrandStatic15ATex, gMapGrandStatic15BTex, gMapGrandStatic15CTex, gMapGrandStatic15DTex, gMapGrandStatic15ETex, + gMapGrandStatic15FTex, gMapGrandStatic160Tex, gMapGrandStatic161Tex, }; static bool sMirrorWorldActive = false; @@ -181,13 +165,17 @@ void Ship_MapDispUpdateMirrorMode() { } } -// BENTODO, can we just set dest insetead of doing a memcpy? -void MapDisp_GetMapITexture(void* dst, s32 mapCompactId) { +// 2S2H [Port] Changed dest to double pointer for assigning texture path string instead of Dma load +void MapDisp_GetMapITexture(void** dst, s32 mapCompactId) { s32 mapSize = MapDisp_GetSizeOfMapITex(mapCompactId); - if (mapSize != 0) { - void* data = ResourceMgr_LoadTexOrDListByName(sMapTextures[mapCompactId]); - memcpy(dst, data, mapSize); + if (MapDisp_GetSizeOfMapITex(mapCompactId) != 0) { + if (mapCompactId < ARRAY_COUNT(sMapITextures)) { + *dst = sMapITextures[mapCompactId]; + } else { + *dst = gEmptyTexture; + } + // CmpDma_LoadFile(SEGMENT_ROM_START(map_i_static), mapCompactId, dst, MapDisp_GetSizeOfMapITex(mapCompactId)); } } @@ -1224,8 +1212,15 @@ void MapDisp_SwapRooms(s16 nextRoom) { sMapDisp.minimapCurTex = sMapDisp.texBuff0; } if (MapData_GetSizeOfMapGrandTex(nextMapDataRoom->mapId) != 0) { - sMapDisp.minimapCurTex = ResourceMgr_LoadTexOrDListByName( - sMapGrandTextures[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(nextMapDataRoom->mapId)]); + // 2S2H [Port] Assign texture path string instead of a Dma load + if (MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(nextMapDataRoom->mapId) < + ARRAY_COUNTU(sMapGrandTextures)) { + sMapDisp.minimapCurTex = + sMapGrandTextures[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(nextMapDataRoom->mapId)]; + } else { + sMapDisp.minimapCurTex = gEmptyTexture; + } + // CmpDma_LoadFile(SEGMENT_ROM_START(map_grand_static), // MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(nextMapDataRoom->mapId), // sMapDisp.minimapCurTex, @@ -1481,8 +1476,8 @@ void* MapDisp_AllocDungeonMap(PlayState* play, void* heap) { for (dungeonMapRoomIter = 0; dungeonMapRoomIter < sPauseDungeonMap.textureCount; dungeonMapRoomIter++) { s32 mapCompactId = sPauseDungeonMap.mapI_mapCompactId[dungeonMapRoomIter]; - // 2S2H [Port] directly set the pointer to the texture instead of using memcpy - MapDisp_GetMapITexture(sPauseDungeonMap.mapI_roomTextures[dungeonMapRoomIter], mapCompactId); + // 2S2H [Port] Pass the pointer of the array element to directly set texture + MapDisp_GetMapITexture(&sPauseDungeonMap.mapI_roomTextures[dungeonMapRoomIter], mapCompactId); if (dungeonMapRoomIter + 1 < sPauseDungeonMap.textureCount) { sPauseDungeonMap.mapI_roomTextures[dungeonMapRoomIter + 1] = ALIGN16((intptr_t)sPauseDungeonMap.mapI_roomTextures[dungeonMapRoomIter] + |
