summaryrefslogtreecommitdiff
path: root/src/code
diff options
context:
space:
mode:
Diffstat (limited to 'src/code')
-rw-r--r--src/code/z_map_data.c104
-rw-r--r--src/code/z_map_disp.c114
2 files changed, 146 insertions, 72 deletions
diff --git a/src/code/z_map_data.c b/src/code/z_map_data.c
index 0dbd8d534..24a995cbb 100644
--- a/src/code/z_map_data.c
+++ b/src/code/z_map_data.c
@@ -2,13 +2,13 @@
#include "z64map.h"
#include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h"
-static Color_RGBA8 mapColorTable[3] = {
+static Color_RGBA8 sMapColorTable[] = {
{ 255, 255, 255, 255 },
{ 0, 255, 255, 160 }, // Blue
{ 100, 255, 255, 255 },
};
-static MapSpriteInfo2 gameplay_dangeon_keep_Info[5] = {
+static MapSpriteInfo2 sGameplayDangeonKeepInfo[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 },
@@ -16,7 +16,7 @@ static MapSpriteInfo2 gameplay_dangeon_keep_Info[5] = {
{ &gameplay_dangeon_keep_Tex_0062C8, 96, 85, 68, 62, MAPDATA_DRAW_0, 0, 20 },
};
-static MapSpriteInfo map_grand_static_Info[98] = {
+static MapSpriteInfo sMapGrandStaticInfo[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 },
@@ -72,7 +72,7 @@ static s32 D_801BF15C[5] = {
0x50, 0x50, 0x8D, 0x50, 0x50,
};
-static MapSpriteInfo map_i_static_Info[MAPDATA_MAP_I_MAX] = {
+static MapSpriteInfo sMapIStaticInfo[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 },
@@ -104,11 +104,11 @@ static MapSpriteInfo map_i_static_Info[MAPDATA_MAP_I_MAX] = {
{ 16, 30, 9, 8, MAPDATA_DRAW_2, 0, 90 }, { 16, 9, 9, 4, MAPDATA_DRAW_2, 0, 90 },
};
-static s32 map_i_for_gameplay_dangeon_keep[5] = {
+static s32 sMapIForGameplayDangeonKeep[5] = {
0x00, 0x01, 0x02, 0x03, 0x04,
};
-static s32 map_i_for_map_grand[98] = {
+static s32 sMapIForMapGrand[98] = {
MAPDATA_MAP_I_MAX,
0x01,
0x02,
@@ -212,55 +212,55 @@ static s32 map_i_for_map_grand[98] = {
s32 MapDisp_GetSizeOfMapITex(s32 mapId);
void MapData_GetMapColor(s32 colorIndex, Color_RGBA8* color) {
- *color = mapColorTable[colorIndex];
+ *color = sMapColorTable[colorIndex];
}
void MapData_GetMapTexDimGameplayDangeonKeep(s32 mapId, s32* width, s32* height) {
- *width = gameplay_dangeon_keep_Info[mapId].width;
- *height = gameplay_dangeon_keep_Info[mapId].height;
+ *width = sGameplayDangeonKeepInfo[mapId].width;
+ *height = sGameplayDangeonKeepInfo[mapId].height;
}
void MapData_GetMapTexOffsetGameplayDangeonKeep(s32 mapId, s32* offsetX, s32* offsetY) {
- *offsetX = gameplay_dangeon_keep_Info[mapId].offsetX;
- *offsetY = gameplay_dangeon_keep_Info[mapId].offsetY;
+ *offsetX = sGameplayDangeonKeepInfo[mapId].offsetX;
+ *offsetY = sGameplayDangeonKeepInfo[mapId].offsetY;
}
void MapData_GetMapDrawTypeGameplayDangeonKeep(s32 mapId, s32* drawType) {
- *drawType = gameplay_dangeon_keep_Info[mapId].drawType;
+ *drawType = sGameplayDangeonKeepInfo[mapId].drawType;
}
u8 MapData_GetMapColorIndexGameplayDangeonKeep(s32 mapId) {
- return gameplay_dangeon_keep_Info[mapId].colorIndex;
+ return sGameplayDangeonKeepInfo[mapId].colorIndex;
}
s16 MapData_GetMapGameplayDangeonKeepScale(s32 mapId) {
- return gameplay_dangeon_keep_Info[mapId].scale;
+ return sGameplayDangeonKeepInfo[mapId].scale;
}
TexturePtr MapData_GetMapTexGameplayDangeonKeep(s32 mapId) {
- return gameplay_dangeon_keep_Info[mapId].lmapTex;
+ return sGameplayDangeonKeepInfo[mapId].lmapTex;
}
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;
+ *width = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texWidth;
+ *height = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texHeight;
}
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;
+ *offsetX = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].offsetX;
+ *offsetY = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].offsetY;
}
void MapData_GetMapGrandDrawType(s32 mapId, s32* drawType) {
- *drawType = map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].drawType;
+ *drawType = sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].drawType;
}
u8 MapData_GetMapGrandColorIndex(s32 mapId) {
- return map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].colorIndex;
+ return sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].colorIndex;
}
s16 MapData_GetMapGrandScale(s32 mapId) {
- return map_grand_static_Info[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].scale;
+ return sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].scale;
}
s32 MapData_MapGrandTexSizeTest(s32 mapId) {
@@ -275,8 +275,8 @@ s32 MapData_MapGrandTexSizeTest(s32 mapId) {
}
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) /
+ return (sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texWidth *
+ sMapGrandStaticInfo[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)].texHeight) /
2;
}
@@ -295,9 +295,11 @@ void MapData_GetMapTexDim(s32 mapId, s32* width, s32* height) {
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
MapData_GetMapTexDimGameplayDangeonKeep(mapId, width, height);
return;
+
case MAPDATA_MID_MAP_GRAND_STATIC:
MapData_GetMapTexGameplayDangeonKeepDim(mapId, width, height);
return;
+
default:
*width = *height = 0;
return;
@@ -309,9 +311,11 @@ void MapData_GetMapTexOffset(s32 mapId, s32* offsetX, s32* offsetY) {
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
MapData_GetMapTexOffsetGameplayDangeonKeep(mapId, offsetX, offsetY);
return;
+
case MAPDATA_MID_MAP_GRAND_STATIC:
MapData_GetMapTexGameplayDangeonKeepOffset(mapId, offsetX, offsetY);
return;
+
default:
*offsetX = *offsetY = 0;
return;
@@ -323,9 +327,11 @@ void MapData_GetMapScale(s32 mapId, s32* scale) {
default:
*scale = 0;
return;
+
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
*scale = MapData_GetMapGameplayDangeonKeepScale(mapId);
return;
+
case MAPDATA_MID_MAP_GRAND_STATIC:
*scale = MapData_GetMapGrandScale(mapId);
return;
@@ -337,9 +343,11 @@ void MapData_GetDrawType(s32 mapId, s32* drawType) {
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
MapData_GetMapDrawTypeGameplayDangeonKeep(mapId, drawType);
return;
+
case MAPDATA_MID_MAP_GRAND_STATIC:
MapData_GetMapGrandDrawType(mapId, drawType);
return;
+
default:
*drawType = 0;
return;
@@ -350,8 +358,10 @@ s32 MapData_GetMapColorIndex(s32 mapId) {
switch (MapData_MID_GetType(mapId)) {
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
return MapData_GetMapColorIndexGameplayDangeonKeep(mapId);
+
case MAPDATA_MID_MAP_GRAND_STATIC:
return MapData_GetMapGrandColorIndex(mapId);
+
default:
return 0;
}
@@ -362,32 +372,31 @@ s32 func_80109964(s32 arg0) {
}
void MapData_GetMapITexDim(s32 mapId, s32* width, s32* height) {
- *width = map_i_static_Info[mapId].texWidth;
- *height = map_i_static_Info[mapId].texHeight;
+ *width = sMapIStaticInfo[mapId].texWidth;
+ *height = sMapIStaticInfo[mapId].texHeight;
}
void MapData_GetMapITexOffset(s32 mapId, s32* offsetX, s32* offsetY) {
- *offsetX = map_i_static_Info[mapId].offsetX;
- *offsetY = map_i_static_Info[mapId].offsetY;
+ *offsetX = sMapIStaticInfo[mapId].offsetX;
+ *offsetY = sMapIStaticInfo[mapId].offsetY;
}
void MapData_GetMapIDrawType(s32 mapId, s32* drawType) {
- *drawType = map_i_static_Info[mapId].drawType;
+ *drawType = sMapIStaticInfo[mapId].drawType;
}
u8 MapData_GetMapIColorIndex(s32 mapId) {
- return map_i_static_Info[mapId].colorIndex;
+ return sMapIStaticInfo[mapId].colorIndex;
}
s16 MapData_GetMapIScale(s32 mapId) {
- return map_i_static_Info[mapId].scale;
+ return sMapIStaticInfo[mapId].scale;
}
s32 MapData_MapITexSizeTest(s32 mapId) {
s32 i;
- s32 size;
+ s32 size = 0;
- size = 0;
for (i = 1; i < mapId + 1; i++) {
size += MapDisp_GetSizeOfMapITex(i - 1);
}
@@ -396,15 +405,17 @@ s32 MapData_MapITexSizeTest(s32 mapId) {
}
s32 MapDisp_GetSizeOfMapITex(s32 mapId) {
- return (map_i_static_Info[mapId].texWidth * map_i_static_Info[mapId].texHeight) / 2;
+ return (sMapIStaticInfo[mapId].texWidth * sMapIStaticInfo[mapId].texHeight) / 2;
}
s32 MapData_GetMapIId(s32 mapId) {
switch (MapData_MID_GetType(mapId)) {
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
- return map_i_for_gameplay_dangeon_keep[mapId];
+ return sMapIForGameplayDangeonKeep[mapId];
+
case MAPDATA_MID_MAP_GRAND_STATIC:
- return map_i_for_map_grand[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)];
+ return sMapIForMapGrand[MAPDATA_GET_MAP_GRAND_ID_FROM_MAP_ID(mapId)];
+
default:
return 0;
}
@@ -417,8 +428,10 @@ s32 func_80109B38(s32 mapId) {
switch (MapData_MID_GetType(mapId)) {
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
return 2;
+
case MAPDATA_MID_MAP_GRAND_STATIC:
return 0;
+
default:
return 0;
}
@@ -457,10 +470,13 @@ s32 func_80109C38(s32 mapCompactId) {
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 MapData_MapITexSizeTest(mapCompactId);
+
case MAPDATA_CPID_2:
return 0;
+
default:
return 0;
}
@@ -473,16 +489,18 @@ s32 MapData_CPID_GetSizeOfMapTex(s32 mapCompactId) {
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 MapDisp_GetSizeOfMapITex(mapCompactId);
+
case MAPDATA_CPID_2:
return 0;
+
default:
return 0;
}
}
-// GOOD
void MapData_CPID_GetTexDim(s32 mapCompactId, s32* width, s32* height) {
if (mapCompactId == -1) {
*width = *height = 0;
@@ -493,9 +511,11 @@ void MapData_CPID_GetTexDim(s32 mapCompactId, s32* width, s32* height) {
MapData_GetMapTexGameplayDangeonKeepDim(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), width,
height);
return;
+
case MAPDATA_CPID_MAP_I_STATIC:
MapData_GetMapITexDim(mapCompactId, width, height);
return;
+
case MAPDATA_CPID_2:
default:
*width = *height = 0;
@@ -503,7 +523,6 @@ void MapData_CPID_GetTexDim(s32 mapCompactId, s32* width, s32* height) {
}
}
-// GOOD
void MapData_CPID_GetTexOffset(s32 mapCompactId, s32* offsetX, s32* offsetY) {
if (mapCompactId == -1) {
*offsetX = *offsetY = 0;
@@ -514,9 +533,11 @@ void MapData_CPID_GetTexOffset(s32 mapCompactId, s32* offsetX, s32* offsetY) {
MapData_GetMapTexGameplayDangeonKeepOffset(MAPDATA_GET_MAP_GRAND_ID_FROM_COMPACT_ID(mapCompactId), offsetX,
offsetY);
return;
+
case MAPDATA_CPID_MAP_I_STATIC:
MapData_GetMapITexOffset(mapCompactId, offsetX, offsetY);
return;
+
case MAPDATA_CPID_2:
default:
*offsetX = *offsetY = 0;
@@ -534,9 +555,11 @@ void MapData_CPID_GetDrawType(s32 mapCompactId, s32* drawType) {
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:
MapData_GetMapIDrawType(mapCompactId, drawType);
return;
+
case MAPDATA_CPID_2:
default:
*drawType = MAPDATA_DRAW_0;
@@ -552,15 +575,16 @@ u8 MapData_CPID_GetMapColorIndex(s32 mapCompactId) {
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 MapData_GetMapIColorIndex(mapCompactId);
+
case MAPDATA_CPID_2:
default:
return 0;
}
}
-// GOOD
s16 MapData_CPID_GetMapScale(s32 mapCompactId) {
if (mapCompactId == -1) {
return 0;
@@ -568,8 +592,10 @@ s16 MapData_CPID_GetMapScale(s32 mapCompactId) {
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 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 ffb406e55..384ffbb75 100644
--- a/src/code/z_map_disp.c
+++ b/src/code/z_map_disp.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "gfx.h"
#include "overlays/actors/ovl_En_Door/z_en_door.h"
+#include "overlays/kaleido_scope/ovl_kaleido_scope/z_kaleido_scope.h"
void MapDisp_DestroyMapI(PlayState* play);
void MapDisp_InitMapI(PlayState* play);
@@ -150,6 +151,7 @@ void func_801031D0(PlayState* play, TexturePtr arg1, s32 arg2, s32 arg3, s32 arg
if ((spCC->mapId != 0xFFFF) && (arg1 != 0)) {
MapDisp_GetMapTexDim(spCC, &spC8, &spC4);
OPEN_DISPS(play->state.gfxCtx);
+
Gfx_SetupDL39_Overlay(play->state.gfxCtx);
MapData_GetMapColor(MapData_GetMapColorIndex(spCC->mapId), &spAC_color);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, spAC_color.r, spAC_color.g, spAC_color.b,
@@ -192,6 +194,7 @@ void func_801031D0(PlayState* play, TexturePtr arg1, s32 arg2, s32 arg3, s32 arg
}
gSPTextureRectangle(OVERLAY_DISP++, arg2 << 2, arg3 << 2, (spC8 + arg2) << 2, (arg3 + spC4) << 2,
G_TX_RENDERTILE, var_t1, var_t0, var_a3, var_a0_4);
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
@@ -275,6 +278,7 @@ void func_80103A58(PlayState* play, Actor* actor) {
}
if ((spD8 > 0) && (spD8 < 0x3FF) && (spD4 > 0) && (spD4 < 0x3FF)) {
OPEN_DISPS(play->state.gfxCtx);
+
if ((actor->category == ACTORCAT_PLAYER) && (actor->flags & 0x80000000)) {
s16 spA2;
Gfx_SetupDL42_Overlay(play->state.gfxCtx);
@@ -351,6 +355,7 @@ void func_80103A58(PlayState* play, Actor* actor) {
gSPTextureRectangle(OVERLAY_DISP++, (spD8 - 1) << 2, (spD4 - 1) << 2, (spD8 + 1) << 2, (spD4 + 1) << 2,
G_TX_RENDERTILE, 0, 0, 0x0001, 0x0001);
}
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
@@ -366,6 +371,7 @@ void func_8010439C(PlayState* play) {
if (play->roomCtx.curRoom.num != -1) {
OPEN_DISPS(play->state.gfxCtx);
+
gDPLoadTextureBlock_4b(OVERLAY_DISP++, &D_801BEB38, G_IM_FMT_I, 16, 16, 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);
@@ -385,6 +391,7 @@ void func_8010439C(PlayState* play) {
} while (actor != NULL);
}
}
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
@@ -397,15 +404,12 @@ void func_801045AC(PlayState* play, Actor* actor) {
s32 sp6C;
s32 sp68;
s32 sp64;
- Player* player;
+ Player* player = GET_PLAYER(play);
f32 sp5C;
- f32 temp_fv1;
+ f32 temp_fv1 = fabsf(player->actor.world.pos.y - actor->world.pos.y);
s32 var_v1;
- f32 sp50;
+ f32 sp50 = 1.0f - (1 / 350.0f) * temp_fv1;
- player = GET_PLAYER(play);
- temp_fv1 = fabsf(player->actor.world.pos.y - actor->world.pos.y);
- sp50 = 1.0f - (1 / 350.0f) * temp_fv1;
if (sp50 < 0) {
sp50 = 0.0f;
}
@@ -419,6 +423,7 @@ void func_801045AC(PlayState* play, Actor* actor) {
var_v1 = 20;
} else if (D_801BEBB8.minimapList->scale == -1) {
s32 sp4C;
+
MapDisp_GetMapScale(sp7C, &sp4C);
var_v1 = sp4C;
}
@@ -440,11 +445,13 @@ void func_801045AC(PlayState* play, Actor* actor) {
}
if ((sp78 > 0) && (sp78 < 0x3FF) && (sp74 > 0) && (sp74 < 0x3FF)) {
OPEN_DISPS(play->state.gfxCtx);
+
Gfx_SetupDL39_Overlay(play->state.gfxCtx);
gDPSetCombineMode(OVERLAY_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
if ((actor->category == 0xA) && (func_80103A10(play) != 0)) {
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.swapAnimTimer * 0.05f) *
@@ -456,6 +463,7 @@ void func_801045AC(PlayState* play, Actor* actor) {
var_v1 = 20;
} else if (D_801BEBB8.minimapList->scale == -1) {
s32 sp34;
+
MapDisp_GetMapScale(sp7C, &sp34);
var_v1 = sp34;
}
@@ -467,6 +475,7 @@ void func_801045AC(PlayState* play, Actor* actor) {
(sp74 + 1) << 2, G_TX_RENDERTILE, 0, 0, 0x0001, 0x0001);
}
}
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
@@ -478,6 +487,7 @@ void func_80104AE8(PlayState* play) {
if (play->roomCtx.curRoom.num != -1) {
OPEN_DISPS(play->state.gfxCtx);
+
gDPLoadTextureBlock_4b(OVERLAY_DISP++, &D_801BEB38, G_IM_FMT_I, 16, 16, 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);
@@ -492,17 +502,16 @@ void func_80104AE8(PlayState* play) {
actor = actor->next;
} while (actor != NULL);
}
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
-// Possible fakematch
-// https://decomp.me/scratch/kvGBZ
+//! FAKE: https://decomp.me/scratch/kvGBZ
void func_80104C80(PlayState* play) {
- s32 objectSlot;
+ s32 objectSlot = Object_GetSlot(&play->objectCtx, GAMEPLAY_DANGEON_KEEP);
- objectSlot = Object_GetSlot(&play->objectCtx, GAMEPLAY_DANGEON_KEEP);
- if (objectSlot < 0) {
+ if (objectSlot <= OBJECT_SLOT_NONE) {
D_801BEBB8.unk20 |= 1;
} else {
do { } while (!Object_IsLoaded(&play->objectCtx, objectSlot)); }
@@ -553,7 +562,7 @@ void MapDisp_Init(PlayState* play) {
MapDisp_InitMapI(play);
D_801BEBB8.unk58 = 0;
D_801BEBB8.unk5A = 0;
- if (Map_IsInBossArea(play) != 0) {
+ if (Map_IsInBossArea(play)) {
func_8010549C(play, NULL);
func_8010565C(play, 0, NULL);
}
@@ -658,6 +667,7 @@ void func_8010534C(PlayState* play) {
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[i].pos.y >= (D_801BEBB8.unk48[var_v0] - 5)))
||
@@ -678,7 +688,7 @@ void func_8010549C(PlayState* play, void* segmentAddress) {
MinimapList* temp_v0;
s32 i;
- if (Map_IsInBossArea(play) == 0) {
+ if (!Map_IsInBossArea(play)) {
D_801BEC1C = play->numRooms;
temp_v0 = Lib_SegmentedToVirtual(segmentAddress);
D_801BEC14 = *temp_v0;
@@ -707,7 +717,7 @@ void func_8010565C(PlayState* play, s32 num, void* segmentAddress) {
MinimapChest* var_v1;
s32 var_a3;
- if (Map_IsInBossArea(play) == 0) {
+ if (!Map_IsInBossArea(play)) {
var_v1 = Lib_SegmentedToVirtual(segmentAddress);
for (var_a3 = 0; var_a3 < num; var_v1++, var_a3++) {
D_801F5270[var_a3] = *var_v1;
@@ -721,7 +731,7 @@ void func_8010565C(PlayState* play, s32 num, void* segmentAddress) {
void func_80105818(PlayState* play, s32 num, TransitionActorEntry* transitionActorList) {
s32 i;
- if (Map_IsInBossArea(play) == 0) {
+ if (!Map_IsInBossArea(play)) {
D_801BEC24.count = num;
for (i = 0; i < num; i++) {
D_801F53B0[i] = transitionActorList[i];
@@ -852,12 +862,14 @@ void MapDisp_SwapRooms(s16 nextRoom) {
s32 sp38;
s32 scale;
s32 pad;
+
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;
}
@@ -883,6 +895,7 @@ void MapDisp_SwapRooms(s16 nextRoom) {
case MAPDATA_MID_GAMEPLAY_DANGEON_KEEP:
D_801BEBB8.lMapCurTex = MapData_GetMapTexGameplayDangeonKeep(nextMinimapEntry->mapId);
return;
+
case MAPDATA_MID_MAP_GRAND_STATIC:
if (D_801BEBB8.lMapPrevTex == D_801BEBB8.texBuff0) {
D_801BEBB8.lMapCurTex = D_801BEBB8.texBuff1;
@@ -894,6 +907,9 @@ void MapDisp_SwapRooms(s16 nextRoom) {
D_801BEBB8.lMapCurTex, MapData_GetSizeOfMapGrandTex(nextMinimapEntry->mapId));
}
break;
+
+ default:
+ break;
}
}
}
@@ -921,6 +937,7 @@ void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot) {
var_v0 = 20;
} else if (D_801BEBB8.minimapList->scale == -1) {
s32 sp48;
+
MapDisp_GetMapScale(sp6C, &sp48);
var_v0 = sp48;
}
@@ -934,6 +951,7 @@ void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot) {
}
if ((sp68 > 0) && (sp68 < 0x3FF) && (sp64 > 0) && (sp64 < 0x3FF)) {
OPEN_DISPS(play->state.gfxCtx);
+
Gfx_SetupDL42_Overlay(play->state.gfxCtx);
gSPMatrix(OVERLAY_DISP++, &gIdentityMtx, G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
@@ -951,6 +969,7 @@ void func_80105FE0(PlayState* play, s32 x, s32 z, s32 rot) {
gSPMatrix(OVERLAY_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0xFF, 200, 0, 0, play->interfaceCtx.minimapAlpha);
gSPDisplayList(OVERLAY_DISP++, D_0401ED00);
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
@@ -969,15 +988,15 @@ s32 func_80106408(PlayState* play) {
s32 func_80106450(PlayState* play) {
if (((func_8010A0A4(play) == 0) && (Inventory_IsMapVisible(play->sceneId) != 0)) ||
- ((func_8010A0A4(play) != 0) && CHECK_DUNGEON_ITEM(2, gSaveContext.mapIndex))) {
+ ((func_8010A0A4(play) != 0) && CHECK_DUNGEON_ITEM(DUNGEON_MAP, gSaveContext.mapIndex))) {
return true;
}
return false;
}
s32 func_801064CC(PlayState* play) {
- if (((play->csCtx.state != 0) && (func_80106408(play) == 0)) || (D_801BEBB8.unk20 & 2) ||
- (Map_IsInBossArea(play) != 0)) {
+ if (((play->csCtx.state != CS_STATE_IDLE) && !func_80106408(play)) || (D_801BEBB8.unk20 & 2) ||
+ Map_IsInBossArea(play)) {
return true;
}
return false;
@@ -1026,9 +1045,9 @@ void func_80106644(PlayState* play, s32 x, s32 z, s32 rot) {
}
func_80104AE8(play);
}
- if (((func_8010A0A4(play) == 0) || CHECK_DUNGEON_ITEM(1, gSaveContext.mapIndex)) &&
+ if (((func_8010A0A4(play) == 0) || CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, gSaveContext.mapIndex)) &&
((func_8010A0A4(play) != 0) || Inventory_IsMapVisible(play->sceneId))) {
- if (play->interfaceCtx.minigameState == 0) {
+ if (play->interfaceCtx.minigameState == MINIGAME_STATE_NONE) {
func_80105FE0(play, x, z, rot);
}
func_8010439C(play);
@@ -1154,12 +1173,16 @@ s32 func_80106D08(s32 sceneId) {
switch (sceneId) {
case SCENE_MITURIN_BS:
return SCENE_MITURIN;
+
case SCENE_HAKUGIN_BS:
return SCENE_HAKUGIN;
+
case SCENE_SEA_BS:
return SCENE_SEA;
+
case SCENE_INISIE_BS:
return SCENE_INISIE_N;
+
default:
return sceneId;
}
@@ -1187,7 +1210,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
temp2 = ((D_801F56B0.unk184 * 115.0f / 40.0f) + 140.0f) * 31.0f / 255.0f;
D_801BECC4[1] = (temp1 << 6) | (temp2 << 1) | 1;
- if (CHECK_DUNGEON_ITEM(2, arg6)) {
+ if (CHECK_DUNGEON_ITEM(DUNGEON_MAP, arg6)) {
D_801BEC84[0xF] = 0xAD5F;
D_801BECA4[0xF] = 0xAD5F;
D_801BECC4[0xF] = 0xAD5F;
@@ -1198,6 +1221,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
}
OPEN_DISPS(play->state.gfxCtx);
+
// temp_a0 = play->state.gfxCtx;
// sp48 = arg6 + &gSaveContext;
Gfx_SetupDL39_Opa(play->state.gfxCtx);
@@ -1257,7 +1281,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
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) {
+ if (Map_IsInBossArea(play)) {
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,
@@ -1277,7 +1301,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD,
G_TX_NOLOD);
} else if (CHECK_DUNGEON_ITEM(
- 2,
+ DUNGEON_MAP,
arg6)) { //*(gBitFlags + 8) & gSaveContext.save.inventory.dungeonItems[arg6]) {
gDPLoadTextureBlock_4b(POLY_OPA_DISP++, temp_s1, G_IM_FMT_CI, sp118_texWidth,
sp114_texHeight, 0, G_TX_NOMIRROR | G_TX_WRAP,
@@ -1295,6 +1319,7 @@ void func_80106D5C(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
}
}
gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_NONE);
+
CLOSE_DISPS(play->state.gfxCtx);
}
#else
@@ -1319,6 +1344,7 @@ void func_80107B78(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
if (D_801BEBB8.unk54 != NULL) {
// temp_s1 = arg0->state.gfxCtx;
OPEN_DISPS(arg0->state.gfxCtx);
+
// temp_v1 = temp_s1->polyOpa.p;
// temp_s1->polyOpa.p = temp_v1 + 8;
// temp_v1->words.w1 = 0x00000000;
@@ -1425,15 +1451,19 @@ void func_80107B78(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
case SCENE_MITURIN_BS:
var_v1_2 = gSaveContext.cycleSceneFlags[SCENE_MITURIN].chest & (1 << var_s0[var_s3].unk2);
break;
+
case SCENE_HAKUGIN_BS:
var_v1_2 = gSaveContext.cycleSceneFlags[SCENE_HAKUGIN].chest & (1 << var_s0[var_s3].unk2);
break;
+
case SCENE_SEA_BS:
var_v1_2 = gSaveContext.cycleSceneFlags[SCENE_SEA].chest & (1 << var_s0[var_s3].unk2);
break;
+
case SCENE_INISIE_BS:
var_v1_2 = gSaveContext.cycleSceneFlags[SCENE_INISIE_N].chest & (1 << var_s0[var_s3].unk2);
break;
+
default:
var_v1_2 = Flags_GetTreasure(arg0, (s32)var_s0[var_s3].unk2);
break;
@@ -1460,6 +1490,7 @@ void func_80107B78(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
(temp_ft0_2 + 8) << 2, G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400);
}
}
+
CLOSE_DISPS(arg0->state.gfxCtx);
}
}
@@ -1480,6 +1511,7 @@ void func_80108124(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
if (transitionActors->count != 0) {
OPEN_DISPS(play->state.gfxCtx);
+
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPLoadTextureBlock_4b(POLY_OPA_DISP++, &D_801BEB38, G_IM_FMT_I, 16, 16, 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);
@@ -1488,7 +1520,7 @@ void func_80108124(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
if ((ABS_ALT(D_801F53B0[i].id) != ACTOR_EN_HOLL) && (func_80105328(D_801F53B0[i].params) == 0)) {
roomA = D_801F53B0[i].sides[0].room;
roomB = D_801F53B0[i].sides[1].room;
- if (CHECK_DUNGEON_ITEM(2, gSaveContext.mapIndex) || (roomA < 0) ||
+ if (CHECK_DUNGEON_ITEM(DUNGEON_MAP, gSaveContext.mapIndex) || (roomA < 0) ||
(gSaveContext.save.saveInfo
.permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))]
.rooms &
@@ -1508,6 +1540,7 @@ void func_80108124(PlayState* play, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
}
}
}
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
@@ -1523,13 +1556,14 @@ void func_80108558(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
sp30 = &D_801BEC24;
OPEN_DISPS(arg0->state.gfxCtx);
+
gDPPipeSync(POLY_OPA_DISP++);
gDPSetTextureLUT(POLY_OPA_DISP++, G_TT_NONE);
gDPSetRenderMode(POLY_OPA_DISP++, G_RM_AA_DEC_LINE, G_RM_NOOP2);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, arg0->pauseCtx.alpha);
gDPSetEnvColor(POLY_OPA_DISP++, 0, 0, 0, 255);
gDPPipeSync(POLY_OPA_DISP++);
- if (CHECK_DUNGEON_ITEM(1, arg6)) {
+ if (CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, arg6)) {
gDPLoadTextureBlock_TEST(POLY_OPA_DISP++, &D_02002460, G_IM_FMT_IA, D_801BEAE0[1], D_801BEAF0[1], D_801BEB00[1],
D_801BEB10[1], D_801BEB20[1], D_801BEAD0[1], 8, 8, 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);
@@ -1547,6 +1581,7 @@ void func_80108558(PlayState* arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, f32
}
}
}
+
CLOSE_DISPS(arg0->state.gfxCtx);
}
#else
@@ -1567,13 +1602,13 @@ TexturePtr func_80108A10(s32 arg0) {
s32 func_80108A64(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx;
- if (pauseCtx->pageIndex != 1) {
+ if (pauseCtx->pageIndex != PAUSE_MAP) {
return 1;
}
- if ((pauseCtx->state == 7) || ((pauseCtx->state >= 8) && (pauseCtx->state < 0x13))) {
+ if ((pauseCtx->state == PAUSE_STATE_SAVEPROMPT) || IS_PAUSE_STATE_GAMEOVER) {
return 1;
}
- if ((pauseCtx->state != 6) || (pauseCtx->mainState != 0)) {
+ if ((pauseCtx->state != PAUSE_STATE_MAIN) || (pauseCtx->mainState != PAUSE_MAIN_STATE_IDLE)) {
return 1;
}
if (pauseCtx->alpha == 0) {
@@ -1582,7 +1617,6 @@ s32 func_80108A64(PlayState* play) {
return 0;
}
-// https://decomp.me/scratch/4gO7Z
void func_80108AF8(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx;
s32 temp_a0_2;
@@ -1594,25 +1628,32 @@ void func_80108AF8(PlayState* play) {
s32 spB4 = 0;
if ((D_801BEBB8.minimapList != NULL) && (D_801BEC1C != 0) && (func_80108A64(play) == 0)) {
- if (Map_IsInBossArea(play) != 0) {
+ if (Map_IsInBossArea(play)) {
switch (play->sceneId) {
case SCENE_MITURIN_BS:
spB4 = 0;
break;
+
case SCENE_HAKUGIN_BS:
spB4 = 1;
break;
+
case SCENE_SEA_BS:
spB4 = 2;
break;
+
case SCENE_INISIE_BS:
spB4 = 3;
break;
+
+ default:
+ break;
}
} else {
spB4 = gSaveContext.mapIndex;
}
OPEN_DISPS(play->state.gfxCtx);
+
Gfx_SetupDL39_Opa(play->state.gfxCtx);
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 200, pauseCtx->alpha);
@@ -1621,7 +1662,7 @@ void func_80108AF8(PlayState* play) {
if ((gSaveContext.save.saveInfo.permanentSceneFlags[Play_GetOriginalSceneId(func_80106D08(play->sceneId))]
.unk_14 &
gBitFlags[4 - var_s1]) ||
- CHECK_DUNGEON_ITEM2(2, spB4)) {
+ CHECK_DUNGEON_ITEM2(DUNGEON_MAP, spB4)) {
gDPLoadTextureBlock(POLY_OPA_DISP++, func_80108A10(D_801BEBB8.unk44 + var_s1), G_IM_FMT_IA, G_IM_SIZ_8b,
24, 16, 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);
@@ -1651,6 +1692,7 @@ void func_80108AF8(PlayState* play) {
G_TX_RENDERTILE, 0, 0, 0x0400, 0x0400);
}
Gfx_SetupDL42_Opa(play->state.gfxCtx);
+
CLOSE_DISPS(play->state.gfxCtx);
}
}
@@ -1702,20 +1744,26 @@ void func_801091F0(PlayState* play) {
sp40 = 0;
sp3C = 0;
if (func_80108A64(play) == 0) {
- if (Map_IsInBossArea(play) != 0) {
+ if (Map_IsInBossArea(play)) {
switch (play->sceneId) {
case SCENE_MITURIN_BS:
sp44 = 0;
break;
+
case SCENE_HAKUGIN_BS:
sp44 = 1;
break;
+
case SCENE_SEA_BS:
sp44 = 2;
break;
+
case SCENE_INISIE_BS:
sp44 = 3;
break;
+
+ default:
+ break;
}
} else {
sp44 = gSaveContext.mapIndex;
@@ -1738,7 +1786,7 @@ void func_801091F0(PlayState* play) {
func_80106D5C(play, sp40 + 0x90, sp3C + 0x55, 0x78, 0x64, 1.0f / var_t2, sp44);
func_80108124(play, sp40 + 0x90, sp3C + 0x55, 0x78, 0x64, 1.0f / var_t2, sp44);
func_80108558(play, sp40 + 0x90, sp3C + 0x55, 0x78, 0x64, 1.0f / var_t2, sp44);
- if (CHECK_DUNGEON_ITEM(1, sp44)) {
+ if (CHECK_DUNGEON_ITEM(DUNGEON_COMPASS, sp44)) {
func_80107B78(play, sp40 + 0x90, sp3C + 0x55, 0x78, 0x64, 1.0f / var_t2);
}
}