diff --git a/include/d/actor/d_a_player_link.h b/include/d/actor/d_a_player_link.h index 47fb44708..bb764bdf8 100644 --- a/include/d/actor/d_a_player_link.h +++ b/include/d/actor/d_a_player_link.h @@ -911,7 +911,7 @@ public: void procFanSwing(); void procFanGlide_init(int); void procFanGlide(); - void getDayNightParamData(); + u32 getDayNightParamData(); void setTactModel(); void checkNpcStatus(); void getTactPlayRightArmAnm(s32); diff --git a/include/d/actor/d_a_ship.h b/include/d/actor/d_a_ship.h new file mode 100644 index 000000000..3535baa27 --- /dev/null +++ b/include/d/actor/d_a_ship.h @@ -0,0 +1,117 @@ +#ifndef D_A_SHIP_H +#define D_A_SHIP_H + +#include "f_op/f_op_actor_mng.h" +#include "d/d_particle.h" + +class msg_class; + +class daShip_c : public fopAc_ac_c { +public: + daShip_c(); + + void initStartPos(cXyz const*, s16); + void bodyJointCallBack(int); + void cannonJointCallBack(int); + void craneJointCallBack(); + void headJointCallBack0(); + void headJointCallBack1(int); + void draw(); + void checkForceMessage(); + void setInitMessage(); + void setNextMessage(msg_class*); + void seStart(u32, cXyz*); + void setSailAngle(); + void setControllAngle(s16); + void getMaxWaterY(cXyz*); + void setWaveAngle(s16*, s16*); + void getWaterY(); + void setYPos(); + void checkOutRange(); + void decrementShipSpeed(f32); + void firstDecrementShipSpeed(f32); + void getAimControllAngle(s16); + void setMoveAngle(s16); + void changeDemoEndProc(); + void setCrashData(s16); + void checkNextMode(int); + void setPartOnAnime(u8); + void setPartOffAnime(); + void setPartAnimeInit(u8); + void setSelfMove(int); + void procWait_init(); + void procWait(); + void procReady_init(); + void procReady(); + void procGetOff_init(); + void procGetOff(); + void procPaddleMove_init(); + void procPaddleMove(); + void procSteerMove_init(); + void procSteerMove(); + void procCannonReady_init(); + void procCannonReady(); + void procCannon_init(); + void procCannon(); + void procCraneReady_init(); + void procCraneReady(); + void procCrane_init(); + void procCrane(); + void procCraneUp_init(); + void procCraneUp(); + void procToolDemo_init(); + void procToolDemo(); + void procZevDemo_init(); + void procZevDemo(); + void procTalkReady_init(); + void procTalkReady(); + void procTalk_init(); + void procTalk(); + void procTurn_init(); + void procTurn(); + void procTornadoUp_init(); + void procTornadoUp(); + void procStartModeWarp_init(); + void procStartModeWarp(); + void procTactWarp_init(); + void procTactWarp(); + void procWhirlDown_init(); + void procWhirlDown(); + void procStartModeThrow_init(); + void procStartModeThrow(); + void setEffectData(f32, s16); + void setRoomInfo(); + void incRopeCnt(int, int); + void setRopePos(); + void getAnglePartRate(); + void setTornadoActor(); + void setWhirlActor(); + void setHeadAnm(); + void execute(); + void shipDelete(); + void createHeap(); + void create(); + void getCannonAngleX() const; + void checkForceMove() const; + + /* 0x0290 */ u8 field_0x0290[0x0300 - 0x0290]; + /* 0x0300 */ J3DModel* mpCannonModel; + /* 0x0304 */ J3DModel* mpSalvageArmModel; + /* 0x0308 */ u8 field_0x0308[0x034D - 0x0308]; + /* 0x034D */ u8 field_0x034d; + /* 0x034E */ u8 mShipMode; + /* 0x034F */ u8 field_0x034F[0x0358 - 0x034F]; + /* 0x0358 */ u32 field_0x0358; + /* 0x035C */ int mNextMessageID; + /* 0x0360 */ int mShadowId; + /* 0x0364 */ u8 field_0x0364[0x183C - 0x0364]; + /* 0x183C */ dPa_waveEcallBack field_0x183c; + /* 0x18A0 */ dPa_waveEcallBack field_0x18a0; + /* 0x1904 */ dPa_splashEcallBack field_0x1904; + /* 0x1920 */ dPa_trackEcallBack field_0x1920; + /* 0x1970 */ dPa_rippleEcallBack field_0x1970; + /* 0x1984 */ u8 field_0x1984[0x19C0 - 0x1984]; + /* 0x19C0 */ dPa_rippleEcallBack field_0x19c0; +}; + +#endif /* D_A_SHIP_H */ diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 4af46709e..17e6d878c 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -17,6 +17,7 @@ #include "d/d_vibration.h" #include "d/d_wood.h" #include "d/d_demo.h" +#include "d/d_timer.h" class JKRArchive; class JKRExpHeap; @@ -144,6 +145,7 @@ public: s16 getStartStagePoint() { return mCurStage.getPoint(); } void setStartStageLayer(s8 layer) { mCurStage.setLayer(layer); } void setStartStage(dStage_startStage_c* i_startStage) { mCurStage = *i_startStage; } + dStage_startStage_c* getStartStage() { return &mCurStage; } const char* getNextStageName() { return mNextStage.getName(); } dStage_startStage_c* getNextStartStage() { return &mNextStage; } @@ -164,6 +166,22 @@ public: void setLkDemoAnmArchive(JKRArchive* i_arc) { mpLkDArc = i_arc; } void setStatus(u16 status) { mStatus = status; } + void setShipId(u8 i_id) { mShipId = i_id; } + void setShipRoomId(u8 i_id) { mShipRoomId = i_id; } + u8 getShipId() { return mShipId; } + u8 getShipRoomId() { return mShipRoomId; } + + void setAgb(fopAc_ac_c* i_agb) { mpAgb = (daAgb_c*)i_agb; } + + void setIkadaShipBeforePos(Vec& i_pos) { mIkadaLinkPos = i_pos; } + void setIkadaShipId(u8 i_id) { mIkadaShipId = i_id; } + void setIkadaShipBeforeRoomId(u8 i_roomId) { mIkadaShipBeforeRoomId = i_roomId; } + u8 getIkadaShipId() { return mIkadaShipId; } + u8 getIkadaShipBeforeRoomId() { return mIkadaShipBeforeRoomId; } + + dTimer_c* getTimerPtr() { return mTimerInfo.mTimerPtr; } + s32 getTimerMode() { return mTimerInfo.mTimerMode; } + /* 0x0000 */ dBgS mBgS; /* 0x1404 */ dCcS mCcS; /* 0x3DF8 */ dADM mADM; @@ -323,9 +341,10 @@ public: /* 0x4A58 */ camera_class* field_0x4a58; /* 0x4A5C */ dDlst_window_c* field_0x4a5c; /* 0x4A60 */ J2DOrthoGraph* mp2DOrthoGraph; - /* 0x4A64 */ u8 field_0x4A64[0x4A66 - 0x4A64]; - /* 0x4A66 */ u8 mLastSeaRoom; - /* 0x4A67 */ u8 field_0x4A67[0x4A68 - 0x4A67]; + /* 0x4A64 */ u8 mShipId; + /* 0x4A65 */ u8 mShipRoomId; + /* 0x4A66 */ u8 mIkadaShipBeforeRoomId; + /* 0x4A67 */ u8 mIkadaShipId; /* 0x4A68 */ cXyz mIkadaLinkPos; /* 0x4A74 */ void* mpItemTableArchive; /* 0x4A78 */ void* mpFmapDataArchive; @@ -374,6 +393,10 @@ inline BOOL dComIfGs_checkReserveItem(u8 i_itemNo) { return dComIfGs_getpBagItem()->checkReserveItem(i_itemNo); } +inline void dComIfGs_initZone() { + g_dComIfG_gameInfo.save.initZone(); +} + inline u8 dComIfGs_getSelectEquip(int param_0) { return g_dComIfG_gameInfo.save.getPlayer().getPlayerStatusA().getSelectEquip(param_0); } @@ -446,6 +469,14 @@ inline void dComIfGs_setRestartRoomParam(u32 i_param) { g_dComIfG_gameInfo.save.getRestart().setRoomParam(i_param); } +inline s8 dComIfGs_getRestartRoomNo() { + return g_dComIfG_gameInfo.save.getRestart().getRoomNo(); +} + +inline s8 dComIfGs_getTurnRestartRoomNo() { + return g_dComIfG_gameInfo.save.getTurnRestart().getRoomNo(); +} + inline void dComIfGs_setStartPoint(s16 i_point) { g_dComIfG_gameInfo.save.getRestart().setStartPoint(i_point); } @@ -528,12 +559,73 @@ inline bool dComIfGs_isItem(int bitNo, int roomNo) { return g_dComIfG_gameInfo.save.isItem(bitNo, roomNo); } +inline void dComIfGs_clearRoomSwitch(int i_zoneNo) { + g_dComIfG_gameInfo.save.getZone(i_zoneNo).getZoneBit().clearRoomSwitch(); +} + +inline void dComIfGs_removeZone(int i_zoneNo) { + g_dComIfG_gameInfo.save.removeZone(i_zoneNo); +} + +inline u32 dComIfGs_getTurnRestartParam() { + return g_dComIfG_gameInfo.save.getTurnRestart().getParam(); +} + +inline cXyz& dComIfGs_getTurnRestartPos() { + return g_dComIfG_gameInfo.save.getTurnRestart().getPos(); +} + +inline cXyz& dComIfGs_getTurnRestartShipPos() { + return g_dComIfG_gameInfo.save.getTurnRestart().getShipPos(); +} + +inline s16 dComIfGs_getTurnRestartAngleY() { + return g_dComIfG_gameInfo.save.getTurnRestart().getAngleY(); +} + +inline s16 dComIfGs_getTurnRestartShipAngleY() { + return g_dComIfG_gameInfo.save.getTurnRestart().getShipAngleY(); +} + +inline u32 dComIfGs_getRestartRoomParam() { + return g_dComIfG_gameInfo.save.getRestart().getRoomParam(); +} + +inline cXyz& dComIfGs_getRestartRoomPos() { + return g_dComIfG_gameInfo.save.getRestart().getRoomPos(); +} + +inline s16 dComIfGs_getRestartRoomAngleY() { + return g_dComIfG_gameInfo.save.getRestart().getRoomAngleY(); +} + +inline void dComIfGs_putSave(int i_stageNo) { + g_dComIfG_gameInfo.save.putSave(i_stageNo); +} + +inline void dComIfGs_getSave(int i_stageNo) { + g_dComIfG_gameInfo.save.getSave(i_stageNo); +} + +inline void dComIfGs_initDan(s8 i_stageNo) { + g_dComIfG_gameInfo.save.initDan(i_stageNo); +} + +inline BOOL dComIfGs_isActor(int i_no, int i_roomNo) { + return g_dComIfG_gameInfo.save.isActor(i_no, i_roomNo); +} + +inline void dComIfGs_setTurnRestart(const cXyz& i_pos, s16 i_angle, s8 i_roomNo, u32 i_param) { + g_dComIfG_gameInfo.save.getTurnRestart().set(i_pos, i_angle, i_roomNo, i_param, i_pos, i_angle, 0); +} + /** * === PLAY === */ void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 i_layer, f32 i_lastSpeed, u32 i_lastMode, int, s8 i_wipe); +dStage_Ship_data* dComIfGp_getShip(int i_roomNo, int param_1); inline const char* dComIfGp_getStartStageName() { return g_dComIfG_gameInfo.play.getStartStageName(); @@ -563,6 +655,10 @@ inline dStage_startStage_c* dComIfGp_getNextStartStage() { return g_dComIfG_gameInfo.play.getNextStartStage(); } +inline dStage_startStage_c* dComIfGp_getStartStage() { + return g_dComIfG_gameInfo.play.getStartStage(); +} + inline void dComIfGp_setStartStage(dStage_startStage_c* p_startStage) { g_dComIfG_gameInfo.play.setStartStage(p_startStage); } @@ -603,6 +699,14 @@ inline stage_stag_info_class* dComIfGp_getStageStagInfo() { return g_dComIfG_gameInfo.play.getStage().getStagInfo(); } +inline s32 dComIfGp_roomControl_getStayNo() { + return dStage_roomControl_c::getStayNo(); +} + +inline void dComIfGp_roomControl_init() { + g_dComIfG_gameInfo.play.getRoomControl()->init(); +} + inline dStage_roomStatus_c* dComIfGp_roomControl_getStatusRoomDt(int room_no) { return g_dComIfG_gameInfo.play.getRoomControl()->getStatusRoomDt(room_no); } @@ -611,6 +715,26 @@ inline void dComIfGp_roomControl_checkDrawArea() { return g_dComIfG_gameInfo.play.getRoomControl()->checkDrawArea(); } +inline void dComIfGp_roomControl_setStayNo(int stayNo) { + g_dComIfG_gameInfo.play.getRoomControl()->setStayNo(stayNo); +} + +inline void dComIfGp_roomControl_setStatusFlag(int i_roomNo, u8 i_flag) { + g_dComIfG_gameInfo.play.getRoomControl()->setStatusFlag(i_roomNo, i_flag); +} + +inline void dComIfGp_roomControl_zoneCountCheck(int i_roomNo) { + g_dComIfG_gameInfo.play.getRoomControl()->zoneCountCheck(i_roomNo); +} + +inline void dComIfGp_roomControl_setTimePass(int isPassing) { + g_dComIfG_gameInfo.play.getRoomControl()->SetTimePass(isPassing); +} + +inline int dComIfGp_roomControl_loadRoom(int param_0, u8* param_1) { + return g_dComIfG_gameInfo.play.getRoomControl()->loadRoom(param_0, param_1); +} + inline dBgS* dComIfG_Bgsp() { return &g_dComIfG_gameInfo.play.mBgS; } @@ -627,6 +751,30 @@ inline void dComIfGp_getIkadaShipBeforePos(Vec* o_pos) { *o_pos = g_dComIfG_gameInfo.play.mIkadaLinkPos; } +inline void dComIfGp_setIkadaShipBeforePos(Vec& i_pos) { + g_dComIfG_gameInfo.play.setIkadaShipBeforePos(i_pos); +} + +inline void dComIfGp_setIkadaShipId(u8 i_id) { + g_dComIfG_gameInfo.play.setIkadaShipId(i_id); +} + +inline void dComIfGp_setIkadaShipBeforeRoomId(u8 i_roomId) { + g_dComIfG_gameInfo.play.setIkadaShipBeforeRoomId(i_roomId); +} + +inline u8 dComIfGp_getIkadaShipId() { + return g_dComIfG_gameInfo.play.getIkadaShipId(); +} + +inline u8 dComIfGp_getIkadaShipBeforeRoomId() { + return g_dComIfG_gameInfo.play.getIkadaShipBeforeRoomId(); +} + +inline stage_scls_info_dummy_class* dComIfGp_getStageSclsInfo() { + return g_dComIfG_gameInfo.play.getStage().getSclsInfo(); +} + inline dStage_stageDt_c& dComIfGp_getStage() { return g_dComIfG_gameInfo.play.getStage(); } @@ -719,6 +867,26 @@ inline void dComIfGp_setStatus(u16 status) { g_dComIfG_gameInfo.play.setStatus(status); } +inline void dComIfGp_setShipId(u8 i_id) { + g_dComIfG_gameInfo.play.setShipId(i_id); +} + +inline void dComIfGp_setShipRoomId(u8 i_id) { + g_dComIfG_gameInfo.play.setShipRoomId(i_id); +} + +inline u8 dComIfGp_getShipId() { + return g_dComIfG_gameInfo.play.getShipId(); +} + +inline u8 dComIfGp_getShipRoomId() { + return g_dComIfG_gameInfo.play.getShipRoomId(); +} + +inline void dComIfGp_setAgb(fopAc_ac_c* i_agb) { + g_dComIfG_gameInfo.play.setAgb(i_agb); +} + inline daPy_py_c* daPy_getPlayerActorClass() { return (daPy_py_c*)dComIfGp_getPlayer(0); } @@ -814,6 +982,14 @@ inline void dComIfGp_evmng_execute() { g_dComIfG_gameInfo.play.executeEvtManager(); } +inline void dComIfGp_evmng_create() { + g_dComIfG_gameInfo.play.getEvtManager().create(); +} + +inline void dComIfGp_evmng_remove() { + g_dComIfG_gameInfo.play.getEvtManager().remove(); +} + /** * === DRAWLIST === */ @@ -950,4 +1126,16 @@ inline void dComIfGp_particle_readScene(u8 particle_no, mDoDvdThd_toMainRam_c** class scene_class; int dComIfG_resetToOpening(scene_class* i_scene); +inline int dComIfG_getTimerMode() { + return g_dComIfG_gameInfo.play.getTimerMode(); +} + +inline dTimer_c* dComIfG_getTimerPtr() { + return g_dComIfG_gameInfo.play.getTimerPtr(); +} + +inline void dComIfG_TimerDeleteRequest() { + dComIfG_getTimerPtr()->deleteRequest(); +} + #endif /* D_COM_D_COM_INF_GAME_H */ diff --git a/include/d/d_event_manager.h b/include/d/d_event_manager.h index e58ebc6a2..b9df33a52 100644 --- a/include/d/d_event_manager.h +++ b/include/d/d_event_manager.h @@ -28,7 +28,7 @@ public: void getSubstance(dEvDtData_c*, int); void setData(const char*); void create(); - void remove(const char*); + void remove(); void startProc(dEvDtEvent_c*); void closeProc(dEvDtEvent_c*); void endProc(s16, int); diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index 519a6a708..15341b97c 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -8,6 +8,12 @@ class J3DModel; +struct color_RGB_class { + u8 r; + u8 g; + u8 b; +}; + class dKy_tevstr_c { public: /* 0x00 */ J3DLightObj mLightObj; diff --git a/include/d/d_map.h b/include/d/d_map.h index 0f8fb22ad..bbb0695ee 100644 --- a/include/d/d_map.h +++ b/include/d/d_map.h @@ -1,8 +1,73 @@ #ifndef D_MAP_H #define D_MAP_H +class fopAc_ac_c; class dMap_c { public: + static void create(); + void isEnableEnlargementScroll(); + void isEnableDispMap(); + void getKindMapType(); + static void remove(); + void setImage(int, int, f32); + void deleteImage(int); + void setNowRoom(int); + void mapDrawIconFree(s16, s16, u8); + void mapDrawIconSelf(s16, s16, u8); + void mapDrawFrame(u8); + void mapDrawEnlargementSize(f32, f32, f32, f32, u8); + void mapDrawRealSize(f32, f32, u8); + void mapAGBSendIslandData(); + void setPlayerStayAgbMapTypeNow(f32, f32); + void agbMapNoSet(u8, u8); + void agbMapNoSetCall(); + void agbIsMsgSend(); + void agbResetCursor(); + void agbScrollX(); + void agbScrollY(); + void agbFlashCheck(); + void agbIsActive(); + void isInDspArea(f32, f32, bool); + void mapAGBSendStatInit(); + void mapAGBSendMapMain(f32, f32); + void calcEnlargementSizeParameter(f32, f32); + void calcScissor(); + void mapMoveAll(f32, f32, int, f32); + void mapDrawAll(f32, f32, int, f32); + void mapDrawIcon(); + void draw(f32, f32, int, f32); + void point2Grid(f32, f32, s8*, s8*); + void point2GridAndLocal(f32, f32, s8*, s8*, s16*, s16*); + void getCheckPointUseGrid(s8, s8); + void getFmapChkPntPrm(int, s8*, s8*, s16*, s16*, u8*); + void setFmapChkDtPrm(); + void getFmapChkPntDtPnt(int); + void initPoint(); + void setGbaPoint_ocean(u8, f32, f32, s16, u8, u8, u8, u8); + void isPointStayInDspNowRoomAgbScr(s16, s16); + void setCollectPoint(u8, u8, f32, f32, f32, s8, s16, u8, u8, u8, u8); + void setGbaPoint_dungeon(u8, f32, f32, s16, u8, u8, u8, u8); + void getPosAgbMapType(f32, f32, bool); + void setGbaPoint(u8, f32, f32, s16, u8, u8, u8, u8); + void setArriveInfo(f32, f32); + void drawPointPlayer(f32, f32, s16); + void drawPointEnemy(f32, f32); + void drawPointAgbCursor(f32, f32); + void drawPointTbox(f32, f32, f32, f32); + void drawPointDoor(f32, f32, f32, f32, s16, u8); + void drawPointRestart(f32, f32, s16, f32, f32); + void drawPointFriend(f32, f32, f32); + void drawPointShip(f32, f32, s16, f32, f32); + void drawPointGc(u8, f32, f32, f32, s8, s16, u8, u8, u8, u8); + void drawPointMain(u8, u8, f32, f32, f32, s8, s16, u8, u8, u8, u8); + void drawPointAgb(u8, f32, f32, f32, s8, s16, u8, u8, u8, u8); + void getTypeAgbGcFromTypeAcs(u8, u8*, u8*); + void drawPointSingle(u8, f32, f32, f32, s8, s16, u8, u8, u8); + void drawActorPointMiniMap(fopAc_ac_c*); + void mapBufferSendAGB_commonCursor(); + void mapBufferSendAGB_ocean(); + void mapBufferSendAGB_dungeon(); + void mapSetPointAll(); static void mapBufferSendAGB(int); }; diff --git a/include/d/d_particle.h b/include/d/d_particle.h index ea5f872d4..a847e869f 100644 --- a/include/d/d_particle.h +++ b/include/d/d_particle.h @@ -1,6 +1,8 @@ #ifndef D_PARTICLE #define D_PARTICLE +#include "JSystem/J3DGraphBase/J3DVertex.h" +#include "JSystem/JGeometry.h" #include "JSystem/JParticle/JPAParticle.h" #include "f_pc/f_pc_node.h" @@ -25,6 +27,11 @@ public: /* 0x13 */ u8 mbAffectedByWind; }; +class dPa_levelEcallBack { +public: + virtual ~dPa_levelEcallBack() {} +}; + class dPa_simpleEcallBack { public: dPa_simpleEcallBack(); @@ -46,6 +53,83 @@ public: /* 0x010 */ dPa_simpleData_c mSimpleData[32]; }; +class dPa_waveEcallBack : public dPa_levelEcallBack { +public: + void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); + void remove(); + void executeAfter(JPABaseEmitter*); + void draw(JPABaseEmitter*); + + ~dPa_waveEcallBack(); + + /* 0x04 */ s16 mState; + /* 0x06 */ s16 mFadeTimer; + /* 0x08 */ f32 mVelFade1; + /* 0x0C */ f32 mVel; + /* 0x10 */ f32 mVelSpeed; + /* 0x14 */ f32 mVelFade2; + /* 0x18 */ f32 mMaxParticleVelocity; + /* 0x1C */ cXyz mCollapsePos[2]; + /* 0x34 */ cXyz* mpPos; + /* 0x38 */ csXyz* mpRot; + /* 0x3C */ cXyz mRotMtx[3]; + /* 0x60 */ JPABaseEmitter* mpBaseEmitter; +}; + +class dPa_splashEcallBack : public dPa_levelEcallBack { +public: + void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); + void remove(); + void execute(JPABaseEmitter*); + + ~dPa_splashEcallBack(); + + /* 0x04 */ s16 mState; + /* 0x08 */ f32 mScaleTimer; + /* 0x0C */ f32 mMaxScaleTimer; + /* 0x10 */ cXyz* mpPos; + /* 0x14 */ csXyz* mpRot; + /* 0x18 */ JPABaseEmitter* mpBaseEmitter; +}; + +class dPa_trackEcallBack : public dPa_levelEcallBack { +public: + void getMaxWaterY(JGeometry::TVec3*); + void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); + void remove(); + void execute(JPABaseEmitter*); + void draw(JPABaseEmitter*); + + ~dPa_trackEcallBack(); + + /* 0x04 */ s16 mState; + /* 0x08 */ f32 mBaseY; + /* 0x0C */ f32 mMinY; + /* 0x10 */ cXyz mPos[3]; + /* 0x34 */ cXyz* mpPos; + /* 0x38 */ csXyz* mpRot; + /* 0x3C */ f32 mExTransY; + /* 0x40 */ f32 mExScaleY; + /* 0x44 */ f32 mVel; + /* 0x48 */ f32 mMinVel; + /* 0x4C */ JPABaseEmitter* mpBaseEmitter; +}; + +class dPa_rippleEcallBack : public dPa_levelEcallBack { +public: + void setup(JPABaseEmitter*, cXyz const*, csXyz const*, s8); + void end(); + void execute(JPABaseEmitter*); + void draw(JPABaseEmitter*); + + ~dPa_rippleEcallBack(); + + /* 0x04 */ JPABaseEmitter* mpBaseEmitter; + /* 0x08 */ cXyz* mPos; + /* 0x0C */ u32 mFlags; + /* 0x10 */ f32 mRate; +}; + class dPa_modelControl_c { public: dPa_modelControl_c(J3DModelData*); diff --git a/include/d/d_save.h b/include/d/d_save.h index 274b3be96..ba742e81c 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -523,6 +523,8 @@ public: dSv_zoneActor_c& getActor() { return mZoneActor; } const dSv_zoneActor_c& getActor() const { return mZoneActor; } + void reset() { mRoomNo = -1; } + /* 0x00 */ s8 mRoomNo; /* 0x02 */ dSv_zoneBit_c mZoneBit; /* 0x0C */ dSv_zoneActor_c mZoneActor; @@ -541,6 +543,13 @@ public: mLastMode = mode; } + s16 getStartPoint() const { return mStartCode; } + u32 getLastMode() const { return mLastMode; } + s8 getRoomNo() const { return mRestartRoom; } + u32 getRoomParam() const { return mRestartParam; } + cXyz& getRoomPos() { return mRestartPos; } + s16 getRoomAngleY() const { return mRestartAngle; } + /* 0x00 */ s8 mRestartRoom; /* 0x01 */ u8 field_0x1; /* 0x02 */ s8 mRoomNo; @@ -557,7 +566,15 @@ public: class dSv_turnRestart_c { public: - /* 8005D5B4 */ void set(cXyz const&, s16, s8, u32, cXyz const&, s16, int); + void set(cXyz const&, s16, s8, u32, cXyz const&, s16, int); + + u32 getParam() const { return mParam; } + cXyz& getPos() { return mPosition; } + s16 getAngleY() const { return mAngleY; } + + cXyz& getShipPos() { return field_0x24; } + s16 getShipAngleY() const { return field_0x30; } + s8 getRoomNo() { return mRoomNo; } /* 0x00 */ cXyz mPosition; /* 0x0C */ u32 mParam; @@ -592,29 +609,34 @@ STATIC_ASSERT(sizeof(dSv_save_c) == 0x728); class dSv_info_c { public: - /* 8005D604 */ void init(); - /* 8005D660 */ void reinit(); - /* 8005D8C8 */ void getSave(int); - /* 8005D988 */ void putSave(int); - /* 8005DA70 */ void initZone(); - /* 8005DAC8 */ int createZone(int); - /* 8005DB24 */ void onSwitch(int, int); - /* 8005DCEC */ void offSwitch(int, int); - /* 8005DE98 */ BOOL isSwitch(int, int); - /* 8005DFE0 */ BOOL revSwitch(int, int); - /* 8005E190 */ void onItem(int, int); - /* 8005E324 */ BOOL isItem(int, int); - /* 8005E4BC */ void onActor(int, int); - /* 8005E5F0 */ BOOL isActor(int, int); - /* 8005E780 */ void memory_to_card(char*, int); - /* 8005EA24 */ void card_to_memory(char*, int); - /* 8005ED00 */ int initdata_to_card(char*, int); + void init(); + void reinit(); + void getSave(int); + void putSave(int); + void initZone(); + int createZone(int); + void onSwitch(int, int); + void offSwitch(int, int); + BOOL isSwitch(int, int); + BOOL revSwitch(int, int); + void onItem(int, int); + BOOL isItem(int, int); + void onActor(int, int); + BOOL isActor(int, int); + void memory_to_card(char*, int); + void card_to_memory(char*, int); + int initdata_to_card(char*, int); dSv_save_c& getSavedata() { return mSavedata; } dSv_player_c& getPlayer() { return mSavedata.getPlayer(); } dSv_event_c& getEvent() { return mSavedata.getEvent(); } dSv_restart_c& getRestart() { return mRestart; } + dSv_turnRestart_c& getTurnRestart() { return mTurnRestart; } dSv_memory_c& getMemory() { return mMemory; } + dSv_zone_c& getZone(int id) { return mZone[id]; } + + void removeZone(int zoneNo) { mZone[zoneNo].reset(); } + void initDan(s8 i_stage) { mDan.init(i_stage); } static const int MEMORY_SWITCH = 0x80; static const int DAN_SWITCH = 0x40; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 61bf310ac..fca4859eb 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -1,15 +1,43 @@ #ifndef D_D_STAGE_H #define D_D_STAGE_H -#include "global.h" -#include "d/d_kankyo.h" #include "SSystem/SComponent/c_lib.h" +#include "SSystem/SComponent/c_sxyz.h" +#include "SSystem/SComponent/c_xyz.h" +#include "d/d_kankyo.h" +#include "JSystem/JUtility/JUTAssert.h" +#include "global.h" + +void dStage_SetErrorRoom(); class JKRExpHeap; -struct stage_vrbox_info_class {}; +class stage_vrbox_info_class { +public: + /* 0x00 */ u32 field_0x00; + /* 0x04 */ u32 field_0x04; + /* 0x08 */ u32 field_0x08; + /* 0x0C */ u32 field_0x0c; + /* 0x10 */ GXColor mKumoColor; + /* 0x14 */ GXColor mKumoCenterColor; + /* 0x18 */ color_RGB_class mSkyColor; + /* 0x1B */ color_RGB_class mUsoUmiColor; + /* 0x1E */ color_RGB_class mKasumiMaeColor; +}; -class stage_tresure_class {}; +class stage_tresure_class { +public: + /* 0x00 */ char mName[8]; + /* 0x08 */ u8 field_0x8; + /* 0x09 */ u8 mTypeFlag; + /* 0x0A */ u8 field_0xa; // part of flag + /* 0x0B */ u8 mAppearType; + /* 0x0C */ Vec mPosition; + /* 0x18 */ s16 mRoomNo; + /* 0x1A */ s16 mRotation; + /* 0x1C */ u8 mItem; + /* 0x1D */ u8 mFlagID; +}; // Size: 0x20 struct stage_stag_info_class { /* 0x00 */ f32 field_0x0; @@ -28,8 +56,8 @@ struct stage_scls_info_class { /* 0x0 */ char mStage[8]; /* 0x8 */ u8 mStart; /* 0x9 */ u8 mRoom; - /* 0xA */ u8 field_0xa; - /* 0xB */ s8 mWipe; + /* 0xA */ s8 mWipe; + /* 0xB */ u8 field_0xb; }; struct stage_scls_info_dummy_class { @@ -37,39 +65,137 @@ struct stage_scls_info_dummy_class { /* 0x04 */ stage_scls_info_class* m_entries; }; -struct stage_lightvec_info_class {}; +class stage_lightvec_info_class { +public: + /* 0x00 */ Vec mPos; + /* 0x0C */ f32 mRadius; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ u8 field_0x18[0x1B - 0x18]; + /* 0x1B */ u8 mFluctuation; +}; -struct stage_pselect_info_class {}; +class stage_pselect_info_class { +public: + /* 0x0 */ u8 mPalIdx[8]; + /* 0x8 */ f32 mChangeRate; +}; struct stage_plight_info_class {}; -struct stage_palet_info_class {}; +class stage_palet_info_class { +public: + /* 0x00 */ color_RGB_class mActor_C0; + /* 0x03 */ color_RGB_class mActor_K0; + /* 0x06 */ color_RGB_class mBG0_C0; + /* 0x09 */ color_RGB_class mBG0_K0; + /* 0x0C */ color_RGB_class mBG1_C0; + /* 0x0F */ color_RGB_class mBG1_K0; + /* 0x12 */ color_RGB_class mBG2_C0; + /* 0x15 */ color_RGB_class mBG2_K0; + /* 0x18 */ color_RGB_class mBG3_C0; + /* 0x1B */ color_RGB_class mBG3_K0; + /* 0x1E */ color_RGB_class mFog; + /* 0x21 */ u8 mVirtIdx; + /* 0x24 */ f32 mFogStartZ; + /* 0x28 */ f32 mFogEndZ; +}; -struct stage_map_info_class {}; +class stage_map_info_class { +public: + /* 0x00 */ u8 field_0x00[0x35 - 0x00]; + /* 0x35 */ u8 field_0x35; + /* 0x36 */ u8 mOceanXZ; + /* 0x37 */ u8 field_0x37[0x38 - 0x37]; +}; -struct stage_map_info_dummy_class {}; +struct stage_map_info_dummy_class { + int num; + stage_map_info_class* m_entries; +}; -struct stage_envr_info_class {}; +class stage_envr_info_class { +public: + /* 0x0 */ u8 mPselIdx[8]; +}; -struct stage_camera_class {}; +struct stage_camera2_data_class { + /* 0x00 */ int field_0x0; + /* 0x04 */ f32 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ u8 field_0x10; + /* 0x11 */ u8 field_0x11; + /* 0x12 */ u8 field_0x12; + /* 0x13 */ u8 field_0x13; + /* 0x14 */ u16 field_0x14; + /* 0x16 */ u16 field_0x16; +}; // Size: 0x18 -struct stage_arrow_class {}; +struct stage_camera_class { + /* 0x0 */ int num; + /* 0x4 */ stage_camera2_data_class* m_entries; +}; -class stage_actor_data_class {}; +struct stage_arrow_data_class { + /* 0x00 */ cXyz mPosition; + /* 0x0C */ csXyz mAngle; +}; // Size: 0x14 -class stage_actor_class {}; +struct stage_arrow_class { + /* 0x00 */ int num; + /* 0x04 */ stage_arrow_data_class* m_entries; +}; -struct stage_tgsc_data_class : public stage_actor_data_class {}; +class stage_actor_data_class { +public: + /* 0x00 */ char mName[8]; + /* 0x08 */ u32 mParameter; + /* 0x0C */ cXyz mSpawnPos; + /* 0x18 */ csXyz mAngle; + /* 0x1E */ u16 mEnemyNo; +}; // Size: 0x20 -class stage_tgsc_class {}; +class stage_actor_class { +public: + /* 0x0 */ int num; + /* 0x4 */ stage_actor_data_class* m_entries; +}; -struct roomRead_data_class {}; +struct stage_tgsc_data_class : public stage_actor_data_class { + /* 0x20 */ u8 field_0x20; + /* 0x21 */ u8 field_0x21; + /* 0x22 */ u8 field_0x22; +}; // Size: 0x24 -struct roomRead_class {}; +class stage_tgsc_class { +public: + /* 0x00 */ int num; + /* 0x04 */ stage_tgsc_data_class* m_entries; +}; -struct dStage_MemoryMap_c {}; +struct roomRead_data_class { + /* 0x0 */ u8 field_0x0; + /* 0x1 */ u8 field_0x1; + /* 0x2 */ u8 field_0x2; + /* 0x4 */ u8* field_0x4; +}; -struct dStage_dPath_c {}; +struct roomRead_class { + /* 0x0 */ int num; + /* 0x4 */ roomRead_data_class** m_entries; +}; + +struct dStage_MemoryMap_c { + /* 0x0 */ int num; + /* 0x4 */ u32* m_entries; +}; + +struct dPath; +struct dStage_dPath_c { + /* 0x0 */ int num; + /* 0x4 */ dPath* m_path; +}; struct dStage_Mult_info { /* 0x0 */ f32 mTransX; @@ -80,207 +206,283 @@ struct dStage_Mult_info { class dStage_Multi_c { public: - /* 0x0 */ int m_num; + /* 0x0 */ int num; /* 0x4 */ dStage_Mult_info* m_entries; }; -struct dStage_SoundInfo_c {}; +struct stage_sound_data { + /* 0x00 */ char field_0x0[8]; + /* 0x08 */ Vec field_0x8; + /* 0x14 */ u8 field_0x14; + /* 0x15 */ u8 field_0x15; + /* 0x16 */ u8 field_0x16; + /* 0x17 */ u8 field_0x17; + /* 0x18 */ u8 field_0x18; + /* 0x19 */ u8 field_0x19; + /* 0x1A */ u8 field_0x1a; +}; // Size: 0x1C -class dStage_FileList_dt_c {}; +struct dStage_SoundInfo_c { + /* 0x0 */ int num; + /* 0x4 */ stage_sound_data* m_entries; +}; -struct dStage_dPnt_c {}; +class dStage_FileList_dt_c { +public: + /* 0x0 */ int mParam; + /* 0x4 */ f32 mSkyboxY; +}; + +struct dStage_dPnt_c { + /* 0x0 */ u8 field_0x0; + /* 0x1 */ u8 field_0x1; + /* 0x2 */ u8 field_0x2; + /* 0x3 */ u8 field_0x3; + /* 0x4 */ cXyz m_position; +}; // Size: 0x10 struct dStage_FloorInfo_c {}; struct dStage_Lbnk_c {}; -struct dStage_MemoryConfig_c {}; +struct dStage_MemoryConfig_data { + /* 0x0 */ u8 m_roomNo; + /* 0x1 */ u8 m_blockID; +}; // Size: 0x2 + +struct dStage_MemoryConfig_c { + /* 0x0 */ int num; + /* 0x4 */ dStage_MemoryConfig_data* m_entries; +}; struct dStage_DMap_c {}; struct dStage_EventInfo_c {}; struct dStage_Ship_data { - /* 0x0 */ u8 field_0x0[0xE]; + /* 0x0 */ cXyz m_pos; + /* 0xC */ s16 m_angle; /* 0xE */ u8 field_0xe; /* 0xF */ u8 field_0xf; }; class dStage_Ship_c { public: - /* 0x0 */ int m_num; + /* 0x0 */ int num; /* 0x4 */ dStage_Ship_data* m_entries; }; +struct FuncTable; + class dStage_dt_c { public: dStage_dt_c() {} - /* vt[ 2] */ virtual void init(void) = 0; - /* vt[ 3] */ virtual s8 getRoomNo() = 0; + /* vt[ 2] */ virtual void init() = 0; + /* vt[ 3] */ virtual int getRoomNo() const = 0; /* vt[ 4] */ virtual void setCamera(stage_camera_class*) = 0; - /* vt[ 5] */ virtual stage_camera_class* getCamera(void) const = 0; + /* vt[ 5] */ virtual stage_camera_class* getCamera() const = 0; /* vt[ 6] */ virtual void setArrow(stage_arrow_class*) = 0; - /* vt[ 7] */ virtual stage_arrow_class* getArrow(void) const = 0; + /* vt[ 7] */ virtual stage_arrow_class* getArrow() const = 0; /* vt[ 8] */ virtual void setPlayer(stage_actor_class*) = 0; - /* vt[ 9] */ virtual stage_actor_class* getPlayer(void) const = 0; + /* vt[ 9] */ virtual stage_actor_class* getPlayer() const = 0; /* vt[10] */ virtual void setPlayerNum(u16) = 0; - /* vt[11] */ virtual u16 getPlayerNum(void) const = 0; + /* vt[11] */ virtual u16 getPlayerNum() const = 0; /* vt[12] */ virtual void setRoom(roomRead_class*) = 0; - /* vt[13] */ virtual roomRead_class* getRoom(void) const = 0; + /* vt[13] */ virtual roomRead_class* getRoom() const = 0; /* vt[14] */ virtual void setMapInfo(stage_map_info_class*) = 0; - /* vt[15] */ virtual stage_map_info_class* getMapInfo(void) const = 0; + /* vt[15] */ virtual stage_map_info_class* getMapInfo() const = 0; /* vt[16] */ virtual stage_map_info_class* getMapInfo2(int) const = 0; /* vt[17] */ virtual void setMapInfoBase(stage_map_info_dummy_class*) = 0; - /* vt[18] */ virtual stage_map_info_dummy_class* getMapInfoBase(void) const = 0; + /* vt[18] */ virtual stage_map_info_dummy_class* getMapInfoBase() const = 0; /* vt[19] */ virtual void setPaletInfo(stage_palet_info_class*) = 0; - /* vt[20] */ virtual stage_palet_info_class* getPaletInfo(void) const = 0; + /* vt[20] */ virtual stage_palet_info_class* getPaletInfo() const = 0; /* vt[21] */ virtual void setPselectInfo(stage_pselect_info_class*) = 0; - /* vt[22] */ virtual stage_pselect_info_class* getPselectInfo(void) const = 0; + /* vt[22] */ virtual stage_pselect_info_class* getPselectInfo() const = 0; /* vt[23] */ virtual void setEnvrInfo(stage_envr_info_class*) = 0; - /* vt[24] */ virtual stage_envr_info_class* getEnvrInfo(void) const = 0; + /* vt[24] */ virtual stage_envr_info_class* getEnvrInfo() const = 0; /* vt[25] */ virtual void setVrboxInfo(stage_vrbox_info_class*) = 0; - /* vt[26] */ virtual stage_vrbox_info_class* getVrboxInfo(void) const = 0; + /* vt[26] */ virtual stage_vrbox_info_class* getVrboxInfo() const = 0; /* vt[27] */ virtual void setPlightInfo(stage_plight_info_class*) = 0; - /* vt[28] */ virtual stage_plight_info_class* getPlightInfo(void) const = 0; + /* vt[28] */ virtual stage_plight_info_class* getPlightInfo() const = 0; /* vt[29] */ virtual void setPaletNumInfo(int) = 0; - /* vt[30] */ virtual int getPaletNumInfo(void) const = 0; + /* vt[30] */ virtual int getPaletNumInfo() const = 0; /* vt[31] */ virtual void setPselectNumInfo(int) = 0; - /* vt[32] */ virtual int getPselectNumInfo(void) const = 0; + /* vt[32] */ virtual int getPselectNumInfo() const = 0; /* vt[33] */ virtual void setEnvrNumInfo(int) = 0; - /* vt[34] */ virtual int getEnvrNumInfo(void) const = 0; + /* vt[34] */ virtual int getEnvrNumInfo() const = 0; /* vt[35] */ virtual void setVrboxNumInfo(int) = 0; - /* vt[36] */ virtual int getVrboxNumInfo(void) const = 0; + /* vt[36] */ virtual int getVrboxNumInfo() const = 0; /* vt[37] */ virtual void setPlightNumInfo(int) = 0; - /* vt[38] */ virtual int getPlightNumInfo(void) const = 0; + /* vt[38] */ virtual int getPlightNumInfo() const = 0; /* vt[39] */ virtual void setLightVecInfo(stage_lightvec_info_class*) = 0; - /* vt[40] */ virtual stage_lightvec_info_class* getLightVecInfo(void) const = 0; + /* vt[40] */ virtual stage_lightvec_info_class* getLightVecInfo() const = 0; /* vt[41] */ virtual void setLightVecInfoNum(int) = 0; - /* vt[42] */ virtual int getLightVecInfoNum(void) const = 0; + /* vt[42] */ virtual int getLightVecInfoNum() const = 0; /* vt[43] */ virtual void setStagInfo(stage_stag_info_class*) = 0; - /* vt[44] */ virtual stage_stag_info_class* getStagInfo(void) const = 0; + /* vt[44] */ virtual stage_stag_info_class* getStagInfo() const = 0; /* vt[45] */ virtual void setSclsInfo(stage_scls_info_dummy_class*) = 0; - /* vt[46] */ virtual stage_scls_info_dummy_class* getSclsInfo(void) const = 0; + /* vt[46] */ virtual stage_scls_info_dummy_class* getSclsInfo() const = 0; /* vt[47] */ virtual void setPntInfo(dStage_dPnt_c*) = 0; - /* vt[48] */ virtual dStage_dPnt_c* getPntInf(void) const = 0; + /* vt[48] */ virtual dStage_dPnt_c* getPntInf() const = 0; /* vt[49] */ virtual void setPathInfo(dStage_dPath_c*) = 0; - /* vt[50] */ virtual dStage_dPath_c* getPathInf(void) const = 0; + /* vt[50] */ virtual dStage_dPath_c* getPathInf() const = 0; /* vt[51] */ virtual void setPnt2Info(dStage_dPnt_c*) = 0; - /* vt[52] */ virtual dStage_dPnt_c* getPnt2Inf(void) const = 0; + /* vt[52] */ virtual dStage_dPnt_c* getPnt2Inf() const = 0; /* vt[53] */ virtual void setPath2Info(dStage_dPath_c*) = 0; - /* vt[54] */ virtual dStage_dPath_c* getPath2Inf(void) const = 0; - /* vt[55] */ virtual void setSoundInf(dStage_SoundInfo_c*) = 0; - /* vt[56] */ virtual dStage_SoundInfo_c* getSoundInf(void) const = 0; + /* vt[54] */ virtual dStage_dPath_c* getPath2Inf() const = 0; + /* vt[55] */ virtual void setSoundInfo(dStage_SoundInfo_c*) = 0; + /* vt[56] */ virtual dStage_SoundInfo_c* getSoundInf() const = 0; /* vt[57] */ virtual void setEventInfo(dStage_EventInfo_c*) = 0; - /* vt[58] */ virtual dStage_EventInfo_c* getEventInfo(void) const = 0; + /* vt[58] */ virtual dStage_EventInfo_c* getEventInfo() const = 0; /* vt[59] */ virtual void setFileListInfo(dStage_FileList_dt_c*) = 0; - /* vt[60] */ virtual dStage_FileList_dt_c* getFileListInfo(void) const = 0; + /* vt[60] */ virtual dStage_FileList_dt_c* getFileListInfo() const = 0; /* vt[61] */ virtual void setFloorInfo(dStage_FloorInfo_c*) = 0; - /* vt[62] */ virtual dStage_FloorInfo_c* getFloorInfo(void) const = 0; + /* vt[62] */ virtual dStage_FloorInfo_c* getFloorInfo() const = 0; /* vt[63] */ virtual void setMemoryConfig(dStage_MemoryConfig_c*) = 0; - /* vt[64] */ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const = 0; + /* vt[64] */ virtual dStage_MemoryConfig_c* getMemoryConfig() const = 0; /* vt[65] */ virtual void setMemoryMap(dStage_MemoryMap_c*) = 0; - /* vt[66] */ virtual dStage_MemoryMap_c* getMemoryMap(void) const = 0; + /* vt[66] */ virtual dStage_MemoryMap_c* getMemoryMap() const = 0; /* vt[67] */ virtual void setShip(dStage_Ship_c*) = 0; /* vt[68] */ virtual dStage_Ship_c* getShip() const = 0; /* vt[69] */ virtual void setMulti(dStage_Multi_c*) = 0; - /* vt[70] */ virtual dStage_Multi_c* getMulti(void) const = 0; + /* vt[70] */ virtual dStage_Multi_c* getMulti() const = 0; /* vt[71] */ virtual void setLbnk(dStage_Lbnk_c*) = 0; - /* vt[72] */ virtual dStage_Lbnk_c* getLbnk(void) const = 0; + /* vt[72] */ virtual dStage_Lbnk_c* getLbnk() const = 0; /* vt[73] */ virtual void setTresure(stage_tresure_class*) = 0; - /* vt[74] */ virtual stage_tresure_class* getTresure(void) const = 0; + /* vt[74] */ virtual stage_tresure_class* getTresure() const = 0; /* vt[75] */ virtual void setDMap(dStage_DMap_c*) = 0; - /* vt[76] */ virtual dStage_DMap_c* getDMap(void) const = 0; + /* vt[76] */ virtual dStage_DMap_c* getDMap() const = 0; /* vt[77] */ virtual void setDrTg(stage_tgsc_class*) = 0; - /* vt[78] */ virtual stage_tgsc_class* getDrTg(void) const = 0; + /* vt[78] */ virtual stage_tgsc_class* getDrTg() const = 0; }; class dStage_stageDt_c : public dStage_dt_c { public: dStage_stageDt_c() {} - /* vt[ 2] */ virtual void init(void); - /* vt[ 3] */ virtual s8 getRoomNo(); - /* vt[ 4] */ virtual void setCamera(stage_camera_class*); - /* vt[ 5] */ virtual stage_camera_class* getCamera(void) const; - /* vt[ 6] */ virtual void setArrow(stage_arrow_class*); - /* vt[ 7] */ virtual stage_arrow_class* getArrow(void) const; - /* vt[ 8] */ virtual void setPlayer(stage_actor_class*); - /* vt[ 9] */ virtual stage_actor_class* getPlayer(void) const; - /* vt[10] */ virtual void setPlayerNum(u16); - /* vt[11] */ virtual u16 getPlayerNum(void) const; - /* vt[12] */ virtual void setRoom(roomRead_class*); - /* vt[13] */ virtual roomRead_class* getRoom(void) const; - /* vt[14] */ virtual void setMapInfo(stage_map_info_class*); - /* vt[15] */ virtual stage_map_info_class* getMapInfo(void) const; + /* vt[ 2] */ virtual void init(); + /* vt[ 3] */ virtual int getRoomNo() const { return -1; } + /* vt[ 4] */ virtual void setCamera(stage_camera_class* i_camera) { mpCamera = i_camera; } + /* vt[ 5] */ virtual stage_camera_class* getCamera() const { return mpCamera; } + /* vt[ 6] */ virtual void setArrow(stage_arrow_class* i_arrow) { mpArrow = i_arrow; } + /* vt[ 7] */ virtual stage_arrow_class* getArrow() const { return mpArrow; } + /* vt[ 8] */ virtual void setPlayer(stage_actor_class* i_player) { mpPlayer = i_player; } + /* vt[ 9] */ virtual stage_actor_class* getPlayer() const { return mpPlayer; } + /* vt[10] */ virtual void setPlayerNum(u16 i_playerNum) { mPlayerNum = i_playerNum; } + /* vt[11] */ virtual u16 getPlayerNum() const { return mPlayerNum; } + /* vt[12] */ virtual void setRoom(roomRead_class* i_room) { mpRoomReads = i_room; } + /* vt[13] */ virtual roomRead_class* getRoom() const { return mpRoomReads; } + /* vt[14] */ virtual void setMapInfo(stage_map_info_class* i_mapInfo) { mpMapInfo = i_mapInfo; } + /* vt[15] */ virtual stage_map_info_class* getMapInfo() const { return mpMapInfo; } /* vt[16] */ virtual stage_map_info_class* getMapInfo2(int) const; - /* vt[17] */ virtual void setMapInfoBase(stage_map_info_dummy_class*); - /* vt[18] */ virtual stage_map_info_dummy_class* getMapInfoBase(void) const; - /* vt[19] */ virtual void setPaletInfo(stage_palet_info_class*); - /* vt[20] */ virtual stage_palet_info_class* getPaletInfo(void) const; - /* vt[21] */ virtual void setPselectInfo(stage_pselect_info_class*); - /* vt[22] */ virtual stage_pselect_info_class* getPselectInfo(void) const; - /* vt[23] */ virtual void setEnvrInfo(stage_envr_info_class*); - /* vt[24] */ virtual stage_envr_info_class* getEnvrInfo(void) const; - /* vt[25] */ virtual void setVrboxInfo(stage_vrbox_info_class*); - /* vt[26] */ virtual stage_vrbox_info_class* getVrboxInfo(void) const; - /* vt[27] */ virtual void setPlightInfo(stage_plight_info_class*); - /* vt[28] */ virtual stage_plight_info_class* getPlightInfo(void) const; - /* vt[29] */ virtual void setPaletNumInfo(int); - /* vt[30] */ virtual int getPaletNumInfo(void) const; - /* vt[31] */ virtual void setPselectNumInfo(int); - /* vt[32] */ virtual int getPselectNumInfo(void) const; - /* vt[33] */ virtual void setEnvrNumInfo(int); - /* vt[34] */ virtual int getEnvrNumInfo(void) const; - /* vt[35] */ virtual void setVrboxNumInfo(int); - /* vt[36] */ virtual int getVrboxNumInfo(void) const; - /* vt[37] */ virtual void setPlightNumInfo(int); - /* vt[38] */ virtual int getPlightNumInfo(void) const; - /* vt[39] */ virtual void setLightVecInfo(stage_lightvec_info_class*); - /* vt[40] */ virtual stage_lightvec_info_class* getLightVecInfo(void) const; - /* vt[41] */ virtual void setLightVecInfoNum(int); - /* vt[42] */ virtual int getLightVecInfoNum(void) const; - /* vt[43] */ virtual void setStagInfo(stage_stag_info_class*); - /* vt[44] */ virtual stage_stag_info_class* getStagInfo(void) const; - /* vt[45] */ virtual void setSclsInfo(stage_scls_info_dummy_class*); - /* vt[46] */ virtual stage_scls_info_dummy_class* getSclsInfo(void) const; - /* vt[47] */ virtual void setPntInfo(dStage_dPnt_c*); - /* vt[48] */ virtual dStage_dPnt_c* getPntInf(void) const; - /* vt[49] */ virtual void setPathInfo(dStage_dPath_c*); - /* vt[50] */ virtual dStage_dPath_c* getPathInf(void) const; - /* vt[51] */ virtual void setPnt2Info(dStage_dPnt_c*); - /* vt[52] */ virtual dStage_dPnt_c* getPnt2Inf(void) const; - /* vt[53] */ virtual void setPath2Info(dStage_dPath_c*); - /* vt[54] */ virtual dStage_dPath_c* getPath2Inf(void) const; - /* vt[55] */ virtual void setSoundInf(dStage_SoundInfo_c*); - /* vt[56] */ virtual dStage_SoundInfo_c* getSoundInf(void) const; - /* vt[57] */ virtual void setEventInfo(dStage_EventInfo_c*); - /* vt[58] */ virtual dStage_EventInfo_c* getEventInfo(void) const; - /* vt[59] */ virtual void setFileListInfo(dStage_FileList_dt_c*); - /* vt[60] */ virtual dStage_FileList_dt_c* getFileListInfo(void) const; - /* vt[61] */ virtual void setFloorInfo(dStage_FloorInfo_c*); - /* vt[62] */ virtual dStage_FloorInfo_c* getFloorInfo(void) const; - /* vt[63] */ virtual void setMemoryConfig(dStage_MemoryConfig_c*); - /* vt[64] */ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const; - /* vt[65] */ virtual void setMemoryMap(dStage_MemoryMap_c*); - /* vt[66] */ virtual dStage_MemoryMap_c* getMemoryMap(void) const; - /* vt[67] */ virtual void setShip(dStage_Ship_c*); - /* vt[68] */ virtual dStage_Ship_c* getShip() const; - /* vt[69] */ virtual void setMulti(dStage_Multi_c*); - /* vt[70] */ virtual dStage_Multi_c* getMulti(void) const; - /* vt[71] */ virtual void setLbnk(dStage_Lbnk_c*); - /* vt[72] */ virtual dStage_Lbnk_c* getLbnk(void) const; - /* vt[73] */ virtual void setTresure(stage_tresure_class*); - /* vt[74] */ virtual stage_tresure_class* getTresure(void) const; - /* vt[75] */ virtual void setDMap(dStage_DMap_c*); - /* vt[76] */ virtual dStage_DMap_c* getDMap(void) const; - /* vt[77] */ virtual void setDrTg(stage_tgsc_class*); - /* vt[78] */ virtual stage_tgsc_class* getDrTg(void) const; + /* vt[17] */ virtual void setMapInfoBase(stage_map_info_dummy_class* i_mapInfoBase) { mpMapInfoBase = i_mapInfoBase; } + /* vt[18] */ virtual stage_map_info_dummy_class* getMapInfoBase() const; + /* vt[19] */ virtual void setPaletInfo(stage_palet_info_class* i_paletInfo) { mpPaletInfo = i_paletInfo; } + /* vt[20] */ virtual stage_palet_info_class* getPaletInfo() const { return mpPaletInfo; } + /* vt[21] */ virtual void setPselectInfo(stage_pselect_info_class* i_pselectInfo) { mpPselectInfo = i_pselectInfo; } + /* vt[22] */ virtual stage_pselect_info_class* getPselectInfo() const { return mpPselectInfo; } + /* vt[23] */ virtual void setEnvrInfo(stage_envr_info_class* i_envrInfo) { mpEnvrInfo = i_envrInfo; } + /* vt[24] */ virtual stage_envr_info_class* getEnvrInfo() const { return mpEnvrInfo; } + /* vt[25] */ virtual void setVrboxInfo(stage_vrbox_info_class* i_vrboxInfo) { mpVrboxInfo = i_vrboxInfo; } + /* vt[26] */ virtual stage_vrbox_info_class* getVrboxInfo() const { return mpVrboxInfo; } + /* vt[27] */ virtual void setPlightInfo(stage_plight_info_class* i_plightInfo) { mpPlightInfo = i_plightInfo; } + /* vt[28] */ virtual stage_plight_info_class* getPlightInfo() const { return mpPlightInfo; } + /* vt[29] */ virtual void setPaletNumInfo(int i_paletNum) { mPaletInfoNum = i_paletNum; } + /* vt[30] */ virtual int getPaletNumInfo() const { return mPaletInfoNum; } + /* vt[31] */ virtual void setPselectNumInfo(int i_pselectNum) { mPselectInfoNum = i_pselectNum; } + /* vt[32] */ virtual int getPselectNumInfo() const { return mPselectInfoNum; } + /* vt[33] */ virtual void setEnvrNumInfo(int i_envrNum) { mEnvrInfoNum = i_envrNum; } + /* vt[34] */ virtual int getEnvrNumInfo() const { return mEnvrInfoNum; } + /* vt[35] */ virtual void setVrboxNumInfo(int i_vrboxNum) { mVrboxInfoNum = i_vrboxNum; } + /* vt[36] */ virtual int getVrboxNumInfo() const { return mVrboxInfoNum; } + /* vt[37] */ virtual void setPlightNumInfo(int i_plightNum) { mPlightInfoNum = i_plightNum; } + /* vt[38] */ virtual int getPlightNumInfo() const { return mPlightInfoNum; } + /* vt[39] */ virtual void setLightVecInfo(stage_lightvec_info_class*) { + dStage_SetErrorRoom(); + OSReport("stage non LightVec data !!\n"); + JUT_ASSERT(2380, 0); + } + /* vt[40] */ virtual stage_lightvec_info_class* getLightVecInfo() const { + OSReport("stage non LightVec data !!\n"); + JUT_ASSERT(2384, 0); + return NULL; + } + /* vt[41] */ virtual void setLightVecInfoNum(int) { + dStage_SetErrorRoom(); + OSReport("stage non LightVecNum data !!\n"); + JUT_ASSERT(2391, 0); + } + /* vt[42] */ virtual int getLightVecInfoNum() const { + OSReport("stage non LightVecNum data !!\n"); + JUT_ASSERT(2395, 0); + return 0; + } + /* vt[43] */ virtual void setStagInfo(stage_stag_info_class* i_stag) { mpStagInfo = i_stag; } + /* vt[44] */ virtual stage_stag_info_class* getStagInfo() const { return mpStagInfo; } + /* vt[45] */ virtual void setSclsInfo(stage_scls_info_dummy_class* i_scls) { mpScls = i_scls; } + /* vt[46] */ virtual stage_scls_info_dummy_class* getSclsInfo() const { return mpScls; } + /* vt[47] */ virtual void setPntInfo(dStage_dPnt_c* i_pnt) { mpPnt = i_pnt; } + /* vt[48] */ virtual dStage_dPnt_c* getPntInf() const { return mpPnt; } + /* vt[49] */ virtual void setPathInfo(dStage_dPath_c* i_path) { mpPath = i_path; } + /* vt[50] */ virtual dStage_dPath_c* getPathInf() const { return mpPath; } + /* vt[51] */ virtual void setPnt2Info(dStage_dPnt_c* i_pnt) { mpPnt2 = i_pnt; } + /* vt[52] */ virtual dStage_dPnt_c* getPnt2Inf() const { return mpPnt2; } + /* vt[53] */ virtual void setPath2Info(dStage_dPath_c* i_path) { mpPath2 = i_path; } + /* vt[54] */ virtual dStage_dPath_c* getPath2Inf() const { return mpPath2; } + /* vt[55] */ virtual void setSoundInfo(dStage_SoundInfo_c* i_soundInfo) { mpSoundInfo = i_soundInfo; } + /* vt[56] */ virtual dStage_SoundInfo_c* getSoundInf() const { return mpSoundInfo; } + /* vt[57] */ virtual void setEventInfo(dStage_EventInfo_c* i_eventInfo) { mpEventInfo = i_eventInfo; } + /* vt[58] */ virtual dStage_EventInfo_c* getEventInfo() const { return mpEventInfo; } + /* vt[59] */ virtual void setFileListInfo(dStage_FileList_dt_c*) { + dStage_SetErrorRoom(); + OSReport("stage non filelist data!\n"); + JUT_ASSERT(2490, 0); + } + /* vt[60] */ virtual dStage_FileList_dt_c* getFileListInfo() const { + OSReport("stage non filelist data!\n"); + JUT_ASSERT(2494, 0); + return NULL; + } + /* vt[61] */ virtual void setFloorInfo(dStage_FloorInfo_c* i_floorInfo) { mpFloorInfo = i_floorInfo; } + /* vt[62] */ virtual dStage_FloorInfo_c* getFloorInfo() const { return mpFloorInfo; } + /* vt[63] */ virtual void setMemoryConfig(dStage_MemoryConfig_c* i_config) { mpMemoryConfig = i_config; } + /* vt[64] */ virtual dStage_MemoryConfig_c* getMemoryConfig() const { return mpMemoryConfig; } + /* vt[65] */ virtual void setMemoryMap(dStage_MemoryMap_c* i_map) { mpMemoryMap = i_map; } + /* vt[66] */ virtual dStage_MemoryMap_c* getMemoryMap() const { return mpMemoryMap; } + /* vt[67] */ virtual void setShip(dStage_Ship_c*) { + dStage_SetErrorRoom(); + OSReport("stage non SHIP data!\n"); + JUT_ASSERT(2561, 0); + } + /* vt[68] */ virtual dStage_Ship_c* getShip() const { + OSReport("stage non SHIP data!\n"); + JUT_ASSERT(2565, 0); + return NULL; + } + /* vt[69] */ virtual void setMulti(dStage_Multi_c* i_multi) { mpMulti = i_multi; } + /* vt[70] */ virtual dStage_Multi_c* getMulti() const { return mpMulti; } + /* vt[71] */ virtual void setLbnk(dStage_Lbnk_c*) { + dStage_SetErrorRoom(); + OSReport("stage non Lbnk data!\n"); + JUT_ASSERT(2590, 0); + } + /* vt[72] */ virtual dStage_Lbnk_c* getLbnk() const { + OSReport("stage non Lbnk data!\n"); + JUT_ASSERT(2597, 0); + return NULL; + } + /* vt[73] */ virtual void setTresure(stage_tresure_class* i_tresure) { mpTresure = i_tresure; } + /* vt[74] */ virtual stage_tresure_class* getTresure() const { return mpTresure; } + /* vt[75] */ virtual void setDMap(dStage_DMap_c* i_dmap) { mpDMap = i_dmap; } + /* vt[76] */ virtual dStage_DMap_c* getDMap() const { return mpDMap; } + /* vt[77] */ virtual void setDrTg(stage_tgsc_class* i_drtg) { mpDrTg = i_drtg; } + /* vt[78] */ virtual stage_tgsc_class* getDrTg() const { return mpDrTg; } public: /* 0x04 */ stage_camera_class* mpCamera; /* 0x08 */ stage_arrow_class* mpArrow; - /* 0x0C */ void* field_0x0c; + /* 0x0C */ stage_actor_class* mpPlayer; /* 0x10 */ roomRead_class* mpRoomReads; /* 0x14 */ stage_map_info_class* mpMapInfo; /* 0x18 */ stage_map_info_dummy_class* mpMapInfoBase; @@ -289,108 +491,236 @@ public: /* 0x24 */ stage_envr_info_class* mpEnvrInfo; /* 0x28 */ stage_vrbox_info_class* mpVrboxInfo; /* 0x2C */ stage_plight_info_class* mpPlightInfo; - /* 0x30 */ void* field_0x30; - /* 0x34 */ void* field_0x34; - /* 0x38 */ void* field_0x38; - /* 0x3C */ int field_0x3c; + /* 0x30 */ int mPaletInfoNum; + /* 0x34 */ int mPselectInfoNum; + /* 0x38 */ int mEnvrInfoNum; + /* 0x3C */ int mVrboxInfoNum; /* 0x40 */ int mPlightInfoNum; - /* 0x44 */ void* field_0x44; + /* 0x44 */ u16 mPlayerNum; /* 0x48 */ stage_stag_info_class* mpStagInfo; /* 0x4C */ stage_scls_info_dummy_class* mpScls; /* 0x50 */ dStage_dPnt_c* mpPnt; /* 0x54 */ dStage_dPath_c* mpPath; /* 0x58 */ dStage_dPnt_c* mpPnt2; /* 0x5C */ dStage_dPath_c* mpPath2; - /* 0x60 */ void* field_0x60; + /* 0x60 */ dStage_SoundInfo_c* mpSoundInfo; /* 0x64 */ dStage_EventInfo_c* mpEventInfo; - /* 0x68 */ void* field_0x68; - /* 0x6C */ void* field_0x6c; - /* 0x70 */ void* field_0x70; + /* 0x68 */ dStage_FloorInfo_c* mpFloorInfo; + /* 0x6C */ dStage_MemoryConfig_c* mpMemoryConfig; + /* 0x70 */ dStage_MemoryMap_c* mpMemoryMap; /* 0x74 */ dStage_Multi_c* mpMulti; - /* 0x78 */ void* field_0x78; - /* 0x7C */ void* field_0x7c; - /* 0x80 */ void* field_0x80; + /* 0x78 */ stage_tresure_class* mpTresure; + /* 0x7C */ dStage_DMap_c* mpDMap; + /* 0x80 */ stage_tgsc_class* mpDrTg; }; class dStage_roomDt_c : public dStage_dt_c { public: - /* vt[ 2] */ virtual void init(void); - /* vt[ 3] */ virtual s8 getRoomNo(); - /* vt[ 4] */ virtual void setCamera(stage_camera_class*); - /* vt[ 5] */ virtual stage_camera_class* getCamera(void) const; - /* vt[ 6] */ virtual void setArrow(stage_arrow_class*); - /* vt[ 7] */ virtual stage_arrow_class* getArrow(void) const; - /* vt[ 8] */ virtual void setPlayer(stage_actor_class*); - /* vt[ 9] */ virtual stage_actor_class* getPlayer(void) const; - /* vt[10] */ virtual void setPlayerNum(u16); - /* vt[11] */ virtual u16 getPlayerNum(void) const; - /* vt[12] */ virtual void setRoom(roomRead_class*); - /* vt[13] */ virtual roomRead_class* getRoom(void) const; - /* vt[14] */ virtual void setMapInfo(stage_map_info_class*); - /* vt[15] */ virtual stage_map_info_class* getMapInfo(void) const; + /* vt[ 2] */ virtual void init(); + /* vt[ 3] */ virtual int getRoomNo() const { return mRoomNo; } + /* vt[ 4] */ virtual void setCamera(stage_camera_class* i_camera) { mpCamera = i_camera; } + /* vt[ 5] */ virtual stage_camera_class* getCamera() const { return mpCamera; } + /* vt[ 6] */ virtual void setArrow(stage_arrow_class* i_arrow) { mpArrow = i_arrow; } + /* vt[ 7] */ virtual stage_arrow_class* getArrow() const { return mpArrow; } + /* vt[ 8] */ virtual void setPlayer(stage_actor_class* i_player) { mpPlayer = i_player; } + /* vt[ 9] */ virtual stage_actor_class* getPlayer() const { return mpPlayer; } + /* vt[10] */ virtual void setPlayerNum(u16 i_playerNum) { mPlayerNum = i_playerNum; } + /* vt[11] */ virtual u16 getPlayerNum() const { return mPlayerNum; } + /* vt[12] */ virtual void setRoom(roomRead_class*) { + dStage_SetErrorRoom(); + OSReport("Room non room data !!\n"); + JUT_ASSERT(1613, 0); + } + /* vt[13] */ virtual roomRead_class* getRoom() const { + OSReport("Room non room data !!\n"); + JUT_ASSERT(1618, 0); + return NULL; + } + /* vt[14] */ virtual void setMapInfo(stage_map_info_class* i_mapInfo) { mpMapInfo = i_mapInfo; } + /* vt[15] */ virtual stage_map_info_class* getMapInfo() const { return mpMapInfo; } /* vt[16] */ virtual stage_map_info_class* getMapInfo2(int) const; - /* vt[17] */ virtual void setMapInfoBase(stage_map_info_dummy_class*); - /* vt[18] */ virtual stage_map_info_dummy_class* getMapInfoBase(void) const; - /* vt[19] */ virtual void setPaletInfo(stage_palet_info_class*); - /* vt[20] */ virtual stage_palet_info_class* getPaletInfo(void) const; - /* vt[21] */ virtual void setPselectInfo(stage_pselect_info_class*); - /* vt[22] */ virtual stage_pselect_info_class* getPselectInfo(void) const; - /* vt[23] */ virtual void setEnvrInfo(stage_envr_info_class*); - /* vt[24] */ virtual stage_envr_info_class* getEnvrInfo(void) const; - /* vt[25] */ virtual void setVrboxInfo(stage_vrbox_info_class*); - /* vt[26] */ virtual stage_vrbox_info_class* getVrboxInfo(void) const; - /* vt[27] */ virtual void setPlightInfo(stage_plight_info_class*); - /* vt[28] */ virtual stage_plight_info_class* getPlightInfo(void) const; - /* vt[29] */ virtual void setPaletNumInfo(int); - /* vt[30] */ virtual int getPaletNumInfo(void) const; - /* vt[31] */ virtual void setPselectNumInfo(int); - /* vt[32] */ virtual int getPselectNumInfo(void) const; - /* vt[33] */ virtual void setEnvrNumInfo(int); - /* vt[34] */ virtual int getEnvrNumInfo(void) const; - /* vt[35] */ virtual void setVrboxNumInfo(int); - /* vt[36] */ virtual int getVrboxNumInfo(void) const; - /* vt[37] */ virtual void setPlightNumInfo(int); - /* vt[38] */ virtual int getPlightNumInfo(void) const; - /* vt[39] */ virtual void setLightVecInfo(stage_lightvec_info_class*); - /* vt[40] */ virtual stage_lightvec_info_class* getLightVecInfo(void) const; - /* vt[41] */ virtual void setLightVecInfoNum(int); - /* vt[42] */ virtual int getLightVecInfoNum(void) const; - /* vt[43] */ virtual void setStagInfo(stage_stag_info_class*); - /* vt[44] */ virtual stage_stag_info_class* getStagInfo(void) const; - /* vt[45] */ virtual void setSclsInfo(stage_scls_info_dummy_class*); - /* vt[46] */ virtual stage_scls_info_dummy_class* getSclsInfo(void) const; - /* vt[47] */ virtual void setPntInfo(dStage_dPnt_c*); - /* vt[48] */ virtual dStage_dPnt_c* getPntInf(void) const; - /* vt[49] */ virtual void setPathInfo(dStage_dPath_c*); - /* vt[50] */ virtual dStage_dPath_c* getPathInf(void) const; - /* vt[51] */ virtual void setPnt2Info(dStage_dPnt_c*); - /* vt[52] */ virtual dStage_dPnt_c* getPnt2Inf(void) const; - /* vt[53] */ virtual void setPath2Info(dStage_dPath_c*); - /* vt[54] */ virtual dStage_dPath_c* getPath2Inf(void) const; - /* vt[55] */ virtual void setSoundInf(dStage_SoundInfo_c*); - /* vt[56] */ virtual dStage_SoundInfo_c* getSoundInf(void) const; - /* vt[57] */ virtual void setEventInfo(dStage_EventInfo_c*); - /* vt[58] */ virtual dStage_EventInfo_c* getEventInfo(void) const; - /* vt[59] */ virtual void setFileListInfo(dStage_FileList_dt_c*); - /* vt[60] */ virtual dStage_FileList_dt_c* getFileListInfo(void) const; - /* vt[61] */ virtual void setFloorInfo(dStage_FloorInfo_c*); - /* vt[62] */ virtual dStage_FloorInfo_c* getFloorInfo(void) const; - /* vt[63] */ virtual void setMemoryConfig(dStage_MemoryConfig_c*); - /* vt[64] */ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const; - /* vt[65] */ virtual void setMemoryMap(dStage_MemoryMap_c*); - /* vt[66] */ virtual dStage_MemoryMap_c* getMemoryMap(void) const; - /* vt[67] */ virtual void setShip(dStage_Ship_c*); - /* vt[68] */ virtual dStage_Ship_c* getShip() const; - /* vt[69] */ virtual void setMulti(dStage_Multi_c*); - /* vt[70] */ virtual dStage_Multi_c* getMulti(void) const; - /* vt[71] */ virtual void setLbnk(dStage_Lbnk_c*); - /* vt[72] */ virtual dStage_Lbnk_c* getLbnk(void) const; - /* vt[73] */ virtual void setTresure(stage_tresure_class*); - /* vt[74] */ virtual stage_tresure_class* getTresure(void) const; - /* vt[75] */ virtual void setDMap(dStage_DMap_c*); - /* vt[76] */ virtual dStage_DMap_c* getDMap(void) const; - /* vt[77] */ virtual void setDrTg(stage_tgsc_class*); - /* vt[78] */ virtual stage_tgsc_class* getDrTg(void) const; + /* vt[17] */ virtual void setMapInfoBase(stage_map_info_dummy_class* i_mapInfoBase) { mpMapInfoBase = i_mapInfoBase; } + /* vt[18] */ virtual stage_map_info_dummy_class* getMapInfoBase() const; + /* vt[19] */ virtual void setPaletInfo(stage_palet_info_class*) { + dStage_SetErrorRoom(); + OSReport("Room non palet data !!\n"); + JUT_ASSERT(1644, 0); + } + /* vt[20] */ virtual stage_palet_info_class* getPaletInfo() const { + OSReport("Room non palet data !!\n"); + JUT_ASSERT(1648, 0); + return NULL; + } + /* vt[21] */ virtual void setPselectInfo(stage_pselect_info_class*) { + dStage_SetErrorRoom(); + OSReport("Room non pselect data !!\n"); + JUT_ASSERT(1655, 0); + } + /* vt[22] */ virtual stage_pselect_info_class* getPselectInfo() const { + OSReport("Room non pselect data !!\n"); + JUT_ASSERT(1659, 0); + return NULL; + } + /* vt[23] */ virtual void setEnvrInfo(stage_envr_info_class*) { + dStage_SetErrorRoom(); + OSReport("Room non envr data !!\n"); + JUT_ASSERT(1666, 0); + } + /* vt[24] */ virtual stage_envr_info_class* getEnvrInfo() const { + OSReport("Room non envr data !!\n"); + JUT_ASSERT(1670, 0); + return NULL; + } + /* vt[25] */ virtual void setVrboxInfo(stage_vrbox_info_class* i_vrbox) { mpVrbox = i_vrbox; } + /* vt[26] */ virtual stage_vrbox_info_class* getVrboxInfo() const { return mpVrbox; } + /* vt[27] */ virtual void setPlightInfo(stage_plight_info_class*) { + dStage_SetErrorRoom(); + OSReport("Room non plight data !!\n"); + JUT_ASSERT(1686, 0); + } + /* vt[28] */ virtual stage_plight_info_class* getPlightInfo() const { + OSReport("Room non plight data !!\n"); + JUT_ASSERT(1690, 0); + return NULL; + } + /* vt[29] */ virtual void setPaletNumInfo(int) { + dStage_SetErrorRoom(); + OSReport("Room non palet num data !!\n"); + JUT_ASSERT(1700, 0); + } + /* vt[30] */ virtual int getPaletNumInfo() const { + OSReport("Room non palet num data !!\n"); + JUT_ASSERT(1704, 0); + return 0; + } + /* vt[31] */ virtual void setPselectNumInfo(int) { + dStage_SetErrorRoom(); + OSReport("Room non pselect num data !!\n"); + JUT_ASSERT(1711, 0); + } + /* vt[32] */ virtual int getPselectNumInfo() const { + OSReport("Room non pselect num data !!\n"); + JUT_ASSERT(1715, 0); + return 0; + } + /* vt[33] */ virtual void setEnvrNumInfo(int) { + dStage_SetErrorRoom(); + OSReport("Room non envr num data !!\n"); + JUT_ASSERT(1722, 0); + } + /* vt[34] */ virtual int getEnvrNumInfo() const { + OSReport("Room non envr num data !!\n"); + JUT_ASSERT(1726, 0); + return 0; + } + /* vt[35] */ virtual void setVrboxNumInfo(int i_vrboxNum) { mVrboxNum = i_vrboxNum; } + /* vt[36] */ virtual int getVrboxNumInfo() const { return mVrboxNum; } + /* vt[37] */ virtual void setPlightNumInfo(int) { + dStage_SetErrorRoom(); + OSReport("Room non plight num data !!\n"); + JUT_ASSERT(1735, 0); + } + /* vt[38] */ virtual int getPlightNumInfo() const { + OSReport("Room non plight num data !!\n"); + JUT_ASSERT(1740, 0); + return 0; + } + /* vt[39] */ virtual void setLightVecInfo(stage_lightvec_info_class* i_lightvecInfo) { mpLightVecInfo = i_lightvecInfo; } + /* vt[40] */ virtual stage_lightvec_info_class* getLightVecInfo() const { return mpLightVecInfo; } + /* vt[41] */ virtual void setLightVecInfoNum(int i_num) { mLightVecInfoNum = i_num; } + /* vt[42] */ virtual int getLightVecInfoNum() const { return mLightVecInfoNum; } + /* vt[43] */ virtual void setStagInfo(stage_stag_info_class*) { + dStage_SetErrorRoom(); + OSReport("Room non stag data !!\n"); + JUT_ASSERT(1769, 0); + } + /* vt[44] */ virtual stage_stag_info_class* getStagInfo() const { + OSReport("Room non stag data !!\n"); + JUT_ASSERT(1773, 0); + return NULL; + } + /* vt[45] */ virtual void setSclsInfo(stage_scls_info_dummy_class* i_scls) { mpScls = i_scls; } + /* vt[46] */ virtual stage_scls_info_dummy_class* getSclsInfo() const { return mpScls; } + /* vt[47] */ virtual void setPntInfo(dStage_dPnt_c*) { + dStage_SetErrorRoom(); + OSReport("Room non Pnt data !\n"); + JUT_ASSERT(1794, 0); + } + /* vt[48] */ virtual dStage_dPnt_c* getPntInf() const { + OSReport("Room non Pnts data !\n"); + JUT_ASSERT(1798, 0); + return NULL; + } + /* vt[49] */ virtual void setPathInfo(dStage_dPath_c*) { + dStage_SetErrorRoom(); + OSReport("Room non Path data !\n"); + JUT_ASSERT(1805, 0); + } + /* vt[50] */ virtual dStage_dPath_c* getPathInf() const { + OSReport("Room non Path data !\n"); + JUT_ASSERT(1809, 0); + return NULL; + } + /* vt[51] */ virtual void setPnt2Info(dStage_dPnt_c* i_pnt) { mpPoint2 = i_pnt; } + /* vt[52] */ virtual dStage_dPnt_c* getPnt2Inf() const { return mpPoint2; } + /* vt[53] */ virtual void setPath2Info(dStage_dPath_c* i_path) { mpPath2 = i_path; } + /* vt[54] */ virtual dStage_dPath_c* getPath2Inf() const { return mpPath2; } + /* vt[55] */ virtual void setSoundInfo(dStage_SoundInfo_c* i_sound) { mpSound = i_sound; } + /* vt[56] */ virtual dStage_SoundInfo_c* getSoundInf() const { return mpSound; } + /* vt[57] */ virtual void setEventInfo(dStage_EventInfo_c*) { + dStage_SetErrorRoom(); + OSReport("Room non event data!\n"); + JUT_ASSERT(1850, 0); + } + /* vt[58] */ virtual dStage_EventInfo_c* getEventInfo() const { + OSReport("Room non event data!\n"); + JUT_ASSERT(1854, 0); + return NULL; + } + /* vt[59] */ virtual void setFileListInfo(dStage_FileList_dt_c* i_filelist) { mpFileList = i_filelist; } + /* vt[60] */ virtual dStage_FileList_dt_c* getFileListInfo() const { return mpFileList; } + /* vt[61] */ virtual void setFloorInfo(dStage_FloorInfo_c* i_floor) { mpFloor = i_floor; } + /* vt[62] */ virtual dStage_FloorInfo_c* getFloorInfo() const { return mpFloor; } + /* vt[63] */ virtual void setMemoryConfig(dStage_MemoryConfig_c*) { + OSReport("Room non memory config data!\n"); + JUT_ASSERT(1900, 0); + } + /* vt[64] */ virtual dStage_MemoryConfig_c* getMemoryConfig() const { + OSReport("Room non memory config data!\n"); + JUT_ASSERT(1909, 0); + return NULL; + } + /* vt[65] */ virtual void setMemoryMap(dStage_MemoryMap_c*) { + OSReport("Room non memory map data!\n"); + JUT_ASSERT(1919, 0); + } + /* vt[66] */ virtual dStage_MemoryMap_c* getMemoryMap() const { + OSReport("Room non memory map data!\n"); + JUT_ASSERT(1928, 0); + return NULL; + } + /* vt[67] */ virtual void setShip(dStage_Ship_c* i_ship) { mpShip = i_ship; } + /* vt[68] */ virtual dStage_Ship_c* getShip() const { return mpShip; } + /* vt[69] */ virtual void setMulti(dStage_Multi_c*) { + OSReport("Room non multi data!\n"); + JUT_ASSERT(1961, 0); + } + /* vt[70] */ virtual dStage_Multi_c* getMulti() const { + OSReport("Room non multi data!\n"); + JUT_ASSERT(1966, 0); + return NULL; + } + /* vt[71] */ virtual void setLbnk(dStage_Lbnk_c* i_lbnk) { mpLbnk = i_lbnk; } + /* vt[72] */ virtual dStage_Lbnk_c* getLbnk() const { return mpLbnk; } + /* vt[73] */ virtual void setTresure(stage_tresure_class* i_tresure) { mpTresure = i_tresure; } + /* vt[74] */ virtual stage_tresure_class* getTresure() const { return mpTresure; } + /* vt[75] */ virtual void setDMap(dStage_DMap_c*) { JUT_ASSERT(2002, 0); } + /* vt[76] */ virtual dStage_DMap_c* getDMap() const { + JUT_ASSERT(2007, 0); + return NULL; + } + /* vt[77] */ virtual void setDrTg(stage_tgsc_class* i_drtg) { mpDrTg = i_drtg; } + /* vt[78] */ virtual stage_tgsc_class* getDrTg() const { return mpDrTg; } public: /* 0x04 */ stage_lightvec_info_class* mpLightVecInfo; @@ -411,9 +741,9 @@ public: /* 0x40 */ stage_tresure_class* mpTresure; /* 0x44 */ stage_tgsc_class* mpDrTg; /* 0x48 */ dStage_FloorInfo_c* mpFloor; - /* 0x4C */ u8 mRoomNo; + /* 0x4C */ s8 mRoomNo; /* 0x4D */ u8 field_0x4D[0x4E - 0x4D]; - /* 0x4E */ short mPlayerNum; + /* 0x4E */ u16 mPlayerNum; /* 0x50 */ int mVrboxNum; }; @@ -453,19 +783,19 @@ STATIC_ASSERT(sizeof(dStage_roomStatus_c) == 0x114); class dStage_roomControl_c { public: dStage_roomControl_c() {} - + void init(); dStage_roomStatus_c* getStatusRoomDt(int); bool checkRoomDisp(int) const; int loadRoom(int, u8*); void zoneCountCheck(int) const; void checkDrawArea() const; - void getDarkStatus(); + dStage_darkStatus_c* getDarkStatus(); void getDarkMode(); void getBgW(int); - static void createMemoryBlock(int, u32); - static void destroyMemoryBlock(void); + static JKRExpHeap* createMemoryBlock(int, u32); + static void destroyMemoryBlock(); static void SetTimePass(int); static JKRExpHeap* getMemoryBlock(int); static void setStayNo(int); @@ -480,17 +810,18 @@ public: static void onStatusDraw(int i_roomNo) { mStatus[i_roomNo].mDraw = true; } static void setProcID(u32 id) { mProcID = id; } static u32 getProcID() { return mProcID; } - static void setStatusProcID(int i_roomNo, unsigned int i_id) { mStatus[i_roomNo].mProcID = i_id; } + static void setStatusProcID(int i_roomNo, unsigned int i_id) { + mStatus[i_roomNo].mProcID = i_id; + } static int getStatusProcID(int i_roomNo) { return mStatus[i_roomNo].mProcID; } static dStage_darkStatus_c& getDarkStatus(int i_idx) { return mDarkStatus[i_idx]; } + static char* getDemoArcName() { return mDemoArcName; } static void setMemoryBlockID(int i_roomNo, int i_blockID) { mStatus[i_roomNo].mMemBlockID = i_blockID; } - static void setBgW(int param_0, dBgW_base* i_bgw) { - mStatus[param_0].mpBgW = i_bgw; - } + static void setBgW(int param_0, dBgW_base* i_bgw) { mStatus[param_0].mpBgW = i_bgw; } BOOL checkStatusFlag(int i_roomNo, u8 flag) const { return cLib_checkBit(mStatus[i_roomNo].mFlags, flag); @@ -500,17 +831,17 @@ public: return cLib_offBit(mStatus[i_roomNo].mFlags, flag); } - void onStatusFlag(int i_roomNo, u8 flag) { - return cLib_onBit(mStatus[i_roomNo].mFlags, flag); - } + void onStatusFlag(int i_roomNo, u8 flag) { return cLib_onBit(mStatus[i_roomNo].mFlags, flag); } - static JKRExpHeap* mMemoryBlock[101]; + static JKRExpHeap* mMemoryBlock[16]; static dStage_roomStatus_c mStatus[64]; static dStage_darkStatus_c mDarkStatus[8]; + static u8 mDarkRatio; static u32 mProcID; static s8 mStayNo; static s8 mOldStayNo; static s8 m_time_pass; + static char mDemoArcName[8]; private: /* 0x0 */ u8 field_0x0[4]; @@ -521,7 +852,7 @@ public: void set(const char*, s8, s16, s8); const char* getName() const { return mName; } s16 getPoint() const { return mPoint; } - s8 getRoomNo() const { return mRoomNo; } + int getRoomNo() const { return mRoomNo; } s8 getLayer() const { return mLayer; } void setLayer(s8 layer) { mLayer = layer; } @@ -547,6 +878,32 @@ private: /* 0xD */ s8 mWipe; }; // Size: 0xE +// unknown name +struct dStage_objectNameInf { + char mName[8]; + s16 mProcName; + s8 mSubtype; + s8 mGbaName; +}; // Size: 0xC + +typedef int (*dStage_Func)(dStage_dt_c*, void*, int, void*); +struct FuncTable { + char identifier[5]; + dStage_Func function; +}; + +// made up name +struct dStage_fileHeader { + /* 0x0 */ int chunkCount; +}; + +// made up name +struct dStage_nodeHeader { + /* 0x0 */ u32 m_tag; + /* 0x4 */ int m_entryNum; + /* 0x8 */ u32 m_offset; +}; + s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); int dStage_mapInfo_GetOceanZ(stage_map_info_class*); int dStage_mapInfo_GetOceanX(stage_map_info_class*); @@ -564,4 +921,20 @@ inline u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* i_stagInfo) { return (i_stagInfo->field_0x0a >> 0x3) & 0xFF; } +inline u8 dStage_roomRead_dt_c_GetLoadRoomIndex(u8 param_0) { + return param_0 & 0x3f; +} + +inline u8 dStage_roomRead_dt_c_GetReverb(roomRead_data_class& room) { + return room.field_0x1 & 0x7F; +} + +inline s32 dStage_roomRead_dt_c_GetTimePass(roomRead_data_class& data) { + return data.field_0x2 & 3; +} + +inline s32 dStage_sclsInfo_getWipe(stage_scls_info_class* p_info) { + return p_info->mWipe; +} + #endif /* D_D_STAGE_H */ \ No newline at end of file diff --git a/include/d/d_timer.h b/include/d/d_timer.h new file mode 100644 index 000000000..56436c102 --- /dev/null +++ b/include/d/d_timer.h @@ -0,0 +1,40 @@ +#ifndef D_TIMER_H +#define D_TIMER_H + +#include "SSystem/SComponent/c_phase.h" +#include "f_op/f_op_msg_mng.h" + +class dDlst_TimerScrnDraw_c; + +class dTimer_c { +public: + void _create(); + void _execute(); + void _draw(); + void _delete(); + void RestTimeCheck(int); + void deleteCheck(); + void SetSE(); + void start(); + void start(s16); + void stock_start(); + void stock_start(s16); + void stop(u8); + void restart(u8); + void end(int); + void deleteRequest(); + void getTimeMs(); + void getLimitTimeMs(); + void getRestTimeMs(); + + /* 0x000 */ msg_class parent; + /* 0x0FC */ dDlst_TimerScrnDraw_c* mpScrnDraw; + /* 0x100 */ u8 field_0x100[0x104 - 0x100]; + /* 0x104 */ request_of_phase_process_class mPhs; + /* 0x10C */ u8 field_0x10C[0x154 - 0x10C]; + /* 0x154 */ int field_0x154; + /* 0x158 */ u8 field_0x158[0x170 - 0x158]; + /* 0x170 */ JKRHeap* mpSolidHeap; +}; + +#endif /* D_TIMER_H */ \ No newline at end of file diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index f0905f4e7..cca5b9328 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -349,11 +349,12 @@ void fopAcM_delete(fopAc_ac_c* p_actor); s32 fopAcM_delete(unsigned int actorID); -s32 fopAcM_create(s16 procName, u16 enemyNo, u32 parameter, cXyz* p_pos, int roomNo, - csXyz* p_angle, cXyz* p_scale, s8 subType, createFunc p_createFunc); +s32 fopAcM_create(char*, u32 i_parameter, cXyz* i_pos, int i_roomNo, csXyz* i_angle, cXyz* i_scale, createFunc i_createFunc); -s32 fopAcM_create(s16 procName, u32 parameter, cXyz* p_pos, int roomNo, csXyz* p_angle, - cXyz* p_scale, s8 subType); +s32 fopAcM_create(s16 i_procName, u32 i_parameter, cXyz* i_pos, int i_roomNo, csXyz* i_angle, + cXyz* i_scale, s8 i_subType, createFunc i_createFunc); + +inline s32 fopAcM_create(s16 i_procName, createFunc i_createFunc, void*); void* fopAcM_fastCreate(s16 procName, u32 parameter, cXyz* p_pos, int roomNo, csXyz* p_angle, cXyz* p_scale, s8 subType, diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 4ba7775a5..d8adae160 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -3,23 +3,37 @@ // Translation Unit: d_stage.cpp // -#include "d_stage.h" -#include "dolphin/types.h" +#include "d/d_stage.h" +#include "JSystem/JKernel/JKRExpHeap.h" +#include "JSystem/JUtility/JUTAssert.h" +#include "MSL_C/string.h" +#include "SSystem/SComponent/c_malloc.h" +#include "d/actor/d_a_player_link.h" +#include "d/actor/d_a_ship.h" +#include "d/d_bg_s.h" +#include "d/d_bg_s_gnd_chk.h" +#include "d/d_com_inf_game.h" +#include "d/d_procname.h" +#include "f_op/f_op_actor_mng.h" +#include "f_op/f_op_camera_mng.h" +#include "f_op/f_op_kankyo_mng.h" +#include "f_op/f_op_msg_mng.h" +#include "f_op/f_op_scene_mng.h" /* 80040900-80040938 .text set__18dStage_nextStage_cFPCcScsScSc */ -void dStage_nextStage_c::set(const char*, signed char, short, signed char, signed char) { - /* Nonmatching */ +void dStage_nextStage_c::set(const char* i_stage, s8 i_roomId, s16 i_point, s8 i_layer, s8 i_wipe) { + if (!mEnable) { + mEnable = true; + mWipe = i_wipe; + dStage_startStage_c::set(i_stage, i_roomId, i_point, i_layer); + } } /* 80040938-8004093C .text dStage_SetErrorRoom__Fv */ -void dStage_SetErrorRoom() { - /* Nonmatching */ -} +void dStage_SetErrorRoom() {} /* 8004093C-80040940 .text dStage_SetErrorStage__Fv */ -void dStage_SetErrorStage() { - /* Nonmatching */ -} +void dStage_SetErrorStage() {} /* 80040940-8004094C .text dStage_GetKeepTresureInfo__Fv */ void dStage_GetKeepTresureInfo() { @@ -31,7 +45,8 @@ void dStage_GetKeepDoorInfo() { /* Nonmatching */ } -/* 80040958-80040A78 .text dStage_KeepTresureInfoProc__FP11dStage_dt_cP19stage_tresure_class */ +/* 80040958-80040A78 .text dStage_KeepTresureInfoProc__FP11dStage_dt_cP19stage_tresure_class + */ void dStage_KeepTresureInfoProc(dStage_dt_c*, stage_tresure_class*) { /* Nonmatching */ } @@ -42,53 +57,141 @@ void dStage_KeepDoorInfoProc(dStage_dt_c*, stage_tgsc_class*) { } /* 80040BA8-80040BF4 .text set__19dStage_startStage_cFPCcScsSc */ -void dStage_startStage_c::set(const char*, signed char, short, signed char) { - /* Nonmatching */ +void dStage_startStage_c::set(const char* i_name, s8 i_roomNo, s16 i_point, s8 i_layer) { + strcpy(mName, i_name); + mRoomNo = i_roomNo; + mPoint = i_point; + mLayer = i_layer; } +dStage_roomStatus_c dStage_roomControl_c::mStatus[64]; +JKRExpHeap* dStage_roomControl_c::mMemoryBlock[16]; +dStage_darkStatus_c dStage_roomControl_c::mDarkStatus[8]; + +u32 dStage_roomControl_c::mProcID; +s8 dStage_roomControl_c::mStayNo; +s8 dStage_roomControl_c::mOldStayNo; +u8 dStage_roomControl_c::mDarkRatio; +char dStage_roomControl_c::mDemoArcName[8]; +s8 dStage_roomControl_c::m_time_pass; + /* 80040BF4-80040D0C .text init__20dStage_roomControl_cFv */ void dStage_roomControl_c::init() { - /* Nonmatching */ + mStayNo = -1; + mOldStayNo = -1; + + if (dComIfGp_getStartStagePoint() >= 0) { + dComIfGs_initZone(); + } + + dStage_roomStatus_c* status = mStatus; + for (int i = 0; i < 64; i++) { + status->mRoomDt.init(); + setStatusFlag(i, 0); + status->mDraw = false; + + if (dComIfGp_getStartStagePoint() >= 0) { + status->mZoneNo = -1; + } else if (status->mZoneNo >= 0) { + dComIfGs_clearRoomSwitch(status->mZoneNo); + } + + status->mMemBlockID = -1; + status->mpBgW = NULL; + status++; + } + + mDarkRatio = 0xFF; + + for (int i = 0; i < 16; i++) { + mMemoryBlock[i] = NULL; + } } /* 80040D0C-80040D38 .text getStatusRoomDt__20dStage_roomControl_cFi */ -void dStage_roomControl_c::getStatusRoomDt(int) { - /* Nonmatching */ +dStage_roomStatus_c* dStage_roomControl_c::getStatusRoomDt(int i_statusIdx) { + if (i_statusIdx < 0 || i_statusIdx >= 0x40) { + return NULL; + } + return &mStatus[i_statusIdx]; } /* 80040D38-80040D70 .text getMemoryBlock__20dStage_roomControl_cFi */ -void dStage_roomControl_c::getMemoryBlock(int) { - /* Nonmatching */ +JKRExpHeap* dStage_roomControl_c::getMemoryBlock(int i_roomNo) { + int blockId = getMemoryBlockID(i_roomNo); + + if (blockId < 0) { + return NULL; + } + return mMemoryBlock[blockId]; } /* 80040D70-80040DA8 .text setStayNo__20dStage_roomControl_cFi */ -void dStage_roomControl_c::setStayNo(int) { - /* Nonmatching */ +void dStage_roomControl_c::setStayNo(int i_roomNo) { + mOldStayNo = mStayNo; + mStayNo = i_roomNo; + + if (mStayNo == 0xFF) { + return; + } + + onStatusDraw(mStayNo); } /* 80040DA8-80040DDC .text stayRoomCheck__FiPUci */ -void stayRoomCheck(int, unsigned char*, int) { - /* Nonmatching */ +int stayRoomCheck(int param_0, u8* param_1, int param_2) { + for (; param_0 > 0; param_0--) { + if (param_2 == dStage_roomRead_dt_c_GetLoadRoomIndex(*param_1)) { + return 1; + } + param_1++; + } + return 0; } /* 80040DDC-80040E38 .text createRoomScene__Fi */ -void createRoomScene(int) { - /* Nonmatching */ +int createRoomScene(int param_0) { + int* ptr = (int*)JKRHeap::alloc(4, -4, NULL); + if (ptr == NULL) { + return 0; + } + + *ptr = param_0; + return fopScnM_CreateReq(PROC_ROOM_SCENE, 0x7FFF, 0, (u32)ptr); } /* 80040E38-80040E6C .text checkRoomDisp__20dStage_roomControl_cCFi */ -void dStage_roomControl_c::checkRoomDisp(int) const { - /* Nonmatching */ +bool dStage_roomControl_c::checkRoomDisp(int i_roomNo) const { + if (checkStatusFlag(i_roomNo, 8)) { + return false; + } + + return checkStatusFlag(i_roomNo, 16) ? true : false; } /* 80040E6C-80040FD8 .text loadRoom__20dStage_roomControl_cFiPUc */ -void dStage_roomControl_c::loadRoom(int, unsigned char*) { +int dStage_roomControl_c::loadRoom(int, u8*) { /* Nonmatching */ } /* 80040FD8-800410AC .text zoneCountCheck__20dStage_roomControl_cCFi */ -void dStage_roomControl_c::zoneCountCheck(int) const { - /* Nonmatching */ +void dStage_roomControl_c::zoneCountCheck(int i_roomNo) const { + dStage_roomStatus_c* status = mStatus; + for (int i = 0; i < 64; i++) { + if (status->mZoneNo >= 0 && status->mZoneCount > 0) { + dComIfGs_clearRoomSwitch(status->mZoneNo); + + if (i_roomNo != mOldStayNo) { + if (--status->mZoneCount == 0) { + dComIfGs_removeZone(status->mZoneNo); + status->mZoneNo = -1; + } + } + } + status++; + } + + setStayNo(i_roomNo); } /* 800410AC-800412EC .text checkDrawArea__20dStage_roomControl_cCFv */ @@ -97,8 +200,14 @@ void dStage_roomControl_c::checkDrawArea() const { } /* 800412EC-80041330 .text getDarkStatus__20dStage_roomControl_cFv */ -void dStage_roomControl_c::getDarkStatus() { - /* Nonmatching */ +// NONMATCHING +dStage_darkStatus_c* dStage_roomControl_c::getDarkStatus() { + dStage_FileList_dt_c* plist_p = mStatus[mStayNo].mRoomDt.mpFileList; + if (plist_p == NULL) { + return NULL; + } + + return &mDarkStatus[plist_p->mParam & 0x78]; } /* 80041330-80041370 .text getDarkMode__20dStage_roomControl_cFv */ @@ -107,53 +216,978 @@ void dStage_roomControl_c::getDarkMode() { } /* 80041370-800413D4 .text createMemoryBlock__20dStage_roomControl_cFiUl */ -void dStage_roomControl_c::createMemoryBlock(int, unsigned long) { - /* Nonmatching */ +JKRExpHeap* dStage_roomControl_c::createMemoryBlock(int i_blockIdx, u32 i_heapSize) { + archiveHeap->getCurrentGroupId(); + mMemoryBlock[i_blockIdx] = JKRExpHeap::create(i_heapSize, mDoExt_getArchiveHeap(), false); + return mMemoryBlock[i_blockIdx]; } /* 800413D4-80041430 .text destroyMemoryBlock__20dStage_roomControl_cFv */ void dStage_roomControl_c::destroyMemoryBlock() { - /* Nonmatching */ + for (int i = 0; i < (int)ARRAY_SIZE(mMemoryBlock); i++) { + if (mMemoryBlock[i] != NULL) { + mMemoryBlock[i]->destroy(); + } + } } /* 80041430-800414A4 .text init__16dStage_stageDt_cFv */ void dStage_stageDt_c::init() { - /* Nonmatching */ + mpCamera = NULL; + mpArrow = NULL; + mpPlayer = NULL; + mpRoomReads = NULL; + mpMapInfo = NULL; + mpMapInfoBase = NULL; + mpPaletInfo = NULL; + mpPselectInfo = NULL; + mpEnvrInfo = NULL; + mpVrboxInfo = NULL; + mpPlightInfo = NULL; + mPlightInfoNum = 0; + mpStagInfo = NULL; + mpScls = NULL; + mpPnt = NULL; + mpPath = NULL; + mpPnt2 = NULL; + mpPath2 = NULL; + mpSoundInfo = NULL; + mpEventInfo = NULL; + mpFloorInfo = NULL; + mpMemoryConfig = NULL; + mpMemoryMap = NULL; + mpMulti = NULL; + mpTresure = NULL; + mpDMap = NULL; + mpDrTg = NULL; } /* 800414A4-800414F4 .text init__15dStage_roomDt_cFv */ void dStage_roomDt_c::init() { - /* Nonmatching */ + mpLightVecInfo = NULL; + mLightVecInfoNum = 0; + mpMapInfo = NULL; + mpMapInfoBase = NULL; + mpVrbox = NULL; + mpFileList = NULL; + mpShip = NULL; + mpPlayer = NULL; + mpPoint2 = NULL; + mpPath2 = NULL; + mpCamera = NULL; + mpArrow = NULL; + mpSound = NULL; + mpScls = NULL; + mpLbnk = NULL; + mpTresure = NULL; + mpDrTg = NULL; + mpFloor = NULL; } /* 800414F4-80041544 .text dStage_roomInit__Fi */ -void dStage_roomInit(int) { - /* Nonmatching */ +int dStage_roomInit(int i_roomNo) { + dComIfGp_roomControl_setStatusFlag(i_roomNo, 2); + createRoomScene(i_roomNo); + dComIfGp_roomControl_setStayNo(i_roomNo); + return 1; } +#define OBJNAME(name, proc, sub, gba) \ + { \ + name, proc, sub, gba \ + } + +dStage_objectNameInf l_objectName[] = { + OBJNAME("kusax1", PROC_GRASS, 255, 0), + OBJNAME("kusax7", PROC_GRASS, 255, 0), + OBJNAME("kusax21", PROC_GRASS, 255, 0), + OBJNAME("flower", PROC_GRASS, 255, 0), + OBJNAME("flwr7", PROC_GRASS, 255, 0), + OBJNAME("flwr17", PROC_GRASS, 255, 0), + OBJNAME("pflower", PROC_GRASS, 255, 0), + OBJNAME("pflwrx7", PROC_GRASS, 255, 0), + OBJNAME("swood", PROC_GRASS, 255, 0), + OBJNAME("swood3", PROC_GRASS, 255, 0), + OBJNAME("swood5", PROC_GRASS, 255, 0), + OBJNAME("woodb", PROC_Obj_Wood, 255, 0), + OBJNAME("woodbx", PROC_Obj_Wood, 255, 0), + OBJNAME("door10", PROC_DOOR10, 255, 0), + OBJNAME("door11", PROC_DOOR10, 255, 0), + OBJNAME("door20", PROC_DOOR10, 255, 0), + OBJNAME("door21", PROC_DOOR10, 255, 0), + OBJNAME("Zenshut", PROC_DOOR10, 255, 0), + OBJNAME("keyshut", PROC_DOOR10, 255, 0), + OBJNAME("K_Zshut", PROC_DOOR10, 255, 0), + OBJNAME("ATdoor", PROC_ATDOOR, 255, 0), + OBJNAME("Mori1", PROC_MDOOR, 255, 0), + OBJNAME("doorKD", PROC_KDDOOR, 255, 0), + OBJNAME("ZenshKD", PROC_KDDOOR, 255, 0), + OBJNAME("K_ZshKD", PROC_KDDOOR, 255, 0), + OBJNAME("doorSH", PROC_KDDOOR, 255, 0), + OBJNAME("doorSZ", PROC_KDDOOR, 255, 0), + OBJNAME("KNOB00", PROC_KNOB00, 255, 0), + OBJNAME("KNOB01", PROC_KNOB00, 255, 0), + OBJNAME("KNOB02", PROC_KNOB00, 255, 0), + OBJNAME("KNOB03", PROC_KNOB00, 255, 0), + OBJNAME("KNOB00D", PROC_KNOB00, 255, 0), + OBJNAME("KNOB01D", PROC_KNOB00, 255, 0), + OBJNAME("KNOB02D", PROC_KNOB00, 255, 0), + OBJNAME("KNOB03D", PROC_KNOB00, 255, 0), + OBJNAME("door12", PROC_DOOR12, 0, 0), + OBJNAME("door12M", PROC_DOOR12, 1, 0), + OBJNAME("door12B", PROC_DOOR12, 2, 0), + OBJNAME("door13", PROC_DOOR12, 3, 0), + OBJNAME("door13M", PROC_DOOR12, 4, 0), + OBJNAME("door13B", PROC_DOOR12, 5, 0), + OBJNAME("keyS12", PROC_DOOR12, 1, 0), + OBJNAME("ZenS12", PROC_DOOR12, 2, 0), + OBJNAME("bonbori", PROC_EP, 255, 0), + OBJNAME("SW_C00", PROC_SWC00, 255, 0), + OBJNAME("takara", PROC_TBOX, 255, 62), + OBJNAME("takara2", PROC_TBOX, 255, 62), + OBJNAME("takara3", PROC_TBOX, 255, 62), + OBJNAME("takara4", PROC_TBOX, 255, 62), + OBJNAME("takara5", PROC_TBOX, 255, 62), + OBJNAME("takara6", PROC_TBOX, 255, 62), + OBJNAME("takara7", PROC_TBOX, 255, 62), + OBJNAME("takara8", PROC_TBOX, 255, 62), + OBJNAME("takaraK", PROC_TBOX, 255, 62), + OBJNAME("takaraI", PROC_TBOX, 255, 62), + OBJNAME("takaraM", PROC_TBOX, 255, 62), + OBJNAME("tkrASw", PROC_TBOX, 255, 62), + OBJNAME("tkrAGc", PROC_TBOX, 255, 62), + OBJNAME("tkrAKd", PROC_TBOX, 255, 62), + OBJNAME("tkrAIk", PROC_TBOX, 255, 62), + OBJNAME("tkrBMs", PROC_TBOX, 255, 62), + OBJNAME("tkrCTf", PROC_TBOX, 255, 62), + OBJNAME("tkrAOc", PROC_TBOX, 255, 62), + OBJNAME("tkrAOs", PROC_TBOX, 255, 62), + OBJNAME("tkrSlv", PROC_SBOX, 255, 62), + OBJNAME("agbA", PROC_AGBSW0, 255, 0), + OBJNAME("agbAT", PROC_AGBSW0, 255, 0), + OBJNAME("agbA2", PROC_AGBSW0, 255, 0), + OBJNAME("agbF", PROC_AGBSW0, 255, 0), + OBJNAME("agbF2", PROC_AGBSW0, 255, 0), + OBJNAME("agbMARK", PROC_AGBSW0, 255, 0), + OBJNAME("agbMW", PROC_AGBSW0, 255, 0), + OBJNAME("agbCSW", PROC_AGBSW0, 255, 0), + OBJNAME("agbTBOX", PROC_AGBSW0, 255, 0), + OBJNAME("agbR", PROC_AGBSW0, 255, 0), + OBJNAME("agbB", PROC_AGBSW0, 255, 0), + OBJNAME("agbD", PROC_AGBSW0, 255, 0), + OBJNAME("agbFA", PROC_AGBSW0, 255, 0), + OBJNAME("NoneCam", PROC_CAMERA, 255, 0), + OBJNAME("NormCam", PROC_CAMERA, 255, 0), + OBJNAME("Link", PROC_PLAYER, 255, 0), + OBJNAME("kotubo", PROC_TSUBO, 0, 0), + OBJNAME("ootubo1", PROC_TSUBO, 1, 0), + OBJNAME("Kmtub", PROC_TSUBO, 2, 0), + OBJNAME("Ktaru", PROC_TSUBO, 3, 0), + OBJNAME("Ostool", PROC_TSUBO, 4, 0), + OBJNAME("Odokuro", PROC_TSUBO, 5, 0), + OBJNAME("Okioke", PROC_TSUBO, 6, 0), + OBJNAME("Kmi02", PROC_TSUBO, 7, 0), + OBJNAME("Ptubo", PROC_TSUBO, 8, 0), + OBJNAME("KkibaB", PROC_TSUBO, 9, 0), + OBJNAME("Kmi00", PROC_TSUBO, 10, 0), + OBJNAME("Hbox2S", PROC_TSUBO, 11, 0), + OBJNAME("SW_HIT0", PROC_SWHIT0, 255, 0), + OBJNAME("koisi1", PROC_STONE, 0, 0), + OBJNAME("koisi2", PROC_STONE, 1, 0), + OBJNAME("Aygr", PROC_Obj_Aygr, 255, 0), + OBJNAME("Salvage", PROC_Salvage, 255, 0), + OBJNAME("SwSlvg", PROC_Salvage, 255, 63), + OBJNAME("Salvag2", PROC_Salvage, 255, 63), + OBJNAME("SalvagN", PROC_Salvage, 255, 63), + OBJNAME("SalvagE", PROC_Salvage, 255, 63), + OBJNAME("SalvFM", PROC_Salvage, 255, 63), + OBJNAME("osiBLK0", PROC_Obj_Movebox, 0, 61), + OBJNAME("osiBLK1", PROC_Obj_Movebox, 1, 61), + OBJNAME("Kkiba", PROC_Obj_Movebox, 2, 61), + OBJNAME("Hseki2", PROC_Obj_Movebox, 3, 61), + OBJNAME("Hseki7", PROC_Obj_Movebox, 4, 61), + OBJNAME("Mmrr", PROC_Obj_Movebox, 5, 61), + OBJNAME("MkieBB", PROC_Obj_Movebox, 6, 61), + OBJNAME("Ecube", PROC_Obj_Movebox, 7, 61), + OBJNAME("Hjump1", PROC_Obj_Movebox, 8, 61), + OBJNAME("Hbox1", PROC_Obj_Movebox, 9, 61), + OBJNAME("MpwrB", PROC_Obj_Movebox, 10, 61), + OBJNAME("DBLK0", PROC_Obj_Movebox, 11, 61), + OBJNAME("DBLK1", PROC_Obj_Movebox, 12, 61), + OBJNAME("DKkiba", PROC_Obj_Movebox, 13, 61), + OBJNAME("Hbox2", PROC_Obj_Movebox, 14, 61), + OBJNAME("BLK_CR", PROC_Obj_Correct, 0, 0), + OBJNAME("CrTrS3", PROC_Obj_Correct, 1, 0), + OBJNAME("CrTrS4", PROC_Obj_Correct, 2, 0), + OBJNAME("CrTrS5", PROC_Obj_Correct, 3, 0), + OBJNAME("CrTrM1", PROC_Obj_Correct, 4, 0), + OBJNAME("CrTrM2", PROC_Obj_Correct, 5, 0), + OBJNAME("CrTrGr", PROC_Obj_Correct, 6, 61), + OBJNAME("CrTrBl", PROC_Obj_Correct, 7, 61), + OBJNAME("Kbota_A", PROC_Obj_Swpush, 0, 0), + OBJNAME("Kbota_B", PROC_Obj_Swpush, 1, 0), + OBJNAME("KbotaC", PROC_Obj_Swpush, 2, 0), + OBJNAME("Hhbot1", PROC_Obj_Swheavy, 0, 0), + OBJNAME("Hhbot1N", PROC_Obj_Swheavy, 1, 0), + OBJNAME("MhmrSW0", PROC_Obj_Swhammer, 255, 0), + OBJNAME("TagSo", PROC_TAG_SO, 0, 0), + OBJNAME("TagMSo", PROC_TAG_SO, 1, 0), + OBJNAME("PScnChg", PROC_TAG_GSHIP, 255, 0), + OBJNAME("ALLdie", PROC_ALLDIE, 255, 0), + OBJNAME("TagEv", PROC_TAG_EVENT, 255, 0), + OBJNAME("TagHt", PROC_TAG_HINT, 0, 0), + OBJNAME("TagHt2", PROC_TAG_HINT, 1, 0), + OBJNAME("TagMsg", PROC_TAG_MSG, 0, 0), + OBJNAME("TagMsg2", PROC_TAG_MSG, 1, 0), + OBJNAME("TagIsl", PROC_TAG_ISLAND, 0, 0), + OBJNAME("TagMd", PROC_TAG_ETC, 0, 0), + OBJNAME("TagKf1", PROC_TAG_KF1, 255, 0), + OBJNAME("TagKk1", PROC_TAG_KK1, 255, 0), + OBJNAME("TagKb", PROC_TAG_KB_ITEM, 255, 0), + OBJNAME("TagMk", PROC_TAG_MK, 0, 0), + OBJNAME("TagWp", PROC_TAG_MK, 1, 0), + OBJNAME("TagDM", PROC_TAG_MK, 2, 0), + OBJNAME("TagTy", PROC_TAG_MK, 3, 0), + OBJNAME("TagMd1", PROC_TAG_MDCB, 0, 0), + OBJNAME("TagCb1", PROC_TAG_MDCB, 1, 0), + OBJNAME("TagMd11", PROC_TAG_MDCB, 2, 0), + OBJNAME("TagMd12", PROC_TAG_MDCB, 3, 0), + OBJNAME("TagMd13", PROC_TAG_MDCB, 4, 0), + OBJNAME("TagMd14", PROC_TAG_MDCB, 5, 0), + OBJNAME("TagMd15", PROC_TAG_MDCB, 6, 0), + OBJNAME("TagMd16", PROC_TAG_MDCB, 7, 0), + OBJNAME("TagCb11", PROC_TAG_MDCB, 8, 0), + OBJNAME("TagCb12", PROC_TAG_MDCB, 9, 0), + OBJNAME("TagCb13", PROC_TAG_MDCB, 10, 0), + OBJNAME("TagCb14", PROC_TAG_MDCB, 11, 0), + OBJNAME("TagBa1", PROC_TAG_BA1, 1, 0), + OBJNAME("Evsw", PROC_TAG_EVSW, 255, 0), + OBJNAME("Search", PROC_OBJ_SEARCH, 255, 0), + OBJNAME("Otble", PROC_OBJ_OTBLE, 0, 0), + OBJNAME("OtbleL", PROC_OBJ_OTBLE, 1, 0), + OBJNAME("Warpt", PROC_OBJ_WARPT, 0, 49), + OBJNAME("Warpnt", PROC_OBJ_WARPT, 1, 49), + OBJNAME("Warpts1", PROC_OBJ_WARPT, 2, 49), + OBJNAME("Warpts2", PROC_OBJ_WARPT, 3, 49), + OBJNAME("Warpts3", PROC_OBJ_WARPT, 4, 49), + OBJNAME("Seatag", PROC_SEATAG, 255, 0), + OBJNAME("Warpf", PROC_WARPFLOWER, 255, 0), + OBJNAME("Hys", PROC_Hys, 255, 0), + OBJNAME("Hys2", PROC_Hys, 255, 0), + OBJNAME("Hsen1", PROC_FAN, 255, 0), + OBJNAME("Hsen2", PROC_FAN, 255, 0), + OBJNAME("Hsen3", PROC_FAN, 255, 0), + OBJNAME("Olift", PROC_LEAF_LIFT, 255, 0), + OBJNAME("Ylsic", PROC_ICE_LIFT, 255, 0), + OBJNAME("Yllic", PROC_ICE_LIFT, 255, 0), + OBJNAME("Ylkic", PROC_ICE_LIFT, 255, 0), + OBJNAME("Hpbot1", PROC_SW_PROPELLER, 255, 0), + OBJNAME("Vpbot", PROC_SW_PROPELLER, 255, 0), + OBJNAME("Hami1", PROC_AMI_PROP, 255, 0), + OBJNAME("HamiY", PROC_AMI_PROP, 255, 0), + OBJNAME("LTag0", PROC_Tag_Light, 0, 0), + OBJNAME("LTag1", PROC_Tag_Light, 1, 0), + OBJNAME("LTagR0", PROC_Tag_Light, 2, 0), + OBJNAME("AttTag", PROC_Tag_Attention, 0, 0), + OBJNAME("AttTagB", PROC_Tag_Attention, 1, 0), + OBJNAME("Ikori", PROC_Obj_Ice, 255, 0), + OBJNAME("MsuSW", PROC_Obj_Swlight, 0, 0), + OBJNAME("MsuSWB", PROC_Obj_Swlight, 1, 0), + OBJNAME("SWat00", PROC_SW_ATTACK, 255, 0), + OBJNAME("ITat00", PROC_SW_ITEM, 255, 0), + OBJNAME("SWtact", PROC_SW_TACT, 255, 0), + OBJNAME("SWtactB", PROC_SW_TACT, 255, 0), + OBJNAME("Hhyu1", PROC_FLOOR, 255, 0), + OBJNAME("Oyashi", PROC_Obj_Lpalm, 255, 0), + OBJNAME("Kanban", PROC_KANBAN, 255, 52), + OBJNAME("kt", PROC_KT, 255, 0), + OBJNAME("ho", PROC_FF, 255, 0), + OBJNAME("mo2", PROC_MO2, 255, 2), + OBJNAME("moZOU", PROC_MOZO, 255, 0), + OBJNAME("hotest", PROC_RECTANGLE, 255, 0), + OBJNAME("Kui", PROC_KUI, 255, 0), + OBJNAME("Kamome", PROC_KAMOME, 255, 0), + OBJNAME("item", PROC_ITEM, 255, 0), + OBJNAME("itemFLY", PROC_ITEM, 255, 0), + OBJNAME("itemDek", PROC_DEKU_ITEM, 255, 0), + OBJNAME("Ship", PROC_SHIP, 255, 0), + OBJNAME("AND_SW0", PROC_ANDSW0, 255, 0), + OBJNAME("AND_SW2", PROC_ANDSW2, 255, 0), + OBJNAME("Bb", PROC_BB, 255, 26), + OBJNAME("Ebrock", PROC_Stone2, 0, 0), + OBJNAME("Ekao", PROC_Stone2, 1, 0), + OBJNAME("Ebrock2", PROC_Stone2, 2, 0), + OBJNAME("ky_tag0", PROC_KYTAG00, 255, 0), + OBJNAME("kytag00", PROC_KYTAG00, 255, 0), + OBJNAME("ky00you", PROC_KYTAG00, 255, 0), + OBJNAME("ky_tag1", PROC_KYTAG01, 255, 0), + OBJNAME("ky_tag2", PROC_KYTAG02, 255, 0), + OBJNAME("ky_tag3", PROC_KYTAG03, 255, 0), + OBJNAME("kytag4", PROC_KYTAG04, 255, 0), + OBJNAME("kytag5", PROC_KYTAG05, 255, 0), + OBJNAME("kytag6", PROC_KYTAG06, 255, 0), + OBJNAME("kytag7", PROC_KYTAG07, 255, 0), + OBJNAME("sea", PROC_SEA, 255, 0), + OBJNAME("nezumi", PROC_NZ, 255, 24), + OBJNAME("nezuana", PROC_NZG, 255, 0), + OBJNAME("kani", PROC_KN, 255, 0), + OBJNAME("Demo_Dk", PROC_DEMO_DK, 255, 0), + OBJNAME("DmKmm", PROC_DEMO_KMM, 0, 0), + OBJNAME("DmKmm2", PROC_DEMO_KMM, 1, 0), + OBJNAME("amos", PROC_AM, 255, 12), + OBJNAME("amos2", PROC_AM2, 255, 11), + OBJNAME("gmos", PROC_GM, 255, 9), + OBJNAME("gmos_g", PROC_GM, 255, 9), + OBJNAME("gmos_f", PROC_GM, 255, 9), + OBJNAME("kuro_s", PROC_KS, 255, 20), + OBJNAME("kuro_t", PROC_KS, 255, 0), + OBJNAME("c_green", PROC_CC, 255, 22), + OBJNAME("c_red", PROC_CC, 255, 21), + OBJNAME("c_blue", PROC_CC, 255, 30), + OBJNAME("c_black", PROC_CC, 255, 16), + OBJNAME("c_kiiro", PROC_CC, 255, 10), + OBJNAME("bable", PROC_BL, 255, 15), + OBJNAME("bable_r", PROC_BL, 255, 14), + OBJNAME("wiz_r", PROC_WZ, 255, 17), + OBJNAME("wiz_s", PROC_WZ, 255, 17), + OBJNAME("wiz_m", PROC_WZ, 255, 17), + OBJNAME("wiz_o", PROC_WZ, 255, 17), + OBJNAME("p_hat", PROC_PH, 255, 8), + OBJNAME("p_zelda", PROC_PZ, 255, 60), + OBJNAME("big_pow", PROC_BPW, 255, 0), + OBJNAME("pow", PROC_PW, 255, 13), + OBJNAME("sea_hat", PROC_PH, 255, 31), + OBJNAME("jbaba", PROC_JBO, 255, 33), + OBJNAME("bbaba", PROC_BO, 255, 7), + OBJNAME("bridge", PROC_BRIDGE, 255, 0), + OBJNAME("dragon", PROC_DR, 255, 0), + OBJNAME("Nh", PROC_NH, 255, 0), + OBJNAME("NpcSo", PROC_NPC_SO, 255, 0), + OBJNAME("NpcNz", PROC_NPC_NZ, 255, 0), + OBJNAME("Os", PROC_NPC_OS, 0, 0), + OBJNAME("Os1", PROC_NPC_OS, 1, 0), + OBJNAME("Os2", PROC_NPC_OS, 2, 0), + OBJNAME("Ym1", PROC_NPC_YM1, 255, 59), + OBJNAME("Ym2", PROC_NPC_YM2, 255, 59), + OBJNAME("Yw1", PROC_NPC_YW1, 255, 60), + OBJNAME("Ji1", PROC_NPC_JI1, 255, 59), + OBJNAME("Ko1", PROC_NPC_KO1, 255, 59), + OBJNAME("Ko2", PROC_NPC_KO2, 255, 59), + OBJNAME("Ls1", PROC_NPC_LS1, 255, 60), + OBJNAME("Bm1", PROC_NPC_BM1, 255, 59), + OBJNAME("Bm2", PROC_NPC_BM2, 255, 59), + OBJNAME("Bm3", PROC_NPC_BM3, 255, 59), + OBJNAME("Bm4", PROC_NPC_BM4, 255, 59), + OBJNAME("Bm5", PROC_NPC_BM5, 255, 59), + OBJNAME("Bmcon1", PROC_NPC_BMCON1, 0, 0), + OBJNAME("Bmcon2", PROC_NPC_BMCON1, 1, 0), + OBJNAME("Bmsw", PROC_NPC_BMSW, 255, 0), + OBJNAME("Btsw", PROC_NPC_BTSW, 255, 0), + OBJNAME("Btsw2", PROC_NPC_BTSW2, 255, 59), + OBJNAME("Zk1", PROC_NPC_ZK1, 255, 59), + OBJNAME("Zl1", PROC_NPC_ZL1, 255, 60), + OBJNAME("Ob1", PROC_NPC_OB1, 255, 60), + OBJNAME("Aj1", PROC_NPC_AJ1, 255, 59), + OBJNAME("Km1", PROC_NPC_KM1, 255, 60), + OBJNAME("Cb1", PROC_NPC_CB1, 255, 59), + OBJNAME("Ba1", PROC_NPC_BA1, 255, 60), + OBJNAME("Bj1", PROC_NPC_BJ1, 255, 59), + OBJNAME("Bj2", PROC_NPC_BJ2, 255, 59), + OBJNAME("Bj3", PROC_NPC_BJ3, 255, 59), + OBJNAME("Bj4", PROC_NPC_BJ4, 255, 59), + OBJNAME("Bj5", PROC_NPC_BJ5, 255, 59), + OBJNAME("Bj6", PROC_NPC_BJ6, 255, 59), + OBJNAME("Bj7", PROC_NPC_BJ7, 255, 59), + OBJNAME("Bj8", PROC_NPC_BJ8, 255, 59), + OBJNAME("Bj9", PROC_NPC_BJ9, 255, 59), + OBJNAME("Bs1", PROC_NPC_BS1, 0, 59), + OBJNAME("Bs2", PROC_NPC_BS1, 1, 0), + OBJNAME("Bms1", PROC_NPC_BMS1, 0, 0), + OBJNAME("Bms2", PROC_NPC_BMS1, 1, 0), + OBJNAME("Ds1", PROC_NPC_DS1, 255, 59), + OBJNAME("Rsh1", PROC_NPC_RSH1, 255, 59), + OBJNAME("Kk1", PROC_NPC_KK1, 255, 60), + OBJNAME("Pm1", PROC_NPC_PM1, 255, 60), + OBJNAME("Kp1", PROC_NPC_KP1, 255, 60), + OBJNAME("Pf1", PROC_NPC_PF1, 255, 59), + OBJNAME("Gp1", PROC_NPC_GP1, 255, 59), + OBJNAME("Jb1", PROC_NPC_JB1, 255, 0), + OBJNAME("Kf1", PROC_NPC_KF1, 255, 59), + OBJNAME("De1", PROC_NPC_DE1, 255, 59), + OBJNAME("Sfairy", PROC_NPC_FA1, 255, 0), + OBJNAME("Md1", PROC_NPC_MD, 255, 60), + OBJNAME("Uo1", PROC_NPC_PEOPLE, 0, 59), + OBJNAME("Uo2", PROC_NPC_PEOPLE, 1, 59), + OBJNAME("Uo3", PROC_NPC_PEOPLE, 2, 59), + OBJNAME("Ub1", PROC_NPC_PEOPLE, 3, 0), + OBJNAME("Ub2", PROC_NPC_PEOPLE, 4, 0), + OBJNAME("Ub3", PROC_NPC_PEOPLE, 5, 0), + OBJNAME("Ub4", PROC_NPC_PEOPLE, 6, 0), + OBJNAME("Uw1", PROC_NPC_PEOPLE, 7, 0), + OBJNAME("Uw2", PROC_NPC_PEOPLE, 8, 0), + OBJNAME("Um1", PROC_NPC_PEOPLE, 9, 0), + OBJNAME("Um2", PROC_NPC_PEOPLE, 10, 0), + OBJNAME("Um3", PROC_NPC_PEOPLE, 11, 0), + OBJNAME("Sa1", PROC_NPC_PEOPLE, 12, 0), + OBJNAME("Sa2", PROC_NPC_PEOPLE, 13, 0), + OBJNAME("Sa3", PROC_NPC_PEOPLE, 14, 0), + OBJNAME("Sa4", PROC_NPC_PEOPLE, 15, 0), + OBJNAME("Sa5", PROC_NPC_PEOPLE, 16, 0), + OBJNAME("Ug1", PROC_NPC_PEOPLE, 17, 0), + OBJNAME("Ug2", PROC_NPC_PEOPLE, 18, 0), + OBJNAME("Gk1", PROC_NPC_GK1, 255, 59), + OBJNAME("Ac1", PROC_NPC_AC1, 255, 59), + OBJNAME("Hi1", PROC_NPC_HI1, 255, 59), + OBJNAME("Pirates", PROC_Obj_Pirateship, 255, 0), + OBJNAME("keeth", PROC_KI, 255, 23), + OBJNAME("Fkeeth", PROC_KI, 255, 6), + OBJNAME("yg_awa", PROC_YOUGAN, 255, 0), + OBJNAME("magtail", PROC_MT, 255, 5), + OBJNAME("RopeR", PROC_HIMO3, 255, 0), + OBJNAME("Ktarur", PROC_Obj_Barrel2, 255, 61), + OBJNAME("Ktarux", PROC_Obj_Barrel, 255, 0), + OBJNAME("Magrock", PROC_Obj_Magmarock, 255, 0), + OBJNAME("Quake", PROC_Obj_Quake, 255, 0), + OBJNAME("Yfire00", PROC_Obj_Flame, 255, 0), + OBJNAME("Turu", PROC_SK, 0, 0), + OBJNAME("Turu2", PROC_SK2, 0, 0), + OBJNAME("Turu3", PROC_SK2, 1, 0), + OBJNAME("Kanat", PROC_Obj_Kanat, 255, 0), + OBJNAME("s_turu", PROC_SSK, 255, 0), + OBJNAME("spotbox", PROC_SPOTBOX, 255, 0), + OBJNAME("Ksaku", PROC_SAKU, 255, 0), + OBJNAME("spotbx1", PROC_SPOTBOX, 255, 0), + OBJNAME("Mswing", PROC_MSW, 255, 0), + OBJNAME("Pig", PROC_KB, 255, 0), + OBJNAME("Rdead1", PROC_RD, 0, 18), + OBJNAME("Rdead2", PROC_RD, 1, 18), + OBJNAME("Fmaster", PROC_FM, 0, 25), + OBJNAME("Fmastr1", PROC_FM, 1, 25), + OBJNAME("Fmastr2", PROC_FM, 2, 25), + OBJNAME("Daiocta", PROC_DAIOCTA, 255, 28), + OBJNAME("Daioeye", PROC_DAIOCTA_EYE, 255, 0), + OBJNAME("Oq", PROC_OQ, 0, 27), + OBJNAME("Oqw", PROC_OQ, 1, 65), + OBJNAME("Gy", PROC_GY, 255, 29), + OBJNAME("GyCtrl", PROC_GY_CTRL, 255, 0), + OBJNAME("GyCtrlB", PROC_GY_CTRLB, 255, 0), + OBJNAME("Bk", PROC_BK, 255, 1), + OBJNAME("Ypit00", PROC_OBJ_HOLE, 0, 0), + OBJNAME("Pitfall", PROC_OBJ_HOLE, 1, 0), + OBJNAME("Nzfall", PROC_OBJ_PFALL, 255, 0), + OBJNAME("ScnChg", PROC_SCENECHG, 255, 0), + OBJNAME("Oship", PROC_OSHIP, 255, 56), + OBJNAME("Ayush", PROC_AYUSH, 255, 57), + OBJNAME("Tpost", PROC_OBJ_TORIPOST, 255, 53), + OBJNAME("Ocanon", PROC_OBJ_CANON, 255, 0), + OBJNAME("Ikada", PROC_OBJ_IKADA, 0, 61), + OBJNAME("ikada_h", PROC_OBJ_IKADA, 1, 61), + OBJNAME("ikadaS", PROC_OBJ_IKADA, 2, 61), + OBJNAME("ikada_u", PROC_OBJ_IKADA, 3, 61), + OBJNAME("Svsp", PROC_OBJ_IKADA, 4, 61), + OBJNAME("Sv0", PROC_NPC_SV, 0, 0), + OBJNAME("Sv1", PROC_NPC_SV, 1, 0), + OBJNAME("Sv2", PROC_NPC_SV, 2, 0), + OBJNAME("Sv3", PROC_NPC_SV, 3, 0), + OBJNAME("MjDoor", PROC_OBJ_MJDOOR, 255, 0), + OBJNAME("Ikari", PROC_IKARI, 255, 0), + OBJNAME("MjFlag", PROC_MAJUU_FLAG, 0, 0), + OBJNAME("MtFlag", PROC_MAJUU_FLAG, 1, 0), + OBJNAME("HcFlag", PROC_MAJUU_FLAG, 3, 0), + OBJNAME("TrFlag", PROC_Tori_Flag, 0, 0), + OBJNAME("SieFlag", PROC_Sie_Flag, 0, 0), + OBJNAME("lwood", PROC_Lwood, 255, 0), + OBJNAME("Ktaruo", PROC_Obj_Demo_Barrel, 255, 0), + OBJNAME("Touseki", PROC_Obj_Tousekiki, 255, 0), + OBJNAME("frock", PROC_TagRock, 255, 0), + OBJNAME("fallrck", PROC_FallRock, 255, 0), + OBJNAME("Dr2", PROC_DR2, 255, 0), + OBJNAME("Mkdan1", PROC_Obj_Stair, 255, 0), + OBJNAME("Btd", PROC_BTD, 255, 0), + OBJNAME("Dk", PROC_DK, 255, 0), + OBJNAME("Ystm0", PROC_SteamTag, 255, 0), + OBJNAME("Ystm1", PROC_SteamTag, 255, 0), + OBJNAME("Gflag", PROC_Goal_Flag, 255, 0), + OBJNAME("Branch", PROC_BRANCH, 255, 0), + OBJNAME("P1a", PROC_NPC_P1, 0, 59), + OBJNAME("P1b", PROC_NPC_P1, 1, 59), + OBJNAME("P1c", PROC_NPC_P1, 2, 59), + OBJNAME("P2a", PROC_NPC_P2, 0, 59), + OBJNAME("P2b", PROC_NPC_P2, 1, 59), + OBJNAME("P2c", PROC_NPC_P2, 2, 59), + OBJNAME("Tc", PROC_NPC_TC, 255, 59), + OBJNAME("Throck", PROC_THROWSTONE, 255, 0), + OBJNAME("magma", PROC_MAGMA, 255, 0), + OBJNAME("Bita", PROC_BITA, 255, 0), + OBJNAME("YkgrON", PROC_Ykgr, 255, 0), + OBJNAME("YkgrOFF", PROC_Ykgr, 255, 0), + OBJNAME("Dsaku", PROC_SAKU, 255, 0), + OBJNAME("Otana", PROC_Obj_Shelf, 0, 0), + OBJNAME("OtanaG", PROC_Obj_Shelf, 1, 0), + OBJNAME("Bdk", PROC_BDK, 255, 0), + OBJNAME("Bdkobj", PROC_BDKOBJ, 255, 0), + OBJNAME("SWTdoor", PROC_SWTDOOR, 255, 0), + OBJNAME("Canon", PROC_Canon, 255, 0), + OBJNAME("GBoard", PROC_MGBOARD, 255, 0), + OBJNAME("Hlift", PROC_Obj_Hlift, 0, 0), + OBJNAME("Hliftb", PROC_Obj_Hlift, 1, 0), + OBJNAME("Hami2", PROC_Obj_Hami2, 255, 0), + OBJNAME("Hami3", PROC_Obj_Hami3, 255, 0), + OBJNAME("Hami4", PROC_Obj_Hami4, 255, 0), + OBJNAME("Hbrf1", PROC_Obj_Hbrf1, 255, 0), + OBJNAME("Mflft", PROC_MFLFT, 255, 0), + OBJNAME("ObjTime", PROC_Obj_Timer, 255, 0), + OBJNAME("Klft", PROC_KLFT, 255, 0), + OBJNAME("Kita", PROC_KITA, 255, 0), + OBJNAME("Humi0z", PROC_Obj_Tide, 0, 0), + OBJNAME("Humi4z", PROC_Obj_Tide, 1, 0), + OBJNAME("Humi5z", PROC_Obj_Tide, 2, 0), + OBJNAME("Tide3", PROC_Obj_Tide, 3, 0), + OBJNAME("Humi2z", PROC_Obj_Tide, 4, 0), + OBJNAME("Humi3z", PROC_Obj_Tide, 5, 0), + OBJNAME("WLvTag", PROC_Tag_Waterlevel, 255, 0), + OBJNAME("Fire", PROC_Fire, 255, 0), + OBJNAME("Zenfire", PROC_Fire, 255, 0), + OBJNAME("Kokiie", PROC_KOKIIE, 255, 0), + OBJNAME("Paper", PROC_Obj_Paper, 0, 0), + OBJNAME("Ppos", PROC_Obj_Paper, 1, 0), + OBJNAME("Piwa", PROC_Obj_Paper, 2, 54), + OBJNAME("Ss", PROC_SS, 255, 0), + OBJNAME("WindTag", PROC_WindTag, 255, 0), + OBJNAME("Kryu00", PROC_Obj_Drift, 255, 0), + OBJNAME("Mcube", PROC_Obj_Mtest, 0, 0), + OBJNAME("Mcyln", PROC_Obj_Mtest, 1, 0), + OBJNAME("Mcube10", PROC_Obj_Mtest, 2, 0), + OBJNAME("Mcyln10", PROC_Obj_Mtest, 3, 0), + OBJNAME("MwtrSB", PROC_Obj_Mtest, 4, 0), + OBJNAME("MygnSB", PROC_Obj_Mtest, 5, 0), + OBJNAME("Owater", PROC_Obj_Mtest, 6, 0), + OBJNAME("Astop", PROC_Obj_Mtest, 7, 0), + OBJNAME("Ojtree", PROC_Obj_Ojtree, 255, 0), + OBJNAME("Ospbox", PROC_Obj_Ospbox, 255, 0), + OBJNAME("Hmlif", PROC_Hmlif, 255, 61), + OBJNAME("Ywarp00", PROC_WARPLIGHT, 255, 0), + OBJNAME("Ysdls00", PROC_WARPLIGHT, 255, 0), + OBJNAME("Yswtr00", PROC_WATERFALL, 255, 0), + OBJNAME("Gbrg00", PROC_LIGHTBRIDGE, 255, 0), + OBJNAME("Mhsg6", PROC_Obj_Ladder, 0, 0), + OBJNAME("Mhsg9", PROC_Obj_Ladder, 1, 0), + OBJNAME("Mhsg12", PROC_Obj_Ladder, 2, 0), + OBJNAME("Mhsg15", PROC_Obj_Ladder, 3, 0), + OBJNAME("Mhsg4h", PROC_Obj_Ladder, 4, 0), + OBJNAME("Sss", PROC_SSS, 255, 0), + OBJNAME("Wall", PROC_WALL, 255, 0), + OBJNAME("Blift", PROC_Balancelift, 255, 0), + OBJNAME("MtoriSU", PROC_Obj_Nest, 255, 0), + OBJNAME("Lamp", PROC_LAMP, 255, 0), + OBJNAME("Sitem", PROC_SITEM, 255, 0), + OBJNAME("Hmos1", PROC_Bemos, 0, 35), + OBJNAME("Hmos2", PROC_Bemos, 1, 35), + OBJNAME("Hmos3", PROC_Bemos, 2, 35), + OBJNAME("Ylesr00", PROC_Beam, 255, 0), + OBJNAME("Hseki1", PROC_Obj_Try, 0, 61), + OBJNAME("Hseki6", PROC_Obj_Try, 1, 61), + OBJNAME("Hseki3", PROC_Obj_Try, 2, 61), + OBJNAME("Hseki4", PROC_Obj_Try, 3, 61), + OBJNAME("Hseki5", PROC_Obj_Try, 4, 61), + OBJNAME("Hmon1", PROC_Obj_Try, 5, 61), + OBJNAME("Hmon1d", PROC_Obj_Try, 6, 61), + OBJNAME("Hmon2", PROC_Obj_Try, 7, 61), + OBJNAME("Hmon2d", PROC_Obj_Try, 8, 61), + OBJNAME("Hseki31", PROC_Obj_Try, 9, 61), + OBJNAME("Hseki41", PROC_Obj_Try, 10, 61), + OBJNAME("Hseki51", PROC_Obj_Try, 11, 61), + OBJNAME("Hseki32", PROC_Obj_Try, 12, 61), + OBJNAME("Hseki42", PROC_Obj_Try, 13, 61), + OBJNAME("Hseki52", PROC_Obj_Try, 14, 61), + OBJNAME("Com_A", PROC_Obj_Coming, 255, 0), + OBJNAME("WBird", PROC_WBIRD, 255, 0), + OBJNAME("SMtoge", PROC_MTOGE, 255, 0), + OBJNAME("SMBdor", PROC_MBDOOR, 0, 0), + OBJNAME("KGBdor", PROC_MBDOOR, 1, 0), + OBJNAME("BFlower", PROC_BOMB_FLOWER, 255, 0), + OBJNAME("VbakH", PROC_BOMB_FLOWER, 255, 0), + OBJNAME("VigaH", PROC_ACORN_LEAF, 255, 0), + OBJNAME("Stal", PROC_ST, 255, 4), + OBJNAME("MkieBA", PROC_Obj_Mkie, 0, 61), + OBJNAME("MkieBAB", PROC_Obj_Mkie, 1, 61), + OBJNAME("MkieK", PROC_Obj_Mkiek, 255, 0), + OBJNAME("MknjD", PROC_Obj_MknjD, 255, 0), + OBJNAME("Msdan", PROC_Obj_Msdan, 255, 0), + OBJNAME("MsdanSb", PROC_Obj_MsdanSub, 255, 0), + OBJNAME("Msdan2", PROC_Obj_Msdan2, 255, 0), + OBJNAME("MsdanS2", PROC_Obj_MsdanSub2, 255, 0), + OBJNAME("Htobi1", PROC_SHUTTER, 255, 0), + OBJNAME("Htobi2", PROC_SHUTTER, 255, 0), + OBJNAME("Htobi3", PROC_SHUTTER2, 255, 0), + OBJNAME("Hfbot1A", PROC_Obj_Swflat, 0, 0), + OBJNAME("Hfbot1B", PROC_Obj_Swflat, 1, 0), + OBJNAME("Hfbot1C", PROC_Obj_Swflat, 2, 0), + OBJNAME("Ykzyg", PROC_Obj_Volcano, 255, 0), + OBJNAME("GiceL", PROC_Obj_Iceisland, 255, 0), + OBJNAME("Qdghd", PROC_Obj_Dragonhead, 255, 0), + OBJNAME("dmgroom", PROC_Obj_Dmgroom, 255, 0), + OBJNAME("Doguu", PROC_Obj_Doguu, 0, 0), + OBJNAME("MegamiD", PROC_Obj_Doguu, 1, 0), + OBJNAME("MegamiF", PROC_Obj_Doguu, 2, 0), + OBJNAME("MegamiN", PROC_Obj_Doguu, 3, 0), + OBJNAME("DoguuD", PROC_Obj_DoguuD, 255, 0), + OBJNAME("ReTag0", PROC_Tag_Ret, 255, 0), + OBJNAME("VolTag", PROC_Tag_Volcano, 255, 0), + OBJNAME("Auc7", PROC_NPC_AUCTION, 0, 0), + OBJNAME("Auc1", PROC_NPC_AUCTION, 1, 0), + OBJNAME("Auc2", PROC_NPC_AUCTION, 2, 0), + OBJNAME("Auc3", PROC_NPC_AUCTION, 3, 0), + OBJNAME("Auc4", PROC_NPC_AUCTION, 4, 0), + OBJNAME("Auc5", PROC_NPC_AUCTION, 5, 0), + OBJNAME("Auc6", PROC_NPC_AUCTION, 6, 0), + OBJNAME("Auc0", PROC_NPC_AUCTION, 7, 59), + OBJNAME("RotenA", PROC_NPC_ROTEN, 0, 59), + OBJNAME("RotenB", PROC_NPC_ROTEN, 1, 59), + OBJNAME("RotenC", PROC_NPC_ROTEN, 2, 59), + OBJNAME("Tn", PROC_TN, 255, 3), + OBJNAME("Fdai", PROC_DAI, 255, 0), + OBJNAME("Ytrnd00", PROC_TORNADO, 255, 58), + OBJNAME("Plant", PROC_Obj_Plant, 255, 0), + OBJNAME("Rflw", PROC_Obj_Rflw, 255, 0), + OBJNAME("Table", PROC_Obj_Table, 255, 0), + OBJNAME("Gtaki", PROC_Obj_Gtaki, 255, 0), + OBJNAME("Tenmado", PROC_Obj_Tenmado, 255, 0), + OBJNAME("X_tower", PROC_Obj_Tower, 255, 0), + OBJNAME("Eskban", PROC_Obj_Eskban, 255, 0), + OBJNAME("Ekskz", PROC_Obj_Ekskz, 255, 0), + OBJNAME("Pbka", PROC_Obj_Pbka, 255, 0), + OBJNAME("Yboil00", PROC_Obj_Yboil, 255, 0), + OBJNAME("Cafelmp", PROC_Obj_Cafelmp, 255, 0), + OBJNAME("MKanoke", PROC_Obj_Kanoke, 0, 61), + OBJNAME("MKanok2", PROC_Obj_Kanoke, 1, 61), + OBJNAME("Kg1", PROC_NPC_KG1, 255, 59), + OBJNAME("Kg2", PROC_NPC_KG2, 255, 0), + OBJNAME("Tt", PROC_NPC_TT, 255, 59), + OBJNAME("Hr", PROC_NPC_HR, 0, 0), + OBJNAME("Hr2", PROC_NPC_HR, 1, 0), + OBJNAME("BigElf", PROC_BIGELF, 0, 0), + OBJNAME("Ho", PROC_NPC_HO, 0, 0), + OBJNAME("Gkai00", PROC_LIGHTSTAIR, 255, 0), + OBJNAME("Mk", PROC_NPC_MK, 0, 59), + OBJNAME("UkB", PROC_NPC_UK, 1, 59), + OBJNAME("UkC", PROC_NPC_UK, 2, 59), + OBJNAME("UkD", PROC_NPC_UK, 3, 59), + OBJNAME("Mk2", PROC_NPC_MK, 4, 0), + OBJNAME("UkB2", PROC_NPC_UK, 5, 0), + OBJNAME("UkC2", PROC_NPC_UK, 6, 0), + OBJNAME("UkD2", PROC_NPC_UK, 7, 0), + OBJNAME("Co1", PROC_NPC_CO1, 255, 59), + OBJNAME("Mt", PROC_NPC_MT, 255, 0), + OBJNAME("Mn", PROC_NPC_MN, 255, 59), + OBJNAME("Ah", PROC_NPC_AH, 255, 0), + OBJNAME("Hyuf1", PROC_Hmlif, 255, 61), + OBJNAME("Hyuf2", PROC_Hmlif, 255, 61), + OBJNAME("Hdai1", PROC_PEDESTAL, 0, 61), + OBJNAME("Hdai2", PROC_PEDESTAL, 1, 61), + OBJNAME("Hdai3", PROC_PEDESTAL, 2, 61), + OBJNAME("Auction", PROC_AUCTION, 255, 0), + OBJNAME("Auzu", PROC_Obj_Auzu, 255, 58), + OBJNAME("Hpu1", PROC_WINDMILL, 255, 0), + OBJNAME("Hpu2", PROC_WINDMILL, 255, 0), + OBJNAME("Hkikai1", PROC_MACHINE, 255, 0), + OBJNAME("Ybgaf00", PROC_WindTag, 255, 0), + OBJNAME("LOD01", PROC_LODBG, 255, 0), + OBJNAME("LOD02", PROC_LODBG, 255, 0), + OBJNAME("LOD03", PROC_LODBG, 255, 0), + OBJNAME("LOD04", PROC_LODBG, 255, 0), + OBJNAME("LOD05", PROC_LODBG, 255, 0), + OBJNAME("LOD06", PROC_LODBG, 255, 0), + OBJNAME("LOD07", PROC_LODBG, 255, 0), + OBJNAME("LOD08", PROC_LODBG, 255, 0), + OBJNAME("LOD09", PROC_LODBG, 255, 0), + OBJNAME("LOD10", PROC_LODBG, 255, 0), + OBJNAME("LOD11", PROC_LODBG, 255, 0), + OBJNAME("LOD12", PROC_LODBG, 255, 0), + OBJNAME("LOD13", PROC_LODBG, 255, 0), + OBJNAME("LOD14", PROC_LODBG, 255, 0), + OBJNAME("LOD15", PROC_LODBG, 255, 0), + OBJNAME("LOD16", PROC_LODBG, 255, 0), + OBJNAME("LOD17", PROC_LODBG, 255, 0), + OBJNAME("LOD18", PROC_LODBG, 255, 0), + OBJNAME("LOD19", PROC_LODBG, 255, 0), + OBJNAME("LOD20", PROC_LODBG, 255, 0), + OBJNAME("LOD21", PROC_LODBG, 255, 0), + OBJNAME("LOD22", PROC_LODBG, 255, 0), + OBJNAME("LOD23", PROC_LODBG, 255, 0), + OBJNAME("LOD24", PROC_LODBG, 255, 0), + OBJNAME("LOD25", PROC_LODBG, 255, 0), + OBJNAME("LOD26", PROC_LODBG, 255, 0), + OBJNAME("LOD27", PROC_LODBG, 255, 0), + OBJNAME("LOD28", PROC_LODBG, 255, 0), + OBJNAME("LOD29", PROC_LODBG, 255, 0), + OBJNAME("LOD30", PROC_LODBG, 255, 0), + OBJNAME("LOD31", PROC_LODBG, 255, 0), + OBJNAME("LOD32", PROC_LODBG, 255, 0), + OBJNAME("LOD33", PROC_LODBG, 255, 0), + OBJNAME("LOD34", PROC_LODBG, 255, 0), + OBJNAME("LOD35", PROC_LODBG, 255, 0), + OBJNAME("LOD36", PROC_LODBG, 255, 0), + OBJNAME("LOD37", PROC_LODBG, 255, 0), + OBJNAME("LOD38", PROC_LODBG, 255, 0), + OBJNAME("LOD39", PROC_LODBG, 255, 0), + OBJNAME("LOD40", PROC_LODBG, 255, 0), + OBJNAME("LOD41", PROC_LODBG, 255, 0), + OBJNAME("LOD42", PROC_LODBG, 255, 0), + OBJNAME("LOD43", PROC_LODBG, 255, 0), + OBJNAME("LOD44", PROC_LODBG, 255, 0), + OBJNAME("LOD45", PROC_LODBG, 255, 0), + OBJNAME("LOD46", PROC_LODBG, 255, 0), + OBJNAME("LOD47", PROC_LODBG, 255, 0), + OBJNAME("LOD48", PROC_LODBG, 255, 0), + OBJNAME("LOD49", PROC_LODBG, 255, 0), + OBJNAME("MtryB", PROC_Obj_Tribox, 0, 0), + OBJNAME("MtryBCr", PROC_Obj_Tribox, 1, 0), + OBJNAME("Vdora", PROC_Obj_Gong, 255, 0), + OBJNAME("Roten2", PROC_Obj_Roten, 0, 0), + OBJNAME("Roten3", PROC_Obj_Roten, 1, 0), + OBJNAME("Roten4", PROC_Obj_Roten, 2, 0), + OBJNAME("Qtkhd", PROC_Obj_Smplbg, 255, 0), + OBJNAME("Akabe", PROC_Obj_Akabe, 0, 0), + OBJNAME("Akabe10", PROC_Obj_Akabe, 1, 0), + OBJNAME("NBOX", PROC_Obj_Akabe, 2, 0), + OBJNAME("NBOX10", PROC_Obj_Akabe, 3, 0), + OBJNAME("Ashut", PROC_Obj_Ashut, 255, 0), + OBJNAME("Mcrtn", PROC_Obj_Tapestry, 255, 0), + OBJNAME("VmcBS", PROC_Obj_Vmc, 255, 0), + OBJNAME("Usovmc", PROC_Obj_Usovmc, 255, 0), + OBJNAME("Vfan", PROC_Obj_Vfan, 255, 0), + OBJNAME("Apzl", PROC_Obj_Apzl, 255, 0), + OBJNAME("Adnno", PROC_Obj_Adnno, 255, 0), + OBJNAME("Ycage00", PROC_Obj_Barrier, 255, 0), + OBJNAME("Yswdr00", PROC_Obj_Firewall, 255, 0), + OBJNAME("TnTrap", PROC_Obj_TnTrap, 255, 0), + OBJNAME("FgTrap", PROC_Obj_TnTrap, 255, 0), + OBJNAME("CmTrap", PROC_Obj_TnTrap, 255, 0), + OBJNAME("Hjump2", PROC_Obj_Jump, 255, 61), + OBJNAME("Esekh", PROC_Obj_Monument, 0, 55), + OBJNAME("Esekh2", PROC_Obj_Monument, 1, 55), + OBJNAME("Po", PROC_NPC_PHOTO, 255, 59), + OBJNAME("TagPo", PROC_TAG_PHOTO, 255, 0), + OBJNAME("Htoge1", PROC_TOGE, 255, 50), + OBJNAME("Skanran", PROC_Obj_Ferris, 255, 0), + OBJNAME("Ajav", PROC_Obj_Ajav, 255, 0), + OBJNAME("Trap", PROC_Obj_Trap, 255, 51), + OBJNAME("Hha", PROC_Obj_Hha, 255, 0), + OBJNAME("Htetu1", PROC_Obj_Htetu1, 255, 0), + OBJNAME("Tpota", PROC_Tpota, 255, 0), + OBJNAME("Stoudai", PROC_Obj_Light, 255, 0), + OBJNAME("Pbco", PROC_Obj_Pbco, 255, 0), + OBJNAME("Ebomzo", PROC_Obj_Ebomzo, 255, 0), + OBJNAME("Psail", PROC_SAIL, 0, 0), + OBJNAME("Homen1", PROC_Obj_Homen, 0, 0), + OBJNAME("Homen2", PROC_Obj_Homen, 1, 0), + OBJNAME("Xfuta", PROC_Obj_Xfuta, 1, 0), + OBJNAME("Vochi", PROC_Obj_Leaves, 0, 0), + OBJNAME("Hfuck1", PROC_Obj_Hfuck1, 0, 0), + OBJNAME("YLzou", PROC_Obj_YLzou, 0, 0), + OBJNAME("Gbed", PROC_Obj_Gbed, 0, 0), + OBJNAME("Vteng", PROC_Obj_Vteng, 0, 0), + OBJNAME("Ohatch", PROC_Obj_Ohatch, 255, 0), + OBJNAME("Rcloud", PROC_Obj_Rcloud, 0, 0), + OBJNAME("Ocloud", PROC_Obj_Rcloud, 1, 0), + OBJNAME("MPot", PROC_Obj_Mshokki, 0, 0), + OBJNAME("MOsara", PROC_Obj_Mshokki, 1, 0), + OBJNAME("MKoppu", PROC_Obj_Mshokki, 2, 0), + OBJNAME("Ptco", PROC_Obj_Bscurtain, 0, 0), + OBJNAME("Ptcu", PROC_Obj_Bscurtain, 1, 0), + OBJNAME("Kmon", PROC_Kmon, 0, 0), + OBJNAME("Sarace", PROC_NPC_SARACE, 0, 0), + OBJNAME("Hsh", PROC_Obj_HSH, 0, 54), + OBJNAME("Hsh2", PROC_Obj_HSH, 1, 54), + OBJNAME("Mmusic", PROC_Mmusic, 255, 0), + OBJNAME("Gryw00", PROC_Obj_Gryw00, 255, 0), + OBJNAME("AjavW", PROC_Obj_AjavW, 0, 0), + OBJNAME("Omensmk", PROC_Obj_Homensmk, 255, 0), + OBJNAME("Itnak", PROC_Obj_Itnak, 255, 0), + OBJNAME("Yfrlt00", PROC_Komore, 255, 0), + OBJNAME("FTree", PROC_Obj_Ftree, 255, 0), + OBJNAME("Vyasi", PROC_Obj_Vyasi, 255, 0), + OBJNAME("Vds", PROC_Obj_Vds, 255, 0), + OBJNAME("Rforce", PROC_Obj_Rforce, 255, 0), + OBJNAME("zouK", PROC_Obj_Zouk, 0, 0), + OBJNAME("zouK1", PROC_Obj_Zouk, 1, 0), + OBJNAME("zouK2", PROC_Obj_Zouk, 2, 0), + OBJNAME("zouK3", PROC_Obj_Zouk, 3, 0), + OBJNAME("zouK4", PROC_Obj_Zouk, 4, 0), + OBJNAME("Gaship1", PROC_Obj_Gaship, 255, 0), + OBJNAME("Gaship2", PROC_Obj_Gaship2, 255, 0), + OBJNAME("Ghrwp", PROC_WARPHYRULE, 255, 0), + OBJNAME("Gdemo20", PROC_WARPDEMO20, 255, 0), + OBJNAME("Warpgn", PROC_WARPGANON, 255, 0), + OBJNAME("Warpmj", PROC_WARPMAJYUU, 255, 0), + OBJNAME("Warpfo", PROC_WARPFOUT, 255, 0), + OBJNAME("Ygush00", PROC_Obj_Ygush00, 255, 0), + OBJNAME("Ygush01", PROC_Obj_Ygush00, 255, 0), + OBJNAME("Ygstp00", PROC_Obj_Ygush00, 255, 0), + OBJNAME("Ygush02", PROC_Obj_Ygush00, 255, 0), + OBJNAME("Hcbh", PROC_Obj_Hcbh, 0, 0), + OBJNAME("Com_B", PROC_Coming2, 255, 0), + OBJNAME("Com_C", PROC_Coming3, 255, 0), + OBJNAME("SPitem", PROC_SPC_ITEM01, 255, 0), + OBJNAME("HyoiKam", PROC_NPC_KAM, 255, 0), + OBJNAME("Shmrgrd", PROC_Obj_Shmrgrd, 255, 0), + OBJNAME("Vtil1", PROC_Obj_Vtil, 0, 0), + OBJNAME("Vtil2", PROC_Obj_Vtil, 1, 0), + OBJNAME("Vtil3", PROC_Obj_Vtil, 2, 0), + OBJNAME("Vtil4", PROC_Obj_Vtil, 3, 0), + OBJNAME("Vtil5", PROC_Obj_Vtil, 4, 0), + OBJNAME("Eayogn", PROC_Obj_Eayogn, 255, 0), + OBJNAME("VmsMS", PROC_Obj_Vmsms, 255, 0), + OBJNAME("VmsDZ", PROC_Obj_Vmsdz, 255, 0), + OBJNAME("VgnFD", PROC_Obj_Vgnfd, 255, 0), + OBJNAME("Ygcwp", PROC_Ygcwp, 255, 0), + OBJNAME("Figure", PROC_OBJ_FIGURE, 255, 0), + OBJNAME("RoHat", PROC_OBJ_HAT, 255, 0), + OBJNAME("Gntakis", PROC_Obj_Gnntakis, 255, 0), + OBJNAME("Gntakie", PROC_Obj_Gnntakie, 255, 0), + OBJNAME("Gnbtaki", PROC_Obj_Gnnbtaki, 255, 0), + OBJNAME("Bkm", PROC_BMD, 255, 0), + OBJNAME("Bst", PROC_BST, 255, 0), + OBJNAME("Bitem", PROC_BOSSITEM, 255, 0), + OBJNAME("Fganon", PROC_FGANON, 255, 0), + OBJNAME("Bwd", PROC_BWD, 255, 0), + OBJNAME("Bwds", PROC_BWDS, 255, 0), + OBJNAME("Bgn", PROC_BGN, 255, 0), + OBJNAME("Gnd", PROC_GND, 255, 0), + OBJNAME("Puti", PROC_PT, 255, 0), + OBJNAME("d_act0", PROC_DEMO00, 0, 0), + OBJNAME("d_act1", PROC_DEMO00, 1, 0), + OBJNAME("d_act2", PROC_DEMO00, 2, 0), + OBJNAME("d_act3", PROC_DEMO00, 3, 0), + OBJNAME("d_act4", PROC_DEMO00, 4, 0), + OBJNAME("d_act5", PROC_DEMO00, 5, 0), + OBJNAME("d_act6", PROC_DEMO00, 6, 0), + OBJNAME("d_act7", PROC_DEMO00, 7, 0), + OBJNAME("d_act8", PROC_DEMO00, 8, 0), + OBJNAME("d_act9", PROC_DEMO00, 9, 0), + OBJNAME("d_act10", PROC_DEMO00, 10, 0), + OBJNAME("d_act11", PROC_DEMO00, 11, 0), + OBJNAME("d_act12", PROC_DEMO00, 12, 0), + OBJNAME("d_act13", PROC_DEMO00, 13, 0), + OBJNAME("d_act14", PROC_DEMO00, 14, 0), + OBJNAME("d_act15", PROC_DEMO00, 15, 0), + OBJNAME("d_act16", PROC_DEMO00, 16, 0), + OBJNAME("d_act17", PROC_DEMO00, 17, 0), + OBJNAME("d_act18", PROC_DEMO00, 18, 0), + OBJNAME("d_act19", PROC_DEMO00, 19, 0), + OBJNAME("d_act20", PROC_DEMO00, 20, 0), + OBJNAME("d_act21", PROC_DEMO00, 21, 0), + OBJNAME("d_act22", PROC_DEMO00, 22, 0), + OBJNAME("d_act23", PROC_DEMO00, 23, 0), + OBJNAME("d_act24", PROC_DEMO00, 24, 0), + OBJNAME("d_act25", PROC_DEMO00, 25, 0), + OBJNAME("d_act26", PROC_DEMO00, 26, 0), + OBJNAME("d_act27", PROC_DEMO00, 27, 0), + OBJNAME("d_act28", PROC_DEMO00, 28, 0), + OBJNAME("d_act29", PROC_DEMO00, 29, 0), + OBJNAME("d_act30", PROC_DEMO00, 30, 0), + OBJNAME("d_act31", PROC_DEMO00, 31, 0), + OBJNAME("SYAN", PROC_SYAN, 255, 0), + OBJNAME("TagD1", PROC_Dummy, 0, 0), + OBJNAME("TagD2", PROC_Dummy, 1, 0), + OBJNAME("TagD3", PROC_Dummy, 2, 0), + OBJNAME("TagD4", PROC_Dummy, 3, 0), + OBJNAME("mp", PROC_MP, 255, 0), + OBJNAME("STBox", PROC_SALVAGE_TBOX, 255, 0), + OBJNAME("Fobj00", PROC_STANDITEM, 255, 0), + OBJNAME("Tama", PROC_TAMA, 255, 0), + OBJNAME("Agb", PROC_AGB, 255, 0), + OBJNAME("Bg", PROC_BG, 255, 0), + OBJNAME("Himo2", PROC_HIMO2, 255, 0), + OBJNAME("Esa", PROC_ESA, 255, 0), + OBJNAME("Boko", PROC_BOKO, 255, 0), + OBJNAME("Kantera", PROC_KANTERA, 255, 0), + OBJNAME("HShot", PROC_HOOKSHOT, 255, 0), + OBJNAME("Boom", PROC_BOOMERANG, 255, 0), + OBJNAME("Bomb", PROC_BOMB, 255, 0), + OBJNAME("Bomb2", PROC_Bomb2, 255, 0), + OBJNAME("Boko", PROC_BOKO, 255, 0), + OBJNAME("Arrow", PROC_ARROW, 255, 0), + OBJNAME("Arrow_i", PROC_ARROW_ICEEFF, 255, 0), + OBJNAME("Arrow_l", PROC_ARROW_LIGHTEFF, 255, 0), + OBJNAME("Grid", PROC_GRID, 255, 0), + OBJNAME("Kaji", PROC_Kaji, 255, 0), + OBJNAME("HFloor", PROC_Hot_Floor, 255, 0), + OBJNAME("Buoyr", PROC_Obj_Buoyrace, 255, 0), + OBJNAME("Ritem", PROC_RACEITEM, 255, 0), + OBJNAME("Sitem", PROC_ShopItem, 255, 0), + OBJNAME("Ditem", PROC_Demo_Item, 255, 0), + OBJNAME("Iball", PROC_Iball, 255, 0), + OBJNAME("Grass", PROC_GRASS, 255, 0), + OBJNAME("Vrbox", PROC_VRBOX, 255, 0), + OBJNAME("Vrbox2", PROC_VRBOX2, 255, 0), + OBJNAME("EndCode", PROC_PLAY_SCENE, 255, 0), +}; + /* 80041544-800415B4 .text dStage_searchName__FPCc */ -void dStage_searchName(const char*) { - /* Nonmatching */ +dStage_objectNameInf* dStage_searchName(const char* i_name) { + dStage_objectNameInf* obj = l_objectName; + + for (u32 i = 0; i < ARRAY_SIZE(l_objectName); i++) { + if (!strcmp(obj->mName, i_name)) { + return obj; + } + obj++; + } + + return NULL; } /* 800415B4-80041608 .text dStage_getName__FsSc */ -void dStage_getName(short, signed char) { - /* Nonmatching */ +const char* dStage_getName(s16 i_procName, s8 i_subtype) { + dStage_objectNameInf* obj = l_objectName; + + for (int i = 0; i < ARRAY_SIZE(l_objectName); i++) { + if (obj->mProcName == i_procName && obj->mSubtype == i_subtype) { + return obj->mName; + } + obj++; + } + + // "Who?" + return "誰?"; } /* 80041608-80041628 .text dStage_getName2__FsSc */ -void dStage_getName2(short, signed char) { - /* Nonmatching */ +const char* dStage_getName2(s16 i_procName, s8 i_subtype) { + return dStage_getName(i_procName, i_subtype); } -/* 80041628-8004169C .text dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class */ -void dStage_actorCreate(stage_actor_data_class*, fopAcM_prm_class*) { - /* Nonmatching */ +/* 80041628-8004169C .text dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class + */ +void dStage_actorCreate(stage_actor_data_class* i_actorData, fopAcM_prm_class* i_actorPrm) { + dStage_objectNameInf* nameinf_p = dStage_searchName(i_actorData->mName); + fopAc_ac_c* actor; + + if (nameinf_p == NULL) { + JKRHeap::free(i_actorPrm, NULL); + } else { + i_actorPrm->mSubtype = nameinf_p->mSubtype; + i_actorPrm->mGbaName = nameinf_p->mGbaName; + layer_class* curLayer = fpcLy_CurrentLayer(); + fpcSCtRq_Request(curLayer, nameinf_p->mProcName, NULL, NULL, i_actorPrm); + } } /* 8004169C-80041708 .text dStage_cameraCreate__FP24stage_camera2_data_classii */ -void dStage_cameraCreate(stage_camera2_data_class*, int, int) { - /* Nonmatching */ +int dStage_cameraCreate(stage_camera2_data_class* i_cameraData, int i_cameraIdx, int param_2) { + i_cameraData = static_cast(cMl::memalignB(-4, 0x18)); + + if (i_cameraData != NULL) { + i_cameraData->field_0x4 = 0.0f; + i_cameraData->field_0x8 = 0.0f; + i_cameraData->field_0x4 = 0.0f; + i_cameraData->field_0x0 = param_2; + fopCamM_Create(i_cameraIdx, PROC_CAMERA, i_cameraData); + } + + return 1; } /* 80041708-8004184C .text dStage_decodeSearchIkada__FPvi */ @@ -171,314 +1205,899 @@ void dStage_chkPlayerId(int, int) { /* Nonmatching */ } -/* 80041AEC-80041AF4 .text getPlayer__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPlayer() const { - /* Nonmatching */ -} - /* 80041AF4-80041E84 .text dStage_playerInit__FP11dStage_dt_cPviPv */ -void dStage_playerInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* param_3) { + stage_actor_class* player = (stage_actor_class*)((int*)i_data + 1); + stage_actor_data_class* player_data = player->m_entries; + + if (dComIfGp_getPlayer(0) != NULL) { + return 1; + } + + i_stage->setPlayer(player); + i_stage->setPlayerNum(num); + + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + JUT_ASSERT(1735, appen != 0); + + int point = dComIfGp_getStartStagePoint(); + u32 roomParam = dComIfGs_getRestartRoomParam(); + if (point == -2) { + dStage_playerInitIkada(appen, param_3); + } else if (point == -3) { + appen->mParameter = dComIfGs_getTurnRestartParam(); + appen->mPos = dComIfGs_getTurnRestartPos(); + appen->mAngle.set(0, dComIfGs_getTurnRestartAngleY(), -0x100); + } else if (point == -1) { + appen->mParameter = dComIfGs_getRestartRoomParam(); + appen->mPos = dComIfGs_getRestartRoomPos(); + appen->mAngle.set(0, dComIfGs_getRestartRoomAngleY(), -0x100); + } else { + int i; + for (i = 0; i < num; i++) { + if ((u8)player_data->mAngle.z == point) { + break; + } + player_data++; + } + + JUT_ASSERT(1787, i != num); + + appen->mParameter = player_data->mParameter; + appen->mPos = player_data->mSpawnPos; + appen->mAngle = player_data->mAngle; + appen->mEnemyNo = player_data->mEnemyNo; + + if (roomParam != 0 && (int)((appen->mParameter >> 0xC) & 0xF) != 2) { + appen->mParameter = (roomParam & 0xFFFFFFC0) | (appen->mParameter & 0x3F); + } + } + + dComIfGs_setRestartRoomParam(0); + appen->mEnemyNo = 0xFFFF; + appen->mRoomNo = -1; + + dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->mParameter & 0x3F, + dComIfGp_getStartStagePoint(), dComIfGp_getStartStageLayer()); + + dComIfGp_setShipId((appen->mAngle.z >> 8) & 0xFF); + dComIfGp_setShipRoomId(appen->mParameter & 0x3F); + dStage_actorCreate(player_data, appen); + + scene_class* stageProc = fopScnM_SearchByID(dStage_roomControl_c::getProcID()); + JUT_ASSERT(1842, stageProc != 0); + + if (stageProc->mBase.mBase.mProcName != PROC_PLAY_SCENE) { + fopAcM_create(PROC_TITLE, 0, NULL, -1, NULL, NULL, 255, NULL); + } + + fopMsgM_Create(PROC_METER, NULL, NULL); + + cXyz agb_pos(appen->mPos.x, appen->mPos.y + 10.0f, appen->mPos.z); + fopAcM_create(PROC_AGB, 0, &agb_pos, -1, NULL, NULL, 255, NULL); + dComIfGp_setAgb(NULL); + return 1; } /* 80041E84-80041ED4 .text dStage_cameraInit__FP11dStage_dt_cPviPv */ -void dStage_cameraInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_cameraInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + stage_camera_class* camera = (stage_camera_class*)((char*)i_data + 4); + i_stage->setCamera(camera); + dStage_cameraCreate(camera->m_entries, 0, 0); + return 1; } /* 80041ED4-80041F08 .text dStage_RoomCameraInit__FP11dStage_dt_cPviPv */ -void dStage_RoomCameraInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_RoomCameraInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setCamera((stage_camera_class*)((char*)i_data + 4)); + return 1; } /* 80041F08-80041F3C .text dStage_arrowInit__FP11dStage_dt_cPviPv */ -void dStage_arrowInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_arrowInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setArrow((stage_arrow_class*)((char*)i_data + 4)); + return 1; } /* 80041F3C-80041F54 .text dStage_mapInfo_GetOceanX__FP20stage_map_info_class */ -void dStage_mapInfo_GetOceanX(stage_map_info_class*) { - /* Nonmatching */ +int dStage_mapInfo_GetOceanX(stage_map_info_class* i_mapInfo) { + int rt = (i_mapInfo->mOceanXZ & 0xF); + if (!(i_mapInfo->mOceanXZ & 8)) { + return rt; + } + + return rt - 0x10; } /* 80041F54-80041F6C .text dStage_mapInfo_GetOceanZ__FP20stage_map_info_class */ -void dStage_mapInfo_GetOceanZ(stage_map_info_class*) { - /* Nonmatching */ +// NONMATCHING +int dStage_mapInfo_GetOceanZ(stage_map_info_class* i_mapInfo) { + int rt = (i_mapInfo->mOceanXZ >> 4) & 0xF; + if ((i_mapInfo->mOceanXZ >> 4) & 8) { + return rt - 0x10; + } + + return rt; } /* 80041F6C-80041FD0 .text dStage_mapInfoInit__FP11dStage_dt_cPviPv */ -void dStage_mapInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_mapInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + stage_map_info_dummy_class* mapInfo = (stage_map_info_dummy_class*)((char*)i_data + 4); + i_stage->setMapInfo(mapInfo->m_entries); + i_stage->setMapInfoBase(mapInfo); + return 1; } /* 80041FD0-8004205C .text getMapInfo2__15dStage_roomDt_cCFi */ -void dStage_roomDt_c::getMapInfo2(int) const { - /* Nonmatching */ +stage_map_info_class* dStage_roomDt_c::getMapInfo2(int param_0) const { + stage_map_info_dummy_class* map_info_p = getMapInfoBase(); + + if (map_info_p == NULL || map_info_p->num == 0 || map_info_p->m_entries == NULL) { + return NULL; + } + + stage_map_info_class* data_p = map_info_p->m_entries; + + for (int i = 0; i < map_info_p->num; i++) { + if (param_0 == data_p->field_0x35) { + return data_p; + } + + data_p++; + } + + return NULL; } /* 8004205C-80042064 .text getMapInfoBase__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getMapInfoBase() const { - /* Nonmatching */ +stage_map_info_dummy_class* dStage_roomDt_c::getMapInfoBase() const { + return mpMapInfoBase; } /* 80042064-800420F0 .text getMapInfo2__16dStage_stageDt_cCFi */ -void dStage_stageDt_c::getMapInfo2(int) const { - /* Nonmatching */ +stage_map_info_class* dStage_stageDt_c::getMapInfo2(int param_0) const { + stage_map_info_dummy_class* map_info_p = getMapInfoBase(); + + if (map_info_p == NULL || map_info_p->num == 0 || map_info_p->m_entries == NULL) { + return NULL; + } + + stage_map_info_class* data_p = map_info_p->m_entries; + + for (int i = 0; i < map_info_p->num; i++) { + if (param_0 == data_p->field_0x35) { + return data_p; + } + + data_p++; + } + + return NULL; } /* 800420F0-800420F8 .text getMapInfoBase__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getMapInfoBase() const { - /* Nonmatching */ +stage_map_info_dummy_class* dStage_stageDt_c::getMapInfoBase() const { + return mpMapInfoBase; } /* 800420F8-8004212C .text dStage_paletInfoInit__FP11dStage_dt_cPviPv */ -void dStage_paletInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_paletInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_nodeHeader* pal_info = (dStage_nodeHeader*)(i_data); + i_stage->setPaletInfo((stage_palet_info_class*)pal_info->m_offset); + return 1; } /* 8004212C-80042160 .text dStage_pselectInfoInit__FP11dStage_dt_cPviPv */ -void dStage_pselectInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_pselectInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_nodeHeader* psel_info = (dStage_nodeHeader*)(i_data); + i_stage->setPselectInfo((stage_pselect_info_class*)psel_info->m_offset); + return 1; } /* 80042160-80042194 .text dStage_envrInfoInit__FP11dStage_dt_cPviPv */ -void dStage_envrInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_envrInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_nodeHeader* envr_info = (dStage_nodeHeader*)(i_data); + i_stage->setEnvrInfo((stage_envr_info_class*)envr_info->m_offset); + return 1; } /* 80042194-800421E8 .text dStage_filiInfoInit__FP11dStage_dt_cPviPv */ -void dStage_filiInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_filiInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + if (i_num == 0) { + i_stage->setFileListInfo(NULL); + } else { + dStage_nodeHeader* fili_info = (dStage_nodeHeader*)(i_data); + i_stage->setFileListInfo((dStage_FileList_dt_c*)fili_info->m_offset); + } + + return 1; } /* 800421E8-8004221C .text dStage_vrboxInfoInit__FP11dStage_dt_cPviPv */ -void dStage_vrboxInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_vrboxInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_nodeHeader* vrbox_info = (dStage_nodeHeader*)(i_data); + i_stage->setVrboxInfo((stage_vrbox_info_class*)vrbox_info->m_offset); + return 1; } /* 8004221C-80042280 .text dStage_plightInfoInit__FP11dStage_dt_cPviPv */ -void dStage_plightInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_plightInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_nodeHeader* plight_info = (dStage_nodeHeader*)(i_data); + i_stage->setPlightInfo((stage_plight_info_class*)plight_info->m_offset); + i_stage->setPlightNumInfo(i_num); + return 1; } /* 80042280-8004230C .text dStage_lgtvInfoInit__FP11dStage_dt_cPviPv */ -void dStage_lgtvInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_lgtvInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setLightVecInfoNum(i_num); + + if (i_num == 0) { + i_stage->setLightVecInfo(NULL); + } else { + dStage_nodeHeader* lgtv_info = (dStage_nodeHeader*)(i_data); + i_stage->setLightVecInfo((stage_lightvec_info_class*)lgtv_info->m_offset); + } + + return 1; } /* 8004230C-8004238C .text dStage_stagInfoInit__FP11dStage_dt_cPviPv */ -void dStage_stagInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_stagInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_nodeHeader* stag_info = (dStage_nodeHeader*)(i_data); + i_stage->setStagInfo((stage_stag_info_class*)stag_info->m_offset); + + int stageNo = dStage_stagInfo_GetSaveTbl(i_stage->getStagInfo()); + dComIfGs_getSave(stageNo); + dComIfGs_initDan(stageNo); + return 1; } /* 8004238C-800423C0 .text dStage_sclsInfoInit__FP11dStage_dt_cPviPv */ -void dStage_sclsInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_sclsInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setSclsInfo((stage_scls_info_dummy_class*)((char*)i_data + 4)); + return 1; } /* 800423C0-800424BC .text dStage_actorInit__FP11dStage_dt_cPviPv */ -void dStage_actorInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_actorInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); + stage_actor_data_class* actor_data = actor->m_entries; + + for (int i = 0; i < actor->num; i++) { + if (!dComIfGs_isActor(actor_data->mEnemyNo, i_stage->getRoomNo())) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = i_stage->getRoomNo(); + dStage_actorCreate(actor_data, appen); + } + } + actor_data++; + } + + return 1; } /* 800424BC-8004259C .text dStage_tgscInfoInit__FP11dStage_dt_cPviPv */ -void dStage_tgscInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_tgscInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); + stage_tgsc_data_class* actor_data = actor->m_entries; + + for (int i = 0; i < actor->num; i++) { + fopAcM_prm_class* appen = fopAcM_CreateAppend(); + + if (appen != NULL) { + appen->mParameter = actor_data->mParameter; + appen->mPos = actor_data->mSpawnPos; + appen->mAngle = actor_data->mAngle; + appen->mEnemyNo = actor_data->mEnemyNo; + appen->mRoomNo = i_stage->getRoomNo(); + appen->mScale[0] = actor_data->field_0x20; + appen->mScale[1] = actor_data->field_0x21; + appen->mScale[2] = actor_data->field_0x22; + dStage_actorCreate(actor_data, appen); + } + actor_data++; + } + + return 1; } /* 8004259C-80042628 .text dStage_roomReadInit__FP11dStage_dt_cPviPv */ -void dStage_roomReadInit(dStage_dt_c*, void*, int, void*) { +int dStage_roomReadInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { /* Nonmatching */ } /* 80042628-80042658 .text dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi */ -s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int) { - /* Nonmatching */ +s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& room, int index) { + if (index < 0 || index >= room.num) { + index = 0; + } + + return dStage_roomRead_dt_c_GetReverb(*room.m_entries[index]); } /* 80042658-8004268C .text dStage_ppntInfoInit__FP11dStage_dt_cPviPv */ -void dStage_ppntInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_ppntInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setPntInfo((dStage_dPnt_c*)((char*)i_data + 4)); + return 1; } /* 8004268C-8004271C .text dStage_pathInfoInit__FP11dStage_dt_cPviPv */ -void dStage_pathInfoInit(dStage_dt_c*, void*, int, void*) { +int dStage_pathInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { /* Nonmatching */ } /* 8004271C-80042750 .text dStage_rppnInfoInit__FP11dStage_dt_cPviPv */ -void dStage_rppnInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_rppnInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setPnt2Info((dStage_dPnt_c*)((char*)i_data + 4)); + return 1; } /* 80042750-800427E0 .text dStage_rpatInfoInit__FP11dStage_dt_cPviPv */ -void dStage_rpatInfoInit(dStage_dt_c*, void*, int, void*) { +int dStage_rpatInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { /* Nonmatching */ } /* 800427E0-80042814 .text dStage_soundInfoInit__FP11dStage_dt_cPviPv */ -void dStage_soundInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_soundInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setSoundInfo((dStage_SoundInfo_c*)((char*)i_data + 4)); + return 1; } /* 80042814-80042848 .text dStage_eventInfoInit__FP11dStage_dt_cPviPv */ -void dStage_eventInfoInit(dStage_dt_c*, void*, int, void*) { +int dStage_eventInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { /* Nonmatching */ } /* 80042848-8004287C .text dStage_floorInfoInit__FP11dStage_dt_cPviPv */ -void dStage_floorInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_floorInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setFloorInfo((dStage_FloorInfo_c*)((char*)i_data + 4)); + return 1; } /* 8004287C-8004293C .text dStage_memaInfoInit__FP11dStage_dt_cPviPv */ -void dStage_memaInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_memaInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_MemoryMap_c* pd = (dStage_MemoryMap_c*)((char*)i_data + 4); + i_stage->setMemoryMap(pd); + + if (pd != NULL) { + u32* entry_p = pd->m_entries; + + for (int i = 0; i < pd->num; i++) { + JKRExpHeap* heap = dStage_roomControl_c::createMemoryBlock(i, *entry_p + 0x300); + JUT_ASSERT(2932, heap != 0); + entry_p++; + } + } + + return 1; } /* 8004293C-800429C0 .text dStage_mecoInfoInit__FP11dStage_dt_cPviPv */ -void dStage_mecoInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_mecoInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + dStage_MemoryConfig_c* pd = (dStage_MemoryConfig_c*)((char*)i_data + 4); + i_stage->setMemoryConfig(pd); + + if (pd != NULL) { + dStage_MemoryConfig_data* entry_p = pd->m_entries; + + for (int i = 0; i < pd->num; i++) { + dStage_roomControl_c::setMemoryBlockID(entry_p->m_roomNo, entry_p->m_blockID); + entry_p++; + } + } + + return 1; } /* 800429C0-80042B10 .text dStage_setShipPos__Fii */ -void dStage_setShipPos(int, int) { - /* Nonmatching */ +// NONMATCHING - close +bool dStage_setShipPos(int param_0, int param_1) { + if (strcmp(dComIfGp_getStartStageName(), "GanonM") == 0 && !dComIfGs_isEventBit(0x3D02)) { + param_0 = 0xFF; + param_1 = 0xFF; + dComIfGp_setShipId(0xFF); + dComIfGp_setShipRoomId(0xFF); + } + + // g_dComIfG_gameInfo.save.getTurnRestart().field_0x34 probably an inline, idk which though + if (dComIfGp_getStartStagePoint() == -3 && + g_dComIfG_gameInfo.save.getTurnRestart().field_0x34 != 0) + { + daShip_c* ship_p = (daShip_c*)fopAcM_SearchByName(PROC_SHIP); + if (ship_p != NULL) { + ship_p->initStartPos(&dComIfGs_getTurnRestartShipPos(), + dComIfGs_getTurnRestartShipAngleY()); + } + + g_dComIfG_gameInfo.save.getTurnRestart().field_0x34 = 0; + } + + if (param_0 != 0xFF) { + if (param_1 == 0xFF) { + param_1 = dComIfGp_roomControl_getStayNo(); + } + + dStage_Ship_data* ship_data_p = dComIfGp_getShip(param_1, param_0); + if (ship_data_p != NULL) { + daShip_c* ship_p = (daShip_c*)fopAcM_SearchByName(PROC_SHIP); + if (ship_p != NULL) { + ship_p->initStartPos(&ship_data_p->m_pos, ship_data_p->m_angle); + return true; + } + } + } + + return false; } /* 80042B10-80042B70 .text dStage_chkTaura__Fi */ -void dStage_chkTaura(int) { - /* Nonmatching */ +bool dStage_chkTaura(int param_0) { + if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 && param_0 == 11) { + return true; + } + + return false; } /* 80042B70-80042C38 .text dStage_shipInfoInit__FP11dStage_dt_cPviPv */ -void dStage_shipInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_shipInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setShip((dStage_Ship_c*)((char*)i_data + 4)); + + s32 shipId = dComIfGp_getShipId(); + s32 roomId = dComIfGp_getShipRoomId(); + + if (dStage_chkTaura(roomId)) { + if (!dComIfGs_isEventBit(0x2A08) && dStage_setShipPos(0x80, roomId)) { + shipId = 0xFF; + roomId = 0xFF; + dComIfGp_setShipId(0xFF); + dComIfGp_setShipRoomId(0xFF); + } + } + + if (dStage_setShipPos(shipId, roomId)) { + dComIfGp_setShipId(0xFF); + dComIfGp_setShipRoomId(0xFF); + } + + return 1; } /* 80042C38-80042C6C .text dStage_multInfoInit__FP11dStage_dt_cPviPv */ -void dStage_multInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_multInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setMulti((dStage_Multi_c*)((char*)i_data + 4)); + return 1; } /* 80042C6C-80042CA0 .text dStage_lbnkInfoInit__FP11dStage_dt_cPviPv */ -void dStage_lbnkInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_lbnkInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setLbnk((dStage_Lbnk_c*)((char*)i_data + 4)); + return 1; } /* 80042CA0-80042D18 .text dStage_stageTresureInit__FP11dStage_dt_cPviPv */ -void dStage_stageTresureInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_stageTresureInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { + i_stage->setTresure((stage_tresure_class*)((char*)i_data + 4)); + dStage_actorInit(i_stage, i_data, i_num, param_3); + dStage_KeepTresureInfoProc(i_stage, (stage_tresure_class*)((char*)i_data + 4)); + return 1; } /* 80042D18-80042D80 .text dStage_roomTresureInit__FP11dStage_dt_cPviPv */ -void dStage_roomTresureInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_roomTresureInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { + i_stage->setTresure((stage_tresure_class*)((char*)i_data + 4)); + dStage_actorInit(i_stage, i_data, i_num, param_3); + return 1; } /* 80042D80-80042DA4 .text dStage_layerTresureInit__FP11dStage_dt_cPviPv */ -void dStage_layerTresureInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_layerTresureInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { + dStage_actorInit(i_stage, i_data, i_num, param_3); + return 1; } /* 80042DA4-80042DD8 .text dStage_dmapInfoInit__FP11dStage_dt_cPviPv */ -void dStage_dmapInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_dmapInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { + i_stage->setDMap((dStage_DMap_c*)((char*)i_data + 4)); + return 1; } /* 80042DD8-80042E50 .text dStage_stageDrtgInfoInit__FP11dStage_dt_cPviPv */ -void dStage_stageDrtgInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_stageDrtgInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { + i_stage->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); + dStage_tgscInfoInit(i_stage, i_data, i_num, param_3); + dStage_KeepDoorInfoProc(i_stage, (stage_tgsc_class*)((char*)i_data + 4)); + return 1; } /* 80042E50-80042EB8 .text dStage_roomDrtgInfoInit__FP11dStage_dt_cPviPv */ -void dStage_roomDrtgInfoInit(dStage_dt_c*, void*, int, void*) { - /* Nonmatching */ +int dStage_roomDrtgInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { + i_stage->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); + dStage_tgscInfoInit(i_stage, i_data, i_num, param_3); + return 1; } /* 80042EB8-80042F14 .text dKankyo_create__Fv */ void dKankyo_create() { - /* Nonmatching */ + fopKyM_Create(PROC_KANKYO, NULL, NULL); + fopKyM_Create(PROC_KYEFF, NULL, NULL); + fopKyM_Create(PROC_KYEFF2, NULL, NULL); + fopKyM_Create(PROC_ENVSE, NULL, NULL); } /* 80042F14-80042FC4 .text dStage_dt_c_decode__FPvP11dStage_dt_cP9FuncTablei */ -void dStage_dt_c_decode(void*, dStage_dt_c*, FuncTable*, int) { - /* Nonmatching */ +void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* i_funcTbl, int i_tblSize) { + if (i_data != NULL) { + for (int i = 0; i < i_tblSize; i++) { + dStage_fileHeader* file = ((dStage_fileHeader*)i_data); + dStage_nodeHeader* node = ((dStage_nodeHeader*)(file + 1)); + + FuncTable* nodeFunc = i_funcTbl + i; + + for (int j = 0; j < file->chunkCount; j++) { + if ((int)node->m_tag == *(int*)nodeFunc->identifier) { + if (nodeFunc->function != NULL) { + nodeFunc->function(i_stage, node, node->m_entryNum, i_data); + } + break; + } + node++; + } + } + } } /* 80042FC4-80042FFC .text dStage_dt_c_offsetToPtr__FPv */ -void dStage_dt_c_offsetToPtr(void*) { - /* Nonmatching */ +void dStage_dt_c_offsetToPtr(void* i_data) { + dStage_nodeHeader* p_tno = (dStage_nodeHeader*)((int*)i_data + 1); + + for (int i = 0; i < ((dStage_fileHeader*)i_data)->chunkCount; i++) { + if (p_tno->m_offset != 0) { + p_tno->m_offset += (u32)i_data; + } + p_tno++; + } } /* 80042FFC-800430E0 .text dStage_dt_c_stageInitLoader__FPvP11dStage_dt_c */ -void dStage_dt_c_stageInitLoader(void*, dStage_dt_c*) { - /* Nonmatching */ +void dStage_dt_c_stageInitLoader(void* i_data, dStage_dt_c* i_stage) { + static FuncTable l_funcTable[] = {"STAG", dStage_stagInfoInit}; + + JUT_ASSERT(3557, i_data != 0); + JUT_ASSERT(3558, i_stage != 0); + + dStage_dt_c_offsetToPtr(i_data); + i_stage->init(); + dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); } /* 800430E0-8004313C .text layerLoader__FPvP11dStage_dt_ci */ -void layerLoader(void*, dStage_dt_c*, int) { - /* Nonmatching */ +void layerLoader(void* i_data, dStage_dt_c* i_stage, int i_roomNo) { + static FuncTable l_layer0FuncTable[] = { + {"ACT0", dStage_actorInit}, + {"SCO0", dStage_tgscInfoInit}, + {"TRE0", dStage_layerTresureInit}, + }; + + static FuncTable l_layer1FuncTable[] = { + {"ACT1", dStage_actorInit}, + {"SCO1", dStage_tgscInfoInit}, + {"TRE1", dStage_layerTresureInit}, + }; + + static FuncTable l_layer2FuncTable[] = { + {"ACT2", dStage_actorInit}, + {"SCO2", dStage_tgscInfoInit}, + {"TRE2", dStage_layerTresureInit}, + }; + + static FuncTable l_layer3FuncTable[] = { + {"ACT3", dStage_actorInit}, + {"SCO3", dStage_tgscInfoInit}, + {"TRE3", dStage_layerTresureInit}, + }; + + static FuncTable l_layer4FuncTable[] = { + {"ACT4", dStage_actorInit}, + {"SCO4", dStage_tgscInfoInit}, + {"TRE4", dStage_layerTresureInit}, + }; + + static FuncTable l_layer5FuncTable[] = { + {"ACT5", dStage_actorInit}, + {"SCO5", dStage_tgscInfoInit}, + {"TRE5", dStage_layerTresureInit}, + }; + + static FuncTable l_layer6FuncTable[] = { + {"ACT6", dStage_actorInit}, + {"SCO6", dStage_tgscInfoInit}, + {"TRE6", dStage_layerTresureInit}, + }; + + static FuncTable l_layer7FuncTable[] = { + {"ACT7", dStage_actorInit}, + {"SCO7", dStage_tgscInfoInit}, + {"TRE7", dStage_layerTresureInit}, + }; + + static FuncTable l_layer8FuncTable[] = { + {"ACT8", dStage_actorInit}, + {"SCO8", dStage_tgscInfoInit}, + {"TRE8", dStage_layerTresureInit}, + }; + + static FuncTable l_layer9FuncTable[] = { + {"ACT9", dStage_actorInit}, + {"SCO9", dStage_tgscInfoInit}, + {"TRE9", dStage_layerTresureInit}, + }; + + static FuncTable l_layerAFuncTable[] = { + {"ACTa", dStage_actorInit}, + {"SCOa", dStage_tgscInfoInit}, + {"TREa", dStage_layerTresureInit}, + }; + + static FuncTable l_layerBFuncTable[] = { + {"ACTb", dStage_actorInit}, + {"SCOb", dStage_tgscInfoInit}, + {"TREb", dStage_layerTresureInit}, + }; + + static FuncTable* l_layerFuncTable_p[] = { + l_layer0FuncTable, l_layer1FuncTable, l_layer2FuncTable, l_layer3FuncTable, + l_layer4FuncTable, l_layer5FuncTable, l_layer6FuncTable, l_layer7FuncTable, + l_layer8FuncTable, l_layer9FuncTable, l_layerAFuncTable, l_layerBFuncTable, + }; + + dStage_dt_c_decode(i_data, i_stage, l_layerFuncTable_p[dComIfG_play_c::getLayerNo(i_roomNo)], + 3); } /* 8004313C-80043190 .text dStage_dt_c_stageLoader__FPvP11dStage_dt_c */ -void dStage_dt_c_stageLoader(void*, dStage_dt_c*) { - /* Nonmatching */ +void dStage_dt_c_stageLoader(void* i_data, dStage_dt_c* i_stage) { + static FuncTable l_funcTable[] = { + {"MEMA", dStage_memaInfoInit}, {"MECO", dStage_mecoInfoInit}, + {"MULT", dStage_multInfoInit}, {"PLYR", dStage_playerInit}, + {"CAMR", dStage_cameraInit}, {"RCAM", dStage_cameraInit}, + {"ACTR", dStage_actorInit}, {"TGOB", dStage_actorInit}, + {"TRES", dStage_stageTresureInit}, {"RTBL", dStage_roomReadInit}, + {"AROB", dStage_arrowInit}, {"RARO", dStage_arrowInit}, + {"2Dma", dStage_mapInfoInit}, {"2DMA", dStage_mapInfoInit}, + {"Pale", dStage_paletInfoInit}, {"Colo", dStage_pselectInfoInit}, + {"Virt", dStage_vrboxInfoInit}, {"SCLS", dStage_sclsInfoInit}, + {"TGSC", dStage_tgscInfoInit}, {"LGHT", dStage_plightInfoInit}, + {"PPNT", dStage_ppntInfoInit}, {"PATH", dStage_pathInfoInit}, + {"RPPN", dStage_rppnInfoInit}, {"RPAT", dStage_rpatInfoInit}, + {"SOND", dStage_soundInfoInit}, {"SCOB", dStage_tgscInfoInit}, + {"EVNT", dStage_eventInfoInit}, {"EnvR", dStage_envrInfoInit}, + {"FILI", dStage_filiInfoInit}, {"DOOR", dStage_stageDrtgInfoInit}, + {"LGTV", dStage_lgtvInfoInit}, {"FLOR", dStage_floorInfoInit}, + {"TGDR", dStage_tgscInfoInit}, {"DMAP", dStage_dmapInfoInit}, + }; + + dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); + layerLoader(i_data, i_stage, -1); } /* 80043190-800431F4 .text dStage_dt_c_roomLoader__FPvP11dStage_dt_c */ -void dStage_dt_c_roomLoader(void*, dStage_dt_c*) { - /* Nonmatching */ +void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* i_stage) { + static FuncTable l_funcTable[] = { + {"PLYR", dStage_playerInit}, {"RCAM", dStage_RoomCameraInit}, + {"RARO", dStage_arrowInit}, {"RTBL", dStage_roomReadInit}, + {"AROB", dStage_arrowInit}, {"2Dma", dStage_mapInfoInit}, + {"2DMA", dStage_mapInfoInit}, {"Pale", dStage_paletInfoInit}, + {"Colo", dStage_pselectInfoInit}, {"Virt", dStage_vrboxInfoInit}, + {"SCLS", dStage_sclsInfoInit}, {"LGHT", dStage_plightInfoInit}, + {"RPPN", dStage_rppnInfoInit}, {"RPAT", dStage_rpatInfoInit}, + {"SOND", dStage_soundInfoInit}, {"EVNT", dStage_eventInfoInit}, + {"EnvR", dStage_envrInfoInit}, {"FILI", dStage_filiInfoInit}, + {"LGTV", dStage_lgtvInfoInit}, {"FLOR", dStage_floorInfoInit}, + {"SHIP", dStage_shipInfoInit}, {"LBNK", dStage_lbnkInfoInit}, + }; + + dStage_dt_c_offsetToPtr(i_data); + i_stage->init(); + dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); } /* 800431F4-8004324C .text dStage_dt_c_roomReLoader__FPvP11dStage_dt_ci */ -void dStage_dt_c_roomReLoader(void*, dStage_dt_c*, int) { - /* Nonmatching */ +void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* i_stage, int param_2) { + static FuncTable l_funcTable[] = { + {"ACTR", dStage_actorInit}, {"TGOB", dStage_actorInit}, + {"TRES", dStage_roomTresureInit}, {"TGSC", dStage_tgscInfoInit}, + {"SCOB", dStage_tgscInfoInit}, {"DOOR", dStage_tgscInfoInit}, + {"TGDR", dStage_roomDrtgInfoInit}, + }; + + dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); + layerLoader(i_data, i_stage, param_2); } /* 8004324C-800432EC .text dStage_infoCreate__Fv */ void dStage_infoCreate() { - /* Nonmatching */ + void* stageRsrc = dComIfG_getStageRes("Stage", "stage.dzs"); + JUT_ASSERT(3834, stageRsrc != 0) + + dStage_dt_c_stageInitLoader(stageRsrc, &dComIfGp_getStage()); } /* 800432EC-80043464 .text dStage_Create__Fv */ +// NONMATCHING - regalloc / string offsets void dStage_Create() { - /* Nonmatching */ + dKankyo_create(); + + void* stageRsrc = dComIfG_getStageRes("Stage", "stage.dzs"); + JUT_ASSERT(3862, stageRsrc != 0) + + dComIfGp_roomControl_init(); + dStage_dt_c_stageLoader(stageRsrc, &dComIfGp_getStage()); + + if (dComIfGp_getStartStageRoomNo() >= 0) { + int status = dStage_roomInit(dComIfGp_getStartStageRoomNo()); + JUT_ASSERT(3873, status); + } + + dMap_c::create(); + *dStage_roomControl_c::getDemoArcName() = NULL; + + if (dComIfG_getStageRes("Stage", "vr_sky.bdl") != NULL) { + fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX, NULL, NULL, NULL); + fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX2, NULL, NULL, NULL); + } + + dComIfGp_evmng_create(); } /* 80043464-80043514 .text dStage_Delete__Fv */ +// NONMATCHING - almost void dStage_Delete() { - /* Nonmatching */ + if (*dStage_roomControl_c::getDemoArcName() != 0) { + dComIfG_deleteObjectResMain(dStage_roomControl_c::getDemoArcName()); + } + + dStage_roomControl_c::destroyMemoryBlock(); + int stageNo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); + dComIfGs_putSave(stageNo); + + dComIfG_deleteStageRes("Stage"); + dMap_c::remove(); + dComIfGp_evmng_remove(); } /* 80043514-80043604 .text dStage_RoomCheck__FP11cBgS_GndChk */ -void dStage_RoomCheck(cBgS_GndChk*) { - /* Nonmatching */ +int dStage_RoomCheck(cBgS_GndChk* i_gndChk) { + int roomReadId = dComIfG_Bgsp()->GetRoomId(*i_gndChk); + + if (roomReadId < 0) { + return 0; + } + + if (roomReadId != dComIfGp_roomControl_getStayNo()) { + dComIfGp_roomControl_zoneCountCheck(roomReadId); + } + + roomReadId = dComIfG_Bgsp()->GetGrpRoomInfId(*i_gndChk); + if (roomReadId == 0xFF) { + return 0; + } + + roomRead_class* room = dComIfGp_getStageRoom(); + if (room != NULL && room->num > roomReadId) { + int timePass = dStage_roomRead_dt_c_GetTimePass(*room->m_entries[roomReadId]); + dComIfGp_roomControl_setTimePass(timePass); + + roomRead_data_class* room_data = room->m_entries[roomReadId]; + return dComIfGp_roomControl_loadRoom(room_data->field_0x0, room_data->field_0x4); + } + + return 1; } /* 80043604-8004360C .text SetTimePass__20dStage_roomControl_cFi */ -void dStage_roomControl_c::SetTimePass(int) { - /* Nonmatching */ +void dStage_roomControl_c::SetTimePass(int i_timepass) { + m_time_pass = i_timepass; +} + +int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no); + +static inline s8 IkadaGetRoomNoArg0(fopAc_ac_c* i_actor) { + return (fopAcM_GetParam(i_actor) >> 4) & 0x3F; +} + +static inline s16 IkadaGetLinkIdArg1(fopAc_ac_c* i_actor) { + return (fopAcM_GetParam(i_actor) >> 10) & 0xFF; +} + +static inline u8 IkadaGetIkadaIdArg2(fopAc_ac_c* i_actor) { + return (fopAcM_GetParam(i_actor) >> 0x12) & 0xFF; } /* 8004360C-80043900 .text dStage_changeSceneExitId__FR13cBgS_PolyInfofUlSc */ -void dStage_changeSceneExitId(cBgS_PolyInfo&, float, unsigned long, signed char) { - /* Nonmatching */ +// NONMATCHING - regalloc / extra extsh +int dStage_changeSceneExitId(cBgS_PolyInfo& i_poly, f32 i_speed, u32 i_mode, s8 i_roomNo) { + int exit_id = dComIfG_Bgsp()->GetExitId(i_poly); + if (exit_id == 0x3E || exit_id == 0x3B) { + fopAc_ac_c* actor_p = dComIfG_Bgsp()->GetActorPointer(i_poly.GetBgIndex()); + s8 roomNo = IkadaGetRoomNoArg0(actor_p); + s16 point = IkadaGetLinkIdArg1(actor_p); + + if (exit_id == 0x3E) { + dComIfGp_setNextStage("Obshop", point, roomNo, -1, i_speed, i_mode, 1, 0); + } else if (exit_id == 0x3B) { + dComIfGp_setNextStage("Abship", point, roomNo, -1, i_speed, i_mode, 1, 0); + } + + dComIfGp_setIkadaShipBeforeRoomId(i_roomNo); + dComIfGp_setIkadaShipId(IkadaGetIkadaIdArg2(actor_p)); + dComIfGp_setIkadaShipBeforePos(actor_p->current.pos); + return 1; + } else if (exit_id == 0x3D) { + JUT_ASSERT(4134, dComIfGp_getIkadaShipBeforeRoomId() >= 0 && + dComIfGp_getIkadaShipBeforeRoomId() < 64); + dComIfGp_setNextStage("sea", -2, dComIfGp_getIkadaShipBeforeRoomId(), -1, i_speed, i_mode, + 1, 0); + return 1; + } else if (exit_id == 0x3C) { + if (strcmp(dComIfGp_getStartStageName(), "Asoko") == 0) { + if (dComIfGs_isEventBit(0x808)) { + if (dComIfGs_isEventBit(0x520)) { + dComIfGp_setNextStage("sea", 5, 11, -1, i_speed, i_mode, 1, 0); + } else { + dComIfGp_setNextStage("MajyuE", 18, 0, -1, i_speed, i_mode, 1, 0); + } + } else { + dComIfGp_setNextStage("A_umikz", 0, 0, -1, i_speed, i_mode, 1, 0); + } + } else { + dComIfGp_setNextStage("Asoko", 0, 0, -1, i_speed, i_mode, 1, 0); + } + return 1; + } + + return dStage_changeScene(exit_id, i_speed, i_mode, i_roomNo); } /* 80043900-80043AA8 .text dStage_changeScene__FifUlSc */ -void dStage_changeScene(int, float, unsigned long, signed char) { - /* Nonmatching */ -} +// NONMATCHING - almost +int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no) { + stage_scls_info_dummy_class* scls; -/* 80043AA8-80043AB0 .text getSclsInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getSclsInfo() const { - /* Nonmatching */ + if (room_no == -1) { + scls = dComIfGp_getStageSclsInfo(); + } else { + JUT_ASSERT(4192, 0 <= room_no && room_no < 64); + scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->mRoomDt.getSclsInfo(); + } + + if (scls == NULL) { + return 0; + } + + JUT_ASSERT(4202, 0 <= i_exitId && i_exitId < scls->num); + + stage_scls_info_class* scls_info = &scls->m_entries[i_exitId]; + s32 wipe = dStage_sclsInfo_getWipe(scls_info); + + dComIfGp_setNextStage(scls_info->mStage, scls_info->mStart, scls_info->mRoom, -1, speed, mode, + 1, wipe == 15 ? 0 : wipe); + return 1; } /* 80043AB0-80043B10 .text dStage_restartRoom__FUlUl */ -void dStage_restartRoom(unsigned long, unsigned long) { - /* Nonmatching */ +// NONMATCHING - extra extsb +void dStage_restartRoom(u32 roomParam, u32 mode) { + dComIfGp_setNextStage(dComIfGp_getStartStageName(), -1, dComIfGs_getRestartRoomNo(), -1, 0.0f, + mode, 0, 0); + dComIfGs_setRestartRoomParam(roomParam); } /* 80043B10-80043BD0 .text dStage_turnRestart__Fv */ @@ -488,786 +2107,30 @@ void dStage_turnRestart() { /* 80043BD0-80043C84 .text dStage_escapeRestart__Fv */ void dStage_escapeRestart() { - /* Nonmatching */ + daPy_lk_c* player_p = daPy_getPlayerLinkActorClass(); + dComIfGs_setTurnRestart(player_p->current.pos, player_p->shape_angle.y, + fopAcM_GetRoomNo(player_p), player_p->getDayNightParamData()); + + if (dComIfG_getTimerMode() == 3 && dComIfG_getTimerPtr() != NULL) { + dComIfG_TimerDeleteRequest(); + } + + dComIfGp_setNextStage(dComIfGp_getStartStageName(), -3, dComIfGs_getTurnRestartRoomNo(), -1, + 0.0f, 0, 0, 9); } /* 80043C84-80043CD0 .text dStage_checkRestart__Fv */ -void dStage_checkRestart() { - /* Nonmatching */ -} - -/* 80043CD0-80043CDC .text getRoomNo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getRoomNo() const { - /* Nonmatching */ -} - -/* 80043CDC-80043CE4 .text setCamera__15dStage_roomDt_cFP18stage_camera_class */ -void dStage_roomDt_c::setCamera(stage_camera_class*) { - /* Nonmatching */ -} - -/* 80043CE4-80043CEC .text getCamera__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getCamera() const { - /* Nonmatching */ -} - -/* 80043CEC-80043CF4 .text setArrow__15dStage_roomDt_cFP17stage_arrow_class */ -void dStage_roomDt_c::setArrow(stage_arrow_class*) { - /* Nonmatching */ -} - -/* 80043CF4-80043CFC .text getArrow__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getArrow() const { - /* Nonmatching */ -} - -/* 80043CFC-80043D04 .text setPlayer__15dStage_roomDt_cFP17stage_actor_class */ -void dStage_roomDt_c::setPlayer(stage_actor_class*) { - /* Nonmatching */ -} - -/* 80043D04-80043D0C .text setPlayerNum__15dStage_roomDt_cFUs */ -void dStage_roomDt_c::setPlayerNum(unsigned short) { - /* Nonmatching */ -} - -/* 80043D0C-80043D14 .text getPlayerNum__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPlayerNum() const { - /* Nonmatching */ -} - -/* 80043D14-80043D80 .text setRoom__15dStage_roomDt_cFP14roomRead_class */ -void dStage_roomDt_c::setRoom(roomRead_class*) { - /* Nonmatching */ -} - -/* 80043D80-80043DEC .text getRoom__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getRoom() const { - /* Nonmatching */ -} - -/* 80043DEC-80043DF4 .text setMapInfo__15dStage_roomDt_cFP20stage_map_info_class */ -void dStage_roomDt_c::setMapInfo(stage_map_info_class*) { - /* Nonmatching */ -} - -/* 80043DF4-80043DFC .text getMapInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getMapInfo() const { - /* Nonmatching */ -} - -/* 80043DFC-80043E04 .text setMapInfoBase__15dStage_roomDt_cFP26stage_map_info_dummy_class */ -void dStage_roomDt_c::setMapInfoBase(stage_map_info_dummy_class*) { - /* Nonmatching */ -} - -/* 80043E04-80043E70 .text setPaletInfo__15dStage_roomDt_cFP22stage_palet_info_class */ -void dStage_roomDt_c::setPaletInfo(stage_palet_info_class*) { - /* Nonmatching */ -} - -/* 80043E70-80043EDC .text getPaletInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPaletInfo() const { - /* Nonmatching */ -} - -/* 80043EDC-80043F48 .text setPselectInfo__15dStage_roomDt_cFP24stage_pselect_info_class */ -void dStage_roomDt_c::setPselectInfo(stage_pselect_info_class*) { - /* Nonmatching */ -} - -/* 80043F48-80043FB4 .text getPselectInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPselectInfo() const { - /* Nonmatching */ -} - -/* 80043FB4-80044020 .text setEnvrInfo__15dStage_roomDt_cFP21stage_envr_info_class */ -void dStage_roomDt_c::setEnvrInfo(stage_envr_info_class*) { - /* Nonmatching */ -} - -/* 80044020-8004408C .text getEnvrInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getEnvrInfo() const { - /* Nonmatching */ -} +// NONMATCHING - extra extsh +bool dStage_checkRestart() { + if (dComIfGp_isEnableNextStage()) { + if (dComIfGp_getStartStagePoint() == -2 || dComIfGp_getStartStagePoint() == -3) { + return false; + } -/* 8004408C-80044094 .text setVrboxInfo__15dStage_roomDt_cFP22stage_vrbox_info_class */ -void dStage_roomDt_c::setVrboxInfo(stage_vrbox_info_class*) { - /* Nonmatching */ -} - -/* 80044094-8004409C .text getVrboxInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getVrboxInfo() const { - /* Nonmatching */ -} - -/* 8004409C-80044108 .text setPlightInfo__15dStage_roomDt_cFP23stage_plight_info_class */ -void dStage_roomDt_c::setPlightInfo(stage_plight_info_class*) { - /* Nonmatching */ -} - -/* 80044108-80044174 .text getPlightInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPlightInfo() const { - /* Nonmatching */ -} - -/* 80044174-800441E0 .text setPaletNumInfo__15dStage_roomDt_cFi */ -void dStage_roomDt_c::setPaletNumInfo(int) { - /* Nonmatching */ -} - -/* 800441E0-8004424C .text getPaletNumInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPaletNumInfo() const { - /* Nonmatching */ -} - -/* 8004424C-800442B8 .text setPselectNumInfo__15dStage_roomDt_cFi */ -void dStage_roomDt_c::setPselectNumInfo(int) { - /* Nonmatching */ -} - -/* 800442B8-80044324 .text getPselectNumInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPselectNumInfo() const { - /* Nonmatching */ -} - -/* 80044324-80044390 .text setEnvrNumInfo__15dStage_roomDt_cFi */ -void dStage_roomDt_c::setEnvrNumInfo(int) { - /* Nonmatching */ -} - -/* 80044390-800443FC .text getEnvrNumInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getEnvrNumInfo() const { - /* Nonmatching */ -} - -/* 800443FC-80044404 .text setVrboxNumInfo__15dStage_roomDt_cFi */ -void dStage_roomDt_c::setVrboxNumInfo(int) { - /* Nonmatching */ -} - -/* 80044404-8004440C .text getVrboxNumInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getVrboxNumInfo() const { - /* Nonmatching */ -} - -/* 8004440C-80044478 .text setPlightNumInfo__15dStage_roomDt_cFi */ -void dStage_roomDt_c::setPlightNumInfo(int) { - /* Nonmatching */ -} - -/* 80044478-800444E4 .text getPlightNumInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPlightNumInfo() const { - /* Nonmatching */ -} - -/* 800444E4-800444EC .text setLightVecInfo__15dStage_roomDt_cFP25stage_lightvec_info_class */ -void dStage_roomDt_c::setLightVecInfo(stage_lightvec_info_class*) { - /* Nonmatching */ -} - -/* 800444EC-800444F4 .text getLightVecInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getLightVecInfo() const { - /* Nonmatching */ -} - -/* 800444F4-800444FC .text setLightVecInfoNum__15dStage_roomDt_cFi */ -void dStage_roomDt_c::setLightVecInfoNum(int) { - /* Nonmatching */ -} - -/* 800444FC-80044504 .text getLightVecInfoNum__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getLightVecInfoNum() const { - /* Nonmatching */ -} - -/* 80044504-80044570 .text setStagInfo__15dStage_roomDt_cFP21stage_stag_info_class */ -void dStage_roomDt_c::setStagInfo(stage_stag_info_class*) { - /* Nonmatching */ -} - -/* 80044570-800445DC .text getStagInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getStagInfo() const { - /* Nonmatching */ -} + if (dComIfGs_getRestartRoomParam() != 0) { + return true; + } + } -/* 800445DC-800445E4 .text setSclsInfo__15dStage_roomDt_cFP27stage_scls_info_dummy_class */ -void dStage_roomDt_c::setSclsInfo(stage_scls_info_dummy_class*) { - /* Nonmatching */ + return false; } - -/* 800445E4-80044650 .text setPntInfo__15dStage_roomDt_cFP13dStage_dPnt_c */ -void dStage_roomDt_c::setPntInfo(dStage_dPnt_c*) { - /* Nonmatching */ -} - -/* 80044650-800446BC .text getPntInf__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPntInf() const { - /* Nonmatching */ -} - -/* 800446BC-80044728 .text setPathInfo__15dStage_roomDt_cFP14dStage_dPath_c */ -void dStage_roomDt_c::setPathInfo(dStage_dPath_c*) { - /* Nonmatching */ -} - -/* 80044728-80044794 .text getPathInf__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPathInf() const { - /* Nonmatching */ -} - -/* 80044794-8004479C .text setPnt2Info__15dStage_roomDt_cFP13dStage_dPnt_c */ -void dStage_roomDt_c::setPnt2Info(dStage_dPnt_c*) { - /* Nonmatching */ -} - -/* 8004479C-800447A4 .text getPnt2Inf__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPnt2Inf() const { - /* Nonmatching */ -} - -/* 800447A4-800447AC .text setPath2Info__15dStage_roomDt_cFP14dStage_dPath_c */ -void dStage_roomDt_c::setPath2Info(dStage_dPath_c*) { - /* Nonmatching */ -} - -/* 800447AC-800447B4 .text getPath2Inf__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getPath2Inf() const { - /* Nonmatching */ -} - -/* 800447B4-800447BC .text setSoundInfo__15dStage_roomDt_cFP18dStage_SoundInfo_c */ -void dStage_roomDt_c::setSoundInfo(dStage_SoundInfo_c*) { - /* Nonmatching */ -} - -/* 800447BC-800447C4 .text getSoundInf__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getSoundInf() const { - /* Nonmatching */ -} - -/* 800447C4-80044830 .text setEventInfo__15dStage_roomDt_cFP18dStage_EventInfo_c */ -void dStage_roomDt_c::setEventInfo(dStage_EventInfo_c*) { - /* Nonmatching */ -} - -/* 80044830-8004489C .text getEventInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getEventInfo() const { - /* Nonmatching */ -} - -/* 8004489C-800448A4 .text setFileListInfo__15dStage_roomDt_cFP20dStage_FileList_dt_c */ -void dStage_roomDt_c::setFileListInfo(dStage_FileList_dt_c*) { - /* Nonmatching */ -} - -/* 800448A4-800448AC .text setFloorInfo__15dStage_roomDt_cFP18dStage_FloorInfo_c */ -void dStage_roomDt_c::setFloorInfo(dStage_FloorInfo_c*) { - /* Nonmatching */ -} - -/* 800448AC-800448B4 .text getFloorInfo__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getFloorInfo() const { - /* Nonmatching */ -} - -/* 800448B4-8004491C .text setMemoryConfig__15dStage_roomDt_cFP21dStage_MemoryConfig_c */ -void dStage_roomDt_c::setMemoryConfig(dStage_MemoryConfig_c*) { - /* Nonmatching */ -} - -/* 8004491C-80044988 .text getMemoryConfig__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getMemoryConfig() const { - /* Nonmatching */ -} - -/* 80044988-800449F0 .text setMemoryMap__15dStage_roomDt_cFP18dStage_MemoryMap_c */ -void dStage_roomDt_c::setMemoryMap(dStage_MemoryMap_c*) { - /* Nonmatching */ -} - -/* 800449F0-80044A5C .text getMemoryMap__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getMemoryMap() const { - /* Nonmatching */ -} - -/* 80044A5C-80044A64 .text setShip__15dStage_roomDt_cFP13dStage_Ship_c */ -void dStage_roomDt_c::setShip(dStage_Ship_c*) { - /* Nonmatching */ -} - -/* 80044A64-80044A6C .text getShip__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getShip() const { - /* Nonmatching */ -} - -/* 80044A6C-80044AD4 .text setMulti__15dStage_roomDt_cFP14dStage_Multi_c */ -void dStage_roomDt_c::setMulti(dStage_Multi_c*) { - /* Nonmatching */ -} - -/* 80044AD4-80044B40 .text getMulti__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getMulti() const { - /* Nonmatching */ -} - -/* 80044B40-80044B48 .text setLbnk__15dStage_roomDt_cFP13dStage_Lbnk_c */ -void dStage_roomDt_c::setLbnk(dStage_Lbnk_c*) { - /* Nonmatching */ -} - -/* 80044B48-80044B50 .text getLbnk__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getLbnk() const { - /* Nonmatching */ -} - -/* 80044B50-80044B58 .text setTresure__15dStage_roomDt_cFP19stage_tresure_class */ -void dStage_roomDt_c::setTresure(stage_tresure_class*) { - /* Nonmatching */ -} - -/* 80044B58-80044B60 .text getTresure__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getTresure() const { - /* Nonmatching */ -} - -/* 80044B60-80044BB4 .text setDMap__15dStage_roomDt_cFP13dStage_DMap_c */ -void dStage_roomDt_c::setDMap(dStage_DMap_c*) { - /* Nonmatching */ -} - -/* 80044BB4-80044C0C .text getDMap__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getDMap() const { - /* Nonmatching */ -} - -/* 80044C0C-80044C14 .text setDrTg__15dStage_roomDt_cFP16stage_tgsc_class */ -void dStage_roomDt_c::setDrTg(stage_tgsc_class*) { - /* Nonmatching */ -} - -/* 80044C14-80044C1C .text getDrTg__15dStage_roomDt_cCFv */ -void dStage_roomDt_c::getDrTg() const { - /* Nonmatching */ -} - -/* 80044C1C-80044C24 .text getRoomNo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getRoomNo() const { - /* Nonmatching */ -} - -/* 80044C24-80044C2C .text setCamera__16dStage_stageDt_cFP18stage_camera_class */ -void dStage_stageDt_c::setCamera(stage_camera_class*) { - /* Nonmatching */ -} - -/* 80044C2C-80044C34 .text getCamera__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getCamera() const { - /* Nonmatching */ -} - -/* 80044C34-80044C3C .text setArrow__16dStage_stageDt_cFP17stage_arrow_class */ -void dStage_stageDt_c::setArrow(stage_arrow_class*) { - /* Nonmatching */ -} - -/* 80044C3C-80044C44 .text getArrow__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getArrow() const { - /* Nonmatching */ -} - -/* 80044C44-80044C4C .text setPlayer__16dStage_stageDt_cFP17stage_actor_class */ -void dStage_stageDt_c::setPlayer(stage_actor_class*) { - /* Nonmatching */ -} - -/* 80044C4C-80044C54 .text getPlayer__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPlayer() const { - /* Nonmatching */ -} - -/* 80044C54-80044C5C .text setPlayerNum__16dStage_stageDt_cFUs */ -void dStage_stageDt_c::setPlayerNum(unsigned short) { - /* Nonmatching */ -} - -/* 80044C5C-80044C64 .text getPlayerNum__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPlayerNum() const { - /* Nonmatching */ -} - -/* 80044C64-80044C6C .text setRoom__16dStage_stageDt_cFP14roomRead_class */ -void dStage_stageDt_c::setRoom(roomRead_class*) { - /* Nonmatching */ -} - -/* 80044C6C-80044C74 .text getRoom__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getRoom() const { - /* Nonmatching */ -} - -/* 80044C74-80044C7C .text setMapInfo__16dStage_stageDt_cFP20stage_map_info_class */ -void dStage_stageDt_c::setMapInfo(stage_map_info_class*) { - /* Nonmatching */ -} - -/* 80044C7C-80044C84 .text getMapInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getMapInfo() const { - /* Nonmatching */ -} - -/* 80044C84-80044C8C .text setMapInfoBase__16dStage_stageDt_cFP26stage_map_info_dummy_class */ -void dStage_stageDt_c::setMapInfoBase(stage_map_info_dummy_class*) { - /* Nonmatching */ -} - -/* 80044C8C-80044C94 .text setPaletInfo__16dStage_stageDt_cFP22stage_palet_info_class */ -void dStage_stageDt_c::setPaletInfo(stage_palet_info_class*) { - /* Nonmatching */ -} - -/* 80044C94-80044C9C .text getPaletInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPaletInfo() const { - /* Nonmatching */ -} - -/* 80044C9C-80044CA4 .text setPselectInfo__16dStage_stageDt_cFP24stage_pselect_info_class */ -void dStage_stageDt_c::setPselectInfo(stage_pselect_info_class*) { - /* Nonmatching */ -} - -/* 80044CA4-80044CAC .text getPselectInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPselectInfo() const { - /* Nonmatching */ -} - -/* 80044CAC-80044CB4 .text setEnvrInfo__16dStage_stageDt_cFP21stage_envr_info_class */ -void dStage_stageDt_c::setEnvrInfo(stage_envr_info_class*) { - /* Nonmatching */ -} - -/* 80044CB4-80044CBC .text getEnvrInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getEnvrInfo() const { - /* Nonmatching */ -} - -/* 80044CBC-80044CC4 .text setVrboxInfo__16dStage_stageDt_cFP22stage_vrbox_info_class */ -void dStage_stageDt_c::setVrboxInfo(stage_vrbox_info_class*) { - /* Nonmatching */ -} - -/* 80044CC4-80044CCC .text getVrboxInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getVrboxInfo() const { - /* Nonmatching */ -} - -/* 80044CCC-80044CD4 .text setPlightInfo__16dStage_stageDt_cFP23stage_plight_info_class */ -void dStage_stageDt_c::setPlightInfo(stage_plight_info_class*) { - /* Nonmatching */ -} - -/* 80044CD4-80044CDC .text getPlightInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPlightInfo() const { - /* Nonmatching */ -} - -/* 80044CDC-80044CE4 .text setPaletNumInfo__16dStage_stageDt_cFi */ -void dStage_stageDt_c::setPaletNumInfo(int) { - /* Nonmatching */ -} - -/* 80044CE4-80044CEC .text getPaletNumInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPaletNumInfo() const { - /* Nonmatching */ -} - -/* 80044CEC-80044CF4 .text setPselectNumInfo__16dStage_stageDt_cFi */ -void dStage_stageDt_c::setPselectNumInfo(int) { - /* Nonmatching */ -} - -/* 80044CF4-80044CFC .text getPselectNumInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPselectNumInfo() const { - /* Nonmatching */ -} - -/* 80044CFC-80044D04 .text setEnvrNumInfo__16dStage_stageDt_cFi */ -void dStage_stageDt_c::setEnvrNumInfo(int) { - /* Nonmatching */ -} - -/* 80044D04-80044D0C .text getEnvrNumInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getEnvrNumInfo() const { - /* Nonmatching */ -} - -/* 80044D0C-80044D14 .text setVrboxNumInfo__16dStage_stageDt_cFi */ -void dStage_stageDt_c::setVrboxNumInfo(int) { - /* Nonmatching */ -} - -/* 80044D14-80044D1C .text getVrboxNumInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getVrboxNumInfo() const { - /* Nonmatching */ -} - -/* 80044D1C-80044D88 .text setLightVecInfo__16dStage_stageDt_cFP25stage_lightvec_info_class */ -void dStage_stageDt_c::setLightVecInfo(stage_lightvec_info_class*) { - /* Nonmatching */ -} - -/* 80044D88-80044DF4 .text getLightVecInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getLightVecInfo() const { - /* Nonmatching */ -} - -/* 80044DF4-80044E60 .text setLightVecInfoNum__16dStage_stageDt_cFi */ -void dStage_stageDt_c::setLightVecInfoNum(int) { - /* Nonmatching */ -} - -/* 80044E60-80044ECC .text getLightVecInfoNum__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getLightVecInfoNum() const { - /* Nonmatching */ -} - -/* 80044ECC-80044ED4 .text setPlightNumInfo__16dStage_stageDt_cFi */ -void dStage_stageDt_c::setPlightNumInfo(int) { - /* Nonmatching */ -} - -/* 80044ED4-80044EDC .text getPlightNumInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPlightNumInfo() const { - /* Nonmatching */ -} - -/* 80044EDC-80044EE4 .text setStagInfo__16dStage_stageDt_cFP21stage_stag_info_class */ -void dStage_stageDt_c::setStagInfo(stage_stag_info_class*) { - /* Nonmatching */ -} - -/* 80044EE4-80044EEC .text getStagInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getStagInfo() const { - /* Nonmatching */ -} - -/* 80044EEC-80044EF4 .text setSclsInfo__16dStage_stageDt_cFP27stage_scls_info_dummy_class */ -void dStage_stageDt_c::setSclsInfo(stage_scls_info_dummy_class*) { - /* Nonmatching */ -} - -/* 80044EF4-80044EFC .text getSclsInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getSclsInfo() const { - /* Nonmatching */ -} - -/* 80044EFC-80044F04 .text setPntInfo__16dStage_stageDt_cFP13dStage_dPnt_c */ -void dStage_stageDt_c::setPntInfo(dStage_dPnt_c*) { - /* Nonmatching */ -} - -/* 80044F04-80044F0C .text getPntInf__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPntInf() const { - /* Nonmatching */ -} - -/* 80044F0C-80044F14 .text setPathInfo__16dStage_stageDt_cFP14dStage_dPath_c */ -void dStage_stageDt_c::setPathInfo(dStage_dPath_c*) { - /* Nonmatching */ -} - -/* 80044F14-80044F1C .text getPathInf__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPathInf() const { - /* Nonmatching */ -} - -/* 80044F1C-80044F24 .text setPnt2Info__16dStage_stageDt_cFP13dStage_dPnt_c */ -void dStage_stageDt_c::setPnt2Info(dStage_dPnt_c*) { - /* Nonmatching */ -} - -/* 80044F24-80044F2C .text getPnt2Inf__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPnt2Inf() const { - /* Nonmatching */ -} - -/* 80044F2C-80044F34 .text setPath2Info__16dStage_stageDt_cFP14dStage_dPath_c */ -void dStage_stageDt_c::setPath2Info(dStage_dPath_c*) { - /* Nonmatching */ -} - -/* 80044F34-80044F3C .text getPath2Inf__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getPath2Inf() const { - /* Nonmatching */ -} - -/* 80044F3C-80044F44 .text setSoundInfo__16dStage_stageDt_cFP18dStage_SoundInfo_c */ -void dStage_stageDt_c::setSoundInfo(dStage_SoundInfo_c*) { - /* Nonmatching */ -} - -/* 80044F44-80044F4C .text getSoundInf__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getSoundInf() const { - /* Nonmatching */ -} - -/* 80044F4C-80044F54 .text setEventInfo__16dStage_stageDt_cFP18dStage_EventInfo_c */ -void dStage_stageDt_c::setEventInfo(dStage_EventInfo_c*) { - /* Nonmatching */ -} - -/* 80044F54-80044F5C .text getEventInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getEventInfo() const { - /* Nonmatching */ -} - -/* 80044F5C-80044FC8 .text setFileListInfo__16dStage_stageDt_cFP20dStage_FileList_dt_c */ -void dStage_stageDt_c::setFileListInfo(dStage_FileList_dt_c*) { - /* Nonmatching */ -} - -/* 80044FC8-80045034 .text getFileListInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getFileListInfo() const { - /* Nonmatching */ -} - -/* 80045034-8004503C .text setFloorInfo__16dStage_stageDt_cFP18dStage_FloorInfo_c */ -void dStage_stageDt_c::setFloorInfo(dStage_FloorInfo_c*) { - /* Nonmatching */ -} - -/* 8004503C-80045044 .text getFloorInfo__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getFloorInfo() const { - /* Nonmatching */ -} - -/* 80045044-8004504C .text setMemoryConfig__16dStage_stageDt_cFP21dStage_MemoryConfig_c */ -void dStage_stageDt_c::setMemoryConfig(dStage_MemoryConfig_c*) { - /* Nonmatching */ -} - -/* 8004504C-80045054 .text getMemoryConfig__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getMemoryConfig() const { - /* Nonmatching */ -} - -/* 80045054-8004505C .text setMemoryMap__16dStage_stageDt_cFP18dStage_MemoryMap_c */ -void dStage_stageDt_c::setMemoryMap(dStage_MemoryMap_c*) { - /* Nonmatching */ -} - -/* 8004505C-80045064 .text getMemoryMap__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getMemoryMap() const { - /* Nonmatching */ -} - -/* 80045064-800450D0 .text setShip__16dStage_stageDt_cFP13dStage_Ship_c */ -void dStage_stageDt_c::setShip(dStage_Ship_c*) { - /* Nonmatching */ -} - -/* 800450D0-8004513C .text getShip__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getShip() const { - /* Nonmatching */ -} - -/* 8004513C-80045144 .text setMulti__16dStage_stageDt_cFP14dStage_Multi_c */ -void dStage_stageDt_c::setMulti(dStage_Multi_c*) { - /* Nonmatching */ -} - -/* 80045144-8004514C .text getMulti__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getMulti() const { - /* Nonmatching */ -} - -/* 8004514C-800451B8 .text setLbnk__16dStage_stageDt_cFP13dStage_Lbnk_c */ -void dStage_stageDt_c::setLbnk(dStage_Lbnk_c*) { - /* Nonmatching */ -} - -/* 800451B8-80045224 .text getLbnk__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getLbnk() const { - /* Nonmatching */ -} - -/* 80045224-8004522C .text setTresure__16dStage_stageDt_cFP19stage_tresure_class */ -void dStage_stageDt_c::setTresure(stage_tresure_class*) { - /* Nonmatching */ -} - -/* 8004522C-80045234 .text getTresure__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getTresure() const { - /* Nonmatching */ -} - -/* 80045234-8004523C .text setDMap__16dStage_stageDt_cFP13dStage_DMap_c */ -void dStage_stageDt_c::setDMap(dStage_DMap_c*) { - /* Nonmatching */ -} - -/* 8004523C-80045244 .text getDMap__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getDMap() const { - /* Nonmatching */ -} - -/* 80045244-8004524C .text setDrTg__16dStage_stageDt_cFP16stage_tgsc_class */ -void dStage_stageDt_c::setDrTg(stage_tgsc_class*) { - /* Nonmatching */ -} - -/* 8004524C-80045254 .text getDrTg__16dStage_stageDt_cCFv */ -void dStage_stageDt_c::getDrTg() const { - /* Nonmatching */ -} - -/* 80045324-8004535C .text __arraydtor$5591 */ -void __arraydtor$5591 { - /* Nonmatching */ -} - -/* 8004535C-800453BC .text __dt__19dStage_roomStatus_cFv */ -dStage_roomStatus_c::~dStage_roomStatus_c() { - /* Nonmatching */ -} - -/* 800453BC-8004545C .text __ct__19dStage_roomStatus_cFv */ -dStage_roomStatus_c::dStage_roomStatus_c() { - /* Nonmatching */ -} - -/* 8004545C-800454C0 .text __dt__19dStage_KeepDoorInfoFv */ -dStage_KeepDoorInfo::~dStage_KeepDoorInfo() { - /* Nonmatching */ -} - -/* 800454C0-800454FC .text __dt__21stage_tgsc_data_classFv */ -stage_tgsc_data_class::~stage_tgsc_data_class() { - /* Nonmatching */ -} - -/* 800454FC-80045500 .text __ct__21stage_tgsc_data_classFv */ -stage_tgsc_data_class::stage_tgsc_data_class() { - /* Nonmatching */ -} - -/* 80045500-80045564 .text __dt__22dStage_KeepTresureInfoFv */ -dStage_KeepTresureInfo::~dStage_KeepTresureInfo() { - /* Nonmatching */ -} - -/* 80045564-800455A0 .text __dt__24stage_tresure_data_classFv */ -stage_tresure_data_class::~stage_tresure_data_class() { - /* Nonmatching */ -} - -/* 800455A0-800455A4 .text __ct__24stage_tresure_data_classFv */ -stage_tresure_data_class::stage_tresure_data_class() { - /* Nonmatching */ -} - -/* 800455A4-800455AC .text getBokoFlamePos__9daPy_py_cFP4cXyz */ -void daPy_py_c::getBokoFlamePos(cXyz*) { - /* Nonmatching */ -} -