summaryrefslogtreecommitdiff
path: root/src/worldmessages.rs
diff options
context:
space:
mode:
authortroido <troido@protonmail.com>2020-04-04 14:01:17 +0200
committertroido <troido@protonmail.com>2020-04-04 14:01:17 +0200
commit2cc5b468cfd4c28bf1ad17ef1b3600c3d42f8b83 (patch)
tree835e67143e56fafef795e320ce8fc5d50cb9cc6c /src/worldmessages.rs
parent0b17829846adf9482b460e4cc616382ede1df6dd (diff)
listen to sounds in the world
Diffstat (limited to 'src/worldmessages.rs')
-rw-r--r--src/worldmessages.rs18
1 files changed, 10 insertions, 8 deletions
diff --git a/src/worldmessages.rs b/src/worldmessages.rs
index 75d8b33..0ca72fa 100644
--- a/src/worldmessages.rs
+++ b/src/worldmessages.rs
@@ -9,7 +9,7 @@ use crate::{
};
macro_rules! worldmessages {
- ($($name: ident, $typ: ident, $strname: expr);*;) => {
+ ($($name: ident, $typ: ident, $strname: expr, $filter: expr);*;) => {
#[derive(Debug, Clone, Default, PartialEq, Eq)]
pub struct WorldMessage {
@@ -22,7 +22,7 @@ macro_rules! worldmessages {
pub fn remove_old(&mut self, previous: &WorldMessage){
$(
- if self.$name == previous.$name {
+ if $filter && self.$name == previous.$name {
self.$name = None;
}
)*
@@ -54,12 +54,13 @@ macro_rules! worldmessages {
}
worldmessages!(
- field, FieldMessage, "field";
- pos, Pos, "playerpos";
- change, ChangeMessage, "changecells";
- inventory, InventoryMessage, "inventory";
- health, HealthMessage, "health";
- ground, GroundMessage, "ground";
+ field, FieldMessage, "field", true;
+ pos, Pos, "playerpos", true;
+ change, ChangeMessage, "changecells", true;
+ inventory, InventoryMessage, "inventory", true;
+ health, HealthMessage, "health", true;
+ ground, GroundMessage, "ground", true;
+ sounds, SoundMessage, "messages", false;
);
@@ -67,6 +68,7 @@ pub type ChangeMessage = Vec<(Pos, Vec<Sprite>)>;
pub type HealthMessage = (i64, i64);
pub type InventoryMessage = Vec<String>;
pub type GroundMessage = Vec<String>;
+pub type SoundMessage = Vec<(Option<String>, String)>;
#[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize)]
pub struct FieldMessage {