diff options
Diffstat (limited to 'include/Actor/Character/ActorCharacter.hpp')
| -rw-r--r-- | include/Actor/Character/ActorCharacter.hpp | 177 |
1 files changed, 128 insertions, 49 deletions
diff --git a/include/Actor/Character/ActorCharacter.hpp b/include/Actor/Character/ActorCharacter.hpp index 497b0699..8c9968a2 100644 --- a/include/Actor/Character/ActorCharacter.hpp +++ b/include/Actor/Character/ActorCharacter.hpp @@ -1,5 +1,6 @@ #pragma once +#include "Actor/ActorRef.hpp" #include "Render/ModelRender.hpp" #include "global.h" #include "nds/math.h" @@ -23,11 +24,11 @@ public: /* 000 (base) */ /* 158 */ UnkStruct_ov000_020d18f4 mUnk_158; /* 1b4 */ unk32 mUnk_1b4; - /* 1b8 */ unk32 (*mUnk_1b8)(unk32); - /* 1bc */ unk32 mUnk_1bc; + /* 1b8 */ bool (*mUnk_1b8)(ActorCharacterBase *); + /* 1bc */ ActorCharacterBase *mUnk_1bc; /* 1c0 */ bool mUnk_1c0; /* 1c1 */ bool mUnk_1c1; - /* 1c2 */ unk8 mUnk_1c2; + /* 1c2 */ bool mUnk_1c2; /* 1c3 */ bool mUnk_1c3; /* 1c4 */ @@ -58,12 +59,12 @@ public: }; struct ActorCharacter_1c4 { - /* 00 */ unk32 mUnk_00; - /* 04 */ unk32 mUnk_04; - /* 08 */ unk32 mUnk_08; + /* 00 */ Vec3p mUnk_00; /* 0c */ unk32 mUnk_0c; /* 10 */ unk32 mUnk_10; /* 14 */ + + ActorCharacter_1c4(); }; class ActorCharacterModel : public ModelRender { @@ -77,8 +78,7 @@ public: /* 6a */ unk16 mUnk_6a; /* 6c */ unk16 mUnk_6c; /* 6e */ unk16 mUnk_6e; - /* 70 */ unk32 mUnk_70; - /* 74 */ unk32 mUnk_74; + /* 70 */ ActorRef mUnk_70; /* 78 */ Vec3p mUnk_78; /* 84 */ unk32 mUnk_84; /* 88 */ unk32 mUnk_88; @@ -88,58 +88,128 @@ public: /* 8f */ unk8 mUnk_8f; /* 90 */ - /* 00 */ virtual ~ActorCharacterModel() override; + /* 00 */ virtual ~ActorCharacterModel() override {} /* 3c */ virtual void vfunc_3c(ModelRenderCommandsData *renderData) override; /* 40 */ ActorCharacterModel(); + + void func_ov014_0214a92c(Vec3p *param1, Vec3p *param2, s16 angle); + unk32 func_ov014_0214aa0c(Vec3p *param1, s16 angle); }; -class ActorCharacter_288 : public UnkStruct_ov000_020c0c08 { +class ActorCharacter_1d8_b0 : public UnkStruct_ov000_020c0c08 { public: /* 00 (base) */ - /* 24 */ UnkStruct_ov000_020c0c08_04 *mUnk_24; - /* 28 */ PAD(0x28, 0x80); + /* 24 */ UnkStruct_ov000_020c0c08_04 mUnk_24; + /* 44 */ PAD(0x44, 0x80); /* 80 */ - ActorCharacter_288(); + /* 00 */ virtual ~ActorCharacter_1d8_b0() override; + /* 08 */ + + inline ActorCharacter_1d8_b0(); +}; + +struct ActorCharacter_430_04_04 { + /* 00 */ PAD(0x00, 0x04); + /* 04 */ Vec3p mUnk_04; + /* 10 */ PAD(0x10, 0x24); + /* 24 */ +}; + +struct ActorCharacter_430_04 { + /* 00 */ u8 *mUnk_00; + /* 04 */ ActorCharacter_430_04_04 *mUnk_04; + /* 08 */ }; struct ActorCharacter_430 { - /* 00 */ PAD(0x00, 0x18); + /* 00 */ PAD(0x00, 0x4); + /* 04 */ ActorCharacter_430_04 *mUnk_04; + /* 08 */ PAD(0x08, 0xc); + /* 0c */ unk8 mUnk_0c; + /* 0d */ PAD(0x0d, 0x18); /* 18 */ + + ActorCharacter_430(); + ~ActorCharacter_430(); + + bool func_ov000_020c66e4(Vec3p *pos, s16 angle, unk32 param3); + bool func_ov000_020c6794(Vec3p *pos); + void func_ov000_020c6838(Vec3p *pos, unk32 param2, s16 angle, unk32 param4, Vec3p *vel, u16 *pAngle); + bool func_ov000_020c6e30(Vec3p *vec); + void func_ov000_020c6f08(Vec3p *vec); +}; + +struct ActorCharacter_1d8_248 { + /* 00 */ unk32 mUnk_00[2]; + /* 08 */ unk32 mUnk_08; + /* 0c */ PAD(0x0c, 0x0e); + /* 0e */ unk8 mUnk_0e; + /* 0f */ unk8 mUnk_0f; + /* 10 */ + + inline ActorCharacter_1d8_248() { + mUnk_08 = 0; + mUnk_0e = 1; + mUnk_0f = 0; + mUnk_00[0] = -1; + mUnk_00[1] = -1; + } +}; + +class ActorCharacter_1d8 : public UnkStruct_ov000_020c5c2c { +public: + /* 000 (base) */ + /* 020 */ ActorCharacterModel mUnk_020; + /* 0b0 */ ActorCharacter_1d8_b0 mUnk_0b0[2]; + /* 1b0 */ ActorCharacter_1d8_b0 mUnk_1b0; + /* 230 */ unk32 mUnk_230; + /* 234 */ unk32 mUnk_234; + /* 238 */ unk32 mUnk_238; + /* 23c */ unk32 mUnk_23c; + /* 240 */ unk32 mUnk_240; + /* 244 */ unk32 mUnk_244; + /* 248 */ ActorCharacter_1d8_248 mUnk_248; + + /* 00 */ virtual void vfunc_00(unk32 param1, unk32 *param2, unk32 *param3) override; // func_ov014_02145bcc + /* 04 */ virtual void vfunc_04() override; // func_ov014_02146194 + /* 0c */ + + inline ActorCharacter_1d8(void *param1) : + UnkStruct_ov000_020c5c2c(param1, &mUnk_020, &mUnk_0b0[0]), + mUnk_230(0), + mUnk_234(0), + mUnk_238(0), + mUnk_23c(0), + mUnk_240(0x1000), + mUnk_244(0x11f) {} + + void func_ov014_02145cac(); + bool func_ov014_02145f0c(unk32 param1); + + inline bool UnkFunc1(unk32 param1) { + return param1 == mUnk_248.mUnk_00[mUnk_248.mUnk_08]; + } }; class ActorCharacter : public ActorCharacterBase { public: /* 000 (base) */ /* 1c4 */ ActorCharacter_1c4 mUnk_1c4; - /* 1d8 */ UnkStruct_ov000_020c5c2c mUnk_1d8; - /* 1f8 */ ActorCharacterModel mUnk_1f8; - /* 288 */ ActorCharacter_288 mUnk_288[2]; - /* 388 */ ActorCharacter_288 mUnk_388; - /* 408 */ unk32 mUnk_408; - /* 40c */ unk32 mUnk_40c; - /* 410 */ unk32 mUnk_410; - /* 414 */ unk32 mUnk_414; - /* 418 */ unk32 mUnk_418; - /* 41c */ unk32 mUnk_41c; - /* 420 */ unk32 mUnk_420; - /* 424 */ unk32 mUnk_424; - /* 428 */ unk32 mUnk_428; - /* 428 */ PAD(0x42c, 0x42e); - /* 42e */ unk8 mUnk_42e; - /* 42f */ unk8 mUnk_42f; + /* 1d8 */ ActorCharacter_1d8 mUnk_1d8; /* 430 */ ActorCharacter_430 mUnk_430; /* 448 */ unk32 mUnk_448; - /* 44c */ PAD(0x44c, 0x454); + /* 44c */ unk32 mUnk_44c; + /* 450 */ unk32 mUnk_450; /* 454 */ unk32 mUnk_454; /* 458 */ unk32 mUnk_458; - /* 44c */ PAD(0x45c, 0x460); + /* 44c */ unk32 mUnk_45c; /* 460 */ unk32 mUnk_460; /* 464 */ unk32 mUnk_464; - /* 468 */ unk8 mUnk_468; - /* 469 */ unk8 mUnk_469; + /* 468 */ bool mUnk_468; + /* 469 */ bool mUnk_469; /* 46a */ PAD(0x46a, 0x46c); /* 46c */ unk32 mUnk_46c[1]; /* 470 */ @@ -148,44 +218,53 @@ public: /* 08 */ virtual bool Init() override; /* 20 */ virtual void vfunc_20(bool param1) override; /* 40 */ virtual bool IsHitboxTouched(bool param1) override; - /* 68 */ virtual void vfunc_68() override; - /* 74 */ virtual void vfunc_74() override; + /* 74 */ virtual void vfunc_74(ActorRef *ref) override; /* 78 */ virtual bool vfunc_78() override; - /* 7c */ virtual void vfunc_7c() override; + /* 7c */ virtual void vfunc_7c(ActorRef *ref) override; /* 80 */ virtual void vfunc_80() override; /* 84 */ virtual void vfunc_84() override; - /* 90 */ virtual bool vfunc_90() override; - /* 94 */ virtual void vfunc_94() override; + /* 90 */ virtual bool vfunc_90(unk32 param1, unk32 param2) override; + /* 94 */ virtual void vfunc_94(unk32 param1, unk32 param2) override; /* 98 */ virtual bool vfunc_98() override; /* 9c */ virtual bool vfunc_9c() override; /* c8 */ virtual void vfunc_c8() override; /* cc */ virtual void vfunc_cc() override; /* d0 */ virtual void vfunc_d0() override; /* ec */ virtual void vfunc_ec(unk32 param1); - /* f0 */ virtual void vfunc_f0(unk32 param1); + /* f0 */ virtual void vfunc_f0(unk32 param1, unk32 param2); /* f4 */ ActorCharacter(); void func_ov014_02144d94(); void func_ov014_02144dec(); - void func_ov014_02144e14(); - void func_ov014_02144e28(); - void func_ov014_02144e3c(); - void func_ov014_02144e58(); - void func_ov014_02144e74(); + bool func_ov014_02144e14(); + bool func_ov014_02144e28(); + bool func_ov014_02144e3c(); + bool func_ov014_02144e58(); + bool func_ov014_02144e74(); void func_ov014_02145178(); void func_ov014_021451f0(unk32 *param1); void func_ov014_02145258(); unk32 func_ov014_021452b0(); unk32 func_ov014_02145318(); - void func_ov014_021453f4(); - void func_ov014_02145414(); - void func_ov014_0214548c(); + void func_ov014_021453f4(unk32 param1); + void func_ov014_02145414(unk32 param1, unk32 param2); + void func_ov014_0214548c(unk32 param1); void func_ov014_02145508(); - void func_ov014_0214552c(); + static bool func_ov014_02145520(ActorCharacterBase *actor); + bool func_ov014_0214552c(); void func_ov014_0214591c(); + + inline unk32 UnkInline1() { + unk32 ret = 1; + if (mUnk_458 != -1) { + ret = mUnk_458; + mUnk_458 = -1; + } + return ret; + } }; class ActorGenericCharacter : public ActorCharacter { |
