summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorhatal175 <hatal175@users.noreply.github.com>2024-01-18 01:19:10 +0200
committerGitHub <noreply@github.com>2024-01-17 15:19:10 -0800
commitf97fc769df40a69b12ca9b28be389b236400dcdb (patch)
treeb701ad324df1a5958ee5ca1560dc9b78d10efc20 /include
parent772a04851cd945cc28f6651ca03c177899dec631 (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.h17
-rw-r--r--include/d/d_model.h2
-rw-r--r--include/d/d_stage.h5
-rw-r--r--include/d/s/d_s_play.h20
-rw-r--r--include/d/save/d_save.h1
-rw-r--r--include/d/save/d_save_HIO.h2
-rw-r--r--include/f_op/f_op_camera_mng.h4
-rw-r--r--include/rel/d/a/d_a_suspend/d_a_suspend.h2
-rw-r--r--include/rel/d/a/d_a_ykgr/d_a_ykgr.h95
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 */