From 2ae4b0ff77a2b2be2c485ac3ba6c1ef3facb874c Mon Sep 17 00:00:00 2001 From: Paweł Redman Date: Mon, 26 Mar 2018 13:33:49 +0200 Subject: Basic audio system + firing sound. --- src/game/assets.cpp | 2 ++ src/game/game.hpp | 6 ++++++ src/game/units.cpp | 5 +++++ 3 files changed, 13 insertions(+) (limited to 'src/game') diff --git a/src/game/assets.cpp b/src/game/assets.cpp index 1aed662..ef7be9b 100644 --- a/src/game/assets.cpp +++ b/src/game/assets.cpp @@ -40,6 +40,8 @@ void load(void) soldier.legs_walking.load("assets/units/soldier/legs_walking", 2, 2); soldier.dead.load("assets/units/soldier/dead_", 1); + soldier.fire.load("assets/units/soldier/fire.ogg"); + spider.idle.load("assets/units/spider/idle", 2, 2, 2); spider.walking.load("assets/units/spider/walking", 2, 2, 2); spider.dead.load("assets/units/spider/dead_", 1); diff --git a/src/game/game.hpp b/src/game/game.hpp index 0143edb..85e3849 100644 --- a/src/game/game.hpp +++ b/src/game/game.hpp @@ -54,6 +54,8 @@ namespace game { render::animated_texture_t body_panic; render::oriented_sprite_4M2_t legs_idle, legs_walking; render::animated_texture_t dead; + + audio::sound_t fire; } soldier_assets_t; typedef struct { @@ -194,6 +196,10 @@ namespace game { die_t hit_die; } cs; + struct { + audio::sound_t *attack = NULL; + } sounds; + bool dead = false; double death_time = -INFINITY; int health = 1, max_health = 1; diff --git a/src/game/units.cpp b/src/game/units.cpp index d072f20..edb41ec 100644 --- a/src/game/units.cpp +++ b/src/game/units.cpp @@ -221,6 +221,9 @@ void unit_t::try_attack(unit_t *target) size_t hit_roll; size_t dmg_roll; + if (sounds.attack) + sounds.attack->play(); + ss << name << " " << text::get(text::UNIT_ATTACK) << " " << target->name << ": "; hit_roll = game->roll(die_t(20)); @@ -300,6 +303,8 @@ unit_soldier_t::unit_soldier_t(game::state_t *game) : unit_t(game, UNIT_SOLDIER) health = max_health = 20; cs.armor_class = 10; cs.hit_die = die_t(8); + + sounds.attack = &assets::soldier.fire; } void unit_soldier_t::check_area(void) -- cgit