Match 00_Core/Actor/Dungeon/ActorEventIcon.cpp (#119)

* match ActorEventIcon

* mark as complete
This commit is contained in:
Yanis
2025-07-16 13:14:03 +02:00
committed by GitHub
parent 93b942b2de
commit ce9f96d932
12 changed files with 166 additions and 26 deletions
@@ -28,6 +28,7 @@ src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp:
.sbss start:0x020ecd64 end:0x020ecd84
src/00_Core/Actor/Dungeon/ActorEventIcon.cpp:
complete
.text start:0x020904f4 end:0x020908f8
.init start:0x020df6f8 end:0x020df738
.ctor start:0x020e1ecc end:0x020e1ed0
+1 -1
View File
@@ -2313,7 +2313,7 @@ from:0x02090518 kind:arm_call to:0x02090524 module:overlay(0)
from:0x02090520 kind:load to:0x027e0fe0 module:dtcm
from:0x0209052c kind:arm_call to:0x020c1554 module:overlay(0)
from:0x02090548 kind:arm_call to:0x02035064 module:main
from:0x0209057c kind:load to:0x020e2aa8 module:overlay(0)
from:0x0209057c kind:load to:0x020e2aa0 add:8 module:overlay(0)
from:0x020905c0 kind:arm_call to:0x020350b4 module:main
from:0x020905d8 kind:arm_call to:0x020351b8 module:main
from:0x020905fc kind:arm_call to:0x020350b4 module:main
+4 -4
View File
@@ -960,7 +960,7 @@ func_ov000_0209048c kind:function(arm,size=0x38) addr:0x0209048c
func_ov000_020904c4 kind:function(arm,size=0x14) addr:0x020904c4
func_ov000_020904d8 kind:function(arm,size=0x1c) addr:0x020904d8
_ZN14ActorEventIcon6CreateEv kind:function(arm,size=0x30) addr:0x020904f4
_ZN14ActorEventIconC2Ev kind:function(arm,size=0x5c) addr:0x02090524
_ZN14ActorEventIconC1Ev kind:function(arm,size=0x5c) addr:0x02090524
_ZN14ActorEventIcon4InitEv kind:function(arm,size=0xb0) addr:0x02090580
_ZN14ActorEventIcon8vfunc_14Ej kind:function(arm,size=0xc) addr:0x02090630
_ZN14ActorEventIcon8vfunc_18Ej kind:function(arm,size=0xc) addr:0x0209063c
@@ -3940,7 +3940,7 @@ __sinit_ov000_020df4cc kind:function(arm,size=0x174) addr:0x020df4cc
__sinit_ov000_020df640 kind:function(arm,size=0x38) addr:0x020df640
__sinit_ActorSwitchObject.cpp kind:function(arm,size=0x40) addr:0x020df678
__sinit_ov000_020df6b8 kind:function(arm,size=0x40) addr:0x020df6b8
__sinit_ActorEventIcon.cpp kind:function(arm,size=0x40) addr:0x020df6f8
__sinit_ActorEventIcon.cpp kind:function(arm,size=0x40) addr:0x020df6f8 local
__sinit_ov000_020df738 kind:function(arm,size=0x38) addr:0x020df738
__sinit_ov000_020df770 kind:function(arm,size=0x20) addr:0x020df770
__sinit_ov000_020df790 kind:function(arm,size=0x1718) addr:0x020df790
@@ -4066,7 +4066,7 @@ data_ov000_020e2870 kind:data(any) addr:0x020e2870
data_ov000_020e289c kind:data(any) addr:0x020e289c
_ZTV17ActorSwitchObject kind:data(any) addr:0x020e2930
data_ov000_020e29ec kind:data(any) addr:0x020e29ec
_ZTV14ActorEventIcon kind:data(any) addr:0x020e2aa8
_ZTV14ActorEventIcon kind:data(any) addr:0x020e2aa0
data_ov000_020e2b64 kind:data(any) addr:0x020e2b64
data_ov000_020e2bb4 kind:data(any) addr:0x020e2bb4
data_ov000_020e2c04 kind:data(any) addr:0x020e2c04
@@ -5849,7 +5849,7 @@ data_ov000_020ecd64 kind:bss addr:0x020ecd64
_ZN17ActorSwitchObject5gTypeE kind:bss addr:0x020ecd70
data_ov000_020ecd84 kind:bss addr:0x020ecd84
data_ov000_020ecd90 kind:bss addr:0x020ecd90
data_ov000_020ecda4 kind:bss addr:0x020ecda4
@558 kind:bss addr:0x020ecda4 local
_ZN14ActorEventIcon5gTypeE kind:bss addr:0x020ecdb0
data_ov000_020ecdc4 kind:bss addr:0x020ecdc4
data_ov000_020ecdcc kind:bss addr:0x020ecdcc
+1 -1
View File
@@ -1719,7 +1719,7 @@ func_0203490c kind:function(arm,size=0x30) addr:0x0203490c
func_0203493c kind:function(arm,size=0x48) addr:0x0203493c
func_02034984 kind:function(arm,size=0x48) addr:0x02034984
func_020349cc kind:function(arm,size=0x50) addr:0x020349cc
func_02034a1c kind:function(arm,size=0xf0) addr:0x02034a1c
_ZN18UnkStruct_0203506413func_02034a1cEiiP18UnkStruct_01ffbe34 kind:function(arm,size=0xf0) addr:0x02034a1c
func_02034b0c kind:function(arm,size=0x4c) addr:0x02034b0c
func_02034b58 kind:function(arm,size=0x38) addr:0x02034b58
func_02034b90 kind:function(arm,size=0x38) addr:0x02034b90
@@ -28,6 +28,7 @@ src/00_Core/Actor/Dungeon/ActorSwitchObject.cpp:
.sbss start:0x020ecd04 end:0x020ecd24
src/00_Core/Actor/Dungeon/ActorEventIcon.cpp:
complete
.text start:0x02090494 end:0x02090898
.init start:0x020df698 end:0x020df6d8
.ctor start:0x020e1e6c end:0x020e1e70
+1 -1
View File
@@ -2313,7 +2313,7 @@ from:0x020904b8 kind:arm_call to:0x020904c4 module:overlay(0)
from:0x020904c0 kind:load to:0x027e0fe0 module:dtcm
from:0x020904cc kind:arm_call to:0x020c14f4 module:overlay(0)
from:0x020904e8 kind:arm_call to:0x02035020 module:main
from:0x0209051c kind:load to:0x020e2a48 module:overlay(0)
from:0x0209051c kind:load to:0x020e2a40 add:8 module:overlay(0)
from:0x02090560 kind:arm_call to:0x02035070 module:main
from:0x02090578 kind:arm_call to:0x02035174 module:main
from:0x0209059c kind:arm_call to:0x02035070 module:main
+4 -4
View File
@@ -960,7 +960,7 @@ func_ov000_0209048c kind:function(arm,size=0x38) addr:0x0209042c
func_ov000_020904c4 kind:function(arm,size=0x14) addr:0x02090464
func_ov000_020904d8 kind:function(arm,size=0x1c) addr:0x02090478
_ZN14ActorEventIcon6CreateEv kind:function(arm,size=0x30) addr:0x02090494
_ZN14ActorEventIconC2Ev kind:function(arm,size=0x5c) addr:0x020904c4
_ZN14ActorEventIconC1Ev kind:function(arm,size=0x5c) addr:0x020904c4
_ZN14ActorEventIcon4InitEv kind:function(arm,size=0xb0) addr:0x02090520
_ZN14ActorEventIcon8vfunc_14Ej kind:function(arm,size=0xc) addr:0x020905d0
_ZN14ActorEventIcon8vfunc_18Ej kind:function(arm,size=0xc) addr:0x020905dc
@@ -3940,7 +3940,7 @@ __sinit_ov000_020df4cc kind:function(arm,size=0x174) addr:0x020df46c
__sinit_ov000_020df640 kind:function(arm,size=0x38) addr:0x020df5e0
__sinit_ActorSwitchObject.cpp kind:function(arm,size=0x40) addr:0x020df618
__sinit_ov000_020df6b8 kind:function(arm,size=0x40) addr:0x020df658
__sinit_ActorEventIcon.cpp kind:function(arm,size=0x40) addr:0x020df698
__sinit_ActorEventIcon.cpp kind:function(arm,size=0x40) addr:0x020df698 local
__sinit_ov000_020df738 kind:function(arm,size=0x38) addr:0x020df6d8
__sinit_ov000_020df770 kind:function(arm,size=0x20) addr:0x020df710
__sinit_ov000_020df790 kind:function(arm,size=0x1718) addr:0x020df730
@@ -4066,7 +4066,7 @@ data_ov000_020e2870 kind:data(any) addr:0x020e2810
data_ov000_020e289c kind:data(any) addr:0x020e283c
_ZTV17ActorSwitchObject kind:data(any) addr:0x020e28d0
data_ov000_020e29ec kind:data(any) addr:0x020e298c
_ZTV14ActorEventIcon kind:data(any) addr:0x020e2a48
_ZTV14ActorEventIcon kind:data(any) addr:0x020e2a40
data_ov000_020e2b64 kind:data(any) addr:0x020e2b04
data_ov000_020e2bb4 kind:data(any) addr:0x020e2b54
data_ov000_020e2c04 kind:data(any) addr:0x020e2ba4
@@ -5849,7 +5849,7 @@ data_ov000_020ecd64 kind:bss addr:0x020ecd04
_ZN17ActorSwitchObject5gTypeE kind:bss addr:0x020ecd10
data_ov000_020ecd84 kind:bss addr:0x020ecd24
data_ov000_020ecd90 kind:bss addr:0x020ecd30
data_ov000_020ecda4 kind:bss addr:0x020ecd44
@558 kind:bss addr:0x020ecd44 local
_ZN14ActorEventIcon5gTypeE kind:bss addr:0x020ecd50
data_ov000_020ecdc4 kind:bss addr:0x020ecd64
data_ov000_020ecdcc kind:bss addr:0x020ecd6c
+1 -1
View File
@@ -1719,7 +1719,7 @@ func_0203490c kind:function(arm,size=0x30) addr:0x020348c8
func_0203493c kind:function(arm,size=0x48) addr:0x020348f8
func_02034984 kind:function(arm,size=0x48) addr:0x02034940
func_020349cc kind:function(arm,size=0x50) addr:0x02034988
func_02034a1c kind:function(arm,size=0xf0) addr:0x020349d8
_ZN18UnkStruct_0203506413func_02034a1cEiiP18UnkStruct_01ffbe34 kind:function(arm,size=0xf0) addr:0x020349d8
func_02034b0c kind:function(arm,size=0x4c) addr:0x02034ac8
func_02034b58 kind:function(arm,size=0x38) addr:0x02034b14
func_02034b90 kind:function(arm,size=0x38) addr:0x02034b4c
+3 -2
View File
@@ -12,9 +12,10 @@ public:
static ActorType gType;
/* 000 (base) */
/* 158 */ void *mUnk_158;
/* 158 */ u32 mUnk_158;
/* 15c */ u32 mUnk_15c;
/* 160 */ UnkStruct_02035064 mUnk_160;
/* 1e8 */
/* 00 */ virtual ~ActorEventIcon() override;
/* 08 */ virtual bool Init() override;
@@ -25,6 +26,6 @@ public:
static ActorEventIcon *Create();
ActorEventIcon();
u32 func_ov000_02090648(u32 param1);
void func_ov000_02090648(u32 param1);
bool func_ov000_02090774(u32 param1);
};
+2 -2
View File
@@ -5,10 +5,10 @@
// astruct_11
struct UnkStruct_0202e1a0 {
/* 00 */ unk16 mUnk_00;
/* 00 */ u16 mUnk_00;
/* 02 */ unk16 mUnk_02;
/* 04 */ s32 mUnk_04;
/* 08 */ u32 mUnk_08;
/* 08 */ s32 mUnk_08;
/* 0c */ s32 mUnk_0c;
/* 10 */ s32 mUnk_10;
/* 14 */ s32 mUnk_14;
+1 -1
View File
@@ -36,7 +36,7 @@ public:
/* 74 */ u16 *mUnk_74;
/* 78 */ s32 *mUnk_78;
/* 7c */ u32 mUnk_7c;
/* 80 */ u16 mUnk_80;
/* 80 */ s16 mUnk_80;
/* 82 */ unk16 mUnk_82;
/* 84 */ unk16 mUnk_84;
/* 86 */ bool mUnk_86;
+146 -9
View File
@@ -1,13 +1,150 @@
#include "Actor/Dungeon/ActorEventIcon.hpp"
#include "Player/PlayerBase.hpp"
#include "Save/AdventureFlags.hpp"
extern u32 **data_027e0fe0[];
extern void *data_027e0d3c;
extern "C" unk32 func_ov000_02079470(void *, Vec3p *, unk32, unk32, unk32 *, unk32 *, unk32, unk32);
#pragma section sbss begin
ActorType ActorEventIcon::gType = ActorType(ActorTypeId_EventIcon, (ActorCreateFunc) ActorEventIcon::Create, NULL);
#pragma section sbss end
ActorEventIcon *ActorEventIcon::Create() {}
ActorEventIcon::ActorEventIcon() {}
bool ActorEventIcon::Init() {}
void ActorEventIcon::vfunc_14(u32 param1) {}
void ActorEventIcon::vfunc_18(u32 param1) {}
u32 ActorEventIcon::func_ov000_02090648(u32 param1) {}
bool ActorEventIcon::func_ov000_02090774(u32 param1) {}
void ActorEventIcon::vfunc_1c(u16 *param1) {}
ActorEventIcon::~ActorEventIcon() {}
ARM ActorEventIcon *ActorEventIcon::Create() {
return new(*data_027e0fe0[0], 4) ActorEventIcon();
}
ARM ActorEventIcon::ActorEventIcon() :
mUnk_158(0),
mUnk_15c(0) {
this->mHitbox.pos.x = 0;
this->mHitbox.pos.y = 0x4000;
this->mHitbox.pos.z = 0;
this->mHitbox.size = 0x4000;
this->mUnk_08c.pos.x = 0;
this->mUnk_08c.pos.y = 0x4000;
this->mUnk_08c.pos.z = 0;
this->mUnk_08c.size = 0x4000;
}
ARM bool ActorEventIcon::Init() {
switch (this->mUnk_144) {
case 1:
case 2:
this->mUnk_15c = 0xFFFFFFF2;
this->mUnk_160.func_020350b4(3, 3, 0x19, 0, 0);
this->mUnk_160.func_020351b8(true, false, false, false);
break;
default:
this->mUnk_15c = 0xFFFFFFF4;
this->mUnk_160.func_020350b4(3, 0, 0x19, 0, 0);
this->mUnk_160.func_020351b8(false, false, false, false);
break;
}
this->func_ov000_02090774(0);
return true;
}
ARM void ActorEventIcon::vfunc_14(u32 param1) {
func_ov000_02090648(param1);
}
ARM void ActorEventIcon::vfunc_18(u32 param1) {
func_ov000_02090648(param1);
}
ARM void ActorEventIcon::func_ov000_02090648(u32 param1) {
if (!this->func_ov00_020c313c(param1)) {
return;
}
this->mPrevPos = this->mPos;
switch (this->mUnk_130) {
case 0:
switch (this->mUnk_140) {
case 0:
if (Vec3p_Distance(&this->mPos, &gPlayerPos) <= 0x1000) {
this->func_ov000_02090774(1);
return;
}
break;
case 1: break;
case 2:
if (this->mUnk_160.mUnk_5c.mUnk_08 >= 0x5A000 && Vec3p_Distance(&this->mPos, &gPlayerPos) > 0x1000) {
this->func_ov000_02090774(1);
return;
}
break;
default: break;
}
if (this->mUnk_160.mUnk_5c.mUnk_00 == 1) {
if (this->mUnk_160.mUnk_5c.func_0202e58c() != 0) {
func_ov000_02090774(1);
}
} else {
if (!gAdventureFlags->func_ov00_02097738()) {
this->mUnk_158++;
}
if (this->mUnk_158 >= 0x258) {
func_ov000_02090774(1);
}
}
break;
case 1: break;
default: break;
}
this->mUnk_160.func_0203516c();
}
ARM bool ActorEventIcon::func_ov000_02090774(u32 param1) {
this->mUnk_130 = param1;
switch (this->mUnk_130) {
case 0: this->mUnk_158 = 0; break;
case 1: this->mAlive = false; break;
default: break;
}
return true;
}
ARM void ActorEventIcon::vfunc_1c(u16 *param1) {
unk32 iStack_c;
unk32 iStack_10;
if (((*param1 & 4) == 0) && ((*param1 & 8) == 0)) {
return;
}
if (func_ov000_02079470(data_027e0d3c, &this->mPos, 0, 0, &iStack_c, &iStack_10, 0, 0) != 0) {
switch (this->mUnk_144) {
case 1:
if (this->mUnk_160.mUnk_80 >= 8) {
iStack_10 -= 8;
} else {
iStack_10 -= 0xe;
}
break;
case 2:
iStack_c++;
if (this->mUnk_160.mUnk_80 >= 8) {
iStack_10 -= 0xb;
} else {
iStack_10 -= 0x11;
}
break;
default: iStack_10 += this->mUnk_15c; break;
}
this->mUnk_160.func_02034a1c(iStack_c, iStack_10, 0);
}
}
ARM ActorEventIcon::~ActorEventIcon() {}