From e6eae481b821e1bec4184b221d16a5190fea44db Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ma=C3=ABlle?= <30158363+CelestialKitsune@users.noreply.github.com> Date: Fri, 1 May 2026 16:45:51 +0200 Subject: [PATCH] Decompile ActorUnkNORE (#61) * Decompile ActorUnkNORE * Apply suggestions --- config/eur/arm9/overlays/ov031/delinks.txt | 1 + config/eur/arm9/overlays/ov031/symbols.txt | 6 +++--- config/jp/arm9/overlays/ov031/delinks.txt | 1 + config/jp/arm9/overlays/ov031/symbols.txt | 6 +++--- include/Actor/ActorUnkNORE.hpp | 5 +---- src/031_Land/Actor/ActorUnkNORE.cpp | 20 +++++++++++++++++--- 6 files changed, 26 insertions(+), 13 deletions(-) diff --git a/config/eur/arm9/overlays/ov031/delinks.txt b/config/eur/arm9/overlays/ov031/delinks.txt index ff8777f7..bcb60b13 100644 --- a/config/eur/arm9/overlays/ov031/delinks.txt +++ b/config/eur/arm9/overlays/ov031/delinks.txt @@ -130,6 +130,7 @@ src/031_Land/Actor/ActorUnkNORE.cpp: .text start:0x020f7f14 end:0x020f8024 .init start:0x02111760 end:0x021117b0 .ctor start:0x021127f0 end:0x021127f4 + .data start:0x02114938 end:0x021149b8 .bss start:0x02116cec end:0x02116d38 src/031_Land/Actor/ActorUnkFLEN.cpp: diff --git a/config/eur/arm9/overlays/ov031/symbols.txt b/config/eur/arm9/overlays/ov031/symbols.txt index 450b6baf..1d19af20 100644 --- a/config/eur/arm9/overlays/ov031/symbols.txt +++ b/config/eur/arm9/overlays/ov031/symbols.txt @@ -1092,7 +1092,7 @@ _ZN19ActorProfileUnkNORE10GetProfileEv kind:function(arm,size=0xc) addr:0x020f7f _ZN19ActorProfileUnkNORE6CreateEv kind:function(arm,size=0x24) addr:0x020f7f20 _ZN19ActorProfileUnkNOREC1Ev kind:function(arm,size=0x28) addr:0x020f7f44 _ZN12ActorUnkNOREC1Ev kind:function(arm,size=0x20) addr:0x020f7f6c -_ZN12ActorUnkNORE19func_ov031_020f7f8cEv kind:function(arm,size=0x54) addr:0x020f7f8c +_ZN12ActorUnkNORE8vfunc_18Ei kind:function(arm,size=0x54) addr:0x020f7f8c _ZN12ActorUnkNORED1Ev kind:function(arm,size=0x14) addr:0x020f7fe0 _ZN12ActorUnkNORED0Ev kind:function(arm,size=0x1c) addr:0x020f7ff4 _ZN19ActorProfileUnkNORED1Ev kind:function(arm,size=0x14) addr:0x020f8010 @@ -2381,8 +2381,8 @@ 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 -_ZTV19data_ov031_02114938 kind:data(any) addr:0x02114938 -_ZTV19data_ov031_0211495c kind:data(any) addr:0x0211495c +_ZTV19ActorProfileUnkNORE kind:data(any) addr:0x02114938 +_ZTV12ActorUnkNORE kind:data(any) addr:0x0211495c _ZTV19data_ov031_021149b8 kind:data(any) addr:0x021149b8 _ZTV19data_ov031_021149dc kind:data(any) addr:0x021149dc data_ov031_02114a40 kind:data(any) addr:0x02114a40 diff --git a/config/jp/arm9/overlays/ov031/delinks.txt b/config/jp/arm9/overlays/ov031/delinks.txt index 31a87d0f..9518d82e 100644 --- a/config/jp/arm9/overlays/ov031/delinks.txt +++ b/config/jp/arm9/overlays/ov031/delinks.txt @@ -130,6 +130,7 @@ src/031_Land/Actor/ActorUnkNORE.cpp: .text start:0x020f9958 end:0x020f9a68 .init start:0x021134ec end:0x0211353c .ctor start:0x0211457c end:0x02114580 + .data start:0x021166ac end:0x0211672c .bss start:0x02118a8c end:0x02118ad8 src/031_Land/Actor/ActorUnkFLEN.cpp: diff --git a/config/jp/arm9/overlays/ov031/symbols.txt b/config/jp/arm9/overlays/ov031/symbols.txt index 7f8a9634..79ee9490 100644 --- a/config/jp/arm9/overlays/ov031/symbols.txt +++ b/config/jp/arm9/overlays/ov031/symbols.txt @@ -1091,7 +1091,7 @@ _ZN19ActorProfileUnkNORE10GetProfileEv kind:function(arm,size=0xc) addr:0x020f99 _ZN19ActorProfileUnkNORE6CreateEv kind:function(arm,size=0x24) addr:0x020f9964 _ZN19ActorProfileUnkNOREC1Ev kind:function(arm,size=0x28) addr:0x020f9988 _ZN12ActorUnkNOREC1Ev kind:function(arm,size=0x20) addr:0x020f99b0 -_ZN12ActorUnkNORE19func_ov031_020f7f8cEv kind:function(arm,size=0x54) addr:0x020f99d0 +_ZN12ActorUnkNORE8vfunc_18Ei kind:function(arm,size=0x54) addr:0x020f99d0 _ZN12ActorUnkNORED1Ev kind:function(arm,size=0x14) addr:0x020f9a24 _ZN12ActorUnkNORED0Ev kind:function(arm,size=0x1c) addr:0x020f9a38 _ZN19ActorProfileUnkNORED1Ev kind:function(arm,size=0x14) addr:0x020f9a54 @@ -2376,8 +2376,8 @@ 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 -_ZTV19data_ov031_021166ac kind:data(any) addr:0x021166ac -_ZTV19data_ov031_021166d0 kind:data(any) addr:0x021166d0 +_ZTV19ActorProfileUnkNORE kind:data(any) addr:0x021166ac +_ZTV12ActorUnkNORE kind:data(any) addr:0x021166d0 _ZTV19data_ov031_0211672c kind:data(any) addr:0x0211672c _ZTV19data_ov031_02116750 kind:data(any) addr:0x02116750 data_ov031_021167b4 kind:data(any) addr:0x021167b4 diff --git a/include/Actor/ActorUnkNORE.hpp b/include/Actor/ActorUnkNORE.hpp index dc3ac4ae..052b410d 100644 --- a/include/Actor/ActorUnkNORE.hpp +++ b/include/Actor/ActorUnkNORE.hpp @@ -1,5 +1,3 @@ -//! TODO: This file was generated automatically and might contain errors - #pragma once #include "Actor/Actor.hpp" @@ -24,9 +22,8 @@ public: ActorUnkNORE(); + /* 18 */ virtual bool vfunc_18(unk32 param1) override; /* 4C */ virtual ~ActorUnkNORE() override; - - void func_ov031_020f7f8c(void); }; class ActorProfileUnkNORE : public ActorProfile { diff --git a/src/031_Land/Actor/ActorUnkNORE.cpp b/src/031_Land/Actor/ActorUnkNORE.cpp index e5f7d20d..432fd24f 100644 --- a/src/031_Land/Actor/ActorUnkNORE.cpp +++ b/src/031_Land/Actor/ActorUnkNORE.cpp @@ -1,8 +1,10 @@ -//! TODO: This file was generated automatically and might contain errors - #include "Actor/ActorUnkNORE.hpp" #include "System/SysNew.hpp" +#include "Unknown/UnkStruct_027e0cd8.hpp" + +extern "C" void func_01ffedac(Vec2b *, Vec3p *); + ARM DECL_PROFILE(ActorProfileUnkNORE); ARM Actor *ActorProfileUnkNORE::Create() { @@ -14,7 +16,19 @@ ARM ActorProfileUnkNORE::ActorProfileUnkNORE() : ARM ActorUnkNORE::ActorUnkNORE() {} -ARM void ActorUnkNORE::func_ov031_020f7f8c(void) {} +ARM bool ActorUnkNORE::vfunc_18(unk32 param1) { + Vec2b local_vec; + + UnkStruct_027e0cd8_0c *unk_obj = data_027e0cd8->mUnk_0C; + + func_01ffedac(&local_vec, &this->mPos); + + unk_obj->func_ov000_020801b0(&local_vec, 7, 1); + + UNSET_FLAG(this->mFlags, ActorFlag_Alive); + + return true; +} ARM ActorUnkNORE::~ActorUnkNORE() {} ARM ActorProfileUnkNORE::~ActorProfileUnkNORE() {}