mirror of
https://github.com/zeldaret/ss
synced 2026-10-08 05:33:53 -04:00
d_a_obj_girahimu_knife
This commit is contained in:
@@ -9,8 +9,14 @@ public:
|
||||
dAcGirahimu2_c() : mStateMgr(*this) {}
|
||||
virtual ~dAcGirahimu2_c() {}
|
||||
|
||||
void setField_0xD52(u16 val) {
|
||||
field_0xD52 = val;
|
||||
}
|
||||
|
||||
private:
|
||||
/* 0x??? */ STATE_MGR_DECLARE(dAcGirahimu2_c);
|
||||
|
||||
/* 0xD52 */ u16 field_0xD52;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -100,6 +100,9 @@ public:
|
||||
static dAcEnBase_c *GetNextEnemy(dAcEnBase_c *pParent) {
|
||||
return static_cast<dAcEnBase_c *>(getNextObject(&sEnemyList, pParent));
|
||||
}
|
||||
static dAcEnBase_c *FindEnemy(fProfile::PROFILE_NAME_e profile, dAcEnBase_c *pParent = nullptr) {
|
||||
return static_cast<dAcEnBase_c *>(findObject(profile, &sEnemyList, pParent));
|
||||
}
|
||||
|
||||
protected:
|
||||
// TODO: Make accessors for this list to auto-convert to dAcEnBase?
|
||||
|
||||
@@ -203,7 +203,7 @@ public:
|
||||
const mVec3_c *scale, u32 params2, u32 roomId
|
||||
);
|
||||
|
||||
static dAcObjBase_c *findObject(fProfile::PROFILE_NAME_e actorId, fLiNdBa_c *refList, dAcObjBase_c *parent);
|
||||
static dAcObjBase_c *findObject(fProfile::PROFILE_NAME_e actorId, fLiMgBa_c *refList, dAcObjBase_c *parent);
|
||||
static dAcObjBase_c *getNextObject(fLiMgBa_c *ref, dAcObjBase_c *parent);
|
||||
bool isPlayer();
|
||||
void calcVelocity(mVec3_c &pos, f32 speed);
|
||||
|
||||
@@ -2,13 +2,28 @@
|
||||
#define D_A_OBJ_GIRAHIMU_KNIFE_H
|
||||
|
||||
#include "d/a/e/d_a_en_base.h"
|
||||
#include "d/col/c/c_cc_d.h"
|
||||
#include "d/col/cc/d_cc_d.h"
|
||||
#include "d/d_cc.h"
|
||||
#include "d/d_shadow.h"
|
||||
#include "m/m3d/m_smdl.h"
|
||||
#include "m/m_angle.h"
|
||||
#include "m/m_mtx.h"
|
||||
#include "m/m_quat.h"
|
||||
#include "m/m_vec.h"
|
||||
#include "s/s_State.hpp"
|
||||
#include "toBeSorted/d_emitter.h"
|
||||
|
||||
class dAcObjGirahimuKnife_c : public dAcEnBase_c {
|
||||
public:
|
||||
dAcObjGirahimuKnife_c() : mStateMgr(*this) {}
|
||||
dAcObjGirahimuKnife_c() : mGlowEmitter(this), mTrailEmitter(this), mStateMgr(*this) {}
|
||||
virtual ~dAcObjGirahimuKnife_c() {}
|
||||
|
||||
virtual int create() override;
|
||||
virtual int draw() override;
|
||||
virtual bool createHeap() override;
|
||||
virtual int actorExecute() override;
|
||||
|
||||
STATE_FUNC_DECLARE(dAcObjGirahimuKnife_c, Wait);
|
||||
STATE_FUNC_DECLARE(dAcObjGirahimuKnife_c, SpinWait);
|
||||
STATE_FUNC_DECLARE(dAcObjGirahimuKnife_c, SpinWaitPreAttack);
|
||||
@@ -20,8 +35,75 @@ public:
|
||||
STATE_FUNC_DECLARE(dAcObjGirahimuKnife_c, Hit);
|
||||
STATE_FUNC_DECLARE(dAcObjGirahimuKnife_c, CircleWait);
|
||||
|
||||
STATE_MGR_DEFINE_UTIL_CHANGESTATE(dAcObjGirahimuKnife_c);
|
||||
STATE_MGR_DEFINE_UTIL_ISSTATE(dAcObjGirahimuKnife_c);
|
||||
STATE_MGR_DEFINE_UTIL_EXECUTESTATE(dAcObjGirahimuKnife_c);
|
||||
STATE_MGR_DEFINE_UTIL_GETSTATEID(dAcObjGirahimuKnife_c);
|
||||
|
||||
void init();
|
||||
|
||||
void fn_239_1C40();
|
||||
void fn_239_1DB0(const mVec3_c &base, const mVec3_c &target);
|
||||
void fn_239_1F50(const mVec3_c &target, f32 add);
|
||||
void fn_239_2110(const mVec3_c &target, f32 add, s16 ang);
|
||||
void setTarget(const mVec3_c &t);
|
||||
void fn_239_2360(bool, bool, f32 zVel);
|
||||
void fn_239_2460(bool, bool, f32 velMult);
|
||||
bool isWaiting();
|
||||
bool isCircleWait();
|
||||
bool lineCheck();
|
||||
void updateMdlMatrix();
|
||||
void startEmitters();
|
||||
void fn_239_2B10();
|
||||
bool checkCutDir(s32 cutDir);
|
||||
void setWait();
|
||||
void setSpinWaitPreAttack();
|
||||
void getReflectForce(cCcD_Obj &cc, f32 forceMult, mVec3_c &outforce);
|
||||
void adjustVelocity(const mVec3_c &force, f32 yVel, f32 forwardVel);
|
||||
|
||||
private:
|
||||
/* 0x??? */ STATE_MGR_DECLARE(dAcObjGirahimuKnife_c);
|
||||
/* 0x378 */ m3d::smdl_c mMdl;
|
||||
/* 0x394 */ dShadowCircle_c mShadow;
|
||||
/* 0x39C */ dEmitter_c mGlowEmitter;
|
||||
/* 0x3D0 */ dEmitter_c mTrailEmitter;
|
||||
/* 0x404 */ dCcD_Linked<dCcD_Sph> mSph0;
|
||||
/* 0x564 */ dCcD_Linked<dCcD_Sph> mSph1;
|
||||
/* 0x6C0 */ dColliderLinkedList mCollider;
|
||||
/* 0x6D0 */ s16 field_0x6D0;
|
||||
/* 0x6D2 */ u16 mGlowEmitterId;
|
||||
/* 0x6D4 */ u16 mTrailEmitterId;
|
||||
/* 0x6D6 */ u16 field_0x6D6;
|
||||
/* 0x6D8 */ mVec3_c field_0x6D8;
|
||||
/* 0x6E4 */ mVec3_c field_0x6E4;
|
||||
/* 0x6F0 */ mAng3_c field_0x6F0;
|
||||
/* 0x6F6 */ mAng3_c field_0x6F6;
|
||||
/* 0x7FC */ u8 _0x6FC[0x704 - 0x6FC];
|
||||
/* 0x704 */ mQuat_c field_0x704;
|
||||
/* 0x714 */ mMtx_c field_0x714;
|
||||
/* 0x744 */ mVec3_c field_0x744;
|
||||
/* 0x750 */ mVec3_c field_0x750;
|
||||
/* 0x75C */ mVec3_c field_0x75C;
|
||||
/* 0x768 */ mVec3_c field_0x768;
|
||||
/* 0x774 */ f32 field_0x774;
|
||||
/* 0x778 */ s16 field_0x778;
|
||||
/* 0x77C */ f32 field_0x77C;
|
||||
/* 0x780 */ mAng field_0x780;
|
||||
/* 0x784 */ s32 field_0x784;
|
||||
/* 0x788 */ s32 mState;
|
||||
/* 0x78C */ bool field_0x78C;
|
||||
/* 0x78D */ bool field_0x78D;
|
||||
/* 0x78E */ bool field_0x78E;
|
||||
/* 0x78F */ bool field_0x78F;
|
||||
/* 0x790 */ bool field_0x790;
|
||||
/* 0x791 */ bool field_0x791;
|
||||
/* 0x792 */ bool field_0x792;
|
||||
/* 0x793 */ bool field_0x793;
|
||||
/* 0x794 */ STATE_MGR_DECLARE(dAcObjGirahimuKnife_c);
|
||||
|
||||
static s32 sSomething0;
|
||||
static s32 sSomething0_1;
|
||||
static mAng sSomething1;
|
||||
static s16 sSomething2;
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
@@ -572,6 +572,9 @@ public:
|
||||
void SetInfo_0x0(u8 val) {
|
||||
mSrc.mInfo.field_0x0 = val;
|
||||
}
|
||||
void SetSrc_0xE(u8 val) {
|
||||
mSrc.field_0xE = val;
|
||||
}
|
||||
|
||||
const cCcD_SrcGObjAt &GetSrc() const {
|
||||
return mSrc;
|
||||
@@ -881,6 +884,10 @@ public:
|
||||
void SetAtFlag(u32 flag) {
|
||||
mAt.SetSPrm(flag);
|
||||
}
|
||||
|
||||
void SetAtFlag2(u32 flag) {
|
||||
mAt.SetAtFlag(flag);
|
||||
}
|
||||
void SetAtGrp(u32 grp) {
|
||||
mAt.SetAtFlag(GetAtGrp() | grp);
|
||||
}
|
||||
@@ -1037,13 +1044,16 @@ public:
|
||||
void SetAtInfo_0x0(u8 amount) {
|
||||
mAt.SetInfo_0x0(amount);
|
||||
}
|
||||
void SetAt_0xE(u8 val) {
|
||||
mAt.SetSrc_0xE(val);
|
||||
}
|
||||
|
||||
void SetAtDamage(u8 amount) {
|
||||
mAt.SetAtDamage(amount);
|
||||
}
|
||||
void SetAtModifier(u16 modifier) {
|
||||
mAt.SetSrcModifer(modifier);
|
||||
}
|
||||
}
|
||||
|
||||
// Tg
|
||||
|
||||
|
||||
@@ -664,6 +664,12 @@ public:
|
||||
bool isAttackingSpin() const {
|
||||
return isAttackingSpinHorizontal() || isAttackingSpinVertical();
|
||||
}
|
||||
bool isAttackingHorizontal() const {
|
||||
return isAttackingLeft() || isAttackingRight();
|
||||
}
|
||||
bool isAttackingVertical() const {
|
||||
return isAttackingUp() || isAttackingDown();
|
||||
}
|
||||
void setBonkRelatedAnimFlag(bool b);
|
||||
void setPosYRot(const mVec3_c &pos, mAng rot, bool force = false, UNKWORD = 0, UNKWORD = 0);
|
||||
void setTransform(const mMtx_c &mtx, bool force, UNKWORD, UNKWORD);
|
||||
|
||||
@@ -112,6 +112,9 @@ public:
|
||||
f32 radian_c() const {
|
||||
return mVal * sAngToRad;
|
||||
}
|
||||
f32 normal_c() const {
|
||||
return mVal * sAngToNorm;
|
||||
}
|
||||
|
||||
public:
|
||||
static s16 d2s(f32 deg) {
|
||||
|
||||
Reference in New Issue
Block a user