diff options
Diffstat (limited to 'engines/lab/allocroom.cpp')
-rw-r--r-- | engines/lab/allocroom.cpp | 9 |
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; } |