improvements/fixes based on ice cavern map room testing

This commit is contained in:
Demur Rumed 2025-07-12 15:34:43 +00:00
commit 4d8e9fef4f
2 changed files with 39 additions and 26 deletions

View file

@ -826,7 +826,9 @@ void ActorAccessibility_InitActors() {
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_IT_FLAME); ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_IT_FLAME);
} }
}); });
policy.n = 60; policy.n = 40;
policy.distance = 900;
policy.volume = 2;
ActorAccessibility_AddSupportedActor(ACTOR_EN_ICE_HONO, policy); ActorAccessibility_AddSupportedActor(ACTOR_EN_ICE_HONO, policy);
ActorAccessibility_InitPolicy(&policy, "Ice Barred", NA_SE_EV_CHAIN_KEY_UNLOCK); ActorAccessibility_InitPolicy(&policy, "Ice Barred", NA_SE_EV_CHAIN_KEY_UNLOCK);
ActorAccessibility_AddSupportedActor(ACTOR_BG_ICE_SHUTTER, policy); ActorAccessibility_AddSupportedActor(ACTOR_BG_ICE_SHUTTER, policy);
@ -857,6 +859,11 @@ void ActorAccessibility_InitActors() {
} }
}); });
ActorAccessibility_AddSupportedActor(ACTOR_OBJ_HANA, policy); ActorAccessibility_AddSupportedActor(ACTOR_OBJ_HANA, policy);
ActorAccessibility_InitPolicy(&policy, "Keese", nullptr);
policy.ydist = 1000;
policy.distance = 1500;
policy.aimAssist.isProvider = AIM_SHOOT;
ActorAccessibility_AddSupportedActor(ACTOR_EN_FIREFLY, policy);
ActorAccessibility_InitPolicy(&policy, "gold skulltula token", NA_SE_EN_NUTS_DAMAGE); ActorAccessibility_InitPolicy(&policy, "gold skulltula token", NA_SE_EN_NUTS_DAMAGE);
ActorAccessibility_AddSupportedActor(ACTOR_EN_SI, policy); ActorAccessibility_AddSupportedActor(ACTOR_EN_SI, policy);
ActorAccessibility_InitPolicy(&policy, "Gold and Wall skulltulas", nullptr); ActorAccessibility_InitPolicy(&policy, "Gold and Wall skulltulas", nullptr);
@ -1260,9 +1267,11 @@ void ActorAccessibility_InitActors() {
temp = ActorAccessibility_AddVirtualActor(list, VA_MARKER, { 475, 2840, -30 }); temp = ActorAccessibility_AddVirtualActor(list, VA_MARKER, { 475, 2840, -30 });
list = ActorAccessibility_GetVirtualActorList(SCENE_ICE_CAVERN, 9); list = ActorAccessibility_GetVirtualActorList(SCENE_ICE_CAVERN, 9);
temp = ActorAccessibility_AddVirtualActor(list, VA_MARKER, { 860, 180, -2400 }); temp = ActorAccessibility_AddVirtualActor(list, VA_MARKER, { 860, 200, -2400 });
temp->policy.distance = 300; temp->policy.aimAssist.isProvider = AIM_CUP;
temp->policy.distance = 750;
temp->policy.ydist = 100; temp->policy.ydist = 100;
temp->policy.volume = 1.5;
temp->policy.sound = NA_SE_EV_BLOCK_SHAKE; temp->policy.sound = NA_SE_EV_BLOCK_SHAKE;
ActorAccessibility_InitPolicy(&policy, "Terrain cue helper", nullptr); ActorAccessibility_InitPolicy(&policy, "Terrain cue helper", nullptr);

View file

@ -378,29 +378,33 @@ void ActorAccessibility_RunAccessibilityForActor(PlayState* play, AccessibleActo
((actor->policy.aimAssist.isProvider & AIM_CUP) || ((actor->policy.aimAssist.isProvider & AIM_CUP) ||
(player->stateFlags1 & (PLAYER_STATE1_USING_BOOMERANG | PLAYER_STATE1_ITEM_IN_HAND)))) { (player->stateFlags1 & (PLAYER_STATE1_USING_BOOMERANG | PLAYER_STATE1_ITEM_IN_HAND)))) {
bool aim = false; bool aim = false;
switch (player->heldItemAction) { if (player->unk_6AD == 2) {
case PLAYER_IA_BOW: switch (player->heldItemAction) {
case PLAYER_IA_BOW_FIRE: case PLAYER_IA_BOW:
case PLAYER_IA_BOW_ICE: case PLAYER_IA_BOW_FIRE:
case PLAYER_IA_BOW_LIGHT: case PLAYER_IA_BOW_ICE:
case PLAYER_IA_BOW_0C: case PLAYER_IA_BOW_LIGHT:
case PLAYER_IA_BOW_0D: case PLAYER_IA_BOW_0C:
case PLAYER_IA_BOW_0E: case PLAYER_IA_BOW_0D:
aim = actor->policy.aimAssist.isProvider & AIM_BOW; case PLAYER_IA_BOW_0E:
break; aim = actor->policy.aimAssist.isProvider & AIM_BOW;
case PLAYER_IA_SLINGSHOT: break;
aim = actor->policy.aimAssist.isProvider & AIM_SLING; case PLAYER_IA_SLINGSHOT:
break; aim = actor->policy.aimAssist.isProvider & AIM_SLING;
case PLAYER_IA_HOOKSHOT: break;
case PLAYER_IA_LONGSHOT: case PLAYER_IA_HOOKSHOT:
aim = actor->policy.aimAssist.isProvider & AIM_HOOK; case PLAYER_IA_LONGSHOT:
break; aim = actor->policy.aimAssist.isProvider & AIM_HOOK;
case PLAYER_IA_BOOMERANG: break;
aim = actor->policy.aimAssist.isProvider & AIM_BOOM; case PLAYER_IA_BOOMERANG:
break; aim = actor->policy.aimAssist.isProvider & AIM_BOOM;
case PLAYER_IA_NONE: break;
aim = actor->policy.aimAssist.isProvider & AIM_CUP; case PLAYER_IA_NONE:
break; aim = actor->policy.aimAssist.isProvider & AIM_CUP;
break;
}
} else {
aim = actor->policy.aimAssist.isProvider & AIM_CUP;
} }
if (aim) { if (aim) {
auto aimAssistProps = ActorAccessibility_ProvideAimAssistForActor(actor); auto aimAssistProps = ActorAccessibility_ProvideAimAssistForActor(actor);