Files
st/include/Actor/ActorHeart.hpp
T
Alessevan 905ceeb4b3 Started decompiling ActorHeart (#41)
* feat: change symbols for ActorHeart

* feat: begin ActorHeart decompilation

* feat: continue decompilation (some changes should be refactored)

* improvements

* fix build issues

* feat: improve matching code

* fix: remove back nitro/math

* feat: load s8 as u8

* refactor: remove shady variadic function

* feat: better function, reg order issue

* refactor: switch EC, F0 and F4 to a single VecFx32 variable and improve vfunc_20

* feat: improvements in vfunc_v20

* docs: add what should be written in comments

* feat: match with temporary unknown actor structure

* style: remove unnecessary curly brackets in switch cases

* style: move external functions to the top

* docs: mark unmatched functions as non-matching

* refactor: use FLOAT_TO_Q20 instead of raw hex values

* style: remove unnecessary cast

* refactor: use macros to manipulate flags

* refactor: better floating values

* refactor: use hex values over bin values

* feat: use ROUND_Q20 to increase matching

* refactor: use Cylinder::Init instead of assigning each variable

* refactor: change mangled names

---------

Co-authored-by: Yanis002 <35189056+Yanis002@users.noreply.github.com>
2026-05-29 19:02:57 +02:00

84 lines
2.2 KiB
C++

#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "ActorRupee.hpp"
#include "types.h"
class ActorHeart_c4 : public Actor_c4 {
public:
ActorHeart_c4(Actor *param1);
/* 00 */ virtual unk32 vfunc_00(Actor_c4_stack param1, unk32 param2) override;
/* 04 */ virtual void vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0c(unk32 param1) override;
};
class ActorHeart : public Actor {
public:
/* 00 (base) */
/* 94 */ u16 mUnk_94;
/* 96 */ u16 mUnk_96;
/* 98 */ Actor_9c mUnk_98;
/* 9C */ unk32 mUnk_9C;
/* A0 */ unk32 mUnk_A0;
/* A4 */ unk32 mUnk_A4;
/* A8 */ STRUCT_PAD(0xA8, 0xB4);
/* B4 */ unk16 mUnk_B4;
/* B6 */ STRUCT_PAD(0xB6, 0xB8);
/* B8 */ s16 mUnk_B8;
/* BA */ unk16 mUnk_BA;
/* BC */ unk16 mUnk_BC;
/* BE */ s8 mUnk_BE;
/* BF */ STRUCT_PAD(0xBF, 0xC0);
/* C0 */ unk32 mUnk_C0;
/* C4 */ unk32 mUnk_C4;
/* C8 */ ActorHeart_c4 mUnk_C8;
/* EC */ VecFx32 mUnk_EC;
ActorHeart();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 2C */ virtual void vfunc_2c(unk32 param1) override;
/* 4C */ virtual ~ActorHeart() override {};
void func_ov031_020f0750();
void func_ov031_020eed64(ActorParams *param_2, unk32 param_3, unk32 param_4);
void func_ov031_020ef1b4(unk16 param_2);
void func_ov031_020ef208();
void func_ov031_020ef4a8();
void func_ov031_020ef528();
void func_ov031_020ef570();
void func_ov031_020ef698();
// data_ov031_02113d74
void func_ov031_020ef2f8();
void func_ov031_020ef334();
void func_ov031_020ef3a0();
void func_ov031_020ef3d0();
void func_ov031_020ef444();
void func_ov031_020ef458();
// data_ov031_02113da4
void func_ov031_020ef2ec();
void func_ov031_020ef320();
void func_ov031_020ef35c();
void func_ov031_020ef3b8();
void func_ov031_020ef430();
void func_ov031_020ef448();
};
class ActorProfileHeart : public ActorProfile {
public:
/* 00 (base) */
ActorProfileHeart();
~ActorProfileHeart() {}
/* 0C */ virtual Actor *Create();
static ActorProfileHeart *GetProfile();
};