Decompile Actors SWOB, SWTM, EVIC and EFIK (#46)

* decompile SWOB

* match sinit

* remove useless stuff

* decompile actor swtm

* decompile actor evic

* mark evic as complete

* decompile actor efik

* EVIC -> EventIcon
This commit is contained in:
Yanis
2026-04-12 16:54:21 +02:00
committed by GitHub
parent a12d3af472
commit dcf9268df6
36 changed files with 677 additions and 265 deletions
+19 -6
View File
@@ -31,11 +31,23 @@ public:
class Actor_5c : public Actor_5c_Base {
public:
/* 00 (base) */
// /* 04 */ STRUCT_PAD(0x04, 0x28);
// /* 28 */ unk32 mUnk_28;
Actor_5c() {};
void func_ov000_020975f8();
};
class Actor_5c_temp : public Actor_5c_Base {
public:
/* 00 (base) */
/* 10 */ STRUCT_PAD(0x10, 0x28);
/* 28 */ unk32 mUnk_28;
Actor_5c_temp() {};
void func_ov000_020975f8();
};
class UnkStruct_ov000_020b539c {
public:
/* 00 */ Actor_5c_Base mUnk_00[3];
@@ -114,18 +126,18 @@ public:
/* 6c */ u16 mUnk_6c; // actor user id?
/* 6e */ u16 mUnk_6e;
/* 70 */ u16 mUnk_70;
/* 70 */ unk16 mUnk_72;
/* 70 */ u16 mUnk_72;
/* 74 */ u8 mUnk_74;
/* 74 */ u8 mUnk_75;
/* 76 */ u16 mUnk_76;
/* 78 */ u16 mUnk_78;
/* 78 */ unk16 mUnk_7a;
/* 7c */ unk32 mUnk_7c;
/* 7A */ unk16 mUnk_7a;
/* 7C */ unk32 mUnk_7c;
/* 80 */ s16 mUnk_80;
/* 80 */ unk16 mUnk_82;
/* 84 */ unk32 mUnk_84;
/* 88 */ unk32 mUnk_88;
/* 8c */ ActorRef mRef;
/* 8C */ ActorRef mRef;
/* 90 */ ActorProfile *mType;
/* 94 */
@@ -171,7 +183,7 @@ public:
unk32 func_ov000_02098910(unk32 param1, unk32 param2);
s32 func_ov000_02098518(unk32 *param1);
void func_ov000_0209853c();
Vec3p *func_ov000_0209853c(unk32 param1);
s32 func_ov000_02098554();
s16 func_ov000_0209856c();
s8 func_ov000_02098578();
@@ -184,7 +196,8 @@ public:
void func_ov000_020973f4(UnkStruct_ov000_020b539c *param1, ActorId param2, Actor_5c param3);
void func_ov000_020989e0();
unk32 func_ov000_02098a60(unk32 param1);
bool func_ov000_02098a60(unk32 param1);
void func_ov000_02098a88(unk32 param1, unk32 param2);
void func_ov017_020bf5c4(Vec3p *param1, unk32 param2, unk32 param3, unk32 param4, unk32 param5);
};
+37
View File
@@ -0,0 +1,37 @@
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "Unknown/Common.hpp"
#include "global.h"
#include "types.h"
class ActorEventIcon : public Actor {
public:
/* 000 (base) */
/* 094 */ UnkSubStruct19 mUnk_094; // event icon
/* 10C */ unk16 mUnk_10C;
/* 110 */ unk16 mUnk_10E; // pad?
ActorEventIcon();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 30 */ virtual void vfunc_30() override;
/* 4C */ virtual ~ActorEventIcon() override;
void func_ov000_0209c014(void);
};
class ActorProfileEventIcon : public ActorProfile {
public:
/* 00 (base) */
ActorProfileEventIcon();
~ActorProfileEventIcon();
/* 0C */ virtual Actor *Create();
static ActorProfileEventIcon *GetProfile();
};
+1 -1
View File
@@ -58,4 +58,4 @@ public:
/* 18 */ virtual void vfunc_18() override;
};
typedef ActorProfile *(*GetActorProfile)();
// typedef ActorProfile *(*GetActorProfile)();
-2
View File
@@ -76,8 +76,6 @@ public:
/* 2c */ virtual void vfunc_2c(unk32 param1) override;
/* 4c */ virtual ~ActorRupee() override;
void func_ov000_02098a88(unk32 param1, unk32 param2);
void func_ov017_020bf9c8(ActorUnk_ov000_020a8bb0 *param1);
void func_ov031_020e8d2c(Vec3p *param1, u8 param2, unk32 param3, unk32 param4);
+1 -1
View File
@@ -121,7 +121,7 @@ DEFINE_ACTOR_TYPE('EFWV', EFWV)
DEFINE_ACTOR_TYPE('ELVT', ELVT)
DEFINE_ACTOR_TYPE('ENGE', ENGE)
DEFINE_ACTOR_TYPE('EVCH', EVCH)
DEFINE_ACTOR_TYPE('EVIC', EVIC)
DEFINE_ACTOR_TYPE('EVIC', EventIcon)
DEFINE_ACTOR_TYPE('EWHI', EWHI)
DEFINE_ACTOR_TYPE('FBBF', FBBF)
DEFINE_ACTOR_TYPE('FBBH', FBBH)
+20 -14
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -7,29 +5,37 @@
#include "global.h"
#include "types.h"
class ActorUnkEFIK_c4 : public Actor_c4 {
class ActorUnkEFIK_98 {
public:
ActorUnkEFIK_c4(Actor *param1);
/* 00 */ unk32 mUnk_00;
/* 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;
ActorUnkEFIK_98() {
this->mUnk_00 = 0;
}
~ActorUnkEFIK_98() {
this->func_ov000_020a0304();
}
void func_ov000_020a0304(void);
void func_ov000_020a0334();
};
class ActorUnkEFIK : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ unk32 mUnk_94;
/* 98 */ ActorUnkEFIK_98 mUnk_98;
/* 9C */ unk32 mUnk_9C;
/* A0 */ unk32 mUnk_A0;
ActorUnkEFIK();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 4C */ virtual ~ActorUnkEFIK() override;
void func_ov000_0209c100(void);
void func_ov000_0209c140(void);
void func_ov000_0209c2d0(void);
void func_ov000_0209c2e4(void);
/* 54 */ virtual void vfunc_54(unk32 param1);
};
class ActorProfileUnkEFIK : public ActorProfile {
-42
View File
@@ -1,42 +0,0 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
#include "Actor/ActorProfile.hpp"
#include "global.h"
#include "types.h"
class ActorUnkEVIC_c4 : public Actor_c4 {
public:
ActorUnkEVIC_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 ActorUnkEVIC : public Actor {
public:
/* 00 (base) */
/* 94 */
ActorUnkEVIC();
/* 4C */ virtual ~ActorUnkEVIC() override;
void func_ov000_0209c014(void);
};
class ActorProfileUnkEVIC : public ActorProfile {
public:
/* 00 (base) */
ActorProfileUnkEVIC();
~ActorProfileUnkEVIC();
/* 0C */ virtual Actor *Create();
static ActorProfileUnkEVIC *GetProfile();
};
+17 -11
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -7,27 +5,35 @@
#include "global.h"
#include "types.h"
class ActorUnkSWOB_c4 : public Actor_c4 {
class ActorUnkSWOB_A4 {
public:
ActorUnkSWOB_c4(Actor *param1);
/* 00 */ unk32 mUnk_00;
/* 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;
ActorUnkSWOB_A4() {
this->mUnk_00 = 0;
};
};
class ActorUnkSWOB : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ unk32 mUnk_94;
/* 98 */ unk32 mUnk_98;
/* 9C */ unk16 mUnk_9C;
/* 9C */ unk16 mUnk_9E;
/* A0 */ unk16 mUnk_A0;
/* A0 */ unk16 mUnk_A2;
/* A4 */ ActorUnkSWOB_A4 mUnk_A4[5];
/* B8 */
ActorUnkSWOB();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 4C */ virtual ~ActorUnkSWOB() override;
void func_ov000_0209a948(void);
void func_ov000_0209a9b4(void);
bool func_ov000_0209a948(void);
void func_ov000_0209a9b4(unk32 param1);
void func_ov000_0209aa30(void);
};
+25 -15
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -7,31 +5,43 @@
#include "global.h"
#include "types.h"
class ActorUnkSWTM_c4 : public Actor_c4 {
class ActorUnkSWTM_B0 {
public:
ActorUnkSWTM_c4(Actor *param1);
/* 00 */ unk32 mUnk_00;
/* 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;
ActorUnkSWTM_B0() {
this->mUnk_00 = 0;
};
};
class ActorUnkSWTM : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ unk32 mUnk_94;
/* 98 */ unk32 mUnk_98;
/* 9C */ unk16 mUnk_9C;
/* 9C */ unk16 mUnk_9E;
/* A0 */ unk16 mUnk_A0;
/* A0 */ s16 mUnk_A2;
/* A4 */ u32 mUnk_A4;
/* A8 */ u32 mUnk_A8;
/* AC */ bool mUnk_AC;
/* AC */ unk8 mUnk_AD; // pad?
/* AC */ unk8 mUnk_AE; // pad?
/* AC */ unk8 mUnk_AF; // pad?
/* B0 */ ActorUnkSWTM_B0 mUnk_B0[5]; // unused?
/* C4 */
ActorUnkSWTM();
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
/* 4C */ virtual ~ActorUnkSWTM() override;
void func_ov000_0209adf4(void);
void func_ov000_0209ae68(void);
void func_ov000_0209af50(void);
void func_ov000_0209af54(void);
void func_ov000_0209afe4(void);
void func_ov000_0209b038(void);
void func_ov000_0209af54(unk32 param1);
bool func_ov000_0209afe4(void);
unk32 func_ov000_0209b038(void);
void func_ov000_0209b160(void);
void func_ov000_0209b184(void);
void func_ov000_0209b1d0(void);
+5 -2
View File
@@ -80,8 +80,10 @@ public:
/* 28 */ virtual q20 vfunc_28(Vec3p *param1, unk32 param2, unk32 param3);
/* 2c */ virtual void vfunc_2c();
unk32 func_ov000_02080a44();
unk32 func_ov000_02080180(void *param1);
bool func_ov000_02080658(unk32 param1, UnkStruct_SceneChange1 *param2);
void func_ov000_020808f4(void *param1, void *param2, unk32 param3);
unk32 func_ov000_02080a44();
};
class UnkStruct_027e0cd8 {
@@ -92,7 +94,8 @@ public:
/* 0c */ UnkStruct_027e0cd8_0c *mUnk_0c;
/* 10 */
unk32 func_ov000_02081e30(u16 param1, u8 param2);
unk32 func_ov000_02081e30(unk32 param1, unk32 param2);
void func_ov000_02081d7c(unk32 param1, unk32 param2, unk32 param3);
void func_ov000_02081ecc(unk16 param1, unk32 param2);
};
+1 -1
View File
@@ -53,7 +53,7 @@ public:
/* 40 */ unk32 *mUnk_40; // pointer to data_027e0478 when not on the train
/* 44 */
void func_01fff148();
Vec3p *func_01fff148(unk32 param1);
void func_ov000_0208a318(unk32 param1, unk32 param2, unk32 param3);
};
+1
View File
@@ -9,6 +9,7 @@ public:
void func_ov000_0209ff8c(UnkStruct_PlayerGet_ec *param1, unk32 param2, Vec3p *param3, unk32 param4);
void func_ov000_020a0000(UnkStruct_PlayerGet_ec *param1, void *param2, unk32 *param3, Vec3p *param4, unk32 param5);
void func_ov000_020a0110(UnkStruct_PlayerGet_ec *param1);
void func_ov000_020a0220(void *param1, void *param2);
};
extern UnkStruct_027e0cec *data_027e0cec;
@@ -0,0 +1,15 @@
#pragma once
#include "global.h"
#include "types.h"
class UnkStruct_ov000_020aed1c {
public:
/* 00 */ unk32 mUnk_00;
/* 04 */ unk32 mUnk_04;
UnkStruct_ov000_020aed1c();
~UnkStruct_ov000_020aed1c();
};
extern UnkStruct_ov000_020aed1c data_ov000_020aed1c;
@@ -48,6 +48,7 @@ public:
void func_ov000_0206d6b4(unk32 param1, unk32 param2);
void func_ov000_0206d83c(unk32 param1);
void func_ov000_0206db44(unk32 param1); // play sfx?
void func_ov000_0206e7e8(unk32 param1);
};
extern UnkStruct_ov000_020b5214 data_ov000_020b5214;