summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorCaroline Madsen <69010899+randomsalience@users.noreply.github.com>2024-02-04 17:38:58 -0500
committerGitHub <noreply@github.com>2024-02-04 14:38:58 -0800
commit658cb52118ae9e1b4a9d50e2fa87a57ddd855c7a (patch)
treedc209c37b47e14e7877a9e9cc08c244a820830e3 /include
parent0bde0ac354f75422e420dd84fce23be71882889b (diff)
work on d_a_door_boss (#2061)
Diffstat (limited to 'include')
-rw-r--r--include/SSystem/SComponent/c_xyz.h1
-rw-r--r--include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h61
2 files changed, 61 insertions, 1 deletions
diff --git a/include/SSystem/SComponent/c_xyz.h b/include/SSystem/SComponent/c_xyz.h
index 0cf07d2a43..4ebe1f9358 100644
--- a/include/SSystem/SComponent/c_xyz.h
+++ b/include/SSystem/SComponent/c_xyz.h
@@ -137,6 +137,7 @@ struct cXyz : Vec {
f32 getDotProduct(const Vec& other) const { return VECDotProduct(this, &other); }
f32 inprod(const Vec& other) const { return getDotProduct(other); }
+ f32 inprodXZ(const Vec& other) const { return x * other.x + z * other.z; }
};
#endif /* C_XYZ_H */
diff --git a/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h b/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h
index 3f7c7fd875..d24b27fe4d 100644
--- a/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h
+++ b/include/rel/d/a/door/d_a_door_boss/d_a_door_boss.h
@@ -1,6 +1,65 @@
#ifndef D_A_DOOR_BOSS_H
#define D_A_DOOR_BOSS_H
-#include "dolphin/types.h"
+#include "SSystem/SComponent/c_phase.h"
+#include "f_op/f_op_actor.h"
+#include "d/bg/d_bg_s_acch.h"
+#include "d/bg/d_bg_w.h"
+
+class daBdoor_c : public fopAc_ac_c {
+public:
+ enum Action {
+ /* 0 */ ACT_WAIT,
+ /* 1 */ ACT_CLOSE_WAIT,
+ /* 2 */ ACT_OPEN,
+ /* 3 */ ACT_END,
+ };
+
+ /* 8066F418 */ char* getArcName();
+ /* 8066F424 */ char* getBmd();
+ /* 8066F434 */ char* getDzb();
+ /* 8066F444 */ char* getBmd2();
+ /* 8066F454 */ J3DModelData* getDoorModelData();
+ /* 8066F4E4 */ int CreateHeap();
+ /* 8066F738 */ void calcMtx();
+ /* 8066F7EC */ int CreateInit();
+ /* 8066F8E4 */ cPhs__Step create();
+ /* 8066FAB8 */ int getDemoAction();
+ /* 8066FB00 */ void demoProc();
+ /* 8066FF04 */ void calcGoal(cXyz*, int);
+ /* 8067002C */ void smokeInit();
+ /* 806700C4 */ BOOL checkArea();
+ /* 806701F4 */ BOOL checkFront();
+ /* 80670294 */ BOOL checkOpen();
+ /* 80670320 */ BOOL actionWait();
+ /* 80670328 */ BOOL actionCloseWait();
+ /* 806703C0 */ BOOL actionOpen();
+ /* 806703E4 */ BOOL actionEnd();
+ /* 80670544 */ int execute();
+ /* 80670664 */ BOOL checkDraw();
+ /* 806706A4 */ int draw();
+ /* 80670804 */ int Delete();
+
+ void setAction(u8 i_action) { mAction = i_action; }
+
+ /* 0x568 */ request_of_phase_process_class mPhaseReq;
+ /* 0x570 */ J3DModel* mpDoorModel;
+ /* 0x574 */ J3DModel* mpLockModel;
+ /* 0x578 */ mDoExt_bckAnm* mpLockAnm;
+ /* 0x57C */ dBgW* mpBgW;
+ /* 0x580 */ bool mBgInactive;
+ /* 0x581 */ u8 mAction;
+ /* 0x582 */ u8 field_0x582[6];
+ /* 0x588 */ u32 mStaffID;
+ /* 0x58C */ s16 field_0x58c;
+ /* 0x590 */ f32 mOffsetY;
+ /* 0x594 */ bool mLocked;
+ /* 0x598 */ cXyz mParticlePos;
+ /* 0x5A4 */ csXyz mParticleAngle;
+ /* 0x5AC */ dBgS_ObjAcch mAcch;
+ /* 0x784 */ dBgS_AcchCir mAcchCir;
+};
+
+STATIC_ASSERT(sizeof(daBdoor_c) == 0x7C4);
#endif /* D_A_DOOR_BOSS_H */