aboutsummaryrefslogtreecommitdiff
path: root/engines/lab/allocroom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/lab/allocroom.cpp')
-rw-r--r--engines/lab/allocroom.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/engines/lab/allocroom.cpp b/engines/lab/allocroom.cpp
index 434a147d48..2d7016d3ee 100644
--- a/engines/lab/allocroom.cpp
+++ b/engines/lab/allocroom.cpp
@@ -97,7 +97,14 @@ static void freeRoom(uint16 RMarker) {
Rooms[RoomNum].SouthView = NULL;
Rooms[RoomNum].EastView = NULL;
Rooms[RoomNum].WestView = NULL;
- Rooms[RoomNum].RuleList = NULL;
+
+ RuleList *rules = Rooms[RoomNum].rules;
+ for (RuleList::iterator rule = rules->begin(); rule != rules->end(); rule++)
+ delete *rule;
+ Rooms[RoomNum].rules->clear();
+ delete Rooms[RoomNum].rules;
+ Rooms[RoomNum].rules = NULL;
+
Rooms[RoomNum].RoomMsg = NULL;
}