From 7262cfc53b4af978d6db1b91e3143200f906587f Mon Sep 17 00:00:00 2001 From: troido Date: Sun, 23 Feb 2020 01:18:17 +0100 Subject: rooms have named locations to be used by portals --- src/componentwrapper.rs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/componentwrapper.rs') diff --git a/src/componentwrapper.rs b/src/componentwrapper.rs index fb2a80a..27e0783 100644 --- a/src/componentwrapper.rs +++ b/src/componentwrapper.rs @@ -2,7 +2,7 @@ use std::collections::HashMap; use specs::Builder; -use crate::{PlayerId, RoomId, Sprite}; +use crate::{PlayerId, RoomId, Sprite, playerstate::RoomPos}; use crate::components::{Visible, Blocking, Player, Floor, Item, Inventory, Health, Serialise, RoomExit}; use crate::parameter::{Parameter, ParameterType}; @@ -98,7 +98,16 @@ components!( Inventory (capacity: Int) {Inventory{items: Vec::new(), capacity: capacity as usize}}; Health (health: Int, maxhealth: Int) {Health{health, maxhealth}}; Serialise (template: Template) {Serialise{template}}; - RoomExit (destination: String) {RoomExit{destination: RoomId::from_str(&destination)}}; + RoomExit (destination: String, dest_pos: String) { + RoomExit { + destination: RoomId::from_str(&destination), + dest_pos: if dest_pos.is_empty() { + RoomPos::Unknown + } else { + RoomPos::Name(dest_pos) + } + } + }; ); -- cgit