diff options
| author | hatal175 <hatal175@users.noreply.github.com> | 2024-01-18 01:19:10 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-01-17 15:19:10 -0800 |
| commit | f97fc769df40a69b12ca9b28be389b236400dcdb (patch) | |
| tree | b701ad324df1a5958ee5ca1560dc9b78d10efc20 /include | |
| parent | 772a04851cd945cc28f6651ca03c177899dec631 (diff) | |
d_s_play OK, work on d_a_ykgr (#2035)
Diffstat (limited to 'include')
| -rw-r--r-- | include/d/com/d_com_inf_game.h | 17 | ||||
| -rw-r--r-- | include/d/d_model.h | 2 | ||||
| -rw-r--r-- | include/d/d_stage.h | 5 | ||||
| -rw-r--r-- | include/d/s/d_s_play.h | 20 | ||||
| -rw-r--r-- | include/d/save/d_save.h | 1 | ||||
| -rw-r--r-- | include/d/save/d_save_HIO.h | 2 | ||||
| -rw-r--r-- | include/f_op/f_op_camera_mng.h | 4 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_suspend/d_a_suspend.h | 2 | ||||
| -rw-r--r-- | include/rel/d/a/d_a_ykgr/d_a_ykgr.h | 95 |
9 files changed, 134 insertions, 14 deletions
diff --git a/include/d/com/d_com_inf_game.h b/include/d/com/d_com_inf_game.h index 86f902daa0..64b06fdf3b 100644 --- a/include/d/com/d_com_inf_game.h +++ b/include/d/com/d_com_inf_game.h @@ -808,6 +808,7 @@ extern dComIfG_inf_c g_dComIfG_gameInfo; extern GXColor g_blackColor; extern GXColor g_clearColor; extern GXColor g_whiteColor; +extern GXColor g_saftyWhiteColor; int dComLbG_PhaseHandler(request_of_phase_process_class*, request_of_phase_process_fn*, void*); BOOL dComIfG_resetToOpening(scene_class* scene); @@ -1835,6 +1836,10 @@ inline void dComIfGs_setBButtonItemKey(u8 i_itemNo) { g_dComIfG_gameInfo.info.getPlayer().getPlayerStatusA().setSelectEquip(4, i_itemNo); } +inline void dComIfGs_offPlayerFieldLastStayFieldDataExistFlag() { + g_dComIfG_gameInfo.info.getPlayer().getPlayerFieldLastStayInfo().offFieldDataExistFlag(); +} + void dComIfGp_setSelectItem(int index); s32 dComIfGp_offHeapLockFlag(int flag); void dComIfGp_createSubExpHeap2D(); @@ -1886,6 +1891,10 @@ inline void dComIfGp_itemDataInit() { g_dComIfG_gameInfo.play.itemInit(); } +inline void dComIfGp_init() { + g_dComIfG_gameInfo.play.init(); +} + inline bool i_dComIfGp_checkPlayerStatus0(int param_0, u32 flag) { return g_dComIfG_gameInfo.play.checkPlayerStatus(param_0, 0, flag); } @@ -2966,6 +2975,10 @@ inline void dComIfGp_createSimpleModel() { g_dComIfG_gameInfo.play.createSimpleModel(); } +inline void dComIfGp_deleteSimpleModel() { + g_dComIfG_gameInfo.play.deleteSimpleModel(); +} + inline void i_dComIfGp_setHitMark(u16 i_hitmark, fopAc_ac_c* param_1, const cXyz* param_2, const csXyz* param_3, const cXyz* param_4, u32 i_atType) { g_dComIfG_gameInfo.play.getParticle()->setHitMark(i_hitmark, param_1, param_2, param_3, param_4, @@ -3137,6 +3150,10 @@ inline void i_dComIfGp_event_reset() { g_dComIfG_gameInfo.play.getEvent().reset(); } +inline void i_dComIfGp_event_remove() { + g_dComIfG_gameInfo.play.getEvent().remove(); +} + inline void dComIfGp_event_onEventFlag(u16 i_flag) { g_dComIfG_gameInfo.play.getEvent().onEventFlag(i_flag); } diff --git a/include/d/d_model.h b/include/d/d_model.h index f42868549e..9dc33d0ef2 100644 --- a/include/d/d_model.h +++ b/include/d/d_model.h @@ -44,7 +44,7 @@ public: /* 8009C724 */ dMdl_c* entry(J3DModelData*, u16, dKy_tevstr_c*); /* 8009C8D8 */ static dMdl_c* entry(J3DModelData*, u16, int); /* 8009C7AC */ static void create(); - /* 8009C864 */ void remove(); + /* 8009C864 */ static void remove(); /* 8009C8C0 */ static void reset(); static dMdl_mng_c* m_myObj; diff --git a/include/d/d_stage.h b/include/d/d_stage.h index a7f0e7ee3d..128e6dcfdb 100644 --- a/include/d/d_stage.h +++ b/include/d/d_stage.h @@ -997,11 +997,12 @@ static int dStage_fieldMapMapPathInit(dStage_dt_c*, void*, int, void*); s8 dStage_roomRead_dt_c_GetReverbStage(roomRead_class&, int); int dStage_changeScene(int i_exitId, f32 i_speed, u32 i_mode, s8 i_roomNo, s16 i_angle, int i_layerOverride); void dStage_infoCreate(); -u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer); +u32 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info, int layer); int dStage_changeSceneExitId(cBgS_PolyInfo& param_0, f32 speed, u32 mode, s8 roomNo, s16 angle); int dStage_changeScene4Event(int i_exitId, s8 room_no, int i_wipe, bool param_3, f32 speed, 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; @@ -1043,7 +1044,7 @@ inline u32 dStage_stagInfo_GetMiniMap(stage_stag_info_class* pstag) { return (pstag->field_0x0a >> 0xD) & 7; } -inline u8 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info) { +inline u32 dStage_stagInfo_GetParticleNo(stage_stag_info_class* p_info) { return (p_info->field_0x0a >> 0x3) & 0xFF; } diff --git a/include/d/s/d_s_play.h b/include/d/s/d_s_play.h index 6de31dc345..f81d367e50 100644 --- a/include/d/s/d_s_play.h +++ b/include/d/s/d_s_play.h @@ -16,29 +16,29 @@ public: class dScnPly_reg_HIO_c { public: - /* 8025AD78 */ virtual ~dScnPly_reg_HIO_c(); + /* 8025AD78 */ virtual ~dScnPly_reg_HIO_c() {} -#ifdef DEBUG /* 0x4 */ u8 field_0x4[0x8 - 0x4]; +#ifdef DEBUG /* 0x8 */ dScnPly_reg_childHIO_c mChildReg[26]; #endif }; class mDoHIO_entry_c { public: - virtual ~mDoHIO_entry_c(); + virtual ~mDoHIO_entry_c() {} }; class dScnPly_preLoad_HIO_c : public mDoHIO_entry_c { public: - /* 8025ADC0 */ virtual ~dScnPly_preLoad_HIO_c(); + /* 8025ADC0 */ virtual ~dScnPly_preLoad_HIO_c() {} }; class dScnPly_env_otherHIO_c { public: /* 80259440 */ dScnPly_env_otherHIO_c(); - /* 8025AC0C */ virtual ~dScnPly_env_otherHIO_c(); + /* 8025AC0C */ virtual ~dScnPly_env_otherHIO_c() {} /* 0x4 */ f32 mShadowDensity; /* 0x8 */ u8 mLODBias; @@ -50,7 +50,7 @@ class dScnPly_env_debugHIO_c { public: /* 80259468 */ dScnPly_env_debugHIO_c(); - /* 8025ABC4 */ virtual ~dScnPly_env_debugHIO_c(); + /* 8025ABC4 */ virtual ~dScnPly_env_debugHIO_c() {} private: /* 0x04 */ u8 field_0x4; @@ -62,9 +62,9 @@ private: class dScnPly_env_HIO_c { public: - /* 8025AD04 */ virtual ~dScnPly_env_HIO_c(); + /* 8025AD04 */ virtual ~dScnPly_env_HIO_c() {} - /* 0x04 */ u8 field_0x4; + /* 0x04 */ s8 field_0x4; /* 0x08 */ dScnPly_env_otherHIO_c mOther; /* 0x14 */ dScnPly_env_debugHIO_c mDebug; }; @@ -90,8 +90,8 @@ public: /* 0x1D4 */ u8 field_0x1d4; }; -extern u8 g_envHIO[68]; -extern u8 g_regHIO[4]; +extern dScnPly_env_HIO_c g_envHIO; +extern dScnPly_reg_HIO_c g_regHIO; /** * === Register Usage === diff --git a/include/d/save/d_save.h b/include/d/save/d_save.h index a81b6c93dd..31569a7e42 100644 --- a/include/d/save/d_save.h +++ b/include/d/save/d_save.h @@ -509,6 +509,7 @@ public: void set(const char* i_name, const cXyz& i_pos, s16 i_angle, s8 i_spawn, u8 i_regionNo); bool isFieldDataExistFlag() const { return mFieldDataExistFlag; } + void offFieldDataExistFlag() { mFieldDataExistFlag = false; } private: /* 0x00 */ cXyz mPos; diff --git a/include/d/save/d_save_HIO.h b/include/d/save/d_save_HIO.h index 032fed4d21..3239bb29d8 100644 --- a/include/d/save/d_save_HIO.h +++ b/include/d/save/d_save_HIO.h @@ -228,4 +228,6 @@ public: STATIC_ASSERT(sizeof(dSvBit_HIO_c) == 0x4A0); +extern dSvBit_HIO_c g_save_bit_HIO; + #endif /* D_SAVE_D_SAVE_HIO_H */ diff --git a/include/f_op/f_op_camera_mng.h b/include/f_op/f_op_camera_mng.h index b92d6a4e30..1d842e63cb 100644 --- a/include/f_op/f_op_camera_mng.h +++ b/include/f_op/f_op_camera_mng.h @@ -64,6 +64,10 @@ inline f32 fopCamM_GetFovy(camera_class* i_camera) { return i_camera->mFovy; } +inline cXyz* fopCamM_GetEye_p(camera_class* i_camera) { + return &i_camera->mLookat.mEye; +} + u32 fopCamM_Create(int i_cameraIdx, s16 pProcName, void* param_3); void fopCamM_Management(void); u32 fopCamM_GetParam(camera_class* pCamera); diff --git a/include/rel/d/a/d_a_suspend/d_a_suspend.h b/include/rel/d/a/d_a_suspend/d_a_suspend.h index 4449d0580a..858301e30a 100644 --- a/include/rel/d/a/d_a_suspend/d_a_suspend.h +++ b/include/rel/d/a/d_a_suspend/d_a_suspend.h @@ -43,7 +43,7 @@ public: }; // Size: 0x4 /* 80031248 */ static int newData(s8, cXyz const&, cXyz const&, u8, u8, u8); - /* 800313BC */ void reset(); + /* 800313BC */ static void reset(); /* 800314D4 */ static void check(fopAc_ac_c*); /* 80031434 */ static bool check(s8 i_roomNo, cXyz const& i_pos); /* 800315A4 */ static void execute(); diff --git a/include/rel/d/a/d_a_ykgr/d_a_ykgr.h b/include/rel/d/a/d_a_ykgr/d_a_ykgr.h index 740b9c19cc..a13b62e7d2 100644 --- a/include/rel/d/a/d_a_ykgr/d_a_ykgr.h +++ b/include/rel/d/a/d_a_ykgr/d_a_ykgr.h @@ -2,5 +2,100 @@ #define D_A_YKGR_H #include "dolphin/types.h" +#include "JSystem/JParticle/JPAParticle.h" +#include "JSystem/JKernel/JKRHeap.h" +#include "SSystem/SComponent/c_math.h" +#include "f_op/f_op_actor.h" +#include "f_op/f_op_camera_mng.h" +#include "f_op/f_op_actor_mng.h" +#include "d/d_path.h" +#include "d/kankyo/d_kankyo_rain.h" +#include "d/com/d_com_inf_game.h" +#include "d/particle/d_particle.h" + +struct daYkgr_HIO_c { + /* 805A8D98 */ ~daYkgr_HIO_c(); + + u32 vtable; + u8 field_0x4[0x20 - 0x4]; + f32 field_0x20; + f32 field_0x24; +}; + +struct dPa_YkgrPcallBack /*: public JPAParticleCallBack */ { + /* 805A8E3C */ ~dPa_YkgrPcallBack(); + /* 805A848C */ void draw(JPABaseEmitter*, JPABaseParticle*); + /* 805A84D4 */ void setParam(f32); + + u32 vtable; + /* 0x04 */ f32 field_0x4; + /* 0x08 */ f32 field_0x8; + /* 0x0C */ f32 field_0xc; + /* 0x10 */ f32 field_0x10; + /* 0x14 */ f32 field_0x14; + /* 0x18 */ f32 field_0x18; + /* 0x1C */ s8 field_0x1c; +}; + +extern "C" u8 m_flag__8daYkgr_c; +extern "C" u8 m_alpha_flag__8daYkgr_c; +extern "C" u8 m_alpha__8daYkgr_c; + +class daYkgr_c : public fopAc_ac_c { +public: + static void init() { + m_emitter = 0; + m_flag = false; + m_alpha_flag = true; + m_alpha = 255; + } + + f32 getPosRate(); + static void setAlpha(u8 alpha) { + m_alpha = alpha; + } + static void start() { + if (m_emitter != NULL) { + m_alpha_flag = true; + } + } + static void stop() { + if (m_emitter != NULL) { + m_alpha_flag = false; + } + } + + void set_mtx() { + camera_class* iVar1 = dComIfGp_getCamera(0); + cXyz local_28; + current.pos = *fopCamM_GetEye_p(iVar1); + dKyr_get_vectle_calc(&iVar1->mLookat.mEye, &iVar1->mLookat.mCenter, &local_28); + current.angle.y = cM_atan2s(local_28.x, local_28.z); + current.angle.x = -cM_atan2s( + local_28.y, JMAFastSqrt((local_28.x * local_28.x + local_28.z * local_28.z))); + mDoMtx_stack_c::transS(current.pos.x, current.pos.y, + current.pos.z); + mDoMtx_stack_c::YrotM(current.angle.y); + mDoMtx_stack_c::XrotM(current.angle.x); + MTXCopy(mDoMtx_stack_c::get(), field_0x570); + } + + int _create(); + int _execute(); + int _draw(); + + static JPABaseEmitter* m_emitter; + static bool m_flag; + static bool m_alpha_flag; + static u8 m_alpha; + static f32 m_aim_rate; + static dPath* m_path; + + u8 field_0x568[0x570 - 0x568]; + Mtx field_0x570; + u32 field_0x5a0; + f32 field_0x5a4; + f32 field_0x5a8; +}; #endif /* D_A_YKGR_H */ |
