Decompilation of ActorUnkSWON (#79)

* feat: decompiling ActorUnkSnow

* feat: rename function to vfunc_18

* refactor: remove unused ActorUnkSWON_c4

* refactor: use union field

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

* mark as completed and match jp

* fix build issues

---------

Co-authored-by: Yanis <35189056+Yanis002@users.noreply.github.com>
This commit is contained in:
Alessevan
2026-06-16 11:12:01 -04:00
committed by GitHub
parent 01a4804485
commit 1a098fe4b9
6 changed files with 39 additions and 29 deletions
@@ -125,9 +125,11 @@ src/031_Land/Actor/ActorUnkSWCH.cpp:
.bss start:0x02116c54 end:0x02116ca0
src/031_Land/Actor/ActorUnkSWON.cpp:
complete
.text start:0x020f7dbc end:0x020f7f14
.init start:0x02111710 end:0x02111760
.ctor start:0x021127ec end:0x021127f0
.data start:0x021148b8 end:0x02114938
.bss start:0x02116ca0 end:0x02116cec
src/031_Land/Actor/ActorUnkNORE.cpp:
+6 -6
View File
@@ -1084,7 +1084,7 @@ _ZN19ActorProfileUnkSWON10GetProfileEv kind:function(arm,size=0xc) addr:0x020f7d
_ZN19ActorProfileUnkSWON6CreateEv kind:function(arm,size=0x24) addr:0x020f7dc8
_ZN19ActorProfileUnkSWONC1Ev kind:function(arm,size=0x28) addr:0x020f7dec
_ZN12ActorUnkSWONC1Ev kind:function(arm,size=0x20) addr:0x020f7e14
_ZN12ActorUnkSWON19func_ov031_020f7e34Ev kind:function(arm,size=0x9c) addr:0x020f7e34
_ZN12ActorUnkSWON8vfunc_18Ei kind:function(arm,size=0x9c) addr:0x020f7e34
_ZN12ActorUnkSWOND1Ev kind:function(arm,size=0x14) addr:0x020f7ed0
_ZN12ActorUnkSWOND0Ev kind:function(arm,size=0x1c) addr:0x020f7ee4
_ZN19ActorProfileUnkSWOND1Ev kind:function(arm,size=0x14) addr:0x020f7f00
@@ -2090,7 +2090,7 @@ __sinit_ActorUnkNTTZ.cpp kind:function(arm,size=0x50) addr:0x021115e8
__sinit_ov031_02111638 kind:function(arm,size=0x24) addr:0x02111638
__sinit_ActorUnkTGTZ.cpp kind:function(arm,size=0x64) addr:0x0211165c
__sinit_ActorUnkSWCH.cpp kind:function(arm,size=0x50) addr:0x021116c0
__sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x02111710
__sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x02111710 local
__sinit_ActorUnkNORE.cpp kind:function(arm,size=0x50) addr:0x02111760
__sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x021117b0
__sinit_ActorUnkRLST.cpp kind:function(arm,size=0x50) addr:0x02111800
@@ -2154,7 +2154,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x02112724
.p__sinit_ov031_02111638 kind:data(word) addr:0x021127e0
.p__sinit_ActorUnkTGTZ.cpp kind:data(word) addr:0x021127e4
.p__sinit_ActorUnkSWCH.cpp kind:data(word) addr:0x021127e8
.p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x021127ec
.p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x021127ec local
.p__sinit_ActorUnkNORE.cpp kind:data(word) addr:0x021127f0
.p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x021127f4
.p__sinit_ActorUnkRLST.cpp kind:data(word) addr:0x021127f8
@@ -2379,8 +2379,8 @@ _ZTV19data_ov031_02114818 kind:data(any) addr:0x02114818
_ZTV19data_ov031_0211483c kind:data(any) addr:0x0211483c
data_ov031_021148a0 kind:data(any) addr:0x021148a0 ambiguous
data_ov031_021148b0 kind:data(any) addr:0x021148b0
_ZTV19data_ov031_021148b8 kind:data(any) addr:0x021148b8
_ZTV19data_ov031_021148dc kind:data(any) addr:0x021148dc
_ZTV19ActorProfileUnkSWON kind:data(any) addr:0x021148b8
_ZTV12ActorUnkSWON kind:data(any) addr:0x021148dc
_ZTV19ActorProfileUnkNORE kind:data(any) addr:0x02114938
_ZTV12ActorUnkNORE kind:data(any) addr:0x0211495c
_ZTV19data_ov031_021149b8 kind:data(any) addr:0x021149b8
@@ -2585,7 +2585,7 @@ _ZGVN15ProfileInstanceI19ActorProfileUnkSWCHE8sProfileE kind:bss addr:0x02116c54
@10884 kind:bss addr:0x02116c58
_ZN15ProfileInstanceI19ActorProfileUnkSWCHE8sProfileE kind:bss addr:0x02116c64
_ZGVN15ProfileInstanceI19ActorProfileUnkSWONE8sProfileE kind:bss addr:0x02116ca0
@10890 kind:bss addr:0x02116ca4
@10890 kind:bss addr:0x02116ca4 local
_ZN15ProfileInstanceI19ActorProfileUnkSWONE8sProfileE kind:bss addr:0x02116cb0
_ZGVN15ProfileInstanceI19ActorProfileUnkNOREE8sProfileE kind:bss addr:0x02116cec
@10896 kind:bss addr:0x02116cf0
@@ -125,7 +125,9 @@ src/031_Land/Actor/ActorUnkSWCH.cpp:
.bss start:0x021189f4 end:0x02118a40
src/031_Land/Actor/ActorUnkSWON.cpp:
complete
.text start:0x020f9800 end:0x020f9958
.data start:0x0211662c end:0x021166ac
.init start:0x0211349c end:0x021134ec
.ctor start:0x02114578 end:0x0211457c
.bss start:0x02118a40 end:0x02118a8c
+6 -6
View File
@@ -1083,7 +1083,7 @@ _ZN19ActorProfileUnkSWON10GetProfileEv kind:function(arm,size=0xc) addr:0x020f98
_ZN19ActorProfileUnkSWON6CreateEv kind:function(arm,size=0x24) addr:0x020f980c
_ZN19ActorProfileUnkSWONC1Ev kind:function(arm,size=0x28) addr:0x020f9830
_ZN12ActorUnkSWONC1Ev kind:function(arm,size=0x20) addr:0x020f9858
_ZN12ActorUnkSWON19func_ov031_020f7e34Ev kind:function(arm,size=0x9c) addr:0x020f9878
_ZN12ActorUnkSWON8vfunc_18Ei kind:function(arm,size=0x9c) addr:0x020f9878
_ZN12ActorUnkSWOND1Ev kind:function(arm,size=0x14) addr:0x020f9914
_ZN12ActorUnkSWOND0Ev kind:function(arm,size=0x1c) addr:0x020f9928
_ZN19ActorProfileUnkSWOND1Ev kind:function(arm,size=0x14) addr:0x020f9944
@@ -2087,7 +2087,7 @@ __sinit_ActorUnkNTTZ.cpp kind:function(arm,size=0x50) addr:0x02113358
__sinit_ov031_021133a8 kind:function(arm,size=0x24) addr:0x021133a8
__sinit_ActorUnkTGTZ.cpp kind:function(arm,size=0x80) addr:0x021133cc
__sinit_ActorUnkSWCH.cpp kind:function(arm,size=0x50) addr:0x0211344c
__sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x0211349c
__sinit_ActorUnkSWON.cpp kind:function(arm,size=0x50) addr:0x0211349c local
__sinit_ActorUnkNORE.cpp kind:function(arm,size=0x50) addr:0x021134ec
__sinit_ActorUnkFLEN.cpp kind:function(arm,size=0x50) addr:0x0211353c
__sinit_ActorUnkRLST.cpp kind:function(arm,size=0x50) addr:0x0211358c
@@ -2151,7 +2151,7 @@ __sinit_MapObjectUnkSWFS.cpp kind:function(arm,size=0x70) addr:0x021144b0
.p__sinit_ov031_021133a8 kind:data(word) addr:0x0211456c
.p__sinit_ActorUnkTGTZ.cpp kind:data(word) addr:0x02114570
.p__sinit_ActorUnkSWCH.cpp kind:data(word) addr:0x02114574
.p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x02114578
.p__sinit_ActorUnkSWON.cpp kind:data(word) addr:0x02114578 local
.p__sinit_ActorUnkNORE.cpp kind:data(word) addr:0x0211457c
.p__sinit_ActorUnkFLEN.cpp kind:data(word) addr:0x02114580
.p__sinit_ActorUnkRLST.cpp kind:data(word) addr:0x02114584
@@ -2374,8 +2374,8 @@ _ZTV19data_ov031_0211658c kind:data(any) addr:0x0211658c
_ZTV19data_ov031_021165b0 kind:data(any) addr:0x021165b0
data_ov031_02116614 kind:data(any) addr:0x02116614 ambiguous
data_ov031_02116624 kind:data(any) addr:0x02116624
_ZTV19data_ov031_0211662c kind:data(any) addr:0x0211662c
_ZTV19data_ov031_02116650 kind:data(any) addr:0x02116650
_ZTV19ActorProfileUnkSWON kind:data(any) addr:0x0211662c
_ZTV12ActorUnkSWON kind:data(any) addr:0x02116650
_ZTV19ActorProfileUnkNORE kind:data(any) addr:0x021166ac
_ZTV12ActorUnkNORE kind:data(any) addr:0x021166d0
_ZTV19data_ov031_0211672c kind:data(any) addr:0x0211672c
@@ -2581,7 +2581,7 @@ _ZGVN15ProfileInstanceI19ActorProfileUnkSWCHE8sProfileE kind:bss addr:0x021189f4
_ZN15ProfileInstanceI19ActorProfileUnkSWCHE8sProfileE kind:bss addr:0x02118a04
data_ov031_02118a1c kind:bss addr:0x02118a1c ambiguous
_ZGVN15ProfileInstanceI19ActorProfileUnkSWONE8sProfileE kind:bss addr:0x02118a40
@30890 kind:bss addr:0x02118a44
@30890 kind:bss addr:0x02118a44 local
_ZN15ProfileInstanceI19ActorProfileUnkSWONE8sProfileE kind:bss addr:0x02118a50
_ZGVN15ProfileInstanceI19ActorProfileUnkNOREE8sProfileE kind:bss addr:0x02118a8c
@30896 kind:bss addr:0x02118a90
+1 -14
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#pragma once
#include "Actor/Actor.hpp"
@@ -7,16 +5,6 @@
#include "global.h"
#include "types.h"
class ActorUnkSWON_c4 : public Actor_c4 {
public:
ActorUnkSWON_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 ActorUnkSWON : public Actor {
public:
/* 00 (base) */
@@ -24,9 +12,8 @@ public:
ActorUnkSWON();
/* 18 */ virtual bool vfunc_18(unk32 param_1) override;
/* 4C */ virtual ~ActorUnkSWON() override;
void func_ov031_020f7e34(void);
};
class ActorProfileUnkSWON : public ActorProfile {
+22 -3
View File
@@ -1,5 +1,3 @@
//! TODO: This file was generated automatically and might contain errors
#include "Actor/ActorUnkSWON.hpp"
#include "System/SysNew.hpp"
@@ -14,7 +12,28 @@ ARM ActorProfileUnkSWON::ActorProfileUnkSWON() :
ARM ActorUnkSWON::ActorUnkSWON() {}
ARM void ActorUnkSWON::func_ov031_020f7e34(void) {}
ARM bool ActorUnkSWON::vfunc_18(unk32 param_1) {
switch (this->mUnk_5C.mParams[0]) {
case 0x0:
if (!this->func_ov000_02098a60(0x1)) {
this->func_ov000_02098a88(0x0, 0x1);
}
this->func_ov000_020984d0();
this->func_ov000_020984f0();
if (this->mUnk_5C.mUnk_1C_0) {
this->func_ov000_02098a88(0x1, 0x1);
}
break;
case 0x1:
if (!this->func_ov000_02098a60(0x1)) {
this->func_ov000_02098a88(0x0, 0x1);
}
break;
default:
break;
}
return true;
}
ARM ActorUnkSWON::~ActorUnkSWON() {}
ARM ActorProfileUnkSWON::~ActorProfileUnkSWON() {}