From 186d2671a3f2d30a8ad48c1fab5bbca9cac70ac9 Mon Sep 17 00:00:00 2001 From: Demur Rumed Date: Sun, 27 Jul 2025 17:24:12 +0000 Subject: [PATCH] more hookshot cues --- .../accessible-actors/AccessibleActorList.cpp | 14 +++++++++++++- .../accessible-actors/ActorAccessibility.cpp | 3 ++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/soh/soh/Enhancements/accessible-actors/AccessibleActorList.cpp b/soh/soh/Enhancements/accessible-actors/AccessibleActorList.cpp index 8a2cf6f8c..4f7071b47 100644 --- a/soh/soh/Enhancements/accessible-actors/AccessibleActorList.cpp +++ b/soh/soh/Enhancements/accessible-actors/AccessibleActorList.cpp @@ -370,6 +370,11 @@ void ActorAccessibility_InitActors() { ActorAccessibility_AddSupportedActor(ACTOR_EN_SKJ, policy); policy.englishName = "Boss Carpenter"; ActorAccessibility_AddSupportedActor(ACTOR_EN_TORYO, policy); + policy.englishName = "Carpenter's Son"; + ActorAccessibility_AddSupportedActor(ACTOR_EN_HS, policy); + ActorAccessibility_AddSupportedActor(ACTOR_EN_HS2, policy); + policy.englishName = "Bean Salesman"; + ActorAccessibility_AddSupportedActor(ACTOR_EN_MS, policy); policy.englishName = "Carpenters (Kakariko)"; ActorAccessibility_AddSupportedActor(ACTOR_EN_DAIKU_KAKARIKO, policy); policy.englishName = "Kakariko Rooftop Man"; @@ -433,6 +438,11 @@ void ActorAccessibility_InitActors() { } }); ActorAccessibility_AddSupportedActor(ACTOR_EN_WOOD02, policy); + ActorAccessibility_InitPolicy(&policy, "Hookshot Pillar", NA_SE_IT_HOOKSHOT_STICK_OBJ); + policy.distance = 1000; + policy.ydist = 1000; + policy.aimAssist.isProvider = AIM_HOOK; + ActorAccessibility_AddSupportedActor(ACTOR_OBJ_HSBLOCK, policy); ActorAccessibility_InitPolicy(&policy, "Scarecrow", NA_SE_IT_KAKASHI_JUMP); policy.volume = 2; policy.distance = 1000; @@ -498,8 +508,10 @@ void ActorAccessibility_InitActors() { // ACTOR_EN_A_OBJ has exactly the same configuration. ActorAccessibility_AddSupportedActor(ACTOR_EN_A_OBJ, policy); - ActorAccessibility_InitPolicy(&policy, "Large Crate", NA_SE_EV_WOODBOX_BREAK); + ActorAccessibility_InitPolicy(&policy, "Small Crate", NA_SE_EV_WOODBOX_BREAK); ActorAccessibility_AddSupportedActor(ACTOR_OBJ_KIBAKO, policy); + policy.englishName = "Crate"; + policy.aimAssist.isProvider = AIM_HOOK; ActorAccessibility_AddSupportedActor(ACTOR_OBJ_KIBAKO2, policy); ActorAccessibility_InitPolicy(&policy, "deku stick drops", [](AccessibleActor* actor) { EnKarebaba* baba = (EnKarebaba*)actor->actor; diff --git a/soh/soh/Enhancements/accessible-actors/ActorAccessibility.cpp b/soh/soh/Enhancements/accessible-actors/ActorAccessibility.cpp index 62631116e..81fc1aa23 100644 --- a/soh/soh/Enhancements/accessible-actors/ActorAccessibility.cpp +++ b/soh/soh/Enhancements/accessible-actors/ActorAccessibility.cpp @@ -678,7 +678,6 @@ void ActorAccessibility_InterpretCurrentScene(PlayState* play) { func_80041DB8(&play->colCtx, poly, BGCHECK_SCENE) == 3)) { ActorAccessibility_PolyToVirtualActor(play, poly, VA_CLIMB, list); } - s32 bgId; if (func_80041EA4(&play->colCtx, poly, BGCHECK_SCENE) == 12) { ActorAccessibility_PolyToVirtualActor(play, poly, VA_VOID, list); } @@ -710,6 +709,8 @@ void ActorAccessibility_PolyToVirtualActor(PlayState* play, CollisionPoly* poly, s16 nextEntranceIndex = play->setupExitList[sceneIndex - 1]; actor->sceneIndex = gEntranceTable[nextEntranceIndex].scene; } + } else if (SurfaceType_IsHookshotSurface(&play->colCtx, poly, BGCHECK_SCENE)) { + actor->policy.aimAssist.isProvider = AIM_HOOK; } }