Decompile ActorUnkATTG (99%) (#122)

* feat: update

* fix: regressions
This commit is contained in:
Alessevan
2026-07-23 20:21:20 +02:00
committed by GitHub
parent bc04021bc0
commit 67e283c317
10 changed files with 146 additions and 51 deletions
@@ -108,6 +108,7 @@ src/031_Land/Actor/ActorUnkATTG.cpp:
.text start:0x020f3d7c end:0x020f409c
.init start:0x02111598 end:0x021115e8
.ctor start:0x021127d8 end:0x021127dc
.data start:0x0211439c end:0x0211441c
.bss start:0x02116abc end:0x02116b08
src/031_Land/Actor/ActorUnkNTTZ.cpp:
+1 -1
View File
@@ -3055,7 +3055,7 @@ from:0x020f4130 kind:load to:0x02114438 add:0x8 module:overlay(31)
from:0x020f4134 kind:load to:0x027e0ce0 module:dtcm
from:0x020f4138 kind:load to:0x02110b70 module:overlay(31)
from:0x020f413c kind:load to:0x020b1960 add:0x8 module:overlay(0)
from:0x020f4140 kind:load to:0x02114424 module:overlay(31)
from:0x020f4140 kind:load to:0x0211441c module:overlay(31) add:0x8
from:0x020f4154 kind:arm_call to:0x020f4790 module:overlay(31)
from:0x020f4170 kind:arm_call to:0x020f5b7c module:overlay(31)
from:0x020f41bc kind:arm_call_thumb to:0x0208ed30 module:overlay(0)
+7 -7
View File
@@ -936,10 +936,10 @@ _ZN19ActorProfileUnkATTG10GetProfileEv kind:function(arm,size=0xc) addr:0x020f3d
_ZN19ActorProfileUnkATTG6CreateEv kind:function(arm,size=0x24) addr:0x020f3d88
_ZN19ActorProfileUnkATTGC1Ev kind:function(arm,size=0x28) addr:0x020f3dac
_ZN12ActorUnkATTGC1Ev kind:function(arm,size=0x28) addr:0x020f3dd4
_ZN12ActorUnkATTG19func_ov031_020f3dfcEv kind:function(arm,size=0x54) addr:0x020f3dfc
_ZN12ActorUnkATTG19func_ov031_020f3e50Ev kind:function(arm,size=0x5c) addr:0x020f3e50
_ZN12ActorUnkATTG19func_ov031_020f3eacEv kind:function(arm,size=0x40) addr:0x020f3eac
_ZN12ActorUnkATTG19func_ov031_020f3eecEv kind:function(arm,size=0x128) addr:0x020f3eec
_ZN12ActorUnkATTG8vfunc_18Ei kind:function(arm,size=0x54) addr:0x020f3dfc
_ZN12ActorUnkATTG8vfunc_20Ev kind:function(arm,size=0x5c) addr:0x020f3e50
_ZN12ActorUnkATTG8vfunc_24Ev kind:function(arm,size=0x40) addr:0x020f3eac
_ZN12ActorUnkATTG19func_ov031_020f3eecEsi kind:function(arm,size=0x128) addr:0x020f3eec
_ZN12ActorUnkATTG19func_ov031_020f4014Ev kind:function(arm,size=0x44) addr:0x020f4014
_ZN12ActorUnkATTGD1Ev kind:function(arm,size=0x14) addr:0x020f4058
_ZN12ActorUnkATTGD0Ev kind:function(arm,size=0x1c) addr:0x020f406c
@@ -2353,9 +2353,9 @@ _ZTV21ActorProfileShotArrow kind:data(any) addr:0x0211429c
data_ov031_021142c0 kind:data(any) addr:0x021142c0
data_ov031_02114300 kind:data(any) addr:0x02114300
_ZTV14ActorShotArrow kind:data(any) addr:0x02114340
_ZTV19data_ov031_0211439c kind:data(any) addr:0x0211439c
_ZTV19data_ov031_021143c0 kind:data(any) addr:0x021143c0
data_ov031_02114424 kind:data(any) addr:0x02114424
_ZTV19ActorProfileUnkATTG kind:data(any) addr:0x0211439c
_ZTV12ActorUnkATTG kind:data(any) addr:0x021143c0
_ZTV19data_ov031_02114424 kind:data(any) addr:0x0211441c
_ZTV19data_ov031_02114438 kind:data(any) addr:0x02114438
data_ov031_0211449c kind:data(any) addr:0x0211449c
_ZTV19data_ov031_021144a0 kind:data(any) addr:0x021144a0
+2 -2
View File
@@ -1103,7 +1103,7 @@ func_ov000_020744fc kind:function(arm,size=0x114) addr:0x020744fc
_ZN23UnkStruct_027e09ac_BaseC2Ev kind:function(arm,size=0x40) addr:0x02074610
func_ov000_02074650 kind:function(arm,size=0x24) addr:0x02074650
func_ov000_02074674 kind:function(arm,size=0x14) addr:0x02074674
func_ov000_02074688 kind:function(arm,size=0xb0) addr:0x02074688
func_ov000_02072fd0 kind:function(arm,size=0xb0) addr:0x02074688
func_ov000_02073080 kind:function(arm,size=0x2c) addr:0x02074738
_ZN17ActorUnk_vfunc_B0C1Ev kind:function(arm,size=0x58) addr:0x02074764
_ZN20stack_ov000_02073578C1Ev kind:function(arm,size=0x2c) addr:0x020747bc
@@ -1228,7 +1228,7 @@ func_ov000_02078b38 kind:function(arm,size=0x10) addr:0x02078b38
_ZN19func_ov000_02078b48D1Ev kind:function(arm,size=0x14) addr:0x02078b48
_ZN19func_ov000_02078b5cD0Ev kind:function(arm,size=0x1c) addr:0x02078b5c
func_ov000_02078b78 kind:function(arm,size=0xd0) addr:0x02078b78
func_ov000_02078c48 kind:function(arm,size=0x48) addr:0x02078c48
func_ov000_02077590 kind:function(arm,size=0x48) addr:0x02078c48
func_ov000_02078c90 kind:function(arm,size=0x60) addr:0x02078c90
func_ov000_02078cf0 kind:function(arm,size=0x3c) addr:0x02078cf0
_ZN21UnkStruct_027e09bc_0CC1Ei kind:function(arm,size=0x1bc) addr:0x02078d2c
@@ -105,6 +105,7 @@ src/031_Land/Actor/ActorUnkATTG.cpp:
.text start:0x020f5820 end:0x020f5b40
.init start:0x02113308 end:0x02113358
.ctor start:0x02114564 end:0x02114568
.data start:0x0211613c end:0x021161bc
.bss start:0x0211885c end:0x021188a8
src/031_Land/Actor/ActorUnkNTTZ.cpp:
+1 -1
View File
@@ -3060,7 +3060,7 @@ from:0x020f5bd4 kind:load to:0x021161d8 add:0x8 module:overlay(31)
from:0x020f5bd8 kind:load to:0x027e0ce0 module:dtcm
from:0x020f5bdc kind:load to:0x021128e0 module:overlay(31)
from:0x020f5be0 kind:load to:0x020b3160 add:0x8 module:overlay(0)
from:0x020f5be4 kind:load to:0x021161c4 module:overlay(31)
from:0x020f5be4 kind:load to:0x021161bc module:overlay(31) add:0x8
from:0x020f5bf8 kind:arm_call to:0x020f6234 module:overlay(31)
from:0x020f5c14 kind:arm_call to:0x020f761c module:overlay(31)
from:0x020f5c60 kind:arm_call_thumb to:0x0209040c module:overlay(0)
+7 -7
View File
@@ -936,10 +936,10 @@ _ZN19ActorProfileUnkATTG10GetProfileEv kind:function(arm,size=0xc) addr:0x020f58
_ZN19ActorProfileUnkATTG6CreateEv kind:function(arm,size=0x24) addr:0x020f582c
_ZN19ActorProfileUnkATTGC1Ev kind:function(arm,size=0x28) addr:0x020f5850
_ZN12ActorUnkATTGC1Ev kind:function(arm,size=0x28) addr:0x020f5878
_ZN12ActorUnkATTG19func_ov031_020f3dfcEv kind:function(arm,size=0x54) addr:0x020f58a0
_ZN12ActorUnkATTG19func_ov031_020f3e50Ev kind:function(arm,size=0x5c) addr:0x020f58f4
_ZN12ActorUnkATTG19func_ov031_020f3eacEv kind:function(arm,size=0x40) addr:0x020f5950
_ZN12ActorUnkATTG19func_ov031_020f3eecEv kind:function(arm,size=0x128) addr:0x020f5990
_ZN12ActorUnkATTG8vfunc_18Ei kind:function(arm,size=0x54) addr:0x020f58a0
_ZN12ActorUnkATTG8vfunc_20Ev kind:function(arm,size=0x5c) addr:0x020f58f4
_ZN12ActorUnkATTG8vfunc_24Ev kind:function(arm,size=0x40) addr:0x020f5950
_ZN12ActorUnkATTG19func_ov031_020f3eecEsi kind:function(arm,size=0x128) addr:0x020f5990
_ZN12ActorUnkATTG19func_ov031_020f4014Ev kind:function(arm,size=0x44) addr:0x020f5ab8
_ZN12ActorUnkATTGD1Ev kind:function(arm,size=0x14) addr:0x020f5afc
_ZN12ActorUnkATTGD0Ev kind:function(arm,size=0x1c) addr:0x020f5b10
@@ -2350,9 +2350,9 @@ _ZTV21ActorProfileShotArrow kind:data(any) addr:0x0211603c
data_ov031_021142c0 kind:data(any) addr:0x02116060
data_ov031_02114300 kind:data(any) addr:0x021160a0
_ZTV14ActorShotArrow kind:data(any) addr:0x021160e0
_ZTV19data_ov031_0211613c kind:data(any) addr:0x0211613c
_ZTV19data_ov031_02116160 kind:data(any) addr:0x02116160
data_ov031_021161c4 kind:data(any) addr:0x021161c4
_ZTV19ActorProfileUnkATTG kind:data(any) addr:0x0211613c
_ZTV12ActorUnkATTG kind:data(any) addr:0x02116160
_ZTV19data_ov031_021161c4 kind:data(any) addr:0x021161bc
_ZTV19data_ov031_021161d8 kind:data(any) addr:0x021161d8
data_ov031_0211623c kind:data(any) addr:0x0211623c
_ZTV19data_ov031_02116240 kind:data(any) addr:0x02116240
+13 -19
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -7,38 +5,34 @@
#include "global.h"
#include "types.h"
class ActorUnkATTG_C4 : public Actor_C4 {
public:
ActorUnkATTG_C4(Actor *param1);
/* 00 */ virtual bool vfunc_00(ActorRef ref, unk32 param2) override;
/* 04 */ virtual bool vfunc_04() override;
/* 08 */ virtual void vfunc_08() override;
/* 0C */ virtual void vfunc_0C(unk32 param1) override;
enum ActorUnkATTGState_ {
ActorUnkATTGState_0 = 0,
ActorUnkATTGState_1 = 1,
ActorUnkATTGState_2 = 2,
ActorUnkATTGState_MAX
};
class ActorUnkATTG : public Actor {
public:
/* 00 (base) */
/* 94 */
/* 94 */ unk32 mUnk_94;
/* 98 */
ActorUnkATTG();
/* 4C */ virtual ~ActorUnkATTG() override;
void func_ov031_020f3dfc(void);
void func_ov031_020f3e50(void);
void func_ov031_020f3eac(void);
void func_ov031_020f3eec(void);
void func_ov031_020f4014(void);
/* 18 */ virtual bool vfunc_18(unk32 param1) override;
/* 20 */ virtual void vfunc_20() override;
/* 24 */ virtual void vfunc_24() override;
void func_ov031_020f3eec(ActorState state, unk32 param2);
bool func_ov031_020f4014();
};
class ActorProfileUnkATTG : public ActorProfile {
public:
/* 00 (base) */
/* 3A */
ActorProfileUnkATTG();
~ActorProfileUnkATTG();
/* 0C */ virtual Actor *Create();
+4 -4
View File
@@ -902,10 +902,10 @@ struct UnkStackStruct1 {
/* 1E */ unk16 mUnk_1E;
/* 20 */ unk32 mUnk_20;
/* 24 */ VecFx32 mUnk_24;
/* 30 */ unk16 mUnk_30;
/* 32 */ unk16 mUnk_32;
/* 34 */ unk16 mUnk_34;
/* 36 */ unk16 mUnk_36;
/* 30 */ u16 mUnk_30;
/* 32 */ u16 mUnk_32;
/* 34 */ u16 mUnk_34;
/* 36 */ u16 mUnk_36;
/* 38 */ u16 mUnk_38;
/* 3A */ unk8 mUnk_3A;
/* 3B */ unk8 mUnk_3B;
+109 -10
View File
@@ -1,7 +1,24 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkATTG.hpp"
#include "System/SysNew.hpp"
#include "Unknown/UnkStruct_027e09b8.hpp"
#include "Unknown/UnkStruct_027e0cd8.hpp"
#include "Unknown/UnkStruct_ov000_020b5214.hpp"
struct UnkStackStruct {
s16 mUnk_00;
s16 mUnk_02;
s16 mUnk_04;
s16 mUnk_06;
unk32 mUnk_08;
VecFx32 mUnk_0C;
u16 mUnk_18;
u16 mUnk_1A;
u16 mUnk_1C;
u16 mUnk_1E;
};
extern "C" void func_ov000_02072fd0(UnkStackStruct1 *);
extern "C" UnkStackStruct *func_ov000_02077590(unk32);
DECL_PROFILE(ActorProfileUnkATTG);
@@ -12,13 +29,95 @@ Actor *ActorProfileUnkATTG::Create() {
ActorProfileUnkATTG::ActorProfileUnkATTG() :
ActorProfile(ActorId_ATTG) {}
ActorUnkATTG::ActorUnkATTG() {}
ActorUnkATTG::ActorUnkATTG() :
mUnk_94(-0x1) {}
void ActorUnkATTG::func_ov031_020f3dfc(void) {}
void ActorUnkATTG::func_ov031_020f3e50(void) {}
void ActorUnkATTG::func_ov031_020f3eac(void) {}
void ActorUnkATTG::func_ov031_020f3eec(void) {}
void ActorUnkATTG::func_ov031_020f4014(void) {}
bool ActorUnkATTG::vfunc_18(unk32 param1) {
if (this->mUnk_5C.mUnk_1A[0] == 0x0 || !this->func_ov000_02098a60(0x0) || this->mUnk_5C.mParams[1] != 0x0) {
this->func_ov031_020f3eec(0x0, 0x1);
} else {
this->func_ov031_020f3eec(0x2, 0x1);
}
return true;
}
ActorUnkATTG::~ActorUnkATTG() {}
ActorProfileUnkATTG::~ActorProfileUnkATTG() {}
void ActorUnkATTG::vfunc_20() {
switch (this->mState) {
case ActorUnkATTGState_0:
if (!this->func_ov031_020f4014()) {
return;
}
if (this->mUnk_5C.mParams[1] != 0x0) {
return;
}
this->func_ov031_020f3eec(0x1, 0x0);
break;
case ActorUnkATTGState_1:
this->func_ov031_020f3eec(0x2, 0x0);
break;
default:
break;
}
}
void ActorUnkATTG::vfunc_24() {
if (this->mUnk_94 < 0x0) {
return;
}
if (!data_027e09b8->func_ov000_020732ec(this->mUnk_94)) {
return;
}
this->vfunc_20();
}
void ActorUnkATTG::func_ov031_020f3eec(ActorState state, unk32 param2) {
this->mState = state;
switch (this->mState) {
case ActorUnkATTGState_1:
UnkStackStruct1 stack;
func_ov000_02072fd0(&stack);
stack.mUnk_08 = 0x3C;
stack.mUnk_00 = 0x6C;
stack.mUnk_3A = 0x7;
VecFx32_Copy(&this->mPos, &stack.mUnk_0C);
UnkStackStruct *r3 = func_ov000_02077590(0x1);
stack.mUnk_18 = r3->mUnk_00;
stack.mUnk_1A = r3->mUnk_02;
stack.mUnk_1C = r3->mUnk_04;
stack.mUnk_1E = r3->mUnk_06;
stack.mUnk_20 = r3->mUnk_08;
stack.mUnk_24 = r3->mUnk_0C;
u16 unk_18 = r3->mUnk_18;
u16 unk_1A = r3->mUnk_1A;
stack.mUnk_30 = unk_18;
stack.mUnk_32 = unk_1A;
u16 unk_1C = r3->mUnk_1C;
u16 unk_1E = r3->mUnk_1E;
stack.mUnk_34 = unk_1C;
stack.mUnk_36 = unk_1E;
this->mUnk_94 = data_027e09b8->func_ov000_02073388(&stack, 0x0);
break;
case ActorUnkATTGState_2:
if (param2 == 0x0) {
data_ov000_020b5214.func_ov000_0206db44(0x2);
}
this->func_ov000_02098a88(0x0, 0x1);
this->func_ov000_020984d0();
break;
default:
break;
}
}
bool ActorUnkATTG::func_ov031_020f4014() {
unk32 param1 = this->mUnk_5C.mParams[0] & 0xFF;
UnkStruct_027e0cd8_0C_Base *ptr = data_027e0cd8->mUnk_0C;
VecFx32 *param2 = data_027e0ce0->func_01fff148(0x0);
return ptr->func_ov000_020802ec(param1, param2);
}