summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorelijah-thomas774 <elijahthomas774@gmail.com>2026-10-08 15:32:34 -0400
committerelijah-thomas774 <elijahthomas774@gmail.com>2026-10-13 14:39:52 -0400
commite2e5401ae6244393a1e2b7fe77d812adcdfbc98c (patch)
tree1b4a9d3733c9f8fbbdb0cae89a5b329bcc1eeb2b /include
parent1d8812dd20869e6904288644c4849b6e85e42a25 (diff)
d_a_b_ghirahimu2 - Setup
Diffstat (limited to 'include')
-rw-r--r--include/d/a/b/d_a_b_girahimu2.h78
-rw-r--r--include/d/a/b/d_a_b_girahimu_base.h3
-rw-r--r--include/d/a/npc/d_a_npc.h4
3 files changed, 76 insertions, 9 deletions
diff --git a/include/d/a/b/d_a_b_girahimu2.h b/include/d/a/b/d_a_b_girahimu2.h
index a825633c..e698d798 100644
--- a/include/d/a/b/d_a_b_girahimu2.h
+++ b/include/d/a/b/d_a_b_girahimu2.h
@@ -1,22 +1,82 @@
#ifndef D_A_B_GIRAHIMU2_H
#define D_A_B_GIRAHIMU2_H
-#include "d/a/e/d_a_en_base.h"
+#include "d/a/b/d_a_b_girahimu_base.h"
+#include "d/a/d_a_base.h"
#include "s/s_State.hpp"
-class dAcGirahimu2_c : public dAcEnBase_c {
+class dAcObjGirahimuKnife_c;
+
+class dAcGirahimu2_c : public dAcGirahimuBase_c {
public:
- dAcGirahimu2_c() : mStateMgr(*this) {}
+ dAcGirahimu2_c() : field_0x221E(false) {}
virtual ~dAcGirahimu2_c() {}
- void setField_0xD52(u16 val) {
- field_0xD52 = val;
- }
+ virtual int doDelete() override;
+ virtual bool createHeap() override;
+ virtual int actorCreate() override;
+ virtual int actorExecute() override;
-private:
- /* 0x??? */ STATE_MGR_DECLARE(dAcGirahimu2_c);
+ STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcGirahimu2_c, dAcGirahimuBase_c, Walk);
+ STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcGirahimu2_c, dAcGirahimuBase_c, Catch);
+ STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcGirahimu2_c, dAcGirahimuBase_c, CatchDamage);
+ STATE_VIRTUAL_OVERRIDE_FUNC_DECLARE(dAcGirahimu2_c, dAcGirahimuBase_c, Counter);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, G_SwordDamage); // Non virtual override?? (still virtual)
+
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, CreateSpinKnife);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, WaitKnifeAttack);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, KnifeAttack);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, KnifePreAttack);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, G_SwordDemo);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, G_SwordWait);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, G_SwordPiyori);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, Death);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, DeathMiniGame);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, UpWarp);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, UpAttack);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, CreateKnife);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, ComeOn);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, ComeOnGuard);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, GuardJustCounter);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, TwoSwordAttack);
+ STATE_FUNC_DECLARE(dAcGirahimu2_c, HitAction);
- /* 0xD52 */ u16 field_0xD52;
+ virtual void vt_0x1DC() override;
+ virtual void vt_0x1F4() override;
+ virtual void vt_0x1F8() override;
+ virtual void vt_0x1FC() override;
+ virtual void vt_0x200() override;
+ virtual void vt_0x204() override;
+ virtual void vt_0x20C() override;
+ virtual bool vt_0x210() override;
+ virtual void vt_0x214() override;
+ virtual bool vt_0x218() override;
+ virtual void vt_0x220() override;
+ virtual void vt_0x224() override {}
+ virtual void vt_0x228() override;
+ virtual void vt_0x22C() override;
+ virtual void vt_0x230() override;
+ virtual void vt_0x234();
+
+ void fn_228_4550(int idxStart, int idxEnd);
+ void fn_228_47F0(bool);
+ void fn_228_4A30();
+ void fn_228_4C20();
+ bool fn_228_4CD0(s32 cutDir);
+ bool fn_228_5110();
+ void fn_228_5400();
+ void fn_228_5740();
+ bool fn_228_5770(s32 cutDir);
+ bool fn_228_5E90();
+ bool fn_228_5EC0();
+ void fn_228_80A0();
+ void fn_228_80E0();
+ void fn_228_82C0();
+
+private:
+ /* 0x220C */
+ /* 0x221E */ bool field_0x221E;
+ /* 0x2210 */ dAcRef_c<dAcObjGirahimuKnife_c> mKnives[15];
};
#endif
diff --git a/include/d/a/b/d_a_b_girahimu_base.h b/include/d/a/b/d_a_b_girahimu_base.h
index 66bf87c6..cd2ab240 100644
--- a/include/d/a/b/d_a_b_girahimu_base.h
+++ b/include/d/a/b/d_a_b_girahimu_base.h
@@ -40,6 +40,9 @@ struct LinkSph {
};
class dAcGirahimuBase_c : public dAcEnBase_c {
public:
+ friend class dAcObjGirahimuSwordLink_c;
+ friend class dAcObjGirahimuKnife_c;
+
dAcGirahimuBase_c() : mStateMgr(*this), mFlowMgr(&mFlow) {}
virtual ~dAcGirahimuBase_c();
diff --git a/include/d/a/npc/d_a_npc.h b/include/d/a/npc/d_a_npc.h
index b080e716..8be382ee 100644
--- a/include/d/a/npc/d_a_npc.h
+++ b/include/d/a/npc/d_a_npc.h
@@ -33,6 +33,10 @@ public:
void create(m3d::smdl_c &mdl, u16 eyeMatL, u16 eyeMatR, u8, u8, dAcObjBase_c *);
+ virtual void ExecCallback_CALC_MAT(
+ nw4r::g3d::ScnObj::Timing /* timing */, nw4r::g3d::ScnObj * /* pObj */, u32 /* param */, void * /* pInfo */
+ ); // at 0x10
+
/* 0x04 */ u8 mBlendWeight;
/* 0x05 */ u8 mInterpTimer;
/* 0x06 */ u8 nTexCoordMask[2];