From 26015238ef5189a690c5c3baff13795a6276b942 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 13 Apr 2025 23:21:01 -0400 Subject: [PATCH] d_stage cleanup --- include/d/d_camera.h | 18 +-- include/d/d_com_inf_game.h | 2 +- include/d/d_kankyo.h | 8 +- include/d/d_stage.h | 270 ++++++++++++++++----------------- include/f_op/f_op_actor_mng.h | 37 +++-- include/f_op/f_op_camera_mng.h | 4 +- include/f_op/f_op_kankyo_mng.h | 4 +- src/d/actor/d_a_bk.cpp | 16 +- src/d/actor/d_a_esa.cpp | 10 +- src/d/actor/d_a_kt.cpp | 6 +- src/d/actor/d_a_player_npc.cpp | 6 +- src/d/actor/d_a_vrbox2.cpp | 2 +- src/d/d_camera.cpp | 15 +- src/d/d_com_inf_game.cpp | 4 +- src/d/d_kankyo.cpp | 108 ++++++------- src/d/d_kyeff.cpp | 1 - src/d/d_map.cpp | 12 +- src/d/d_s_room.cpp | 2 +- src/d/d_stage.cpp | 172 ++++++++++----------- src/f_op/f_op_actor.cpp | 20 +-- src/f_op/f_op_actor_mng.cpp | 52 +++---- src/f_op/f_op_camera.cpp | 5 +- src/f_op/f_op_kankyo.cpp | 2 +- 23 files changed, 380 insertions(+), 396 deletions(-) diff --git a/include/d/d_camera.h b/include/d/d_camera.h index 6660b2ba2..7796f881b 100644 --- a/include/d/d_camera.h +++ b/include/d/d_camera.h @@ -19,20 +19,6 @@ class d2DBSplinePath; class dStage_Event_dt_c; class fopAc_ac_c; -struct stage_camera__entry { - /* 0x00 */ char mpTypeStr[16]; - /* 0x10 */ u8 mArrowIdx; - /* 0x11 */ u8 m11; - /* 0x12 */ u8 m12; - /* 0x13 */ u8 m13; -}; - -struct stage_arrow__entry { - /* 0x00 */ cXyz mPos; - /* 0x0C */ csXyz mRot; - /* 0x12 */ s16 m12; -}; - struct dCamera__EventParam { /* 0x00 */ char mName[16]; /* 0x10 */ int mValue; @@ -314,8 +300,8 @@ public: /* 0x5AC */ cXyz mBlureScale; /* 0x5B8 */ f32 mBlureAlpha; /* 0x5BC */ u8 m5BC[0x5C0 - 0x5BC]; - /* 0x5C0 */ stage_camera__entry mCurRoomCamEntry; - /* 0x5D4 */ stage_arrow__entry mCurRoomArrowEntry; + /* 0x5C0 */ stage_camera2_data_class mCurRoomCamEntry; + /* 0x5D4 */ stage_arrow_data_class mCurRoomArrowEntry; /* 0x5E8 */ int mCurArrowIdx; /* 0x5EC */ f32 mWindowWidth; /* 0x5F0 */ f32 mWindowHeight; diff --git a/include/d/d_com_inf_game.h b/include/d/d_com_inf_game.h index 5b3633183..82f5bbe2d 100644 --- a/include/d/d_com_inf_game.h +++ b/include/d/d_com_inf_game.h @@ -1942,7 +1942,7 @@ inline void dComIfGp_init() { g_dComIfG_gameInfo.play.init(); } void dComIfGp_setNextStage(const char* i_stageName, s16 i_point, s8 i_roomNo, s8 i_layer = -1, f32 i_lastSpeed = 0.0f, u32 i_lastMode = 0, BOOL i_setPoint = TRUE, s8 i_wipe = 0); -dStage_Ship_data* dComIfGp_getShip(int i_roomNo, int param_1); +dStage_Ship_dt_c* dComIfGp_getShip(int i_roomNo, int param_1); bool dComIfGp_getMapTrans(int i_roomNo, f32* o_transX, f32* o_transY, s16* o_angle); inline camera_class* dComIfGp_getCamera(int idx) { return g_dComIfG_gameInfo.play.getCamera(idx); } diff --git a/include/d/d_kankyo.h b/include/d/d_kankyo.h index aec3026b7..fbf354327 100644 --- a/include/d/d_kankyo.h +++ b/include/d/d_kankyo.h @@ -10,10 +10,10 @@ class J3DModel; struct color_RGB_class { - u8 r; - u8 g; - u8 b; -}; + /* 0x0 */ u8 r; + /* 0x1 */ u8 g; + /* 0x2 */ u8 b; +}; // Size: 0x3 struct LIGHT_INFLUENCE { /* 0x00 */ cXyz mPos; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index 9a4ed6e33..7b7f5de47 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -9,8 +9,6 @@ #include "global.h" #include "f_op/f_op_actor_mng.h" -class JKRExpHeap; - void dStage_SetErrorRoom(); void dStage_SetErrorStage(); @@ -26,9 +24,21 @@ enum StageType { /* 0x08 */ dStageType_UNKNOWN_8_e, }; +// 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 +}; + // Virt -class stage_vrbox_info_class { -public: +struct stage_vrbox_info_class { /* 0x00 */ u32 field_0x00; /* 0x04 */ u32 field_0x04; /* 0x08 */ u32 field_0x08; @@ -38,26 +48,20 @@ public: /* 0x18 */ color_RGB_class mSkyColor; /* 0x1B */ color_RGB_class mUsoUmiColor; /* 0x1E */ color_RGB_class mKasumiMaeColor; -}; +}; // Size: 0x24 -class stage_tresure_data_class { -public: - /* 0x00 */ char mName[8]; - /* 0x08 */ u32 mParameter; - /* 0x0C */ cXyz mSpawnPos; - /* 0x18 */ csXyz mAngle; - /* 0x1E */ u16 mSetId; - - stage_tresure_data_class() {} - ~stage_tresure_data_class() {} +// TRES +struct stage_tresure_data_class { + /* 0x00 */ char name[8]; + /* 0x08 */ fopAcM_prmBase_class base; }; // Size: 0x20 -class stage_tresure_class { -public: +struct stage_tresure_class { /* 0x00 */ int num; /* 0x04 */ stage_tresure_data_class* m_entries; }; +// STAG struct stage_stag_info_class { /* 0x00 */ f32 mNearPlane; /* 0x04 */ f32 mFarPlane; @@ -69,50 +73,48 @@ struct stage_stag_info_class { /* 0x14 */ u32 field_0x14; /* 0x18 */ u32 field_0x18; /* 0x1C */ u32 field_0x1c; -}; +}; // Size: 0x20 +// SCLS struct stage_scls_info_class { /* 0x0 */ char mStage[8]; /* 0x8 */ u8 mStart; /* 0x9 */ u8 mRoom; /* 0xA */ u8 mWipe; /* 0xB */ u8 field_0xb; -}; +}; // Size: 0xC struct stage_scls_info_dummy_class { /* 0x00 */ int num; /* 0x04 */ stage_scls_info_class* m_entries; }; -class stage_lightvec_info_class { -public: - /* 0x00 */ Vec mPos; - /* 0x0C */ f32 mRadius; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; +// LGTV +struct stage_lightvec_info_class { + /* 0x00 */ Vec position; + /* 0x0C */ f32 radius; + /* 0x10 */ u8 field_0x10[0x18 - 0x10]; /* 0x18 */ u8 field_0x18[0x1B - 0x18]; - /* 0x1B */ u8 mFluctuation; -}; + /* 0x1B */ u8 fluctuation; +}; // Size: 0x1C -class stage_pselect_info_class { -public: - /* 0x0 */ u8 mPalIdx[8]; - /* 0x8 */ f32 mChangeRate; -}; +// 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 mPos; - /* 0x0C */ f32 mRadius; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ f32 field_0x14; - /* 0x18 */ u8 mColorR; - /* 0x19 */ u8 mColorG; - /* 0x1A */ u8 mColorB; - /* 0x1B */ u8 mFluctuation; -}; + /* 0x00 */ Vec position; + /* 0x0C */ f32 radius; + /* 0x10 */ u8 field_0x10[0x18 - 0x10]; + /* 0x18 */ color_RGB_class color; + /* 0x1B */ u8 fluctuation; +}; // Size: 0x1C -class stage_palet_info_class { -public: +// Pale +struct stage_palet_info_class { /* 0x00 */ color_RGB_class mActor_C0; /* 0x03 */ color_RGB_class mActor_K0; /* 0x06 */ color_RGB_class mBG0_C0; @@ -127,10 +129,10 @@ public: /* 0x21 */ u8 mVirtIdx; /* 0x24 */ f32 mFogStartZ; /* 0x28 */ f32 mFogEndZ; -}; +}; // Size: 0x2C -class stage_map_info_class { -public: +// 2Dma / 2DMA +struct stage_map_info_class { /* 0x00 */ u8 field_0x00[0x18 - 0x00]; /* 0x18 */ f32 field_0x18; /* 0x1C */ f32 field_0x1C; @@ -143,100 +145,111 @@ public: /* 0x35 */ u8 field_0x35; /* 0x36 */ u8 mOceanXZ; /* 0x37 */ u8 field_0x37[0x38 - 0x37]; -}; +}; // Size: 0x38 struct stage_map_info_dummy_class { - int num; - stage_map_info_class* m_entries; + /* 0x0 */ int num; + /* 0x4 */ stage_map_info_class* m_entries; }; -class stage_envr_info_class { -public: - /* 0x0 */ u8 mPselIdx[8]; -}; +// EnvR +struct stage_envr_info_class { + /* 0x0 */ u8 pselect_id[8]; +}; // Size: 0x8 +// CAMR / RCAM struct stage_camera2_data_class { - /* 0x00 */ int m00; - /* 0x04 */ f32 m04; - /* 0x08 */ f32 m08; - /* 0x0C */ f32 m0C; - /* 0x10 */ u8 mArrowIdx; - /* 0x11 */ u8 m11; - /* 0x12 */ u8 m12; - /* 0x13 */ u8 m13; -}; // Size: 0x18 + /* 0x00 */ char m_cam_type[16]; + /* 0x10 */ u8 m_arrow_idx; + /* 0x11 */ u8 field_0x11; + /* 0x12 */ u8 field_0x12; + /* 0x13 */ u8 field_0x13; +}; // Size: 0x14 struct stage_camera_class { /* 0x0 */ int num; - /* 0x4 */ stage_camera2_data_class* mEntries; + /* 0x4 */ stage_camera2_data_class* m_entries; }; +// AROB / RARO struct stage_arrow_data_class { - struct { - /* 0x00 */ cXyz mPosition; - /* 0x0C */ csXyz mAngle; - /* 0x12 */ s16 m12; - } - /* 0x00 */ m00; + /* 0x00 */ cXyz position; + /* 0x0C */ csXyz angle; + /* 0x12 */ s16 field_0x12; }; // Size: 0x14 struct stage_arrow_class { /* 0x00 */ int num; - /* 0x04 */ stage_arrow_data_class* mEntries; + /* 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 mSetId; +// ACT +struct stage_actor_data_class { + /* 0x00 */ char name[8]; + /* 0x08 */ fopAcM_prmBase_class base; }; // Size: 0x20 -class stage_actor_class { -public: +struct stage_actor_class { /* 0x0 */ int num; /* 0x4 */ stage_actor_data_class* m_entries; }; -class stage_tgsc_data_class : public stage_actor_data_class { -public: - fopAcM_prmScale_class mScale; - - stage_tgsc_data_class() {} - ~stage_tgsc_data_class() {} +// TGSC / SCOB / DOOR / TGDR +struct stage_tgsc_data_class { + /* 0x00 */ char name[8]; + /* 0x08 */ fopAcM_prmBase_class base; + /* 0x20 */ fopAcM_prmScale_class scale; }; // Size: 0x24 -class stage_tgsc_class { -public: +struct stage_tgsc_class { /* 0x00 */ int num; /* 0x04 */ stage_tgsc_data_class* m_entries; }; +// RTBL struct roomRead_data_class { - /* 0x0 */ u8 mRoomCount; + /* 0x0 */ u8 num; /* 0x1 */ u8 field_0x1; /* 0x2 */ u8 field_0x2; - /* 0x4 */ u8* mpRooms; -}; + /* 0x4 */ u8* m_rooms; +}; // Size: 0x8 struct roomRead_class { /* 0x0 */ int num; /* 0x4 */ roomRead_data_class** m_entries; }; +// MEMA struct dStage_MemoryMap_c { /* 0x0 */ int num; /* 0x4 */ u32* m_entries; }; +// MECO +struct dStage_MemoryConfig_data { + /* 0x0 */ u8 m_roomNo; + /* 0x1 */ u8 m_blockID; +}; // Size: 0x2 + +struct dStage_MemoryConfig_c { + /* 0x0 */ int num; + /* 0x4 */ dStage_MemoryConfig_data* m_entries; +}; + +// PATH / RPAT struct dPath; struct dStage_dPath_c { /* 0x0 */ int 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; @@ -245,12 +258,12 @@ struct dStage_Mult_info { /* 0xB */ u8 mWaveMax; }; // Size: 0xC -class dStage_Multi_c { -public: +struct dStage_Multi_c { /* 0x0 */ int num; /* 0x4 */ dStage_Mult_info* m_entries; }; +// SOND struct stage_sound_data { /* 0x00 */ char field_0x0[8]; /* 0x08 */ Vec field_0x8; @@ -263,25 +276,19 @@ struct stage_sound_data { /* 0x1A */ u8 field_0x1a; }; // Size: 0x1C -// SOND struct dStage_SoundInfo_c { /* 0x0 */ int num; /* 0x4 */ stage_sound_data* m_entries; }; -class dStage_FileList_dt_c { -public: +// FILI +struct dStage_FileList_dt_c { /* 0x0 */ u32 mParam; /* 0x4 */ f32 mSeaLevel; -}; - -// PPNT / RPPN -struct dStage_dPnt_c { - /* 0x0 */ int num; - /* 0x4 */ u32 m_pnt_offset; }; // Size: 0x8 -struct dStage_FloorInfo_entry_c { +// FLOR +struct dStage_FloorInfo_dt_c { /* 0x00 */ int field_0x00; /* 0x04 */ u8 floorNo; /* 0x05 */ s8 field_0x05[14]; @@ -289,36 +296,30 @@ struct dStage_FloorInfo_entry_c { struct dStage_FloorInfo_c { /* 0x00 */ int num; - /* 0x04 */ dStage_FloorInfo_entry_c* entry; + /* 0x04 */ dStage_FloorInfo_dt_c* m_entries; }; + +// LBNK struct dStage_Lbnk_c { - /* 0x00 */ u32 m_num; - /* 0x04 */ u8 * m_bank; + /* 0x00 */ int m_num; + /* 0x04 */ u8* m_entries; }; -struct dStage_MemoryConfig_data { - /* 0x0 */ u8 m_roomNo; - /* 0x1 */ u8 m_blockID; -}; // Size: 0x2 - -struct dStage_MemoryConfig_c { - /* 0x0 */ int num; - /* 0x4 */ dStage_MemoryConfig_data* m_entries; -}; - -struct dStage_DMap_entry_c { +// DMAP +struct dStage_DMap_dt_c { /* 0x00 */ int field_0x00; /* 0x04 */ int field_0x04; /* 0x08 */ int field_0x08; - /* 0x0C */ float offsetY; -}; + /* 0x0C */ f32 offsetY; +}; // Size: 0x10 struct dStage_DMap_c { /* 0x00 */ int num; - /* 0x04 */ dStage_DMap_entry_c* entry; + /* 0x04 */ dStage_DMap_dt_c* entries; }; +// EVNT struct dStage_Event_dt_c { /* 0x00 */ u8 field_0x0; /* 0x04 */ char mName[15]; @@ -337,17 +338,17 @@ struct dStage_EventInfo_c { /* 0x04 */ dStage_Event_dt_c* events; }; // Size: 0x08 -struct dStage_Ship_data { +// SHIP +struct dStage_Ship_dt_c { /* 0x0 */ cXyz m_pos; /* 0xC */ s16 m_angle; /* 0xE */ u8 field_0xe; /* 0xF */ u8 field_0xf; -}; +}; // Size: 0x10 -class dStage_Ship_c { -public: +struct dStage_Ship_c { /* 0x0 */ int num; - /* 0x4 */ dStage_Ship_data* m_entries; + /* 0x4 */ dStage_Ship_dt_c* m_entries; }; struct FuncTable; @@ -843,6 +844,7 @@ public: }; class dBgW; + class dStage_roomStatus_c { public: /* 0x000 */ dStage_roomDt_c mRoomDt; @@ -861,6 +863,8 @@ public: STATIC_ASSERT(sizeof(dStage_roomStatus_c) == 0x114); +class JKRExpHeap; + class dStage_roomControl_c { public: dStage_roomControl_c() {} @@ -909,7 +913,9 @@ public: static dBgW* getBgW(int i_roomNo) { return mStatus[i_roomNo].mpBgW; } static void setBgW(int i_roomNo, dBgW* i_bgw) { mStatus[i_roomNo].mpBgW = i_bgw; } - static JKRExpHeap* mMemoryBlock[16]; + static const int MEMORY_BLOCK_MAX = 16; + + static JKRExpHeap* mMemoryBlock[MEMORY_BLOCK_MAX]; static dStage_roomStatus_c mStatus[64]; static dStage_darkStatus_c mDarkStatus[8]; static u8 mDarkRatio; @@ -986,18 +992,6 @@ struct FuncTable { dStage_Func function; }; -// made up name -struct dStage_fileHeader { - /* 0x0 */ int chunkCount; -}; - -// made up name -struct dStage_nodeHeader { - /* 0x0 */ u32 m_tag; - /* 0x4 */ int m_entryNum; - /* 0x8 */ u32 m_offset; -}; - s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); int dStage_mapInfo_GetOceanZ(stage_map_info_class*); int dStage_mapInfo_GetOceanX(stage_map_info_class*); @@ -1061,7 +1055,7 @@ inline u8 dStage_roomRead_dt_c_ChkBg(u8 param_0) { return param_0 & 0x80; } -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; } diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 9b695a5c0..2357afec2 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -21,28 +21,25 @@ class J3DModelData; class daItem_c; struct fopAcM_prmBase_class { - /* 0x00 */ u32 field_0x00; - /* 0x04 */ cXyz field_0x04; - /* 0x10 */ csXyz field_0x10; - /* 0x16 */ u16 field_0x16; + /* 0x00 */ u32 parameters; + /* 0x04 */ cXyz position; + /* 0x10 */ csXyz angle; + /* 0x16 */ u16 setID; }; // Size = 0x18 struct fopAcM_prmScale_class { - u8 x; - u8 y; - u8 z; -}; + /* 0x0 */ u8 x; + /* 0x1 */ u8 y; + /* 0x2 */ u8 z; +}; // Size: 0x3 struct fopAcM_prm_class { - /* 0x00 */ u32 mParameter; // single U32 Parameter - /* 0x04 */ cXyz mPos; - /* 0x10 */ csXyz mAngle; // rotation - /* 0x16 */ u16 mSetId; - /* 0x18 */ fopAcM_prmScale_class mScale; - /* 0x1B */ u8 mGbaName; - /* 0x1C */ fpc_ProcID mParentPcId; // parent process ID - /* 0x20 */ s8 mSubtype; - /* 0x21 */ s8 mRoomNo; + /* 0x00 */ fopAcM_prmBase_class base; + /* 0x18 */ fopAcM_prmScale_class scale; + /* 0x1B */ u8 gbaName; + /* 0x1C */ fpc_ProcID parent_id; + /* 0x20 */ s8 subtype; + /* 0x21 */ s8 room_no; }; struct fopAcM_search4ev_prm { @@ -61,9 +58,9 @@ struct fopAcM_search4ev_prm { }; struct fopAcM_search_prm { - /* 0x00 */ const char * mpProcName; - /* 0x04 */ u32 mParamMask; - /* 0x08 */ u32 mParameter; + /* 0x00 */ const char * procname; + /* 0x04 */ u32 prm_mask; + /* 0x08 */ u32 parameter; }; enum daItemType_e { diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h index 6638255df..af93129e1 100644 --- a/include/f_op/f_op_camera_mng.h +++ b/include/f_op/f_op_camera_mng.h @@ -1,10 +1,12 @@ #ifndef F_F_OP_CAMERA_MNG_H_ #define F_F_OP_CAMERA_MNG_H_ -#include "SSystem/SComponent/c_phase.h" #include "SSystem/SComponent/c_sxyz.h" #include "f_op/f_op_camera.h" +struct fopCamM_prm_class { + /* 0x00 */ fopAcM_prmBase_class base; +}; // Size: 0x18 inline void fopCamM_SetAngleX(camera_class* i_camera, s16 angleX) { i_camera->mAngle.x = angleX; diff --git a/include/f_op/f_op_kankyo_mng.h b/include/f_op/f_op_kankyo_mng.h index f73fb0f2e..daba6c525 100644 --- a/include/f_op/f_op_kankyo_mng.h +++ b/include/f_op/f_op_kankyo_mng.h @@ -24,8 +24,8 @@ base_process_class* fopKyM_fastCreate(s16 param_0, int param_1, cXyz* param_2, c fpc_ProcID fopKyM_createWpillar(cXyz const* i_pos, f32 scaleXZ, f32 scaleY, int i_param); int fopKyM_createMpillar(cXyz const* i_pos, f32 i_size); -inline void* fopKyM_GetAppend(void* param_0) { - return fpcM_GetAppend(param_0); +inline fopKyM_prm_class* fopKyM_GetAppend(void* param_0) { + return (fopKyM_prm_class*)fpcM_GetAppend(param_0); } #endif diff --git a/src/d/actor/d_a_bk.cpp b/src/d/actor/d_a_bk.cpp index 700c6f760..fe86d014e 100644 --- a/src/d/actor/d_a_bk.cpp +++ b/src/d/actor/d_a_bk.cpp @@ -3879,20 +3879,20 @@ static void waki_set(bk_class* i_this) { if (r23 && r27 >= 0) { fopAcM_prm_class* params = fopAcM_CreateAppend(); - params->mPos = pnt->m_position; - params->mAngle.x = 0; - params->mAngle.z = pnt_idx; + params->base.position = pnt->m_position; + params->base.angle.x = 0; + params->base.angle.z = pnt_idx; if (r27 > pnt_idx) { - params->mAngle.y = 1; + params->base.angle.y = 1; } else { - params->mAngle.y = -1; + params->base.angle.y = -1; } if (cM_rndF(1.0f) < 0.5f) { - params->mParameter = (i_this->m02B6 << 0x10) | 0xFF00FF19; // TODO clean up parameters + params->base.parameters = (i_this->m02B6 << 0x10) | 0xFF00FF19; // TODO clean up parameters } else { - params->mParameter = (i_this->m02B6 << 0x10) | 0xFF00FF39; // TODO clean up parameters + params->base.parameters = (i_this->m02B6 << 0x10) | 0xFF00FF39; // TODO clean up parameters } - params->mRoomNo = actor->current.roomNo; + params->room_no = actor->current.roomNo; fopAcM_Create(PROC_BK, NULL, params); i_this->m1212++; } diff --git a/src/d/actor/d_a_esa.cpp b/src/d/actor/d_a_esa.cpp index 1ffd9ba9e..4657d4750 100644 --- a/src/d/actor/d_a_esa.cpp +++ b/src/d/actor/d_a_esa.cpp @@ -263,11 +263,11 @@ static cPhs_State daEsa_Create(fopAc_ac_c* i_actor) { for(int i = 0; i < num; i++) { fopAcM_prm_class* params = fopAcM_CreateAppend(); cXyz pos = player->getLeftHandPos(); - params->mPos = pos; - params->mAngle.x = 0; - params->mAngle.y = i_this->current.angle.y; - params->mAngle.z = cM_rndF(65536.0f); - params->mParameter = 0x000000FF; + params->base.position = pos; + params->base.angle.x = 0; + params->base.angle.y = i_this->current.angle.y; + params->base.angle.z = cM_rndF(65536.0f); + params->base.parameters = 0x000000FF; fpcM_Create(PROC_ESA, 0, params); } } diff --git a/src/d/actor/d_a_kt.cpp b/src/d/actor/d_a_kt.cpp index ec24e90ff..350145177 100644 --- a/src/d/actor/d_a_kt.cpp +++ b/src/d/actor/d_a_kt.cpp @@ -338,9 +338,9 @@ static cPhs_State daKt_Create(fopAc_ac_c* i_ac) { fopAcM_SetParam(i_this, 1000); for (s32 i = 0; i < num; i++) { fopAcM_prm_class* params = fopAcM_CreateAppend(); - params->mPos = i_this->current.pos; - params->mAngle.set(0, 0, 0); - params->mParameter = 1001 + i; + params->base.position = i_this->current.pos; + params->base.angle.set(0, 0, 0); + params->base.parameters = 1001 + i; fpcM_Create(PROC_KT, NULL, params); } } diff --git a/src/d/actor/d_a_player_npc.cpp b/src/d/actor/d_a_player_npc.cpp index 98278a1af..19da6988b 100644 --- a/src/d/actor/d_a_player_npc.cpp +++ b/src/d/actor/d_a_player_npc.cpp @@ -89,7 +89,7 @@ void daPy_npc_c::setPointRestart(s16 i_point, s8 option) { int scls_start_code = scls_data[i_point].mStart; int i; for (i = 0; i < dComIfGp_getStagePlayerNum(); i++) { - u8 plyr_start_code = player_data->mAngle.z & 0xFF; + u8 plyr_start_code = player_data->base.angle.z & 0xFF; if (plyr_start_code == scls_start_code) { break; } @@ -97,8 +97,8 @@ void daPy_npc_c::setPointRestart(s16 i_point, s8 option) { } JUT_ASSERT(174, i != dComIfGp_getStagePlayerNum()); - home.pos = player_data->mSpawnPos; - home.angle.y = player_data->mAngle.y; + home.pos = player_data->base.position; + home.angle.y = player_data->base.angle.y; home.roomNo = -1; setOffsetHomePos(); current = home; diff --git a/src/d/actor/d_a_vrbox2.cpp b/src/d/actor/d_a_vrbox2.cpp index 17bf15da0..bef342209 100644 --- a/src/d/actor/d_a_vrbox2.cpp +++ b/src/d/actor/d_a_vrbox2.cpp @@ -5,7 +5,7 @@ #include "d/actor/d_a_vrbox2.h" #include "f_op/f_op_actor_mng.h" -#include "f_op/f_op_camera_mng.h" +#include "f_op/f_op_camera.h" #include "d/d_com_inf_game.h" #include "d/d_procname.h" #include "d/d_kankyo_rain.h" diff --git a/src/d/d_camera.cpp b/src/d/d_camera.cpp index 8492da3db..4b2e6300e 100644 --- a/src/d/d_camera.cpp +++ b/src/d/d_camera.cpp @@ -501,7 +501,7 @@ void dCamera_c::updatePad() { fVar3 = g_mDoCPd_cpadInfo[mPadId].mMainStickValue; } - cSAngle(g_mDoCPd_cpadInfo[mPadId].mMainStickAngle); // Unused object? Code matches so perhaps a developer oversight + cSAngle unused(g_mDoCPd_cpadInfo[mPadId].mMainStickAngle); // Unused object? Code matches so perhaps a developer oversight mStickMainPosXDelta = fVar1 - mStickMainPosXLast; mStickMainPosYDelta = fVar2 - mStickMainPosYLast; @@ -1118,7 +1118,7 @@ int dCamera_c::nextMode(s32 i_curMode) { } break; case 12: - if (mStickCValueLast < 0.01f && mDirection.R() < mCamSetup.m098 || chkFlag(0x80000000)) { + if ((mStickCValueLast < 0.01f && mDirection.R() < mCamSetup.m098) || chkFlag(0x80000000)) { m144 = 1; m184 = 0; } @@ -1534,7 +1534,7 @@ int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 i_roomNo) { int cam_type_num = 0; while (cam_type_num < type_num) { - if (strcmp((char*)&camera->mEntries[param_0].m00, types[cam_type_num].name) == 0) { + if (strcmp(camera->m_entries[param_0].m_cam_type, types[cam_type_num].name) == 0) { break; } cam_type_num++; @@ -1544,11 +1544,11 @@ int dCamera_c::GetCameraTypeFromMapToolID(s32 param_0, s32 i_roomNo) { return 0xFF; } - mCurRoomCamEntry = *(stage_camera__entry*)&camera->mEntries[param_0]; - int arrowIdx = mCurRoomCamEntry.mArrowIdx; + mCurRoomCamEntry = camera->m_entries[param_0]; + int arrowIdx = mCurRoomCamEntry.m_arrow_idx; if (arrowIdx != -1 && arrowIdx < arrow->num) { mCurArrowIdx = arrowIdx; - mCurRoomArrowEntry = *(stage_arrow__entry*)&arrow->mEntries[arrowIdx]; + mCurRoomArrowEntry = arrow->m_entries[arrowIdx]; } else { mCurArrowIdx = 0xFF; @@ -2891,7 +2891,8 @@ bool camera_draw(camera_process_class* i_this) { fopAc_ac_c* currPlayerActor = dComIfGp_getPlayer(i); f32 depth = currPlayerActor->current.pos.y; if (currPlayerActor->current.pos.y > 0.0f) { - f32 temp = 0; + // Fakematch? Fixes load order of y + f32 temp = 0.0f; } dComIfGp_map_draw( currPlayerActor->current.pos.x, diff --git a/src/d/d_com_inf_game.cpp b/src/d/d_com_inf_game.cpp index 484355d44..3c41c2136 100644 --- a/src/d/d_com_inf_game.cpp +++ b/src/d/d_com_inf_game.cpp @@ -573,7 +573,7 @@ int dComIfGd_setSimpleShadow2(cXyz* i_pos, f32 groundY, f32 param_2, cBgS_PolyIn } /* 800535B8-80053678 .text dComIfGp_getShip__Fii */ -dStage_Ship_data* dComIfGp_getShip(int i_roomNo, int param_1) { +dStage_Ship_dt_c* dComIfGp_getShip(int i_roomNo, int param_1) { dStage_roomDt_c* roomSt_p = dComIfGp_roomControl_getStatusRoomDt(i_roomNo); if (roomSt_p == NULL) { return NULL; @@ -584,7 +584,7 @@ dStage_Ship_data* dComIfGp_getShip(int i_roomNo, int param_1) { return NULL; } - dStage_Ship_data* data_p = ship_p->m_entries; + dStage_Ship_dt_c* data_p = ship_p->m_entries; if (data_p == NULL) { return NULL; } diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index 47625d0e1..af86a335f 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -325,12 +325,14 @@ void plight_set() { for (int i = 0; i < dComIfGp_getStagePlightNumInfo(); i++) { if (idx < 30) { - g_env_light.mLightInfluence[idx].mPos = plight_info[i].mPos; - g_env_light.mLightInfluence[idx].mColor.r = plight_info[i].mColorR; - g_env_light.mLightInfluence[idx].mColor.g = plight_info[i].mColorG; - g_env_light.mLightInfluence[idx].mColor.b = plight_info[i].mColorB; - g_env_light.mLightInfluence[idx].mPower = plight_info[i].mRadius * 200.0f; - g_env_light.mLightInfluence[idx].mFluctuation = plight_info[i].mFluctuation; + g_env_light.mLightInfluence[idx].mPos.x = plight_info[i].position.x; + g_env_light.mLightInfluence[idx].mPos.y = plight_info[i].position.y; + g_env_light.mLightInfluence[idx].mPos.z = plight_info[i].position.z; + g_env_light.mLightInfluence[idx].mColor.r = plight_info[i].color.r; + g_env_light.mLightInfluence[idx].mColor.g = plight_info[i].color.g; + g_env_light.mLightInfluence[idx].mColor.b = plight_info[i].color.b; + g_env_light.mLightInfluence[idx].mPower = plight_info[i].radius * 200.0f; + g_env_light.mLightInfluence[idx].mFluctuation = plight_info[i].fluctuation; dKy_plight_set(&g_env_light.mLightInfluence[idx]); idx++; } @@ -659,111 +661,111 @@ void dScnKy_env_light_c::setLight_palno_get(u8* i_envrSel0, u8* i_envrSel1, u8* stage_pselect_info_class* psel_p; switch (*i_pSelIdx0) { case 0: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[0]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[0]]; break; case 1: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[1]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[1]]; break; case 2: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[2]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[2]]; break; case 3: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[3]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[3]]; break; case 4: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[4]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[4]]; break; case 5: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[5]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[5]]; break; case 6: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[6]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[6]]; break; case 7: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[7]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[7]]; break; } switch (*i_pSelPalIdx0) { case 0: - *i_palIdx0A = psel_p->mPalIdx[0]; + *i_palIdx0A = psel_p->palette_id[0]; break; case 1: - *i_palIdx0A = psel_p->mPalIdx[1]; + *i_palIdx0A = psel_p->palette_id[1]; break; case 2: - *i_palIdx0A = psel_p->mPalIdx[2]; + *i_palIdx0A = psel_p->palette_id[2]; break; case 3: - *i_palIdx0A = psel_p->mPalIdx[3]; + *i_palIdx0A = psel_p->palette_id[3]; break; case 4: - *i_palIdx0A = psel_p->mPalIdx[4]; + *i_palIdx0A = psel_p->palette_id[4]; break; case 5: - *i_palIdx0A = psel_p->mPalIdx[5]; + *i_palIdx0A = psel_p->palette_id[5]; break; } switch (*i_pSelPalIdx1) { case 0: - *i_palIdx0B = psel_p->mPalIdx[0]; + *i_palIdx0B = psel_p->palette_id[0]; break; case 1: - *i_palIdx0B = psel_p->mPalIdx[1]; + *i_palIdx0B = psel_p->palette_id[1]; break; case 2: - *i_palIdx0B = psel_p->mPalIdx[2]; + *i_palIdx0B = psel_p->palette_id[2]; break; case 3: - *i_palIdx0B = psel_p->mPalIdx[3]; + *i_palIdx0B = psel_p->palette_id[3]; break; case 4: - *i_palIdx0B = psel_p->mPalIdx[4]; + *i_palIdx0B = psel_p->palette_id[4]; break; case 5: - *i_palIdx0B = psel_p->mPalIdx[5]; + *i_palIdx0B = psel_p->palette_id[5]; break; } envr_p = &g_env_light.mpEnvrInfo[*i_envrSel1]; switch (*i_pSelIdx1) { case 0: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[0]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[0]]; break; case 1: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[1]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[1]]; break; case 2: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[2]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[2]]; break; case 3: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[3]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[3]]; break; case 4: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[4]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[4]]; break; case 5: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[5]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[5]]; break; case 6: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[6]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[6]]; break; case 7: - psel_p = &g_env_light.mpPselectInfo[envr_p->mPselIdx[7]]; + psel_p = &g_env_light.mpPselectInfo[envr_p->pselect_id[7]]; break; } if (*i_envrSel0 != *i_envrSel1 || *i_pSelIdx0 != *i_pSelIdx1) { - if (psel_p->mChangeRate < 0.033333335f) { - psel_p->mChangeRate = 0.033333335f; + if (psel_p->change_rate < 0.033333335f) { + psel_p->change_rate = 0.033333335f; } if (g_env_light.mColPatMode == 0) { if (strcmp(dComIfGp_getStartStageName(), "sea") == 0 && *i_pSelIdx0 != *i_pSelIdx1) { *i_blendPal01 += 0.0033333334f; - } else if (psel_p->mChangeRate > 0.0f) { - *i_blendPal01 += 0.033333335f / psel_p->mChangeRate; + } else if (psel_p->change_rate > 0.0f) { + *i_blendPal01 += 0.033333335f / psel_p->change_rate; } if (*i_blendPal01 >= 1.0f) { @@ -776,43 +778,43 @@ void dScnKy_env_light_c::setLight_palno_get(u8* i_envrSel0, u8* i_envrSel1, u8* switch (*i_pSelPalIdx0) { case 0: - *i_palIdx1A = psel_p->mPalIdx[0]; + *i_palIdx1A = psel_p->palette_id[0]; break; case 1: - *i_palIdx1A = psel_p->mPalIdx[1]; + *i_palIdx1A = psel_p->palette_id[1]; break; case 2: - *i_palIdx1A = psel_p->mPalIdx[2]; + *i_palIdx1A = psel_p->palette_id[2]; break; case 3: - *i_palIdx1A = psel_p->mPalIdx[3]; + *i_palIdx1A = psel_p->palette_id[3]; break; case 4: - *i_palIdx1A = psel_p->mPalIdx[4]; + *i_palIdx1A = psel_p->palette_id[4]; break; case 5: - *i_palIdx1A = psel_p->mPalIdx[5]; + *i_palIdx1A = psel_p->palette_id[5]; break; } switch (*i_pSelPalIdx1) { case 0: - *i_palIdx1B = psel_p->mPalIdx[0]; + *i_palIdx1B = psel_p->palette_id[0]; break; case 1: - *i_palIdx1B = psel_p->mPalIdx[1]; + *i_palIdx1B = psel_p->palette_id[1]; break; case 2: - *i_palIdx1B = psel_p->mPalIdx[2]; + *i_palIdx1B = psel_p->palette_id[2]; break; case 3: - *i_palIdx1B = psel_p->mPalIdx[3]; + *i_palIdx1B = psel_p->palette_id[3]; break; case 4: - *i_palIdx1B = psel_p->mPalIdx[4]; + *i_palIdx1B = psel_p->palette_id[4]; break; case 5: - *i_palIdx1B = psel_p->mPalIdx[5]; + *i_palIdx1B = psel_p->palette_id[5]; break; } @@ -1900,13 +1902,13 @@ void dScnKy_env_light_c::SetBaseLight() { } if (plight_p != NULL) { - mBaseLightInfluence.mPos = plight_p->mPos; + mBaseLightInfluence.mPos = plight_p->position; mBaseLightInfluence.mColor.r = 0; mBaseLightInfluence.mColor.g = 0; mBaseLightInfluence.mColor.b = 0; mBaseLightInfluence.mColor.a = 0; - mBaseLightInfluence.mPower = plight_p->mRadius * 200.0f; - mBaseLightInfluence.mFluctuation = plight_p->mFluctuation; + mBaseLightInfluence.mPower = plight_p->radius * 200.0f; + mBaseLightInfluence.mFluctuation = plight_p->fluctuation; } else { if (dComIfGs_getTime() > 97.5f && dComIfGs_getTime() < 292.5f) { mBaseLightInfluence.mPos = env_light.mSunPos2; diff --git a/src/d/d_kyeff.cpp b/src/d/d_kyeff.cpp index e9f5d45ed..d35ea4722 100644 --- a/src/d/d_kyeff.cpp +++ b/src/d/d_kyeff.cpp @@ -28,7 +28,6 @@ static BOOL dKyeff_Draw(dKyeff_c* i_this) { /* 80198008-8019803C .text get_parcent__Ffff */ static f32 get_parcent(f32 param_0, f32 param_1, f32 param_2) { f32 temp_f1; - f32 temp_f2; f32 temp_f4 = param_0 - param_1; if (0.0f != temp_f4) { diff --git a/src/d/d_map.cpp b/src/d/d_map.cpp index b6dfe124e..245810014 100644 --- a/src/d/d_map.cpp +++ b/src/d/d_map.cpp @@ -65,7 +65,7 @@ f32 mapOffsetY() { if (dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_BOSS_e || dStage_stagInfo_GetSTType(dComIfGp_getStageStagInfo()) == dStageType_MINIBOSS_e) { if (dComIfGp_getStage().getDMap() != NULL) { dStage_DMap_c* pinf = dComIfGp_getStage().getDMap(); - dStage_DMap_entry_c* entry = pinf->entry; + dStage_DMap_dt_c* entry = pinf->entries; JUT_ASSERT(0x587, pinf->num == 1); for (int i = 0; i < pinf->num; i++, entry++) ret = entry->offsetY; @@ -84,10 +84,10 @@ BOOL dMap_GetTopBottomFloorNo(dStage_dt_c* stag, u8* bottom_p, u8* top_p) { u8 top; dStage_FloorInfo_c* floor = stag->getFloorInfo(); - dStage_FloorInfo_entry_c* entry; + dStage_FloorInfo_dt_c* entry; if (floor != NULL && floor->num >= 1) { - entry = floor->entry; + entry = floor->m_entries; bottom = Floor_B5F; top = Floor_5F; for (int i = 0; i < floor->num; i++, entry++) { @@ -121,13 +121,13 @@ void dMap_GetFloorInfoDtP(dStage_FloorInfo_c* floor, f32 ret) { } /* 80045A98-80045AEC .text dMap_GetFloorInfoDtPFromFloorNo__FP18dStage_FloorInfo_cUc */ -dStage_FloorInfo_entry_c* dMap_GetFloorInfoDtPFromFloorNo(dStage_FloorInfo_c* floor, u8 i_floorNo) { +dStage_FloorInfo_dt_c* dMap_GetFloorInfoDtPFromFloorNo(dStage_FloorInfo_c* floor, u8 i_floorNo) { /* Nonmatching */ - dStage_FloorInfo_entry_c* entry; + dStage_FloorInfo_dt_c* entry; BOOL valid = FALSE; if (floor != NULL) { - entry = floor->entry; + entry = floor->m_entries; for (int i = 0; i < floor->num; i++, entry++) { if (entry->floorNo == i_floorNo) { valid = TRUE; diff --git a/src/d/d_s_room.cpp b/src/d/d_s_room.cpp index d2f83f57f..7fb9d6c1d 100644 --- a/src/d/d_s_room.cpp +++ b/src/d/d_s_room.cpp @@ -210,7 +210,7 @@ cPhs_State phase_2(room_of_scene_class* i_this) { if (dStage_roomControl_c::mDemoArcName[0] == '\0') { dStage_Lbnk_c * lbnk = dComIfGp_roomControl_getStatusRoomDt(roomNo)->getLbnk(); if (lbnk != NULL) { - u8 * banks = lbnk->m_bank; + u8* banks = lbnk->m_entries; if (banks != NULL) { u32 layerNo = dComIfG_play_c::getLayerNo(roomNo); s32 bank = banks[layerNo]; diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index eb30261ef..be5ae23e7 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -146,7 +146,7 @@ void dStage_roomControl_c::init() { mDarkRatio = 0xFF; - for (int i = 0; i < 16; i++) { + for (int i = 0; i < MEMORY_BLOCK_MAX; i++) { mMemoryBlock[i] = NULL; } } @@ -361,7 +361,7 @@ JKRExpHeap* dStage_roomControl_c::createMemoryBlock(int i_blockIdx, u32 i_heapSi /* 800413D4-80041430 .text destroyMemoryBlock__20dStage_roomControl_cFv */ 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) { mMemoryBlock[i]->destroy(); } @@ -1298,28 +1298,31 @@ const char* dStage_getName2(s16 i_procName, s8 i_subtype) { /* 80041628-8004169C .text dStage_actorCreate__FP22stage_actor_data_classP16fopAcM_prm_class */ void dStage_actorCreate(stage_actor_data_class* i_actorData, fopAcM_prm_class* i_actorPrm) { - dStage_objectNameInf* nameinf_p = dStage_searchName(i_actorData->mName); + dStage_objectNameInf* nameinf_p = dStage_searchName(i_actorData->name); if (nameinf_p == NULL) { JKRHeap::free(i_actorPrm, NULL); } else { - i_actorPrm->mSubtype = nameinf_p->mSubtype; - i_actorPrm->mGbaName = nameinf_p->mGbaName; - layer_class* curLayer = fpcLy_CurrentLayer(); - fpcSCtRq_Request(curLayer, nameinf_p->mProcName, NULL, NULL, i_actorPrm); + i_actorPrm->subtype = nameinf_p->mSubtype; + i_actorPrm->gbaName = nameinf_p->mGbaName; + fopAcM_create(nameinf_p->mProcName, NULL, i_actorPrm); } } /* 8004169C-80041708 .text dStage_cameraCreate__FP24stage_camera2_data_classii */ 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->m04 = 0.0f; - i_cameraData->m08 = 0.0f; - i_cameraData->m04 = 0.0f; - i_cameraData->m00 = 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; @@ -1344,19 +1347,19 @@ stage_actor_data_class* dStage_decodeSearchIkada(void* i_file, int ikadaShipId) }; if (i_file != NULL) { - dStage_fileHeader* file = ((dStage_fileHeader*)i_file); - dStage_nodeHeader* node; + dStage_fileHeader* file = (dStage_fileHeader*)i_file; + dStage_nodeHeader* p_tno; for (int i = 0; i < ARRAY_SIZE(actor_node_names); i++) { - node = ((dStage_nodeHeader*)(file + 1)); - for (int j = 0; j < file->chunkCount; j++) { - if ((s32)node->m_tag == *(s32*)actor_node_names[i]) { - stage_actor_data_class* actor_data = (stage_actor_data_class*)node->m_offset; - for (int k = 0; k < node->m_entryNum; k++) { - if (strcmp(actor_data->mName, "ikada_h") == 0 || - strcmp(actor_data->mName, "ikada_u") == 0 || - strcmp(actor_data->mName, "ikadaS") == 0) + p_tno = file->m_nodes; + for (int j = 0; j < file->m_chunkCount; j++) { + if ((s32)p_tno->m_tag == *(s32*)actor_node_names[i]) { + stage_actor_data_class* actor_data = (stage_actor_data_class*)p_tno->m_offset; + for (int k = 0; k < p_tno->m_entryNum; k++) { + if (strcmp(actor_data->name, "ikada_h") == 0 || + strcmp(actor_data->name, "ikada_u") == 0 || + strcmp(actor_data->name, "ikadaS") == 0) { - if (IkadaGetIkadaIdArgPrm(actor_data->mParameter) == ikadaShipId) { + if (IkadaGetIkadaIdArgPrm(actor_data->base.parameters) == ikadaShipId) { return actor_data; } } @@ -1364,7 +1367,7 @@ stage_actor_data_class* dStage_decodeSearchIkada(void* i_file, int ikadaShipId) } break; } - node++; + p_tno++; } } } @@ -1377,26 +1380,26 @@ void dStage_playerInitIkada(fopAcM_prm_class* player_prm, void* i_file) { JUT_ASSERT(1590, ikada_data != NULL); u8 roomNo = dComIfGp_getIkadaShipBeforeRoomId(); - player_prm->mParameter = 0xFF000000 | roomNo; - player_prm->mParameter |= 0x80; + player_prm->base.parameters = 0xFF000000 | roomNo; + player_prm->base.parameters |= 0x80; - mDoMtx_stack_c::transS(ikada_data->mSpawnPos); - mDoMtx_stack_c::YrotM(ikada_data->mAngle.y); + mDoMtx_stack_c::transS(ikada_data->base.position); + mDoMtx_stack_c::YrotM(ikada_data->base.angle.y); cXyz offset(0.0f, 87.0f, 550.0f); cXyz pos; mDoMtx_stack_c::multVec(&offset, &pos); daSea_execute(pos); f32 seaHeight = 0.0f; - if (daSea_ChkArea(ikada_data->mSpawnPos.x, ikada_data->mSpawnPos.z)) { - seaHeight = daSea_calcWave(ikada_data->mSpawnPos.x, ikada_data->mSpawnPos.z); + if (daSea_ChkArea(ikada_data->base.position.x, ikada_data->base.position.z)) { + seaHeight = daSea_calcWave(ikada_data->base.position.x, ikada_data->base.position.z); } pos.y += seaHeight; pos.y += 500.0f; - player_prm->mPos.set(pos); + player_prm->base.position.set(pos); - s16 angleZ = (ikada_data->mAngle.x & 0xFF) << 8; - player_prm->mAngle.set(0, ikada_data->mAngle.y, angleZ); + s16 angleZ = (ikada_data->base.angle.x & 0xFF) << 8; + player_prm->base.angle.set(0, ikada_data->base.angle.y, angleZ); } /* 800419D0-80041AEC .text dStage_chkPlayerId__Fii */ @@ -1415,7 +1418,7 @@ bool dStage_chkPlayerId(int playerId, int room_no) { stage_actor_data_class * actor = player->m_entries; for (int i = 0; i < player->num; i++, actor++) - if ((u8)actor->mAngle.z == playerId) + if ((u8)actor->base.angle.z == playerId) return true; return false; @@ -1441,17 +1444,17 @@ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* i_file) if (point == -2) { dStage_playerInitIkada(appen, i_file); } else if (point == -3) { - appen->mParameter = dComIfGs_getTurnRestartParam(); - appen->mPos = dComIfGs_getTurnRestartPos(); - appen->mAngle.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->mParameter = dComIfGs_getRestartRoomParam(); - appen->mPos = dComIfGs_getRestartRoomPos(); - appen->mAngle.set(0, dComIfGs_getRestartRoomAngleY(), -0x100); + appen->base.parameters = dComIfGs_getRestartRoomParam(); + appen->base.position = dComIfGs_getRestartRoomPos(); + appen->base.angle.set(0, dComIfGs_getRestartRoomAngleY(), -0x100); } else { int i; for (i = 0; i < num; i++) { - if ((u8)player_data->mAngle.z == point) { + if ((u8)player_data->base.angle.z == point) { break; } player_data++; @@ -1459,25 +1462,25 @@ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* i_file) JUT_ASSERT(1787, i != num); - appen->mParameter = player_data->mParameter; - appen->mPos = player_data->mSpawnPos; - appen->mAngle = player_data->mAngle; - appen->mSetId = player_data->mSetId; + appen->base.parameters = player_data->base.parameters; + appen->base.position = player_data->base.position; + appen->base.angle = player_data->base.angle; + appen->base.setID = player_data->base.setID; - if (roomParam != 0 && (int)((appen->mParameter >> 0xC) & 0xF) != 2) { - appen->mParameter = (roomParam & 0xFFFFFFC0) | (appen->mParameter & 0x3F); + if (roomParam != 0 && (int)((appen->base.parameters >> 0xC) & 0xF) != 2) { + appen->base.parameters = (roomParam & 0xFFFFFFC0) | (appen->base.parameters & 0x3F); } } dComIfGs_setRestartRoomParam(0); - appen->mSetId = 0xFFFF; - appen->mRoomNo = -1; + appen->base.setID = 0xFFFF; + appen->room_no = -1; - dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->mParameter & 0x3F, + dComIfGp_getStartStage()->set(dComIfGp_getStartStageName(), appen->base.parameters & 0x3F, dComIfGp_getStartStagePoint(), dComIfGp_getStartStageLayer()); - dComIfGp_setShipId((appen->mAngle.z >> 8) & 0xFF); - dComIfGp_setShipRoomId(appen->mParameter & 0x3F); + dComIfGp_setShipId((appen->base.angle.z >> 8) & 0xFF); + dComIfGp_setShipRoomId(appen->base.parameters & 0x3F); dStage_actorCreate(player_data, appen); scene_class* stageProc = fopScnM_SearchByID(dStage_roomControl_c::getProcID()); @@ -1489,7 +1492,7 @@ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* i_file) fopMsgM_Create(PROC_METER, NULL, NULL); - cXyz agb_pos(appen->mPos.x, appen->mPos.y + 10.0f, appen->mPos.z); + cXyz agb_pos(appen->base.position.x, appen->base.position.y + 10.0f, appen->base.position.z); fopAcM_create(PROC_AGB, 0, &agb_pos); dComIfGp_setAgb(NULL); return 1; @@ -1499,7 +1502,7 @@ int dStage_playerInit(dStage_dt_c* i_stage, void* i_data, int num, void* i_file) int dStage_cameraInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_camera_class* camera = (stage_camera_class*)((char*)i_data + 4); i_stage->setCamera(camera); - dStage_cameraCreate(camera->mEntries, 0, 0); + dStage_cameraCreate(camera->m_entries, 0, 0); return 1; } @@ -1678,15 +1681,15 @@ int dStage_actorInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { stage_actor_data_class* actor_data = actor->m_entries; for (int i = 0; i < actor->num; i++) { - if (!dComIfGs_isActor(actor_data->mSetId, i_stage->getRoomNo())) { + if (!dComIfGs_isActor(actor_data->base.setID, i_stage->getRoomNo())) { fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->mParameter = actor_data->mParameter; - appen->mPos = actor_data->mSpawnPos; - appen->mAngle = actor_data->mAngle; - appen->mSetId = actor_data->mSetId; - appen->mRoomNo = i_stage->getRoomNo(); + appen->base.parameters = actor_data->base.parameters; + appen->base.position = actor_data->base.position; + appen->base.angle = actor_data->base.angle; + appen->base.setID = actor_data->base.setID; + appen->room_no = i_stage->getRoomNo(); dStage_actorCreate(actor_data, appen); } } @@ -1698,22 +1701,20 @@ int dStage_actorInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { /* 800424BC-8004259C .text dStage_tgscInfoInit__FP11dStage_dt_cPviPv */ int dStage_tgscInfoInit(dStage_dt_c* i_stage, void* i_data, int i_num, void*) { - stage_tgsc_class* actor = (stage_tgsc_class*)((int*)i_data + 1); - stage_tgsc_data_class* actor_data = actor->m_entries; + stage_tgsc_class* tgsc = (stage_tgsc_class*)((int*)i_data + 1); + stage_tgsc_data_class* tgsc_data = tgsc->m_entries; - for (int i = 0; i < actor->num; i++) { + for (int i = 0; i < tgsc->num; i++) { + stage_actor_data_class* actor_data = (stage_actor_data_class*)tgsc_data; fopAcM_prm_class* appen = fopAcM_CreateAppend(); if (appen != NULL) { - appen->mParameter = actor_data->mParameter; - appen->mPos = actor_data->mSpawnPos; - appen->mAngle = actor_data->mAngle; - appen->mSetId = actor_data->mSetId; - appen->mRoomNo = i_stage->getRoomNo(); - appen->mScale = actor_data->mScale; + appen->base = actor_data->base; + appen->room_no = i_stage->getRoomNo(); + appen->scale = tgsc_data->scale; dStage_actorCreate(actor_data, appen); } - actor_data++; + tgsc_data++; } return 1; @@ -1727,7 +1728,7 @@ int dStage_roomReadInit(dStage_dt_c* i_stage, void* i_data, int i_num, void* i_f for (int i = 0; i < rtbl->num; i++) { rtbl_entries[i] = (roomRead_data_class*)((u32)i_file + (u32)rtbl_entries[i]); - rtbl_entries[i]->mpRooms = (u8*)((u32)i_file + (u32)rtbl_entries[i]->mpRooms); + rtbl_entries[i]->m_rooms = (u8*)((u32)i_file + (u32)rtbl_entries[i]->m_rooms); } return 1; @@ -1849,7 +1850,7 @@ bool dStage_setShipPos(int param_0, int i_roomNo) { if (param_0 != 0xFF) { i_roomNo = i_roomNo == 0xFF ? dComIfGp_roomControl_getStayNo() : i_roomNo; - dStage_Ship_data* ship_data_p = dComIfGp_getShip(i_roomNo, param_0); + dStage_Ship_dt_c* ship_data_p = dComIfGp_getShip(i_roomNo, param_0); if (ship_data_p != NULL) { daShip_c* ship_p = (daShip_c*)fopAcM_SearchByName(PROC_SHIP); if (ship_p != NULL) { @@ -1961,19 +1962,19 @@ void dKankyo_create() { void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* i_funcTbl, int i_tblSize) { if (i_data != NULL) { for (int i = 0; i < i_tblSize; i++) { - dStage_fileHeader* file = ((dStage_fileHeader*)i_data); - dStage_nodeHeader* node = ((dStage_nodeHeader*)(file + 1)); + dStage_fileHeader* file = (dStage_fileHeader*)i_data; + dStage_nodeHeader* p_tno = file->m_nodes; FuncTable* nodeFunc = i_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++; } } } @@ -1981,9 +1982,10 @@ void dStage_dt_c_decode(void* i_data, dStage_dt_c* i_stage, FuncTable* i_funcTbl /* 80042FC4-80042FFC .text dStage_dt_c_offsetToPtr__FPv */ 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++) { if (p_tno->m_offset != 0) { p_tno->m_offset += (u32)i_data; } @@ -2173,8 +2175,8 @@ void dStage_Create() { *dStage_roomControl_c::getDemoArcName() = NULL; if (dComIfG_getStageRes("Stage", "vr_sky.bdl") != NULL) { - fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX, NULL, NULL, NULL); - fpcSCtRq_Request(fpcLy_CurrentLayer(), PROC_VRBOX2, NULL, NULL, NULL); + fopAcM_Create(PROC_VRBOX, NULL, NULL); + fopAcM_Create(PROC_VRBOX2, NULL, NULL); } dComIfGp_evmng_create(); @@ -2219,7 +2221,7 @@ int dStage_RoomCheck(cBgS_GndChk* i_gndChk) { dComIfGp_roomControl_setTimePass(timePass); roomRead_data_class* room_data = room->m_entries[roomReadId]; - return dComIfGp_roomControl_loadRoom(room_data->mRoomCount, room_data->mpRooms); + return dComIfGp_roomControl_loadRoom(room_data->num, room_data->m_rooms); } return 1; diff --git a/src/f_op/f_op_actor.cpp b/src/f_op/f_op_actor.cpp index d0ac5787a..a3a9dae47 100644 --- a/src/f_op/f_op_actor.cpp +++ b/src/f_op/f_op_actor.cpp @@ -156,16 +156,16 @@ cPhs_State fopAc_Create(void* pProc) { fopAcM_prm_class* prm = fopAcM_GetAppend(actor); if (prm != NULL) { - fopAcM_SetParam(actor, prm->mParameter); - actor->home.pos = prm->mPos; - actor->home.angle = prm->mAngle; - actor->shape_angle = prm->mAngle; - actor->parentActorID = prm->mParentPcId; - actor->subtype = prm->mSubtype; - actor->gbaName = prm->mGbaName; - actor->scale.set(prm->mScale.x * 0.1f, prm->mScale.y * 0.1f, prm->mScale.z * 0.1f); - actor->setID = prm->mSetId; - actor->home.roomNo = prm->mRoomNo; + fopAcM_SetParam(actor, prm->base.parameters); + actor->home.pos = prm->base.position; + actor->home.angle = prm->base.angle; + actor->shape_angle = prm->base.angle; + actor->parentActorID = prm->parent_id; + actor->subtype = prm->subtype; + actor->gbaName = prm->gbaName; + actor->scale.set(prm->scale.x * 0.1f, prm->scale.y * 0.1f, prm->scale.z * 0.1f); + actor->setID = prm->base.setID; + actor->home.roomNo = prm->room_no; } actor->old = actor->home; diff --git a/src/f_op/f_op_actor_mng.cpp b/src/f_op/f_op_actor_mng.cpp index df1e68cf2..4d5832fbe 100644 --- a/src/f_op/f_op_actor_mng.cpp +++ b/src/f_op/f_op_actor_mng.cpp @@ -80,13 +80,13 @@ fopAcM_prm_class* fopAcM_CreateAppend() { fopAcM_prm_class* params = (fopAcM_prm_class*)cMl::memalignB(-4, sizeof(fopAcM_prm_class)); if (params != NULL) { cLib_memSet(params, 0, sizeof(fopAcM_prm_class)); - params->mSetId = 0xFFFF; - params->mRoomNo = -1; - params->mScale.x = 10; - params->mScale.y = 10; - params->mScale.z = 10; - params->mParentPcId = fpcM_ERROR_PROCESS_ID_e; - params->mSubtype = -1; + params->base.setID = 0xFFFF; + params->room_no = -1; + params->scale.x = 10; + params->scale.y = 10; + params->scale.z = 10; + params->parent_id = fpcM_ERROR_PROCESS_ID_e; + params->subtype = -1; } return params; } @@ -98,30 +98,30 @@ fopAcM_prm_class * createAppend(u32 parameter, cXyz* pPos, int roomNo, csXyz* pA return NULL; if (pPos != NULL) - params->mPos = *pPos; + params->base.position = *pPos; else - params->mPos = cXyz::Zero; + params->base.position = cXyz::Zero; - params->mRoomNo = roomNo; + params->room_no = roomNo; if (pAngle != NULL) - params->mAngle = *pAngle; + params->base.angle = *pAngle; else - params->mAngle = csXyz::Zero; + params->base.angle = csXyz::Zero; if (pScale != NULL) { - params->mScale.x = 10.0f * pScale->x; - params->mScale.y = 10.0f * pScale->y; - params->mScale.z = 10.0f * pScale->z; + params->scale.x = 10.0f * pScale->x; + params->scale.y = 10.0f * pScale->y; + params->scale.z = 10.0f * pScale->z; } else { - params->mScale.x = 10.0f; - params->mScale.y = 10.0f; - params->mScale.z = 10.0f; + params->scale.x = 10.0f; + params->scale.y = 10.0f; + params->scale.z = 10.0f; } - params->mParameter = parameter; - params->mParentPcId = parentPcId; - params->mSubtype = subtype; + params->base.parameters = parameter; + params->parent_id = parentPcId; + params->subtype = subtype; return params; } @@ -1388,11 +1388,11 @@ fopAc_ac_c* fopAcM_findObjectCB(fopAc_ac_c* it, void* i_prm) { fopAcM_search_prm* Prm = (fopAcM_search_prm*)i_prm; JUT_ASSERT(4095, Prm); - dStage_objectNameInf *inf = dStage_searchName(Prm->mpProcName); + dStage_objectNameInf *inf = dStage_searchName(Prm->procname); if (inf == NULL) return NULL; - if (inf->mProcName == fopAcM_GetProfName(it) && inf->mSubtype == it->subtype && (Prm->mParamMask == 0 || Prm->mParameter == (fopAcM_GetParam(it) & Prm->mParamMask))) + if (inf->mProcName == fopAcM_GetProfName(it) && inf->mSubtype == it->subtype && (Prm->prm_mask == 0 || Prm->parameter == (fopAcM_GetParam(it) & Prm->prm_mask))) return it; return NULL; @@ -1401,9 +1401,9 @@ fopAc_ac_c* fopAcM_findObjectCB(fopAc_ac_c* it, void* i_prm) { /* 80028410-80028448 .text fopAcM_searchFromName__FPcUlUl */ fopAc_ac_c* fopAcM_searchFromName(char* pProcName, u32 paramMask, u32 parameter) { fopAcM_search_prm param; - param.mpProcName = pProcName; - param.mParamMask = paramMask; - param.mParameter = parameter; + param.procname = pProcName; + param.prm_mask = paramMask; + param.parameter = parameter; return fopAcM_Search((fopAcIt_JudgeFunc)fopAcM_findObjectCB, ¶m); } diff --git a/src/f_op/f_op_camera.cpp b/src/f_op/f_op_camera.cpp index 818afb862..945486f94 100644 --- a/src/f_op/f_op_camera.cpp +++ b/src/f_op/f_op_camera.cpp @@ -4,6 +4,7 @@ // #include "f_op/f_op_camera.h" +#include "f_op/f_op_camera_mng.h" #include "f_op/f_op_draw_tag.h" #include "dolphin/types.h" #include "d/d_meter.h" @@ -56,10 +57,10 @@ cPhs_State fopCam_Create(void* pProc) { camera->mpMtd = profile->sub_method; fopDwTg_Init(&camera->draw_tag, camera); - u32* append = (u32*)fpcM_GetAppend(camera); + fopCamM_prm_class* append = (fopCamM_prm_class*)fpcM_GetAppend(camera); if (append) { - fpcM_SetParam(camera, *append); + fpcM_SetParam(camera, append->base.parameters); } } diff --git a/src/f_op/f_op_kankyo.cpp b/src/f_op/f_op_kankyo.cpp index 7bef5a13b..1ef9a7e0c 100644 --- a/src/f_op/f_op_kankyo.cpp +++ b/src/f_op/f_op_kankyo.cpp @@ -71,7 +71,7 @@ static cPhs_State fopKy_Create(void* i_ky) { i_this->sub_method = profile->sub_method; fopDwTg_Init(&i_this->draw_tag, i_this); - fopKyM_prm_class* append = (fopKyM_prm_class*)fopKyM_GetAppend(i_this); + fopKyM_prm_class* append = fopKyM_GetAppend(i_this); if (append != NULL) { i_this->mPos = append->mPos;