kankyo_rain / obj_life_container mostly done, obj_glowsphere done (#2266)

* obj_life_container mostly done

* obj_glowSphere done

* kankyo_rain mostly done

* some cleanup

* more kankyo_rain cleanup
This commit is contained in:
TakaRikka
2024-12-18 20:02:52 +02:00
committed by GitHub
parent c5ab943cfc
commit ff5f31b844
26 changed files with 6797 additions and 3980 deletions
+1
View File
@@ -3,6 +3,7 @@
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
#include "d/d_a_itembase_static.h"
#include "f_op/f_op_actor_mng.h"
struct daItemBase_data {
+138 -34
View File
@@ -2,6 +2,78 @@
#define D_A_OBJ_GLOWSPHERE_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_acch.h"
#include "d/d_cc_d.h"
class daGlwSph_c;
class _GlSph_LstInfo_c{
public:
_GlSph_LstInfo_c() {
mpSph = NULL;
mIsSet = false;
}
~_GlSph_LstInfo_c() {}
void Set(daGlwSph_c* i_sph) {
if (!mIsSet && i_sph != NULL) {
mpSph = i_sph;
mIsSet = true;
}
}
void Remove() {
mpSph = NULL;
mIsSet = false;
}
bool isSet() { return mIsSet; }
daGlwSph_c* getpSph() { return mpSph; }
private:
/* 0x0 */ daGlwSph_c* mpSph;
/* 0x4 */ s8 mIsSet;
};
class _GlSph_Mng_c {
public:
_GlSph_Mng_c() {
field_0x0 = 0;
}
~_GlSph_Mng_c() {
reset();
}
/* 80BFA4B8 */ void _clrLstBuf();
/* 80BFA4DC */ int entry(daGlwSph_c*);
/* 80BFA528 */ void remove(daGlwSph_c*);
/* 80BFA55C */ int _setting_main();
/* 80BFA5C4 */ bool _chkAllGet_main();
/* 80BFA60C */ void SphSeProc();
/* 80BFA6D8 */ static void clrSphSe();
/* 80BFA6E8 */ static u16 getSphSe();
/* 80BFA6F8 */ static void incSphSe();
void setting() {
_setting_main();
}
bool isAllGet() {
return _chkAllGet_main();
}
void reset() {
field_0x0 = 0;
_clrLstBuf();
}
static u16 mSphSe;
static s16 mSeClrTmr;
/* 0x0 */ int field_0x0;
/* 0x4 */ _GlSph_LstInfo_c mListBuf[120];
};
/**
* @ingroup actors-objects
@@ -13,12 +85,27 @@
*/
class daGlwSph_c : public fopAc_ac_c {
public:
/* 80BF9430 */ void getSphMng();
enum COLOR_e {
COLOR_GRAY_e,
COLOR_RED_e,
COLOR_YELLOW_e,
COLOR_BLUE_e,
COLOR_DEFAULT_e = 0xFF,
};
enum ACTION_e {
ACTION_WAIT_e,
ACTION_GET_e,
ACTION_MOVE_e,
};
/* 80BF9430 */ _GlSph_Mng_c& getSphMng();
/* 80BF943C */ void setBaseMtx();
/* 80BF94AC */ void createHeapCallBack(fopAc_ac_c*);
/* 80BF94CC */ void CreateHeap();
/* 80BF95D4 */ void create();
/* 80BF9B1C */ void execute();
/* 80BF94AC */ static int createHeapCallBack(fopAc_ac_c*);
/* 80BF94CC */ int CreateHeap();
/* 80BF95D4 */ int create();
/* 80BF9B1C */ int execute();
/* 80BF9BC0 */ void actionMain();
/* 80BF9DF0 */ void effectSet();
/* 80BF9F30 */ void getSE();
@@ -29,44 +116,61 @@ public:
/* 80BFA130 */ void actionGet();
/* 80BFA1E0 */ void actionMoveInit();
/* 80BFA204 */ void actionMove();
/* 80BFA2A4 */ void draw();
/* 80BFA3EC */ void _delete();
/* 80BFA2A4 */ int draw();
/* 80BFA3EC */ int _delete();
static u8 const mCcDObjInfo[48];
static u8 mCcDSph[64];
static u8 mSphMng[964];
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
u8 getArg0() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getColor() { return fopAcM_GetParamBit(this, 0x10, 8); }
private:
/* 0x568 */ u8 field_0x568[0x98c - 0x568];
void onGetFlag() { mGetFlag = true; }
void offGetFlag() { mGetFlag = false; }
void saveGetFlag() { field_0x951 = mGetFlag; }
bool is_getted() { return mGetFlag == true; }
void reset() {
current.pos = home.pos;
mSphCollider.OnCoSetBit();
offGetFlag();
saveGetFlag();
}
static const dCcD_SrcGObjInf mCcDObjInfo;
static dCcD_SrcSph mCcDSph;
static _GlSph_Mng_c mSphMng;
/* 0x568 */ request_of_phase_process_class mPhase;
/* 0x570 */ J3DModel* mpModel;
/* 0x574 */ mDoExt_btkAnm mBtk;
/* 0x58C */ mDoExt_brkAnm mBrk;
/* 0x5A4 */ dBgS_ObjAcch mAcch;
/* 0x77C */ dBgS_AcchCir mAcchCir;
/* 0x7BC */ dCcD_Stts mColliderStts;
/* 0x7F8 */ dCcD_Sph mSphCollider;
/* 0x930 */ LIGHT_INFLUENCE mLight;
/* 0x950 */ u8 mGetFlag;
/* 0x951 */ u8 field_0x951;
/* 0x952 */ u8 mAction;
/* 0x953 */ u8 mIsNoMoveHome;
/* 0x954 */ u8 mColor;
/* 0x955 */ u8 mMoveTimer;
/* 0x958 */ f32 mMoveSpeed;
/* 0x95C */ cXyz mMoveVec;
/* 0x968 */ cXyz field_0x968;
/* 0x974 */ cXyz field_0x974;
/* 0x980 */ s16 field_0x980;
/* 0x984 */ u32 mEmitterIDs[2];
};
STATIC_ASSERT(sizeof(daGlwSph_c) == 0x98C);
class daGlwSph_HIO_c {
class daGlwSph_HIO_c : public fOpAcm_HIO_entry_c {
public:
/* 80BF934C */ daGlwSph_HIO_c();
/* 80BFA76C */ ~daGlwSph_HIO_c();
};
/* 80BFA76C */ virtual ~daGlwSph_HIO_c() {}
class _GlSph_Mng_c {
public:
/* 80BFA4B8 */ void _clrLstBuf();
/* 80BFA4DC */ void entry(daGlwSph_c*);
/* 80BFA528 */ void remove(daGlwSph_c*);
/* 80BFA55C */ void _setting_main();
/* 80BFA5C4 */ void _chkAllGet_main();
/* 80BFA60C */ void SphSeProc();
/* 80BFA6D8 */ void clrSphSe();
/* 80BFA6E8 */ void getSphSe();
/* 80BFA6F8 */ void incSphSe();
/* 80BFA890 */ ~_GlSph_Mng_c();
/* 0x4 */ f32 speed;
/* 0x8 */ f32 speed2;
};
class _GlSph_LstInfo_c{
public:
/* 80BFA900 */ ~_GlSph_LstInfo_c();
/* 80BFA93C */ _GlSph_LstInfo_c();
};
#endif /* D_A_OBJ_GLOWSPHERE_H */
+60 -20
View File
@@ -1,7 +1,8 @@
#ifndef D_A_OBJ_LIFE_CONTAINER_H
#define D_A_OBJ_LIFE_CONTAINER_H
#include "f_op/f_op_actor_mng.h"
#include "d/actor/d_a_itembase.h"
#include "d/d_particle.h"
/**
* @ingroup actors-objects
@@ -11,37 +12,76 @@
* @details
*
*/
class daObjLife_c : public fopAc_ac_c {
class daObjLife_c : public daItemBase_c {
public:
enum Status_e {
STATUS_WAIT_e,
STATUS_ORDER_GET_DEMO_e,
STATUS_GET_DEMO_e,
STATUS_SW_ON_WAIT_e,
STATUS_BOOMERANG_CARRY_e,
STATUS_WAIT_2_e,
};
/* 804CCBE4 */ void initBaseMtx();
/* 804CCC04 */ void setBaseMtx();
/* 804CCC6C */ void Create();
/* 804CCC6C */ int Create();
/* 804CCE00 */ void setEffect();
/* 804CCF5C */ void endEffect00();
/* 804CCFAC */ void endEffect02();
/* 804CCFD8 */ bool __CreateHeap();
/* 804CCFE0 */ void create();
/* 804CCFE0 */ int create();
/* 804CD428 */ void bg_check();
/* 804CD5B8 */ void actionWaitInit();
/* 804CD660 */ void actionWait();
/* 804CD8C0 */ void initActionOrderGetDemo();
/* 804CD98C */ void actionOrderGetDemo();
/* 804CDA08 */ void actionGetDemo();
/* 804CDBC8 */ void actionSwOnWait();
/* 804CDC2C */ void actionInitBoomerangCarry();
/* 804CDD0C */ void actionBoomerangCarry();
/* 804CDD7C */ void actionInitWait2();
/* 804CDD8C */ void actionWait2();
/* 804CD5B8 */ int actionWaitInit();
/* 804CD660 */ int actionWait();
/* 804CD8C0 */ int initActionOrderGetDemo();
/* 804CD98C */ int actionOrderGetDemo();
/* 804CDA08 */ int actionGetDemo();
/* 804CDBC8 */ int actionSwOnWait();
/* 804CDC2C */ int actionInitBoomerangCarry();
/* 804CDD0C */ int actionBoomerangCarry();
/* 804CDD7C */ int actionInitWait2();
/* 804CDD8C */ int actionWait2();
/* 804CDDAC */ void calcScale();
/* 804CDE70 */ void execute();
/* 804CE19C */ void draw();
/* 804CE1F0 */ void setListStart();
/* 804CE214 */ void _delete();
/* 804CDE70 */ int execute();
/* 804CE19C */ int draw();
/* 804CE214 */ int _delete();
/* 804CE1F0 */ virtual void setListStart();
/* 804CCFD8 */ virtual int __CreateHeap();
bool chkStatus(u8 i_status) { return mStatus == i_status; }
void setStatus(u8 i_status) { mStatus = i_status; }
u8 getSaveBitNo() { return fopAcM_GetParamBit(this, 8, 8); }
u8 getItemNo() { return fopAcM_GetParamBit(this, 0, 8); }
int getSwNo() { return 0xFF; }
void setPos(cXyz);
private:
/* 0x568 */ u8 field_0x568[0x9d4 - 0x568];
/* 0x92C */ fpc_ProcID mItemId;
/* 0x930 */ int mCounter;
/* 0x934 */ u8 mStatus;
/* 0x935 */ u8 field_0x935;
/* 0x936 */ u8 mGndLandCount;
/* 0x937 */ u8 mIsPrmsInit;
/* 0x938 */ s16 field_0x938;
/* 0x93A */ s16 field_0x93a;
/* 0x93C */ cXyz mPrevSpeed;
/* 0x948 */ u16 mLv5Counter;
/* 0x94C */ f32 field_0x94c;
/* 0x950 */ f32 field_0x950;
/* 0x954 */ f32 field_0x954;
/* 0x958 */ u8 field_0x958[0x95E - 0x958];
/* 0x95E */ s16 field_0x95e;
/* 0x960 */ u8 field_0x960[0x962 - 0x960];
/* 0x962 */ s16 mRotateSpeed;
/* 0x964 */ u8 field_0x964[0x974 - 0x964];
/* 0x974 */ dPa_followEcallBack mEffect0;
/* 0x988 */ dPa_followEcallBack mEffect1;
/* 0x99C */ dPa_followEcallBack mEffect2;
/* 0x9B0 */ Z2SoundObjSimple mSound;
/* 0x9D0 */ u8 mIsHookCarry;
};
STATIC_ASSERT(sizeof(daObjLife_c) == 0x9d4);
+1 -1
View File
@@ -814,7 +814,7 @@ public:
virtual s16 getBoardCutTurnOffsetAngleY() const;
virtual cXyz* getMagneHitPos();
virtual cXyz* getMagneBootsTopVec();
virtual cXyz* getKandelaarFlamePos();
virtual cXyz* getKandelaarFlamePos() { return NULL; }
virtual bool checkUseKandelaar(int);
virtual void setDkCaught(fopAc_ac_c*);
virtual void onPressedDamage(cXyz const&, short);