From 8ad6359c7d3c7afcbddd7d450b7fa4b9764255b6 Mon Sep 17 00:00:00 2001 From: Aetias <144526980+AetiasHax@users.noreply.github.com> Date: Fri, 25 Jul 2025 15:59:54 +0200 Subject: ActorSwitchObject OK (#130) * Map symbol in Game * ActorSwitchObject OK * Mark ActorSwitchObject as complete * Document `mTrapActors` * Fix FilterActorBase * Fix regressions --- src/00_Core/Player/PlayerControl.cpp | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) (limited to 'src/00_Core/Player/PlayerControl.cpp') diff --git a/src/00_Core/Player/PlayerControl.cpp b/src/00_Core/Player/PlayerControl.cpp index 5476834e..1e5f5d98 100644 --- a/src/00_Core/Player/PlayerControl.cpp +++ b/src/00_Core/Player/PlayerControl.cpp @@ -14,6 +14,7 @@ #include "Player/PlayerBase.hpp" #include "Player/PlayerLinkBase.hpp" #include "Save/AdventureFlags.hpp" +#include "Unknown/UnkStruct_020eec9c.hpp" static char *sShipTypes[] = {"brg", "anc", "pdl", "hul", "can", "dco", "bow", "fnl"}; @@ -66,7 +67,7 @@ ARM Actor *PlayerControl::GetFollowActor() { return gActorManager->GetActor(&mFollowRef); } -ARM bool PlayerControl::func_ov00_020af01c(Vec2b *param1) { +ARM bool PlayerControl::func_ov00_020af01c(TilePos *param1) { if (mFollowing) { *param1 = mUnk_9c; return true; @@ -300,8 +301,7 @@ ARM void PlayerControl::func_ov00_020af6e4(Vec3p *param1, s32 param3, s32 param4 mFollowRef.Reset(); } - Vec2b unk; - MapManager::func_ov00_02083a1c(&unk, gMapManager, param1); + TilePos unk = gMapManager->func_ov00_02083a1c(param1); mUnk_9c = unk; mFollowing = true; mUnk_80 = false; @@ -376,8 +376,7 @@ ARM bool PlayerControl::func_ov00_020af778() { } } } else { - ActorRef ref; - ActorManager::func_ov00_020c3484(&ref, gActorManager, 0); + ActorRef ref = gActorManager->func_ov00_020c3484(0); mNextFollowRef = ref; if (mTouchDuration == 0) { mLastFollowRef = mNextFollowRef; @@ -475,9 +474,8 @@ ARM void PlayerControl::func_ov00_020afb6c() { iVar7 = 2; } } else { - local_3c.y = gPlayerPos.y; - Vec2b local_44 = mUnk_9c; - gMapManager->func_ov00_02083c7c(&local_3c, local_44); + local_3c.y = gPlayerPos.y; + gMapManager->func_ov00_02083c7c(&local_3c, mUnk_9c); iVar2 = 2; iVar7 = 3; } @@ -721,8 +719,7 @@ ARM bool PlayerControl::func_ov00_020b05e8(Vec3p *param1) { VStack_1c.z += MUL_Q20(COS(gPlayerAngle), FLOAT_TO_Q20(0.25)); } - Vec2b VStack_20; - MapManager::func_ov00_02083a1c(&VStack_20, gMapManager, &VStack_1c); + TilePos VStack_20 = gMapManager->func_ov00_02083a1c(&VStack_1c); VStack_1c.x += (gMapManager->func_ov00_02083c24(VStack_20.x) - VStack_1c.x) / 2; VStack_1c.z += (gMapManager->func_ov00_02083c50(VStack_20.y) - VStack_1c.z) / 2; Vec3p_Sub(&VStack_1c, playerPos, param1); @@ -1032,11 +1029,9 @@ ARM bool PlayerControl::IsNotTouching() { return !mTouch; } -extern u32 data_ov000_020eec9c[]; -extern "C" void func_ov000_020d77e4(u32 *param1, u32 param2); ARM bool PlayerControl::IsTouchingFast() { if (this->CheckTouchFast(1)) { - func_ov000_020d77e4(data_ov000_020eec9c, 0x17); + data_ov000_020eec9c.func_ov000_020d77e4(0x17); return true; } return false; -- cgit v1.2.3