diff --git a/level_test.c b/level_test.c index b3b0f73..c79c16b 100644 --- a/level_test.c +++ b/level_test.c @@ -44,6 +44,7 @@ int main(int argc, char** argv) load_sfx(&engine, "snd_step", PLAYER_STEP_SFX); load_sfx(&engine, "snd_dead", PLAYER_DEAD_SFX); load_sfx(&engine, "snd_drwg", PLAYER_DROWNING_SFX); + load_sfx(&engine, "snd_climb", PLAYER_CLIMB_SFX); load_sfx(&engine, "snd_mdestroy", METAL_DESTROY_SFX); load_sfx(&engine, "snd_wdestroy", WOOD_DESTROY_SFX); load_sfx(&engine, "snd_cland", WOOD_LAND_SFX); diff --git a/main.c b/main.c index 293df8b..22a15e0 100644 --- a/main.c +++ b/main.c @@ -52,6 +52,7 @@ int main(void) load_sfx(&engine, "snd_step", PLAYER_STEP_SFX); load_sfx(&engine, "snd_dead", PLAYER_DEAD_SFX); load_sfx(&engine, "snd_drwg", PLAYER_DROWNING_SFX); + load_sfx(&engine, "snd_climb", PLAYER_CLIMB_SFX); load_sfx(&engine, "snd_arrhit", ARROW_DESTROY_SFX); load_sfx(&engine, "snd_launch", ARROW_RELEASE_SFX); load_sfx(&engine, "snd_launch", BOMB_RELEASE_SFX); @@ -113,7 +114,6 @@ int main(void) float delta_time = fminf(frame_time, DT); update_scene(curr_scene, delta_time); - update_entity_manager(&curr_scene->ent_manager); // This is needed to advance time delta render_scene(curr_scene); update_sfx_list(&engine); diff --git a/scene_test.c b/scene_test.c index 1159f04..116de4c 100644 --- a/scene_test.c +++ b/scene_test.c @@ -68,6 +68,7 @@ int main(void) load_sfx(&engine, "snd_step", PLAYER_STEP_SFX); load_sfx(&engine, "snd_dead", PLAYER_DEAD_SFX); load_sfx(&engine, "snd_drwg", PLAYER_DROWNING_SFX); + load_sfx(&engine, "snd_climb", PLAYER_CLIMB_SFX); load_sfx(&engine, "snd_arrhit", ARROW_DESTROY_SFX); load_sfx(&engine, "snd_launch", ARROW_RELEASE_SFX); load_sfx(&engine, "snd_launch", BOMB_RELEASE_SFX); diff --git a/scenes/assets_tag.h b/scenes/assets_tag.h index 4c4587b..e842b70 100644 --- a/scenes/assets_tag.h +++ b/scenes/assets_tag.h @@ -23,6 +23,7 @@ typedef enum SFXTag { PLAYER_STEP_SFX, PLAYER_DEAD_SFX, PLAYER_DROWNING_SFX, + PLAYER_CLIMB_SFX, WATER_IN_SFX, WATER_OUT_SFX, WOOD_LAND_SFX, diff --git a/scenes/player_ent.c b/scenes/player_ent.c index e3ce5f6..4661a43 100644 --- a/scenes/player_ent.c +++ b/scenes/player_ent.c @@ -80,6 +80,11 @@ static void player_sfx_func(GameEngine_t* engine, Entity_t* ent) { play_sfx(engine, PLAYER_STEP_SFX); } } + + CTransform_t* p_ct = get_component(ent, CTRANSFORM_COMP_T); + if (p_spr->current_idx == SPR_PLAYER_LADDER && Vector2LengthSqr(p_ct->velocity) > 0.1) { + play_sfx_pitched(engine, PLAYER_CLIMB_SFX, p_spr->current_frame % 2 == 0 ? 1.0f : 0.75f ); + } } Entity_t* create_player(EntityManager_t* ent_manager)