Files
tww/include/d/actor/d_a_obj_drift.h
T
Teddy Heidmann 5063d3433c zeldaret/tww#385 d_a_obj_drift (#1100)
* zeldaret/tww#385 d_a_obj_drift

* configure changes

* GZLJ01

* D44J01

* Not matching D44J01

* demo support

* variable cleanup

* revert new helper

* revert again

* Attempt 2

* Try to fix non-deterministic issue

* Revert tide fix

* debug mapping

* more map fixes

* Update src/d/actor/d_a_obj_drift.cpp

Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>

* review comments

---------

Co-authored-by: LagoLunatic <LagoLunatic@users.noreply.github.com>
2026-07-30 22:46:56 -04:00

84 lines
2.4 KiB
C++

#ifndef D_A_OBJ_DRIFT_H
#define D_A_OBJ_DRIFT_H
#include "SSystem/SComponent/c_xyz.h"
#include "d/d_bg_s_movebg_actor.h"
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_w.h"
namespace daObjDrift {
class Act_c : public dBgS_MoveBgActor {
public:
enum Mode {
MODE_WAIT = 0x0,
MODE_ROT = 0x1,
};
enum Prm_e {
PRM_TYPE_W = 3,
PRM_TYPE_S = 0,
};
int prm_get_type() const {
return daObj::PrmAbstract(this, PRM_TYPE_W, PRM_TYPE_S);
}
virtual BOOL CreateHeap();
virtual BOOL Create();
cPhs_State Mthd_Create();
void make_flower();
void calc_flower_param(cXyz*, csXyz*);
void set_flower_current();
virtual BOOL Delete();
BOOL Mthd_Delete();
void mode_wait_init();
void mode_wait();
void mode_rot_init();
void mode_rot();
void set_mtx();
void init_mtx();
static void rideCB(dBgW*, fopAc_ac_c*, fopAc_ac_c*);
void set_current();
virtual BOOL Execute(Mtx**);
virtual BOOL Draw();
static const char M_arcname[];
static const dCcD_SrcCyl M_cyl_src;
public:
/* 0x2C8 */ request_of_phase_process_class mPhase;
/* 0x2D0 */ J3DModel* mModel;
/* 0x2D4 */ dCcD_Stts mStts;
/* 0x310 */ dCcD_Cyl mCyl;
/* 0x440 */ int mType;
/* 0x444 */ Mtx mMtx;
/* 0x474 */ fpc_ProcID mFlowerPid;
/* 0x478 */ s32 mMode;
/* 0x47C */ f32 mRideYOff;
/* 0x480 */ f32 mTiltTargetZ;
/* 0x484 */ f32 mTiltTargetX;
/* 0x488 */ f32 mTiltVelZ;
/* 0x48C */ f32 mTiltVelX;
/* 0x490 */ f32 mTiltZ;
/* 0x494 */ f32 mTiltX;
/* 0x498 */ s16 mWavePhaseX;
/* 0x49A */ s16 mWavePhaseY;
/* 0x49C */ s16 mWavePhaseZ;
/* 0x49E */ bool mRideFlag;
/* 0x49F */ u8 field_0x49F;
/* 0x4A0 */ s16 mTargetAngleY;
/* 0x4A2 */ s16 mAngleChaseY;
/* 0x4A4 */ cXyz mHitDir;
/* 0x4B0 */ cXyz field_0x4B0;
/* 0x4BC */ cXyz mPrevPos;
/* 0x4C8 */ f32 field_0x4C8;
/* 0x4CC */ f32 field_0x4CC;
/* 0x4D0 */ f32 field_0x4D0;
/* 0x4D4 */ f32 field_0x4D4;
/* 0x4D8 */ f32 mRotTimer;
};
};
#endif /* D_A_OBJ_DRIFT_H */