summaryrefslogtreecommitdiff
path: root/include/d/a/d_a_player.h
diff options
context:
space:
mode:
authorrobojumper <robojumper@gmail.com>2025-05-22 01:23:01 +0200
committerrobojumper <robojumper@gmail.com>2025-05-22 01:23:01 +0200
commit93e5291422549a37ad8cb006ae8dd81f2dbee41a (patch)
tree3ef52459bbfcf0c2f94263fd64cbcfee92ae44c3 /include/d/a/d_a_player.h
parentbcbba3a60cfc489919f024373fb9285a1179daa3 (diff)
A bit of progress
Diffstat (limited to 'include/d/a/d_a_player.h')
-rw-r--r--include/d/a/d_a_player.h49
1 files changed, 45 insertions, 4 deletions
diff --git a/include/d/a/d_a_player.h b/include/d/a/d_a_player.h
index bf18e973..c379de1b 100644
--- a/include/d/a/d_a_player.h
+++ b/include/d/a/d_a_player.h
@@ -114,6 +114,18 @@ public:
mpSoundData = data;
}
+ void setField_0x58(u8 val) {
+ field_0x58 = val;
+ }
+
+ u16 getField_0x5A() const {
+ return field_0x5A;
+ }
+
+ void *getSoundData() const {
+ return mpSoundData;
+ }
+
private:
/* 0x24 */ daPlBaseMdlCallback_c mCallback;
/* 0x58 */ u8 field_0x58;
@@ -142,6 +154,10 @@ public:
void play() override;
bool isFinished();
+ void setField_0x35(u8 value) {
+ field_0x35 = value;
+ }
+
private:
/* 0x35 */ u8 field_0x35;
/* 0x36 */ u8 field_0x36;
@@ -726,6 +742,18 @@ public:
mForceOrPreventActionFlags |= mask;
}
+ inline void onFaceUpdateFlags(u32 mask) {
+ mFaceUpdateFlags |= mask;
+ }
+
+ inline void offFaceUpdateFlags(u32 mask) {
+ mFaceUpdateFlags &= ~mask;
+ }
+
+ inline bool checkFaceUpdateFlags(u32 mask) const {
+ return (mFaceUpdateFlags & mask) != 0;
+ }
+
bool CheckPlayerFly() const {
return mActionFlags & FLG0_FLY;
}
@@ -791,7 +819,7 @@ protected:
/* 0x339 */ u8 mRidingActorType;
/* 0x33A */ u8 unk_0x33A[0x340 - 0x33A];
/* 0x340 */ u32 someFlags_0x340;
- /* 0x344 */ u8 unk_0x344[0x348 - 0x344];
+ /* 0x344 */ u32 mFaceUpdateFlags;
/* 0x348 */ u32 mSwordAndMoreStates;
/* 0x34C */ u32 mModelUpdateFlags;
/* 0x350 */ u32 someFlags_0x350;
@@ -842,7 +870,7 @@ public:
PLAYER_MAIN_NODE_ARM_L2 = 8,
PLAYER_MAIN_NODE_HAND_L = 9,
PLAYER_MAIN_NODE_WEAPON_L = 10,
-
+
PLAYER_MAIN_NODE_SHOULDER_R = 11,
PLAYER_MAIN_NODE_ARM_R1 = 12,
PLAYER_MAIN_NODE_ARM_R2 = 13,
@@ -891,6 +919,7 @@ public:
};
void fn_8005F890(nw4r::math::MTX34 *);
+ void fn_8005FB90(nw4r::math::MTX34 *);
void fn_80061410();
static void freeFrmHeap(mHeapAllocator_c *allocator);
@@ -1011,10 +1040,21 @@ public:
mSwordAndMoreStates &= ~mask;
}
- void loadSound(nw4r::g3d::ResFile file, const char *name, s32 animIdx);
+ bool canStart(bool force, u16 newIdx, u16 invalidValue, u16 *out1, u16 *out2) const;
+ void setFaceTexPat(s32 faceIdx, bool force);
+ void setFaceTexSrt(s32 faceIdx, bool force);
+ void setFaceAnmChr(s32 faceIdx, bool force);
+
+ void setPosCopy3();
+
+ void loadTwoAnmChrs(s32 childIdx, s32 animIdx, s32 animIdx2, bool b);
+ void loadAnmChr(s32 childIdx, s32 animIdx, void *dest, u32 maxSize);
+ void removeAnmChr(s32 childIdx);
+ void loadSound(nw4r::g3d::ResFile &file, const char *name, s32 childIdx);
+ void loadSoundForAnim(s32 childIdx);
void syncSoundWithAnim();
- static void registMassObj(cCcD_Obj* obj, u8 priority);
+ static void registMassObj(cCcD_Obj *obj, u8 priority);
void updateModelColliders();
void updateCachedPositions();
@@ -1037,6 +1077,7 @@ public:
void applyWorldRotationMaybe(nw4r::g3d::WorldMtxManip *result, mAng x, mAng y, mAng z, mVec3_c *off, bool order);
static const PlayerAnimation sAnimations[443];
+ static const s32 sUnkDuration;
static const u8 sShieldDurabilities[10];
static const u8 sShieldRegenTimes[10];
static mColor sGuideColor1;