d_kankyo work / d_particle_copoly OK (#1953)

* d_kankyo work / d_particle_copoly OK

* remove asm
This commit is contained in:
TakaRikka
2023-09-30 20:53:18 -07:00
committed by GitHub
parent 7a1b4e77b1
commit bdb09fec71
38 changed files with 1885 additions and 1846 deletions
+1
View File
@@ -9,6 +9,7 @@
#define M_PI 3.14159265358979323846f
#define DEG_TO_RAD(degrees) (degrees * (M_PI / 180.0f))
#define RAD_TO_DEG(radians) (radians / (180.0f / M_PI))
#ifdef __cplusplus
extern "C" {
+33 -5
View File
@@ -1848,7 +1848,7 @@ inline u8 dComIfGp_att_getCatchChgItem() {
return dComIfGp_getAttention().getCatchChgItem();
}
inline int dComIfGp_att_ZHintRequest(fopAc_ac_c *param_1, int param_2) {
inline int dComIfGp_att_ZHintRequest(fopAc_ac_c* param_1, int param_2) {
return dComIfGp_getAttention().ZHintRequest(param_1, param_2);
}
@@ -1858,10 +1858,10 @@ inline void dComIfGp_att_LookRequest(fopAc_ac_c* param_0, f32 i_horizontalDist,
param_5);
}
inline void dComIfGp_att_CatchRequest(fopAc_ac_c* param_0, u8 param_1, f32 i_horizontalDist, f32 i_upDist,
f32 i_downDist, s16 i_angle, int param_5) {
dComIfGp_getAttention().getCatghTarget().request(param_0, param_1, i_horizontalDist, i_upDist, i_downDist, i_angle,
param_5);
inline void dComIfGp_att_CatchRequest(fopAc_ac_c* param_0, u8 param_1, f32 i_horizontalDist,
f32 i_upDist, f32 i_downDist, s16 i_angle, int param_5) {
dComIfGp_getAttention().getCatghTarget().request(param_0, param_1, i_horizontalDist, i_upDist,
i_downDist, i_angle, param_5);
}
inline J2DGrafContext* dComIfGp_getCurrentGrafPort() {
@@ -2392,6 +2392,14 @@ inline stage_vrbox_info_class* dComIfGp_getStageVrboxcolInfo() {
return g_dComIfG_gameInfo.play.getStage().getVrboxInfo();
}
inline stage_plight_info_class* dComIfGp_getStagePlightInfo() {
return g_dComIfG_gameInfo.play.getStage().getPlightInfo();
}
inline int dComIfGp_getStagePlightNumInfo() {
return g_dComIfG_gameInfo.play.getStage().getPlightNumInfo();
}
inline u8 dComIfGp_isHeapLockFlag() {
return g_dComIfG_gameInfo.play.isHeapLockFlag();
}
@@ -3246,6 +3254,26 @@ inline void dComIfGp_particle_draw2DmenuBack(JPADrawInfo* i_drawInfo) {
}
}
inline void dComIfGp_particle_setWaterRipple(u32* param_0, cBgS_PolyInfo& param_1,
const cXyz* param_2, f32 param_3,
const dKy_tevstr_c* param_4, const cXyz* param_5,
s8 param_6) {
g_dComIfG_gameInfo.play.getParticle()->setWaterRipple(param_0, param_1, param_2, param_3,
param_4, param_5, param_6);
}
inline u16 dComIfGp_particle_setCommonPoly(u32* param_0, cBgS_PolyInfo* param_1,
const cXyz* param_2, const cXyz* param_3,
const dKy_tevstr_c* param_4, u32 param_5, u32 param_6,
const csXyz* param_7, const cXyz* param_8, s8 param_9) {
return g_dComIfG_gameInfo.play.getParticle()->setCommonPoly(
param_0, param_1, param_2, param_3, param_4, param_5, param_6, param_7, param_8, param_9);
}
inline u32 dComIfGp_particle_setStopContinue(u32 param_0) {
return g_dComIfG_gameInfo.play.getParticle()->setStopContinue(param_0);
}
inline int dComIfG_getTimerNowTimeMs() {
return g_dComIfG_gameInfo.play.getTimerNowTimeMs();
}
+2 -1
View File
@@ -108,7 +108,8 @@ struct stage_plight_info_class {
/* 0x00 */ Vec m_position;
/* 0x0C */ f32 m_radius;
/* 0x10 */ u8 field_0x10[0x18 - 0x10];
/* 0x18 */ GXColor m_color;
/* 0x18 */ color_RGB_class m_color;
/* 0x1B */ u8 m_fluctuation;
}; // Size: 0x1C
// PALE
+15 -31
View File
@@ -52,9 +52,6 @@ void dKy_shadow_mode_set(u8 mode);
void dKy_shadow_mode_reset(u8 mode);
struct LIGHT_INFLUENCE {
/* 800CFC7C */ ~LIGHT_INFLUENCE() {}
/* 8019F4F8 */ LIGHT_INFLUENCE() {}
/* 0x00 */ cXyz mPosition;
/* 0x0C */ GXColorS10 mColor;
/* 0x14 */ f32 mPow;
@@ -74,9 +71,6 @@ struct WIND_INFLUENCE {
};
struct WIND_INF_ENTITY {
/* 8019F4B8 */ ~WIND_INF_ENTITY();
/* 8019F4F4 */ WIND_INF_ENTITY();
/* 0x00 */ u8 mInUse;
/* 0x04 */ f32 mMinRadius;
/* 0x08 */ f32 mSpeed;
@@ -105,35 +99,29 @@ struct DALKMIST_INFLUENCE {
};
struct DUNGEON_LIGHT {
/* 8019F478 */ ~DUNGEON_LIGHT();
/* 8019F4B4 */ DUNGEON_LIGHT();
/* 0x00 */ cXyz mPosition;
/* 0x0C */ GXColor mColor;
/* 0x10 */ f32 mRefDistance;
/* 0x14 */ u8 field_0x14[4];
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 mCutoffAngle;
/* 0x1C */ f32 mAngleX;
/* 0x20 */ f32 mAngleY;
/* 0x24 */ u8 mAngleAttenuation;
/* 0x25 */ u8 mDistAttenuation;
/* 0x26 */ u8 field_0x26[6];
/* 0x2C */ LIGHT_INFLUENCE field_0x2c;
/* 0x2C */ LIGHT_INFLUENCE mInfluence;
}; // Size: 0x4C
struct BOSS_LIGHT {
/* 8019F438 */ ~BOSS_LIGHT();
/* 8019F474 */ BOSS_LIGHT();
/* 0x00 */ cXyz mPos;
/* 0x0C */ GXColor mColor;
/* 0x10 */ f32 field_0x10;
/* 0x10 */ f32 mRefDistance;
/* 0x14 */ f32 field_0x14;
/* 0x18 */ f32 field_0x18;
/* 0x1C */ f32 field_0x1c;
/* 0x20 */ f32 field_0x20;
/* 0x24 */ u8 field_0x24;
/* 0x25 */ u8 field_0x25;
/* 0x18 */ f32 mCutoffAngle;
/* 0x1C */ f32 mAngleX;
/* 0x20 */ f32 mAngleY;
/* 0x24 */ u8 mAngleAttenuation;
/* 0x25 */ u8 mDistAttenuation;
/* 0x26 */ u8 field_0x26;
}; // Size: 0x28
@@ -159,8 +147,6 @@ struct EF_THUNDER {
};
struct GB_MAPLE_COL_CHANGE {
/* 8019F400 */ GB_MAPLE_COL_CHANGE();
/* 0x00 */ J3DLightObj field_0x0;
}; // Size: 0x74
@@ -369,9 +355,9 @@ public:
/* 0x0F24 */ int field_0xf24;
/* 0x0F28 */ dKankyo_odour_Packet* mpOdourPacket;
/* 0x0F2C */ u8 field_0xf2c;
/* 0x0F30 */ J3DModel* field_0xf30;
/* 0x0F30 */ J3DModel* mpUndwaterEfModel;
/* 0x0F34 */ f32 field_0xf34;
/* 0x0F38 */ JKRSolidHeap* field_0xf38;
/* 0x0F38 */ JKRSolidHeap* mpUndwaterEfHeap;
/* 0x0F3C */ u8 field_0xf3c;
/* 0x0F3D */ u8 field_0xf3d;
/* 0x0F40 */ f32 field_0xf40;
@@ -389,7 +375,7 @@ public:
/* 0x1051 */ u8 field_0x1051;
/* 0x1054 */ int field_0x1054;
/* 0x1058 */ dKankyo_evil_Packet* mpEvilPacket;
/* 0x105C */ mDoExt_btkAnm* field_0x105c;
/* 0x105C */ mDoExt_btkAnm* mpUndwaterBtk;
/* 0x1060 */ kytag08_class* field_0x1060;
/* 0x1064 */ Vec field_0x1064;
/* 0x1070 */ cXyz mSunPos2;
@@ -407,12 +393,8 @@ public:
/* 0x10F0 */ GXColorS10 field_0x10f0;
/* 0x10F8 */ GXColorS10 field_0x10f8;
/* 0x1100 */ GXColorS10 mActorAmbience;
/* 0x1108 */ GXColorS10 mTerrainAmbienceBG0;
/* 0x1110 */ GXColorS10 mTerrainAmbienceBG1;
/* 0x1118 */ GXColorS10 mTerrainAmbienceBG2;
/* 0x1120 */ GXColorS10 mTerrainAmbienceBG3;
/* 0x1128 */ GXColorS10 field_0x1128;
/* 0x1130 */ u8 field_0x1130[0x28];
/* 0x1108 */ GXColorS10 mTerrainAmbienceBG[4];
/* 0x1128 */ GXColorS10 field_0x1128[6];
/* 0x1158 */ GXColorS10 mFogColor;
/* 0x1160 */ GXColorS10 mActorAddColAmb;
/* 0x1168 */ u8 field_0x1168[8];
@@ -608,5 +590,7 @@ void dKy_ParticleColor_get_bg(cXyz* param_0, dKy_tevstr_c* param_1, _GXColor* pa
_GXColor* param_3, _GXColor* param_4, _GXColor* param_5,
f32 param_6);
_GXColor dKy_light_influence_col(_GXColor* param_0, f32 param_1);
static void dKy_WaterIn_Light_set();
#endif /* D_KANKYO_D_KANKYO_H */
+2 -2
View File
@@ -53,7 +53,7 @@ enum BloomType {
};
#define BLOOMINFO_MAX 64
class dKydata_BloomInfo_c {
class dkydata_bloomInfo_info_class {
public:
/* 0x0 */ u8 mType;
/* 0x1 */ u8 mThreshold;
@@ -80,6 +80,6 @@ void* dKyd_maple_col_getp();
dKydata_darkworldInfo_c* dKyd_darkworld_tbl_getp();
dKydata_lightsizeInfo_c* dKyd_light_size_tbl_getp();
dKydata_lightsizeInfo_c* dKyd_light_tw_size_tbl_getp();
dKydata_BloomInfo_c* dKyd_BloomInf_tbl_getp(int);
dkydata_bloomInfo_info_class* dKyd_BloomInf_tbl_getp(int);
#endif /* D_KANKYO_D_KANKYO_DATA_H */
+61 -18
View File
@@ -6,43 +6,86 @@
class dBgS_Acch;
class dKy_tevstr_c;
class JPABaseEmitter;
class dPaPo_c {
public:
/* 80050C9C */ void init(dBgS_Acch*, f32, f32);
/* 80050CC4 */ void checkWaterIn(cXyz*, cXyz const*, dKy_tevstr_c const*, u32, s8, f32, f32);
/* 80050CC4 */ int checkWaterIn(cXyz*, cXyz const*, dKy_tevstr_c const*, u32, s8, f32, f32);
/* 80050E7C */ void setEffect(u32*, int, dKy_tevstr_c const*, cXyz const*, u32, u32,
cXyz const*, csXyz const*, s8, u8*, u8*);
/* 80051008 */ void setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
/* 80051008 */ int setEffectCenter(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
csXyz const*, cXyz const*, s8, f32, f32);
/* 8005113C */ void clearID(u32*, u8*);
/* 80051488 */ void getCenterEffType(int) const;
/* 80051524 */ void getCenterEmitter(int, int);
/* 80051488 */ u8 getCenterEffType(int) const;
/* 80051524 */ JPABaseEmitter* getCenterEmitter(int, int);
/* 0x00 */ u8 field_0x00[0x28];
void clearCenterID() { clearID(field_0x8[0], &field_0x36); }
/* 0x00 */ u32 field_0x0[2];
/* 0x08 */ u32 field_0x8[2][4];
/* 0x28 */ dBgS_Acch* field_0x28;
/* 0x2C */ float field_0x2c;
/* 0x30 */ float field_0x30;
/* 0x34 */ u8 field_0x34;
/* 0x35 */ u8 field_0x35;
/* 0x2C */ f32 mWaterOffset;
/* 0x30 */ f32 mRippleOffset;
/* 0x34 */ u8 mCenterEffType[2];
/* 0x36 */ u8 field_0x36;
/* 0x37 */ u8 field_0x37;
};
struct dPaPoT_c {
/* 8005115C */ void setEffectTwo(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
class dPaPoT_c : public dPaPo_c {
public:
/* 8005115C */ int setEffectTwo(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
cXyz const*, cXyz const*, csXyz const*, cXyz const*, s8, f32,
f32);
/* 80051294 */ void clearTwoAllID();
/* 80051470 */ void getRightEffType(int) const;
/* 8005147C */ void getLeftEffType(int) const;
/* 80051494 */ void getRightEmitter(int, int);
/* 800514DC */ void getLeftEmitter(int, int);
/* 80051470 */ u8 getRightEffType(int) const;
/* 8005147C */ u8 getLeftEffType(int) const;
/* 80051494 */ JPABaseEmitter* getRightEmitter(int, int);
/* 800514DC */ JPABaseEmitter* getLeftEmitter(int, int);
static u8 m_typeTwoData[36];
static u8 m_emitterTwoData[36];
void clearLeftID() { clearID(mLeftEmitter[0], &field_0x7c); }
void clearRightID() { clearID(mRightEmitter[0], &field_0x7d); }
u8 field_0x0[0x80];
typedef u8 (dPaPoT_c::*effTypeFunc)(int) const;
typedef JPABaseEmitter* (dPaPoT_c::*emitterFunc)(int, int);
static effTypeFunc m_typeTwoData[];
static emitterFunc m_emitterTwoData[];
/* 0x38 */ u32 mLeftEmitter[2][4];
/* 0x58 */ u32 mRightEmitter[2][4];
/* 0x78 */ u8 mLeftEffType[2];
/* 0x7A */ u8 mRightEffType[2];
/* 0x7C */ u8 field_0x7c;
/* 0x7D */ u8 field_0x7d;
};
class dPaPoF_c : public dPaPoT_c {
public:
/* 800512E8 */ int setEffectFour(dKy_tevstr_c const*, cXyz const*, u32, u32, cXyz const*,
cXyz const*, cXyz const*, cXyz const*, cXyz const*,
csXyz const*, cXyz const*, s8, f32, f32);
/* 80051424 */ void clearFourAllID();
/* 8005156C */ u8 getBackRightEffType(int) const;
/* 80051578 */ u8 getBackLeftEffType(int) const;
/* 80051584 */ JPABaseEmitter* getBackRightEmitter(int, int);
/* 800515CC */ JPABaseEmitter* getBackLeftEmitter(int, int);
void clearBLeftID() { clearID(mBackLeftEmitter[0], &field_0xc4); }
void clearBRightID() { clearID(mBackRightEmitter[0], &field_0xc5); }
typedef u8 (dPaPoF_c::*effTypeFunc)(int) const;
typedef JPABaseEmitter* (dPaPoF_c::*emitterFunc)(int, int);
static effTypeFunc m_typeFourData[];
static emitterFunc m_emitterFourData[];
/* 0x80 */ u32 mBackLeftEmitter[2][4];
/* 0xA0 */ u32 mBackRightEmitter[2][4];
/* 0xC0 */ u8 mBackLeftEffType[2];
/* 0xC2 */ u8 mBackRightEffType[2];
/* 0xC4 */ u8 field_0xc4;
/* 0xC5 */ u8 field_0xc5;
};
#endif /* D_PARTICLE_D_PARTICLE_COPOLY_H */
+7
View File
@@ -24,7 +24,14 @@ public:
/* 80009650 */ void draw();
u8 getEnable() { return mEnable; }
void setEnable(u8 i_enable) { mEnable = i_enable; }
GXColor* getMonoColor() { return &mMonoColor; }
void setPoint(u8 i_point) { mPoint = i_point; }
void setBlureSize(u8 i_size) { mBlureSize = i_size; }
void setBlureRatio(u8 i_ratio) { mBlureRatio = i_ratio; }
void setBlendColor(GXColor i_color) { mBlendColor = i_color; }
void setMonoColor(GXColor i_color) { mMonoColor = i_color; }
void setMode(u8 i_mode) { mMode = i_mode; }
/* 0x00 */ GXColor mBlendColor;
/* 0x04 */ GXColor mMonoColor;