mirror of
https://github.com/HarbourMasters/Shipwright.git
synced 2025-08-23 22:55:31 -07:00
fixes entrance sounds in large overworld areas,
also adds stick burning warning and more actors
This commit is contained in:
parent
90f963f897
commit
ed565782cc
3 changed files with 59 additions and 10 deletions
|
@ -315,7 +315,7 @@ void accessible_area_change(AccessibleActor* actor) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
//kakariko village attenuation
|
//kakariko village attenuation
|
||||||
if (actor->play->sceneNum == 82) {
|
else if (actor->play->sceneNum == 82) {
|
||||||
if (actor->sceneIndex == 83 || actor->sceneIndex == 81 || actor->sceneIndex == 96) {
|
if (actor->sceneIndex == 83 || actor->sceneIndex == 81 || actor->sceneIndex == 96) {
|
||||||
actor->policy.runsAlways == true;
|
actor->policy.runsAlways == true;
|
||||||
actor->policy.ydist = 5000;
|
actor->policy.ydist = 5000;
|
||||||
|
@ -348,7 +348,7 @@ void accessible_area_change(AccessibleActor* actor) {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if (actor->play->sceneNum == 91 || actor->play->sceneNum == 69 || actor->play->sceneNum == 70) {
|
else if (actor->play->sceneNum == 91 || actor->play->sceneNum == 69 || actor->play->sceneNum == 70) {
|
||||||
actor->policy.distance = 1000;
|
actor->policy.distance = 1000;
|
||||||
if (actor->xzDistToPlayer > 1000) {
|
if (actor->xzDistToPlayer > 1000) {
|
||||||
return;
|
return;
|
||||||
|
@ -356,9 +356,11 @@ void accessible_area_change(AccessibleActor* actor) {
|
||||||
}
|
}
|
||||||
/* if (actor->play->sceneNum <= 11) {
|
/* if (actor->play->sceneNum <= 11) {
|
||||||
actor->policy.distance = 500;
|
actor->policy.distance = 500;
|
||||||
}*/
|
}*/
|
||||||
if (actor->xzDistToPlayer > 1500) {
|
else {
|
||||||
return;
|
if (actor->xzDistToPlayer > 1500) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (actor->sceneIndex == 85 || actor->sceneIndex == 91) {
|
if (actor->sceneIndex == 85 || actor->sceneIndex == 91) {
|
||||||
if (actor->play->sceneNum == 91 && gSaveContext.entranceIndex != 1504 && gSaveContext.entranceIndex != 1246) {
|
if (actor->play->sceneNum == 91 && gSaveContext.entranceIndex != 1504 && gSaveContext.entranceIndex != 1246) {
|
||||||
|
@ -441,6 +443,9 @@ void accessible_area_change(AccessibleActor* actor) {
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
actor->policy.distance = 500;
|
actor->policy.distance = 500;
|
||||||
|
if (actor->play->sceneNum == 83) {
|
||||||
|
actor->policy.ydist = 0;
|
||||||
|
}
|
||||||
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_OC_DOOR_OPEN, false);
|
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_OC_DOOR_OPEN, false);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -468,8 +473,10 @@ void accessible_231_dekus(AccessibleActor* actor) {
|
||||||
void accessible_hana(AccessibleActor* actor) {
|
void accessible_hana(AccessibleActor* actor) {
|
||||||
if (actor->actor->params == 1) {
|
if (actor->actor->params == 1) {
|
||||||
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_EN_OCTAROCK_ROCK, false);
|
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_EN_OCTAROCK_ROCK, false);
|
||||||
|
} else if (actor->actor->params == 0) {
|
||||||
|
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_EV_DIG_UP, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void accessible_climable(AccessibleActor* actor) {
|
void accessible_climable(AccessibleActor* actor) {
|
||||||
|
@ -581,6 +588,22 @@ void accessible_sticks(AccessibleActor* actor) {
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void accessible_graveyard_soil(AccessibleActor* actor) {
|
||||||
|
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_IT_WOODSTICK_BROKEN, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
void accessible_cucco(AccessibleActor* actor) {
|
||||||
|
if (actor->actor->params == 14) {
|
||||||
|
|
||||||
|
} else if (actor->actor->params == 13) {
|
||||||
|
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_EV_CHICKEN_CRY_N, false);
|
||||||
|
ActorAccessibility_SetSoundPitch(actor, 0, 1.5);
|
||||||
|
} else {
|
||||||
|
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_EV_CHICKEN_CRY_N, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
bool accessible_general_helper_init(AccessibleActor* actor) {
|
bool accessible_general_helper_init(AccessibleActor* actor) {
|
||||||
GeneralHelperData* data = (GeneralHelperData*)malloc(sizeof(GeneralHelperData));
|
GeneralHelperData* data = (GeneralHelperData*)malloc(sizeof(GeneralHelperData));
|
||||||
if (data == NULL)
|
if (data == NULL)
|
||||||
|
@ -669,6 +692,15 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void accessible_stick_warning(AccessibleActor* actor) {
|
||||||
|
Player* player = GET_PLAYER(actor->play);
|
||||||
|
actor->world.pos = player->actor.world.pos;
|
||||||
|
actor->world.pos.z -= 50;
|
||||||
|
if (fabs(player->unk_860 - 25) < 24.0 && player->heldItemId==0) {
|
||||||
|
ActorAccessibility_PlaySoundForActor(actor, 0, NA_SE_SY_WARNING_COUNT_N, false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void ActorAccessibility_InitActors() {
|
void ActorAccessibility_InitActors() {
|
||||||
const int Npc_Frames = 35;
|
const int Npc_Frames = 35;
|
||||||
ActorAccessibilityPolicy policy;
|
ActorAccessibilityPolicy policy;
|
||||||
|
@ -696,7 +728,8 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_FU, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_FU, policy);
|
||||||
policy.englishName = "Durania";
|
policy.englishName = "Durania";
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_DU, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_DU, policy);
|
||||||
|
policy.englishName = "Owl";
|
||||||
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_OWL, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "Catching Guards", accessible_en_guard, 0);
|
ActorAccessibility_InitPolicy(&policy, "Catching Guards", accessible_en_guard, 0);
|
||||||
policy.n = 10;
|
policy.n = 10;
|
||||||
policy.distance = 500;
|
policy.distance = 500;
|
||||||
|
@ -729,6 +762,10 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_GO2, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_GO2, policy);
|
||||||
policy.englishName = "Saria";
|
policy.englishName = "Saria";
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_SA, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_SA, policy);
|
||||||
|
policy.englishName = "Graveyard Kid";
|
||||||
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_CS, policy);
|
||||||
|
policy.englishName = "Dampe (Alive)";
|
||||||
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_TK, policy);
|
||||||
policy.englishName = "Happy Mask Shop Customer";
|
policy.englishName = "Happy Mask Shop Customer";
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_GUEST, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_GUEST, policy);
|
||||||
policy.englishName = "Market Npc";
|
policy.englishName = "Market Npc";
|
||||||
|
@ -763,7 +800,7 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
ActorAccessibility_InitPolicy(&policy, "Cows", NULL, NA_SE_EV_COW_CRY_LV);
|
ActorAccessibility_InitPolicy(&policy, "Cows", NULL, NA_SE_EV_COW_CRY_LV);
|
||||||
policy.n = 30;
|
policy.n = 30;
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_COW, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_COW, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "Cuccos", NULL, NA_SE_EV_CHICKEN_CRY_N);
|
ActorAccessibility_InitPolicy(&policy, "Cuccos", accessible_cucco, 0);
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_NIW, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_NIW, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "Bush", NULL, NA_SE_PL_PULL_UP_PLANT);
|
ActorAccessibility_InitPolicy(&policy, "Bush", NULL, NA_SE_PL_PULL_UP_PLANT);
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_KUSA, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_KUSA, policy);
|
||||||
|
@ -797,6 +834,8 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
policy.distance = 2400;
|
policy.distance = 2400;
|
||||||
policy.pitch = 1.3;
|
policy.pitch = 1.3;
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_OBJ_BEAN, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_OBJ_BEAN, policy);
|
||||||
|
ActorAccessibility_InitPolicy(&policy, "GraveYard Digging spots", accessible_graveyard_soil, 0);
|
||||||
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_IT, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "Collectible", accessible_en_pickups, 0);
|
ActorAccessibility_InitPolicy(&policy, "Collectible", accessible_en_pickups, 0);
|
||||||
policy.n = 40;
|
policy.n = 40;
|
||||||
policy.pitch = 1.4;
|
policy.pitch = 1.4;
|
||||||
|
@ -837,6 +876,7 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
policy.n = 30;
|
policy.n = 30;
|
||||||
policy.distance = 800;
|
policy.distance = 800;
|
||||||
policy.pitch = 1.1;
|
policy.pitch = 1.1;
|
||||||
|
policy.ydist = 500;
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_OKARINA_TAG, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_OKARINA_TAG, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "Pushable Block", accessible_test, 0);
|
ActorAccessibility_InitPolicy(&policy, "Pushable Block", accessible_test, 0);
|
||||||
policy.n = 30;
|
policy.n = 30;
|
||||||
|
@ -876,6 +916,10 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
policy.distance = 1000;
|
policy.distance = 1000;
|
||||||
policy.ydist = 1000;
|
policy.ydist = 1000;
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_EN_GOMA, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_GOMA, policy);
|
||||||
|
ActorAccessibility_InitPolicy(&policy, "redead", NULL, NA_SE_EN_REDEAD_CRY);
|
||||||
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_RD, policy);
|
||||||
|
ActorAccessibility_InitPolicy(&policy, "Beamos", NULL, NA_SE_EN_BIMOS_AIM);
|
||||||
|
ActorAccessibility_AddSupportedActor(ACTOR_EN_VM, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "heart canister", accessible_en_pickups, 0);
|
ActorAccessibility_InitPolicy(&policy, "heart canister", accessible_en_pickups, 0);
|
||||||
ActorAccessibility_AddSupportedActor(ACTOR_ITEM_B_HEART, policy);
|
ActorAccessibility_AddSupportedActor(ACTOR_ITEM_B_HEART, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "Goma", accessible_goma, 0);
|
ActorAccessibility_InitPolicy(&policy, "Goma", accessible_goma, 0);
|
||||||
|
@ -915,6 +959,10 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
policy.distance = 200;
|
policy.distance = 200;
|
||||||
policy.pitch = 0.5;
|
policy.pitch = 0.5;
|
||||||
ActorAccessibility_AddSupportedActor(VA_SPIKE, policy);
|
ActorAccessibility_AddSupportedActor(VA_SPIKE, policy);
|
||||||
|
ActorAccessibility_InitPolicy(&policy, "Stick Burnout Warning", accessible_stick_warning, 0);
|
||||||
|
policy.n = 1;
|
||||||
|
policy.runsAlways = true;
|
||||||
|
ActorAccessibility_AddSupportedActor(VA_STICK_WARNING, policy);
|
||||||
ActorAccessibility_InitPolicy(&policy, "System general helper", accessible_va_general_helper, 0);
|
ActorAccessibility_InitPolicy(&policy, "System general helper", accessible_va_general_helper, 0);
|
||||||
policy.n = 1;
|
policy.n = 1;
|
||||||
policy.cleanupUserData = accessible_general_helper_cleanup;
|
policy.cleanupUserData = accessible_general_helper_cleanup;
|
||||||
|
@ -941,7 +989,7 @@ void accessible_audio_compass(AccessibleActor* actor) {
|
||||||
// Now place the actor.
|
// Now place the actor.
|
||||||
ActorAccessibility_AddVirtualActor(list, VA_GENERAL_HELPER, { { 0.0, 0.0, 0.0 }, { 0, 0, 0 } });
|
ActorAccessibility_AddVirtualActor(list, VA_GENERAL_HELPER, { { 0.0, 0.0, 0.0 }, { 0, 0, 0 } });
|
||||||
ActorAccessibility_AddVirtualActor(list, VA_AUDIO_COMPASS, { { 0.0, 0.0, 0.0}, { 0, 0, 0 } });
|
ActorAccessibility_AddVirtualActor(list, VA_AUDIO_COMPASS, { { 0.0, 0.0, 0.0}, { 0, 0, 0 } });
|
||||||
|
ActorAccessibility_AddVirtualActor(list, VA_STICK_WARNING, { { 0.0, 0.0, 0.0 }, { 0, 0, 0 } });
|
||||||
list = ActorAccessibility_GetVirtualActorList(85, 0); // Kokiri Forest
|
list = ActorAccessibility_GetVirtualActorList(85, 0); // Kokiri Forest
|
||||||
ActorAccessibility_AddVirtualActor(list, VA_CRAWLSPACE, { { -784.0, 120.0, 1046.00 }, { 0, 14702, 0 } });
|
ActorAccessibility_AddVirtualActor(list, VA_CRAWLSPACE, { { -784.0, 120.0, 1046.00 }, { 0, 14702, 0 } });
|
||||||
ActorAccessibility_AddVirtualActor(list, VA_MARKER, { { 2146.5, 1.0, -142.8 } });
|
ActorAccessibility_AddVirtualActor(list, VA_MARKER, { { 2146.5, 1.0, -142.8 } });
|
||||||
|
|
|
@ -395,7 +395,7 @@ int ActorAccessibility_GetRandomStartingFrameCount(int min, int max) {
|
||||||
if (!actor->policy.runsAlways && actor->xyzDistToPlayer > actor->policy.distance) {
|
if (!actor->policy.runsAlways && actor->xyzDistToPlayer > actor->policy.distance) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (actor->isDrawn == 0)
|
if (actor->isDrawn == 0 && actor->actor->id != 406 && actor->actor->id != 302)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (actor->policy.callback != NULL)
|
if (actor->policy.callback != NULL)
|
||||||
|
|
|
@ -147,6 +147,7 @@ typedef enum {
|
||||||
VA_SPIKE,
|
VA_SPIKE,
|
||||||
VA_GENERAL_HELPER, // Room announcements, action icon and other misc help.
|
VA_GENERAL_HELPER, // Room announcements, action icon and other misc help.
|
||||||
VA_AUDIO_COMPASS,//Points north.
|
VA_AUDIO_COMPASS,//Points north.
|
||||||
|
VA_STICK_WARNING,//beep when stick is about to burn out.
|
||||||
|
|
||||||
VA_FINAL,
|
VA_FINAL,
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue