From f891887626e36b991b0e8afd4e6b995c3d1a4540 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 13 Apr 2025 23:54:57 -0400 Subject: [PATCH] d_stage cleanup (#2392) --- config/GZ2E01/splits.txt | 3 +- config/GZ2E01/symbols.txt | 2 +- config/GZ2J01/splits.txt | 3 +- config/GZ2J01/symbols.txt | 2 +- config/GZ2P01/splits.txt | 3 +- config/GZ2P01/symbols.txt | 2 +- config/ShieldD/symbols.txt | 4 +- configure.py | 2 +- include/d/d_com_inf_game.h | 5 +- include/d/d_kankyo_data.h | 8 +- include/d/d_stage.h | 963 +++++++++++------- include/f_op/f_op_actor_mng.h | 29 +- include/f_op/f_op_camera_mng.h | 4 + src/d/actor/d_a_alink.cpp | 2 +- src/d/actor/d_a_alink_copyrod.inc | 2 +- src/d/actor/d_a_alink_cut.inc | 2 +- src/d/actor/d_a_alink_demo.inc | 4 +- src/d/actor/d_a_no_chg_room.cpp | 6 +- src/d/actor/d_a_npc.cpp | 16 +- src/d/actor/d_a_player.cpp | 4 +- src/d/actor/d_a_tag_chgrestart.cpp | 10 +- src/d/actor/d_a_tag_mhint.cpp | 10 +- src/d/actor/d_a_tag_mmsg.cpp | 4 +- src/d/actor/d_a_tag_mstop.cpp | 4 +- src/d/actor/d_a_tbox.cpp | 22 +- src/d/d_camera.cpp | 52 +- src/d/d_com_inf_game.cpp | 18 +- src/d/d_ev_camera.cpp | 4 +- src/d/d_event.cpp | 12 +- src/d/d_event_data.cpp | 6 +- src/d/d_event_manager.cpp | 4 +- src/d/d_item.cpp | 2 +- src/d/d_kankyo.cpp | 4 +- src/d/d_kankyo_wether.cpp | 12 +- src/d/d_map_path_dmap.cpp | 21 +- src/d/d_map_path_fmap.cpp | 2 +- src/d/d_menu_dmap.cpp | 8 +- src/d/d_menu_fmap.cpp | 2 +- src/d/d_menu_item_explain.cpp | 8 +- src/d/d_menu_save.cpp | 2 +- src/d/d_meter2_info.cpp | 2 +- src/d/d_msg_flow.cpp | 6 +- src/d/d_s_room.cpp | 8 +- src/d/d_stage.cpp | 1449 ++++++++-------------------- src/f_op/f_op_actor.cpp | 20 +- src/f_op/f_op_actor_mng.cpp | 32 +- src/f_pc/f_pc_priority.cpp | 3 - 47 files changed, 1184 insertions(+), 1609 deletions(-) diff --git a/config/GZ2E01/splits.txt b/config/GZ2E01/splits.txt index a85065ea365..1c51c1b6101 100644 --- a/config/GZ2E01/splits.txt +++ b/config/GZ2E01/splits.txt @@ -323,7 +323,7 @@ f_pc/f_pc_node_req.cpp: f_pc/f_pc_priority.cpp: .text start:0x80023130 end:0x80023564 .bss start:0x803F4E58 end:0x803F4E68 - .sdata start:0x804505E8 end:0x804505F8 + .sdata start:0x804505E8 end:0x804505F0 f_pc/f_pc_profile.cpp: .text start:0x80023564 end:0x80023578 @@ -364,6 +364,7 @@ d/d_stage.cpp: .rodata start:0x80378A50 end:0x80378E48 .data start:0x803A3B18 end:0x803A6F08 .bss start:0x803F4E68 end:0x804061A0 + .sdata start:0x804505F0 end:0x804505F8 .sbss start:0x80450D58 end:0x80450D80 .sdata2 start:0x80451C90 end:0x80451CA0 diff --git a/config/GZ2E01/symbols.txt b/config/GZ2E01/symbols.txt index fe19849a47e..9989f1ec975 100644 --- a/config/GZ2E01/symbols.txt +++ b/config/GZ2E01/symbols.txt @@ -21356,7 +21356,7 @@ g_fopDwTg_Queue = .sdata:0x804505D0; // type:object size:0x8 scope:global align: g_fpcLn_Queue = .sdata:0x804505D8; // type:object size:0x8 scope:global align:4 g_fpcNd_IsCheckOfDeleteTiming = .sdata:0x804505E0; // type:object size:0x4 scope:global align:4 data:4byte crear$2224 = .sdata:0x804505E8; // type:object size:0x8 scope:local align:4 data:4byte -data_804505F0 = .sdata:0x804505F0; // type:object size:0x1 scope:global align:1 data:byte +mRoomReadId__20dStage_roomControl_c = .sdata:0x804505F0; // type:object size:0x1 scope:global align:1 data:byte backColor$3972 = .sdata:0x804505F8; // type:object size:0x4 scope:local align:4 data:byte g_clearColor = .sdata:0x80450600; // type:object size:0x4 scope:global align:4 data:4byte g_blackColor = .sdata:0x80450604; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/config/GZ2J01/splits.txt b/config/GZ2J01/splits.txt index 3182378bcd9..8811f96a300 100644 --- a/config/GZ2J01/splits.txt +++ b/config/GZ2J01/splits.txt @@ -319,7 +319,7 @@ f_pc/f_pc_node_req.cpp: f_pc/f_pc_priority.cpp: .text start:0x80023130 end:0x80023564 .bss start:0x803EEF98 end:0x803EEFA8 - .sdata start:0x8044A728 end:0x8044A738 + .sdata start:0x8044A728 end:0x8044A730 f_pc/f_pc_profile.cpp: .text start:0x80023564 end:0x80023578 @@ -361,6 +361,7 @@ d/d_stage.cpp: .data start:0x8039DC78 end:0x803A1068 .bss start:0x803EEFA8 end:0x804002E0 .sbss start:0x8044AE98 end:0x8044AEC0 + .sdata start:0x8044A730 end:0x8044A738 .sdata2 start:0x8044BDD0 end:0x8044BDE0 d/d_map.cpp: diff --git a/config/GZ2J01/symbols.txt b/config/GZ2J01/symbols.txt index bbd0dffaf59..add1212ae22 100644 --- a/config/GZ2J01/symbols.txt +++ b/config/GZ2J01/symbols.txt @@ -21376,7 +21376,7 @@ g_fopDwTg_Queue = .sdata:0x8044A710; // type:object size:0x8 scope:global align: g_fpcLn_Queue = .sdata:0x8044A718; // type:object size:0x8 scope:global align:4 g_fpcNd_IsCheckOfDeleteTiming = .sdata:0x8044A720; // type:object size:0x4 scope:global align:4 data:4byte crear$2224 = .sdata:0x8044A728; // type:object size:0x8 scope:local align:4 data:4byte -lbl_8044A730 = .sdata:0x8044A730; // type:object size:0x1 data:byte +mRoomReadId__20dStage_roomControl_c = .sdata:0x8044A730; // type:object size:0x1 data:byte backColor$3972 = .sdata:0x8044A738; // type:object size:0x4 scope:local align:4 data:byte g_clearColor = .sdata:0x8044A740; // type:object size:0x4 scope:global align:4 data:4byte g_blackColor = .sdata:0x8044A744; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/config/GZ2P01/splits.txt b/config/GZ2P01/splits.txt index 18d6ab917cc..789278ee054 100644 --- a/config/GZ2P01/splits.txt +++ b/config/GZ2P01/splits.txt @@ -316,7 +316,7 @@ f_pc/f_pc_node_req.cpp: f_pc/f_pc_priority.cpp: .text start:0x800231D8 end:0x8002360C .bss start:0x803F6DF8 end:0x803F6E08 - .sdata start:0x804525A8 end:0x804525B8 + .sdata start:0x804525A8 end:0x804525B0 f_pc/f_pc_profile.cpp: .text start:0x8002360C end:0x80023620 @@ -358,6 +358,7 @@ d/d_stage.cpp: .data start:0x803A57F8 end:0x803A8BE8 .bss start:0x803F6E08 end:0x80408140 .sbss start:0x80452D18 end:0x80452D40 + .sdata start:0x804525B0 end:0x804525B8 .sdata2 start:0x80453C50 end:0x80453C60 d/d_map.cpp: diff --git a/config/GZ2P01/symbols.txt b/config/GZ2P01/symbols.txt index 1eeefd6b479..fdaf262a307 100644 --- a/config/GZ2P01/symbols.txt +++ b/config/GZ2P01/symbols.txt @@ -21385,7 +21385,7 @@ g_fopDwTg_Queue = .sdata:0x80452590; // type:object size:0x8 scope:global align: g_fpcLn_Queue = .sdata:0x80452598; // type:object size:0x8 scope:global align:4 g_fpcNd_IsCheckOfDeleteTiming = .sdata:0x804525A0; // type:object size:0x4 scope:global align:4 data:4byte crear$2224 = .sdata:0x804525A8; // type:object size:0x8 scope:local align:4 data:4byte -lbl_804525B0 = .sdata:0x804525B0; // type:object size:0x1 data:byte +mRoomReadId__20dStage_roomControl_c = .sdata:0x804525B0; // type:object size:0x1 data:byte backColor$3972 = .sdata:0x804525B8; // type:object size:0x4 scope:local align:4 data:byte g_clearColor = .sdata:0x804525C0; // type:object size:0x4 scope:global align:4 data:4byte g_blackColor = .sdata:0x804525C4; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/config/ShieldD/symbols.txt b/config/ShieldD/symbols.txt index 053b1de43cb..863e1b1543e 100644 --- a/config/ShieldD/symbols.txt +++ b/config/ShieldD/symbols.txt @@ -57374,7 +57374,7 @@ g_fpcNd_IsCheckOfDeleteTiming = .sdata:0x8073F9E8; // type:object size:0x4 scope @124001 = .sdata:0x807402C8; // type:object size:0x7 scope:local data:string hash:0xACC83683 @124026 = .sdata:0x807402D0; // type:object size:0x7 scope:local data:string hash:0xACC83646 @124029 = .sdata:0x807402D8; // type:object size:0x6 scope:local data:string hash:0xACC83649 -lbl_807402DE = .sdata:0x807402DE; // type:object size:0x1 data:byte hash:0x1A63BEEE dhash:0x24126ACC +mRoomReadId__20dStage_roomControl_c = .sdata:0x807402DE; // type:object size:0x1 data:byte hash:0x1A63BEEE dhash:0x24126ACC __RTTI__16dStage_stageDt_c = .sdata:0x807402E0; // type:object size:0x8 scope:global hash:0x17B0566E dhash:0xF078A7E9 __RTTI__15dStage_roomDt_c = .sdata:0x807402E8; // type:object size:0x8 scope:global hash:0x0033F5F6 dhash:0xF77E0AD2 __RTTI__11dStage_dt_c = .sdata:0x807402F0; // type:object size:0x8 scope:global hash:0x5F98966D dhash:0x6874274D @@ -64180,7 +64180,7 @@ mProcID__20dStage_roomControl_c = .sbss:0x8074C578; // type:object size:0x4 scop lbl_8074C57C = .sbss:0x8074C57C; // type:object size:0x1 data:byte hash:0x87058A4F dhash:0xB3B700CD lbl_8074C57D = .sbss:0x8074C57D; // type:object size:0x1 data:byte hash:0x5AF37248 dhash:0x1A945A6A lbl_8074C57E = .sbss:0x8074C57E; // type:object size:0x1 data:byte hash:0xE957ED68 dhash:0x66C51F6A -lbl_8074C57F = .sbss:0x8074C57F; // type:object size:0x1 data:byte hash:0x88D929D5 dhash:0xB0689D17 +m_time_pass__20dStage_roomControl_c = .sbss:0x8074C57F; // type:object size:0x1 data:byte hash:0x88D929D5 dhash:0xB0689D17 lbl_8074C580 = .sbss:0x8074C580; // type:object size:0x1 data:byte hash:0x3F91BE16 dhash:0xDD72DA34 mArcBankName__20dStage_roomControl_c = .sbss:0x8074C584; // type:object size:0x4 scope:global data:4byte hash:0x885DF1A0 dhash:0xD2AA5D02 mArcBankData__20dStage_roomControl_c = .sbss:0x8074C588; // type:object size:0x4 scope:global data:4byte hash:0xF1AABD97 dhash:0xD2A70575 diff --git a/configure.py b/configure.py index ae8fa40cbff..8d8b59be76f 100755 --- a/configure.py +++ b/configure.py @@ -493,7 +493,7 @@ config.libs = [ "progress_category": "game", "host": True, "objects": [ - Object(MatchingFor("GZ2E01"), "d/d_stage.cpp"), + Object(MatchingFor("GZ2E01"), "d/d_stage.cpp", extra_cflags=['-pragma "nosyminline on"']), Object(MatchingFor("GZ2E01"), "d/d_map.cpp"), Object(MatchingFor("GZ2E01"), "d/d_com_inf_game.cpp", extra_cflags=['-pragma "nosyminline on"']), Object(MatchingFor("GZ2E01"), "d/d_com_static.cpp"), diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 211eb27ece9..275b1479098 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -8,6 +8,7 @@ #include "d/d_event.h" #include "d/d_event_manager.h" #include "d/d_particle.h" +#include "d/d_save.h" #include "f_op/f_op_camera_mng.h" #include "m_Do/m_Do_controller_pad.h" #include "global.h" @@ -3338,7 +3339,7 @@ inline int dComIfGp_roomControl_loadRoom(int param_0, u8* param_1, bool param_2) } inline void dComIfGp_roomControl_setStayNo(int stayNo) { - g_dComIfG_gameInfo.play.getRoomControl()->setStayNo(stayNo); + g_dComIfG_gameInfo.play.mRoomControl.setStayNo(stayNo); } inline void dComIfGp_roomControl_setZoneNo(int roomNo, int zoneNo) { @@ -3370,7 +3371,7 @@ inline void dComIfGp_roomControl_setStatusFlag(int i_roomNo, u8 flag) { } inline void dComIfGp_roomControl_zoneCountCheck(int i_roomNo) { - g_dComIfG_gameInfo.play.mRoomControl.zoneCountCheck(i_roomNo); + g_dComIfG_gameInfo.play.getRoomControl()->zoneCountCheck(i_roomNo); } inline u8 dComIfGp_getRStatus() { diff --git a/include/d/d_kankyo_data.h b/include/d/d_kankyo_data.h index 748e13b3a22..69cf99a0e9c 100644 --- a/include/d/d_kankyo_data.h +++ b/include/d/d_kankyo_data.h @@ -4,10 +4,10 @@ #include "dolphin/types.h" struct color_RGB_class { - u8 r; - u8 g; - u8 b; -}; + /* 0x0 */ u8 r; + /* 0x1 */ u8 g; + /* 0x2 */ u8 b; +}; // Size: 0x3 // Invented name; Used as u8 `darkLv` in dKydata_darkworldInfo_c. enum dKyd_DARKLV { diff --git a/include/d/d_stage.h b/include/d/d_stage.h index e63b56c8efb..bcf132eff9b 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -4,10 +4,31 @@ #include "SSystem/SComponent/c_lib.h" #include "d/d_kankyo.h" #include "d/d_kankyo_data.h" -#include "d/d_save.h" +#include "d/d_map_path_dmap.h" +#include "f_op/f_op_actor_mng.h" #include "global.h" -class JKRExpHeap; +enum StageType { + /* 0x0 */ ST_FIELD, + /* 0x1 */ ST_DUNGEON, + /* 0x2 */ ST_ROOM, + /* 0x3 */ ST_BOSS_ROOM, + /* 0x4 */ ST_CASTLE_TOWN, + /* 0x5 */ ST_CLOUD_SEA, +}; + +// made up name +struct dStage_nodeHeader { + /* 0x0 */ u32 m_tag; + /* 0x4 */ int m_entryNum; + /* 0x8 */ u32 m_offset; +}; + +// made up name +struct dStage_fileHeader { + /* 0x0 */ int m_chunkCount; + /* 0x4 */ dStage_nodeHeader m_nodes[1]; // Variable length +}; struct stage_vrboxcol_info_class { /* 0x00 */ color_RGB_class sky_col; @@ -28,29 +49,18 @@ struct stage_vrbox_info_class { /* 0x11 */ GXColor field_0x11; }; // Size: 0x15 -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; +// TRES +struct stage_tresure_data_class { + /* 0x00 */ char name[8]; + /* 0x08 */ fopAcM_prmBase_class base; }; // Size: 0x20 -enum StageType { - /* 0x0 */ ST_FIELD, - /* 0x1 */ ST_DUNGEON, - /* 0x2 */ ST_ROOM, - /* 0x3 */ ST_BOSS_ROOM, - /* 0x4 */ ST_CASTLE_TOWN, - /* 0x5 */ ST_CLOUD_SEA, +struct stage_tresure_class { + /* 0x00 */ int num; + /* 0x04 */ stage_tresure_data_class* m_entries; }; +// STAG struct stage_stag_info_class { /* 0x00 */ f32 field_0x0; /* 0x04 */ f32 field_0x4; @@ -68,8 +78,9 @@ struct stage_stag_info_class { /* 0x28 */ u8 mMsgGroup; /* 0x2A */ u16 mStageTitleNo; /* 0x2C */ u8 mParticleNo[16]; -}; +}; // Size: 0x3C +// SCLS struct stage_scls_info_class { /* 0x0 */ char mStage[8]; /* 0x8 */ u8 mStart; @@ -84,12 +95,12 @@ struct stage_scls_info_class { }; // Size: 0xD struct stage_scls_info_dummy_class { - /* 0x00 */ int numEntries; - /* 0x04 */ stage_scls_info_class* mEntries; + /* 0x00 */ int num; + /* 0x04 */ stage_scls_info_class* m_entries; }; +// LGT struct stage_pure_lightvec_info_class { - // LGT /* 0x00 */ Vec position; /* 0x0C */ f32 radius; /* 0x10 */ f32 directionX; @@ -101,19 +112,22 @@ struct stage_pure_lightvec_info_class { /* 0x1F */ u8 switch_no; }; // Size: 0x20 +// COLO struct stage_pselect_info_class { /* 0x0 */ u8 palette_id[8]; /* 0x8 */ f32 change_rate; }; // Size: 0xC +// LGHT struct stage_plight_info_class { /* 0x00 */ Vec position; /* 0x0C */ f32 power; - /* 0x10 */ u8 unk_0x10[0x18 - 0x10]; + /* 0x10 */ u8 field_0x10[0x18 - 0x10]; /* 0x18 */ color_RGB_class color; /* 0x1B */ u8 fluctuation; }; // Size: 0x1C +// PAL struct stage_palette_info_class { /* 0x00 */ color_RGB_class actor_amb_col; /* 0x03 */ color_RGB_class bg_amb_col[4]; @@ -138,20 +152,19 @@ struct stage_map_info_class { }; // Size: 0x38 struct stage_map_info_dummy_class { - /* 0x0 */ int field_0x0; - /* 0x4 */ stage_map_info_class* mData; + /* 0x0 */ int num; + /* 0x4 */ stage_map_info_class* m_entries; }; +// Env struct stage_envr_info_class { /* 0x0 */ u8 pselect_id[65]; }; // Size: 0x41 +// CAMR / RCAM struct stage_camera2_data_class { - struct { - int field_0x0; - Vec field_0x4; - } /* 0x00 */ field_0x0; - /* 0x10 */ u8 field_0x10; + /* 0x00 */ char m_cam_type[16]; + /* 0x10 */ u8 m_arrow_idx; /* 0x11 */ u8 field_0x11; /* 0x12 */ u8 field_0x12; /* 0x13 */ u8 field_0x13; @@ -160,64 +173,142 @@ struct stage_camera2_data_class { }; // Size: 0x18 struct stage_camera_class { - /* 0x0 */ int field_0x0; - /* 0x4 */ stage_camera2_data_class* mEntries; + /* 0x0 */ int num; + /* 0x4 */ stage_camera2_data_class* m_entries; }; +// AROB / RARO struct stage_arrow_data_class { - /* 0x00 */ cXyz mPosition; - /* 0x0C */ csXyz mAngle; + /* 0x00 */ cXyz position; + /* 0x0C */ csXyz angle; /* 0x12 */ s16 field_0x12; }; // Size: 0x14 struct stage_arrow_class { - /* 0x00 */ int mNum; - /* 0x04 */ stage_arrow_data_class* mEntries; + /* 0x00 */ int num; + /* 0x04 */ stage_arrow_data_class* m_entries; }; -class stage_actor_data_class { -public: - /* 0x00 */ char mName[8]; - /* 0x08 */ u32 mParameter; - /* 0x0C */ cXyz mSpawnPos; - /* 0x18 */ csXyz mAngle; - /* 0x1E */ u16 mEnemyNo; +// ACT +struct stage_actor_data_class { + /* 0x00 */ char name[8]; + /* 0x08 */ fopAcM_prmBase_class base; }; // Size: 0x20 -class stage_actor_class { -public: - /* 0x0 */ int mEntryNum; - /* 0x4 */ stage_actor_data_class* mEntries; +struct stage_actor_class { + /* 0x0 */ int num; + /* 0x4 */ stage_actor_data_class* m_entries; }; -struct stage_tgsc_data_class : public stage_actor_data_class { - /* 8002847C */ ~stage_tgsc_data_class() {} - /* 800284B8 */ stage_tgsc_data_class() {} - - /* 0x20 */ u8 field_0x20[2]; - /* 0x22 */ u8 field_0x22; +// TGSC / SCOB / TGDR / Door +struct stage_tgsc_data_class { + /* 0x00 */ char name[8]; + /* 0x08 */ fopAcM_prmBase_class base; + /* 0x20 */ fopAcM_prmScale_class scale; }; // Size: 0x24 STATIC_ASSERT(sizeof(stage_tgsc_data_class) == 0x24); -class stage_tgsc_class { -public: - /* 0x00 */ int mEntryNum; - /* 0x04 */ stage_tgsc_data_class* mData; +struct stage_tgsc_class { + /* 0x00 */ int num; + /* 0x04 */ stage_tgsc_data_class* m_entries; }; +// MPAT +struct map_path_class { + /* 0x0 */ int num; + /* 0x4 */ dDrawPath_c::room_class* m_entries; +}; + +// RTBL struct roomRead_data_class { - /* 0x0 */ u8 field_0x0; + /* 0x0 */ u8 num; /* 0x1 */ u8 field_0x1; /* 0x2 */ u8 field_0x2; - /* 0x4 */ u8* field_0x4; -}; + /* 0x4 */ u8* m_rooms; +}; // Size: 0x8 struct roomRead_class { - /* 0x0 */ int field_0x0; - /* 0x4 */ roomRead_data_class** field_0x4; + /* 0x0 */ int num; + /* 0x4 */ roomRead_data_class** m_entries; }; +// MEM +struct dStage_MemoryMap_c { + /* 0x0 */ int m_num; + /* 0x4 */ u32* field_0x4; +}; + +// MEC +struct dStage_MemoryConfig_data { + /* 0x0 */ u8 m_roomNo; + /* 0x1 */ u8 m_blockID; +}; // Size: 0x2 + +struct dStage_MemoryConfig_c { + /* 0x0 */ int m_num; + /* 0x4 */ dStage_MemoryConfig_data* field_0x4; +}; + +// PATH / RPAT +struct dPath; +struct dStage_dPath_c { + /* 0x0 */ int m_num; + /* 0x4 */ dPath* m_path; +}; + +// PPNT / RPPN +struct dStage_dPnt_c { + /* 0x0 */ int num; + /* 0x4 */ u32 m_pnt_offset; +}; // Size: 0x8 + +// MULT +struct dStage_Mult_info { + /* 0x0 */ f32 mTransX; + /* 0x4 */ f32 mTransY; + /* 0x8 */ s16 mAngle; + /* 0xA */ u8 mRoomNo; +}; // Size: 0xC + +class dStage_Multi_c { +public: + /* 0x0 */ int num; + /* 0x4 */ dStage_Mult_info* m_entries; +}; + +// SOND +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 + +struct dStage_SoundInfo_c { + /* 0x0 */ int num; + /* 0x4 */ stage_sound_data* entries; +}; + +// FILI +class dStage_FileList_dt_c { +public: + /* 0x00 */ u32 mParameters; + /* 0x04 */ f32 mSeaLevel; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ u8 field_0x10[10]; + /* 0x1A */ u8 mDefaultCamera; + /* 0x1B */ u8 mBitSw; + /* 0x1C */ u16 mMsg; +}; // Size: 0x20 + +// FILI class dStage_FileList2_dt_c { public: /* 0x00 */ f32 mLeftRmX; @@ -233,70 +324,25 @@ public: /* 0x1C */ s16 field_0x1c; }; // Size: 0x20 -struct dStage_MemoryMap_c { - /* 0x0 */ int m_num; - /* 0x4 */ u32* field_0x4; -}; - -struct dPath; -struct dStage_dPath_c { - /* 0x0 */ int m_num; - /* 0x4 */ dPath* m_path; -}; - -struct dStage_Mult_info { - /* 0x0 */ f32 mTransX; - /* 0x4 */ f32 mTransY; - /* 0x8 */ s16 mAngle; - /* 0xA */ u8 mRoomNo; -}; // Size: 0xC - -class dStage_Multi_c { -public: - /* 0x0 */ int field_0x0; - /* 0x4 */ dStage_Mult_info* mInfo; -}; - -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 - -struct dStage_SoundInfo_c { - // SOND +struct dStage_FileList2_c { /* 0x0 */ int num; - /* 0x4 */ stage_sound_data* entries; + /* 0x4 */ dStage_FileList2_dt_c* entries; }; -class dStage_FileList_dt_c { -public: - /* 0x00 */ u32 mParameters; - /* 0x04 */ f32 mSeaLevel; - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ u8 field_0x10[10]; - /* 0x1A */ u8 mDefaultCamera; - /* 0x1B */ u8 mBitSw; - /* 0x1C */ u16 mMsg; -}; // Size: 0x20 - -// PPNT -struct dStage_dPnt_c { - /* 0x0 */ int num; - /* 0x4 */ u32 m_pnt_offset; -}; // Size: 0x8 +// FLOR +struct dStage_FloorInfo_dt_c { + // Copied from TWW, may not be right + /* 0x00 */ int field_0x00; + /* 0x04 */ u8 floorNo; + /* 0x05 */ s8 field_0x05[14]; +}; // Size: 0x14 struct dStage_FloorInfo_c { - // FLOR + /* 0x00 */ int num; + /* 0x04 */ dStage_FloorInfo_dt_c* m_entries; }; +// LBNK class dStage_Lbnk_dt_c { public: /* 0x0 */ u8 bank; @@ -309,29 +355,30 @@ struct dStage_Lbnk_c { /* 0x4 */ dStage_Lbnk_dt_c* entries; }; -struct dStage_Elst_data { +struct dStage_Elst_dt_c { /* 0x0 */ u8 m_layerTable[15]; -}; +}; // Size: 0xF struct dStage_Elst_c { /* 0x0 */ int m_entryNum; - /* 0x4 */ dStage_Elst_data* m_entries; + /* 0x4 */ dStage_Elst_dt_c* m_entries; }; -struct dStage_MemoryConfig_data { - /* 0x0 */ u8 m_roomNo; - /* 0x1 */ u8 m_blockID; -}; // Size: 0x2 - -struct dStage_MemoryConfig_c { - /* 0x0 */ int m_num; - /* 0x4 */ dStage_MemoryConfig_data* field_0x4; -}; +// DMAP +struct dStage_DMap_dt_c { + // Copied from TWW, may not be right + /* 0x00 */ int field_0x00; + /* 0x04 */ int field_0x04; + /* 0x08 */ int field_0x08; + /* 0x0C */ f32 offsetY; +}; // Size: 0x10 struct dStage_DMap_c { - // DMAP + /* 0x00 */ int num; + /* 0x04 */ dStage_DMap_dt_c* entries; }; +// REVT struct dStage_MapEvent_dt_c { /* 0x00 */ u8 mType; /* 0x01 */ u8 field_0x1; @@ -356,9 +403,8 @@ struct dStage_MapEvent_dt_c { }; // SIZE = 0x1C struct dStage_MapEventInfo_c { - // REVT - int mCount; - dStage_MapEvent_dt_c* mData; + /* 0x0 */ int num; + /* 0x4 */ dStage_MapEvent_dt_c* m_entries; }; class dStage_dt_c { @@ -455,7 +501,7 @@ public: /* vt[87] */ virtual void setDoor(stage_tgsc_class*) = 0; /* vt[88] */ virtual stage_tgsc_class* getDoor(void) const = 0; /* vt[89] */ virtual void setMapPath(void*) = 0; - /* vt[90] */ virtual int getMapPath(void) = 0; + /* vt[90] */ virtual void* getMapPath(void) = 0; /* vt[91] */ virtual void setElst(dStage_Elst_c*) = 0; /* vt[92] */ virtual dStage_Elst_c* getElst(void) = 0; @@ -463,103 +509,149 @@ private: /* 0x04 */ s8 mRoomNo; }; +void dStage_SetErrorStage(); +void dStage_SetErrorRoom(); + class dStage_stageDt_c : public dStage_dt_c { public: dStage_stageDt_c() {} /* vt[ 2] */ virtual void init(void); - /* vt[ 3] */ virtual void setCamera(stage_camera_class*); - /* vt[ 4] */ virtual stage_camera_class* getCamera(void) const; - /* vt[ 5] */ virtual void setArrow(stage_arrow_class*); - /* vt[ 6] */ virtual stage_arrow_class* getArrow(void) const; - /* vt[ 7] */ virtual void setPlayer(stage_actor_class*); - /* vt[ 8] */ virtual stage_actor_class* getPlayer(void) const; - /* vt[ 9] */ virtual void setPlayerNum(u16); - /* vt[10] */ virtual u16 getPlayerNum(void) const; - /* vt[11] */ virtual void setRoom(roomRead_class*); - /* vt[12] */ virtual roomRead_class* getRoom(void) const; - /* vt[13] */ virtual void setMapInfo(stage_map_info_class*); - /* vt[14] */ virtual stage_map_info_class* getMapInfo(void) const; + /* vt[ 3] */ virtual void setCamera(stage_camera_class* i_Camera) { mCamera = i_Camera; } + /* vt[ 4] */ virtual stage_camera_class* getCamera(void) const { return mCamera; } + /* vt[ 5] */ virtual void setArrow(stage_arrow_class* i_Arrow) { mArrow = i_Arrow; } + /* vt[ 6] */ virtual stage_arrow_class* getArrow(void) const { return mArrow; } + /* vt[ 7] */ virtual void setPlayer(stage_actor_class* i_Player) { mPlayer = i_Player; } + /* vt[ 8] */ virtual stage_actor_class* getPlayer(void) const { return mPlayer; } + /* vt[ 9] */ virtual void setPlayerNum(u16 i_PlayerNum) { mPlayerNum = i_PlayerNum; } + /* vt[10] */ virtual u16 getPlayerNum(void) const { return mPlayerNum; } + /* vt[11] */ virtual void setRoom(roomRead_class* i_Room) { mRoom = i_Room; } + /* vt[12] */ virtual roomRead_class* getRoom(void) const { return mRoom; } + /* vt[13] */ virtual void setMapInfo(stage_map_info_class* i_MapInfo) { mMapInfo = i_MapInfo; } + /* vt[14] */ virtual stage_map_info_class* getMapInfo(void) const { return mMapInfo; } /* vt[15] */ virtual stage_map_info_class* getMapInfo2(int) const; - /* vt[16] */ virtual void setMapInfoBase(stage_map_info_dummy_class*); - /* vt[17] */ virtual stage_map_info_dummy_class* getMapInfoBase(void) const; - /* vt[18] */ virtual void setPaletteInfo(stage_palette_info_class*); - /* vt[19] */ virtual stage_palette_info_class* getPaletteInfo(void) const; - /* vt[20] */ virtual void setPselectInfo(stage_pselect_info_class*); - /* vt[21] */ virtual stage_pselect_info_class* getPselectInfo(void) const; - /* vt[22] */ virtual void setEnvrInfo(stage_envr_info_class*); - /* vt[23] */ virtual stage_envr_info_class* getEnvrInfo(void) const; - /* vt[24] */ virtual void setVrboxInfo(stage_vrbox_info_class*); - /* vt[25] */ virtual stage_vrbox_info_class* getVrboxInfo(void) const; - /* vt[26] */ virtual void setVrboxcolInfo(stage_vrboxcol_info_class*); - /* vt[27] */ virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const; - /* vt[28] */ virtual void setPlightInfo(stage_plight_info_class*); - /* vt[29] */ virtual stage_plight_info_class* getPlightInfo(void) const; - /* vt[30] */ virtual void setPaletteNumInfo(int); - /* vt[31] */ virtual int getPaletteNumInfo(void) const; - /* vt[32] */ virtual void setPselectNumInfo(int); - /* vt[33] */ virtual int getPselectNumInfo(void) const; - /* vt[34] */ virtual void setEnvrNumInfo(int); - /* vt[35] */ virtual int getEnvrNumInfo(void) const; - /* vt[36] */ virtual void setVrboxNumInfo(int); - /* vt[37] */ virtual int getVrboxNumInfo(void) const; - /* vt[38] */ virtual void setVrboxcolNumInfo(int); - /* vt[39] */ virtual int getVrboxcolNumInfo(void) const; - /* vt[40] */ virtual void setPlightNumInfo(int); - /* vt[41] */ virtual int getPlightNumInfo(void) const; - /* vt[42] */ virtual void setLightVecInfo(stage_pure_lightvec_info_class*); - /* vt[43] */ virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const; - /* vt[44] */ virtual void setLightVecInfoNum(int); - /* vt[45] */ virtual int getLightVecInfoNum(void) const; - /* vt[46] */ virtual void setStagInfo(stage_stag_info_class*); - /* vt[47] */ virtual stage_stag_info_class* getStagInfo(void) const; - /* vt[48] */ virtual void setSclsInfo(stage_scls_info_dummy_class*); - /* vt[49] */ virtual stage_scls_info_dummy_class* getSclsInfo(void) const; - /* vt[50] */ virtual void setPntInfo(dStage_dPnt_c*); - /* vt[51] */ virtual dStage_dPnt_c* getPntInf(void) const; - /* vt[52] */ virtual void setPathInfo(dStage_dPath_c*); - /* vt[53] */ virtual dStage_dPath_c* getPathInf(void) const; - /* vt[54] */ virtual void setPnt2Info(dStage_dPnt_c*); - /* vt[55] */ virtual dStage_dPnt_c* getPnt2Inf(void) const; - /* vt[56] */ virtual void setPath2Info(dStage_dPath_c*); - /* vt[57] */ virtual dStage_dPath_c* getPath2Inf(void) const; - /* vt[58] */ virtual void setSoundInf(dStage_SoundInfo_c*); - /* vt[59] */ virtual dStage_SoundInfo_c* getSoundInf(void) const; - /* vt[60] */ virtual void setSoundInfCL(dStage_SoundInfo_c*); - /* vt[61] */ virtual dStage_SoundInfo_c* getSoundInfCL(void) const; - /* vt[62] */ virtual void setMapEventInfo(dStage_MapEventInfo_c*); - /* vt[63] */ virtual dStage_MapEventInfo_c* getMapEventInfo(void) const; - /* vt[64] */ virtual void setFileList2Info(dStage_FileList2_dt_c*); - /* vt[65] */ virtual dStage_FileList2_dt_c* getFileList2Info(void) const; - /* vt[66] */ virtual void setFileListInfo(dStage_FileList_dt_c*); - /* vt[67] */ virtual dStage_FileList_dt_c* getFileListInfo(void) const; - /* vt[68] */ virtual void setFloorInfo(dStage_FloorInfo_c*); - /* vt[69] */ virtual dStage_FloorInfo_c* getFloorInfo(void) const; - /* vt[70] */ virtual void setMemoryConfig(dStage_MemoryConfig_c*); - /* vt[71] */ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const; - /* vt[72] */ virtual void setMemoryMap(dStage_MemoryMap_c*); - /* vt[73] */ virtual dStage_MemoryMap_c* getMemoryMap(void) const; - /* vt[74] */ virtual void setMulti(dStage_Multi_c*); - /* vt[75] */ virtual dStage_Multi_c* getMulti(void) const; + /* vt[16] */ virtual void setMapInfoBase(stage_map_info_dummy_class* i_MapInfoBase) { mMapInfoBase = i_MapInfoBase; } + /* vt[17] */ virtual stage_map_info_dummy_class* getMapInfoBase(void) const { return mMapInfoBase; } + /* vt[18] */ virtual void setPaletteInfo(stage_palette_info_class* i_PaletteInfo) { mPaletteInfo = i_PaletteInfo; } + /* vt[19] */ virtual stage_palette_info_class* getPaletteInfo(void) const { return mPaletteInfo; } + /* vt[20] */ virtual void setPselectInfo(stage_pselect_info_class* i_PselectInfo) { mPselectInfo = i_PselectInfo; } + /* vt[21] */ virtual stage_pselect_info_class* getPselectInfo(void) const { return mPselectInfo; } + /* vt[22] */ virtual void setEnvrInfo(stage_envr_info_class* i_EnvrInfo) { mEnvrInfo = i_EnvrInfo; } + /* vt[23] */ virtual stage_envr_info_class* getEnvrInfo(void) const { return mEnvrInfo; } + /* vt[24] */ virtual void setVrboxInfo(stage_vrbox_info_class* i_VrboxInfo) { mVrboxInfo = i_VrboxInfo; } + /* vt[25] */ virtual stage_vrbox_info_class* getVrboxInfo(void) const { return mVrboxInfo; } + /* vt[26] */ virtual void setVrboxcolInfo(stage_vrboxcol_info_class* i_VrboxcolInfo) { mVrboxcolInfo = i_VrboxcolInfo; } + /* vt[27] */ virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const { return mVrboxcolInfo; } + /* vt[28] */ virtual void setPlightInfo(stage_plight_info_class* i_PlightInfo) { mPlightInfo = i_PlightInfo; } + /* vt[29] */ virtual stage_plight_info_class* getPlightInfo(void) const { return mPlightInfo; } + /* vt[30] */ virtual void setPaletteNumInfo(int i_PaletteNumInfo) { mPaletteNumInfo = i_PaletteNumInfo; } + /* vt[31] */ virtual int getPaletteNumInfo(void) const { return mPaletteNumInfo; } + /* vt[32] */ virtual void setPselectNumInfo(int i_PselectNumInfo) { mPselectNumInfo = i_PselectNumInfo; } + /* vt[33] */ virtual int getPselectNumInfo(void) const { return mPselectNumInfo; } + /* vt[34] */ virtual void setEnvrNumInfo(int i_EnvrNumInfo) { mEnvrNumInfo = i_EnvrNumInfo; } + /* vt[35] */ virtual int getEnvrNumInfo(void) const { return mEnvrNumInfo; } + /* vt[36] */ virtual void setVrboxNumInfo(int i_VrboxNumInfo) { mVrboxNumInfo = i_VrboxNumInfo; } + /* vt[37] */ virtual int getVrboxNumInfo(void) const { return mVrboxNumInfo; } + /* vt[38] */ virtual void setVrboxcolNumInfo(int i_VrboxcolNumInfo) { mVrboxcolNumInfo = i_VrboxcolNumInfo; } + /* vt[39] */ virtual int getVrboxcolNumInfo(void) const { return mVrboxcolNumInfo; } + /* vt[42] */ virtual void setLightVecInfo(stage_pure_lightvec_info_class* i_LightVecInfo) { + (void)i_LightVecInfo; + dStage_SetErrorStage(); + OSReport("stage non LightVec data !!\n"); + JUT_ASSERT(3003, 0); + } + /* vt[43] */ virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const { + OSReport("stage non LightVec data !!\n"); + JUT_ASSERT(3007, 0); + return NULL; + } + /* vt[44] */ virtual void setLightVecInfoNum(int i_LightVecInfoNum) { + (void)i_LightVecInfoNum; + dStage_SetErrorStage(); + OSReport("stage non LightVecNum data !!\n"); + JUT_ASSERT(3014, 0); + } + /* vt[45] */ virtual int getLightVecInfoNum(void) const { + OSReport("stage non LightVecNum data !!\n"); + JUT_ASSERT(3018, 0); + return NULL; + } + /* vt[40] */ virtual void setPlightNumInfo(int i_PlightNumInfo) { mPlightNumInfo = i_PlightNumInfo; } + /* vt[41] */ virtual int getPlightNumInfo(void) const { return mPlightNumInfo; } + /* vt[46] */ virtual void setStagInfo(stage_stag_info_class* i_StagInfo) { mStagInfo = i_StagInfo; } + /* vt[47] */ virtual stage_stag_info_class* getStagInfo(void) const { return mStagInfo; } + /* vt[48] */ virtual void setSclsInfo(stage_scls_info_dummy_class* i_SclsInfo) { mSclsInfo = i_SclsInfo; } + /* vt[49] */ virtual stage_scls_info_dummy_class* getSclsInfo(void) const { return mSclsInfo; } + /* vt[50] */ virtual void setPntInfo(dStage_dPnt_c* i_PntInfo) { mPntInfo = i_PntInfo; } + /* vt[51] */ virtual dStage_dPnt_c* getPntInf(void) const { return mPntInfo; } + /* vt[52] */ virtual void setPathInfo(dStage_dPath_c* i_PathInfo) { mPathInfo = i_PathInfo; } + /* vt[53] */ virtual dStage_dPath_c* getPathInf(void) const { return mPathInfo; } + /* vt[54] */ virtual void setPnt2Info(dStage_dPnt_c* i_Pnt2Info) { mPnt2Info = i_Pnt2Info; } + /* vt[55] */ virtual dStage_dPnt_c* getPnt2Inf(void) const { return mPnt2Info; } + /* vt[56] */ virtual void setPath2Info(dStage_dPath_c* i_Path2Info) { mPath2Info = i_Path2Info; } + /* vt[57] */ virtual dStage_dPath_c* getPath2Inf(void) const { return mPath2Info; } + /* vt[58] */ virtual void setSoundInf(dStage_SoundInfo_c* i_SoundInf) { mSoundInf = i_SoundInf; } + /* vt[59] */ virtual dStage_SoundInfo_c* getSoundInf(void) const { return mSoundInf; } + /* vt[60] */ virtual void setSoundInfCL(dStage_SoundInfo_c* i_SoundInfCL) { mSoundInfCL = i_SoundInfCL; } + /* vt[61] */ virtual dStage_SoundInfo_c* getSoundInfCL(void) const { return mSoundInfCL; } + /* vt[62] */ virtual void setMapEventInfo(dStage_MapEventInfo_c* i_MapEventInfo) { mMapEventInfo = i_MapEventInfo; } + /* vt[63] */ virtual dStage_MapEventInfo_c* getMapEventInfo(void) const { return mMapEventInfo; } + /* vt[64] */ virtual void setFileList2Info(dStage_FileList2_dt_c* list) { + (void)list; + dStage_SetErrorStage(); + OSReport("stage non filelist2 data!\n"); + JUT_ASSERT(3123, 0); + } + /* vt[65] */ virtual dStage_FileList2_dt_c* getFileList2Info(void) const { + OSReport("stage non filelist2 data!\n"); + JUT_ASSERT(3127, 0); + return NULL; + } + /* vt[66] */ virtual void setFileListInfo(dStage_FileList_dt_c* list) { + (void)list; + dStage_SetErrorStage(); + OSReport("stage non filelist data!\n"); + JUT_ASSERT(3138, 0); + } + /* vt[67] */ virtual dStage_FileList_dt_c* getFileListInfo(void) const { + OSReport("stage non filelist data!\n"); + JUT_ASSERT(3142, 0); + return NULL; + } + /* vt[68] */ virtual void setFloorInfo(dStage_FloorInfo_c* i_FloorInfo) { mFloorInfo = i_FloorInfo; } + /* vt[69] */ virtual dStage_FloorInfo_c* getFloorInfo(void) const { return mFloorInfo; } + /* vt[70] */ virtual void setMemoryConfig(dStage_MemoryConfig_c* i_MemoryConfig) { mMemoryConfig = i_MemoryConfig; } + /* vt[71] */ virtual dStage_MemoryConfig_c* getMemoryConfig(void) const { return mMemoryConfig; } + /* vt[72] */ virtual void setMemoryMap(dStage_MemoryMap_c* i_MemoryMap) { mMemoryMap = i_MemoryMap; } + /* vt[73] */ virtual dStage_MemoryMap_c* getMemoryMap(void) const { return mMemoryMap; } + /* vt[74] */ virtual void setMulti(dStage_Multi_c* i_Multi) { mMulti = i_Multi; } + /* vt[75] */ virtual dStage_Multi_c* getMulti(void) const { return mMulti; } /* vt[76] */ virtual void setOldMulti(void); /* vt[77] */ virtual void resetOldMulti(void); - /* vt[78] */ virtual dStage_Multi_c* getOldMulti(void) const; - /* vt[79] */ virtual void setLbnk(dStage_Lbnk_c*); - /* vt[80] */ virtual dStage_Lbnk_c* getLbnk(void) const; - /* vt[81] */ virtual void setTresure(stage_tresure_class*); - /* vt[82] */ virtual stage_tresure_class* getTresure(void) const; - /* vt[83] */ virtual void setDMap(dStage_DMap_c*); - /* vt[84] */ virtual dStage_DMap_c* getDMap(void) const; - /* vt[85] */ virtual void setDrTg(stage_tgsc_class*); - /* vt[86] */ virtual stage_tgsc_class* getDrTg(void) const; - /* vt[87] */ virtual void setDoor(stage_tgsc_class*); - /* vt[88] */ virtual stage_tgsc_class* getDoor(void) const; - /* vt[89] */ virtual void setMapPath(void*); - /* vt[90] */ virtual int getMapPath(void); - /* vt[91] */ virtual void setElst(dStage_Elst_c*); - /* vt[92] */ virtual dStage_Elst_c* getElst(void); - - void setTreasure(stage_tresure_class*); + /* vt[78] */ virtual dStage_Multi_c* getOldMulti(void) const { return mOldMulti; } + /* vt[79] */ virtual void setLbnk(dStage_Lbnk_c* lbnk) { + (void)lbnk; + dStage_SetErrorStage(); + OSReport("stage non Lbnk data!\n"); + JUT_ASSERT(3231, 0); + } + /* vt[80] */ virtual dStage_Lbnk_c* getLbnk(void) const { + OSReport("stage non Lbnk data!\n"); + JUT_ASSERT(3238, 0); + return NULL; + } + /* vt[81] */ virtual void setTresure(stage_tresure_class* i_Tresure) { mTresure = i_Tresure; } + /* vt[82] */ virtual stage_tresure_class* getTresure(void) const { return mTresure; } + /* vt[83] */ virtual void setDMap(dStage_DMap_c* i_DMap) { mDMap = i_DMap; } + /* vt[84] */ virtual dStage_DMap_c* getDMap(void) const { return mDMap; } + /* vt[85] */ virtual void setDrTg(stage_tgsc_class* i_DrTg) { mDrTg = i_DrTg; } + /* vt[86] */ virtual stage_tgsc_class* getDrTg(void) const { return mDrTg; } + /* vt[87] */ virtual void setDoor(stage_tgsc_class* i_Door) { mDoor = i_Door; } + /* vt[88] */ virtual stage_tgsc_class* getDoor(void) const { return mDoor; } + /* vt[89] */ virtual void setMapPath(void* i_MapPath) { return; } + /* vt[90] */ virtual void* getMapPath(void) { return NULL; } + /* vt[91] */ virtual void setElst(dStage_Elst_c* i_Elst) { mElst = i_Elst; } + /* vt[92] */ virtual dStage_Elst_c* getElst(void) { return mElst; } s16 getWorldRollAngleX() { return (s16)mWorldRollAngleX; } s16 getWorldRollDirAngleY() { return mWorldRollDirAngleY; } @@ -592,7 +684,7 @@ public: /* 0x60 */ stage_scls_info_dummy_class* mSclsInfo; /* 0x64 */ dStage_dPnt_c* mPntInfo; /* 0x68 */ dStage_dPath_c* mPathInfo; - /* 0x6C */ dStage_dPnt_c* mPnt2Inf; + /* 0x6C */ dStage_dPnt_c* mPnt2Info; /* 0x70 */ dStage_dPath_c* mPath2Info; /* 0x74 */ dStage_SoundInfo_c* mSoundInf; /* 0x78 */ dStage_SoundInfo_c* mSoundInfCL; @@ -601,7 +693,7 @@ public: /* 0x84 */ dStage_MemoryMap_c* mMemoryMap; /* 0x88 */ dStage_Multi_c* mMulti; /* 0x8C */ dStage_Multi_c* mOldMulti; - /* 0x90 */ stage_tresure_class* mTreasure; + /* 0x90 */ stage_tresure_class* mTresure; /* 0x94 */ dStage_DMap_c* mDMap; /* 0x98 */ stage_tgsc_class* mDrTg; /* 0x9C */ stage_tgsc_class* mDoor; @@ -612,100 +704,265 @@ class dStage_roomDt_c : public dStage_dt_c { public: dStage_roomDt_c() {} void initFileList2(void); - void setPnt2Inf(dStage_dPnt_c*); - void setTreasure(stage_tresure_class*); virtual void init(void); - virtual void setCamera(stage_camera_class*); - virtual stage_camera_class* getCamera(void) const; - virtual void setArrow(stage_arrow_class*); - virtual stage_arrow_class* getArrow(void) const; - virtual void setPlayer(stage_actor_class*); - virtual stage_actor_class* getPlayer(void) const; - virtual void setPlayerNum(u16); - virtual u16 getPlayerNum(void) const; - virtual void setRoom(roomRead_class*); - virtual roomRead_class* getRoom(void) const; - virtual void setMapInfo(stage_map_info_class*); - virtual stage_map_info_class* getMapInfo(void) const; + virtual void setCamera(stage_camera_class* i_Camera) { mCamera = i_Camera; } + virtual stage_camera_class* getCamera(void) const { return mCamera; } + virtual void setArrow(stage_arrow_class* i_Arrow) { mArrow = i_Arrow; } + virtual stage_arrow_class* getArrow(void) const { return mArrow; } + virtual void setPlayer(stage_actor_class* i_Player) { mPlayer = i_Player; } + virtual stage_actor_class* getPlayer(void) const { return mPlayer; } + virtual void setPlayerNum(u16 i_PlayerNum) { mPlayerNum = i_PlayerNum; } + virtual u16 getPlayerNum(void) const { return mPlayerNum; } + virtual void setRoom(roomRead_class* i_Room) { + (void)i_Room; + dStage_SetErrorRoom(); + OSReport("Room non room data !!\n"); + JUT_ASSERT(2095, 0); + } + virtual roomRead_class* getRoom(void) const { + OSReport("Room non room data !!\n"); + JUT_ASSERT(2100, 0); + return NULL; + } + virtual void setMapInfo(stage_map_info_class* i_MapInfo) { mMapInfo = i_MapInfo; } + virtual stage_map_info_class* getMapInfo(void) const { return mMapInfo; } virtual stage_map_info_class* getMapInfo2(int) const; - virtual void setMapInfoBase(stage_map_info_dummy_class*); - virtual stage_map_info_dummy_class* getMapInfoBase(void) const; - virtual void setPaletteInfo(stage_palette_info_class*); - virtual stage_palette_info_class* getPaletteInfo(void) const; - virtual void setPselectInfo(stage_pselect_info_class*); - virtual stage_pselect_info_class* getPselectInfo(void) const; - virtual void setEnvrInfo(stage_envr_info_class*); - virtual stage_envr_info_class* getEnvrInfo(void) const; - virtual void setVrboxInfo(stage_vrbox_info_class*); - virtual stage_vrbox_info_class* getVrboxInfo(void) const; - virtual void setVrboxcolInfo(stage_vrboxcol_info_class*); - virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const; - virtual void setPlightInfo(stage_plight_info_class*); - virtual stage_plight_info_class* getPlightInfo(void) const; - virtual void setPaletteNumInfo(int); - virtual int getPaletteNumInfo(void) const; - virtual void setPselectNumInfo(int); - virtual int getPselectNumInfo(void) const; - virtual void setEnvrNumInfo(int); - virtual int getEnvrNumInfo(void) const; - virtual void setVrboxNumInfo(int); - virtual int getVrboxNumInfo(void) const; - virtual void setVrboxcolNumInfo(int); - virtual int getVrboxcolNumInfo(void) const; - virtual void setPlightNumInfo(int); - virtual int getPlightNumInfo(void) const; - virtual void setLightVecInfo(stage_pure_lightvec_info_class*); - virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const; - virtual void setLightVecInfoNum(int); - virtual int getLightVecInfoNum(void) const; - virtual void setStagInfo(stage_stag_info_class*); - virtual stage_stag_info_class* getStagInfo(void) const; - virtual void setSclsInfo(stage_scls_info_dummy_class*); - virtual stage_scls_info_dummy_class* getSclsInfo(void) const; - virtual void setPntInfo(dStage_dPnt_c*); - virtual dStage_dPnt_c* getPntInf(void) const; - virtual void setPathInfo(dStage_dPath_c*); - virtual dStage_dPath_c* getPathInf(void) const; - virtual void setPnt2Info(dStage_dPnt_c*); - virtual dStage_dPnt_c* getPnt2Inf(void) const; - virtual void setPath2Info(dStage_dPath_c*); - virtual dStage_dPath_c* getPath2Inf(void) const; - virtual void setSoundInf(dStage_SoundInfo_c*); - virtual dStage_SoundInfo_c* getSoundInf(void) const; - virtual void setSoundInfCL(dStage_SoundInfo_c*); - virtual dStage_SoundInfo_c* getSoundInfCL(void) const; - virtual void setMapEventInfo(dStage_MapEventInfo_c*); - virtual dStage_MapEventInfo_c* getMapEventInfo(void) const; - virtual void setFileList2Info(dStage_FileList2_dt_c*); - virtual dStage_FileList2_dt_c* getFileList2Info(void) const; - virtual void setFileListInfo(dStage_FileList_dt_c*); - virtual dStage_FileList_dt_c* getFileListInfo(void) const; - virtual void setFloorInfo(dStage_FloorInfo_c*); - virtual dStage_FloorInfo_c* getFloorInfo(void) const; - virtual void setMemoryConfig(dStage_MemoryConfig_c*); - virtual dStage_MemoryConfig_c* getMemoryConfig(void) const; - virtual void setMemoryMap(dStage_MemoryMap_c*); - virtual dStage_MemoryMap_c* getMemoryMap(void) const; - virtual void setMulti(dStage_Multi_c*); - virtual dStage_Multi_c* getMulti(void) const; - virtual void setOldMulti(void); - virtual void resetOldMulti(void); - virtual dStage_Multi_c* getOldMulti(void) const; - virtual void setLbnk(dStage_Lbnk_c*); - virtual dStage_Lbnk_c* getLbnk(void) const; - virtual void setTresure(stage_tresure_class*); - virtual stage_tresure_class* getTresure(void) const; - virtual void setDMap(dStage_DMap_c*); - virtual dStage_DMap_c* getDMap(void) const; - virtual void setDrTg(stage_tgsc_class*); - virtual stage_tgsc_class* getDrTg(void) const; - virtual void setDoor(stage_tgsc_class*); - virtual stage_tgsc_class* getDoor(void) const; - virtual void setMapPath(void*); - virtual int getMapPath(void); - virtual void setElst(dStage_Elst_c*); - virtual dStage_Elst_c* getElst(void); + virtual void setMapInfoBase(stage_map_info_dummy_class* i_MapInfoBase) { mMapInfoBase = i_MapInfoBase; } + virtual stage_map_info_dummy_class* getMapInfoBase(void) const { return mMapInfoBase; } + virtual void setPaletteInfo(stage_palette_info_class* i_PaletteInfo) { + (void)i_PaletteInfo; + dStage_SetErrorRoom(); + OSReport("Room non palet data !!\n"); + JUT_ASSERT(2126, 0); + } + virtual stage_palette_info_class* getPaletteInfo(void) const { + OSReport("Room non palet data !!\n"); + JUT_ASSERT(2130, 0); + return NULL; + } + virtual void setPselectInfo(stage_pselect_info_class* i_PselectInfo) { + (void)i_PselectInfo; + dStage_SetErrorRoom(); + OSReport("Room non pselect data !!\n"); + JUT_ASSERT(2137, 0); + } + virtual stage_pselect_info_class* getPselectInfo(void) const { + OSReport("Room non pselect data !!\n"); + JUT_ASSERT(2141, 0); + return NULL; + } + virtual void setEnvrInfo(stage_envr_info_class* i_EnvrInfo) { + (void)i_EnvrInfo; + dStage_SetErrorRoom(); + OSReport("Room non envr data !!\n"); + JUT_ASSERT(2148, 0); + } + virtual stage_envr_info_class* getEnvrInfo(void) const { + OSReport("Room non envr data !!\n"); + JUT_ASSERT(2152, 0); + return NULL; + } + virtual void setVrboxInfo(stage_vrbox_info_class* i_VrboxInfo) { mVrboxInfo = i_VrboxInfo; } + virtual stage_vrbox_info_class* getVrboxInfo(void) const { return mVrboxInfo; } + virtual void setVrboxcolInfo(stage_vrboxcol_info_class* i_VrboxcolInfo) { mVrboxcolInfo = i_VrboxcolInfo; } + virtual stage_vrboxcol_info_class* getVrboxcolInfo(void) const { return mVrboxcolInfo; } + virtual void setPlightInfo(stage_plight_info_class* i_PlightInfo) { + (void)i_PlightInfo; + dStage_SetErrorRoom(); + OSReport("Room non plight data !!\n"); + JUT_ASSERT(2174, 0); + } + virtual stage_plight_info_class* getPlightInfo(void) const { + OSReport("Room non plight data !!\n"); + JUT_ASSERT(2178, 0); + return NULL; + } + virtual void setPaletteNumInfo(int i_PaletteNumInfo) { + (void)i_PaletteNumInfo; + dStage_SetErrorRoom(); + OSReport("Room non palette num data !!\n"); + JUT_ASSERT(2186, 0); + } + virtual int getPaletteNumInfo(void) const { + OSReport("Room non palette num data !!\n"); + JUT_ASSERT(2190, 0); + return NULL; + } + virtual void setPselectNumInfo(int i_PselectNumInfo) { + (void)i_PselectNumInfo; + dStage_SetErrorRoom(); + OSReport("Room non pselect num data !!\n"); + JUT_ASSERT(2197, 0); + } + virtual int getPselectNumInfo(void) const { + OSReport("Room non pselect num data !!\n"); + JUT_ASSERT(2201, 0); + return NULL; + } + virtual void setEnvrNumInfo(int i_EnvrNumInfo) { + (void)i_EnvrNumInfo; + dStage_SetErrorRoom(); + OSReport("Room non envr num data !!\n"); + JUT_ASSERT(2208, 0); + } + virtual int getEnvrNumInfo(void) const { + OSReport("Room non envr num data !!\n"); + JUT_ASSERT(2212, 0); + return NULL; + } + virtual void setVrboxNumInfo(int i_VrboxNumInfo) { mVrboxNumInfo = i_VrboxNumInfo; } + virtual int getVrboxNumInfo(void) const { return mVrboxNumInfo; } + virtual void setVrboxcolNumInfo(int i_VrboxcolNumInfo) { mVrboxcolNumInfo = i_VrboxcolNumInfo; } + virtual int getVrboxcolNumInfo(void) const { return mVrboxcolNumInfo; } + virtual void setPlightNumInfo(int i_PlightNumInfo) { + (void)i_PlightNumInfo; + dStage_SetErrorRoom(); + OSReport("Room non plight num data !!\n"); + JUT_ASSERT(2223, 0); + } + virtual int getPlightNumInfo(void) const { + OSReport("Room non plight num data !!\n"); + JUT_ASSERT(2227, 0); + return NULL; + } + virtual void setLightVecInfo(stage_pure_lightvec_info_class* i_LightVecInfo) { mLightVecInfo = i_LightVecInfo; } + virtual stage_pure_lightvec_info_class* getLightVecInfo(void) const { return mLightVecInfo; } + virtual void setLightVecInfoNum(int i_LightVecInfoNum) { mLightVecInfoNum = i_LightVecInfoNum; } + virtual int getLightVecInfoNum(void) const { return mLightVecInfoNum; } + virtual void setStagInfo(stage_stag_info_class* i_StagInfo) { + (void)i_StagInfo; + dStage_SetErrorRoom(); + OSReport("Room non stag data !!\n"); + JUT_ASSERT(2256, 0); + } + virtual stage_stag_info_class* getStagInfo(void) const { + OSReport("Room non stag data !!\n"); + JUT_ASSERT(2260, 0); + return NULL; + } + virtual void setSclsInfo(stage_scls_info_dummy_class* i_SclsInfo) { mSclsInfo = i_SclsInfo; } + virtual stage_scls_info_dummy_class* getSclsInfo(void) const { return mSclsInfo; } + virtual void setPntInfo(dStage_dPnt_c* i_PntInfo) { + (void)i_PntInfo; + dStage_SetErrorRoom(); + OSReport("Room non Pnt data !\n"); + JUT_ASSERT(2281, 0); + } + virtual dStage_dPnt_c* getPntInf(void) const { + OSReport("Room non Pnts data !\n"); + JUT_ASSERT(2285, 0); + return NULL; + } + virtual void setPathInfo(dStage_dPath_c* i_PathInfo) { + (void)i_PathInfo; + dStage_SetErrorRoom(); + OSReport("Room non Path data !\n"); + JUT_ASSERT(2292, 0); + } + virtual dStage_dPath_c* getPathInf(void) const { + OSReport("Room non Path data !\n"); + JUT_ASSERT(2296, 0); + return NULL; + } + virtual void setPnt2Info(dStage_dPnt_c* i_Pnt2Info) { mPnt2Info = i_Pnt2Info; } + virtual dStage_dPnt_c* getPnt2Inf(void) const { return mPnt2Info; } + virtual void setPath2Info(dStage_dPath_c* i_Path2Info) { mPath2Info = i_Path2Info; } + virtual dStage_dPath_c* getPath2Inf(void) const { return mPath2Info; } + virtual void setSoundInf(dStage_SoundInfo_c* i_SoundInf) { mSoundInf = i_SoundInf; } + virtual dStage_SoundInfo_c* getSoundInf(void) const { return mSoundInf; } + virtual void setSoundInfCL(dStage_SoundInfo_c* i_SoundInfCL) { mSoundInfCL = i_SoundInfCL; } + virtual dStage_SoundInfo_c* getSoundInfCL(void) const { return mSoundInfCL; } + virtual void setMapEventInfo(dStage_MapEventInfo_c* i_MapEventInfo) { mMapEventInfo = i_MapEventInfo; } + virtual dStage_MapEventInfo_c* getMapEventInfo(void) const { return mMapEventInfo; } + virtual void setFileList2Info(dStage_FileList2_dt_c* i_FileList2Info) { mFileList2Info = i_FileList2Info; } + virtual dStage_FileList2_dt_c* getFileList2Info(void) const { return mFileList2Info; } + virtual void setFileListInfo(dStage_FileList_dt_c* i_FileListInfo) { mFileListInfo = i_FileListInfo; } + virtual dStage_FileList_dt_c* getFileListInfo(void) const { return mFileListInfo; } + virtual void setFloorInfo(dStage_FloorInfo_c* i_FloorInfo) { mFloorInfo = i_FloorInfo; } + virtual dStage_FloorInfo_c* getFloorInfo(void) const { return mFloorInfo; } + virtual void setMemoryConfig(dStage_MemoryConfig_c* i_MemoryConfig) { + (void)i_MemoryConfig; + OSReport("Room non memory config data!\n"); + JUT_ASSERT(2414, 0); + } + virtual dStage_MemoryConfig_c* getMemoryConfig(void) const { + OSReport("Room non memory config data!\n"); + JUT_ASSERT(2423, 0); + return NULL; + } + virtual void setMemoryMap(dStage_MemoryMap_c* i_MemoryMap) { + (void)i_MemoryMap; + OSReport("Room non memory map data!\n"); + JUT_ASSERT(2433, 0); + } + virtual dStage_MemoryMap_c* getMemoryMap(void) const { + OSReport("Room non memory map data!\n"); + JUT_ASSERT(2442, 0); + return NULL; + } + virtual void setMulti(dStage_Multi_c* i_Multi) { + (void)i_Multi; + OSReport("Room non multi data!\n"); + JUT_ASSERT(2452, 0); + } + virtual dStage_Multi_c* getMulti(void) const { + OSReport("Room non multi data!\n"); + JUT_ASSERT(2457, 0); + return NULL; + } + virtual void setOldMulti(void) { + OSReport("Room non old multi data!\n"); + JUT_ASSERT(2462, 0); + } + virtual void resetOldMulti(void) { + OSReport("Room non old multi data!\n"); + JUT_ASSERT(2467, 0); + } + virtual dStage_Multi_c* getOldMulti(void) const { + OSReport("Room non old multi data!\n"); + JUT_ASSERT(2472, 0); + return NULL; + } + virtual void setLbnk(dStage_Lbnk_c* i_Lbnk) { mLbnk = i_Lbnk; } + virtual dStage_Lbnk_c* getLbnk(void) const { return mLbnk; } + virtual void setTresure(stage_tresure_class* i_Tresure) { mTresure = i_Tresure; } + virtual stage_tresure_class* getTresure(void) const { return mTresure; } + virtual void setDMap(dStage_DMap_c* i_DMap) { + (void)i_DMap; + OS_REPORT("Room non DMap data\n"); + JUT_ASSERT(2508, 0); + } + virtual dStage_DMap_c* getDMap(void) const { + OS_REPORT("Room non DMap data\n"); + JUT_ASSERT(2513, 0); + return NULL; + } + virtual void setDrTg(stage_tgsc_class* i_DrTg) { mDrTg = i_DrTg; } + virtual stage_tgsc_class* getDrTg(void) const { return mDrTg; } + virtual void setDoor(stage_tgsc_class* i_Door) { mDoor = i_Door; } + virtual stage_tgsc_class* getDoor(void) const { return mDoor; } + virtual void setMapPath(void* i_MapPath) { + (void)i_MapPath; + OSReport("stage non 2d map path data !!\n"); + JUT_ASSERT(2557, 0); + } + virtual void* getMapPath(void) { + OSReport("stage non 2d map path data !!\n"); + JUT_ASSERT(2561, 0); + return NULL; + } + virtual void setElst(dStage_Elst_c* i_Elst) { + (void)i_Elst; + dStage_SetErrorRoom(); + OSReport("Room non envLayserSet data\n"); + JUT_ASSERT(2572, 0); + } + virtual dStage_Elst_c* getElst(void) { + dStage_SetErrorRoom(); + OSReport("Room no Elst Data!!\n"); + return NULL; + } public: /* 0x08 */ stage_pure_lightvec_info_class* mLightVecInfo; @@ -726,10 +983,13 @@ public: /* 0x44 */ dStage_SoundInfo_c* mSoundInfCL; /* 0x48 */ stage_scls_info_dummy_class* mSclsInfo; /* 0x4C */ dStage_Lbnk_c* mLbnk; - /* 0x50 */ stage_tresure_class* mTreasure; + /* 0x50 */ stage_tresure_class* mTresure; /* 0x54 */ stage_tgsc_class* mDrTg; /* 0x58 */ stage_tgsc_class* mDoor; /* 0x5C */ dStage_FloorInfo_c* mFloorInfo; +#ifdef DEBUG + /* 0x60 */ int field_0x60; +#endif /* 0x60 */ u16 mPlayerNum; /* 0x62 */ u16 field_0x62; /* 0x64 */ int mVrboxNumInfo; @@ -737,6 +997,7 @@ public: }; // Size: 0x6C class dBgW_base; + class dStage_roomStatus_c { public: /* 0x000 */ dStage_roomDt_c mRoomDt; @@ -757,13 +1018,6 @@ public: STATIC_ASSERT(sizeof(dStage_roomStatus_c) == 0x404); -extern s8 mStayNo__20dStage_roomControl_c; // gStayNo -extern s8 mOldStayNo__20dStage_roomControl_c; -extern s8 mNextStayNo__20dStage_roomControl_c; -extern s8 m_time_pass__20dStage_roomControl_c; -extern u8 mNoChangeRoom__20dStage_roomControl_c; -extern s8 data_804505F0; // roomReadId - class dStage_roomControl_c { public: class roomDzs_c { @@ -813,15 +1067,18 @@ public: /* 8002490C */ static void setArcBank(int, char const*); /* 80024940 */ static char* getArcBank(int); /* 80024954 */ static bool resetArchiveBank(int); - /* 80024DB0 */ static void SetTimePass(int); + /* 80024DB0 */ static void SetTimePass(int i_TimePass) { m_time_pass = i_TimePass; } /* 8025BAAC */ static void setZoneNo(int, int); - static s8 GetTimePass() { return m_time_pass; } + static u8 GetTimePass() { return m_time_pass; } static s8 getStayNo() { return mStayNo; } static u8 getRegionNo(int i_roomNo) { return mStatus[i_roomNo].mRegionNo; } static s8 getMemoryBlockID(int i_roomNo) { return mStatus[i_roomNo].mMemBlockID; } dKy_tevstr_c* getTevStr(int i_roomNo) { return &mStatus[i_roomNo].mKyTevStr; } - void setStatusFlag(int i_roomNo, u8 flag) { mStatus[i_roomNo].mFlag = flag; } + void setStatusFlag(int i_roomNo, u8 flag) { + JUT_ASSERT(2679, 0 <= i_roomNo && i_roomNo < 64); + mStatus[i_roomNo].mFlag = flag; + } static void onStatusDraw(int i_roomNo) { mStatus[i_roomNo].mDraw = true; } static dStage_FileList2_dt_c* getFileList2(int i_roomNo) { return mStatus[i_roomNo].mRoomDt.mFileList2Info; @@ -829,8 +1086,8 @@ public: static char* getDemoArcName() { return mDemoArcName; } static nameData* getArcBankName() { return mArcBankName; } static bankData* getArcBankData() { return mArcBankData; } - static void setRoomReadId(s8 id) { data_804505F0 = id; } - static s8 getRoomReadId() { return data_804505F0; } + static void setRoomReadId(s8 id) { mRoomReadId = id; } + static s8 getRoomReadId() { return mRoomReadId; } static void offNoChangeRoom() { mNoChangeRoom = false; } static void onNoChangeRoom() { mNoChangeRoom = true; } static void setProcID(u32 id) { mProcID = id; } @@ -838,14 +1095,19 @@ public: static void setStatusProcID(int i_roomNo, fpc_ProcID i_id) { mStatus[i_roomNo].mProcID = i_id; } static int getStatusProcID(int i_roomNo) { return mStatus[i_roomNo].mProcID; } static void setRegionNo(int i_roomNo, u8 i_regionNo) { mStatus[i_roomNo].mRegionNo = i_regionNo; } - static void setZoneCount(int i_roomNo, int count) { mStatus[i_roomNo].mZoneCount = count; } + static void setZoneCount(int i_roomNo, int count) { + JUT_ASSERT(2737, 0 <= i_roomNo && i_roomNo < 64); + mStatus[i_roomNo].mZoneCount = count; + } static void setMemoryBlockID(int i_roomNo, int i_blockID) { + JUT_ASSERT(2753, 0 <= i_roomNo && i_roomNo < 64); mStatus[i_roomNo].mMemBlockID = i_blockID; } static void setFileList2(int i_roomNo, dStage_FileList2_dt_c* list) { - mStatus[i_roomNo].mRoomDt.mFileList2Info = list; + JUT_ASSERT(2711, 0 <= i_roomNo && i_roomNo < 64); + mStatus[i_roomNo].mRoomDt.setFileList2Info(list); } static void setBgW(int param_0, dBgW_base* i_bgw) { @@ -857,14 +1119,18 @@ public: } void offStatusFlag(int i_roomNo, u8 flag) { + JUT_ASSERT(2695, 0 <= i_roomNo && i_roomNo < 64); return cLib_offBit(mStatus[i_roomNo].mFlag, flag); } void onStatusFlag(int i_roomNo, u8 flag) { + JUT_ASSERT(2691, 0 <= i_roomNo && i_roomNo < 64); return cLib_onBit(mStatus[i_roomNo].mFlag, flag); } - static JKRExpHeap* mMemoryBlock[19]; + static const int MEMORY_BLOCK_MAX = 19; + + static JKRExpHeap* mMemoryBlock[MEMORY_BLOCK_MAX]; static char mArcBank[32][10]; static dStage_roomStatus_c mStatus[0x40]; static char mDemoArcName[10]; @@ -875,8 +1141,9 @@ public: static s8 mStayNo; static s8 mOldStayNo; static s8 mNextStayNo; - static s8 m_time_pass; + static u8 m_time_pass; static u8 mNoChangeRoom; + static s8 mRoomReadId; private: /* 0x0 */ u8 field_0x0[4]; @@ -939,16 +1206,6 @@ struct FuncTable { dStage_Func function; }; -struct dStage_fileHeader { - /* 0x0 */ int chunkCount; -}; - -struct dStage_nodeHeader { - /* 0x0 */ u32 m_tag; - /* 0x4 */ int m_entryNum; - /* 0x8 */ u32 m_offset; -}; - const char* dStage_getName2(s16, s8); dStage_objectNameInf* dStage_searchName(const char*); static int dStage_stageKeepTresureInit(dStage_dt_c*, void*, int, void*); @@ -1008,9 +1265,7 @@ int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, u32 mode, s16 angle, int param_7); void dStage_Create(); void dStage_Delete(); -static s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0); void dStage_restartRoom(u32 roomParam, u32 mode, int param_2); -class cBgS_GndChk; int dStage_RoomCheck(cBgS_GndChk* gndChk); void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* stageDt, int param_2); void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* stageDt, int param_2); @@ -1018,7 +1273,7 @@ dStage_KeepDoorInfo* dStage_GetKeepDoorInfo(); dStage_KeepDoorInfo* dStage_GetRoomKeepDoorInfo(); void dStage_dt_c_fieldMapLoader(void* i_data, dStage_dt_c* i_stage); -inline bool dStage_roomRead_dt_c_ChkBg(u8 param_0) { +inline s32 dStage_roomRead_dt_c_ChkBg(u8 param_0) { return param_0 & 0x80; } @@ -1034,7 +1289,7 @@ 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) { +inline u32 dStage_roomRead_dt_c_GetReverb(roomRead_data_class& room) { return room.field_0x1 & 0x7F; } @@ -1066,7 +1321,7 @@ inline int dStage_stagInfo_GetMsgGroup(stage_stag_info_class* p_info) { return p_info->mMsgGroup; } -inline s32 i_dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { +inline s32 dStage_stagInfo_GetSaveTbl(stage_stag_info_class* param_0) { return param_0->field_0x09 >> 1 & 0x1f; } @@ -1123,7 +1378,7 @@ inline s32 dStage_sclsInfo_getWipeTime(stage_scls_info_class* p_info) { } inline int dStage_sclsInfo_getTimeH(stage_scls_info_class* p_info) { - return (u8)((p_info->field_0xa >> 4) & 0xF) | (p_info->field_0xb & 0x10 & ~0xF); + return ((p_info->field_0xa >> 4) & 0xF) | (p_info->field_0xb & 0x10); } inline u32 dStage_FileList_dt_getMiniMap(dStage_FileList_dt_c* p_fList) { diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index d5cfbeab51b..e24955e55a8 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -45,18 +45,21 @@ class JKRHeap; class cM3dGPla; struct fopAcM_prmBase_class { - /* 0x00 */ u32 field_0x00; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ csXyz field_0x10; - /* 0x16 */ u16 field_0x16; -}; // Size = 0x18 - -struct fopAcM_prm_class { /* 0x00 */ u32 parameters; /* 0x04 */ cXyz position; /* 0x10 */ csXyz angle; - /* 0x16 */ u16 setId; - /* 0x18 */ u8 scale[3]; + /* 0x16 */ u16 setID; +}; // Size: 0x18 + +struct fopAcM_prmScale_class { + /* 0x0 */ u8 x; + /* 0x1 */ u8 y; + /* 0x2 */ u8 z; +}; // Size: 0x3 + +struct fopAcM_prm_class { + /* 0x00 */ fopAcM_prmBase_class base; + /* 0x18 */ fopAcM_prmScale_class scale; /* 0x1C */ fpc_ProcID parent_id; /* 0x20 */ s8 subtype; /* 0x21 */ s8 room_no; @@ -486,6 +489,14 @@ fpc_ProcID fopAcM_create(s16 i_procName, u16 i_setId, u32 i_parameters, const cX fpc_ProcID fopAcM_create(s16 i_procName, u32 i_parameters, const cXyz* i_pos, int i_roomNo, const csXyz* i_angle, const cXyz* i_scale, s8 i_subtype); +inline fpc_ProcID fopAcM_create(s16 i_procName, createFunc i_createFunc, void* params) { + return fpcM_Create(i_procName, i_createFunc, params); +} + +inline fpc_ProcID fopAcM_Create(s16 i_procName, createFunc i_createFunc, void* params) { + return fpcM_Create(i_procName, i_createFunc,params); +} + fopAc_ac_c* fopAcM_fastCreate(s16 i_procName, u32 i_parameters, const cXyz* i_pos, int i_roomNo, const csXyz* i_angle, const cXyz* i_scale, s8 i_subtype, createFunc i_createFunc, void* i_createFuncData); diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h index 05ade1a4bad..75f78c351c8 100644 --- a/include/f_op/f_op_camera_mng.h +++ b/include/f_op/f_op_camera_mng.h @@ -7,6 +7,10 @@ typedef struct leafdraw_method_class leafdraw_method_class; +struct fopCamM_prm_class { + /* 0x00 */ fopAcM_prmBase_class base; +}; // Size: 0x18 + class camera_process_class : public view_class { public: /* 0x210 */ create_tag_class create_tag; diff --git a/src/d/actor/d_a_alink.cpp b/src/d/actor/d_a_alink.cpp index d6df72ded5c..051b5d1edf0 100644 --- a/src/d/actor/d_a_alink.cpp +++ b/src/d/actor/d_a_alink.cpp @@ -6212,7 +6212,7 @@ int daAlink_c::create() { daTagMhint_c::createPortalWarpMissTag(0xBBE, fopAcM_GetID(this)); } - if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) == 0x11) { if (!dComIfGs_isItemFirstBit(fpcNm_ITEM_HYLIA_SHIELD) && !dComIfGs_isItemFirstBit(fpcNm_ITEM_SHIELD) && !dComIfGs_isItemFirstBit(fpcNm_ITEM_WOOD_SHIELD)) { diff --git a/src/d/actor/d_a_alink_copyrod.inc b/src/d/actor/d_a_alink_copyrod.inc index 5558eb3a95a..f1415e827e0 100644 --- a/src/d/actor/d_a_alink_copyrod.inc +++ b/src/d/actor/d_a_alink_copyrod.inc @@ -75,7 +75,7 @@ BOOL daAlink_c::checkForestOldCentury() { BOOL daAlink_c::checkCopyRodTopUse() { // Event flag 0x2580: Dominion Rod power restored return (dComIfGs_isEventBit(0x2580) && !(mProcID == PROC_UNEQUIP && mProcVar3.field_0x300e != 0)) || - i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 || + dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x15 || checkForestOldCentury(); } diff --git a/src/d/actor/d_a_alink_cut.inc b/src/d/actor/d_a_alink_cut.inc index 21f0748dffa..1975b5ae00d 100644 --- a/src/d/actor/d_a_alink_cut.inc +++ b/src/d/actor/d_a_alink_cut.inc @@ -32,7 +32,7 @@ void daAlink_c::checkLightSwordMtrl() { if (checkLightMasterSwordEquip()) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_dStage_stagInfo_GetSaveTbl(stag_info) == 0x17 || + if (dStage_stagInfo_GetSaveTbl(stag_info) == 0x17 || fopAcIt_Judge((fopAcIt_JudgeFunc)daAlink_searchNightStalker, NULL)) { onNoResetFlg3(FLG3_UNK_100000); diff --git a/src/d/actor/d_a_alink_demo.inc b/src/d/actor/d_a_alink_demo.inc index 8d4dd1240e9..d027fa80581 100644 --- a/src/d/actor/d_a_alink_demo.inc +++ b/src/d/actor/d_a_alink_demo.inc @@ -43,8 +43,8 @@ bool daAlink_c::checkSetNpcTks(cXyz* i_basePos, int i_roomNo, int param_2) { u32 scene_mode = getLastSceneMode(); if (param_2 != 0 && checkDungeon() && - i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17 && - i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x18 && + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17 && + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x18 && (checkItemGet(fpcNm_ITEM_TKS_LETTER, 1) || (checkItemGet(fpcNm_ITEM_DUNGEON_BACK, 1) && !checkLv7DungeonShop())) && dComIfGs_isDungeonItemWarp()) diff --git a/src/d/actor/d_a_no_chg_room.cpp b/src/d/actor/d_a_no_chg_room.cpp index bda39213ec5..530eae9a3ee 100644 --- a/src/d/actor/d_a_no_chg_room.cpp +++ b/src/d/actor/d_a_no_chg_room.cpp @@ -12,13 +12,13 @@ static bool isLoadRoom(int i_roomNo) { roomRead_class* room = dComIfGp_getStageRoom(); - if (room != NULL && room->field_0x0 > i_roomNo) { + if (room != NULL && room->num > i_roomNo) { int load_room_index; int num; u8* data; - num = room->field_0x4[i_roomNo]->field_0x0; - data = room->field_0x4[i_roomNo]->field_0x4; + num = room->m_entries[i_roomNo]->num; + data = room->m_entries[i_roomNo]->m_rooms; for (int i = 0; i < num; i++) { load_room_index = dStage_roomRead_dt_c_GetLoadRoomIndex(data[i]); diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index 7edd43707f8..0b0cdd013de 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -2535,11 +2535,11 @@ BOOL daNpcT_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz* o_spawn csXyz* o_angle) { BOOL ret = FALSE; dStage_roomDt_c* room_dt = dComIfGp_roomControl_getStatusRoomDt(i_roomNo); - stage_actor_data_class* entry = room_dt->getPlayer()->mEntries; + stage_actor_data_class* entry = room_dt->getPlayer()->m_entries; for (int i = 0; i < room_dt->getPlayerNum(); entry++, i++) { - if (param_0 == (entry->mAngle.z & 0xff)) { - *o_spawnPos = entry->mSpawnPos; - *o_angle = entry->mAngle; + if (param_0 == (entry->base.angle.z & 0xff)) { + *o_spawnPos = entry->base.position; + *o_angle = entry->base.angle; ret = TRUE; break; } @@ -5094,12 +5094,12 @@ int daNpcF_getPlayerInfoFromPlayerList(int param_0, int i_roomNo, cXyz& param_2, int rv = 0; dStage_roomDt_c* roomP = dComIfGp_roomControl_getStatusRoomDt(i_roomNo); - stage_actor_data_class* entries = roomP->getPlayer()->mEntries; + stage_actor_data_class* entries = roomP->getPlayer()->m_entries; for (int i = 0; i < roomP->getPlayerNum(); entries++, i++) { - if (param_0 == (u8)entries->mAngle.z) { - param_2 = entries->mSpawnPos; - param_3 = entries->mAngle; + if (param_0 == (u8)entries->base.angle.z) { + param_2 = entries->base.position; + param_3 = entries->base.angle; rv = 1; break; } diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index 03496e3a847..bb831c8f920 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -541,7 +541,7 @@ bool daPy_py_c::checkRoomRestartStart() { u32 daPy_py_c::checkCarryStartLightBallA() { if (checkRoomRestartStart() || !dComIfGp_getStage() || !dComIfGp_getStage()->getStagInfo() || - i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) { return FALSE; } @@ -553,7 +553,7 @@ u32 daPy_py_c::checkCarryStartLightBallA() { u32 daPy_py_c::checkCarryStartLightBallB() { if (checkRoomRestartStart() || !dComIfGp_getStage() || !dComIfGp_getStage()->getStagInfo() || - i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) + dStage_stagInfo_GetSaveTbl(dComIfGp_getStage()->getStagInfo()) != 0x17) { return FALSE; } diff --git a/src/d/actor/d_a_tag_chgrestart.cpp b/src/d/actor/d_a_tag_chgrestart.cpp index 357e7fe0971..de0b73022c2 100644 --- a/src/d/actor/d_a_tag_chgrestart.cpp +++ b/src/d/actor/d_a_tag_chgrestart.cpp @@ -63,17 +63,17 @@ s32 daTagChgRestart_c::execute() { dStage_roomDt_c* roomDt = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(this)); stage_actor_class* player_data = roomDt->getPlayer(); - stage_actor_data_class* entry_p = player_data->mEntries; - for (int i = 0; i < player_data->mEntryNum; i++) { - if ((entry_p->mAngle.z & 0xFF) == playerNo) { + stage_actor_data_class* entry_p = player_data->m_entries; + for (int i = 0; i < player_data->num; i++) { + if ((entry_p->base.angle.z & 0xFF) == playerNo) { break; } entry_p++; } - restart_pos = entry_p->mSpawnPos; - restart_angle = entry_p->mAngle.y; + restart_pos = entry_p->base.position; + restart_angle = entry_p->base.angle.y; } dComIfGs_setRestartRoom(restart_pos, restart_angle, fopAcM_GetRoomNo(player)); diff --git a/src/d/actor/d_a_tag_mhint.cpp b/src/d/actor/d_a_tag_mhint.cpp index 513be6dbca5..97ac7c4b9ac 100644 --- a/src/d/actor/d_a_tag_mhint.cpp +++ b/src/d/actor/d_a_tag_mhint.cpp @@ -50,12 +50,12 @@ int daTagMhint_c::create() { if (!checkNoAttention()) { stage_arrow_data_class* arrow_data_p = &dComIfGp_getRoomArrow(fopAcM_GetRoomNo(this)) - ->mEntries[dComIfGp_getRoomCamera(fopAcM_GetRoomNo(this)) - ->mEntries[field_0x56d] - .field_0x10]; + ->m_entries[dComIfGp_getRoomCamera(fopAcM_GetRoomNo(this)) + ->m_entries[field_0x56d] + .m_arrow_idx]; - eyePos.set(arrow_data_p->mPosition.x, arrow_data_p->mPosition.y, - arrow_data_p->mPosition.z); + eyePos.set(arrow_data_p->position.x, arrow_data_p->position.y, + arrow_data_p->position.z); attention_info.position = eyePos; } diff --git a/src/d/actor/d_a_tag_mmsg.cpp b/src/d/actor/d_a_tag_mmsg.cpp index 1d7f14e5a89..f90bb0c8f9a 100644 --- a/src/d/actor/d_a_tag_mmsg.cpp +++ b/src/d/actor/d_a_tag_mmsg.cpp @@ -32,8 +32,8 @@ int daTagMmsg_c::create() { s32 roomNo = fopAcM_GetRoomNo(this); cXyz* tmp = &dComIfGp_getRoomArrow(roomNo) - ->mEntries[dComIfGp_getRoomCamera(roomNo)->mEntries[mAttention].field_0x10] - .mPosition; + ->m_entries[dComIfGp_getRoomCamera(roomNo)->m_entries[mAttention].m_arrow_idx] + .position; eyePos.set(tmp->x, tmp->y, tmp->z); attention_info.position = eyePos; } diff --git a/src/d/actor/d_a_tag_mstop.cpp b/src/d/actor/d_a_tag_mstop.cpp index bd1caab91c2..8987e561477 100644 --- a/src/d/actor/d_a_tag_mstop.cpp +++ b/src/d/actor/d_a_tag_mstop.cpp @@ -55,8 +55,8 @@ int daTagMstop_c::create() { if (!checkNoAttention()) { s32 room = fopAcM_GetRoomNo(this); cXyz* pos = &dComIfGp_getRoomArrow(room) - ->mEntries[dComIfGp_getRoomCamera(room)->mEntries[idx].field_0x10] - .mPosition; + ->m_entries[dComIfGp_getRoomCamera(room)->m_entries[idx].m_arrow_idx] + .position; eyePos.set(pos->x, pos->y, pos->z); attention_info.position = eyePos; diff --git a/src/d/actor/d_a_tbox.cpp b/src/d/actor/d_a_tbox.cpp index 640bb341768..e443abcc16e 100644 --- a/src/d/actor/d_a_tbox.cpp +++ b/src/d/actor/d_a_tbox.cpp @@ -1540,18 +1540,18 @@ void daTbox_c::settingDropDemoCamera() { JUT_ASSERT(0xB8E, roomdt != 0); stage_camera_class* stage_camera = roomdt->getCamera(); - stage_camera2_data_class* stage_camera_data = stage_camera->mEntries; + stage_camera2_data_class* stage_camera_data = stage_camera->m_entries; stage_camera_data += maptooldata->field_0x16; stage_arrow_class* stage_arrow = roomdt->getArrow(); - stage_arrow_data_class* stage_arrow_data = stage_arrow->mEntries; - stage_arrow_data += stage_camera_data->field_0x10; + stage_arrow_data_class* stage_arrow_data = stage_arrow->m_entries; + stage_arrow_data += stage_camera_data->m_arrow_idx; cXyz spA0; cXyz spAC; - spA0.x = stage_arrow_data->mPosition.x; - spA0.z = stage_arrow_data->mPosition.z; + spA0.x = stage_arrow_data->position.x; + spA0.z = stage_arrow_data->position.z; spAC.x = home.pos.x; spAC.z = home.pos.z; f32 var_f30 = spA0.abs(spAC); @@ -1562,16 +1562,16 @@ void daTbox_c::settingDropDemoCamera() { s16 angle; getDropSAngle(&angle); - spB8.x = stage_arrow_data->mPosition.x; + spB8.x = stage_arrow_data->position.x; spB8.y = 0.0f; - spB8.z = stage_arrow_data->mPosition.z; + spB8.z = stage_arrow_data->position.z; spB8 -= home.pos; Mtx mtx; MTXRotAxisRad(mtx, &spC4, cM_s2rad(angle)); mDoMtx_multVec(mtx, &spB8, &spB8); spB8 += home.pos; - spB8.y = stage_arrow_data->mPosition.y; + spB8.y = stage_arrow_data->position.y; cXyz cam_eye; cXyz cam_center; @@ -1579,10 +1579,10 @@ void daTbox_c::settingDropDemoCamera() { cam_eye = spB8; cam_center = home.pos; - f32 var_f29 = cM_ssin(stage_arrow_data->mAngle.x); - f32 var_f28 = cM_scos(stage_arrow_data->mAngle.x); + f32 var_f29 = cM_ssin(stage_arrow_data->angle.x); + f32 var_f28 = cM_scos(stage_arrow_data->angle.x); f32 dist = var_f30 * (var_f29 / var_f28); - if (stage_arrow_data->mAngle.x > 0) { + if (stage_arrow_data->angle.x > 0) { dist = -dist; } diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index 0139b5cca99..58b69104760 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -563,10 +563,10 @@ int dCamMapToolData::Set(s32 param_0, s32 roomNo, fopAc_ac_c* param_2, u16 param stage_camera_class* room_cam = dComIfGp_getRoomCamera(roomNo); stage_arrow_class* room_arrow = dComIfGp_getRoomArrow(roomNo); - if (room_cam != NULL && param_0 >= 0 && param_0 < room_cam->field_0x0) { + if (room_cam != NULL && param_0 >= 0 && param_0 < room_cam->num) { Clr(); field_0x30 = param_0; - field_0x0 = room_cam->mEntries[field_0x30]; + field_0x0 = room_cam->m_entries[field_0x30]; field_0x3a = (field_0x0.field_0x14 >> 0xE) & 3; if (param_3 & 0x8000) { @@ -579,10 +579,10 @@ int dCamMapToolData::Set(s32 param_0, s32 roomNo, fopAc_ac_c* param_2, u16 param field_0x0.field_0x14 &= ~0xC000; } - field_0x2c = field_0x0.field_0x10; + field_0x2c = field_0x0.m_arrow_idx; - if (room_arrow != NULL && field_0x2c >= 0 && field_0x2c < room_arrow->mNum) { - field_0x18 = room_arrow->mEntries[field_0x2c]; + if (room_arrow != NULL && field_0x2c >= 0 && field_0x2c < room_arrow->num) { + field_0x18 = room_arrow->m_entries[field_0x2c]; } field_0x34 = param_2; @@ -1904,9 +1904,9 @@ void dCamera_c::setStageMapToolData() { var_r28 = dStage_stagInfo_DefaultCameraType(staginfo); } - if (camera != NULL && var_r28 >= 0 && var_r28 < camera->field_0x0) { + if (camera != NULL && var_r28 >= 0 && var_r28 < camera->num) { field_0x7e8.field_0x30 = var_r28; - field_0x7e8.field_0x0 = camera->mEntries[var_r28]; + field_0x7e8.field_0x0 = camera->m_entries[var_r28]; field_0x7e8.field_0x3a = (field_0x7e8.field_0x0.field_0x14 >> 0xE) & 3; if (field_0x7e8.field_0x0.field_0x14 & 0x2000) { @@ -1915,10 +1915,10 @@ void dCamera_c::setStageMapToolData() { field_0x7e8.field_0x0.field_0x14 &= ~0xC000; } - int var_r27 = field_0x7e8.field_0x0.field_0x10; - if (arrow != NULL && var_r27 >= 0 && var_r27 < arrow->mNum) { + int var_r27 = field_0x7e8.field_0x0.m_arrow_idx; + if (arrow != NULL && var_r27 >= 0 && var_r27 < arrow->num) { field_0x7e8.field_0x2c = var_r27; - field_0x7e8.field_0x18 = arrow->mEntries[var_r27]; + field_0x7e8.field_0x18 = arrow->m_entries[var_r27]; } } } @@ -2446,10 +2446,10 @@ int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 i_roomNo) { } } - if (param_0 < 0 || camera == NULL || (camera != NULL && param_0 >= camera->field_0x0)) { + if (param_0 < 0 || camera == NULL || (camera != NULL && param_0 >= camera->num)) { int sp28; if (camera != NULL) { - sp28 = camera->field_0x0; + sp28 = camera->num; } else { sp28 = -99; } @@ -2461,7 +2461,7 @@ int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 i_roomNo) { i = 0; while (i < mCamTypeNum) { - if (strcmp((char*)&camera->mEntries[param_0].field_0x0.field_0x0, mCamTypeData[i].name) == + if (strcmp(camera->m_entries[param_0].m_cam_type, mCamTypeData[i].name) == 0) { break; @@ -2471,11 +2471,11 @@ int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 i_roomNo) { } if (i == mCamTypeNum) { - OS_REPORT("camera: type \'%s\' not found\n", camera->mEntries[param_0].field_0x0.field_0x0); + OS_REPORT("camera: type \'%s\' not found\n", camera->m_entries[param_0].m_cam_type); return 0xFF; } - field_0x7ac.field_0x0 = camera->mEntries[param_0]; + field_0x7ac.field_0x0 = camera->m_entries[param_0]; field_0x7ac.field_0x30 = param_0; field_0x7ac.field_0x3a = (field_0x7ac.field_0x0.field_0x14 >> 0xE) & 3; @@ -2485,10 +2485,10 @@ int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 i_roomNo) { field_0x7ac.field_0x0.field_0x14 &= ~0xC000; } - field_0x7ac.field_0x2c = field_0x7ac.field_0x0.field_0x10; + field_0x7ac.field_0x2c = field_0x7ac.field_0x0.m_arrow_idx; - if (field_0x7ac.field_0x2c != -1 && field_0x7ac.field_0x2c < arrow->mNum) { - field_0x7ac.field_0x18 = arrow->mEntries[field_0x7ac.field_0x2c]; + if (field_0x7ac.field_0x2c != -1 && field_0x7ac.field_0x2c < arrow->num) { + field_0x7ac.field_0x18 = arrow->m_entries[field_0x7ac.field_0x2c]; } else { field_0x7ac.field_0x2c = 0xFF; } @@ -2527,7 +2527,7 @@ int dCamera_c::GetCameraTypeFromToolData(stage_camera2_data_class* i_data) { return i_data->field_0x16; } - int type = GetCameraTypeFromCameraName((char*)&i_data->field_0x0.field_0x0); + int type = GetCameraTypeFromCameraName(i_data->m_cam_type); if (type < 0xFFFF) { i_data->field_0x16 = type; } @@ -7130,9 +7130,9 @@ bool dCamera_c::colosseumCamera(s32 param_0) { mWork.colosseum.field_0x14 = 0.0f; mWork.colosseum.field_0x18 = 40; if (field_0x7ac.field_0x30 != 0xff && mCamParam.Flag(param_0, 0x200)) { - mWork.colosseum.field_0x8.x = field_0x7ac.field_0x18.mPosition.x; - mWork.colosseum.field_0x8.y = field_0x7ac.field_0x18.mPosition.y; - mWork.colosseum.field_0x8.z = field_0x7ac.field_0x18.mPosition.z; + mWork.colosseum.field_0x8.x = field_0x7ac.field_0x18.position.x; + mWork.colosseum.field_0x8.y = field_0x7ac.field_0x18.position.y; + mWork.colosseum.field_0x8.z = field_0x7ac.field_0x18.position.z; } else if (mCamParam.Flag(param_0, 0x2000)) { fopAc_ac_c* target = getParamTargetActor(mCurType); mWork.colosseum.field_0x8.x = positionOf(target).x; @@ -7262,10 +7262,10 @@ bool dCamera_c::towerCamera(s32 param_0) { dComIfGp_getAttention(); if (mCurCamStyleTimer == 0) { - mWork.tower.field_0x54.x = field_0x7ac.field_0x18.mPosition.x; - mWork.tower.field_0x54.y = field_0x7ac.field_0x18.mPosition.y; - mWork.tower.field_0x54.z = field_0x7ac.field_0x18.mPosition.z; - mWork.tower.field_0x60 = field_0x7ac.field_0x18.mAngle.y; + mWork.tower.field_0x54.x = field_0x7ac.field_0x18.position.x; + mWork.tower.field_0x54.y = field_0x7ac.field_0x18.position.y; + mWork.tower.field_0x54.z = field_0x7ac.field_0x18.position.z; + mWork.tower.field_0x60 = field_0x7ac.field_0x18.angle.y; mWork.tower.field_0x64 = stack_454 <= cSAngle::_90 ? 1 : 0; } diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index d66c26a7bb5..a2e471297ca 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -1156,8 +1156,8 @@ bool dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_ang return false; } - dStage_Mult_info* info = multi->mInfo; - for (int i = 0; i < multi->field_0x0; i++) { + dStage_Mult_info* info = multi->m_entries; + for (int i = 0; i < multi->num; i++) { if (i_roomNo == info->mRoomNo) { *o_transX = info->mTransX; *o_transY = info->mTransY; @@ -1262,7 +1262,7 @@ void dComIfGp_setNextStage(char const* i_stage, s16 i_point, s8 i_roomNo, s8 i_l BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_stageNo == i_dStage_stagInfo_GetSaveTbl(stag_info)) { + if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { return dComIfGs_isTbox(i_no); } else { return dComIfGs_isSaveTbox(i_stageNo, i_no); @@ -1272,7 +1272,7 @@ BOOL dComIfGs_isStageTbox(int i_stageNo, int i_no) { void dComIfGs_onStageSwitch(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_stageNo == i_dStage_stagInfo_GetSaveTbl(stag_info)) { + if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_onSwitch(i_no, -1); } @@ -1282,7 +1282,7 @@ void dComIfGs_onStageSwitch(int i_stageNo, int i_no) { void dComIfGs_offStageSwitch(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_stageNo == i_dStage_stagInfo_GetSaveTbl(stag_info)) { + if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_offSwitch(i_no, -1); } @@ -1292,7 +1292,7 @@ void dComIfGs_offStageSwitch(int i_stageNo, int i_no) { BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_stageNo == i_dStage_stagInfo_GetSaveTbl(stag_info)) { + if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { return dComIfGs_isSwitch(i_no, -1); } else { return dComIfGs_isSaveSwitch(i_stageNo, i_no); @@ -1302,7 +1302,7 @@ BOOL dComIfGs_isStageSwitch(int i_stageNo, int i_no) { void dComIfGs_onStageBossEnemy(int i_stageNo) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_stageNo == i_dStage_stagInfo_GetSaveTbl(stag_info)) { + if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_onStageBossEnemy(); } @@ -1312,7 +1312,7 @@ void dComIfGs_onStageBossEnemy(int i_stageNo) { s32 dComIfGs_isDungeonItemWarp(int i_stageNo) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_stageNo == i_dStage_stagInfo_GetSaveTbl(stag_info)) { + if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { return dComIfGs_isDungeonItemWarp(); } else { return g_dComIfG_gameInfo.info.getSavedata() @@ -2189,7 +2189,7 @@ void dComIfGs_setKeyNum(int i_stageNo, u8 i_keyNum) { if (dComIfGp_getStageStagInfo()) { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - if (i_stageNo == i_dStage_stagInfo_GetSaveTbl(stag_info)) { + if (i_stageNo == dStage_stagInfo_GetSaveTbl(stag_info)) { dComIfGs_setKeyNum(i_keyNum); } } diff --git a/src/d/d_ev_camera.cpp b/src/d/d_ev_camera.cpp index 3ff2ca4ba3c..0852a371a0a 100644 --- a/src/d/d_ev_camera.cpp +++ b/src/d/d_ev_camera.cpp @@ -201,8 +201,8 @@ extern "C" u8 _90__7cSAngle[2 + 2 /* padding */]; static bool func_800889F8(int param_0) { dStage_MapEventInfo_c* info = dComIfGp_getStage()->getMapEventInfo(); if (info != NULL) { - for (int i = 0; i < info->mCount; i++) { - if (param_0 == info->mData[i].field_0x4) { + for (int i = 0; i < info->num; i++) { + if (param_0 == info->m_entries[i].field_0x4) { return true; } } diff --git a/src/d/d_event.cpp b/src/d/d_event.cpp index f7a5f577275..c2ab3acf730 100644 --- a/src/d/d_event.cpp +++ b/src/d/d_event.cpp @@ -1129,9 +1129,9 @@ dStage_MapEvent_dt_c* dEvt_control_c::searchMapEventData(u8 mapToolID, s32 roomN dStage_MapEventInfo_c* roomInfo = room_dt->getMapEventInfo(); if (roomInfo != NULL) { - for (int i = 0; i < roomInfo->mCount; i++) { - if (mapToolID == roomInfo->mData[i].field_0x4) { - return &roomInfo->mData[i]; + for (int i = 0; i < roomInfo->num; i++) { + if (mapToolID == roomInfo->m_entries[i].field_0x4) { + return &roomInfo->m_entries[i]; } } } @@ -1139,9 +1139,9 @@ dStage_MapEvent_dt_c* dEvt_control_c::searchMapEventData(u8 mapToolID, s32 roomN dStage_MapEventInfo_c* stageInfo = dComIfGp_getStage()->getMapEventInfo(); if (stageInfo != NULL) { - for (int i = 0; i < stageInfo->mCount; i++) { - if (mapToolID == stageInfo->mData[i].field_0x4) { - return &stageInfo->mData[i]; + for (int i = 0; i < stageInfo->num; i++) { + if (mapToolID == stageInfo->m_entries[i].field_0x4) { + return &stageInfo->m_entries[i]; } } } diff --git a/src/d/d_event_data.cpp b/src/d/d_event_data.cpp index 380324c86ad..0893d2846bb 100644 --- a/src/d/d_event_data.cpp +++ b/src/d/d_event_data.cpp @@ -149,8 +149,8 @@ static int dEvDt_Next_Stage(int index, int wipe_type) { info = dComIfGp_roomControl_getStatusRoomDt(room_no)->getSclsInfo(); } - if (info != NULL && id >= 0 && id < info->numEntries) { - stage_scls_info_class* stgInfo = &info->mEntries[id]; + if (info != NULL && id >= 0 && id < info->num) { + stage_scls_info_class* stgInfo = &info->m_entries[id]; stage = stgInfo->mStage; point = stgInfo->mStart; roomNo = (s8)stgInfo->mRoom; @@ -739,7 +739,7 @@ void dEvDtStaff_c::specialProcDirector() { if (switchTableP != NULL) { switchTable = *switchTableP; } else { - switchTable = i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); + switchTable = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); } int* switchBitP = dComIfGp_evmng_getMyIntegerP(staffId, "SwitchBit"); diff --git a/src/d/d_event_manager.cpp b/src/d/d_event_manager.cpp index 0c0a687c887..ccb05b4fbff 100644 --- a/src/d/d_event_manager.cpp +++ b/src/d/d_event_manager.cpp @@ -60,11 +60,11 @@ const char* dEvent_exception_c::getEventName() { return "(!NO INFO!)"; } - if (mEventInfoIdx < 0 || mEventInfoIdx > eventInfo->mCount) { + if (mEventInfoIdx < 0 || mEventInfoIdx > eventInfo->num) { return "(!BAD NUMBER!)"; } - dStage_MapEvent_dt_c* revt = &eventInfo->mData[mEventInfoIdx]; + dStage_MapEvent_dt_c* revt = &eventInfo->m_entries[mEventInfoIdx]; switch (revt->mType) { case 1: case 2: diff --git a/src/d/d_item.cpp b/src/d/d_item.cpp index d10e8d68b98..47fdaf1cd7f 100644 --- a/src/d/d_item.cpp +++ b/src/d/d_item.cpp @@ -675,7 +675,7 @@ void item_func_UTUWA_HEART() { dComIfGp_setItemLifeCount(max_life, 0); stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - int tmp = i_dStage_stagInfo_GetSaveTbl(stag_info); + int tmp = dStage_stagInfo_GetSaveTbl(stag_info); dComIfGs_onStageLife(); } diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index 54c6a88ea7d..1e680374b4d 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -1020,7 +1020,9 @@ static void plight_set() { for (int i = 0; i < dComIfGp_getStagePlightNumInfo(); i++) { if (plight_no < 30) { - g_env_light.mLightInfluence[plight_no].mPosition = plight_info[i].position; + g_env_light.mLightInfluence[plight_no].mPosition.x = plight_info[i].position.x; + g_env_light.mLightInfluence[plight_no].mPosition.y = plight_info[i].position.y; + g_env_light.mLightInfluence[plight_no].mPosition.z = plight_info[i].position.z; g_env_light.mLightInfluence[plight_no].mColor.r = plight_info[i].color.r; g_env_light.mLightInfluence[plight_no].mColor.g = plight_info[i].color.g; g_env_light.mLightInfluence[plight_no].mColor.b = plight_info[i].color.b; diff --git a/src/d/d_kankyo_wether.cpp b/src/d/d_kankyo_wether.cpp index 7b0da2f8865..bad0c4fef76 100644 --- a/src/d/d_kankyo_wether.cpp +++ b/src/d/d_kankyo_wether.cpp @@ -489,9 +489,9 @@ static void wether_move_sun() { s32 sunVisible = false; if (dComIfGp_checkStatus(1) && !g_env_light.hide_vrbox) { roomRead_class* room = dComIfGp_getStageRoom(); - if (room != NULL && room->field_0x0 > dComIfGp_roomControl_getStayNo()) { + if (room != NULL && room->num > dComIfGp_roomControl_getStayNo()) { sunVisible = dStage_roomRead_dt_c_GetVrboxswitch( - *room->field_0x4[dComIfGp_roomControl_getStayNo()]); + *room->m_entries[dComIfGp_roomControl_getStayNo()]); } // Stage is Hero Shade arena @@ -661,9 +661,9 @@ static void wether_move_star() { !strcmp(dComIfGp_getStartStageName(), "F_SP200")) { roomRead_class* room = dComIfGp_getStageRoom(); - if (room != NULL && room->field_0x0 > dComIfGp_roomControl_getStayNo()) { + if (room != NULL && room->num > dComIfGp_roomControl_getStayNo()) { starsVisible = dStage_roomRead_dt_c_GetVrboxswitch( - *room->field_0x4[dComIfGp_roomControl_getStayNo()]); + *room->m_entries[dComIfGp_roomControl_getStayNo()]); } // Stage is Hero Shade arena @@ -951,9 +951,9 @@ static void wether_move_vrkumo() { } roomRead_class* room_p = dComIfGp_getStageRoom(); - if (room_p != NULL && room_p->field_0x0 > dComIfGp_roomControl_getStayNo()) { + if (room_p != NULL && room_p->num > dComIfGp_roomControl_getStayNo()) { var_r31 = dStage_roomRead_dt_c_GetVrboxswitch( - *room_p->field_0x4[dComIfGp_roomControl_getStayNo()]); + *room_p->m_entries[dComIfGp_roomControl_getStayNo()]); } if (strcmp(dComIfGp_getStartStageName(), "F_SP200") == 0) { diff --git a/src/d/d_map_path_dmap.cpp b/src/d/d_map_path_dmap.cpp index 14d9915482d..0ba1a45be58 100644 --- a/src/d/d_map_path_dmap.cpp +++ b/src/d/d_map_path_dmap.cpp @@ -512,17 +512,12 @@ int dMpath_c::setPointer(dDrawPath_c::room_class* i_room, s8* param_1, s8* param return var_r6; } -struct map_path_class { - int field_0x0; - dDrawPath_c::room_class* field_0x4; -}; - /* 8003FA40-8003FB70 03A380 0130+00 0/0 2/2 0/0 .text setPointer__8dMpath_cFScPvi */ #pragma push #pragma optimization_level 2 void dMpath_c::setPointer(s8 i_roomNo, void* i_data, int i_mapLayerNo) { s32 roomNo; - dDrawPath_c::room_class* room = ((map_path_class*)i_data)->field_0x4; + dDrawPath_c::room_class* room = ((map_path_class*)i_data)->m_entries; if (room != NULL) { roomNo = i_roomNo; @@ -924,10 +919,10 @@ void renderingPlusDoor_c::drawDoorCommon(stage_tgsc_data_class const* i_doorData setTevSettingIntensityTextureToCI(); for (int i = 0; i < i_dataNum; i++, i_doorData++) { - prm0 = (i_doorData->mParameter >> 0xD) & 0x3F; - prm1 = (i_doorData->mParameter >> 0x13) & 0x3F; + prm0 = (i_doorData->base.parameters >> 0xD) & 0x3F; + prm1 = (i_doorData->base.parameters >> 0x13) & 0x3F; - if (checkDispDoorS(prm0, prm1, i_doorData->mSpawnPos.y)) { + if (checkDispDoorS(prm0, prm1, i_doorData->base.position.y)) { GXLoadTexObj(dMpath_n::m_texObjAgg.getTexObjPointer(0), GX_TEXMAP0); drawNormalDoorS(i_doorData, prm0, prm1, param_2); } @@ -978,16 +973,16 @@ void renderingPlusDoor_c::drawNormalDoorS(stage_tgsc_data_class const* i_doorDat } Vec spC; - spC.x = i_doorData->mSpawnPos.x; - spC.y = i_doorData->mSpawnPos.y; - spC.z = i_doorData->mSpawnPos.z; + spC.x = i_doorData->base.position.x; + spC.y = i_doorData->base.position.y; + spC.z = i_doorData->base.position.z; if (param_3) { dMapInfo_n::correctionOriginPos(i_roomNo, &spC); } mDoMtx_stack_c::transS(spC.x, spC.z, 0.0f); - mDoMtx_stack_c::ZrotM(i_doorData->mAngle.y); + mDoMtx_stack_c::ZrotM(i_doorData->base.angle.y); mDoMtx_stack_c::scaleM(6.0f, 6.0f, 1.0f); Vec sp18[4]; diff --git a/src/d/d_map_path_fmap.cpp b/src/d/d_map_path_fmap.cpp index c95c1c78697..cef7365df8a 100644 --- a/src/d/d_map_path_fmap.cpp +++ b/src/d/d_map_path_fmap.cpp @@ -369,7 +369,7 @@ bool dMenuFmapIconPointer_c::init(dMenu_Fmap_region_data_c* i_regionData, return false; } - mSaveTbl = i_dStage_stagInfo_GetSaveTbl(stag_info); + mSaveTbl = dStage_stagInfo_GetSaveTbl(stag_info); mpRegionData = i_regionData; mpStageData = i_stageData; mType = dTres_c::getTypeGroupNoToType(i_typeGroupNo); diff --git a/src/d/d_menu_dmap.cpp b/src/d/d_menu_dmap.cpp index af60f4e8f21..375ac0bf4f7 100644 --- a/src/d/d_menu_dmap.cpp +++ b/src/d/d_menu_dmap.cpp @@ -1280,9 +1280,9 @@ void dMenu_Dmap_c::screenInit() { field_0x88[0] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'map000', 3, NULL); field_0x88[1] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'con000', 3, NULL); - if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { field_0x88[2] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'i_key_n', 3, NULL); - } else if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { + } else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { field_0x88[2] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'lv5_k_n', 3, NULL); } else { field_0x88[2] = new CPaneMgr(mpDrawBg[0]->mBaseScreen, 'nor_k_n', 3, NULL); @@ -1290,7 +1290,7 @@ void dMenu_Dmap_c::screenInit() { for (int i = 0; i < 3; i++) { field_0x88[i]->scale(0.9f, 0.9f); } - if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { mpDrawBg[0]->mBaseScreen->search('lv5_k_n')->hide(); mpDrawBg[0]->mBaseScreen->search('nor_k_n')->hide(); u8 local_13f = 0; @@ -1325,7 +1325,7 @@ void dMenu_Dmap_c::screenInit() { ((J2DPicture*)mpDrawBg[0]->mBaseScreen->search('c_n_1_s'))->changeTexture(uVar20, 0); ((J2DPicture*)mpDrawBg[0]->mBaseScreen->search('c_n_1'))->changeTexture(uVar20, 0); } - } else if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { + } else if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { mpDrawBg[0]->mBaseScreen->search('i_key_n')->hide(); mpDrawBg[0]->mBaseScreen->search('nor_k_n')->hide(); mpDrawBg[0]->mBaseScreen->search('key_n_n')->hide(); diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp index 94fe704c83e..c0cefe1887b 100644 --- a/src/d/d_menu_fmap.cpp +++ b/src/d/d_menu_fmap.cpp @@ -1025,7 +1025,7 @@ void dMenu_Fmap_c::portal_warp_map_proc() { } } else if (mPortalNo == 3) { if ((dMeter2Info_getMapStatus() == 3 - && i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 2 + && dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 2 && dComIfGs_isOneZoneSwitch(0xf, -1)) || dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x33])) { diff --git a/src/d/d_menu_item_explain.cpp b/src/d/d_menu_item_explain.cpp index 91999817844..aa17ef3b446 100644 --- a/src/d/d_menu_item_explain.cpp +++ b/src/d/d_menu_item_explain.cpp @@ -366,7 +366,7 @@ void dMenu_ItemExplain_c::open_init() { u8 itemNo = field_0xe1; s32 iVar = -1; if (itemNo == 0x26) { - if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11) { s32 itemsObtained = 0; for (int i = 0; i < 3; i++) { if (checkItemGet(i + fpcNm_ITEM_L2_KEY_PIECES1, 1) != 0) { @@ -383,7 +383,7 @@ void dMenu_ItemExplain_c::open_init() { itemNo = 0xfd; } } else { - if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14) { itemNo = 0xf6; } } @@ -646,7 +646,7 @@ u8 dMenu_ItemExplain_c::openExplainDmap(u8 param_0, u8 param_1, u8 param_2, bool u8 ret = 0; s32 itemsObtained = 0; - if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11 && param_0 == 0x26) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x11 && param_0 == 0x26) { for (int i = 0; i < 3; i++) { if (checkItemGet(i + fpcNm_ITEM_L2_KEY_PIECES1, 1) != 0) { itemsObtained++; @@ -668,7 +668,7 @@ u8 dMenu_ItemExplain_c::openExplainDmap(u8 param_0, u8 param_1, u8 param_2, bool mStatus = 1; field_0xe1 = param_0; field_0xcc = itemNo + 0x165; - if (i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14 && itemNo == 0x23) { + if (dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()) == 0x14 && itemNo == 0x23) { field_0xcc = 0x5bf; } if (itemNo == 0x25 && dComIfGs_isDungeonItemWarp(0x16)) { diff --git a/src/d/d_menu_save.cpp b/src/d/d_menu_save.cpp index 41ed7db9732..af264a821a8 100644 --- a/src/d/d_menu_save.cpp +++ b/src/d/d_menu_save.cpp @@ -1350,7 +1350,7 @@ void dMenu_save_c::memCardDataLoadWait() { /* 801F2840-801F28E4 1ED180 00A4+00 2/2 0/0 0/0 .text dataWrite__12dMenu_save_cFv */ void dMenu_save_c::dataWrite() { - int stageNo = i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); + int stageNo = dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); dComIfGs_putSave(stageNo); dComIfGs_setMemoryToCard(mSaveBuffer, mSelectedFile); diff --git a/src/d/d_meter2_info.cpp b/src/d/d_meter2_info.cpp index c41102276a4..6d0a2cddba4 100644 --- a/src/d/d_meter2_info.cpp +++ b/src/d/d_meter2_info.cpp @@ -352,7 +352,7 @@ void dMeter2Info_c::warpInProc() { /* 8021CA70-8021CC00 2173B0 0190+00 0/0 1/1 0/0 .text warpOutProc__13dMeter2Info_cFv */ void dMeter2Info_c::warpOutProc() { stage_stag_info_class* stag_info = dComIfGp_getStageStagInfo(); - s32 saveTbl = i_dStage_stagInfo_GetSaveTbl(stag_info); + s32 saveTbl = dStage_stagInfo_GetSaveTbl(stag_info); dComIfGs_setLastWarpAcceptStage(saveTbl); cXyz warpPos(dComIfGs_getRestartRoomPos()); diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index 10f6120434c..17bbdf12a51 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -1611,11 +1611,11 @@ int dMsgFlow_c::event020(mesg_flow_node_event* flow_node, fopAc_ac_c* actor) { int prm0 = getParam(flow_node->params); daPy_py_c* player = daPy_getPlayerActorClass(); dStage_roomDt_c* room = dComIfGp_roomControl_getStatusRoomDt(fopAcM_GetRoomNo(actor)); - stage_actor_data_class* actor_data = room->getPlayer()->mEntries; + stage_actor_data_class* actor_data = room->getPlayer()->m_entries; for (int i = 0; i < room->getPlayerNum(); i++, actor_data++) { - if ((u8)actor_data->mAngle.z == prm0) { - player->setPlayerPosAndAngle(&actor_data->mSpawnPos, player->current.angle.y, 0); + if ((u8)actor_data->base.angle.z == prm0) { + player->setPlayerPosAndAngle(&actor_data->base.position, player->current.angle.y, 0); break; } } diff --git a/src/d/d_s_room.cpp b/src/d/d_s_room.cpp index 705e195a5f9..d5ed6d27cd4 100644 --- a/src/d/d_s_room.cpp +++ b/src/d/d_s_room.cpp @@ -266,14 +266,14 @@ static bool isReadRoom(int param_0) { return false; } - if (room->field_0x0 <= param_0) { + if (room->num <= param_0) { return false; } - roomRead_data_class* roomData = room->field_0x4[dComIfGp_getNextStageRoomNo()]; - u8* tmp = roomData->field_0x4; + roomRead_data_class* roomData = room->m_entries[dComIfGp_getNextStageRoomNo()]; + u8* tmp = roomData->m_rooms; - for (int i = 0; i < roomData->field_0x0; i++) { + for (int i = 0; i < roomData->num; i++) { if (dStage_roomRead_dt_c_ChkBg(*tmp) && param_0 == dStage_roomRead_dt_c_GetLoadRoomIndex(*tmp)) { diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 18297941d5e..8204664d573 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -10,12 +10,11 @@ #include "stdio.h" #include "SSystem/SComponent/c_malloc.h" #include "d/d_com_inf_game.h" -#include "d/d_com_static.h" #include "d/d_lib.h" #include "d/d_map_path_dmap.h" #include "d/d_map_path_fmap.h" #include "d/d_save_HIO.h" -#include "dol2asm.h" +#include "d/actor/d_a_suspend.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" @@ -35,12 +34,12 @@ void dStage_nextStage_c::set(const char* i_stage, s8 i_roomId, s16 i_point, s8 i } } -static void dStage_SetErrorRoom() { +void dStage_SetErrorRoom() { // "Room information might be corrupted. \nPlease try to re-convert. \n" OSReport_Error("部屋情報が、多分ですが壊れています。\n変換し直してみてください。\n"); } -static void dStage_SetErrorStage() { +void dStage_SetErrorStage() { // "Stage information might be corrupted. \nPlease try to re-convert. " OSReport_Error("ステージ情報が、多分ですが壊れています。\n変換し直してみてください。"); } @@ -52,8 +51,8 @@ dStage_KeepDoorInfo* dStage_GetKeepDoorInfo() { return &DoorInfo; } -static u8 dStage_isBossStage(dStage_dt_c* stageDt) { - stage_stag_info_class* pstag = stageDt->getStagInfo(); +static u8 dStage_isBossStage(dStage_dt_c* i_stage) { + stage_stag_info_class* pstag = i_stage->getStagInfo(); if (pstag == NULL) { return false; @@ -63,8 +62,8 @@ static u8 dStage_isBossStage(dStage_dt_c* stageDt) { } /* 80023F50-80023F84 01E890 0034+00 1/1 0/0 0/1 .text dStage_KeepDoorInfoInit__FP11dStage_dt_c */ -static void dStage_KeepDoorInfoInit(dStage_dt_c* param_0) { - if (dStage_isBossStage(param_0) == 0) { +static void dStage_KeepDoorInfoInit(dStage_dt_c* i_stage) { + if (dStage_isBossStage(i_stage) == 0) { DoorInfo.mNum = 0; } } @@ -76,15 +75,15 @@ static void dStage_KeepDoorInfoProc(dStage_dt_c* i_stage, stage_tgsc_class* i_dr DoorInfo.mNum = 0; return; } - if (i_drtg->mEntryNum >= (int)ARRAY_SIZE(DoorInfo.mDrTgData) || i_drtg->mEntryNum < 0) { + if (i_drtg->num >= (int)ARRAY_SIZE(DoorInfo.mDrTgData) || i_drtg->num < 0) { DoorInfo.mNum = 0; return; } - DoorInfo.mNum = i_drtg->mEntryNum; + DoorInfo.mNum = i_drtg->num; if (DoorInfo.mNum == 0) { return; } - stage_tgsc_data_class* pSrcEntry = i_drtg->mData; + stage_tgsc_data_class* pSrcEntry = i_drtg->m_entries; stage_tgsc_data_class* pDstEntry = DoorInfo.mDrTgData; for (int i = 0; i < DoorInfo.mNum; pDstEntry++, pSrcEntry++, i++) { *pDstEntry = *pSrcEntry; @@ -104,20 +103,20 @@ static void dStage_initRoomKeepDoorInfo() { /* 80024078-80024174 01E9B8 00FC+00 1/1 0/0 0/0 .text * dStage_RoomKeepDoorInfoProc__FP11dStage_dt_cP16stage_tgsc_class */ -static void dStage_RoomKeepDoorInfoProc(dStage_dt_c* param_1, stage_tgsc_class* param_2) { - if (param_2 == NULL || param_2->mEntryNum + l_RoomKeepDoorInfo.mNum >= 0x40 || param_2->mEntryNum < 0) { +static void dStage_RoomKeepDoorInfoProc(dStage_dt_c* i_stage, stage_tgsc_class* param_2) { + if (param_2 == NULL || param_2->num + l_RoomKeepDoorInfo.mNum >= 0x40 || param_2->num < 0) { return; } - if (param_2->mEntryNum == 0) { + if (param_2->num == 0) { return; } - stage_tgsc_data_class* psVar4 = param_2->mData; + stage_tgsc_data_class* psVar4 = param_2->m_entries; stage_tgsc_data_class* pTgData = &l_RoomKeepDoorInfo.mDrTgData[l_RoomKeepDoorInfo.mNum]; int iVar3 = 0; - for (int i = 0; i < param_2->mEntryNum; i++) { + for (int i = 0; i < param_2->num; i++) { *pTgData = *psVar4; - pTgData->mAngle.x &= ~0x3f; - pTgData->mAngle.x |= param_1->getRoomNo() & 0x3fU; + pTgData->base.angle.x &= ~0x3f; + pTgData->base.angle.x |= i_stage->getRoomNo() & 0x3fU; pTgData++; psVar4++; iVar3++; @@ -127,9 +126,9 @@ static void dStage_RoomKeepDoorInfoProc(dStage_dt_c* param_1, stage_tgsc_class* /* 80024174-8002419C 01EAB4 0028+00 2/0 0/0 0/0 .text * dStage_RoomKeepDoorInit__FP11dStage_dt_cPviPv */ -static int dStage_RoomKeepDoorInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_RoomKeepDoorInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { - dStage_RoomKeepDoorInfoProc(stageDt, (stage_tgsc_class*)((char*)i_data + 4)); + dStage_RoomKeepDoorInfoProc(i_stage, (stage_tgsc_class*)((char*)i_data + 4)); return 1; } @@ -149,7 +148,7 @@ void dStage_roomControl_c::init() { mOldStayNo = -1; mNextStayNo = -1; mNoChangeRoom = 0; - data_804505F0 = -1; + mRoomReadId = -1; if (dComIfGp_getStartStagePoint() >= 0 || dComIfGp_getStartStagePoint() == -4) { initZone(); @@ -207,7 +206,7 @@ dStage_roomDt_c* dStage_roomControl_c::getStatusRoomDt(int i_statusIdx) { /* ############################################################################################## */ /* 803A3B18-803A65CC 000C38 2AB4+00 2/2 0/0 0/0 .data l_objectName */ -static dStage_objectNameInf l_objectName[0x38F] = { +static dStage_objectNameInf l_objectName[] = { OBJNAME("Grass", PROC_GRASS, 0xFF), OBJNAME("kusax1", PROC_GRASS, 0xFF), OBJNAME("kusax7", PROC_GRASS, 0xFF), @@ -1091,6 +1090,14 @@ static dStage_objectNameInf l_objectName[0x38F] = { OBJNAME("d_act30", PROC_DEMO00, 0x1E), OBJNAME("d_act31", PROC_DEMO00, 0x1F), OBJNAME("TLogo", PROC_TITLE, 0xFF), +#ifdef DEBUG + OBJNAME("unitC00", PROC_Obj_TestCube, 0xFF), + OBJNAME("unitS00", PROC_Obj_TestCube, 0xFF), + OBJNAME("unitCy0", PROC_Obj_TestCube, 0xFF), + OBJNAME("damCps", PROC_Obj_DamCps, 0xFF), + OBJNAME("railDrw", PROC_PATH_LINE, 0xFF), + OBJNAME("sdoor", PROC_SPIRAL_DOOR, 0xFF), +#endif OBJNAME("ClearB", PROC_Obj_Cboard, 0xFF), OBJNAME("Bg", PROC_BG, 0xFF), OBJNAME("Boom", PROC_BOOMERANG, 0xFF), @@ -1105,7 +1112,9 @@ static dStage_objectNameInf l_objectName[0x38F] = { OBJNAME("mvbg_a", PROC_BG_OBJ, 0xFF), OBJNAME("burnBox", PROC_Obj_BurnBox, 0xFF), OBJNAME("stnMark", PROC_Obj_StoneMark, 0xFF), +#ifndef DEBUG OBJNAME("Passer", PROC_NPC_PASSER, 0xFF), +#endif OBJNAME("Passer2", PROC_NPC_PASSER2, 0xFF), OBJNAME("ShopItm", PROC_ShopItem, 0xFF), OBJNAME("E_yd_lf", PROC_E_YD_LEAF, 0xFF), @@ -1189,7 +1198,7 @@ BOOL dStage_roomControl_c::checkRoomDisp(int i_roomNo) const { /* 8002451C-8002471C 01EE5C 0200+00 2/2 0/0 0/2 .text loadRoom__20dStage_roomControl_cFiPUcb */ int dStage_roomControl_c::loadRoom(int roomCount, u8* rooms, bool param_2) { - if (data_804505F0 < 0 && mNoChangeRoom != 0) { + if (mRoomReadId < 0 && mNoChangeRoom != 0) { return 0; } @@ -1273,20 +1282,16 @@ void dStage_roomControl_c::zoneCountCheck(int i_roomNo) const { setStayNo(i_roomNo); } -stage_stag_info_class* dStage_stageDt_c::getStagInfo() const { - return mStagInfo; -} - JKRExpHeap* dStage_roomControl_c::createMemoryBlock(int i_blockIdx, u32 i_heapSize) { if (mMemoryBlock[i_blockIdx] == NULL) { - mMemoryBlock[i_blockIdx] = JKRExpHeap::create(i_heapSize, mDoExt_getArchiveHeap(), false); + mMemoryBlock[i_blockIdx] = JKRCreateExpHeap(i_heapSize, mDoExt_getArchiveHeap(), false); } return mMemoryBlock[i_blockIdx]; } void dStage_roomControl_c::destroyMemoryBlock() { - for (int i = 0; i < (int)ARRAY_SIZE(mMemoryBlock); i++) { + for (int i = 0; i < MEMORY_BLOCK_MAX; i++) { if (mMemoryBlock[i] != NULL) { mDoExt_destroyExpHeap(mMemoryBlock[i]); mMemoryBlock[i] = NULL; @@ -1296,11 +1301,13 @@ void dStage_roomControl_c::destroyMemoryBlock() { /* 8002490C-80024940 01F24C 0034+00 1/1 1/1 0/2 .text setArcBank__20dStage_roomControl_cFiPCc */ void dStage_roomControl_c::setArcBank(int i_bank, char const* bankName) { + JUT_ASSERT(1053, 0 <= i_bank && i_bank < 32); strncpy(&mArcBank[i_bank][0], bankName, 9); } /* 80024940-80024954 01F280 0014+00 1/1 1/1 0/1 .text getArcBank__20dStage_roomControl_cFi */ char* dStage_roomControl_c::getArcBank(int i_bank) { + JUT_ASSERT(1067, 0 <= i_bank && i_bank < 32); return mArcBank[i_bank]; } @@ -1318,6 +1325,7 @@ bool dStage_roomControl_c::resetArchiveBank(int i_bank) { if (syncStatus > 0) { return 0; } + OS_REPORT(">>>>>>>>>>> delete Bank[%d] : %s\n", i, bank); dComIfG_deleteObjectResMain(bank); setArcBank(i, ""); } @@ -1329,7 +1337,9 @@ bool dStage_roomControl_c::resetArchiveBank(int i_bank) { /* 80024A34-80024ABC 01F374 0088+00 1/1 0/0 0/2 .text * create__Q220dStage_roomControl_c9roomDzs_cFUc */ void dStage_roomControl_c::roomDzs_c::create(u8 i_num) { + JUT_ASSERT(1112, !m_num && 0 < i_num && i_num < 64); m_dzs = new (mDoExt_getArchiveHeap(), -4) void*[i_num]; + JUT_ASSERT(1114, m_dzs != 0); if (m_dzs != NULL) { u32** dzs = (u32**)m_dzs; @@ -1359,27 +1369,32 @@ void dStage_roomControl_c::roomDzs_c::remove() { /* 80024B44-80024C1C 01F484 00D8+00 1/1 0/0 0/1 .text add__Q220dStage_roomControl_c9roomDzs_cFUcUc */ -void* dStage_roomControl_c::roomDzs_c::add(u8 i_num, u8 roomNo) { +void* dStage_roomControl_c::roomDzs_c::add(u8 i_no, u8 roomNo) { if (m_num == 0) { return NULL; } - void** dzs = m_dzs; - if (dzs[i_num] == NULL) { + JUT_ASSERT(1160, i_no < m_num); + void** dzs = m_dzs + i_no; + if (*dzs == NULL) { char dzsName[20]; sprintf(dzsName, "%s/room%d.dzs", dComIfGp_getStartStageName(), roomNo); + JUT_ASSERT(1167, strlen(dzsName) <= sizeof(dzsName)); u32 expandSize = dLib_getExpandSizeFromAramArchive(dComIfGp_getFieldMapArchive2(), (const char*)dzsName); - void* dzs_buf = mDoExt_getArchiveHeap()->alloc(expandSize, -0x20); - dzs[i_num] = dzs_buf; + JUT_ASSERT(1172, expandSize); + OS_REPORT("@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ <%s> <%d>\n", dzsName, expandSize); + *dzs = mDoExt_getArchiveHeap()->alloc(expandSize, -0x20); + JUT_ASSERT(1179, *dzs != 0); - if (dzs[i_num] != NULL) { - dComIfGp_getFieldMapArchive2()->readResource(dzs[i_num], expandSize, dzsName); + if (*dzs != NULL) { + u32 readSize = dComIfGp_getFieldMapArchive2()->readResource(*dzs, expandSize, dzsName); + JUT_ASSERT(1186, readSize <= expandSize); } } - return dzs[i_num]; + return *dzs; } void dStage_stageDt_c::init() { @@ -1401,7 +1416,7 @@ void dStage_stageDt_c::init() { mSclsInfo = NULL; mPntInfo = NULL; mPathInfo = NULL; - mPnt2Inf = NULL; + mPnt2Info = NULL; mPath2Info = NULL; mSoundInf = NULL; mSoundInfCL = NULL; @@ -1409,13 +1424,19 @@ void dStage_stageDt_c::init() { mMemoryConfig = NULL; mMemoryMap = NULL; mMulti = NULL; - mTreasure = NULL; + mTresure = NULL; mDMap = NULL; mDrTg = NULL; mDoor = NULL; mElst = NULL; mWorldRollAngleX = 0; mWorldRollDirAngleY = 0; +#ifdef DEBUG + mPaletteNumInfo = 0; + mPselectNumInfo = 0; + mVrboxNumInfo = 0; + mPlightNumInfo = 0; +#endif } void dStage_roomDt_c::initFileList2() { @@ -1440,10 +1461,13 @@ void dStage_roomDt_c::init() { mSoundInfCL = NULL; mSclsInfo = NULL; mLbnk = NULL; - mTreasure = NULL; + mTresure = NULL; mDrTg = NULL; mDoor = NULL; mFloorInfo = NULL; +#ifdef DEBUG + field_0x60 = 0; +#endif } /* 80024D10-80024DB0 01F650 00A0+00 1/1 0/0 0/0 .text dStage_roomInit__Fi */ @@ -1451,26 +1475,16 @@ static int dStage_roomInit(int i_roomNo) { dComIfGp_roomControl_setStayNo(i_roomNo); roomRead_class* room = dComIfGp_getStageRoom(); - if (room != NULL && room->field_0x0 > i_roomNo) { - int time_pass = dStage_roomRead_dt_c_GetTimePass(*room->field_0x4[i_roomNo]); - dComIfGp_roomControl_setTimePass(time_pass); + if (room != NULL && room->num > i_roomNo) { + dComIfGp_roomControl_setTimePass(dStage_roomRead_dt_c_GetTimePass(*room->m_entries[i_roomNo])); - return dComIfGp_roomControl_loadRoom(room->field_0x4[i_roomNo]->field_0x0, - room->field_0x4[i_roomNo]->field_0x4, true); + return dComIfGp_roomControl_loadRoom(room->m_entries[i_roomNo]->num, + room->m_entries[i_roomNo]->m_rooms, true); } return 1; } -/* 80024DB0-80024DB8 01F6F0 0008+00 2/2 0/0 0/0 .text SetTimePass__20dStage_roomControl_cFi */ -void dStage_roomControl_c::SetTimePass(int i_timepass) { - m_time_pass = i_timepass; -} - -roomRead_class* dStage_stageDt_c::getRoom() const { - return mRoom; -} - dStage_objectNameInf* dStage_searchName(char const* objName) { dStage_objectNameInf* obj = l_objectName; @@ -1481,6 +1495,7 @@ dStage_objectNameInf* dStage_searchName(char const* objName) { obj++; } + OS_REPORT("オブジェクト名無し!!<%s>\n", objName); return NULL; } @@ -1527,7 +1542,7 @@ s8 dStage_roomControl_c::mOldStayNo; s8 dStage_roomControl_c::mNextStayNo; /* 80450D67 0001+00 data_80450D67 None */ -s8 dStage_roomControl_c::m_time_pass; +u8 dStage_roomControl_c::m_time_pass; /* 80450D68-80450D6C 000268 0004+00 2/2 2/2 1/1 .sbss None */ u8 dStage_roomControl_c::mNoChangeRoom; @@ -1538,28 +1553,29 @@ dStage_roomControl_c::nameData* dStage_roomControl_c::mArcBankName; /* 80450D70-80450D74 000270 0004+00 1/1 1/1 0/0 .sbss mArcBankData__20dStage_roomControl_c */ dStage_roomControl_c::bankData* dStage_roomControl_c::mArcBankData; +/* 804505F0-804505F8 0008+00 s=0 e=5 z=1 None .sdata None */ +s8 dStage_roomControl_c::mRoomReadId = 0xFF; + /* 80024EFC-80024F98 01F83C 009C+00 7/7 0/0 0/0 .text * dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class */ static void dStage_actorCreate(stage_actor_data_class* i_actorData, fopAcM_prm_class* i_actorPrm) { - dStage_objectNameInf* actorInf = dStage_searchName(i_actorData->mName); - fopAc_ac_c* actor; + dStage_objectNameInf* actorInf = dStage_searchName(i_actorData->name); if (actorInf == NULL) { - JKRHeap::free(i_actorPrm, NULL); + OS_REPORT("\x1B""[43;30mStage Actor Name Nothing !! <%s>\n\x1B[m", i_actorData->name); + JKRFree(i_actorPrm); } else { i_actorPrm->subtype = actorInf->mSubtype; - s16 actor_name = actorInf->mProcName; - - if (actor_name == PROC_SUSPEND) { - actor = (fopAc_ac_c*)fopAcM_FastCreate(actor_name, NULL, NULL, i_actorPrm); + if (actorInf->mProcName == PROC_SUSPEND) { + fopAc_ac_c* actor = (fopAc_ac_c*)fopAcM_FastCreate(actorInf->mProcName, NULL, NULL, i_actorPrm); if (actor != NULL) { fopAcM_delete(actor); } - } else { - layer_class* curLayer = fpcLy_CurrentLayer(); - fpcSCtRq_Request(curLayer, actor_name, NULL, NULL, i_actorPrm); + return; } + + fopAcM_create(actorInf->mProcName, NULL, i_actorPrm); } } @@ -1567,50 +1583,55 @@ static void dStage_actorCreate(stage_actor_data_class* i_actorData, fopAcM_prm_c * dStage_cameraCreate__FP24stage_camera2_data_classii */ static int dStage_cameraCreate(stage_camera2_data_class* i_cameraData, int i_cameraIdx, int param_2) { - i_cameraData = static_cast(cMl::memalignB(-4, 0x18)); + s16 procname = PROC_CAMERA; + if (procname < 0) { + return 0; + } + fopCamM_prm_class* params = (fopCamM_prm_class*)cMl::memalignB(-4, sizeof(fopCamM_prm_class)); - if (i_cameraData != NULL) { - i_cameraData->field_0x0.field_0x4.x = 0.0f; - i_cameraData->field_0x0.field_0x4.y = 0.0f; - i_cameraData->field_0x0.field_0x4.x = 0.0f; - i_cameraData->field_0x0.field_0x0 = param_2; - fopCamM_Create(i_cameraIdx, PROC_CAMERA, i_cameraData); + if (params != NULL) { + params->base.position.x = 0.0f; + params->base.position.y = 0.0f; + params->base.position.x = 0.0f; + params->base.parameters = param_2; + fopCamM_Create(i_cameraIdx, procname, params); } return 1; } -stage_actor_class* dStage_roomDt_c::getPlayer() const { - return mPlayer; -} - -stage_actor_class* dStage_stageDt_c::getPlayer() const { - return mPlayer; +static void dummy() { + // Needed to fix weak function order. + // This is likely caused by the dStage_chkPlayerId function from TWW using these functions. + // dStage_chkPlayerId isn't used in TP, so it gets stripped out, but the effect it has on weak order remains. + dComIfGp_getStage()->getPlayer(); + dComIfGp_roomControl_getStatusRoomDt(0)->getPlayer(); } /* 80025014-800252B8 01F954 02A4+00 2/0 0/0 0/0 .text dStage_playerInit__FP11dStage_dt_cPviPv */ -static int dStage_playerInit(dStage_dt_c* stageDt, void* i_data, int num, void* param_3) { +static 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->mEntries; - stageDt->setPlayer(player); - stageDt->setPlayerNum(num); + stage_actor_data_class* player_data = player->m_entries; + i_stage->setPlayer(player); + i_stage->setPlayerNum(num); - if (dComIfGp_getPlayer(0) != NULL || dComIfGp_getStartStageRoomNo() != stageDt->getRoomNo()) { + if (dComIfGp_getPlayer(0) != NULL || dComIfGp_getStartStageRoomNo() != i_stage->getRoomNo()) { return 1; } fopAcM_prm_class* appen = fopAcM_CreateAppend(); + JUT_ASSERT(1586, appen != 0); int point = dComIfGp_getStartStagePoint(); u32 roomParam = dComIfGs_getRestartRoomParam(); if (point == -2 || point == -3) { - appen->parameters = dComIfGs_getTurnRestartParam(); - appen->position = dComIfGs_getTurnRestartPos(); - appen->angle.set(0, dComIfGs_getTurnRestartAngleY(), -0x100); + appen->base.parameters = dComIfGs_getTurnRestartParam(); + appen->base.position = dComIfGs_getTurnRestartPos(); + appen->base.angle.set(0, dComIfGs_getTurnRestartAngleY(), -0x100); } else if (point == -1) { - appen->parameters = roomParam; - appen->position = dComIfGs_getRestartRoomPos(); - appen->angle.set(0, dComIfGs_getRestartRoomAngleY(), -0x100); + appen->base.parameters = roomParam; + appen->base.position = dComIfGs_getRestartRoomPos(); + appen->base.angle.set(0, dComIfGs_getRestartRoomAngleY(), -0x100); } else { int unk; if (point == -4) { @@ -1619,39 +1640,42 @@ static int dStage_playerInit(dStage_dt_c* stageDt, void* i_data, int num, void* unk = point; } - for (int i = 0; i < num; i++) { - if ((u8)player_data->mAngle.z == unk) { + int i; + for (i = 0; i < num; i++) { + if ((u8)player_data->base.angle.z == unk) { break; } player_data++; } + if (i == num) { + OS_REPORT_ERROR("プレイヤーが発見できません。[No.%d]\n切り替えの情報や処理の確認をお願いします。\n", point); + } + JUT_ASSERT(1636, i != num); - appen->parameters = player_data->mParameter; - appen->position = player_data->mSpawnPos; - appen->angle = player_data->mAngle; - appen->setId = player_data->mEnemyNo; + appen->base = player_data->base; if (point == -4) { - appen->parameters = dComIfGs_getTurnRestartParam(); + appen->base.parameters = dComIfGs_getTurnRestartParam(); } else if (roomParam != 0) { - appen->parameters = (roomParam & 0xFFFFFFC0) | (dComIfGp_getStartStageRoomNo() & 0x3F); + appen->base.parameters = (roomParam & 0xFFFFFFC0) | (dComIfGp_getStartStageRoomNo() & 0x3F); } else if (roomParam == 0) { - appen->parameters = - (appen->parameters & 0xFFFFFFC0) | (dComIfGp_getStartStageRoomNo() & 0x3F); + appen->base.parameters = + (appen->base.parameters & 0xFFFFFFC0) | (dComIfGp_getStartStageRoomNo() & 0x3F); } } dComIfGs_setRestartRoomParam(0); - appen->setId = 0xFFFF; + appen->base.setID = 0xFFFF; appen->room_no = -1; - dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->parameters & 0x3F, + dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->base.parameters & 0x3F, dComIfGp_getStartStagePoint(), dComIfGp_getStartStageLayer()); dStage_actorCreate(player_data, appen); - base_process_class* ac = + base_process_class* stageProc = (base_process_class*)fopScnM_SearchByID(dStage_roomControl_c::getProcID()); - if (ac->name == PROC_PLAY_SCENE) { + JUT_ASSERT(1683, stageProc != 0); + if (fpcM_GetName(stageProc) == PROC_PLAY_SCENE) { if (strcmp(dComIfGp_getStartStageName(), "S_MV000")) { fopMsgM_Create(PROC_METER2, NULL, NULL); } @@ -1661,10 +1685,10 @@ static int dStage_playerInit(dStage_dt_c* stageDt, void* i_data, int num, void* } /* 800252B8-80025308 01FBF8 0050+00 1/0 0/0 0/0 .text dStage_cameraInit__FP11dStage_dt_cPviPv */ -static int dStage_cameraInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { +static int dStage_cameraInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { stage_camera_class* camera = (stage_camera_class*)((char*)i_data + 4); - stageDt->setCamera(camera); - dStage_cameraCreate(camera->mEntries, 0, 0); + i_stage->setCamera(camera); + dStage_cameraCreate(camera->m_entries, 0, 0); return 1; } @@ -1686,13 +1710,13 @@ static int dStage_arrowInit(dStage_dt_c* i_stage, void* i_data, int param_2, voi 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->field_0x0 == 0 || map_info_p->mData == NULL) { + 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->mData; + stage_map_info_class* data_p = map_info_p->m_entries; - for (int i = 0; i < map_info_p->field_0x0; i++) { + for (int i = 0; i < map_info_p->num; i++) { if (param_0 == data_p->field_0x35) { return data_p; } @@ -1703,23 +1727,18 @@ stage_map_info_class* dStage_roomDt_c::getMapInfo2(int param_0) const { return NULL; } -/* 800253FC-80025404 01FD3C 0008+00 1/0 0/0 0/0 .text getMapInfoBase__15dStage_roomDt_cCFv */ -stage_map_info_dummy_class* dStage_roomDt_c::getMapInfoBase() const { - return mMapInfoBase; -} - /* 80025404-80025490 01FD44 008C+00 1/0 0/0 0/0 .text getMapInfo2__16dStage_stageDt_cCFi */ 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->field_0x0 == 0 || map_info_p->mData == NULL) { + 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->mData; + stage_map_info_class* data_p = map_info_p->m_entries; - for (int i = 0; i < map_info_p->field_0x0; i++) { + for (int i = 0; i < map_info_p->num; i++) { if (param_0 == data_p->field_0x35) { return data_p; } @@ -1730,67 +1749,62 @@ stage_map_info_class* dStage_stageDt_c::getMapInfo2(int param_0) const { return NULL; } -/* 80025490-80025498 01FDD0 0008+00 1/0 0/0 0/0 .text getMapInfoBase__16dStage_stageDt_cCFv */ -stage_map_info_dummy_class* dStage_stageDt_c::getMapInfoBase() const { - return mMapInfoBase; -} - /* 80025498-800254CC 01FDD8 0034+00 1/0 0/0 0/0 .text dStage_paletteInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_paletteInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { +static int dStage_paletteInfoInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { dStage_nodeHeader* pal_info = (dStage_nodeHeader*)(i_data); - stageDt->setPaletteInfo((stage_palette_info_class*)pal_info->m_offset); + i_stage->setPaletteInfo((stage_palette_info_class*)pal_info->m_offset); return 1; } /* 800254CC-80025500 01FE0C 0034+00 1/0 0/0 0/1 .text dStage_pselectInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_pselectInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { +static int dStage_pselectInfoInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { dStage_nodeHeader* psel_info = (dStage_nodeHeader*)(i_data); - stageDt->setPselectInfo((stage_pselect_info_class*)psel_info->m_offset); + i_stage->setPselectInfo((stage_pselect_info_class*)psel_info->m_offset); return 1; } /* 80025500-80025534 01FE40 0034+00 1/0 0/0 0/1 .text dStage_envrInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_envrInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { +static int dStage_envrInfoInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { dStage_nodeHeader* envr_info = (dStage_nodeHeader*)(i_data); - stageDt->setEnvrInfo((stage_envr_info_class*)envr_info->m_offset); + i_stage->setEnvrInfo((stage_envr_info_class*)envr_info->m_offset); return 1; } /* 80025534-8002556C 01FE74 0038+00 1/0 0/0 0/2 .text dStage_filiInfo2Init__FP11dStage_dt_cPviPv */ -static int dStage_filiInfo2Init(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_filiInfo2Init(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { if (entryNum == 0) { return 1; } - dStage_nodeHeader* fili_info = (dStage_nodeHeader*)(i_data); - dStage_roomControl_c::setFileList2(stageDt->getRoomNo(), - (dStage_FileList2_dt_c*)fili_info->m_offset); + dStage_FileList2_c* fili_header = (dStage_FileList2_c*)((char*)i_data + 4); + dStage_roomControl_c::setFileList2(i_stage->getRoomNo(), fili_header->entries); return 1; } /* 8002556C-8002558C 01FEAC 0020+00 1/0 0/0 0/0 .text * dStage_fieldMapFiliInfo2Init__FP11dStage_dt_cPviPv */ -static int dStage_fieldMapFiliInfo2Init(dStage_dt_c* param_0, void* i_data, int i_entryNum, +static int dStage_fieldMapFiliInfo2Init(dStage_dt_c* i_stage, void* i_data, int i_entryNum, void* param_3) { if (i_entryNum == 0) { return 1; } - dStage_nodeHeader* fili_info = (dStage_nodeHeader*)(i_data); - ((dMenu_Fmap_data_c*)param_0)->setFileList2((dStage_FileList2_dt_c*)fili_info->m_offset); + dMenu_Fmap_data_c* data = (dMenu_Fmap_data_c*)i_stage; + dStage_FileList2_c* fili_header = (dStage_FileList2_c*)((char*)i_data + 4); + data->setFileList2(fili_header->entries); return 1; } /* 8002558C-800255E0 01FECC 0054+00 2/0 0/0 0/0 .text dStage_filiInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_filiInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_filiInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { if (entryNum == 0) { - stageDt->setFileListInfo(NULL); + i_stage->setFileListInfo(NULL); } else { dStage_nodeHeader* fili_info = (dStage_nodeHeader*)(i_data); - stageDt->setFileListInfo((dStage_FileList_dt_c*)fili_info->m_offset); + i_stage->setFileListInfo((dStage_FileList_dt_c*)fili_info->m_offset); } return 1; @@ -1798,39 +1812,39 @@ static int dStage_filiInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, /* 800255E0-80025614 01FF20 0034+00 2/0 0/0 0/0 .text dStage_vrboxInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_vrboxInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_vrboxInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { dStage_nodeHeader* vrbox_info = (dStage_nodeHeader*)(i_data); - stageDt->setVrboxInfo((stage_vrbox_info_class*)vrbox_info->m_offset); + i_stage->setVrboxInfo((stage_vrbox_info_class*)vrbox_info->m_offset); return 1; } /* 80025614-80025648 01FF54 0034+00 1/0 0/0 0/0 .text * dStage_vrboxcolInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_vrboxcolInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_vrboxcolInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { dStage_nodeHeader* vrcol_info = (dStage_nodeHeader*)(i_data); - stageDt->setVrboxcolInfo((stage_vrboxcol_info_class*)vrcol_info->m_offset); + i_stage->setVrboxcolInfo((stage_vrboxcol_info_class*)vrcol_info->m_offset); return 1; } /* 80025648-800256AC 01FF88 0064+00 2/0 0/0 0/0 .text dStage_plightInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_plightInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_plightInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { dStage_nodeHeader* plight_info = (dStage_nodeHeader*)(i_data); - stageDt->setPlightInfo((stage_plight_info_class*)plight_info->m_offset); - stageDt->setPlightNumInfo(entryNum); + i_stage->setPlightInfo((stage_plight_info_class*)plight_info->m_offset); + i_stage->setPlightNumInfo(entryNum); return 1; } /* 800256AC-80025738 01FFEC 008C+00 1/0 0/0 0/0 .text dStage_lgtvInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_lgtvInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setLightVecInfoNum(entryNum); +static int dStage_lgtvInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setLightVecInfoNum(entryNum); if (entryNum == 0) { - stageDt->setLightVecInfo(NULL); + i_stage->setLightVecInfo(NULL); } else { dStage_nodeHeader* lgtv_info = (dStage_nodeHeader*)(i_data); - stageDt->setLightVecInfo((stage_pure_lightvec_info_class*)lgtv_info->m_offset); + i_stage->setLightVecInfo((stage_pure_lightvec_info_class*)lgtv_info->m_offset); } return 1; @@ -1839,24 +1853,25 @@ static int dStage_lgtvInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, /* 80025738-80025744 020078 000C+00 0/0 1/1 0/0 .text * dStage_stagInfo_GetParticleNo__FP21stage_stag_info_classi */ u32 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer) { + JUT_ASSERT(2220, 0 <= layer && layer < 15); return p_info->mParticleNo[layer]; } /* 80025744-8002582C 020084 00E8+00 1/0 0/0 0/0 .text dStage_stagInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_stagInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_stagInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { dStage_nodeHeader* stag_info = (dStage_nodeHeader*)(i_data); - stageDt->setStagInfo((stage_stag_info_class*)stag_info->m_offset); + i_stage->setStagInfo((stage_stag_info_class*)stag_info->m_offset); - if (!dStage_isBossStage(stageDt)) { + if (!dStage_isBossStage(i_stage)) { dComIfG_deleteStageRes("Xtg_00"); dComIfGp_resetOldMulti(); } - int stageNo = i_dStage_stagInfo_GetSaveTbl(stageDt->getStagInfo()); + int stageNo = dStage_stagInfo_GetSaveTbl(i_stage->getStagInfo()); dComIfGs_getSave(stageNo); g_save_bit_HIO.init(); dComIfGs_initDan(stageNo); - dStage_KeepDoorInfoInit(stageDt); + dStage_KeepDoorInfoInit(i_stage); return 1; } @@ -1867,29 +1882,26 @@ void dStage_stageDt_c::resetOldMulti() { } /* 80025838-8002586C 020178 0034+00 2/0 0/0 0/0 .text dStage_sclsInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_sclsInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setSclsInfo((stage_scls_info_dummy_class*)((char*)i_data + 4)); +static int dStage_sclsInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setSclsInfo((stage_scls_info_dummy_class*)((char*)i_data + 4)); return 1; } /* 8002586C-80025958 0201AC 00EC+00 1/0 0/0 0/0 .text * dStage_actorCommonLayerInit__FP11dStage_dt_cPviPv */ -static int dStage_actorCommonLayerInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_actorCommonLayerInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); - stage_actor_data_class* actor_data = actor->mEntries; + stage_actor_data_class* actor_data = actor->m_entries; - for (int i = 0; i < actor->mEntryNum; i++) { - if (!dComIfGs_isActor(actor_data->mEnemyNo, stageDt->getRoomNo())) { - if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + for (int i = 0; i < actor->num; i++) { + if (!dComIfGs_isActor(actor_data->base.setID, i_stage->getRoomNo())) { + if (!daSus_c::check(i_stage->getRoomNo(), actor_data->base.position)) { fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->parameters = actor_data->mParameter; - appen->position = actor_data->mSpawnPos; - appen->angle = actor_data->mAngle; - appen->setId = actor_data->mEnemyNo; - appen->room_no = stageDt->getRoomNo(); + appen->base = actor_data->base; + appen->room_no = (int)i_stage->getRoomNo(); dStage_actorCreate(actor_data, appen); } } @@ -1902,49 +1914,42 @@ static int dStage_actorCommonLayerInit(dStage_dt_c* stageDt, void* i_data, int e /* 80025958-80025A38 020298 00E0+00 1/0 0/0 0/0 .text * dStage_tgscCommonLayerInit__FP11dStage_dt_cPviPv */ -static int dStage_tgscCommonLayerInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_tgscCommonLayerInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); - stage_tgsc_data_class* actor_data = actor->mData; + stage_tgsc_data_class* tgsc_data = actor->m_entries; - for (int i = 0; i < actor->mEntryNum; i++) { - if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + for (int i = 0; i < actor->num; i++) { + stage_actor_data_class* actor_data = (stage_actor_data_class*)tgsc_data; + if (!daSus_c::check(i_stage->getRoomNo(), actor_data->base.position)) { fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->parameters = actor_data->mParameter; - appen->position = actor_data->mSpawnPos; - appen->angle = actor_data->mAngle; - appen->setId = actor_data->mEnemyNo; - appen->room_no = stageDt->getRoomNo(); - appen->scale[0] = actor_data->field_0x20[0]; - appen->scale[1] = actor_data->field_0x20[1]; - appen->scale[2] = actor_data->field_0x22; + appen->base = tgsc_data->base; + appen->room_no = (int)i_stage->getRoomNo(); + appen->scale = tgsc_data->scale; dStage_actorCreate(actor_data, appen); } } - actor_data++; + tgsc_data++; } return 1; } /* 80025A38-80025B24 020378 00EC+00 3/2 0/0 0/0 .text dStage_actorInit__FP11dStage_dt_cPviPv */ -static int dStage_actorInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_actorInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); - stage_actor_data_class* actor_data = actor->mEntries; + stage_actor_data_class* actor_data = actor->m_entries; - for (int i = 0; i < actor->mEntryNum; i++) { - if (!dComIfGs_isActor(actor_data->mEnemyNo, stageDt->getRoomNo())) { - if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + for (int i = 0; i < actor->num; i++) { + if (!dComIfGs_isActor(actor_data->base.setID, i_stage->getRoomNo())) { + if (!daSus_c::check(i_stage->getRoomNo(), actor_data->base.position)) { fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->parameters = actor_data->mParameter; - appen->position = actor_data->mSpawnPos; - appen->angle = actor_data->mAngle; - appen->setId = actor_data->mEnemyNo; - appen->room_no = stageDt->getRoomNo(); + appen->base = actor_data->base; + appen->room_no = (int)i_stage->getRoomNo(); dStage_actorCreate(actor_data, appen); } } @@ -1957,21 +1962,18 @@ static int dStage_actorInit(dStage_dt_c* stageDt, void* i_data, int entryNum, vo /* 80025B24-80025BFC 020464 00D8+00 1/0 0/0 0/0 .text * dStage_actorInit_always__FP11dStage_dt_cPviPv */ -static int dStage_actorInit_always(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_actorInit_always(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { stage_actor_class* actor = (stage_actor_class*)((int*)i_data + 1); - stage_actor_data_class* actor_data = actor->mEntries; + stage_actor_data_class* actor_data = actor->m_entries; - for (int i = 0; i < actor->mEntryNum; i++) { - if (!dComIfGs_isActor(actor_data->mEnemyNo, stageDt->getRoomNo())) { + for (int i = 0; i < actor->num; i++) { + if (!dComIfGs_isActor(actor_data->base.setID, i_stage->getRoomNo())) { fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->parameters = actor_data->mParameter; - appen->position = actor_data->mSpawnPos; - appen->angle = actor_data->mAngle; - appen->setId = actor_data->mEnemyNo; - appen->room_no = stageDt->getRoomNo(); + appen->base = actor_data->base; + appen->room_no = (int)i_stage->getRoomNo(); dStage_actorCreate(actor_data, appen); } } @@ -1982,68 +1984,60 @@ static int dStage_actorInit_always(dStage_dt_c* stageDt, void* i_data, int entry } /* 80025BFC-80025CDC 02053C 00E0+00 4/1 0/0 0/0 .text dStage_tgscInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_tgscInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_tgscInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); - stage_tgsc_data_class* actor_data = actor->mData; + stage_tgsc_data_class* tgsc_data = actor->m_entries; - for (int i = 0; i < actor->mEntryNum; i++) { - if (!daSus_c::check(stageDt->getRoomNo(), actor_data->mSpawnPos)) { + for (int i = 0; i < actor->num; i++) { + stage_actor_data_class* actor_data = (stage_actor_data_class*)tgsc_data; + if (!daSus_c::check(i_stage->getRoomNo(), actor_data->base.position)) { fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->parameters = actor_data->mParameter; - appen->position = actor_data->mSpawnPos; - appen->angle = actor_data->mAngle; - appen->setId = actor_data->mEnemyNo; - appen->room_no = stageDt->getRoomNo(); - appen->scale[0] = actor_data->field_0x20[0]; - appen->scale[1] = actor_data->field_0x20[1]; - appen->scale[2] = actor_data->field_0x22; + appen->base = actor_data->base; + appen->room_no = (int)i_stage->getRoomNo(); + appen->scale = tgsc_data->scale; dStage_actorCreate(actor_data, appen); } } - actor_data++; + tgsc_data++; } return 1; } /* 80025CDC-80025DA8 02061C 00CC+00 1/1 0/0 0/0 .text dStage_doorInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_doorInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_doorInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); - stage_tgsc_data_class* actor_data = actor->mData; + stage_tgsc_data_class* tgsc_data = actor->m_entries; - for (int i = 0; i < actor->mEntryNum; i++) { + for (int i = 0; i < actor->num; i++) { + stage_actor_data_class* actor_data = (stage_actor_data_class*)tgsc_data; fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->parameters = actor_data->mParameter; - appen->position = actor_data->mSpawnPos; - appen->angle = actor_data->mAngle; - appen->setId = actor_data->mEnemyNo; - appen->room_no = stageDt->getRoomNo(); - appen->scale[0] = actor_data->field_0x20[0]; - appen->scale[1] = actor_data->field_0x20[1]; - appen->scale[2] = actor_data->field_0x22; + appen->base = actor_data->base; + appen->room_no = (int)i_stage->getRoomNo(); + appen->scale = tgsc_data->scale; dStage_actorCreate(actor_data, appen); } - actor_data++; + tgsc_data++; } return 1; } /* 80025DA8-80025E40 0206E8 0098+00 2/0 0/0 0/0 .text dStage_roomReadInit__FP11dStage_dt_cPviPv */ -static int dStage_roomReadInit(dStage_dt_c* param_0, void* i_data, int param_2, void* param_3) { +static int dStage_roomReadInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { roomRead_class* p_node = (roomRead_class*)((int*)i_data + 1); - roomRead_data_class** rtbl = p_node->field_0x4; + roomRead_data_class** rtbl = p_node->m_entries; - param_0->setRoom(p_node); + i_stage->setRoom(p_node); - for (int i = 0; i < p_node->field_0x0; i++) { + for (int i = 0; i < p_node->num; i++) { if ((int)rtbl[i] < 0x80000000) { rtbl[i] = (roomRead_data_class*)((int)rtbl[i] + (int)param_3); - rtbl[i]->field_0x4 = (u8*)((int)rtbl[i]->field_0x4 + (int)param_3); + rtbl[i]->m_rooms = (u8*)((int)rtbl[i]->m_rooms + (int)param_3); } } @@ -2053,29 +2047,29 @@ static int dStage_roomReadInit(dStage_dt_c* param_0, void* i_data, int param_2, /* 80025E40-80025E70 020780 0030+00 0/0 1/1 0/0 .text * dStage_roomRead_dt_c_GetReverbStage__FR14roomRead_classi */ s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class& room, int index) { - if (index < 0 || index >= room.field_0x0) { + if (index < 0 || index >= room.num) { index = 0; } - return dStage_roomRead_dt_c_GetReverb(*room.field_0x4[index]); + return dStage_roomRead_dt_c_GetReverb(*room.m_entries[index]); } /* 80025E70-80025EA4 0207B0 0034+00 1/0 0/0 0/0 .text dStage_ppntInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_ppntInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setPntInfo((dStage_dPnt_c*)((char*)i_data + 4)); +static int dStage_ppntInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setPntInfo((dStage_dPnt_c*)((char*)i_data + 4)); return 1; } /* 80025EA4-80025F44 0207E4 00A0+00 1/0 0/0 0/0 .text dStage_pathInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_pathInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { +static int dStage_pathInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { dStage_dPath_c* path_c = (dStage_dPath_c*)((char*)i_data + 4); dPath* path = path_c->m_path; - stageDt->setPathInfo(path_c); + i_stage->setPathInfo(path_c); for (int i = 0; i < path_c->m_num; i++) { if ((u32)path->m_points < 0x80000000) { - path->m_points = (dPnt*)((u32)path->m_points + stageDt->getPntInf()->m_pnt_offset); + path->m_points = (dPnt*)((u32)path->m_points + i_stage->getPntInf()->m_pnt_offset); } path++; } @@ -2084,18 +2078,20 @@ static int dStage_pathInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, } /* 80025F44-80025F78 020884 0034+00 2/0 0/0 0/0 .text dStage_rppnInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_rppnInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setPnt2Info((dStage_dPnt_c*)((char*)i_data + 4)); +static int dStage_rppnInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setPnt2Info((dStage_dPnt_c*)((char*)i_data + 4)); return 1; } /* 80025F78-80026018 0208B8 00A0+00 2/0 0/0 0/0 .text dStage_rpatInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_rpatInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { +static int dStage_rpatInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* param_3) { + (void)i_num; + (void)param_3; dStage_dPath_c* pStagePath = (dStage_dPath_c*)((char*)i_data + 4); dPath* pPath = pStagePath->m_path; i_stage->setPath2Info(pStagePath); - for (s32 i = 0; i < pStagePath->m_num; pPath++, i++) { + for (s32 i = 0; i < pStagePath->m_num; pPath++, i++, (void)0) { if ((u32)pPath->m_points >= 0x80000000) { continue; } @@ -2106,15 +2102,15 @@ static int dStage_rpatInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, vo /* 80026018-8002604C 020958 0034+00 1/0 0/0 0/0 .text dStage_soundInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_soundInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setSoundInf((dStage_SoundInfo_c*)((char*)i_data + 4)); +static int dStage_soundInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setSoundInf((dStage_SoundInfo_c*)((char*)i_data + 4)); return 1; } /* 8002604C-80026080 02098C 0034+00 2/0 0/0 0/0 .text dStage_soundInfoInitCL__FP11dStage_dt_cPviPv */ -static int dStage_soundInfoInitCL(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setSoundInfCL((dStage_SoundInfo_c*)((char*)i_data + 4)); +static int dStage_soundInfoInitCL(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setSoundInfCL((dStage_SoundInfo_c*)((char*)i_data + 4)); return 1; } @@ -2140,19 +2136,19 @@ static void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* fu int tblSize) { if (i_data != NULL) { for (int i = 0; i < tblSize; i++) { - dStage_fileHeader* file = ((dStage_fileHeader*)i_data); - dStage_nodeHeader* node = ((dStage_nodeHeader*)(file + 1)); + dStage_fileHeader* file = (dStage_fileHeader*)i_data; + dStage_nodeHeader* p_tno = file->m_nodes; FuncTable* nodeFunc = funcTbl + i; - for (int j = 0; j < file->chunkCount; j++) { - if ((int)node->m_tag == *(int*)nodeFunc->identifier) { + for (int j = 0; j < file->m_chunkCount; j++) { + if ((int)p_tno->m_tag == *(int*)nodeFunc->identifier) { if (nodeFunc->function != NULL) { - nodeFunc->function(i_stage, node, node->m_entryNum, i_data); + nodeFunc->function(i_stage, p_tno, p_tno->m_entryNum, i_data); } break; } - node++; + p_tno++; } } } else { @@ -2162,36 +2158,42 @@ static void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* fu /* 8002617C-800261B0 020ABC 0034+00 1/0 0/0 0/0 .text dStage_stEventInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_stEventInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setMapEventInfo((dStage_MapEventInfo_c*)((char*)i_data + 4)); +static int dStage_stEventInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setMapEventInfo((dStage_MapEventInfo_c*)((char*)i_data + 4)); return 1; } /* 800261B0-800261E4 020AF0 0034+00 1/0 0/0 0/0 .text * dStage_mapEventInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_mapEventInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_mapEventInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { - stageDt->setMapEventInfo((dStage_MapEventInfo_c*)((char*)i_data + 4)); + i_stage->setMapEventInfo((dStage_MapEventInfo_c*)((char*)i_data + 4)); return 1; } /* 800261E4-80026218 020B24 0034+00 2/0 0/0 0/0 .text dStage_floorInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_floorInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setFloorInfo((dStage_FloorInfo_c*)((char*)i_data + 4)); +static int dStage_floorInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setFloorInfo((dStage_FloorInfo_c*)((char*)i_data + 4)); return 1; } /* 80026218-80026298 020B58 0080+00 1/0 0/0 0/9 .text dStage_memaInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_memaInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) { - dStage_MemoryMap_c* pd = (dStage_MemoryMap_c*)((char*)param_1 + 4); - param_0->setMemoryMap(pd); +static int dStage_memaInfoInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { + (void)param_2; + (void)param_3; + dStage_MemoryMap_c* pd = (dStage_MemoryMap_c*)((char*)i_data + 4); + i_stage->setMemoryMap(pd); if (pd != NULL) { + OS_REPORT("Memory Block Create !\n"); u32* entry_p = pd->field_0x4; + JUT_ASSERT(3208, pd->m_num <= dStage_roomControl_c::MEMORY_BLOCK_MAX); for (int i = 0; i < pd->m_num; i++) { - dStage_roomControl_c::createMemoryBlock(i, *entry_p + 0x380); + JKRExpHeap* heap = dStage_roomControl_c::createMemoryBlock(i, *entry_p + 0x380); + JUT_ASSERT(3216, heap != 0); + OS_REPORT("\t%02d : size=%d\n", i, *entry_p); entry_p++; } } @@ -2200,9 +2202,11 @@ static int dStage_memaInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, } /* 80026298-8002631C 020BD8 0084+00 1/0 0/0 0/0 .text dStage_mecoInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_mecoInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) { - dStage_MemoryConfig_c* pd = (dStage_MemoryConfig_c*)((char*)param_1 + 4); - param_0->setMemoryConfig(pd); +static int dStage_mecoInfoInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { + (void)param_2; + (void)param_3; + dStage_MemoryConfig_c* pd = (dStage_MemoryConfig_c*)((char*)i_data + 4); + i_stage->setMemoryConfig(pd); if (pd != NULL) { dStage_MemoryConfig_data* entry_p = pd->field_0x4; @@ -2218,25 +2222,29 @@ static int dStage_mecoInfoInit(dStage_dt_c* param_0, void* param_1, int param_2, /* 8002631C-8002634C 020C5C 0030+00 2/0 0/0 0/0 .text * dStage_stageKeepTresureInit__FP11dStage_dt_cPviPv */ -static int dStage_stageKeepTresureInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_stageKeepTresureInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { - dTres_c::addData((dTres_c::list_class*)((char*)i_data + 4), stageDt->getRoomNo()); + dTres_c::list_class* tresure_p = (dTres_c::list_class*)((char*)i_data + 4); + dTres_c::addData(tresure_p, i_stage->getRoomNo()); return 1; } /* 8002634C-8002635C 020C8C 0010+00 1/0 0/0 0/0 .text * dStage_fieldMapTresureInit__FP11dStage_dt_cPviPv */ -static int dStage_fieldMapTresureInit(dStage_dt_c* i_stageDt, void* i_data, int i_entryNum, +static int dStage_fieldMapTresureInit(dStage_dt_c* i_stage, void* i_data, int i_entryNum, void* param_3) { - ((dMenu_Fmap_data_c*)i_stageDt)->setTresure((dTres_c::list_class*)((char*)i_data + 4)); + dMenu_Fmap_data_c* data = (dMenu_Fmap_data_c*)i_stage; + data->setTresure((dTres_c::list_class*)((char*)i_data + 4)); return 1; } /* 8002635C-800263A0 020C9C 0044+00 4/4 0/0 0/0 .text dStage_dt_c_offsetToPtr__FPv */ static void dStage_dt_c_offsetToPtr(void* i_data) { - dStage_nodeHeader* p_tno = (dStage_nodeHeader*)((int*)i_data + 1); + dStage_fileHeader* file = (dStage_fileHeader*)i_data; + dStage_nodeHeader* p_tno = file->m_nodes; - for (int i = 0; i < ((dStage_fileHeader*)i_data)->chunkCount; i++) { + for (int i = 0; i < file->m_chunkCount; i++) { + JUT_ASSERT(3381, p_tno->m_offset != 0); if (p_tno->m_offset != 0 && p_tno->m_offset < 0x80000000) { p_tno->m_offset += (u32)i_data; } @@ -2245,31 +2253,35 @@ static void dStage_dt_c_offsetToPtr(void* i_data) { } /* 800263A0-800263D0 020CE0 0030+00 1/0 0/0 0/0 .text dStage_mapPathInit__FP11dStage_dt_cPviPv */ -static int dStage_mapPathInit(dStage_dt_c* param_0, void* param_1, int param_2, void* param_3) { - dMpath_c::setPointer(param_0->getRoomNo(), (char*)param_1 + 4, 0); +static int dStage_mapPathInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { + dStage_nodeHeader* map_path = (dStage_nodeHeader*)((int*)i_data + 1); + dMpath_c::setPointer(i_stage->getRoomNo(), map_path, 0); return 1; } /* 800263D0-80026400 020D10 0030+00 1/0 0/0 0/0 .text * dStage_mapPathInitCommonLayer__FP11dStage_dt_cPviPv */ -static int dStage_mapPathInitCommonLayer(dStage_dt_c* param_0, void* param_1, int param_2, +static int dStage_mapPathInitCommonLayer(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { - dMpath_c::setPointer(param_0->getRoomNo(), (char*)param_1 + 4, 1); + map_path_class* map_path = (map_path_class*)((int*)i_data + 1); + dMpath_c::setPointer(i_stage->getRoomNo(), map_path, 1); return 1; } /* 80026400-8002645C 020D40 005C+00 1/0 0/0 0/0 .text * dStage_fieldMapMapPathInit__FP11dStage_dt_cPviPv */ -static int dStage_fieldMapMapPathInit(dStage_dt_c* i_stageDt, void* param_1, int param_2, +static int dStage_fieldMapMapPathInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { - dDrawPath_c::room_class* room_p = (dDrawPath_c::room_class*)((dStage_nodeHeader*)param_1)->m_offset; + map_path_class* map_path = (map_path_class*)((int*)i_data + 1); + dDrawPath_c::room_class* room_p = map_path->m_entries; if (room_p == NULL) { return 1; } s8 sp8, sp9; dMpath_c::setPointer(room_p, &sp8, &sp9); - ((dMenu_Fmap_data_c*)i_stageDt)->setMapPath(room_p); + dMenu_Fmap_data_c* data = (dMenu_Fmap_data_c*)i_stage; + data->setMapPath(room_p); return 1; } @@ -2279,7 +2291,7 @@ dStage_roomControl_c::roomDzs_c dStage_roomControl_c::m_roomDzs; /* 8002645C-800265DC 020D9C 0180+00 1/1 0/0 0/0 .text readMult__FP11dStage_dt_cP14dStage_Multi_cb */ -static void readMult(dStage_dt_c* stageDt, dStage_Multi_c* multi, bool useOldRes) { +static void readMult(dStage_dt_c* i_stage, dStage_Multi_c* multi, bool useOldRes) { static FuncTable l_roomFuncTable[] = { {"TRES", dStage_stageKeepTresureInit}, {"FILI", dStage_filiInfo2Init}, @@ -2294,15 +2306,15 @@ static void readMult(dStage_dt_c* stageDt, dStage_Multi_c* multi, bool useOldRes }; if (multi != NULL) { - dStage_Mult_info* info = multi->mInfo; + dStage_Mult_info* info = multi->m_entries; if (dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 0 || dStage_stagInfo_GetUpButton(dComIfGp_getStage()->getStagInfo()) == 6) { - dStage_roomControl_c::m_roomDzs.create(multi->field_0x0); + dStage_roomControl_c::m_roomDzs.create(multi->num); } - for (s8 i = 0; i < multi->field_0x0; i++) { + for (s8 i = 0; i < multi->num; i++) { void* dzs = dStage_roomControl_c::addRoomDzs(i, info->mRoomNo); if (dzs == NULL) { @@ -2318,11 +2330,11 @@ static void readMult(dStage_dt_c* stageDt, dStage_Multi_c* multi, bool useOldRes if (dzs != NULL) { dStage_dt_c_offsetToPtr(dzs); - stageDt->setRoomNo(info->mRoomNo); - dStage_dt_c_decode(dzs, stageDt, l_roomFuncTable, ARRAY_SIZE(l_roomFuncTable)); + i_stage->setRoomNo(info->mRoomNo); + dStage_dt_c_decode(dzs, i_stage, l_roomFuncTable, ARRAY_SIZE(l_roomFuncTable)); dStage_setLayerTagName(l_layerFuncTable, ARRAY_SIZE(l_layerFuncTable), dComIfG_play_c::getLayerNo(0)); - dStage_dt_c_decode(dzs, stageDt, l_layerFuncTable, ARRAY_SIZE(l_layerFuncTable)); + dStage_dt_c_decode(dzs, i_stage, l_layerFuncTable, ARRAY_SIZE(l_layerFuncTable)); } info++; @@ -2331,72 +2343,76 @@ static void readMult(dStage_dt_c* stageDt, dStage_Multi_c* multi, bool useOldRes } /* 800265DC-80026670 020F1C 0094+00 1/0 0/0 0/0 .text dStage_multInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_multInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setMulti((dStage_Multi_c*)((char*)i_data + 4)); +static int dStage_multInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setMulti((dStage_Multi_c*)((char*)i_data + 4)); dStage_initRoomKeepDoorInfo(); - readMult(stageDt, stageDt->getMulti(), false); - readMult(stageDt, stageDt->getOldMulti(), true); - stageDt->setRoomNo(-1); + readMult(i_stage, i_stage->getMulti(), false); + readMult(i_stage, i_stage->getOldMulti(), true); + i_stage->setRoomNo(-1); return 1; } /* 80026670-800266A4 020FB0 0034+00 1/0 0/0 0/0 .text dStage_lbnkInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_lbnkInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setLbnk((dStage_Lbnk_c*)((char*)i_data + 4)); +static int dStage_lbnkInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + i_stage->setLbnk((dStage_Lbnk_c*)((char*)i_data + 4)); return 1; } /* 800266A4-8002670C 020FE4 0068+00 1/0 0/0 0/0 .text dStage_roomTresureInit__FP11dStage_dt_cPviPv */ -static int dStage_roomTresureInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setTresure((stage_tresure_class*)((char*)i_data + 4)); - dStage_actorInit(stageDt, i_data, entryNum, param_3); +static int dStage_roomTresureInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + stage_tresure_class* tresure_p = (stage_tresure_class*)((char*)i_data + 4); + i_stage->setTresure(tresure_p); + dStage_actorInit(i_stage, i_data, entryNum, param_3); return 1; } /* 8002670C-80026730 02104C 0024+00 1/0 0/0 0/0 .text * dStage_layerTresureInit__FP11dStage_dt_cPviPv */ -static int dStage_layerTresureInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_layerTresureInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { - dStage_actorInit(stageDt, i_data, entryNum, param_3); + dStage_actorInit(i_stage, i_data, entryNum, param_3); return 1; } /* 80026730-80026764 021070 0034+00 1/0 0/0 0/0 .text dStage_dmapInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_dmapInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, void* param_3) { - stageDt->setDMap((dStage_DMap_c*)((char*)i_data + 4)); +static int dStage_dmapInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { + (void)entryNum; + (void)param_3; + dStage_DMap_c* dmap = (dStage_DMap_c*)((char*)i_data + 4); + i_stage->setDMap(dmap); return 1; } /* 80026764-800267DC 0210A4 0078+00 1/0 0/0 0/0 .text * dStage_stageDrtgInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_stageDrtgInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_stageDrtgInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { - stageDt->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); - dStage_tgscInfoInit(stageDt, i_data, entryNum, param_3); - dStage_KeepDoorInfoProc(stageDt, (stage_tgsc_class*)((char*)i_data + 4)); + i_stage->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); + dStage_tgscInfoInit(i_stage, i_data, entryNum, param_3); + dStage_KeepDoorInfoProc(i_stage, (stage_tgsc_class*)((char*)i_data + 4)); return 1; } /* 800267DC-80026844 02111C 0068+00 2/0 0/0 0/0 .text * dStage_roomDrtgInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_roomDrtgInfoInit(dStage_dt_c* stageDt, void* i_data, int entryNum, +static int dStage_roomDrtgInfoInit(dStage_dt_c* i_stage, void* i_data, int entryNum, void* param_3) { - stageDt->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); - dStage_doorInfoInit(stageDt, i_data, entryNum, param_3); + i_stage->setDrTg((stage_tgsc_class*)((char*)i_data + 4)); + dStage_doorInfoInit(i_stage, i_data, entryNum, param_3); return 1; } /* 80026844-80026898 021184 0054+00 1/0 0/0 0/0 .text dStage_elstInfoInit__FP11dStage_dt_cPviPv */ -static int dStage_elstInfoInit(dStage_dt_c* stageDt, void* i_data, int param_2, void* param_3) { +static int dStage_elstInfoInit(dStage_dt_c* i_stage, void* i_data, int param_2, void* param_3) { dStage_Elst_c* elst = (dStage_Elst_c*)((char*)i_data + 4); if (param_2 == 0) { - stageDt->setElst(NULL); + i_stage->setElst(NULL); } else { - stageDt->setElst(elst); + i_stage->setElst(elst); } return 1; @@ -2432,7 +2448,7 @@ static void dStage_dt_c_stageInitLoader(void* i_data, dStage_dt_c* i_stage) { } /* 800269B4-80026AE8 0212F4 0134+00 2/2 0/0 0/0 .text layerTableLoader__FPvP11dStage_dt_ci */ -static void layerTableLoader(void* i_data, dStage_dt_c* stageDt, int roomNo) { +static void layerTableLoader(void* i_data, dStage_dt_c* i_stage, int roomNo) { static FuncTable l_layerFuncTableA[] = {"SON0", dStage_soundInfoInit}; static FuncTable l_envLayerFuncTable[] = { @@ -2450,28 +2466,23 @@ static void layerTableLoader(void* i_data, dStage_dt_c* stageDt, int roomNo) { dStage_setLayerTagName(l_layerFuncTableA, ARRAY_SIZE(l_layerFuncTableA), dComIfG_play_c::getLayerNo(0)); - dStage_dt_c_decode(i_data, stageDt, l_layerFuncTableA, ARRAY_SIZE(l_layerFuncTableA)); + dStage_dt_c_decode(i_data, i_stage, l_layerFuncTableA, ARRAY_SIZE(l_layerFuncTableA)); dStage_Elst_c* elst = dComIfGp_getStage()->getElst(); if (elst != NULL && newRoomNo >= 0 && elst->m_entryNum > newRoomNo) { - dStage_Elst_data* d = elst->m_entries; + dStage_Elst_dt_c* d = elst->m_entries; int layer = dComIfG_play_c::getLayerNo(0); dStage_setLayerTagName(l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable), d[newRoomNo].m_layerTable[layer]); - dStage_dt_c_decode(i_data, stageDt, l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable)); + dStage_dt_c_decode(i_data, i_stage, l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable)); } else { dStage_setLayerTagName(l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable), 0); - dStage_dt_c_decode(i_data, stageDt, l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable)); + dStage_dt_c_decode(i_data, i_stage, l_envLayerFuncTable, ARRAY_SIZE(l_envLayerFuncTable)); } } -/* 80026AE8-80026AF0 021428 0008+00 1/0 0/0 0/0 .text getElst__16dStage_stageDt_cFv */ -dStage_Elst_c* dStage_stageDt_c::getElst() { - return mElst; -} - /* 80026AF0-80026B58 021430 0068+00 2/2 0/0 0/0 .text layerActorLoader__FPvP11dStage_dt_ci */ -static void layerActorLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { +static void layerActorLoader(void* i_data, dStage_dt_c* i_stage, int param_2) { static FuncTable l_layerFuncTable[] = { {"Doo0", dStage_roomDrtgInfoInit}, {"SCO0", dStage_tgscInfoInit}, @@ -2480,12 +2491,12 @@ static void layerActorLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { }; dStage_setLayerTagName(l_layerFuncTable, 4, dComIfG_play_c::getLayerNo(0)); - dStage_dt_c_decode(i_data, stageDt, l_layerFuncTable, ARRAY_SIZE(l_layerFuncTable)); + dStage_dt_c_decode(i_data, i_stage, l_layerFuncTable, ARRAY_SIZE(l_layerFuncTable)); } /* 80026B58-80026BBC 021498 0064+00 1/1 0/0 0/0 .text dStage_dt_c_stageLoader__FPvP11dStage_dt_c */ -static void dStage_dt_c_stageLoader(void* i_data, dStage_dt_c* stageDt) { +static void dStage_dt_c_stageLoader(void* i_data, dStage_dt_c* i_stage) { static FuncTable l_funcTable[] = { {"EVLY", dStage_elstInfoInit}, {"RPPN", dStage_rppnInfoInit}, {"RPAT", dStage_rpatInfoInit}, {"MULT", dStage_multInfoInit}, @@ -2502,14 +2513,14 @@ static void dStage_dt_c_stageLoader(void* i_data, dStage_dt_c* stageDt) { {"REVT", dStage_stEventInfoInit}, {"SOND", dStage_soundInfoInitCL}, }; - dStage_dt_c_decode(i_data, stageDt, l_funcTable, ARRAY_SIZE(l_funcTable)); - layerTableLoader(i_data, stageDt, -1); - layerActorLoader(i_data, stageDt, -1); + dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); + layerTableLoader(i_data, i_stage, -1); + layerActorLoader(i_data, i_stage, -1); } /* 80026BBC-80026C34 0214FC 0078+00 0/0 1/1 0/0 .text dStage_dt_c_roomLoader__FPvP11dStage_dt_ci */ -void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { +void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* i_stage, int param_2) { static FuncTable l_funcTable[] = { {"PLYR", dStage_playerInit}, {"RCAM", dStage_RoomCameraInit}, {"RARO", dStage_arrowInit}, {"RTBL", dStage_roomReadInit}, @@ -2521,14 +2532,14 @@ void dStage_dt_c_roomLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { }; dStage_dt_c_offsetToPtr(i_data); - stageDt->init(); - dStage_dt_c_decode(i_data, stageDt, l_funcTable, ARRAY_SIZE(l_funcTable)); - layerTableLoader(i_data, stageDt, param_2); + i_stage->init(); + dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); + layerTableLoader(i_data, i_stage, param_2); } /* 80026C34-80026C8C 021574 0058+00 0/0 1/1 0/0 .text dStage_dt_c_roomReLoader__FPvP11dStage_dt_ci */ -void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { +void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* i_stage, int param_2) { static FuncTable l_funcTable[] = { {"Door", dStage_roomDrtgInfoInit}, {"ACTR", dStage_actorCommonLayerInit}, {"TGOB", dStage_actorCommonLayerInit}, {"TRES", dStage_roomTresureInit}, @@ -2536,8 +2547,8 @@ void dStage_dt_c_roomReLoader(void* i_data, dStage_dt_c* stageDt, int param_2) { {"TGDR", dStage_tgscInfoInit}, {"REVT", dStage_mapEventInfoInit}, }; - dStage_dt_c_decode(i_data, stageDt, l_funcTable, ARRAY_SIZE(l_funcTable)); - layerActorLoader(i_data, stageDt, param_2); + dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); + layerActorLoader(i_data, i_stage, param_2); } /* 80026C8C-80026CDC 0215CC 0050+00 0/0 1/1 0/0 .text @@ -2549,13 +2560,15 @@ void dStage_dt_c_fieldMapLoader(void* i_data, dStage_dt_c* i_stage) { {"MPAT", dStage_fieldMapMapPathInit}, }; + JUT_ASSERT(4428, i_data != 0); + dStage_dt_c_offsetToPtr(i_data); dStage_dt_c_decode(i_data, i_stage, l_funcTable, ARRAY_SIZE(l_funcTable)); } /* ############################################################################################## */ /* 803A6920-803A696C 003A40 004C+00 3/3 0/0 0/0 .data mMemoryBlock__20dStage_roomControl_c */ -JKRExpHeap* dStage_roomControl_c::mMemoryBlock[19] = { +JKRExpHeap* dStage_roomControl_c::mMemoryBlock[MEMORY_BLOCK_MAX] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, }; @@ -2565,7 +2578,9 @@ char dStage_roomControl_c::mArcBank[32][10] = {0}; /* 80026CDC-80026D38 02161C 005C+00 0/0 1/1 0/0 .text dStage_infoCreate__Fv */ void dStage_infoCreate() { + OS_REPORT("dStage_Create\n"); void* stageRsrc = dComIfG_getStageRes("stage.dzs"); + JUT_ASSERT(4451, stageRsrc != 0); dComIfGp_roomControl_init(); dStage_dt_c_stageInitLoader(stageRsrc, dComIfGp_getStage()); @@ -2577,19 +2592,21 @@ char dStage_roomControl_c::mDemoArcName[10]; /* 80026D38-80026DF8 021678 00C0+00 0/0 1/1 0/0 .text dStage_Create__Fv */ void dStage_Create() { void* stageRsrc = dComIfG_getStageRes("stage.dzs"); + JUT_ASSERT(4451, stageRsrc != 0); dStage_dt_c_stageLoader(stageRsrc, dComIfGp_getStage()); daSus_c::execute(); if (dComIfGp_getStartStageRoomNo() >= 0) { - dStage_roomInit(dComIfGp_getStartStageRoomNo()); + int status = dStage_roomInit(dComIfGp_getStartStageRoomNo()); + JUT_ASSERT(4517, status); } *dStage_roomControl_c::getDemoArcName() = NULL; dKankyo_create(); if (dComIfG_getStageRes("vrbox_sora.bmd")) { - fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX, NULL, NULL, NULL); - fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX2, NULL, NULL, NULL); + fopAcM_Create(PROC_VRBOX, NULL, NULL); + fopAcM_Create(PROC_VRBOX2, NULL, NULL); } dComIfGp_evmng_create(); @@ -2597,12 +2614,14 @@ void dStage_Create() { /* 80026DF8-80026FDC 021738 01E4+00 0/0 1/1 0/7 .text dStage_Delete__Fv */ void dStage_Delete() { - if (*dStage_roomControl_c::getDemoArcName() != NULL) { - dComIfG_deleteObjectResMain(dStage_roomControl_c::getDemoArcName()); + OS_REPORT("dStage_Delete\n"); + + char* demoArcName = dStage_roomControl_c::getDemoArcName(); + if (*demoArcName != NULL) { + dComIfG_deleteObjectResMain(demoArcName); } - int stageNo = i_dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo()); - dComIfGs_putSave(stageNo); + dComIfGs_putSave(dStage_stagInfo_GetSaveTbl(dComIfGp_getStageStagInfo())); dStage_roomControl_c::removeRoomDzs(); if (mDoRst::isReset() || !dComIfGp_isEnableNextStage() || @@ -2610,8 +2629,9 @@ void dStage_Delete() { { dStage_roomControl_c::destroyMemoryBlock(); - if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == ST_DUNGEON) { + if (dStage_stagInfo_GetSTType(dComIfGp_getStage()->getStagInfo()) == ST_DUNGEON) { dRes_info_c* info = dComIfG_getStageResInfo("Stg_00"); + JUT_ASSERT(4579, info != 0); *info->getArchiveName() = 'X'; dComIfGp_setOldMulti(); } else { @@ -2619,10 +2639,13 @@ void dStage_Delete() { dComIfG_deleteStageRes("Xtg_00"); dComIfGp_resetOldMulti(); } + } else { + OS_REPORT(">>> ステージデータ保持!\n"); } dComIfG_deleteObjectResMain("Event"); - dComIfG_deleteObjectResMain(dComIfGp_getCameraParamFileName(0)); + const char* cam_filename = dComIfGp_getCameraParamFileName(0); + dComIfG_deleteObjectResMain(cam_filename); dComIfGp_evmng_remove(); dComIfGp_getStage()->init(); } @@ -2640,6 +2663,7 @@ int dStage_RoomCheck(cBgS_GndChk* gndChk) { int roomId; if (gndChk == NULL) { + JUT_ASSERT(4627, roomReadId >= 0); roomId = roomReadId; } else { roomId = dComIfG_Bgsp().GetRoomId(*gndChk); @@ -2658,13 +2682,11 @@ int dStage_RoomCheck(cBgS_GndChk* gndChk) { } roomRead_class* room = dComIfGp_getStageRoom(); - if (room != NULL && room->field_0x0 > roomReadId) { - int timePass = - dStage_roomRead_dt_c_GetTimePass(*room->field_0x4[dComIfGp_roomControl_getStayNo()]); - dComIfGp_roomControl_setTimePass(timePass); + if (room != NULL && room->num > roomReadId) { + dComIfGp_roomControl_setTimePass(dStage_roomRead_dt_c_GetTimePass(*room->m_entries[dComIfGp_roomControl_getStayNo()])); - roomRead_data_class* room_data = room->field_0x4[roomReadId]; - return dComIfGp_roomControl_loadRoom(room_data->field_0x0, room_data->field_0x4, false); + roomRead_data_class* room_data = room->m_entries[roomReadId]; + return dComIfGp_roomControl_loadRoom(room_data->num, room_data->m_rooms, false); } return 1; @@ -2673,7 +2695,8 @@ int dStage_RoomCheck(cBgS_GndChk* gndChk) { /* 800270FC-80027170 021A3C 0074+00 0/0 1/1 0/0 .text * dStage_changeSceneExitId__FR13cBgS_PolyInfofUlScs */ int dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle) { - return dStage_changeScene(dComIfG_Bgsp().GetExitId(param_0), speed, mode, roomNo, angle, -1); + s32 exit_id = dComIfG_Bgsp().GetExitId(param_0); + return dStage_changeScene(exit_id, speed, mode, roomNo, angle, -1); } /* 80027170-800272E0 021AB0 0170+00 1/1 10/10 63/63 .text dStage_changeScene__FifUlScsi @@ -2684,14 +2707,18 @@ int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no, s16 angle, if (room_no == -1) { scls = dComIfGp_getStageSclsInfo(); } else { - scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->getSclsInfo(); + JUT_ASSERT(4783, 0 <= room_no && room_no < 64); + dStage_roomDt_c* room = dComIfGp_roomControl_getStatusRoomDt(room_no); + scls = room->getSclsInfo(); } if (scls == NULL) { return 0; } - stage_scls_info_class* scls_info = &scls->mEntries[i_exitId]; + JUT_ASSERT(4793, 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); s32 wipe_time = dStage_sclsInfo_getWipeTime(scls_info); s32 layer = dStage_sclsInfo_getSceneLayer(scls_info); @@ -2714,19 +2741,6 @@ int dStage_changeScene(int i_exitId, f32 speed, u32 mode, s8 room_no, s16 angle, return 1; } - -/* 800272E0-800272E8 021C20 0008+00 1/0 0/0 0/0 .text getSclsInfo__15dStage_roomDt_cCFv - */ -stage_scls_info_dummy_class* dStage_roomDt_c::getSclsInfo() const { - return mSclsInfo; -} - -/* 800272E8-800272F0 021C28 0008+00 1/0 0/0 0/0 .text getSclsInfo__16dStage_stageDt_cCFv - */ -stage_scls_info_dummy_class* dStage_stageDt_c::getSclsInfo() const { - return mSclsInfo; -} - /* 800272F0-800274B0 021C30 01C0+00 0/0 1/1 0/0 .text dStage_changeScene4Event__FiScibfUlsi */ int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, f32 speed, u32 mode, s16 angle, int param_7) { @@ -2735,7 +2749,9 @@ int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, if (room_no == -1) { scls = dComIfGp_getStageSclsInfo(); } else { - scls = dComIfGp_roomControl_getStatusRoomDt(room_no)->getSclsInfo(); + JUT_ASSERT(4853, 0 <= room_no && room_no < 64); + dStage_roomDt_c* room = dComIfGp_roomControl_getStatusRoomDt(room_no); + scls = room->getSclsInfo(); } if (scls == NULL) { @@ -2744,7 +2760,8 @@ int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, return 0; } - stage_scls_info_class* scls_info = &scls->mEntries[i_exitId]; + JUT_ASSERT(4865, 0 <= i_exitId && i_exitId < scls->num); + stage_scls_info_class* scls_info = &scls->m_entries[i_exitId]; s32 wipe = i_wipe == -1 ? dStage_sclsInfo_getWipe(scls_info) : i_wipe; s32 wipe_time = i_wipe == -1 ? dStage_sclsInfo_getWipeTime(scls_info) : 0; @@ -2776,709 +2793,3 @@ void dStage_restartRoom(u32 roomParam, u32 mode, int param_2) { mode, 0, 0, 0, param_2, 0); dComIfGs_setRestartRoomParam(roomParam); } - -void dStage_roomDt_c::setCamera(stage_camera_class* i_Camera) { - mCamera = i_Camera; -} - -stage_camera_class* dStage_roomDt_c::getCamera() const { - return mCamera; -} - -void dStage_roomDt_c::setArrow(stage_arrow_class* i_Arrow) { - mArrow = i_Arrow; -} - -stage_arrow_class* dStage_roomDt_c::getArrow() const { - return mArrow; -} - -void dStage_roomDt_c::setPlayer(stage_actor_class* i_Player) { - mPlayer = i_Player; -} - -void dStage_roomDt_c::setPlayerNum(u16 i_PlayerNum) { - mPlayerNum = i_PlayerNum; -} - -u16 dStage_roomDt_c::getPlayerNum() const { - return mPlayerNum; -} - -void dStage_roomDt_c::setRoom(roomRead_class* i_Room) { - dStage_SetErrorRoom(); - OSReport("Room non room data !!\n"); -} - -roomRead_class* dStage_roomDt_c::getRoom() const { - OSReport("Room non room data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setMapInfo(stage_map_info_class* i_MapInfo) { - mMapInfo = i_MapInfo; -} - -stage_map_info_class* dStage_roomDt_c::getMapInfo() const { - return mMapInfo; -} - -void dStage_roomDt_c::setMapInfoBase(stage_map_info_dummy_class* i_MapInfoBase) { - mMapInfoBase = i_MapInfoBase; -} - -void dStage_roomDt_c::setPaletteInfo(stage_palette_info_class*) { - dStage_SetErrorRoom(); - OSReport("Room non palet data !!\n"); -} - -stage_palette_info_class* dStage_roomDt_c::getPaletteInfo() const { - OSReport("Room non palet data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setPselectInfo(stage_pselect_info_class*) { - dStage_SetErrorRoom(); - OSReport("Room non pselect data !!\n"); -} - -stage_pselect_info_class* dStage_roomDt_c::getPselectInfo() const { - OSReport("Room non pselect data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setEnvrInfo(stage_envr_info_class*) { - dStage_SetErrorRoom(); - OSReport("Room non envr data !!\n"); -} - -stage_envr_info_class* dStage_roomDt_c::getEnvrInfo() const { - OSReport("Room non envr data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setVrboxInfo(stage_vrbox_info_class* i_VrboxInfo) { - mVrboxInfo = i_VrboxInfo; -} - -stage_vrbox_info_class* dStage_roomDt_c::getVrboxInfo() const { - return mVrboxInfo; -} - -void dStage_roomDt_c::setVrboxcolInfo(stage_vrboxcol_info_class* i_VrboxcolInfo) { - mVrboxcolInfo = i_VrboxcolInfo; -} - -stage_vrboxcol_info_class* dStage_roomDt_c::getVrboxcolInfo() const { - return mVrboxcolInfo; -} - -void dStage_roomDt_c::setPlightInfo(stage_plight_info_class* i_PlightInfo) { - dStage_SetErrorRoom(); - OSReport("Room non plight data !!\n"); -} - -stage_plight_info_class* dStage_roomDt_c::getPlightInfo() const { - OSReport("Room non plight data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setPaletteNumInfo(int) { - dStage_SetErrorRoom(); - OSReport("Room non palette num data !!\n"); -} - -int dStage_roomDt_c::getPaletteNumInfo() const { - OSReport("Room non palette num data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setPselectNumInfo(int) { - dStage_SetErrorRoom(); - OSReport("Room non pselect num data !!\n"); -} - -int dStage_roomDt_c::getPselectNumInfo() const { - OSReport("Room non pselect num data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setEnvrNumInfo(int) { - dStage_SetErrorRoom(); - OSReport("Room non envr num data !!\n"); -} - -int dStage_roomDt_c::getEnvrNumInfo() const { - OSReport("Room non envr num data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setVrboxNumInfo(int i_VrboxNumInfo) { - mVrboxNumInfo = i_VrboxNumInfo; -} - -int dStage_roomDt_c::getVrboxNumInfo() const { - return mVrboxNumInfo; -} - -void dStage_roomDt_c::setVrboxcolNumInfo(int i_VrboxcolNumInfo) { - mVrboxcolNumInfo = i_VrboxcolNumInfo; -} - -int dStage_roomDt_c::getVrboxcolNumInfo() const { - return mVrboxcolNumInfo; -} - -void dStage_roomDt_c::setPlightNumInfo(int) { - dStage_SetErrorRoom(); - OSReport("Room non plight num data !!\n"); -} - -int dStage_roomDt_c::getPlightNumInfo() const { - OSReport("Room non plight num data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setLightVecInfo(stage_pure_lightvec_info_class* i_LightVecInfo) { - mLightVecInfo = i_LightVecInfo; -} - -stage_pure_lightvec_info_class* dStage_roomDt_c::getLightVecInfo() const { - return mLightVecInfo; -} - -void dStage_roomDt_c::setLightVecInfoNum(int i_LightVecInfoNum) { - mLightVecInfoNum = i_LightVecInfoNum; -} - -int dStage_roomDt_c::getLightVecInfoNum() const { - return mLightVecInfoNum; -} - -void dStage_roomDt_c::setStagInfo(stage_stag_info_class*) { - dStage_SetErrorRoom(); - OSReport("Room non stag data !!\n"); -} - -stage_stag_info_class* dStage_roomDt_c::getStagInfo() const { - OSReport("Room non stag data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setSclsInfo(stage_scls_info_dummy_class* i_SclsInfo) { - mSclsInfo = i_SclsInfo; -} - -void dStage_roomDt_c::setPntInfo(dStage_dPnt_c*) { - dStage_SetErrorRoom(); - OSReport("Room non Pnt data !\n"); -} - -dStage_dPnt_c* dStage_roomDt_c::getPntInf() const { - OSReport("Room non Pnts data !\n"); - return NULL; -} - -void dStage_roomDt_c::setPathInfo(dStage_dPath_c*) { - dStage_SetErrorRoom(); - OSReport("Room non Path data !\n"); -} - -dStage_dPath_c* dStage_roomDt_c::getPathInf() const { - OSReport("Room non Path data !\n"); - return NULL; -} - -void dStage_roomDt_c::setPnt2Info(dStage_dPnt_c* i_Pnt2Info) { - mPnt2Info = i_Pnt2Info; -} - -dStage_dPnt_c* dStage_roomDt_c::getPnt2Inf() const { - return mPnt2Info; -} - -void dStage_roomDt_c::setPath2Info(dStage_dPath_c* i_Path2Info) { - mPath2Info = i_Path2Info; -} - -dStage_dPath_c* dStage_roomDt_c::getPath2Inf() const { - return mPath2Info; -} - -void dStage_roomDt_c::setSoundInf(dStage_SoundInfo_c* i_SoundInf) { - mSoundInf = i_SoundInf; -} - -dStage_SoundInfo_c* dStage_roomDt_c::getSoundInf() const { - return mSoundInf; -} - -void dStage_roomDt_c::setSoundInfCL(dStage_SoundInfo_c* i_SoundInfCL) { - mSoundInfCL = i_SoundInfCL; -} - -dStage_SoundInfo_c* dStage_roomDt_c::getSoundInfCL() const { - return mSoundInfCL; -} - -void dStage_roomDt_c::setMapEventInfo(dStage_MapEventInfo_c* i_MapEventInfo) { - mMapEventInfo = i_MapEventInfo; -} - -dStage_MapEventInfo_c* dStage_roomDt_c::getMapEventInfo() const { - return mMapEventInfo; -} - -void dStage_roomDt_c::setFileList2Info(dStage_FileList2_dt_c* i_FileList2Info) { - mFileList2Info = i_FileList2Info; -} - -dStage_FileList2_dt_c* dStage_roomDt_c::getFileList2Info() const { - return mFileList2Info; -} - -void dStage_roomDt_c::setFileListInfo(dStage_FileList_dt_c* i_FileListInfo) { - mFileListInfo = i_FileListInfo; -} - -void dStage_roomDt_c::setFloorInfo(dStage_FloorInfo_c* i_FloorInfo) { - mFloorInfo = i_FloorInfo; -} - -dStage_FloorInfo_c* dStage_roomDt_c::getFloorInfo() const { - return mFloorInfo; -} - -void dStage_roomDt_c::setMemoryConfig(dStage_MemoryConfig_c*) { - OSReport("Room non memory config data!\n"); -} - -dStage_MemoryConfig_c* dStage_roomDt_c::getMemoryConfig() const { - OSReport("Room non memory config data!\n"); - return NULL; -} - -void dStage_roomDt_c::setMemoryMap(dStage_MemoryMap_c*) { - OSReport("Room non memory map data!\n"); -} - -dStage_MemoryMap_c* dStage_roomDt_c::getMemoryMap() const { - OSReport("Room non memory map data!\n"); - return NULL; -} - -void dStage_roomDt_c::setMulti(dStage_Multi_c*) { - OSReport("Room non multi data!\n"); -} - -dStage_Multi_c* dStage_roomDt_c::getMulti() const { - OSReport("Room non multi data!\n"); - return NULL; -} - -void dStage_roomDt_c::setOldMulti() { - OSReport("Room non old multi data!\n"); -} - -void dStage_roomDt_c::resetOldMulti() { - OSReport("Room non old multi data!\n"); -} - -dStage_Multi_c* dStage_roomDt_c::getOldMulti(void) const { - OSReport("Room non old multi data!\n"); - return NULL; -} - -void dStage_roomDt_c::setLbnk(dStage_Lbnk_c* i_Lbnk) { - mLbnk = i_Lbnk; -} - -dStage_Lbnk_c* dStage_roomDt_c::getLbnk(void) const { - return mLbnk; -} - -void dStage_roomDt_c::setTresure(stage_tresure_class* i_Treasure) { - mTreasure = i_Treasure; -} - -stage_tresure_class* dStage_roomDt_c::getTresure(void) const { - return mTreasure; -} - -void dStage_roomDt_c::setDMap(dStage_DMap_c*) { - return; -} - -dStage_DMap_c* dStage_roomDt_c::getDMap(void) const { - return 0; -} - -void dStage_roomDt_c::setDrTg(stage_tgsc_class* i_DrTg) { - mDrTg = i_DrTg; -} - -stage_tgsc_class* dStage_roomDt_c::getDrTg(void) const { - return mDrTg; -} - -void dStage_roomDt_c::setDoor(stage_tgsc_class* i_Door) { - mDoor = i_Door; -} - -stage_tgsc_class* dStage_roomDt_c::getDoor(void) const { - return mDoor; -} - -void dStage_roomDt_c::setMapPath(void*) { - OSReport("stage non 2d map path data !!\n"); -} - -int dStage_roomDt_c::getMapPath(void) { - OSReport("stage non 2d map path data !!\n"); - return NULL; -} - -void dStage_roomDt_c::setElst(dStage_Elst_c*) { - dStage_SetErrorRoom(); - OSReport("Room non envLayserSet data\n"); -} - -dStage_Elst_c* dStage_roomDt_c::getElst(void) { - dStage_SetErrorRoom(); - OSReport("Room no Elst Data!!\n"); - return NULL; -} - -void dStage_stageDt_c::setCamera(stage_camera_class* i_Camera) { - mCamera = i_Camera; -} - -stage_camera_class* dStage_stageDt_c::getCamera(void) const { - return mCamera; -} - -void dStage_stageDt_c::setArrow(stage_arrow_class* i_Arrow) { - mArrow = i_Arrow; -} - -stage_arrow_class* dStage_stageDt_c::getArrow(void) const { - return mArrow; -} - -void dStage_stageDt_c::setPlayer(stage_actor_class* i_Player) { - mPlayer = i_Player; -} - -void dStage_stageDt_c::setPlayerNum(u16 i_PlayerNum) { - mPlayerNum = i_PlayerNum; -} - -u16 dStage_stageDt_c::getPlayerNum(void) const { - return mPlayerNum; -} - -void dStage_stageDt_c::setRoom(roomRead_class* i_Room) { - mRoom = i_Room; -} - -void dStage_stageDt_c::setMapInfo(stage_map_info_class* i_MapInfo) { - mMapInfo = i_MapInfo; -} - -stage_map_info_class* dStage_stageDt_c::getMapInfo(void) const { - return mMapInfo; -} - -void dStage_stageDt_c::setMapInfoBase(stage_map_info_dummy_class* i_MapInfoBase) { - mMapInfoBase = i_MapInfoBase; -} - -void dStage_stageDt_c::setPaletteInfo(stage_palette_info_class* i_PaletteInfo) { - mPaletteInfo = i_PaletteInfo; -} - -stage_palette_info_class* dStage_stageDt_c::getPaletteInfo(void) const { - return mPaletteInfo; -} - -void dStage_stageDt_c::setPselectInfo(stage_pselect_info_class* i_PselectInfo) { - mPselectInfo = i_PselectInfo; -} - -stage_pselect_info_class* dStage_stageDt_c::getPselectInfo(void) const { - return mPselectInfo; -} - -void dStage_stageDt_c::setEnvrInfo(stage_envr_info_class* i_EnvrInfo) { - mEnvrInfo = i_EnvrInfo; -} - -stage_envr_info_class* dStage_stageDt_c::getEnvrInfo(void) const { - return mEnvrInfo; -} - -void dStage_stageDt_c::setVrboxInfo(stage_vrbox_info_class* i_VrboxInfo) { - mVrboxInfo = i_VrboxInfo; -} - -stage_vrbox_info_class* dStage_stageDt_c::getVrboxInfo(void) const { - return mVrboxInfo; -} - -void dStage_stageDt_c::setVrboxcolInfo(stage_vrboxcol_info_class* i_VrboxcolInfo) { - mVrboxcolInfo = i_VrboxcolInfo; -} - -stage_vrboxcol_info_class* dStage_stageDt_c::getVrboxcolInfo(void) const { - return mVrboxcolInfo; -} - -void dStage_stageDt_c::setPlightInfo(stage_plight_info_class* i_PlightInfo) { - mPlightInfo = i_PlightInfo; -} - -stage_plight_info_class* dStage_stageDt_c::getPlightInfo(void) const { - return mPlightInfo; -} - -void dStage_stageDt_c::setPaletteNumInfo(int i_PaletteNumInfo) { - mPaletteNumInfo = i_PaletteNumInfo; -} - -int dStage_stageDt_c::getPaletteNumInfo(void) const { - return mPaletteNumInfo; -} - -void dStage_stageDt_c::setPselectNumInfo(int i_PselectNumInfo) { - mPselectNumInfo = i_PselectNumInfo; -} - -int dStage_stageDt_c::getPselectNumInfo(void) const { - return mPselectNumInfo; -} - -void dStage_stageDt_c::setEnvrNumInfo(int i_EnvrNumInfo) { - mEnvrNumInfo = i_EnvrNumInfo; -} - -int dStage_stageDt_c::getEnvrNumInfo(void) const { - return mEnvrNumInfo; -} - -void dStage_stageDt_c::setVrboxNumInfo(int i_VrboxNumInfo) { - mVrboxNumInfo = i_VrboxNumInfo; -} - -int dStage_stageDt_c::getVrboxNumInfo(void) const { - return mVrboxNumInfo; -} - -void dStage_stageDt_c::setVrboxcolNumInfo(int i_VrboxcolNumInfo) { - mVrboxcolNumInfo = i_VrboxcolNumInfo; -} - -int dStage_stageDt_c::getVrboxcolNumInfo(void) const { - return mVrboxcolNumInfo; -} - -void dStage_stageDt_c::setLightVecInfo(stage_pure_lightvec_info_class*) { - dStage_SetErrorStage(); - OSReport("stage non LightVec data !!\n"); -} - -stage_pure_lightvec_info_class* dStage_stageDt_c::getLightVecInfo(void) const { - OSReport("stage non LightVec data !!\n"); - return NULL; -} - -void dStage_stageDt_c::setLightVecInfoNum(int) { - dStage_SetErrorStage(); - OSReport("stage non LightVecNum data !!\n"); -} - -int dStage_stageDt_c::getLightVecInfoNum(void) const { - OSReport("stage non LightVecNum data !!\n"); - return NULL; -} - -void dStage_stageDt_c::setPlightNumInfo(int i_PlightNumInfo) { - mPlightNumInfo = i_PlightNumInfo; -} - -int dStage_stageDt_c::getPlightNumInfo(void) const { - return mPlightNumInfo; -} - -void dStage_stageDt_c::setStagInfo(stage_stag_info_class* i_StagInfo) { - mStagInfo = i_StagInfo; -} - -void dStage_stageDt_c::setSclsInfo(stage_scls_info_dummy_class* i_SclsInfo) { - mSclsInfo = i_SclsInfo; -} - -void dStage_stageDt_c::setPntInfo(dStage_dPnt_c* i_PntInfo) { - mPntInfo = i_PntInfo; -} - -dStage_dPnt_c* dStage_stageDt_c::getPntInf(void) const { - return mPntInfo; -} - -void dStage_stageDt_c::setPathInfo(dStage_dPath_c* i_PathInfo) { - mPathInfo = i_PathInfo; -} - -dStage_dPath_c* dStage_stageDt_c::getPathInf(void) const { - return mPathInfo; -} - -void dStage_stageDt_c::setPnt2Info(dStage_dPnt_c* i_Pnt2Info) { - mPnt2Inf = i_Pnt2Info; -} - -dStage_dPnt_c* dStage_stageDt_c::getPnt2Inf(void) const { - return mPnt2Inf; -} - -void dStage_stageDt_c::setPath2Info(dStage_dPath_c* i_Path2Info) { - mPath2Info = i_Path2Info; -} - -dStage_dPath_c* dStage_stageDt_c::getPath2Inf(void) const { - return mPath2Info; -} - -void dStage_stageDt_c::setSoundInf(dStage_SoundInfo_c* i_SoundInf) { - mSoundInf = i_SoundInf; -} - -dStage_SoundInfo_c* dStage_stageDt_c::getSoundInf(void) const { - return mSoundInf; -} - -void dStage_stageDt_c::setSoundInfCL(dStage_SoundInfo_c* i_SoundInfCL) { - mSoundInfCL = i_SoundInfCL; -} - -dStage_SoundInfo_c* dStage_stageDt_c::getSoundInfCL(void) const { - return mSoundInfCL; -} - -void dStage_stageDt_c::setMapEventInfo(dStage_MapEventInfo_c* i_MapEventInfo) { - mMapEventInfo = i_MapEventInfo; -} - -dStage_MapEventInfo_c* dStage_stageDt_c::getMapEventInfo(void) const { - return mMapEventInfo; -} - -void dStage_stageDt_c::setFileList2Info(dStage_FileList2_dt_c*) { - dStage_SetErrorStage(); - OSReport("stage non filelist2 data!\n"); -} - -dStage_FileList2_dt_c* dStage_stageDt_c::getFileList2Info(void) const { - OSReport("stage non filelist2 data!\n"); - return NULL; -} - -void dStage_stageDt_c::setFileListInfo(dStage_FileList_dt_c*) { - dStage_SetErrorStage(); - OSReport("stage non filelist data!\n"); -} - -dStage_FileList_dt_c* dStage_stageDt_c::getFileListInfo(void) const { - OSReport("stage non filelist data!\n"); - return NULL; -} - -void dStage_stageDt_c::setFloorInfo(dStage_FloorInfo_c* i_FloorInfo) { - mFloorInfo = i_FloorInfo; -} - -dStage_FloorInfo_c* dStage_stageDt_c::getFloorInfo(void) const { - return mFloorInfo; -} - -void dStage_stageDt_c::setMemoryConfig(dStage_MemoryConfig_c* i_MemoryConfig) { - mMemoryConfig = i_MemoryConfig; -} - -dStage_MemoryConfig_c* dStage_stageDt_c::getMemoryConfig(void) const { - return mMemoryConfig; -} - -void dStage_stageDt_c::setMemoryMap(dStage_MemoryMap_c* i_MemmoryMap) { - mMemoryMap = i_MemmoryMap; -} - -dStage_MemoryMap_c* dStage_stageDt_c::getMemoryMap(void) const { - return mMemoryMap; -} - -void dStage_stageDt_c::setMulti(dStage_Multi_c* i_Multi) { - mMulti = i_Multi; -} - -dStage_Multi_c* dStage_stageDt_c::getMulti(void) const { - return mMulti; -} - -dStage_Multi_c* dStage_stageDt_c::getOldMulti(void) const { - return mOldMulti; -} - -void dStage_stageDt_c::setLbnk(dStage_Lbnk_c*) { - dStage_SetErrorStage(); - OSReport("stage non Lbnk data!\n"); -} - -dStage_Lbnk_c* dStage_stageDt_c::getLbnk(void) const { - OSReport("stage non Lbnk data!\n"); - return NULL; -} - -void dStage_stageDt_c::setTresure(stage_tresure_class* i_Treasure) { - mTreasure = i_Treasure; -} - -stage_tresure_class* dStage_stageDt_c::getTresure(void) const { - return mTreasure; -} - -void dStage_stageDt_c::setDMap(dStage_DMap_c* i_DMap) { - mDMap = i_DMap; -} - -dStage_DMap_c* dStage_stageDt_c::getDMap(void) const { - return mDMap; -} - -void dStage_stageDt_c::setDrTg(stage_tgsc_class* i_DrTg) { - mDrTg = i_DrTg; -} - -stage_tgsc_class* dStage_stageDt_c::getDrTg(void) const { - return mDrTg; -} - -void dStage_stageDt_c::setDoor(stage_tgsc_class* i_Door) { - mDoor = i_Door; -} - -stage_tgsc_class* dStage_stageDt_c::getDoor(void) const { - return mDoor; -} - -void dStage_stageDt_c::setMapPath(void* i_MapPath) { - return; -} - -int dStage_stageDt_c::getMapPath(void) { - return NULL; -} - -void dStage_stageDt_c::setElst(dStage_Elst_c* i_Elst) { - mElst = i_Elst; -} diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index 83c2dd1af27..8d645cac144 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -146,15 +146,15 @@ static int fopAc_Create(void* i_this) { fopAcM_prm_class* append = fopAcM_GetAppend(a_this); if (append != NULL) { - fopAcM_SetParam(a_this, append->parameters); - a_this->home.pos = append->position; - a_this->home.angle = append->angle; - a_this->shape_angle = append->angle; + fopAcM_SetParam(a_this, append->base.parameters); + a_this->home.pos = append->base.position; + a_this->home.angle = append->base.angle; + a_this->shape_angle = append->base.angle; a_this->parentActorID = append->parent_id; a_this->subtype = append->subtype; - a_this->scale.set(append->scale[0] * 0.1f, append->scale[1] * 0.1f, - append->scale[2] * 0.1f); - a_this->setID = append->setId; + a_this->scale.set(append->scale.x * 0.1f, append->scale.y * 0.1f, + append->scale.z * 0.1f); + a_this->setID = append->base.setID; a_this->home.roomNo = append->room_no; } @@ -216,11 +216,6 @@ static int fopAc_Create(void* i_this) { return ret; } -/* 800193FC-80019404 013D3C 0008+00 0/0 1/0 0/0 .text getFileListInfo__15dStage_roomDt_cCFv */ -dStage_FileList_dt_c* dStage_roomDt_c::getFileListInfo() const { - return mFileListInfo; -} - /* 80019404-800194FC 013D44 00F8+00 0/0 0/0 2/2 .text initBallModel__13fopEn_enemy_cFv */ bool fopEn_enemy_c::initBallModel() { void* objRes = dComIfG_getObjectRes("Alink", daAlink_c::getBallModelIdx()); @@ -314,4 +309,5 @@ extern actor_method_class g_fopAc_Method = { /* 80450CC0-80450CC8 0001C0 0004+04 0/0 9/9 0/0 .sbss * sInstance__35JASGlobalInstance<14JAUSectionHeap> */ class JAUSectionHeap; +template<> JAUSectionHeap* JASGlobalInstance::sInstance; diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index a4ffd4ab53d..919c0997c05 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -76,11 +76,11 @@ fopAcM_prm_class* fopAcM_CreateAppend() { fopAcM_prm_class* append = (fopAcM_prm_class*)cMl::memalignB(-4, sizeof(fopAcM_prm_class)); if (append != NULL) { cLib_memSet(append, 0, sizeof(fopAcM_prm_class)); - append->setId = 0xFFFF; + append->base.setID = 0xFFFF; append->room_no = -1; - append->scale[0] = 10; - append->scale[1] = 10; - append->scale[2] = 10; + append->scale.x = 10; + append->scale.y = 10; + append->scale.z = 10; append->parent_id = fpcM_ERROR_PROCESS_ID_e; append->subtype = -1; } @@ -97,33 +97,33 @@ fopAcM_prm_class* createAppend(u16 i_setId, u32 i_parameters, const cXyz* i_pos, return NULL; } - append->setId = i_setId; + append->base.setID = i_setId; if (i_pos != NULL) { - append->position = *i_pos; + append->base.position = *i_pos; } else { - append->position = cXyz::Zero; + append->base.position = cXyz::Zero; } append->room_no = i_roomNo; if (i_angle != NULL) { - append->angle = *i_angle; + append->base.angle = *i_angle; } else { - append->angle = csXyz::Zero; + append->base.angle = csXyz::Zero; } if (i_scale != NULL) { - append->scale[0] = 10.0f * i_scale->x; - append->scale[1] = 10.0f * i_scale->y; - append->scale[2] = 10.0f * i_scale->z; + append->scale.x = 10.0f * i_scale->x; + append->scale.y = 10.0f * i_scale->y; + append->scale.z = 10.0f * i_scale->z; } else { - append->scale[0] = 10; - append->scale[1] = 10; - append->scale[2] = 10; + append->scale.x = 10; + append->scale.y = 10; + append->scale.z = 10; } - append->parameters = i_parameters; + append->base.parameters = i_parameters; append->parent_id = i_parentId; append->subtype = i_subtype; diff --git a/src/f_pc/f_pc_priority.cpp b/src/f_pc/f_pc_priority.cpp index 48a246d25cb..8d7a4b3a63a 100644 --- a/src/f_pc/f_pc_priority.cpp +++ b/src/f_pc/f_pc_priority.cpp @@ -159,6 +159,3 @@ s32 fpcPi_Init(process_priority_class* i_procPriority, void* i_data, fpc_ProcID fpcMtdTg_Init(&i_procPriority->method_tag, (process_method_tag_func)fpcPi_Delete, i_procPriority); return 1; } - -/* 804505F0-804505F8 0008+00 s=0 e=5 z=1 None .sdata None */ -s8 data_804505F0 = 0xFF;