Files
tp/include/d/actor/d_a_obj_lv8OptiLift.h
T
LagoLunatic 4dc0cd9d09 Debug version now builds OK and all_source compiles (#2343)
* Fix missing arg to JUT_ASSERT

* Fix some MWCC version diff errors

* Compile m_Do_ext, d_demo, actor_mng

* Add VSCode task to quickly switch between versions

* Unlink magLift for debug

* Update the hash of the debug dol

The old cbea5fa... hash here was for the dol generated by the alf2dol.py script, which produces incorrect alignment.

The dol with the new hash can be obtained by using `dtk elf2dol` to convert the debug .alf file to a dol.

The DOL now builds OK.

* Fix all debug REL dtor splits

All RELs now also build OK, meaning `ninja build/ShieldD/ok` now succeeds.

* Add genMessage declarations to all HIO subclasses

* Fixing more compilation errors

* m_Do_mtx 100% on debug

Cannot be linked due to weak function name mangling?

* Improve various matches

* Fix all remaining compilation errors

* Fix new compilation errors from main

* Fix retail regression

* Link f_pc_profile_lst
2025-03-22 18:00:51 -07:00

113 lines
3.3 KiB
C++

#ifndef D_A_OBJ_LV8OPTILIFT_H
#define D_A_OBJ_LV8OPTILIFT_H
#include "f_op/f_op_actor_mng.h"
#include "d/d_bg_s_movebg_actor.h"
/**
* @ingroup actors-objects
* @class daOptiLift_c
* @brief Palace of Twilight Optilift
*
* @details
*
*/
class daOptiLift_c : public dBgS_MoveBgActor {
public:
enum MODE_e {
MODE_ACC_e,
MODE_MOVE_e,
MODE_BRK_e,
MODE_WAIT_e,
MODE_MOVE_INIT_e,
MODE_MOVE_WAIT_e,
MODE_STOP_e,
MODE_INIT_SET_e,
MODE_INIT_SET2_e,
};
/* 80C8A3B0 */ void setBaseMtx();
/* 80C8A500 */ int create();
/* 80C8A780 */ void lightSet();
/* 80C8A7D0 */ static void rideCallBack(dBgW*, fopAc_ac_c*, fopAc_ac_c*);
/* 80C8A848 */ void moveLift();
/* 80C8AAC4 */ void init_modeAcc();
/* 80C8AAD0 */ void modeAcc();
/* 80C8ABB0 */ void init_modeMove();
/* 80C8ABBC */ void modeMove();
/* 80C8AED4 */ void init_modeBrk();
/* 80C8AEE0 */ void modeBrk();
/* 80C8B100 */ void init_modeMoveInit();
/* 80C8B1B0 */ void modeMoveInit();
/* 80C8B1F0 */ void init_modeMoveWait();
/* 80C8B230 */ void modeMoveWait();
/* 80C8B288 */ void init_modeWait();
/* 80C8B294 */ void modeWait();
/* 80C8B298 */ void init_modeStop();
/* 80C8B318 */ void modeStop();
/* 80C8B428 */ void init_modeInitSet();
/* 80C8B464 */ void modeInitSet();
/* 80C8B484 */ void init_modeInitSet2();
/* 80C8B4B8 */ void modeInitSet2();
/* 80C8B4D8 */ void liftReset();
/* 80C8B53C */ void setNextPoint();
/* 80C8A438 */ virtual int CreateHeap();
/* 80C8A7E8 */ virtual int Execute(f32 (**)[3][4]);
/* 80C8B66C */ virtual int Draw();
/* 80C8B824 */ virtual int Delete();
u8 getPthID() { return fopAcM_GetParamBit(this, 8, 8); }
int getMoveSpped() { return fopAcM_GetParamBit(this, 0x10, 4); }
int getSw() { return fopAcM_GetParamBit(this, 0, 8); }
int getArg1() { return fopAcM_GetParamBit(this, 0x14, 4); }
static f32 const mSpeed[];
/* 0x5A0 */ request_of_phase_process_class mPhase;
/* 0x5A8 */ J3DModel* mpModel;
/* 0x5AC */ mDoExt_btkAnm mBtk;
/* 0x5C4 */ u8 mSwBit;
/* 0x5C5 */ u8 field_0x5C5[0x5C8 - 0x5C5];
/* 0x5C8 */ u8 mPathID;
/* 0x5C9 */ s8 mPathDirection;
/* 0x5CA */ s16 mCurrentPoint;
/* 0x5CC */ cXyz mTargetPos;
/* 0x5D8 */ cXyz mPrevTargetPos;
/* 0x5E4 */ f32 mMoveSpeed;
/* 0x5E8 */ u8 mMode;
/* 0x5E9 */ u8 mIsSwitch;
/* 0x5EA */ u8 mStopDisappearTimer;
/* 0x5EB */ u8 mPlayerRide;
/* 0x5EC */ u8 mPrevPlayerRide;
/* 0x5ED */ u8 field_0x5ED[0x5F4 - 0x5ED];
/* 0x5F4 */ LIGHT_INFLUENCE mLight;
/* 0x614 */ u8 mLightSet;
/* 0x615 */ u8 mNoRideOffSwTimer;
/* 0x616 */ u8 field_0x616;
};
STATIC_ASSERT(sizeof(daOptiLift_c) == 0x618);
class daOptiLift_HIO_c : public mDoHIO_entry_c {
public:
/* 80C8A30C */ daOptiLift_HIO_c();
/* 80C8B900 */ virtual ~daOptiLift_HIO_c() {}
void genMessage(JORMContext*);
/* 0x04 */ u8 mStopDisappearTime;
/* 0x05 */ u8 mStartMoveTime;
/* 0x06 */ u8 mColorAnmFrame;
/* 0x07 */ u8 mColorR;
/* 0x08 */ u8 mColorG;
/* 0x09 */ u8 mColorB;
/* 0x0C */ f32 mLightRadius;
/* 0x10 */ u8 mLightColorR;
/* 0x11 */ u8 mLightColorG;
/* 0x12 */ u8 mLightColorB;
};
#endif /* D_A_OBJ_LV8OPTILIFT_H */