summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorglx <glx@openttd.org>2019-12-17 01:35:29 +0100
committerNiels Martin Hansen <nielsm@indvikleren.dk>2019-12-21 20:13:03 +0100
commit9892d90b26db4dfe97ec7baeb89e43acb53a178e (patch)
treec4cbee86584e50e85c419aed6aa912fe1b6ebf37
parent41232f18c18c9ca444282a9e959b7dfd6c93eff5 (diff)
downloadopenttd-9892d90b26db4dfe97ec7baeb89e43acb53a178e.tar.xz
Codechange: Replace order related FOR_ALL with range-based for loops
-rw-r--r--src/order_backup.cpp28
-rw-r--r--src/order_backup.h13
-rw-r--r--src/order_base.h8
-rw-r--r--src/saveload/afterload.cpp16
-rw-r--r--src/saveload/order_sl.cpp26
-rw-r--r--src/saveload/station_sl.cpp3
-rw-r--r--src/saveload/waypoint_sl.cpp3
-rw-r--r--src/station_cmd.cpp3
8 files changed, 27 insertions, 73 deletions
diff --git a/src/order_backup.cpp b/src/order_backup.cpp
index c47236332..d537d8ce5 100644
--- a/src/order_backup.cpp
+++ b/src/order_backup.cpp
@@ -102,8 +102,7 @@ void OrderBackup::DoRestore(Vehicle *v)
{
/* Don't use reset as that broadcasts over the network to reset the variable,
* which is what we are doing at the moment. */
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
if (ob->user == user) delete ob;
}
if (OrderBackup::CanAllocateItem()) {
@@ -119,8 +118,7 @@ void OrderBackup::DoRestore(Vehicle *v)
*/
/* static */ void OrderBackup::Restore(Vehicle *v, uint32 user)
{
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
if (v->tile != ob->tile || ob->user != user) continue;
ob->DoRestore(v);
@@ -136,8 +134,7 @@ void OrderBackup::DoRestore(Vehicle *v)
*/
/* static */ void OrderBackup::ResetOfUser(TileIndex tile, uint32 user)
{
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
if (ob->user == user && (ob->tile == tile || tile == INVALID_TILE)) delete ob;
}
}
@@ -169,9 +166,8 @@ CommandCost CmdClearOrderBackup(TileIndex tile, DoCommandFlag flags, uint32 p1,
{
assert(_network_server);
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
- /* If it's not an backup of us, so ignore it. */
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
+ /* If it's not a backup of us, ignore it. */
if (ob->user != user) continue;
DoCommandP(0, 0, user, CMD_CLEAR_ORDER_BACKUP);
@@ -193,9 +189,8 @@ CommandCost CmdClearOrderBackup(TileIndex tile, DoCommandFlag flags, uint32 p1,
* default is just plain and simple: 0. */
uint32 user = _networking && !_network_server ? _network_own_client_id : CLIENT_ID_SERVER;
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
- /* If it's not an backup of us, so ignore it. */
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
+ /* If it's not a backup of us, ignore it. */
if (ob->user != user) continue;
/* If it's not for our chosen tile either, ignore it. */
if (t != INVALID_TILE && t != ob->tile) continue;
@@ -219,8 +214,7 @@ CommandCost CmdClearOrderBackup(TileIndex tile, DoCommandFlag flags, uint32 p1,
*/
/* static */ void OrderBackup::ClearGroup(GroupID group)
{
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
if (ob->group == group) ob->group = DEFAULT_GROUP;
}
}
@@ -235,8 +229,7 @@ CommandCost CmdClearOrderBackup(TileIndex tile, DoCommandFlag flags, uint32 p1,
/* static */ void OrderBackup::ClearVehicle(const Vehicle *v)
{
assert(v != nullptr);
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
if (ob->clone == v) {
/* Get another item in the shared list. */
ob->clone = (v->FirstShared() == v) ? v->NextShared() : v->FirstShared();
@@ -256,8 +249,7 @@ CommandCost CmdClearOrderBackup(TileIndex tile, DoCommandFlag flags, uint32 p1,
*/
/* static */ void OrderBackup::RemoveOrder(OrderType type, DestinationID destination, bool hangar)
{
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
for (Order *order = ob->orders; order != nullptr; order = order->next) {
OrderType ot = order->GetType();
if (ot == OT_GOTO_DEPOT && (order->GetDepotActionType() & ODATFB_NEAREST_DEPOT) != 0) continue;
diff --git a/src/order_backup.h b/src/order_backup.h
index 6df984277..5d1dcef50 100644
--- a/src/order_backup.h
+++ b/src/order_backup.h
@@ -64,17 +64,4 @@ public:
static void RemoveOrder(OrderType type, DestinationID destination, bool hangar);
};
-/**
- * Iterator over all order backups from a given ID.
- * @param var The variable to iterate with.
- * @param start The start of the iteration.
- */
-#define FOR_ALL_ORDER_BACKUPS_FROM(var, start) FOR_ALL_ITEMS_FROM(OrderBackup, order_backup_index, var, start)
-
-/**
- * Iterator over all order backups.
- * @param var The variable to iterate with.
- */
-#define FOR_ALL_ORDER_BACKUPS(var) FOR_ALL_ORDER_BACKUPS_FROM(var, 0)
-
#endif /* ORDER_BACKUP_H */
diff --git a/src/order_base.h b/src/order_base.h
index 34459cb5d..347adbcee 100644
--- a/src/order_base.h
+++ b/src/order_base.h
@@ -390,14 +390,6 @@ public:
void DebugCheckSanity() const;
};
-#define FOR_ALL_ORDERS_FROM(var, start) FOR_ALL_ITEMS_FROM(Order, order_index, var, start)
-#define FOR_ALL_ORDERS(var) FOR_ALL_ORDERS_FROM(var, 0)
-
-
#define FOR_VEHICLE_ORDERS(v, order) for (order = (v->orders.list == nullptr) ? nullptr : v->orders.list->GetFirstOrder(); order != nullptr; order = order->next)
-
-#define FOR_ALL_ORDER_LISTS_FROM(var, start) FOR_ALL_ITEMS_FROM(OrderList, orderlist_index, var, start)
-#define FOR_ALL_ORDER_LISTS(var) FOR_ALL_ORDER_LISTS_FROM(var, 0)
-
#endif /* ORDER_BASE_H */
diff --git a/src/saveload/afterload.cpp b/src/saveload/afterload.cpp
index ec701f67a..39ee5b845 100644
--- a/src/saveload/afterload.cpp
+++ b/src/saveload/afterload.cpp
@@ -1451,10 +1451,9 @@ bool AfterLoadGame()
/* Setting no refit flags to all orders in savegames from before refit in orders were added */
if (IsSavegameVersionBefore(SLV_36)) {
- Order *order;
Vehicle *v;
- FOR_ALL_ORDERS(order) {
+ for (Order *order : Order::Iterate()) {
order->SetRefit(CT_NO_REFIT);
}
@@ -1724,8 +1723,7 @@ bool AfterLoadGame()
if (IsSavegameVersionBefore(SLV_93)) {
/* Rework of orders. */
- Order *order;
- FOR_ALL_ORDERS(order) order->ConvertFromOldSavegame();
+ for (Order *order : Order::Iterate()) order->ConvertFromOldSavegame();
Vehicle *v;
FOR_ALL_VEHICLES(v) {
@@ -1736,13 +1734,13 @@ bool AfterLoadGame()
v->current_order.ConvertFromOldSavegame();
if (v->type == VEH_ROAD && v->IsPrimaryVehicle() && v->FirstShared() == v) {
+ Order* order;
FOR_VEHICLE_ORDERS(v, order) order->SetNonStopType(ONSF_NO_STOP_AT_INTERMEDIATE_STATIONS);
}
}
} else if (IsSavegameVersionBefore(SLV_94)) {
/* Unload and transfer are now mutual exclusive. */
- Order *order;
- FOR_ALL_ORDERS(order) {
+ for (Order *order : Order::Iterate()) {
if ((order->GetUnloadType() & (OUFB_UNLOAD | OUFB_TRANSFER)) == (OUFB_UNLOAD | OUFB_TRANSFER)) {
order->SetUnloadType(OUFB_TRANSFER);
order->SetLoadType(OLFB_NO_LOAD);
@@ -2160,8 +2158,7 @@ bool AfterLoadGame()
/* Trains could now stop in a specific location. */
if (IsSavegameVersionBefore(SLV_117)) {
- Order *o;
- FOR_ALL_ORDERS(o) {
+ for (Order *o : Order::Iterate()) {
if (o->IsType(OT_GOTO_STATION)) o->SetStopLocation(OSL_PLATFORM_FAR_END);
}
}
@@ -3014,8 +3011,7 @@ bool AfterLoadGame()
#ifndef DEBUG_DUMP_COMMANDS
/* Note: We cannot use CleanPool since that skips part of the destructor
* and then leaks un-reachable Orders in the order pool. */
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
delete ob;
}
#endif
diff --git a/src/saveload/order_sl.cpp b/src/saveload/order_sl.cpp
index 80b0aa871..0a9fa2a8c 100644
--- a/src/saveload/order_sl.cpp
+++ b/src/saveload/order_sl.cpp
@@ -123,9 +123,7 @@ const SaveLoad *GetOrderDescription()
static void Save_ORDR()
{
- Order *order;
-
- FOR_ALL_ORDERS(order) {
+ for (Order *order : Order::Iterate()) {
SlSetArrayIndex(order->index);
SlObject(order, GetOrderDescription());
}
@@ -166,8 +164,8 @@ static void Load_ORDR()
}
/* Update all the next pointer */
- Order *o;
- FOR_ALL_ORDERS(o) {
+ for (Order *o : Order::Iterate()) {
+ size_t order_index = o->index;
/* Delete invalid orders */
if (o->IsType(OT_NOTHING)) {
delete o;
@@ -197,9 +195,7 @@ static void Ptrs_ORDR()
/* Orders from old savegames have pointers corrected in Load_ORDR */
if (IsSavegameVersionBefore(SLV_5, 2)) return;
- Order *o;
-
- FOR_ALL_ORDERS(o) {
+ for (Order *o : Order::Iterate()) {
SlObject(o, GetOrderDescription());
}
}
@@ -216,9 +212,7 @@ const SaveLoad *GetOrderListDescription()
static void Save_ORDL()
{
- OrderList *list;
-
- FOR_ALL_ORDER_LISTS(list) {
+ for (OrderList *list : OrderList::Iterate()) {
SlSetArrayIndex(list->index);
SlObject(list, GetOrderListDescription());
}
@@ -238,9 +232,7 @@ static void Load_ORDL()
static void Ptrs_ORDL()
{
- OrderList *list;
-
- FOR_ALL_ORDER_LISTS(list) {
+ for (OrderList *list : OrderList::Iterate()) {
SlObject(list, GetOrderListDescription());
}
}
@@ -277,8 +269,7 @@ static void Save_BKOR()
* normal games this information isn't needed. */
if (!_networking || !_network_server) return;
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
SlSetArrayIndex(ob->index);
SlObject(ob, GetOrderBackupDescription());
}
@@ -297,8 +288,7 @@ void Load_BKOR()
static void Ptrs_BKOR()
{
- OrderBackup *ob;
- FOR_ALL_ORDER_BACKUPS(ob) {
+ for (OrderBackup *ob : OrderBackup::Iterate()) {
SlObject(ob, GetOrderBackupDescription());
}
}
diff --git a/src/saveload/station_sl.cpp b/src/saveload/station_sl.cpp
index 7b091e2f1..08fc07157 100644
--- a/src/saveload/station_sl.cpp
+++ b/src/saveload/station_sl.cpp
@@ -40,8 +40,7 @@ static void UpdateWaypointOrder(Order *o)
void MoveBuoysToWaypoints()
{
/* Buoy orders become waypoint orders */
- OrderList *ol;
- FOR_ALL_ORDER_LISTS(ol) {
+ for (OrderList *ol : OrderList::Iterate()) {
VehicleType vt = ol->GetFirstSharedVehicle()->type;
if (vt != VEH_SHIP && vt != VEH_TRAIN) continue;
diff --git a/src/saveload/waypoint_sl.cpp b/src/saveload/waypoint_sl.cpp
index 37b221e32..ddb11082e 100644
--- a/src/saveload/waypoint_sl.cpp
+++ b/src/saveload/waypoint_sl.cpp
@@ -130,8 +130,7 @@ void MoveWaypointsToBaseStations()
}
/* Update the orders of vehicles */
- OrderList *ol;
- FOR_ALL_ORDER_LISTS(ol) {
+ for (OrderList *ol : OrderList::Iterate()) {
if (ol->GetFirstSharedVehicle()->type != VEH_TRAIN) continue;
for (Order *o = ol->GetFirstOrder(); o != nullptr; o = o->next) UpdateWaypointOrder(o);
diff --git a/src/station_cmd.cpp b/src/station_cmd.cpp
index 126e6fd9d..4b2acb2db 100644
--- a/src/station_cmd.cpp
+++ b/src/station_cmd.cpp
@@ -3664,9 +3664,8 @@ void DeleteStaleLinks(Station *from)
if (auto_distributed) {
/* Have all vehicles refresh their next hops before deciding to
* remove the node. */
- OrderList *l;
std::vector<Vehicle *> vehicles;
- FOR_ALL_ORDER_LISTS(l) {
+ for (OrderList *l : OrderList::Iterate()) {
bool found_from = false;
bool found_to = false;
for (Order *order = l->GetFirstOrder(); order != nullptr; order = order->next) {