mirror of
https://github.com/TwilitRealm/dusklight
synced 2026-07-09 20:41:29 -04:00
d_kankyo work / d_particle_copoly OK (#1953)
* d_kankyo work / d_particle_copoly OK * remove asm
This commit is contained in:
@@ -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" {
|
||||
|
||||
@@ -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
@@ -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
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user