mirror of
https://github.com/izzy2lost/2ship2harkinian-Android.git
synced 2026-06-19 01:20:08 -07:00
implement easy fixes
This commit is contained in:
+65
-39
@@ -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;
|
||||
|
||||
+81
-33
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user