From c7ca9d0d7b7fd0c207467022cdaad106acf85ae7 Mon Sep 17 00:00:00 2001 From: 20k Date: Sun, 22 Jan 2023 13:56:33 +0000 Subject: [PATCH] reverse squad iteration delete --- library/modules/Buildings.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/library/modules/Buildings.cpp b/library/modules/Buildings.cpp index 9d525d96b..a17c79de2 100644 --- a/library/modules/Buildings.cpp +++ b/library/modules/Buildings.cpp @@ -1344,14 +1344,13 @@ static void delete_civzone_squad_links(df::building* bld) //if this is null, something has gone just *terribly* wrong if (squad) { - for (int i=0; i < (int)squad->rooms.size(); i++) + for (int i=(int)squad->rooms.size() - 1; i >= 0; i--) { if (squad->rooms[i]->building_id == bld->id) { auto room = squad->rooms[i]; squad->rooms.erase(squad->rooms.begin() + i); delete room; - i--; } } }