summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorTakaRikka <takarikka@outlook.com>2023-07-18 23:16:49 -0700
committerTakaRikka <takarikka@outlook.com>2023-07-18 23:16:49 -0700
commit032d970ce0efd88e089e02738fed3f94ce08842a (patch)
treedaef99208543c0067a6b0a1e012c86fcc01c14c7 /include
parent0b60233fae3aee1d46ab8be3d6aba895bd61ef54 (diff)
d_a_dshutter mostly done
Diffstat (limited to 'include')
-rw-r--r--include/f_op/f_op_actor_mng.h2
-rw-r--r--include/rel/d/a/d_a_dshutter/d_a_dshutter.h75
2 files changed, 76 insertions, 1 deletions
diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h
index 97a4eaf976..51b0b19cd5 100644
--- a/include/f_op/f_op_actor_mng.h
+++ b/include/f_op/f_op_actor_mng.h
@@ -91,6 +91,8 @@ class dBgS_WtrChk;
class fopAcM_wt_c {
public:
static dBgS_WtrChk* getWaterCheck() { return (dBgS_WtrChk*)&mWaterCheck; }
+ static f32 getWaterY() { return mWaterY[0]; }
+
static bool waterCheck(const cXyz*);
static u8 mWaterCheck[84 + 4 /* padding */];
static f32 mWaterY[1 + 1 /* padding */];
diff --git a/include/rel/d/a/d_a_dshutter/d_a_dshutter.h b/include/rel/d/a/d_a_dshutter/d_a_dshutter.h
index 392a5ac7fc..445f69a430 100644
--- a/include/rel/d/a/d_a_dshutter/d_a_dshutter.h
+++ b/include/rel/d/a/d_a_dshutter/d_a_dshutter.h
@@ -1,6 +1,79 @@
#ifndef D_A_DSHUTTER_H
#define D_A_DSHUTTER_H
-#include "dolphin/types.h"
+#include "d/bg/d_bg_s_movebg_actor.h"
+#include "d/com/d_com_inf_game.h"
+#include "f_op/f_op_actor_mng.h"
+
+class daDsh_c : public dBgS_MoveBgActor {
+public:
+ class action_c {
+ public:
+ typedef int (daDsh_c::*actionFunc)();
+
+ /* action_c(actionFunc i_initFunc, actionFunc i_execFunc) {
+ mInitFunc = i_initFunc;
+ mExecuteFunc = i_execFunc;
+ } */
+
+ actionFunc& getInit() { return mInitFunc; }
+ actionFunc& getExecute() { return mExecuteFunc; }
+
+ /* 0x0 */ actionFunc mInitFunc;
+ /* 0xC */ actionFunc mExecuteFunc;
+ };
+
+ /* 80467498 */ ~daDsh_c();
+ /* 80467694 */ void setMtx();
+ /* 80467708 */ void setAction(daDsh_c::action_c*);
+ /* 8046772C */ int callInit();
+ /* 8046777C */ int callExecute();
+ /* 804677D4 */ int initOpenWait();
+ /* 804677E4 */ int executeOpenWait();
+ /* 80467840 */ int initOpen();
+ /* 80467988 */ int executeOpen();
+ /* 80467A64 */ int initCloseWait();
+ /* 80467A80 */ int executeCloseWait();
+ /* 80467ADC */ int initClose();
+ /* 80467B04 */ int executeClose();
+
+ /* 8046751C */ virtual int CreateHeap();
+ /* 80467640 */ virtual int Execute(f32 (**)[3][4]);
+ /* 8046759C */ virtual int Draw();
+
+ inline int create();
+
+ u8 getType() { return (fopAcM_GetParam(this) >> 8) & 0xF; }
+ int getSw() { return fopAcM_GetParam(this) & 0xFF; }
+
+ u8 getOpenTiltTime() { return 0; }
+ f32 getOpenAccel() { return OPEN_ACCEL; }
+ f32 getOpenSpeed() { return OPEN_SPEED; }
+ f32 getOpenBoundSpeed() { return OPEN_BOUND_SPEED; }
+ f32 getOpenBoundRatio() { return OPEN_BOUND_RATIO; }
+
+ u8 getCloseTiltTime() { return 0; }
+ f32 getCloseAccel() { return CLOSE_ACCEL; }
+ f32 getCloseSpeed() { return CLOSE_SPEED; }
+ f32 getCloseBoundSpeed() { return CLOSE_BOUND_SPEED; }
+ f32 getCloseBoundRatio() { return CLOSE_BOUND_RATIO; }
+
+ static f32 OPEN_SIZE;
+ static f32 OPEN_ACCEL;
+ static f32 OPEN_SPEED;
+ static f32 OPEN_BOUND_SPEED;
+ static f32 OPEN_BOUND_RATIO;
+ static f32 CLOSE_ACCEL;
+ static f32 CLOSE_SPEED;
+ static f32 CLOSE_BOUND_SPEED;
+ static f32 CLOSE_BOUND_RATIO;
+
+ /* 0x5A0 */ dComIfG_resLoader_c mResLoader;
+ /* 0x5B0 */ J3DModel* mpModel;
+ /* 0x5B4 */ action_c* mpAction;
+ /* 0x5B8 */ s16 mTiltTime;
+ /* 0x5BA */ u8 mSw;
+ /* 0x5BB */ u8 mType;
+};
#endif /* D_A_DSHUTTER_H */