mirror of
https://github.com/encounter/tp.git
synced 2026-07-11 06:18:46 -07:00
* 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>
110 lines
3.2 KiB
C++
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 */
|