Clear all room data
Restoring a level cleared residence pointer from those subrooms which were in the restored level, but if the previous level had more subrooms, those pointers weren't cleared. This caused weird problems when a shopkeeper data was looked up based on the subroom number. Just to be safe, clear all the room data when freeing the level.
This commit is contained in:
@@ -523,6 +523,9 @@ savelev(NHFILE* nhfp, xchar lev)
|
||||
g.level.buriedobjlist = 0;
|
||||
g.billobjs = 0;
|
||||
stairway_free_all();
|
||||
(void) memset(g.rooms, 0, sizeof(g.rooms));
|
||||
g.nroom = g.nsubroom = 0;
|
||||
g.rooms[0].hx = g.subrooms[0].hx = -1;
|
||||
/* level.bonesinfo = 0; -- handled by savecemetery() */
|
||||
}
|
||||
save_engravings(nhfp);
|
||||
|
||||
Reference in New Issue
Block a user