Files
st/include/Actor/ActorUnkCASE.hpp
T
Mityno 39288e4605 Start decompiling ActorUnkCASE (#124)
* feat: Start decompiling ActorUnkCASE's ctor

* fix: Fix broken member names

* feat: Finish decompiling ActorUnkCASE's ctor (orr mismatch)

* feat: Match ActorUnkCASE_174::vfunc_10

* fix: Update flags arithmetic

* feat: Match ActorUnkCASE_150 ctor

* feat: Match ActorProfileUnkCASE ctor

* feat: Update symbols and vfunc of ActorUnkCASE

* feat: Match ActorUnkCASE::vfunc_24

* feat: Decompile ActorUnkCASE::vfunc_10, update Actor::vfunc_10 to use Cylinder

* fix: Fix broken Actor symbols

* feat: Match ActorUnkCASE::vfunc_18

* feat: Match ActorUnkCASE::vfunc_2C

* feat: Start decompiling ActorUnkCASE::vfunc_20

* feat: Match ActorUnkCASE's ctor

* feat: Almost finish decompiling ActorUnkCASE::vfunc_20

* feat: Decompile func_ov063_0215b054 and func_ov063_0215afa4

* feat: Match func_ov063_0215af60

* feat: Decompile func_ov063_0215afb8

* feat: Match func_ov063_0215b090

* feat: Match func_ov063_0215b2b0

* feat: Match func_ov063_0215b244

* feat: Match func_ov063_0215b1bc

* feat: Match ActorUnkCASE_150::vfunc_00

* feat: Match ActorUnkCASE_150::vfunc_04

* feat: Match ActorUnkCASE_150::vfunc_0C

* feat: Match func_ov063_0215b814

* feat: Decompile func_ov063_0215b854

* feat: Match func_ov063_0215aefc

* feat: Match func_ov063_0215acec

* feat: Update jp symbols

* feat: Some symbols and improved matching

* feat: Match func_ov063_0215b99c

* feat: Start decompiling func_ov063_0215b8e8

* feat: Decompile some funcs

* feat: Rename symbols, improve matching, add some data

* fix: Fix wrong code for JP only

* fix: Fix broken symbols

* feat: Update symbols and extend .data, match sinit

The .data ordering is wrong

* feat: Small changes

* Apply suggestions from code review

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>

* fix: More code review

* feat: Add small comment for the goto

* feat: Update func_ov063_0215b8e8 and vfunc_0C to use VexFx32

* fix: Missing c/hpp changes for previous commit

* feat: Update func_ov063_0215afb8 to use ActorUnkITWP

---------

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
2026-08-14 15:14:49 +02:00

141 lines
4.1 KiB
C++

//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Actor/ActorRef.hpp"
#include "Actor/ActorShotArrow.hpp"
#include "Actor/Actor_Derived1.hpp"
#include "Unknown/UnkStruct_ov000_020b3268.hpp"
#include "Unknown/UnkStruct_ov031_Items.hpp"
#include "global.h"
#include "nitro/fx.h"
#include "nitro/math.h"
#include "types.h"
class UnkStruct_ov063_021631a0 : public UnkStruct_ov000_020b3268 {
public:
/* 00 (base) */
/* 60 */ STRUCT_PAD(0x60, 0x6C);
/* 6C */ unk32 mUnk_6C;
/* 70 */
UnkStruct_ov063_021631a0(G3d_Model *pModel);
/* 00 */ virtual ~UnkStruct_ov063_021631a0() override {};
};
class UnkStruct_func_ov063_0215a678 {
public:
/* 00 */ STRUCT_PAD(0x00, 0x04);
/* 04 */ ModelRender *mUnk_04; //! INFO: Placeholder that matches
/* 08 */ unk32 mUnk_08;
/* 0C */ STRUCT_PAD(0x0C, 0x25);
/* 25 */ u8 mUnk_25;
/* 26 */ STRUCT_PAD(0x26, 0x92);
/* 92 */ s8 mUnk_92;
/* 93 */ STRUCT_PAD(0x93, 0xAE);
/* AE */ u8 mUnk_AE;
};
class ActorUnkCASE_150 : public Actor_C4 {
public:
/* 00 (base) */
/* 24 */
ActorUnkCASE_150(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 0C */ virtual void vfunc_0C(VecFx32 *param1) override;
};
class ActorUnkCASE_174 : public UnkStruct_ov031_Items_01 {
public:
/* 00 (base) */
/* 2C */ Actor *mUnk_2C;
/* 30 */
ActorUnkCASE_174(Actor *param1);
/* 00 */ virtual ~ActorUnkCASE_174() override {};
/* 10 */ virtual void vfunc_10(Actor *actor) override;
};
class ActorUnkCASE : public Actor_Derived2 {
public:
/* 000 (base) */
/* 0AE */ unk16 mUnk_0AE;
/* 0B0 */ UnkStruct_ov063_021631a0 mUnk_0B0;
/* 120 */ unk16 mUnk_120;
/* 122 */ STRUCT_PAD(0x122, 0x124);
/* 124 */ ActorShotArrow_140 mUnk_124;
/* 14C */ Actor *mUnk_14C;
/* 150 */ ActorUnkCASE_150 mUnk_150;
/* 174 */ ActorUnkCASE_174 mUnk_174;
/* 1A4 */ Mat3p mUnk_1A4;
/* 1C8 */ unk16 mUnk_1C8; // Angle related
/* 1CA */ STRUCT_PAD(0x1CA, 0x1CC);
/* 1CC */ VecFx32 mUnk_1CC;
/* 1D8 */ unk32 mUnk_1D8;
/* 1DC */ unk32 mUnk_1DC;
/* 1E0 */ unk32 mUnk_1E0;
/* 1E4 */ ActorRef mUnk_1E4;
/* 1E8 */ Actor_Derived1_94 mUnk_1E8;
/* 1F4 */ u8 mUnk_1F4;
/* 1F5 */
ActorUnkCASE();
/* 10 */ virtual void vfunc_10(Cylinder *param1) override;
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 2C */ virtual void vfunc_2C(unk32 param1) override;
/* 4C */ virtual ~ActorUnkCASE() override;
void func_ov063_0215ab70(void);
void func_ov063_0215aba4(void);
void func_ov063_0215abd8(void);
void func_ov063_0215ac4c(void);
void func_ov063_0215ac68(void);
void func_ov063_0215ac8c(void);
void func_ov063_0215acc8(void);
static void func_ov063_0215acec(ActorRef *ref1, ActorRef ref2); // copy ?
void func_ov063_0215ae6c(void);
void func_ov063_0215ae80(void);
void func_ov063_0215aefc(ActorState param2);
void func_ov063_0215af54(void);
void func_ov063_0215af58(void);
void func_ov063_0215af5c(void);
void func_ov063_0215af60(void);
void func_ov063_0215afa4(void);
void func_ov063_0215afb8(void);
void func_ov063_0215b054(void);
void func_ov063_0215b090(void);
void func_ov063_0215b1bc(void);
void func_ov063_0215b244(void);
void func_ov063_0215b2b0(void);
void func_ov063_0215b2c4(void);
void func_ov063_0215b6c8(VecFx32 *param1, UnkAngleStruct angle);
void func_ov063_0215b724(void);
void func_ov063_0215b814(ActorRef ref);
void func_ov063_0215b854(void);
void func_ov063_0215b8e8(VecFx32 *param1);
static void func_ov063_0215b99c(ActorUnkCASE *param1, UnkStruct_func_ov063_0215a678 *param2);
void func_ov063_0215ba64(void);
};
class ActorProfileUnkCASE : public ActorProfile_Derived1 {
public:
/* 00 (base) */
ActorProfileUnkCASE();
~ActorProfileUnkCASE();
/* 0C */ virtual Actor *Create();
static ActorProfileUnkCASE *GetProfile();
};