d_envse mostly OK. more work on kankyo_rain (#1969)

* d_envse OK, work on kankyo_rain

* remove asm
This commit is contained in:
TakaRikka
2023-10-25 13:16:56 -07:00
committed by GitHub
parent 95d103b237
commit e2d51bf956
19 changed files with 878 additions and 567 deletions
@@ -19,7 +19,6 @@ public:
const cXyz& GetPointP() { return m_pos; }
u32 GetWallPrecheck() const { return mWallPrecheck; }
private:
/* 0x24 */ cXyz m_pos;
/* 0x30 */ u32 mFlags;
/* 0x34 */ f32 mNowY;
+5
View File
@@ -3,6 +3,7 @@
#include "MSL_C/math.h"
#include "dolphin/types.h"
#include "dolphin/mtx/vec.h"
class cM3dGAab;
class cM3dGCps;
@@ -95,4 +96,8 @@ inline bool cM3d_IsZero_inverted(f32 param_0) {
return !(fabsf(param_0) < G_CM3D_F_ABS_MIN);
}
inline f32 cM3d_LenSq(const Vec* a, const Vec* b) {
return VECSquareDistance(a, b);
}
#endif
+2
View File
@@ -20,6 +20,8 @@ public:
void CalcPos(Vec*, f32) const;
void CalcVec(Vec* pOut) const { VECSubtract(&this->mEnd, &this->mStart, pOut); }
void SetEnd(const cXyz&);
void set(const Vec& i_start, const Vec& i_end) { SetStartEnd(i_start, i_end); }
const cXyz& GetStartP(void) const { return mStart; }
cXyz& GetStartP(void) { return mStart; }
const cXyz& GetEndP(void) const { return mEnd; }
+5
View File
@@ -80,6 +80,11 @@ struct Z2EnvSeMgr : public JASGlobalInstance<Z2EnvSeMgr> {
/* 802CA794 */ void startLv3WaterSe(s8);
void setWindType(u8 i_type) { mWindType = i_type; }
void registSmellSePos(Vec* param_0) { registEtcSePos(param_0); }
void startSmellSe(s8 param_0) { startEtcSe(param_0); }
void initSmellSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
initEtcSe(param_0, param_1, param_2, param_3);
}
/* 0x000 */ Z2EnvSeAutoPan field_0x0;
/* 0x01C */ Z2EnvSeAutoPan field_0x1c;
+6 -2
View File
@@ -11,7 +11,7 @@ struct dBgPc;
struct dBgS_CaptPoly;
struct KC_PrismData {
/* 0x0 */ f32 field_0x0;
/* 0x0 */ u16 field_0x0[2];
/* 0x4 */ u16 field_0x4;
/* 0x6 */ u16 field_0x6;
/* 0x8 */ u16 field_0x8;
@@ -27,8 +27,12 @@ struct pkcdata {
/* 0x0C */ KC_PrismData* m_block_data;
/* 0x10 */ u8 field_0x10[4];
/* 0x14 */ Vec m_area_min_pos;
/* 0x20 */ u8 field_0x20[4];
/* 0x20 */ u32 field_0x20;
/* 0x24 */ u32 field_0x24;
/* 0x28 */ u32 field_0x28;
/* 0x2C */ u32 field_0x2c;
/* 0x30 */ u32 field_0x30;
/* 0x34 */ u32 field_0x34;
};
struct KCol_Header {
+1 -1
View File
@@ -322,7 +322,7 @@ public:
/* 80181560 */ void ForceLockOff(unsigned int);
/* 8018159C */ void ForceLockOff(fopAc_ac_c*);
/* 80181E20 */ void Up();
/* 80181E64 */ void Eye();
/* 80181E64 */ cXyz Eye();
/* 80181E98 */ cXyz Center();
/* 8018295C */ void footHeightOf(fopAc_ac_c*);
/* 80182964 */ void push_any_key();
+18 -1
View File
@@ -1,6 +1,23 @@
#ifndef D_D_ENVSE_H
#define D_D_ENVSE_H
#include "dolphin/types.h"
#include "f_op/f_op_kankyo.h"
class dStage_SoundInfo_c;
class dEnvSe_c : public kankyo_class {
public:
/* 80182FD8 */ int execute_common(dStage_SoundInfo_c*, s8*, u8);
/* 80183480 */ int execute();
/* 0x0F8 */ u8 field_0xf8[0x0FC - 0x0F8];
/* 0x0FC */ s8 field_0xfc;
/* 0x0FD */ s8 field_0xfd;
/* 0x0FE */ s8 field_0xfe;
/* 0x0FF */ s8 field_0xff;
/* 0x100 */ u8 field_0x100[0x104 - 0x100];
/* 0x104 */ int mRoomNo;
/* 0x108 */ int field_0x108;
};
#endif /* D_D_ENVSE_H */
+2 -1
View File
@@ -19,7 +19,8 @@ struct dPath {
inline int dPath_ChkClose(dPath* i_path) { return (i_path->m_closed & 1); }
dPath* dPath_GetRoomPath(int path_index, int room_no);
dStage_dPnt_c* dPath_GetPnt(dPath const* path, int pnt_index);
dPath* dPath_GetNextRoomPath(dPath const* i_path, int room_no);
dStage_dPnt_c* dPath_GetPnt(dPath const* i_path, int pnt_index);
u8 dPath_GetPolyRoomPathVec(cBgS_PolyInfo const& poly, cXyz* p_pathVec, int* param_2);
#endif /* D_D_PATH_H */
+2 -2
View File
@@ -270,8 +270,8 @@ struct stage_sound_data {
struct dStage_SoundInfo_c {
// SOND
/* 0x0 */ int field_0x0;
/* 0x4 */ stage_sound_data* field_0x4;
/* 0x0 */ int num;
/* 0x4 */ stage_sound_data* entries;
};
class dStage_FileList_dt_c {
+7 -4
View File
@@ -122,7 +122,7 @@ struct SNOW_EFF {
/* 80056D58 */ ~SNOW_EFF();
/* 80056D94 */ SNOW_EFF();
/* 0x00 */ u8 mStatus;
/* 0x00 */ s8 mStatus;
/* 0x04 */ cXyz mPosition;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ f32 mPosWaveX;
@@ -130,7 +130,7 @@ struct SNOW_EFF {
/* 0x24 */ f32 mGravity;
/* 0x28 */ f32 mWindSpeed;
/* 0x2C */ f32 mScale;
/* 0x30 */ u8 field_0x30[4];
/* 0x30 */ f32 field_0x30;
/* 0x34 */ s16 mTimer;
}; // Size: 0x38
@@ -144,7 +144,7 @@ public:
/* 0x6D74 */ cXyz field_0x6d74;
/* 0x6D80 */ f32 field_0x6d80;
/* 0x6D84 */ f32 field_0x6d84;
/* 0x6D88 */ u16 field_0x6d88;
/* 0x6D88 */ s16 field_0x6d88;
/* 0x6D8A */ u16 field_0x6d8a;
/* 0x6D8C */ u32 field_0x6d8c;
/* 0x6D90 */ u8 field_0x6d90;
@@ -264,7 +264,10 @@ struct EF_ODOUR_EFF {
/* 0x00 */ u8 mStatus;
/* 0x04 */ cXyz mPosition;
/* 0x10 */ cXyz mBasePos;
/* 0x1C */ u8 field_0x1c[0x14];
/* 0x1C */ u8 field_0x1c[0x24 - 0x1C];
/* 0x24 */ f32 field_0x24;
/* 0x28 */ f32 field_0x28;
/* 0x2C */ f32 field_0x2c;
}; // Size: 0x30
class dKankyo_odour_Packet : public J3DPacket {
+60
View File
@@ -153,4 +153,64 @@ inline void mDoAud_mEnvse_setWindType(u8 i_type) {
g_mEnvSeMgr.setWindType(i_type);
}
inline void mDoAud_mEnvse_initStaticEnvSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3, const Vec* param_4) {
g_mEnvSeMgr.initStaticEnvSe(param_0, param_1, param_2, param_3, (Vec*)param_4);
}
inline void mDoAud_mEnvse_startStaticEnvSe(s8 i_reverb) {
g_mEnvSeMgr.startStaticEnvSe(i_reverb);
}
inline void mDoAud_mEnvse_initRiverSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
g_mEnvSeMgr.initRiverSe(param_0, param_1, param_2, param_3);
}
inline void mDoAud_mEnvse_registRiverSePos(const Vec* i_pos) {
g_mEnvSeMgr.registRiverSePos((Vec*)i_pos);
}
inline void mDoAud_mEnvse_startRiverSe(s8 i_reverb) {
g_mEnvSeMgr.startRiverSe(i_reverb);
}
inline void mDoAud_mEnvse_initFallSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
g_mEnvSeMgr.initFallSe(param_0, param_1, param_2, param_3);
}
inline void mDoAud_mEnvse_registFallSePos(const Vec* i_pos) {
g_mEnvSeMgr.registFallSePos((Vec*)i_pos);
}
inline void mDoAud_mEnvse_startFallSe(s8 i_reverb) {
g_mEnvSeMgr.startFallSe(i_reverb);
}
inline void mDoAud_mEnvse_initSmellSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
g_mEnvSeMgr.initSmellSe(param_0, param_1, param_2, param_3);
}
inline void mDoAud_mEnvse_registSmellSePos(const Vec* i_pos) {
g_mEnvSeMgr.registSmellSePos((Vec*)i_pos);
}
inline void mDoAud_mEnvse_startSmellSe(s8 i_reverb) {
g_mEnvSeMgr.startSmellSe(i_reverb);
}
inline void mDoAud_mEnvse_registWindowPos(const Vec* i_pos) {
g_mEnvSeMgr.registWindowPos((Vec*)i_pos);
}
inline void mDoAud_initLv3WaterSe(u8 param_0, u8 param_1, u8 param_2, u8 param_3) {
g_mEnvSeMgr.initLv3WaterSe(param_0, param_1, param_2, param_3);
}
inline void mDoAud_registLv3WaterSePos(u8 param_0, const Vec* i_pos) {
g_mEnvSeMgr.registLv3WaterSePos(param_0, (Vec*)i_pos);
}
inline void mDoAud_startLv3WaterSe(s8 i_reverb) {
g_mEnvSeMgr.startLv3WaterSe(i_reverb);
}
#endif /* M_DO_M_DO_AUDIO_H */