Files
tp/include/d/actor/d_a_door_bossL1.h
T
12eb254d76 switch to dtk setup (#2203)
* switch to dtk setup

* some cleanup / fixes

* cleanup d_a_alink literals

* Restore doxygen, update CI & README.md (#1)

* Fix build image ref (#2)

---------

Co-authored-by: Luke Street <luke@street.dev>
2024-10-10 08:29:58 -06:00

110 lines
3.2 KiB
C++

#ifndef D_A_DOOR_BOSSL1_H
#define D_A_DOOR_BOSSL1_H
#include "dolphin/types.h"
#include "f_op/f_op_actor.h"
#include "d/d_bg_w.h"
#include "d/d_bg_s_acch.h"
#include "SSystem/SComponent/c_phase.h"
class JPABaseEmitter;
/**
* @ingroup actors-doors
* @class daBdoorL1_c
* @brief Boss Door
*
* @details Multi-purpose door actor. This actor is used for boss doors in the game.
*
*/
class daBdoorL1_c : public fopAc_ac_c {
public:
enum DoorType {
DOOR_TYPE_0,
DOOR_TYPE_1,
};
enum ActionType {
ACTION_WAIT,
ACTION_CLOSE_WAIT,
ACTION_OPEN,
ACTION_END,
};
typedef int (daBdoorL1_c::*actionFunc)();
/* 804E1E2C */ char* getDoorEventName();
/* 804E1EE8 */ char* getDoorEventName2();
/* 804E1FA4 */ const char* getArcName();
/* 804E2060 */ const char* getAnmArcName();
/* 804E20C4 */ int getDoorType();
/* 804E2104 */ int getOpenAnm();
/* 804E2158 */ int getCloseAnm();
/* 804E21AC */ const char* getAlwaysArcName();
/* 804E21BC */ const char* getBmd();
/* 804E21CC */ const char* getDzb();
/* 804E21DC */ J3DModelData* getDoorModelData();
/* 804E2258 */ int CreateHeap();
/* 804E2578 */ void calcMtx();
/* 804E2754 */ int CreateInit();
/* 804E28E4 */ int create();
/* 804E2B78 */ int getDemoAction();
/* 804E2BC0 */ void demoProc();
/* 804E3180 */ int openInit();
/* 804E357C */ int openProc();
/* 804E3794 */ int openEnd();
/* 804E3850 */ int closeInit();
/* 804E3A2C */ int closeProc();
/* 804E3C0C */ int closeEnd();
/* 804E3C14 */ int unlockInit();
/* 804E3CCC */ void setPos();
/* 804E3DE8 */ void calcGoal(cXyz*, int);
/* 804E3F10 */ int setAngle();
/* 804E3FF8 */ int createKey();
/* 804E4100 */ void smokeInit();
/* 804E4104 */ void deleteEmitter();
/* 804E4158 */ int checkArea();
/* 804E432C */ int checkFront();
/* 804E43A0 */ int checkOpen();
/* 804E4414 */ int actionWait();
/* 804E441C */ int actionCloseWait();
/* 804E44B4 */ int actionOpen();
/* 804E44EC */ int actionEnd();
/* 804E464C */ int execute();
/* 804E476C */ int draw();
/* 804E48BC */ int Delete();
void setAction(u8 action) { mAction = action; }
private:
/* 0x568 */ request_of_phase_process_class mPhase1;
/* 0x570 */ request_of_phase_process_class mPhase2;
/* 0x578 */ request_of_phase_process_class mPhase3;
/* 0x580 */ J3DModel* field_0x580;
/* 0x584 */ J3DModel* field_0x584;
/* 0x588 */ mDoExt_bckAnm* field_0x588;
/* 0x58C */ mDoExt_btkAnm* field_0x58c;
/* 0x590 */ dBgW* field_0x590;
/* 0x594 */ u32 mKeyHoleId;
/* 0x598 */ u8 field_0x598;
/* 0x599 */ u8 mAction;
/* 0x59A */ u8 field_0x59a;
/* 0x59B */ u8 field_0x59b;
/* 0x59C */ s16 field_0x59c;
/* 0x59E */ s16 field_0x59e;
/* 0x5A0 */ int field_0x5a0;
/* 0x5A4 */ int field_0x5a4;
/* 0x5A8 */ f32 field_0x5a8;
/* 0x5AC */ dBgS_ObjAcch field_0x5ac;
/* 0x784 */ dBgS_AcchCir field_0x784;
/* 0x7C4 */ cXyz field_0x7c4;
/* 0x7D0 */ cXyz field_0x7d0;
/* 0x7DC */ csXyz field_0x7dc;
/* 0x7E4 */ JPABaseEmitter* field_0x7e4[2];
/* 0x7EC */ Mtx field_0x7ec;
};
STATIC_ASSERT(sizeof(daBdoorL1_c) == 0x81C);
#endif /* D_A_DOOR_BOSSL1_H */