diff options
Diffstat (limited to 'src/client/map')
| -rw-r--r-- | src/client/map/mod.rs | 4 | ||||
| -rw-r--r-- | src/client/map/room_mark.rs | 6 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/client/map/mod.rs b/src/client/map/mod.rs index 27cafc4..9589e59 100644 --- a/src/client/map/mod.rs +++ b/src/client/map/mod.rs @@ -166,6 +166,10 @@ impl Map { pub fn rooms(&self) -> &StableVec<RoomMark> { &self.rooms } + /// Get a room with the given id mutably, in case it exists. + pub fn get_room_mut(&mut self, id: usize) -> Option<&mut RoomMark> { + self.rooms.get_mut(id) + } /// Get the walls of this map. pub fn walls(&self) -> &StableVec<WallMark> { diff --git a/src/client/map/room_mark.rs b/src/client/map/room_mark.rs index a9777fb..5c0ca98 100644 --- a/src/client/map/room_mark.rs +++ b/src/client/map/room_mark.rs @@ -29,6 +29,12 @@ impl RoomMark { } } + /// Replace the room this mark describes with the new room. + pub fn set_room(&mut self, room: Room) { + self.room = room; + self.retriangulate(); + } + /* When the internal polygon changes, it must be retriangulated to be drawn on the screen * properly, so this function must be called any time that happens. */ |
