Fix: Deleting towns did not check for waypoints referencing the town

This commit is contained in:
Jonathan G Rennison
2023-11-28 21:59:00 +00:00
committed by rubidium42
parent 7b0afec11f
commit 8437b20fed

View File

@@ -17,6 +17,7 @@
#include "command_func.h" #include "command_func.h"
#include "industry.h" #include "industry.h"
#include "station_base.h" #include "station_base.h"
#include "waypoint_base.h"
#include "station_kdtree.h" #include "station_kdtree.h"
#include "company_base.h" #include "company_base.h"
#include "news_func.h" #include "news_func.h"
@@ -3040,6 +3041,11 @@ CommandCost CmdDeleteTown(DoCommandFlag flags, TownID town_id)
} }
} }
/* Waypoints refer to towns. */
for (const Waypoint *wp : Waypoint::Iterate()) {
if (wp->town == t) return CMD_ERROR;
}
/* Depots refer to towns. */ /* Depots refer to towns. */
for (const Depot *d : Depot::Iterate()) { for (const Depot *d : Depot::Iterate()) {
if (d->town == t) return CMD_ERROR; if (d->town == t) return CMD_ERROR;