From 2cc5b468cfd4c28bf1ad17ef1b3600c3d42f8b83 Mon Sep 17 00:00:00 2001 From: troido Date: Sat, 4 Apr 2020 14:01:17 +0200 Subject: listen to sounds in the world --- src/worldmessages.rs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) (limited to 'src/worldmessages.rs') 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)>; pub type HealthMessage = (i64, i64); pub type InventoryMessage = Vec; pub type GroundMessage = Vec; +pub type SoundMessage = Vec<(Option, String)>; #[derive(Debug, Clone, PartialEq, Eq, Hash, Serialize)] pub struct FieldMessage { -- cgit