From 5c3e3aee99af35884462f518a9bc1fbf65ae92d4 Mon Sep 17 00:00:00 2001 From: Mike Date: Sun, 2 Jun 2024 15:40:04 -0400 Subject: [PATCH] Remove nonmatching function, fix static function type --- asm/ov00/Actor/ActorManager.s | 10 +-- .../Actor/ActorManager_func_ov00_020c3484.inc | 63 ------------------- src/00_Core/Actor/ActorManager.cpp | 62 +----------------- 3 files changed, 6 insertions(+), 129 deletions(-) delete mode 100644 asm/ov00/Actor/ActorManager_func_ov00_020c3484.inc diff --git a/asm/ov00/Actor/ActorManager.s b/asm/ov00/Actor/ActorManager.s index eeb3471b..eba45425 100644 --- a/asm/ov00/Actor/ActorManager.s +++ b/asm/ov00/Actor/ActorManager.s @@ -506,7 +506,7 @@ _020c3a14: mov r1, r8 ldr r0, [r0, r5, lsl #2] ldr r0, [r0, #4] - bl _ZN12ActorManager16ActorTypeIsOneOfEjPj + bl _Z16ActorTypeIsOneOfPcPS_ cmp r7, r0 beq _020c3b08 _020c3a60: @@ -791,9 +791,9 @@ _020c3e04: ldmia sp!, {r4, r5, r6, pc} arm_func_end _ZN12ActorManager14Actor_vfunc_28Ev - .global _ZN12ActorManager16ActorTypeIsOneOfEjPj - arm_func_start _ZN12ActorManager16ActorTypeIsOneOfEjPj -_ZN12ActorManager16ActorTypeIsOneOfEjPj: ; 0x020c3e1c + .global _Z16ActorTypeIsOneOfPcPS_ + arm_func_start _Z16ActorTypeIsOneOfPcPS_ +_Z16ActorTypeIsOneOfPcPS_: ; 0x020c3e1c ldr ip, [r1] ldr r2, _020c3e50 ; =0x4e554c4c mov r3, #0 @@ -811,7 +811,7 @@ _020c3e48: bx lr .align 2, 0 _020c3e50: .word 0x4e554c4c - arm_func_end _ZN12ActorManager16ActorTypeIsOneOfEjPj + arm_func_end _Z16ActorTypeIsOneOfPcPS_ .data .global data_ov00_020e72a8 diff --git a/asm/ov00/Actor/ActorManager_func_ov00_020c3484.inc b/asm/ov00/Actor/ActorManager_func_ov00_020c3484.inc deleted file mode 100644 index 2fa2d9dc..00000000 --- a/asm/ov00/Actor/ActorManager_func_ov00_020c3484.inc +++ /dev/null @@ -1,63 +0,0 @@ - stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, lr} - mov r10, r0 - mvn r3, #0 - str r3, [r10] - ldr r0, data_027e103c - str r3, [r10, #4] - ldr r0, [r0] - mov r9, r2 - ldrb r0, [r0, #0x24] - cmp r0, #0 - ldmeqia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - ldr r0, data_027e077c - ldr r2, data_02056be4 - ldr r0, [r0] - ldr r6, [r1, #0x10] - ldrb r0, [r2, r0] - sub r5, r3, #0x80000000 - tst r0, #1 - ldr r0, [r1, #4] - movne r8, #1 - moveq r8, #0 - add r7, r6, r0, lsl #2 - cmp r6, r7 - ldmhsia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - mov r4, #0 -_020c34e8: - ldr r0, [r6] - cmp r0, #0 - ldrneb r1, [r0, #0x118] - cmpne r1, #0 - beq _020c3560 - mov r1, r9 - bl _ZN5Actor18func_ov00_020c27a8Ei - cmp r0, #0 - beq _020c3560 - ldr r0, [r6] - ldrb r1, [r0, #0xa4] - cmp r1, #0 - cmpeq r8, #0 - beq _020c3560 - ldr r2, [r0] - mov r1, r4 - ldr r2, [r2, #0x40] - blx r2 - cmp r0, #0 - beq _020c3560 - ldr r0, [r6] - bl _ZN5Actor14DistanceToLinkEv - cmp r0, r5 - bge _020c3560 - ldr r1, [r6] - mov r5, r0 - ldr r0, [r1, #8] - str r0, [r10] - ldr r0, [r1, #0xc] - str r0, [r10, #4] -_020c3560: - add r6, r6, #4 - cmp r6, r7 - blo _020c34e8 - ldmia sp!, {r4, r5, r6, r7, r8, r9, r10, pc} - .align 2, 0 - arm_func_end _ZN12ActorManager18func_ov00_020c3484EP8ActorRefP5Actori diff --git a/src/00_Core/Actor/ActorManager.cpp b/src/00_Core/Actor/ActorManager.cpp index 6408d6aa..d3e7f13f 100644 --- a/src/00_Core/Actor/ActorManager.cpp +++ b/src/00_Core/Actor/ActorManager.cpp @@ -1,7 +1,6 @@ #include "Actor/ActorManager.hpp" void ActorManager::func_ov00_020c3484(ActorRef *ref, Actor *actor, unk32 param3) {} -Actor* ActorManager::FindActorById(u32 id) {} Actor* ActorManager::GetActor(ActorRef *ref) {} bool FilterActor::Filter(Actor *actor) {} s32 ActorManager::FilterActors(FilterActorBase *filter, ActorList *filteredActors) {} @@ -14,7 +13,6 @@ s32 ActorManager::func_ov00_020c3b2c(s32 *param1) {} s32 ActorManager::func_ov00_020c3bb0(unk32 param1, s32 *param2) {} void ActorManager::func_ov00_020c3ce8(unk32 param1, unk32 param2) {} void ActorManager::Actor_vfunc_28() {} -bool ActorManager::ActorTypeIsOneOf(u32 type, ActorTypeId *types) {} extern void func_ov00_020c3f54(void *, u32 param2); @@ -57,64 +55,6 @@ ARM void ActorManager::DeleteActor(u32 index, bool param2) { return; } -static void NONMATCH(func_ov00_020c3484)(ActorRef *ref, Actor *actor, unk32 param3) { - #ifndef NONMATCHING - #include "../asm/ov00/Actor/ActorManager_func_ov00_020c3484.inc" - #else - char bVar1; - s32 iVar3; - s32 iVar4; - u32 uVar7; - Actor **ppAVar5; - Actor **ppAVar6; - Actor *pActor; - - ref->id = 0xffffffff; - - int *puVar2 = data_027e103c; - - ref->index = 0xffffffff; - - if (*(char *)(*puVar2 + 0x24) == '\0') { - return; - } - - ppAVar5 = *(Actor ***)&actor->mUnk_010; - - bVar1 = data_02056be4[*data_027e077c]; - - iVar4 = 0x7fffffff; - ppAVar6 = ppAVar5 + actor->mType; - - for (; ppAVar5 < ppAVar6; ppAVar5++) { - pActor = *ppAVar5; - if (pActor != NULL) { - actor = (Actor *)(u32)actor->mAlive; - } - if (pActor != NULL && actor != NULL) { - uVar7 = pActor->func_ov00_020c27a8(param3); - actor = (Actor *)(uVar7 >> 0x20); - if (uVar7 != 0) { - pActor = *ppAVar5; - actor = (Actor *)(u32)(pActor->mUnk_0a4.mUnk_00); - } - if (actor != NULL || (bVar1 & 1) != 0) { - uVar7 = pActor->mUnk_040(0); - pActor = (Actor *)(uVar7 >> 0x20); - iVar3 = (*ppAVar5)->DistanceToLink(); - if (uVar7 != 0 && iVar3 < iVar4) { - pActor = *ppAVar5; - ref->id = actor->mId; - ref->index = actor->mIndex; - iVar4 = iVar3; - } - } - } - } - return; - #endif -} - ARM void ActorManager::Actor_vfunc_10(u32 param1) { Actor *actor; int i; @@ -210,7 +150,7 @@ void ActorManager::Actor_vfunc_28() { char nullStr[] = "LLUN"; -ARM bool ActorManager::ActorTypeIsOneOf(char *type, char **types) { +ARM static bool ActorTypeIsOneOf(char *type, char **types) { int i; bool found = false;