summaryrefslogtreecommitdiff
path: root/src/game
diff options
context:
space:
mode:
authorPaweł Redman <pawel.redman@gmail.com>2018-03-26 13:33:49 +0200
committerPaweł Redman <pawel.redman@gmail.com>2018-03-26 13:33:49 +0200
commit2ae4b0ff77a2b2be2c485ac3ba6c1ef3facb874c (patch)
treee810997d58165e41eb4225a522d9d8886849331c /src/game
parent680ce5519c24dd0fa87ae85dd824000e915974b0 (diff)
Basic audio system + firing sound.
Diffstat (limited to 'src/game')
-rw-r--r--src/game/assets.cpp2
-rw-r--r--src/game/game.hpp6
-rw-r--r--src/game/units.cpp5
3 files changed, 13 insertions, 0 deletions
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)