Some d_map matches and inlines

This commit is contained in:
LagoLunatic
2026-08-27 14:48:27 -04:00
parent 1d3e6a84f2
commit d27955c04d
2 changed files with 281 additions and 153 deletions
+43 -10
View File
@@ -108,6 +108,15 @@ public:
void setPos(s16, s16, s16, s16);
void setScale(f32, f32);
void getMapDt() {}
void getMapDtSize() {}
void setAlpha(u8 alpha) { mAlpha = alpha; }
void setCenterPos(f32 p0, f32 p1) {
field_0x44 = p0;
field_0x48 = p1;
}
public:
/* 0x04 */ map_dt_c* field_0x4;
/* 0x08 */ ResTIMG* mImg;
/* 0x0C */ GXTexObj field_0xc;
@@ -121,7 +130,7 @@ public:
/* 0x48 */ f32 field_0x48;
/* 0x4C */ f32 mScaleX;
/* 0x50 */ f32 mScaleY;
/* 0x54 */ u8 field_0x54;
/* 0x54 */ u8 mAlpha;
};
class dMap_RoomInfo_c {
@@ -132,8 +141,13 @@ public:
dMap_RoomInfo_c* init(dMap_RoomInfo_c*, int);
u8 getRoomImage(int, u8, int, ResTIMG**, ResTIMG**, map_dt_c**, stage_map_info_class**, u8*);
BOOL makeRoomDspFloorNoTbl(int);
#if VERSION == VERSION_DEMO
dMap_RoomInfo_c* roomEntryRoom(int, u8, int, u8, dMap_RoomInfo_c*, s16, s16);
BOOL Changeimage(u8, u8, int, s16, s16);
#else
dMap_RoomInfo_c* roomEntryRoom(int, u8, int, u8, dMap_RoomInfo_c*, s16, s16, f32);
BOOL Changeimage(u8, u8, int, s16, s16, f32);
#endif
BOOL deleteRoom();
bool enlagementSizeTextureCordCalc(f32*, f32*, f32*, f32*, f32, f32, f32, f32, f32, f32);
void roomDrawRoomEnlargementSize(int, int, int, int, f32, f32, f32, f32, u8);
@@ -169,9 +183,13 @@ public:
u8 getEnableFlg() { return field_0x1; }
int getRoomNo() { return m_no; }
stage_map_info_class* getStageMapInfoP() { JUT_ASSERT(1127, mStageMapInfoP != NULL); return mStageMapInfoP; }
stage_map_info_class* getStageMapInfoP() {
JUT_ASSERT(DEMO_SELECT(1129, 1127), mStageMapInfoP != NULL);
return mStageMapInfoP;
}
dMap_RoomInfo_c* getNextRoomInfoP() { return m_next; }
public:
/* 0x00 */ u8 m_exist;
/* 0x01 */ u8 field_0x1;
/* 0x02 */ u8 field_0x2[10];
@@ -195,7 +213,11 @@ class dMap_RoomInfoCtrl_c {
public:
bool roomExistenceCheck(int, dMap_RoomInfo_c**);
dMap_RoomInfo_c* getNextRoomP(dMap_RoomInfo_c*);
#if VERSION == VERSION_DEMO
dMap_RoomInfo_c* ctrlEntryRoom(int, u8, int, u8, s16, s16);
#else
dMap_RoomInfo_c* ctrlEntryRoom(int, u8, int, u8, s16, s16, f32);
#endif
bool deleteRoom(int);
void ctrlDrawRoomEnlargementSize(int, int, int, int, int, f32, f32, f32, f32, u8);
void ctrlDrawRoomRealSize(int, int, int, int, int, f32, f32, f32, f32, f32, f32, u8);
@@ -212,13 +234,24 @@ public:
virtual ~dMap_2DSQ_c() {}
virtual void draw();
/* 0x04 */ int field_0x4;
/* 0x08 */ int field_0x8;
/* 0x0C */ int field_0xc;
/* 0x10 */ int field_0x10;
/* 0x14 */ u8 field_0x14;
/* 0x18 */ int field_0x18;
/* 0x1C */ GXColor field_0x1c;
void setDispPos(s32 left, s32 top, s32 right, s32 bottom) {
mDispLeft = left;
mDispTop = top;
mDispRight = right;
mDispBottom = bottom;
}
void setAlpha(u8 alpha) { mAlpha = alpha; }
void setMode(int mode) { mMode = mode;}
void setColor(const GXColor* color) { mColor = *color; }
public:
/* 0x04 */ s32 mDispLeft;
/* 0x08 */ s32 mDispRight;
/* 0x0C */ s32 mDispTop;
/* 0x10 */ s32 mDispBottom;
/* 0x14 */ u8 mAlpha;
/* 0x18 */ int mMode;
/* 0x1C */ GXColor mColor;
};
class dMap_2DTri_c : public dDlst_base_c {
@@ -436,8 +469,8 @@ public:
static s16 getMapDspSizeHeight() { return mDispSizeY; }
static void setIconFreeScale(f32 scale) { mIconFreeScale = scale; }
static void setIconSelfScale(f32 scale) { mIconSelfScale = scale; }
static dMap_RoomInfo_c* getNowRoom() { return mNowRoomInfoP; }
static void getNowRoom() {}
static void isMapDispTypeEnlargementSize() {}
static void isMapDispTypeRealSize() {}
static void setMapChgSizeEnlargementSize() {}
+238 -143
View File
@@ -148,38 +148,55 @@ f32 dMap_c::mNowScaleZ;
dMap_RoomInfoCtrl_c dMap_c::mRoomInfoCtrl;
dMap_RoomInfo_c* dMap_c::mNowRoomInfoP;
#if VERSION == VERSION_DEMO
class dMap_HIO_c {
public:
dMap_HIO_c();
virtual ~dMap_HIO_c() {}
public:
u8 pad[0xFC];
};
dMap_HIO_c::dMap_HIO_c() {
/* Nonmatching */
}
dMap_HIO_c g_mapHIO;
#endif
static inline f32 getMapInfo_map1_X0(stage_map_info_class* i_mapInfoP) {
JUT_ASSERT(719, i_mapInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(730, 719, 719, 719), i_mapInfoP != NULL);
return i_mapInfoP->field_0x18;
}
static inline f32 getMapInfo_map1_Z0(stage_map_info_class* i_mapInfoP) {
JUT_ASSERT(725, i_mapInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(740, 725, 725, 725), i_mapInfoP != NULL);
return i_mapInfoP->field_0x1C;
}
static inline f32 getMapInfo_map1_X1(stage_map_info_class* i_mapInfoP) {
JUT_ASSERT(731, i_mapInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(750, 731, 731, 731), i_mapInfoP != NULL);
return i_mapInfoP->field_0x20;
}
static inline f32 getMapInfo_map1_Z1(stage_map_info_class* i_mapInfoP) {
JUT_ASSERT(737, i_mapInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(760, 737, 737, 737), i_mapInfoP != NULL);
return i_mapInfoP->field_0x24;
}
static inline f32 getMapInfo_map1_XC(stage_map_info_class* i_mapInfoP) {
JUT_ASSERT(743, i_mapInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(770, 739, 743, 743), i_mapInfoP != NULL);
return i_mapInfoP->field_0x28;
}
static inline f32 getMapInfo_map1_ZC(stage_map_info_class* i_mapInfoP) {
JUT_ASSERT(749, i_mapInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(780, 745, 749, 749), i_mapInfoP != NULL);
return i_mapInfoP->field_0x2c;
}
static inline int gridPos2GridNo(int i_gridX, int i_gridY) {
JUT_ASSERT(1188, (i_gridX >= -3) && (i_gridX <= 3) && (i_gridY >= -3) && (i_gridY <= 3));
JUT_ASSERT(VERSION_SELECT(1258, 1188, 1188, 1188), (i_gridX >= -3) && (i_gridX <= 3) && (i_gridY >= -3) && (i_gridY <= 3));
return i_gridX + 3 + (i_gridY + 3) * 7;
}
@@ -213,20 +230,22 @@ dStage_FloorInfo_c* getFloorInfo_WithRoom(int i_roomNo) {
return floor;
}
#if VERSION > VERSION_DEMO
/* 800457B8-800458E0 .text mapOffsetY__Fv */
f32 mapOffsetY() {
static f32 mapOffsetY() {
f32 ret = 0.0f;
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_BOSS_e || dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MINIBOSS_e) {
if (dComIfGp_getStage().getDMap() != NULL) {
dStage_DMap_c* pinf = dComIfGp_getStage().getDMap();
dStage_DMap_dt_c* entry = pinf->entries;
JUT_ASSERT(1415, pinf->num == 1);
JUT_ASSERT(VERSION_SELECT(1415, 1415, 1415, 1415), pinf->num == 1);
for (int i = 0; i < pinf->num; i++, entry++)
ret = entry->offsetY;
}
}
return ret;
}
#endif
/* 800458E0-800459E4 .text dMap_GetTopBottomFloorNo__FP11dStage_dt_cPUcPUc */
BOOL dMap_GetTopBottomFloorNo(dStage_dt_c* stag, u8* bottom_p, u8* top_p) {
@@ -386,16 +405,17 @@ u8 dMap_GetFloorNo(dStage_dt_c* stag, f32 param_2) {
/* 80045C90-80045E54 .text getRoomDspFloorNo__15dMap_RoomInfo_cFUci */
u8 dMap_RoomInfo_c::getRoomDspFloorNo(u8 i_no, BOOL search) {
s32 no = i_no - Floor_Base;
u8 dspFloorNo;
int no = i_no - Floor_Base;
#if VERSION > VERSION_DEMO
JUT_ASSERT(1794, Floor_Valid(no));
JUT_ASSERT(VERSION_SELECT(1794, 1794, 1794, 1794), Floor_Valid(no));
#endif
u8 dspFloorNo = field_0x2[no];
dspFloorNo = field_0x2[no];
if (search && !IsFloorNo(dspFloorNo)) {
while (!IsFloorNo(dspFloorNo) && --no >= 0) {
#if VERSION > VERSION_DEMO
JUT_ASSERT(1807, Floor_Valid(no));
JUT_ASSERT(VERSION_SELECT(1807, 1807, 1807, 1807), Floor_Valid(no));
#endif
dspFloorNo = field_0x2[no];
}
@@ -403,7 +423,7 @@ u8 dMap_RoomInfo_c::getRoomDspFloorNo(u8 i_no, BOOL search) {
if (!IsFloorNo(dspFloorNo)) {
while (!IsFloorNo(dspFloorNo) && ++no <= (Floor_Num - 1)) {
#if VERSION > VERSION_DEMO
JUT_ASSERT(1816, Floor_Valid(no));
JUT_ASSERT(VERSION_SELECT(1816, 1816, 1816, 1816), Floor_Valid(no));
#endif
dspFloorNo = field_0x2[no];
}
@@ -444,33 +464,36 @@ dMap_RoomInfo_c* dMap_RoomInfo_c::init(dMap_RoomInfo_c* prev, int p2) {
/* 80045F40-80046314 .text getRoomImage__15dMap_RoomInfo_cFiUciPP7ResTIMGPP7ResTIMGPP8map_dt_cPP20stage_map_info_classPUc */
u8 dMap_RoomInfo_c::getRoomImage(int i_roomNo, u8 param_2, int param_3, ResTIMG** param_4, ResTIMG** param_5, map_dt_c** param_6, stage_map_info_class** param_7, u8* param_8) {
/* Nonmatching */
bool r24 = false;
ResTIMG* r28 = NULL;
ResTIMG* r27 = NULL;
map_dt_c* r26 = NULL;
stage_map_info_class* r25 = NULL;
u8 r22 = 0;
ResTIMG* r28;
ResTIMG* r27;
map_dt_c* r26;
stage_map_info_class* r25;
bool r24;
u8 r23;
u8 r22;
r24 = false;
r28 = NULL;
r27 = NULL;
r26 = NULL;
r25 = NULL;
r22 = 0;
if (IsFloorNo(param_2)) {
r23 = param_2;
char archiveName[0x20];
sprintf(archiveName, "Room%d", i_roomNo);
int r21;
while (param_3 && !r24 && IsFloorNo(r21 = r23)) {
while (!r24 && IsFloorNo(r23)) {
char resourceName[0x20];
sprintf(resourceName, "s%d.bti", r21);
sprintf(resourceName, "s%d.bti", r23);
r28 = (ResTIMG*)dComIfG_getStageRes(archiveName, resourceName);
sprintf(resourceName, "m%d.bti", r21);
sprintf(resourceName, "m%d.bti", r23);
r27 = (ResTIMG*)dComIfG_getStageRes(archiveName, resourceName);
sprintf(resourceName, "m%d.amp", r21);
sprintf(resourceName, "m%d.amp", r23);
r26 = (map_dt_c*)dComIfG_getStageRes(archiveName, resourceName);
r25 = NULL;
r21 = r23;
u8 r29;
while (!r25 && IsFloorNo(r29 = r21)) {
u8 r21 = r23;
while (!r25 && IsFloorNo(r21)) {
dStage_roomDt_c* roomData = dComIfGp_roomControl_getStatusRoomDt(i_roomNo);
r25 = roomData->getMapInfo2(r29);
r25 = roomData->getMapInfo2(r21);
r21--;
}
if (r28 && r27 && r26 && r25) {
@@ -478,11 +501,14 @@ u8 dMap_RoomInfo_c::getRoomImage(int i_roomNo, u8 param_2, int param_3, ResTIMG*
} else {
r23--;
}
if (!param_3) {
break;
}
}
if (r28 && r25 && r25->field_0x08 != r25->field_0x00 && r25->field_0x0C != r25->field_0x04) {
r22 |= 2;
}
if (r27 && ((r27->width == 128 && r27->height <= 480) || ((r27->width & 7) == 0 && r27->height == 8)) && r25) {
if (r27 && ((r27->width == 128 && r27->height <= 480) || ((r27->width % 8) == 0 && r27->height == 8)) && r25) {
if (getMapInfo_map1_X1(r25) != getMapInfo_map1_X0(r25)) {
if (getMapInfo_map1_Z1(r25) != getMapInfo_map1_Z0(r25)) {
r22 |= 1;
@@ -531,7 +557,7 @@ BOOL dMap_RoomInfo_c::makeRoomDspFloorNoTbl(int i_roomNo) {
if (i_roomNo == floorData->field_0x05[j]) {
u8 r22 = getRoomImage(i_roomNo, floorNo, 1, NULL, NULL, NULL, NULL, NULL);
#if VERSION > VERSION_DEMO
JUT_ASSERT(2195, ((floorNo - Floor_B5F) >= 0) && ((floorNo - Floor_B5F) < (Floor_5F - Floor_B5F + 1)))
JUT_ASSERT(VERSION_SELECT(2195, 2195, 2195, 2195), ((floorNo - Floor_B5F) >= 0) && ((floorNo - Floor_B5F) < (Floor_5F - Floor_B5F + 1)))
#endif
field_0x2[floorNo - Floor_B5F] = r22;
}
@@ -545,8 +571,13 @@ BOOL dMap_RoomInfo_c::makeRoomDspFloorNoTbl(int i_roomNo) {
}
/* 80046470-80046A58 .text roomEntryRoom__15dMap_RoomInfo_cFiUciUcP15dMap_RoomInfo_cssf */
dMap_RoomInfo_c* dMap_RoomInfo_c::roomEntryRoom(int i_roomNo, u8 param_2, int param_3, u8 param_4, dMap_RoomInfo_c* param_5, s16 param_6, s16 param_7, f32 param_8) {
JUT_ASSERT(2241, i_roomNo >= 0);
#if VERSION == VERSION_DEMO
dMap_RoomInfo_c* dMap_RoomInfo_c::roomEntryRoom(int i_roomNo, u8 param_2, int param_3, u8 param_4, dMap_RoomInfo_c* param_5, s16 param_6, s16 param_7)
#else
dMap_RoomInfo_c* dMap_RoomInfo_c::roomEntryRoom(int i_roomNo, u8 param_2, int param_3, u8 param_4, dMap_RoomInfo_c* param_5, s16 param_6, s16 param_7, f32 param_8)
#endif
{
JUT_ASSERT(VERSION_SELECT(2397, 2241, 2241, 2241), i_roomNo >= 0);
if (m_exist == 0) {
field_0x1 = 0;
mStageMapInfoP = NULL;
@@ -580,16 +611,16 @@ dMap_RoomInfo_c* dMap_RoomInfo_c::roomEntryRoom(int i_roomNo, u8 param_2, int pa
field_0x18 = param_6 / (l_mapInfoP->field_0x08 - l_mapInfoP->field_0x00);
field_0x1c = param_7 / (l_mapInfoP->field_0x0C - l_mapInfoP->field_0x04);
} else {
JUT_ASSERT(2331, 0);
JUT_ASSERT(VERSION_SELECT(2487, 2331, 2331, 2331), 0);
}
} else {
field_0x44[0].field_0x0 = 0;
}
field_0x30.init(1, field_0x44);
if ((local_60 & 1)) {
JUT_ASSERT(2346, l_mapDtP != 0);
JUT_ASSERT(2347, l_image1P != 0);
JUT_ASSERT(2348, l_mapInfoP != 0);
JUT_ASSERT(VERSION_SELECT(2502, 2346, 2346, 2346), l_mapDtP != NULL);
JUT_ASSERT(VERSION_SELECT(2503, 2347, 2347, 2347), l_image1P != NULL);
JUT_ASSERT(VERSION_SELECT(2504, 2348, 2348, 2348), l_mapInfoP != NULL);
field_0x8c.setImage(l_image1P,l_mapDtP);
field_0x28 = mDoLib_cnvind16(l_mapDtP->field_0x0);
field_0x2c = mDoLib_cnvind16(l_mapDtP->field_0x2);
@@ -606,14 +637,18 @@ dMap_RoomInfo_c* dMap_RoomInfo_c::roomEntryRoom(int i_roomNo, u8 param_2, int pa
} else {
l_mapDtP->field_0x6 = param_2 - 0x80;
}
} else if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MINIBOSS_e) {
}
#if VERSION > VERSION_DEMO
else if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MINIBOSS_e) {
int tmp = dMap_GetFloorNo(&dComIfGp_getStage(), param_8 + mapOffsetY());
if (tmp >= 0x80) {
l_mapDtP->field_0x6 = tmp - 0x7f;
} else {
l_mapDtP->field_0x6 = tmp - 0x80;
}
} else {
}
#endif
else {
l_mapDtP->field_0x32 = 0;
l_mapDtP->field_0x6 = 0;
}
@@ -628,7 +663,12 @@ dMap_RoomInfo_c* dMap_RoomInfo_c::roomEntryRoom(int i_roomNo, u8 param_2, int pa
}
/* 80046A58-80046F08 .text Changeimage__15dMap_RoomInfo_cFUcUcissf */
BOOL dMap_RoomInfo_c::Changeimage(u8 param_1, u8 param_2, int param_3, s16 param_4, s16 param_5, f32 param_6) {
#if VERSION == VERSION_DEMO
BOOL dMap_RoomInfo_c::Changeimage(u8 param_1, u8 param_2, int param_3, s16 param_4, s16 param_5)
#else
BOOL dMap_RoomInfo_c::Changeimage(u8 param_1, u8 param_2, int param_3, s16 param_4, s16 param_5, f32 param_6)
#endif
{
ResTIMG* local_60 = NULL;
ResTIMG* local_64 = NULL;
map_dt_c* local_68 = NULL;
@@ -637,7 +677,7 @@ BOOL dMap_RoomInfo_c::Changeimage(u8 param_1, u8 param_2, int param_3, s16 param
if (IsFloorNo(param_1)) {
r26 = getRoomDspFloorNo(param_1, m_no == param_3);
} else {
JUT_ASSERT(2453, 0);
JUT_ASSERT(VERSION_SELECT(2606, 2453, 2453, 2453), 0);
}
if (r26 == field_0xc) {
return false;
@@ -678,14 +718,18 @@ BOOL dMap_RoomInfo_c::Changeimage(u8 param_1, u8 param_2, int param_3, s16 param
} else {
local_68->field_0x6 = param_1 - 0x80;
}
} else if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MINIBOSS_e) {
}
#if VERSION > VERSION_DEMO
else if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MINIBOSS_e) {
int tmp = dMap_GetFloorNo(&dComIfGp_getStage(), param_6 + mapOffsetY());
if (tmp >= 0x80) {
local_68->field_0x6 = tmp - 0x7f;
} else {
local_68->field_0x6 = tmp - 0x80;
}
} else {
}
#endif
else {
local_68->field_0x32 = 0;
local_68->field_0x6 = 0;
}
@@ -698,6 +742,7 @@ BOOL dMap_RoomInfo_c::deleteRoom() {
m_no = -1;
m_exist = 0;
mStageMapInfoP = NULL;
#if VERSION > VERSION_DEMO
field_0x1 = 0;
for (int i = 0; i < ARRAY_SIZE(field_0x2); i++) {
field_0x2[i] = 255;
@@ -713,6 +758,7 @@ BOOL dMap_RoomInfo_c::deleteRoom() {
field_0x8c.init(NULL, NULL, 0.0f, 0.0f, 0, 0, 0, 0, 1.0f, 1.0f, 0);
field_0x44[0].field_0x0 = 0;
field_0x30.init(1, &field_0x44[0]);
#endif
return TRUE;
}
@@ -796,17 +842,19 @@ void dMap_RoomInfo_c::roomDrawRoomEnlargementSize(int param_1, int param_2, int
}
/* 800475B8-80047834 .text roomDrawRoomRealSize__15dMap_RoomInfo_cFiiiiffffffUc */
void dMap_RoomInfo_c::roomDrawRoomRealSize(int param_1, int param_2, int param_3, int param_4, f32 param_5, f32 param_6, f32 param_7, f32 param_8, f32 param_9, f32 param_10, u8 param_11) {
/* Nonmatching */
void dMap_RoomInfo_c::roomDrawRoomRealSize(int param_1, int param_2, int param_3, int param_4,
f32 param_5, f32 param_6, f32 param_7, f32 param_8, f32 param_9, f32 param_10, u8 i_alpha
) {
if (field_0x1 & 1) {
f32 f28 = getStageMapInfoP()->field_0x30 / param_9;
f32 f27 = getStageMapInfoP()->field_0x30 / param_10;
f32 f29 = field_0x2c * 0.5f + (param_6 - param_8) / getStageMapInfoP()->field_0x30;
field_0x8c.field_0x44 = field_0x28 * 0.5f + (param_5 - param_7) / getStageMapInfoP()->field_0x30;
field_0x8c.field_0x48 = f29;
field_0x8c.setCenterPos(
field_0x28 * 0.5f + (param_5 - param_7) / getStageMapInfoP()->field_0x30,
field_0x2c * 0.5f + (param_6 - param_8) / getStageMapInfoP()->field_0x30
);
field_0x8c.setScale(f28, f27);
field_0x8c.setPos(param_1, param_2, param_1 + param_3, param_2 + param_4);
field_0x8c.field_0x54 = param_11;
field_0x8c.setAlpha(i_alpha);
dComIfGd_set2DOpa(&field_0x8c);
}
}
@@ -814,11 +862,11 @@ void dMap_RoomInfo_c::roomDrawRoomRealSize(int param_1, int param_2, int param_3
/* 80047834-8004793C .text roomExistenceCheck__19dMap_RoomInfoCtrl_cFiPP15dMap_RoomInfo_c */
bool dMap_RoomInfoCtrl_c::roomExistenceCheck(int i_no, dMap_RoomInfo_c** roomInfoPP) {
/* Nonmatching */
JUT_ASSERT(2947, roomInfoPP != NULL);
JUT_ASSERT(VERSION_SELECT(3075, 2947, 2947, 2947), roomInfoPP != NULL);
bool ret = false;
*roomInfoPP = NULL;
dMap_RoomInfo_c* roomInfoP = m_info;
JUT_ASSERT(2955, roomInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(3083, 2955, 2955, 2955), roomInfoP != NULL);
for (; !ret && roomInfoP != NULL; roomInfoP = roomInfoP->m_next) {
if (roomInfoP->m_exist) {
if (i_no == roomInfoP->m_no) {
@@ -846,14 +894,19 @@ dMap_RoomInfo_c* dMap_RoomInfoCtrl_c::getNextRoomP(dMap_RoomInfo_c* info) {
}
/* 80047960-80047A8C .text ctrlEntryRoom__19dMap_RoomInfoCtrl_cFiUciUcssf */
dMap_RoomInfo_c* dMap_RoomInfoCtrl_c::ctrlEntryRoom(int i_no, u8 p1, int p2, u8 p3, s16 p4, s16 p5, f32 p6) {
#if VERSION == VERSION_DEMO
dMap_RoomInfo_c* dMap_RoomInfoCtrl_c::ctrlEntryRoom(int i_no, u8 p1, int p2, u8 p3, s16 p4, s16 p5)
#else
dMap_RoomInfo_c* dMap_RoomInfoCtrl_c::ctrlEntryRoom(int i_no, u8 p1, int p2, u8 p3, s16 p4, s16 p5, f32 p6)
#endif
{
dMap_RoomInfo_c* roomInfoP;
if (roomExistenceCheck(i_no, &roomInfoP))
return NULL;
dMap_RoomInfo_c* prev = NULL;
roomInfoP = m_info;
JUT_ASSERT(3069, roomInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(3196, 3069, 3069, 3069), roomInfoP != NULL);
if (roomInfoP == NULL)
return NULL;
@@ -862,10 +915,18 @@ dMap_RoomInfo_c* dMap_RoomInfoCtrl_c::ctrlEntryRoom(int i_no, u8 p1, int p2, u8
prev = roomInfoP;
if (roomInfoP != NULL) {
#if VERSION == VERSION_DEMO
if (roomInfoP->roomEntryRoom(i_no, p1, p2, p3, prev, p4, p5))
return roomInfoP;
#else
if (roomInfoP->roomEntryRoom(i_no, p1, p2, p3, prev, p4, p5, p6))
return roomInfoP;
#endif
}
#if VERSION == VERSION_DEMO
JUT_ASSERT(3227, FALSE);
#endif
return NULL;
}
@@ -896,11 +957,11 @@ void dMap_RoomInfoCtrl_c::ctrlDrawRoomEnlargementSize(int i_no, int p1, int p2,
}
/* 80047B8C-80047C64 .text ctrlDrawRoomRealSize__19dMap_RoomInfoCtrl_cFiiiiiffffffUc */
void dMap_RoomInfoCtrl_c::ctrlDrawRoomRealSize(int i_no, int p1, int p2, int p3, int p4, f32 p5, f32 p6, f32 p7, f32 p8, f32 p9, f32 p10, u8 p11) {
void dMap_RoomInfoCtrl_c::ctrlDrawRoomRealSize(int i_no, int p1, int p2, int p3, int p4, f32 p5, f32 p6, f32 p7, f32 p8, f32 p9, f32 p10, u8 i_alpha) {
dMap_RoomInfo_c* roomInfoP = NULL;
while ((roomInfoP = getNextRoomP(roomInfoP))) {
if (roomInfoP->m_exist && i_no == roomInfoP->m_no)
roomInfoP->roomDrawRoomRealSize(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
roomInfoP->roomDrawRoomRealSize(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, i_alpha);
}
}
@@ -1012,29 +1073,29 @@ void dMap_c::create() {
ResTIMG* timg;
for (int i = 0; i < 8; i++) {
timg = (ResTIMG*)dComIfG_getObjectRes("Always", frameArcIdx[i]);
JUT_ASSERT(3450, timg != NULL);
JUT_ASSERT(VERSION_SELECT(3450, 3450, 3450, 3450), timg != NULL);
mFrameTexture[i].init(timg, i + 2, (GXColor){255, 255, 255, 255});
mFrameTexture[i].field_0x0 = 1;
mFrameTexture[i].setScroll(cord[i][0], cord[i][1], cord[i][2], cord[i][3]);
mFrameTex[i].init(1, &mFrameTexture[i]);
}
timg = (ResTIMG*)dComIfG_getObjectRes("Always", dRes_INDEX_ALWAYS_BTI_CAMERA_FREE_e);
JUT_ASSERT(3476, timg != NULL);
JUT_ASSERT(VERSION_SELECT(3476, 3476, 3476, 3476), timg != NULL);
mIconFreeTexture.init(timg, 10, (GXColor){255, 210, 0, 255});
mIconFreeTexture.field_0x0 = 1;
mIconFreeTexture.setScroll(0.0f, 0.0f, 1.0f, 1.0f);
mIconFreeTex.init(1, &mIconFreeTexture);
timg = (ResTIMG*)dComIfG_getObjectRes("Always", dRes_INDEX_ALWAYS_BTI_CAMERA_SELF_e);
JUT_ASSERT(3489, timg != NULL);
JUT_ASSERT(VERSION_SELECT(3489, 3489, 3489, 3489), timg != NULL);
mIconSelfTexture.init(timg, 10, (GXColor){255, 222, 255, 255});
mIconSelfTexture.field_0x0 = 1;
mIconSelfTexture.setScroll(0.0f, 0.0f, 1.0f, 1.0f);
mIconSelfTex.init(1, &mIconSelfTexture);
timg = (ResTIMG*)dComIfG_getObjectRes("Always", dRes_INDEX_ALWAYS_BTI_F_SHIPICON_e);
JUT_ASSERT(3502, timg != NULL);
JUT_ASSERT(VERSION_SELECT(3502, 3502, 3502, 3502), timg != NULL);
mShip.init(timg, 0.0f, 0.0f, 0.0f, 0.0f, 0, 0, 0, 1.0f, 1.0f, 0);
timg = (ResTIMG*)dComIfG_getObjectRes("Always", dRes_INDEX_ALWAYS_BTI_TREASUREBOX_e);
JUT_ASSERT(3511, timg != NULL);
JUT_ASSERT(VERSION_SELECT(3511, 3511, 3511, 3511), timg != NULL);
for (int i = 0; i < 8; i++) {
mTbox[i].init(timg, 0.0f, 0.0f, 0.0f, 0.0f, 1, 0, 0, 1.0f, 1.0f, 0);
}
@@ -1080,12 +1141,17 @@ void dMap_c::setImage(int param_1, int param_2, f32 param_3) {
if (!IsFloorNo(mNowFloorNo)) {
mNowFloorNo = dMap_GetFloorNo_WithRoom(param_2, param_3);
if (!IsFloorNo(mNowFloorNo)) {
JUT_ASSERT(3694, 0);
JUT_ASSERT(VERSION_SELECT(3882, 3694, 3694, 3694), 0);
}
}
u8 r31 = mNowFloorNo;
if (!mRoomInfoCtrl.ctrlEntryRoom(param_1, dMap_GetFloorNo_WithRoom(param_2, param_3), param_2, r31, 120, 120, param_3)) {
JUT_ASSERT(3714, 0);
#if VERSION == VERSION_DEMO
if (!mRoomInfoCtrl.ctrlEntryRoom(param_1, dMap_GetFloorNo_WithRoom(param_2, param_3), param_2, r31, 120, 120))
#else
if (!mRoomInfoCtrl.ctrlEntryRoom(param_1, dMap_GetFloorNo_WithRoom(param_2, param_3), param_2, r31, 120, 120, param_3))
#endif
{
JUT_ASSERT(VERSION_SELECT(3908, 3714, 3714, 3714), 0);
}
if (!mNowRoomInfoP && param_1 == param_2 && param_2 != -1) {
setNowRoom(param_2);
@@ -1107,10 +1173,10 @@ void dMap_c::deleteImage(int param_1) {
BOOL dMap_c::setNowRoom(int param_1) {
BOOL r31 = false;
mNowRoomInfoP = NULL;
dMap_RoomInfo_c* var4 = NULL;
while (var4 = mRoomInfoCtrl.getNextRoomP(var4)) {
if (param_1 == var4->m_no) {
mNowRoomInfoP = var4;
dMap_RoomInfo_c* roomInfoP = NULL;
while ((roomInfoP = mRoomInfoCtrl.getNextRoomP(roomInfoP))) {
if (param_1 == roomInfoP->m_no) {
mNowRoomInfoP = roomInfoP;
r31 = true;
break;
}
@@ -1141,7 +1207,7 @@ void dMap_2DSQ_c::draw() {
GXSetChanCtrl(GX_COLOR0, GX_DISABLE, GX_SRC_REG, GX_SRC_REG, 0, GX_DF_NONE, GX_AF_NONE);
GXSetNumTevStages(1);
GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE);
if (field_0x18 == 0) {
if (mMode == 0) {
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
GXSetZMode(GX_DISABLE, GX_LEQUAL, GX_DISABLE);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR_NULL);
@@ -1153,11 +1219,11 @@ void dMap_2DSQ_c::draw() {
GXSetBlendMode(GX_BM_BLEND, GX_BL_ONE, GX_BL_ZERO, GX_LO_SET);
GXSetColorUpdate(GX_DISABLE);
GXSetAlphaUpdate(GX_ENABLE);
GXSetDstAlpha(GX_ENABLE, field_0x14);
} else if (field_0x18 == 1) {
GXSetDstAlpha(GX_ENABLE, mAlpha);
} else if (mMode == 1) {
GXSetAlphaCompare(GX_ALWAYS, 0, GX_AOP_OR, GX_ALWAYS, 0);
GXSetTevOrder(GX_TEVSTAGE0, GX_TEXCOORD_NULL, GX_TEXMAP_NULL, GX_COLOR0A0);
GXSetTevColor(GX_TEVREG0, field_0x1c);
GXSetTevColor(GX_TEVREG0, mColor);
GXSetTevColorIn(GX_TEVSTAGE0, GX_CC_ZERO, GX_CC_ZERO, GX_CC_ZERO, GX_CC_C0);
GXSetTevColorOp(GX_TEVSTAGE0, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV);
GXSetTevAlphaIn(GX_TEVSTAGE0, GX_CA_ZERO, GX_CA_ZERO, GX_CA_ZERO, GX_CA_KONST);
@@ -1168,10 +1234,10 @@ void dMap_2DSQ_c::draw() {
GXSetDstAlpha(GX_DISABLE, 0);
}
GXBegin(GX_QUADS, GX_VTXFMT0, 4);
GXPosition3f32(field_0x4, field_0xc, 0.0f);
GXPosition3f32(field_0x8, field_0xc, 0.0f);
GXPosition3f32(field_0x8, field_0x10, 0.0f);
GXPosition3f32(field_0x4, field_0x10, 0.0f);
GXPosition3f32(mDispLeft, mDispTop, 0.0f);
GXPosition3f32(mDispRight, mDispTop, 0.0f);
GXPosition3f32(mDispRight, mDispBottom, 0.0f);
GXPosition3f32(mDispLeft, mDispBottom, 0.0f);
GXEnd();
GXSetColorUpdate(GX_ENABLE);
GXSetAlphaUpdate(GX_DISABLE);
@@ -1230,64 +1296,61 @@ void dMap_c::mapDrawFrame(u8 param_1) {
/* 80048D80-80048F74 .text mapDrawEnlargementSize__6dMap_cFffffUc */
void dMap_c::mapDrawEnlargementSize(f32 param_1, f32 param_2, f32 param_3, f32 param_4, u8 param_5) {
/* Nonmatching */
static const GXColor l_color_field = {0, 0, 255, 255};
static const GXColor l_color_dungeon = {0, 0, 0, 255};
if (param_5) {
m2DSQdraw.field_0x4 = mDispPosLeftUpX;
m2DSQdraw.field_0xc = mDispPosLeftUpY;
m2DSQdraw.field_0x8 = m2DSQdraw.field_0x4 + mDispSizeX;
m2DSQdraw.field_0x10 = m2DSQdraw.field_0xc + mDispSizeY;
m2DSQdraw.field_0x14 = param_5;
m2DSQdraw.field_0x18 = 0;
m2DSQdraw.setDispPos(mDispPosLeftUpX, mDispPosLeftUpY, mDispPosLeftUpX + mDispSizeX, mDispPosLeftUpY + mDispSizeY);
m2DSQdraw.setAlpha(param_5);
m2DSQdraw.setMode(0);
dComIfGd_set2DOpa(&m2DSQdraw);
if (mNowRoomInfoP->getEnableFlg() & 2) {
mRoomInfoCtrl.ctrlDrawRoomEnlargementSize(mNowRoomInfoP->getRoomNo(), mDispPosLeftUpX, mDispPosLeftUpY, mDispSizeX, mDispSizeY, param_1, param_2, param_3, param_4, param_5);
if (getNowRoom()->getEnableFlg() & 2) {
mRoomInfoCtrl.ctrlDrawRoomEnlargementSize(getNowRoom()->getRoomNo(), mDispPosLeftUpX, mDispPosLeftUpY, mDispSizeX, mDispSizeY, param_1, param_2, param_3, param_4, param_5);
}
m2DSQdraw2.field_0x4 = mDispPosLeftUpX;
m2DSQdraw2.field_0xc = mDispPosLeftUpY;
m2DSQdraw2.field_0x8 = m2DSQdraw2.field_0x4 + mDispSizeX;
m2DSQdraw2.field_0x10 = m2DSQdraw2.field_0xc + mDispSizeY;
m2DSQdraw2.setDispPos(mDispPosLeftUpX, mDispPosLeftUpY, mDispPosLeftUpX + mDispSizeX, mDispPosLeftUpY + mDispSizeY);
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_OUTDOORS_e || dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_SEA_e) {
m2DSQdraw2.field_0x1c = l_color_field;
m2DSQdraw2.setColor(&l_color_field);
} else {
m2DSQdraw2.field_0x1c = l_color_dungeon;
m2DSQdraw2.setColor(&l_color_dungeon);
}
m2DSQdraw2.field_0x18 = 1;
m2DSQdraw2.setMode(1);
dComIfGd_set2DOpa(&m2DSQdraw2);
}
}
/* 80048F74-80049354 .text mapDrawRealSize__6dMap_cFffUc */
void dMap_c::mapDrawRealSize(f32 param_1, f32 param_2, u8 param_3) {
void dMap_c::mapDrawRealSize(f32 param_1, f32 param_2, u8 i_alpha) {
/* Nonmatching */
static const GXColor l_color_field = {0, 0, 255, 255};
static const GXColor l_color_dungeon = {0, 0, 0, 255};
if (param_3) {
m2DSQdraw.field_0x4 = mDispPosLeftUpX;
m2DSQdraw.field_0xc = mDispPosLeftUpY;
m2DSQdraw.field_0x8 = m2DSQdraw.field_0x4 + mDispSizeX;
m2DSQdraw.field_0x10 = m2DSQdraw.field_0xc + mDispSizeY;
m2DSQdraw.field_0x14 = param_3;
m2DSQdraw.field_0x18 = 0;
if (i_alpha) {
m2DSQdraw.setDispPos(mDispPosLeftUpX, mDispPosLeftUpY, mDispPosLeftUpX + mDispSizeX, mDispPosLeftUpY + mDispSizeY);
m2DSQdraw.setAlpha(i_alpha);
m2DSQdraw.setMode(0);
dComIfGd_set2DOpa(&m2DSQdraw);
if (mNowRoomInfoP->getEnableFlg() & 1) {
f32 f31 = mNowRoomInfoP->getStageMapInfoP()->field_0x30;
f32 f30 = mNowRoomInfoP->getStageMapInfoP()->field_0x30;
mRoomInfoCtrl.ctrlDrawRoomRealSize(mNowRoomInfoP->getRoomNo(), mDispPosLeftUpX, mDispPosLeftUpY, mDispSizeX, mDispSizeY, param_1, param_2, getMapInfo_map1_XC(mNowRoomInfoP->getStageMapInfoP()), getMapInfo_map1_ZC(mNowRoomInfoP->getStageMapInfoP()), f30, f31, param_3);
mRoomInfoCtrl.ctrlDrawRoomRealSize(
mNowRoomInfoP->getRoomNo(),
mDispPosLeftUpX, mDispPosLeftUpY, mDispSizeX, mDispSizeY,
param_1, param_2,
getMapInfo_map1_XC(mNowRoomInfoP->getStageMapInfoP()),
getMapInfo_map1_ZC(mNowRoomInfoP->getStageMapInfoP()),
f30, f31, i_alpha
);
}
m2DSQdraw2.field_0x4 = mDispPosLeftUpX;
m2DSQdraw2.field_0xc = mDispPosLeftUpY;
m2DSQdraw2.field_0x8 = m2DSQdraw2.field_0x4 + mDispSizeX;
m2DSQdraw2.field_0x10 = m2DSQdraw2.field_0xc + mDispSizeY;
if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_OUTDOORS_e || dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_SEA_e) {
m2DSQdraw2.field_0x1c = l_color_field;
m2DSQdraw2.setDispPos(mDispPosLeftUpX, mDispPosLeftUpY, mDispPosLeftUpX + mDispSizeX, mDispPosLeftUpY + mDispSizeY);
if (
dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_OUTDOORS_e ||
dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_SEA_e
) {
m2DSQdraw2.setColor(&l_color_field);
} else {
m2DSQdraw2.field_0x1c = l_color_dungeon;
m2DSQdraw2.setColor(&l_color_dungeon);
}
m2DSQdraw2.field_0x18 = 1;
m2DSQdraw2.setMode(1);
dComIfGd_set2DOpa(&m2DSQdraw2);
}
}
@@ -1420,7 +1483,9 @@ void dMap_c::mapAGBSendMapMain(f32 param_1, f32 param_2) {
if (mPlayerStayAgbMapTypeNow == 2) {
if (mPlayerStayAgbMapTypeOld != 2) {
agbMapNoSetCall();
#if VERSION > VERSION_DEMO
mAGBMapSendStatus = 0;
#endif
}
} else if (mPlayerStayAgbMapTypeNow == 3) {
if (mPlayerStayAgbMapTypeOld != 3) {
@@ -1431,11 +1496,15 @@ void dMap_c::mapAGBSendMapMain(f32 param_1, f32 param_2) {
}
if (!mDoGaC_GbaLink()) {
mAGBMapSendStatus = 0;
#if VERSION > VERSION_DEMO
mPlayerStayAgbMapTypeOld = 0xff;
#endif
} else {
#if VERSION > VERSION_DEMO
if (mPlayerStayAgbMapTypeNow != mPlayerStayAgbMapTypeOld) {
mPlayerStayAgbMapTypeOld = mPlayerStayAgbMapTypeNow;
}
#endif
if (mAGBMapSendStatus > 2 && mAGBMapSendStopFlg) {
mAGBMapSendStatus = 0;
}
@@ -1452,7 +1521,12 @@ void dMap_c::mapAGBSendMapMain(f32 param_1, f32 param_2) {
case 0:
if (!mDoGac_SendEndCheck(2)) {
if (mPlayerStayAgbMapTypeNow == 1 || mPlayerStayAgbMapTypeNow == 3) {
if (!strcmp(mAgbSendNowStageName, dComIfGp_getStartStageName()) && mAgbSendNowRoomNo == mNowRoomInfoP->getRoomNo() && mAgbSendNowDspFloorNo == mNowRoomInfoP->field_0xc && mAgbSendNowAgbMapType == mPlayerStayAgbMapTypeNow) {
if (
!strcmp(mAgbSendNowStageName, dComIfGp_getStartStageName()) &&
mAgbSendNowRoomNo == mNowRoomInfoP->getRoomNo() &&
mAgbSendNowDspFloorNo == mNowRoomInfoP->field_0xc &&
mAgbSendNowAgbMapType == mPlayerStayAgbMapTypeNow
) {
mAGBMapSendStatus = 3;
} else {
mAGBMapSendStatus = 0;
@@ -1477,8 +1551,8 @@ void dMap_c::mapAGBSendMapMain(f32 param_1, f32 param_2) {
}
break;
case 2:
JUT_ASSERT(5051, mNowRoomInfoP != 0);
JUT_ASSERT(5052, (mNowRoomInfoP->getEnableFlg() & DSP_ENABLE_BOTH_SIZE) == DSP_ENABLE_BOTH_SIZE);
JUT_ASSERT(VERSION_SELECT(5274, 5051, 5051, 5051), mNowRoomInfoP != NULL);
JUT_ASSERT(VERSION_SELECT(5275, 5052, 5052, 5052), (mNowRoomInfoP->getEnableFlg() & DSP_ENABLE_BOTH_SIZE) == DSP_ENABLE_BOTH_SIZE);
if (mDoGac_SendStatusCheck(2)) {
memcpy(mAgbSendNowStageName, dComIfGp_getStartStageName(), sizeof(mAgbSendNowStageName));
mAgbSendNowRoomNo = mNowRoomInfoP->getRoomNo();
@@ -1492,7 +1566,12 @@ void dMap_c::mapAGBSendMapMain(f32 param_1, f32 param_2) {
}
break;
case 3:
if (mDoGac_SendEndCheck(2)) {
#if VERSION == VERSION_DEMO
if (mDoGaC_getDataStatus(2) == 0 || mDoGaC_getDataStatus(2) == 4)
#else
if (mDoGac_SendEndCheck(2))
#endif
{
mAGBMapSendStatus = 4;
memset(mAgbSendNowStageName, 0, sizeof(mAgbSendNowStageName));
mAgbSendNowRoomNo = -1;
@@ -1619,11 +1698,18 @@ void dMap_c::mapMoveAll(f32 param_1, f32 param_2, int param_3, f32 param_4) {
}
calcScissor();
if (mNowRoomInfoP->mStageMapInfoP) {
mCompAlpha = (mNowRoomInfoP->mStageMapInfoP->field_0x34 * mAlpha) / 256;
mCompAlpha = ((u8)mNowRoomInfoP->mStageMapInfoP->field_0x34 * mAlpha) >> 8;
} else {
mCompAlpha = 0;
}
setCollectPoint(20, 9, dComIfGs_getRestartRoomPos().x, dComIfGs_getRestartRoomPos().y, dComIfGs_getRestartRoomPos().z, dComIfGs_getRestartRoomNo(), dComIfGs_getRestartRoomAngleY(), 0, 0, 0, 0);
#if VERSION > VERSION_DEMO
cXyz& restartPos = dComIfGs_getRestartRoomPos();
setCollectPoint(
20, 9,
restartPos.x, restartPos.y, restartPos.z,
dComIfGs_getRestartRoomNo(), dComIfGs_getRestartRoomAngleY(), 0, 0, 0, 0
);
#endif
}
}
}
@@ -1634,7 +1720,7 @@ void dMap_c::mapDrawAll(f32 param_1, f32 param_2, int param_3, f32 param_4) {
if (mMapDispMode == 1) {
mapDrawEnlargementSize(mEnlargementSizeCenterX, mEnlargementSizeCenterZ, mEnlargementSizeScaleX, mEnlargementSizeScaleZ, mCompAlpha);
} else {
mapDrawRealSize(param_1,param_2,mCompAlpha);
mapDrawRealSize(param_1, param_2, mCompAlpha);
}
mapDrawFrame(mCompAlpha);
}
@@ -1662,8 +1748,8 @@ void dMap_c::draw(f32 param_1, f32 param_2, int param_3, f32 param_4) {
/* 8004A82C-8004A97C .text point2Grid__6dMap_cFffPScPSc */
void dMap_c::point2Grid(f32 param_1, f32 param_2, s8* i_gridX_p, s8* i_gridY_p) {
JUT_ASSERT(5751, i_gridX_p != NULL);
JUT_ASSERT(5752, i_gridY_p != NULL);
JUT_ASSERT(VERSION_SELECT(6130, 5751, 5751, 5751), i_gridX_p != NULL);
JUT_ASSERT(VERSION_SELECT(6131, 5752, 5752, 5752), i_gridY_p != NULL);
s8 x = floor(param_1 / 100000.0f + 0.5f);
if (x < -3) {
x = -3;
@@ -1684,10 +1770,10 @@ void dMap_c::point2Grid(f32 param_1, f32 param_2, s8* i_gridX_p, s8* i_gridY_p)
/* 8004A97C-8004ABB0 .text point2GridAndLocal__6dMap_cFffPScPScPsPs */
void dMap_c::point2GridAndLocal(f32 param_1, f32 param_2, s8* i_gridX_p, s8* i_gridY_p, s16* i_localX_p, s16* i_localY_p) {
JUT_ASSERT(5803, i_gridX_p != NULL);
JUT_ASSERT(5804, i_gridY_p != NULL);
JUT_ASSERT(5805, i_localX_p != NULL);
JUT_ASSERT(5806, i_localY_p != NULL);
JUT_ASSERT(VERSION_SELECT(6182, 5803, 5803, 5803), i_gridX_p != NULL);
JUT_ASSERT(VERSION_SELECT(6183, 5804, 5804, 5804), i_gridY_p != NULL);
JUT_ASSERT(VERSION_SELECT(6184, 5805, 5805, 5805), i_localX_p != NULL);
JUT_ASSERT(VERSION_SELECT(6185, 5806, 5806, 5806), i_localY_p != NULL);
s8 x = floor(param_1 / 100000.0f + 0.5f);
s8 y = floor(param_2 / 100000.0f + 0.5f);
if (x < -3) {
@@ -1739,12 +1825,12 @@ void dMap_c::setFmapChkDtPrm() {
/* 8004AD00-8004ADC8 .text getFmapChkPntDtPnt__6dMap_cFi */
FmapChkPnt* dMap_c::getFmapChkPntDtPnt(int i_param) {
JUT_ASSERT(6075, mFmapChkPntData_p != 0);
JUT_ASSERT(VERSION_SELECT(6454, 6075, 6075, 6075), mFmapChkPntData_p != NULL);
FmapChkPnt* ret = NULL;
if (i_param >= 0 && i_param <= mFmapChkPntValue) {
ret = &mFmapChkPntData_p[i_param];
} else {
JUT_ASSERT(6082, 0)
JUT_ASSERT(VERSION_SELECT(6461, 6082, 6082, 6082), 0)
};
return ret;
}
@@ -1795,7 +1881,7 @@ void dMap_c::setCollectPoint(u8 param_1, u8 param_2, f32 param_3, f32 param_4, f
}
int typeNo = param_1 - 1;
#if VERSION > VERSION_DEMO
JUT_ASSERT(6441, (typeNo >= 0) && (typeNo < AGB_POINT_TYPE_NUM));
JUT_ASSERT(VERSION_SELECT(6441, 6441, 6441, 6441), (typeNo >= 0) && (typeNo < AGB_POINT_TYPE_NUM));
#endif
s8 var1 = mCollectPointDataLinkList[typeNo];
mCollectPointDataLinkList[typeNo] = mCollectPointDataCnt;
@@ -2208,7 +2294,7 @@ void dMap_c::getTypeAgbGcFromTypeAcs(u8 i_typeAcs, u8* param_2, u8* param_3) {
6, 4,
};
JUT_ASSERT(7814, (i_typeAcs >= 0) && (i_typeAcs < ACS_MAP_POINT_TYPE_MAX));
JUT_ASSERT(VERSION_SELECT(8287, 7814, 7814, 7814), (i_typeAcs >= 0) && (i_typeAcs < ACS_MAP_POINT_TYPE_MAX));
if (param_2) {
*param_2 = statusMapNo2TypeNoTbl[i_typeAcs][0];
}
@@ -2219,7 +2305,6 @@ void dMap_c::getTypeAgbGcFromTypeAcs(u8 i_typeAcs, u8* param_2, u8* param_3) {
/* 8004CFA4-8004D0A4 .text drawPointSingle__6dMap_cFUcfffScsUcUcUc */
void dMap_c::drawPointSingle(u8 param_1, f32 param_2, f32 param_3, f32 param_4, s8 param_5, s16 param_6, u8 param_7, u8 param_8, u8 param_9) {
/* Nonmatching */
static const s8 agbTbl[] = {
-1, -1, 2, -1,
6, -1, 0, 0,
@@ -2229,18 +2314,27 @@ void dMap_c::drawPointSingle(u8 param_1, f32 param_2, f32 param_3, f32 param_4,
0,
};
#if VERSION > VERSION_DEMO
if (dComIfGp_roomControl_getStayNo() < 0 || !mNowRoomInfoP) {
return;
}
#endif
int tmp = param_1 - 1;
if (tmp < 0 || tmp >= sizeof(agbTbl)) {
JUT_ASSERT(7901, 0);
} else if (agbTbl[tmp] < 0) {
JUT_ASSERT(7908, 0);
} else {
setCollectPoint(param_1, agbTbl[tmp], param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, 0);
#if VERSION > VERSION_DEMO
JUT_ASSERT(VERSION_SELECT(7901, 7901, 7901, 7901), 0);
#endif
return;
}
int r4 = agbTbl[tmp];
if (r4 < 0) {
#if VERSION > VERSION_DEMO
JUT_ASSERT(VERSION_SELECT(7908, 7908, 7908, 7908), 0);
#endif
return;
}
setCollectPoint(param_1, r4, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9, 0);
}
/* 8004D0A4-8004D260 .text drawActorPointMiniMap__6dMap_cFP10fopAc_ac_c */
@@ -2274,7 +2368,7 @@ void dMap_c::mapSetPointAll() {
for (int i = 0; i < sizeof(agbSetList); i++) {
s8 typeNo = agbSetList[i] - 1;
#if VERSION > VERSION_DEMO
JUT_ASSERT(8427, (typeNo >= 0) && (typeNo < AGB_POINT_TYPE_NUM));
JUT_ASSERT(VERSION_SELECT(8427, 8427, 8427, 8427), (typeNo >= 0) && (typeNo < AGB_POINT_TYPE_NUM));
#endif
for (s8 j = mCollectPointDataLinkList[typeNo]; j >= 0; j = mCollectPointData[j].field_0x16) {
drawPointMain(
@@ -2429,7 +2523,6 @@ void dMap_2DMtMapSpcl_c::draw() {
/* 8004E068-8004E1CC .text setImage__18dMap_2DAGBScrDsp_cFP7ResTIMGP8map_dt_c */
void dMap_2DAGBScrDsp_c::setImage(ResTIMG* i_img, map_dt_c* param_2) {
/* Nonmatching */
field_0x4 = param_2;
mImg = i_img;
if (!field_0x4 || !mImg) {
@@ -2437,8 +2530,10 @@ void dMap_2DAGBScrDsp_c::setImage(ResTIMG* i_img, map_dt_c* param_2) {
return;
}
GXInitTlutObj(&field_0x2c, (u8*)mImg + mImg->paletteOffset, GXTlutFmt(mImg->colorFormat), mImg->numColors);
GXInitTexObjCI(&field_0xc, (u8*)mImg + mImg->imageOffset, mImg->width, mImg->height, GXCITexFmt(mImg->format), GXTexWrapMode(mImg->wrapS), GXTexWrapMode(mImg->wrapT), mImg->mipmapCount > 1, 0);
GXInitTexObjLOD(&field_0xc, GX_NEAR, GX_NEAR, mImg->minLOD * 0.125f, mImg->maxLOD * 0.125f, mImg->LODBias * 0.01f, mImg->biasClamp, mImg->doEdgeLOD, GXAnisotropy(mImg->maxAnisotropy));
GXInitTexObjCI(&field_0xc, (u8*)mImg + mImg->imageOffset, mImg->width, mImg->height, GXCITexFmt(mImg->format),
GXTexWrapMode(mImg->wrapS), GXTexWrapMode(mImg->wrapT), mImg->mipmapCount > 1 ? GX_TRUE : GX_FALSE, 0);
GXInitTexObjLOD(&field_0xc, GX_NEAR, GX_NEAR, mImg->minLOD * 0.125f, mImg->maxLOD * 0.125f, mImg->LODBias * 0.01f,
mImg->biasClamp, mImg->doEdgeLOD, GXAnisotropy(mImg->maxAnisotropy));
field_0x38 = 0x3c + mDoLib_cnvind32(field_0x4->field_0xc) + mDoLib_cnvind32(field_0x4->field_0x38);
}
@@ -2453,7 +2548,7 @@ void dMap_2DAGBScrDsp_c::init(map_dt_c* param_1, ResTIMG* param_2, f32 param_3,
field_0x42 = param_8;
mScaleX = param_9;
mScaleY = param_10;
field_0x54 = param_11;
mAlpha = param_11;
}
/* 8004E264-8004E384 .text getScrnPrm__18dMap_2DAGBScrDsp_cFffifPiPfPf */
@@ -2725,12 +2820,12 @@ void dMap_Dmap_c::setFloorTextureOne(u8 param_1) {
dmap_dmap_tlut_s* r23 = &field_0x20[i][r29];
memset(r23, 0, sizeof(dmap_dmap_tlut_s));
GXInitTlutObj(&field_0x4b0[i][r29], r23, GXTlutFmt(imageP->colorFormat), imageP->numColors);
JUT_ASSERT(10393, imageP->numColors == (16))
JUT_ASSERT(VERSION_SELECT(10393, 10393, 10393, 10393), imageP->numColors == (16))
}
GXTexObj* texObj = &field_0x370[r29];
GXInitTexObjCI(texObj, (u8*)imageP + imageP->imageOffset, imageP->width, imageP->height, GXCITexFmt(imageP->format), GXTexWrapMode(imageP->wrapS), GXTexWrapMode(imageP->wrapT), imageP->mipmapCount > 1, r29);
GXInitTexObjLOD(texObj, GXTexFilter(imageP->minFilter), GXTexFilter(imageP->magFilter), imageP->minLOD * 0.125f, imageP->maxLOD * 0.125f, imageP->LODBias * 0.01f, imageP->biasClamp, imageP->doEdgeLOD, GXAnisotropy(imageP->maxAnisotropy));
JUT_ASSERT(10419, (mNowTlutDblBufNo == 0) || (mNowTlutDblBufNo == 1));
JUT_ASSERT(VERSION_SELECT(10419, 10419, 10419, 10419), (mNowTlutDblBufNo == 0) || (mNowTlutDblBufNo == 1));
for (int i = 0; i < 2; i++) {
setTlut(&field_0x20[i][r29], param_1, field_0x2b8, field_0x2b9, field_0x2ba);
}
@@ -2757,11 +2852,11 @@ void dMap_Dmap_c::init(s16 param_1, s16 param_2, s16 param_3, s16 param_4, s16 p
field_0x2ba = 0;
field_0x36e = 0;
mImageP = (ResTIMG*)JKRGetResource('TIMG', "dtmap_mask.bti", mpArc);
JUT_ASSERT(10504, mImageP != NULL);
JUT_ASSERT(VERSION_SELECT(10504, 10504, 10504, 10504), mImageP != NULL);
mImageSeetP = (ResTIMG*)JKRGetResource('TIMG', "menu_note_02_2.bti", mpArc);
JUT_ASSERT(10511, mImageSeetP !=NULL);
JUT_ASSERT(VERSION_SELECT(10511, 10511, 10511, 10511), mImageSeetP !=NULL);
mImageGridP = (ResTIMG*)JKRGetResource('TIMG', "grid_32.bti", mpArc);
JUT_ASSERT(10519, mImageGridP !=NULL);
JUT_ASSERT(VERSION_SELECT(10519, 10519, 10519, 10519), mImageGridP !=NULL);
field_0x2b0 = (ResTIMG*)dComIfG_getStageRes("Stage", "dmap_back.bti");
GXInitTexObj(&field_0x5c0, (u8*)mImageP + mImageP->imageOffset, mImageP->width, mImageP->height, GXTexFmt(mImageP->format), GXTexWrapMode(mImageP->wrapS), GXTexWrapMode(mImageP->wrapT), mImageP->mipmapCount > 1);
GXInitTexObjLOD(&field_0x5c0, GXTexFilter(mImageP->minFilter), GXTexFilter(mImageP->magFilter), mImageP->minLOD * 0.125f, mImageP->maxLOD * 0.125f, mImageP->LODBias * 0.01f, mImageP->biasClamp, mImageP->doEdgeLOD, GXAnisotropy(mImageP->maxAnisotropy));
@@ -2787,7 +2882,7 @@ void dMap_Dmap_c::draw() {
static const GXColor wallPaperColorBlack = {255, 255, 255, 255};
static const GXColor edgeColor = {255, 255, 255, 255};
JUT_ASSERT(10663, mMaskHeight != 0.0f);
JUT_ASSERT(VERSION_SELECT(10663, 10663, 10663, 10663), mMaskHeight != 0.0f);
f32 f27 = field_0x368 / 64.0f;
f32 f26 = field_0x36a / 64.0f;
f32 f23 = 1.0f / GXGetTexObjWidth(&field_0x5e0);