mirror of
https://github.com/zeldaret/tww.git
synced 2026-06-24 17:03:16 -04:00
d_map work
This commit is contained in:
@@ -981,6 +981,14 @@ inline void dComIfGs_offCompleteCollectMap(int i_no) {
|
||||
g_dComIfG_gameInfo.save.getPlayer().getMap().offCompleteMap(i_no - 1);
|
||||
}
|
||||
|
||||
inline void dComIfGs_onSaveArriveGridForAgb(int i_no) {
|
||||
g_dComIfG_gameInfo.save.getPlayer().getMap().onSaveArriveGridForAgb(i_no);
|
||||
}
|
||||
|
||||
inline BOOL dComIfGs_isSaveArriveGridForAgb(int i_no) {
|
||||
g_dComIfG_gameInfo.save.getPlayer().getMap().isSaveArriveGridForAgb(i_no);
|
||||
}
|
||||
|
||||
inline u8 dComIfGs_getArrowNum() {
|
||||
return g_dComIfG_gameInfo.save.getPlayer().getItemRecord().getArrowNum();
|
||||
}
|
||||
|
||||
+51
-12
@@ -2,6 +2,7 @@
|
||||
#define D_MAP_H
|
||||
|
||||
#include "d/d_drawlist.h"
|
||||
#include "JSystem/JUtility/JUTAssert.h"
|
||||
|
||||
struct ResTIMG;
|
||||
struct dmap_dmap_tlut_s;
|
||||
@@ -63,22 +64,55 @@ class dMap_RoomInfo_c {
|
||||
public:
|
||||
dMap_RoomInfo_c();
|
||||
~dMap_RoomInfo_c();
|
||||
void getRoomDspFloorNo(u8, int);
|
||||
u32 getRoomDspFloorNo(u8, int);
|
||||
void init(dMap_RoomInfo_c*, int);
|
||||
void getRoomImage(int, u8, int, ResTIMG**, ResTIMG**, map_dt_c**, stage_map_info_class**, u8*);
|
||||
void makeRoomDspFloorNoTbl(int);
|
||||
void roomEntryRoom(int, u8, int, u8, dMap_RoomInfo_c*, s16, s16, f32);
|
||||
u32 roomEntryRoom(int, u8, int, u8, dMap_RoomInfo_c*, s16, s16, f32);
|
||||
void Changeimage(u8, u8, int, s16, s16, f32);
|
||||
void deleteRoom();
|
||||
BOOL deleteRoom();
|
||||
void enlagementSizeTextureCordCalc(f32*, f32*, f32*, f32*, f32, f32, f32, f32, f32, f32);
|
||||
void roomDrawRoomEnlargementSize(int, int, int, int, f32, f32, f32, f32, u8);
|
||||
void roomDrawRoomRealSize(int, int, int, int, f32, f32, f32, f32, f32, f32, u8);
|
||||
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
inline void clrUseRoom() {}
|
||||
inline void setUseRoom() {}
|
||||
inline void checkUseRoom() {}
|
||||
inline void getEnableFlg() {}
|
||||
inline void getStageMapInfoPE() {}
|
||||
inline void getStageMapInfoCmPDot() {}
|
||||
inline void getStageMapInfoMap0_X0() {}
|
||||
inline void getStageMapInfoMap0_X1() {}
|
||||
inline void getStageMapInfoMap0_Z0() {}
|
||||
inline void getStageMapInfoMap0_Z1() {}
|
||||
inline void getStageMapInfoMap0_XC() {}
|
||||
inline void getStageMapInfoMap0_ZC() {}
|
||||
inline void getStageMapInfoMap1_X0() {}
|
||||
inline void getStageMapInfoMap1_X1() {}
|
||||
inline void getStageMapInfoMap1_Z0() {}
|
||||
inline void getStageMapInfoMap1_Z1() {}
|
||||
inline void getStageMapInfoMap1_ZC() {}
|
||||
inline void getStageMapInfoMap1_XC() {}
|
||||
inline void getStageMapInfoAlpha() {}
|
||||
inline void getMapDtP() {}
|
||||
inline void getNowDspFloorNo() {}
|
||||
inline void getMapDtSize() {}
|
||||
inline void getMap0ScaleX() {}
|
||||
inline void getMap0ScaleZ() {}
|
||||
inline void getMap1ScaleX() {}
|
||||
inline void getMap1ScaleZ() {}
|
||||
inline void getMap1Width() {}
|
||||
inline void getMap1Height() {}
|
||||
|
||||
inline u8 getRoomNo() { return m_no; }
|
||||
inline stage_map_info_class* getStageMapInfoP() { JUT_ASSERT(0x467, mStageMapInfoP != NULL); return mStageMapInfoP; }
|
||||
inline dMap_RoomInfo_c* getNextRoomInfoP() { return m_next; }
|
||||
|
||||
/* 0x00 */ u8 m_exist;
|
||||
/* 0x01 */ u8 field_0x1;
|
||||
/* 0x02 */ u8 field_0x2[10];
|
||||
/* 0x0C */ u8 field_0xc;
|
||||
/* 0x10 */ int field_0x10;
|
||||
/* 0x10 */ int m_no;
|
||||
/* 0x14 */ int field_0x14;
|
||||
/* 0x18 */ f32 field_0x18;
|
||||
/* 0x1C */ f32 field_0x1c;
|
||||
@@ -87,22 +121,27 @@ public:
|
||||
/* 0x28 */ f32 field_0x28;
|
||||
/* 0x2C */ f32 field_0x2c;
|
||||
/* 0x30 */ dMap_2DMtMapSpcl_c field_0x30;
|
||||
/* 0x44 */ dMap_2DMtMapSpcl_tex_c field_0x44[1];
|
||||
/* 0x44 */ dMap_2DMtMapSpcl_tex_c field_0x44;
|
||||
/* 0x8C */ dMap_2DAGBScrDsp_c field_0x8c;
|
||||
/* 0xE4 */ dMap_RoomInfo_c* field_0xe4;
|
||||
/* 0xE8 */ void* field_0xe8;
|
||||
/* 0xC4 */ u32 field_0xc4[0x08];
|
||||
/* 0xE4 */ dMap_RoomInfo_c* m_next;
|
||||
/* 0xE8 */ stage_map_info_class* mStageMapInfoP;
|
||||
};
|
||||
|
||||
class dMap_RoomInfoCtrl_c {
|
||||
public:
|
||||
void roomExistenceCheck(int, dMap_RoomInfo_c**);
|
||||
void getNextRoomP(dMap_RoomInfo_c*);
|
||||
void ctrlEntryRoom(int, u8, int, u8, s16, s16, f32);
|
||||
void deleteRoom(int);
|
||||
bool roomExistenceCheck(int, dMap_RoomInfo_c**);
|
||||
dMap_RoomInfo_c* getNextRoomP(dMap_RoomInfo_c*);
|
||||
dMap_RoomInfo_c* ctrlEntryRoom(int, u8, int, u8, s16, s16, f32);
|
||||
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);
|
||||
void init();
|
||||
void checkFloorMoveImageChangeRoom(u8, u8, int, s16, s16, f32);
|
||||
|
||||
public:
|
||||
/* 0x00 */ s32 m_num;
|
||||
/* 0x04 */ dMap_RoomInfo_c *m_info;
|
||||
};
|
||||
|
||||
class dMap_2DSQ_c : public dDlst_base_c {
|
||||
|
||||
+25
-3
@@ -135,7 +135,10 @@ public:
|
||||
/* 0x1C */ f32 field_0x1C;
|
||||
/* 0x20 */ f32 field_0x20;
|
||||
/* 0x24 */ f32 field_0x24;
|
||||
/* 0x28 */ u8 field_0x28[0x35 - 0x28];
|
||||
/* 0x28 */ u32 field_0x28;
|
||||
/* 0x2C */ u32 field_0x2c;
|
||||
/* 0x30 */ f32 field_0x30;
|
||||
/* 0x34 */ u8 field_0x34;
|
||||
/* 0x35 */ u8 field_0x35;
|
||||
/* 0x36 */ u8 mOceanXZ;
|
||||
/* 0x37 */ u8 field_0x37[0x38 - 0x37];
|
||||
@@ -276,7 +279,16 @@ struct dStage_dPnt_c {
|
||||
/* 0x4 */ cXyz m_position;
|
||||
}; // Size: 0x10
|
||||
|
||||
struct dStage_FloorInfo_c {};
|
||||
struct dStage_FloorInfo_entry_c {
|
||||
/* 0x00 */ int field_0x00;
|
||||
/* 0x04 */ u8 floorNo;
|
||||
/* 0x05 */ s8 field_0x05[14];
|
||||
}; // Size: 0x14
|
||||
|
||||
struct dStage_FloorInfo_c {
|
||||
/* 0x00 */ int num;
|
||||
/* 0x04 */ dStage_FloorInfo_entry_c* entry;
|
||||
};
|
||||
|
||||
struct dStage_Lbnk_c {
|
||||
/* 0x00 */ u32 m_num;
|
||||
@@ -293,7 +305,17 @@ struct dStage_MemoryConfig_c {
|
||||
/* 0x4 */ dStage_MemoryConfig_data* m_entries;
|
||||
};
|
||||
|
||||
struct dStage_DMap_c {};
|
||||
struct dStage_DMap_entry_c {
|
||||
/* 0x00 */ int field_0x00;
|
||||
/* 0x04 */ int field_0x04;
|
||||
/* 0x08 */ int field_0x08;
|
||||
/* 0x0C */ float offsetY;
|
||||
};
|
||||
|
||||
struct dStage_DMap_c {
|
||||
/* 0x00 */ int num;
|
||||
/* 0x04 */ dStage_DMap_entry_c* entry;
|
||||
};
|
||||
|
||||
struct dStage_Event_dt_c {
|
||||
/* 0x00 */ u8 field_0x0;
|
||||
|
||||
+2
-1
@@ -492,7 +492,8 @@ u32 dLib_getIplDaysFromSaveTime() {
|
||||
return 0;
|
||||
|
||||
OSTime curTime = OSGetTime();
|
||||
return (curTime - dateIpl);
|
||||
u32 seconds = OSTicksToSeconds(curTime - dateIpl);
|
||||
return seconds;
|
||||
}
|
||||
|
||||
/* 80058834-80058910 .text dLib_get_QuatFromTriangle__FP4cXyzP4cXyzP4cXyz */
|
||||
|
||||
+244
-30
@@ -4,46 +4,140 @@
|
||||
//
|
||||
|
||||
#include "d/d_map.h"
|
||||
#include "d/d_com_inf_game.h"
|
||||
#include "d/d_stage.h"
|
||||
|
||||
enum {
|
||||
Floor_B5F = 123,
|
||||
Floor_B4F = 124,
|
||||
Floor_B3F = 125,
|
||||
Floor_B2F = 126,
|
||||
Floor_B1F = 127,
|
||||
Floor_1F = 128,
|
||||
Floor_2F = 129,
|
||||
Floor_3F = 130,
|
||||
Floor_4F = 131,
|
||||
Floor_5F = 132,
|
||||
|
||||
Floor_Base = Floor_B5F,
|
||||
};
|
||||
|
||||
#define Floor_Num (Floor_5F - Floor_B5F + 1)
|
||||
#define Floor_Valid(no) (no >= 0) && (no < Floor_Num)
|
||||
|
||||
static inline int gridPos2GridNo(int i_gridX, int i_gridY) {
|
||||
JUT_ASSERT(0x4a4, (i_gridX >= -3) && (i_gridX <= 3) && (i_gridY >= -3) && (i_gridY <= 3));
|
||||
return i_gridX + 3 + (i_gridY + 3) * 7;
|
||||
}
|
||||
|
||||
/* 800455AC-80045660 .text onSaveArriveGridForAgbUseGridPos__Fii */
|
||||
void onSaveArriveGridForAgbUseGridPos(int, int) {
|
||||
/* Nonmatching */
|
||||
void onSaveArriveGridForAgbUseGridPos(int i_gridX, int i_gridY) {
|
||||
dComIfGs_onSaveArriveGridForAgb(gridPos2GridNo(i_gridX, i_gridY));
|
||||
}
|
||||
|
||||
/* 80045660-80045714 .text isSaveArriveGridForAgbUseGridPos__Fii */
|
||||
void isSaveArriveGridForAgbUseGridPos(int, int) {
|
||||
/* Nonmatching */
|
||||
BOOL isSaveArriveGridForAgbUseGridPos(int i_gridX, int i_gridY) {
|
||||
dComIfGs_isSaveArriveGridForAgb(gridPos2GridNo(i_gridX, i_gridY));
|
||||
}
|
||||
|
||||
/* 80045714-80045734 .text IsFloorNo__Fi */
|
||||
void IsFloorNo(int) {
|
||||
/* Nonmatching */
|
||||
bool IsFloorNo(int i_no) {
|
||||
return i_no >= Floor_B5F && i_no <= Floor_5F;
|
||||
}
|
||||
|
||||
/* 80045734-800457B8 .text getFloorInfo_WithRoom__Fi */
|
||||
void getFloorInfo_WithRoom(int) {
|
||||
/* Nonmatching */
|
||||
dStage_FloorInfo_c* getFloorInfo_WithRoom(int i_roomNo) {
|
||||
dStage_FloorInfo_c* floor = NULL;
|
||||
if (i_roomNo >= 0) {
|
||||
dStage_roomDt_c* room = dComIfGp_roomControl_getStatusRoomDt(i_roomNo);
|
||||
if (room != NULL)
|
||||
floor = room->getFloorInfo();
|
||||
}
|
||||
if (floor == NULL)
|
||||
floor = dComIfGp_getStage().getFloorInfo();
|
||||
return floor;
|
||||
}
|
||||
|
||||
/* 800457B8-800458E0 .text mapOffsetY__Fv */
|
||||
void mapOffsetY() {
|
||||
/* Nonmatching */
|
||||
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_entry_c* entry = pinf->entry;
|
||||
JUT_ASSERT(0x587, pinf->num == 1);
|
||||
for (int i = 0; i < pinf->num; i++, entry++)
|
||||
ret = entry->offsetY;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 800458E0-800459E4 .text dMap_GetTopBottomFloorNo__FP11dStage_dt_cPUcPUc */
|
||||
void dMap_GetTopBottomFloorNo(dStage_dt_c*, u8*, u8*) {
|
||||
/* Nonmatching */
|
||||
BOOL dMap_GetTopBottomFloorNo(dStage_dt_c* stag, u8* bottom_p, u8* top_p) {
|
||||
if (stag == NULL)
|
||||
return FALSE;
|
||||
|
||||
u8 floorNo;
|
||||
u8 bottom;
|
||||
u8 top;
|
||||
|
||||
dStage_FloorInfo_c* floor = stag->getFloorInfo();
|
||||
dStage_FloorInfo_entry_c* entry;
|
||||
|
||||
if (floor != NULL && floor->num >= 1) {
|
||||
entry = floor->entry;
|
||||
bottom = Floor_B5F;
|
||||
top = Floor_5F;
|
||||
for (int i = 0; i < floor->num; i++, entry++) {
|
||||
for (int j = 0; j < ARRAY_SIZE(entry->field_0x05); j++) {
|
||||
if (entry->field_0x05[j] != -1) {
|
||||
floorNo = entry->floorNo;
|
||||
if (floorNo > bottom)
|
||||
bottom = floorNo;
|
||||
if (floorNo < top)
|
||||
top = floorNo;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
bottom = Floor_1F;
|
||||
top = Floor_1F;
|
||||
}
|
||||
|
||||
if (bottom_p != NULL)
|
||||
*bottom_p = bottom;
|
||||
if (top_p != NULL)
|
||||
*top_p = top;
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 800459E4-80045A98 .text dMap_GetFloorInfoDtP__FP18dStage_FloorInfo_cf */
|
||||
void dMap_GetFloorInfoDtP(dStage_FloorInfo_c*, f32) {
|
||||
void dMap_GetFloorInfoDtP(dStage_FloorInfo_c* floor, f32 ret) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
/* 80045A98-80045AEC .text dMap_GetFloorInfoDtPFromFloorNo__FP18dStage_FloorInfo_cUc */
|
||||
void dMap_GetFloorInfoDtPFromFloorNo(dStage_FloorInfo_c*, u8) {
|
||||
dStage_FloorInfo_entry_c* dMap_GetFloorInfoDtPFromFloorNo(dStage_FloorInfo_c* floor, u8 i_floorNo) {
|
||||
/* Nonmatching */
|
||||
dStage_FloorInfo_entry_c* entry;
|
||||
BOOL valid = FALSE;
|
||||
|
||||
if (floor != NULL) {
|
||||
entry = floor->entry;
|
||||
for (int i = 0; i < floor->num; i++, entry++) {
|
||||
if (entry->floorNo == i_floorNo) {
|
||||
valid = TRUE;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!valid)
|
||||
entry = NULL;
|
||||
return entry;
|
||||
}
|
||||
|
||||
/* 80045AEC-80045C24 .text dMap_GetFloorNoForDmap__FP11dStage_dt_cif */
|
||||
@@ -62,13 +156,55 @@ void dMap_GetFloorNo(dStage_dt_c*, f32) {
|
||||
}
|
||||
|
||||
/* 80045C90-80045E54 .text getRoomDspFloorNo__15dMap_RoomInfo_cFUci */
|
||||
void dMap_RoomInfo_c::getRoomDspFloorNo(u8, int) {
|
||||
u32 dMap_RoomInfo_c::getRoomDspFloorNo(u8 i_no, BOOL search) {
|
||||
/* Nonmatching */
|
||||
s32 no = i_no - Floor_Base;
|
||||
JUT_ASSERT(0x702, Floor_Valid(no));
|
||||
|
||||
s32 dspFloorNo = field_0x2[no];
|
||||
if (search) {
|
||||
if (!IsFloorNo(dspFloorNo)) {
|
||||
while (!IsFloorNo(dspFloorNo) && --no >= 0) {
|
||||
JUT_ASSERT(0x70f, Floor_Valid(no));
|
||||
dspFloorNo = field_0x2[no];
|
||||
}
|
||||
}
|
||||
|
||||
if (!IsFloorNo(dspFloorNo)) {
|
||||
while (!IsFloorNo(dspFloorNo) && ++no <= (Floor_Num - 1)) {
|
||||
JUT_ASSERT(0x718, Floor_Valid(no));
|
||||
dspFloorNo = field_0x2[no];
|
||||
}
|
||||
}
|
||||
|
||||
if (!IsFloorNo(dspFloorNo))
|
||||
dspFloorNo = 255;
|
||||
}
|
||||
|
||||
return dspFloorNo;
|
||||
}
|
||||
|
||||
/* 80045E54-80045F40 .text init__15dMap_RoomInfo_cFP15dMap_RoomInfo_ci */
|
||||
void dMap_RoomInfo_c::init(dMap_RoomInfo_c*, int) {
|
||||
void dMap_RoomInfo_c::init(dMap_RoomInfo_c* prev, int p2) {
|
||||
/* Nonmatching */
|
||||
m_exist = 0;
|
||||
field_0x1 = 0;
|
||||
for (int i = 0; i < ARRAY_SIZE(field_0x2); i++)
|
||||
field_0x2[i] = 255;
|
||||
field_0xc = 255;
|
||||
m_no = -1;
|
||||
field_0x14 = p2;
|
||||
field_0x18 = 0.0f;
|
||||
field_0x1c = 0.0f;
|
||||
field_0x20 = 0.0f;
|
||||
field_0x24 = 0.0f;
|
||||
field_0x8c.init(NULL, NULL, 0.0f, 0.0f, 0, 0, 0, 0, 1.0f, 1.0f, 0);
|
||||
field_0x44.field_0x0[0] = 0;
|
||||
field_0x30.init(1, &field_0x44);
|
||||
m_next = NULL;
|
||||
mStageMapInfoP = NULL;
|
||||
if (prev != NULL)
|
||||
prev->m_next = this;
|
||||
}
|
||||
|
||||
/* 80045F40-80046314 .text getRoomImage__15dMap_RoomInfo_cFiUciPP7ResTIMGPP7ResTIMGPP8map_dt_cPP20stage_map_info_classPUc */
|
||||
@@ -82,7 +218,7 @@ void dMap_RoomInfo_c::makeRoomDspFloorNoTbl(int) {
|
||||
}
|
||||
|
||||
/* 80046470-80046A58 .text roomEntryRoom__15dMap_RoomInfo_cFiUciUcP15dMap_RoomInfo_cssf */
|
||||
void dMap_RoomInfo_c::roomEntryRoom(int, u8, int, u8, dMap_RoomInfo_c*, s16, s16, f32) {
|
||||
u32 dMap_RoomInfo_c::roomEntryRoom(int, u8, int, u8, dMap_RoomInfo_c*, s16, s16, f32) {
|
||||
/* Nonmatching */
|
||||
}
|
||||
|
||||
@@ -92,8 +228,25 @@ void dMap_RoomInfo_c::Changeimage(u8, u8, int, s16, s16, f32) {
|
||||
}
|
||||
|
||||
/* 80046F08-80046FE0 .text deleteRoom__15dMap_RoomInfo_cFv */
|
||||
void dMap_RoomInfo_c::deleteRoom() {
|
||||
/* Nonmatching */
|
||||
BOOL dMap_RoomInfo_c::deleteRoom() {
|
||||
m_no = -1;
|
||||
m_exist = 0;
|
||||
mStageMapInfoP = NULL;
|
||||
field_0x1 = 0;
|
||||
for (int i = 0; i < ARRAY_SIZE(field_0x2); i++)
|
||||
field_0x2[i] = 255;
|
||||
field_0xc = 255;
|
||||
m_no = -1;
|
||||
field_0x18 = 0.0f;
|
||||
field_0x1c = 0.0f;
|
||||
field_0x20 = 0.0f;
|
||||
field_0x24 = 0.0f;
|
||||
field_0x28 = 0.0f;
|
||||
field_0x2c = 0.0f;
|
||||
field_0x8c.init(NULL, NULL, 0.0f, 0.0f, 0, 0, 0, 0, 1.0f, 1.0f, 0);
|
||||
field_0x44.field_0x0[0] = 0;
|
||||
field_0x30.init(1, &field_0x44);
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
/* 80046FE0-800470CC .text enlagementSizeTextureCordCalc__15dMap_RoomInfo_cFPfPfPfPfffffff */
|
||||
@@ -112,38 +265,99 @@ void dMap_RoomInfo_c::roomDrawRoomRealSize(int, int, int, int, f32, f32, f32, f3
|
||||
}
|
||||
|
||||
/* 80047834-8004793C .text roomExistenceCheck__19dMap_RoomInfoCtrl_cFiPP15dMap_RoomInfo_c */
|
||||
void dMap_RoomInfoCtrl_c::roomExistenceCheck(int, dMap_RoomInfo_c**) {
|
||||
bool dMap_RoomInfoCtrl_c::roomExistenceCheck(int i_no, dMap_RoomInfo_c** roomInfoPP) {
|
||||
/* Nonmatching */
|
||||
JUT_ASSERT(0xb83, roomInfoPP != NULL);
|
||||
bool ret = false;
|
||||
*roomInfoPP = NULL;
|
||||
dMap_RoomInfo_c* roomInfoP = m_info;
|
||||
JUT_ASSERT(0xb8b, roomInfoP != NULL);
|
||||
for (; !ret && roomInfoP != NULL; roomInfoP = roomInfoP->m_next) {
|
||||
if (roomInfoP->m_exist) {
|
||||
if (i_no == roomInfoP->m_no) {
|
||||
*roomInfoPP = roomInfoP;
|
||||
ret = TRUE;
|
||||
}
|
||||
} else {
|
||||
if (*roomInfoPP == NULL)
|
||||
*roomInfoPP = roomInfoP;
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/* 8004793C-80047960 .text getNextRoomP__19dMap_RoomInfoCtrl_cFP15dMap_RoomInfo_c */
|
||||
void dMap_RoomInfoCtrl_c::getNextRoomP(dMap_RoomInfo_c*) {
|
||||
/* Nonmatching */
|
||||
dMap_RoomInfo_c* dMap_RoomInfoCtrl_c::getNextRoomP(dMap_RoomInfo_c* info) {
|
||||
if (info == NULL) {
|
||||
if (m_info != NULL)
|
||||
return m_info;
|
||||
else
|
||||
return NULL;
|
||||
} else {
|
||||
return info->m_next;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80047960-80047A8C .text ctrlEntryRoom__19dMap_RoomInfoCtrl_cFiUciUcssf */
|
||||
void dMap_RoomInfoCtrl_c::ctrlEntryRoom(int, u8, int, u8, s16, s16, f32) {
|
||||
/* Nonmatching */
|
||||
dMap_RoomInfo_c* dMap_RoomInfoCtrl_c::ctrlEntryRoom(int i_no, u8 p1, int p2, u8 p3, s16 p4, s16 p5, f32 p6) {
|
||||
dMap_RoomInfo_c* roomInfoP;
|
||||
if (roomExistenceCheck(i_no, &roomInfoP))
|
||||
return NULL;
|
||||
|
||||
dMap_RoomInfo_c* prev = NULL;
|
||||
roomInfoP = m_info;
|
||||
JUT_ASSERT(0xbfd, roomInfoP != NULL);
|
||||
|
||||
if (roomInfoP == NULL)
|
||||
return NULL;
|
||||
|
||||
for (; roomInfoP != NULL && roomInfoP->m_exist; roomInfoP = roomInfoP->m_next)
|
||||
prev = roomInfoP;
|
||||
|
||||
if (roomInfoP != NULL) {
|
||||
if (roomInfoP->roomEntryRoom(i_no, p1, p2, p3, prev, p4, p5, p6))
|
||||
return roomInfoP;
|
||||
}
|
||||
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* 80047A8C-80047AC4 .text deleteRoom__19dMap_RoomInfoCtrl_cFi */
|
||||
void dMap_RoomInfoCtrl_c::deleteRoom(int) {
|
||||
/* Nonmatching */
|
||||
bool dMap_RoomInfoCtrl_c::deleteRoom(int i_no) {
|
||||
dMap_RoomInfo_c* roomInfoP;
|
||||
if (roomExistenceCheck(i_no, &roomInfoP))
|
||||
roomInfoP->deleteRoom();
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* 80047AC4-80047B8C .text ctrlDrawRoomEnlargementSize__19dMap_RoomInfoCtrl_cFiiiiiffffUc */
|
||||
void dMap_RoomInfoCtrl_c::ctrlDrawRoomEnlargementSize(int, int, int, int, int, f32, f32, f32, f32, u8) {
|
||||
/* Nonmatching */
|
||||
void dMap_RoomInfoCtrl_c::ctrlDrawRoomEnlargementSize(int i_no, int p1, int p2, int p3, int p4, f32 p5, f32 p6, f32 p7, f32 p8, u8 p9) {
|
||||
dMap_RoomInfo_c* roomInfoP = NULL;
|
||||
while ((roomInfoP = getNextRoomP(roomInfoP))) {
|
||||
if (roomInfoP->m_exist && i_no == roomInfoP->m_no)
|
||||
roomInfoP->roomDrawRoomEnlargementSize(p1, p2, p3, p4, p5, p6, p7, p8, p9);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80047B8C-80047C64 .text ctrlDrawRoomRealSize__19dMap_RoomInfoCtrl_cFiiiiiffffffUc */
|
||||
void dMap_RoomInfoCtrl_c::ctrlDrawRoomRealSize(int, int, int, int, int, f32, f32, f32, f32, f32, f32, u8) {
|
||||
/* Nonmatching */
|
||||
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) {
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
/* 80047C64-80047CD0 .text init__19dMap_RoomInfoCtrl_cFv */
|
||||
void dMap_RoomInfoCtrl_c::init() {
|
||||
/* Nonmatching */
|
||||
int no = 0;
|
||||
dMap_RoomInfo_c* info = m_info;
|
||||
dMap_RoomInfo_c* prev = NULL;
|
||||
for (int i = 0; i < m_num; i++, no++, info++) {
|
||||
info->init(prev, no);
|
||||
prev = info;
|
||||
}
|
||||
}
|
||||
|
||||
/* 80047CD0-8004826C .text create__6dMap_cFv */
|
||||
|
||||
Reference in New Issue
Block a user