(svn r6142) -Codechange: added WaypointID (sorry DV, couldn't splits it anymore)
-Codechange: introduced DestinationID, which is in fact an union of several types Used in Order struct, so no longer StationID is abused for all targets. Hangars are a big exception, as they use a station-id with GOTO_DEPOT (go figure)
This commit is contained in:
30
order_gui.c
30
order_gui.c
@@ -134,7 +134,7 @@ static void DrawOrdersWindow(Window *w)
|
||||
switch (order->type) {
|
||||
case OT_GOTO_STATION:
|
||||
SetDParam(1, StationOrderStrings[order->flags]);
|
||||
SetDParam(2, order->station);
|
||||
SetDParam(2, order->dest.station);
|
||||
break;
|
||||
|
||||
case OT_GOTO_DEPOT: {
|
||||
@@ -142,9 +142,9 @@ static void DrawOrdersWindow(Window *w)
|
||||
|
||||
if (v->type == VEH_Aircraft) {
|
||||
s = STR_GO_TO_AIRPORT_HANGAR;
|
||||
SetDParam(2, order->station);
|
||||
SetDParam(2, order->dest.depot);
|
||||
} else {
|
||||
SetDParam(2, GetDepot(order->station)->town_index);
|
||||
SetDParam(2, GetDepot(order->dest.depot)->town_index);
|
||||
|
||||
switch (v->type) {
|
||||
case VEH_Train: s = (order->flags & OF_NON_STOP) ? STR_880F_GO_NON_STOP_TO_TRAIN_DEPOT : STR_GO_TO_TRAIN_DEPOT; break;
|
||||
@@ -162,7 +162,7 @@ static void DrawOrdersWindow(Window *w)
|
||||
|
||||
case OT_GOTO_WAYPOINT:
|
||||
SetDParam(1, (order->flags & OF_NON_STOP) ? STR_GO_NON_STOP_TO_WAYPOINT : STR_GO_TO_WAYPOINT);
|
||||
SetDParam(2, order->station);
|
||||
SetDParam(2, order->dest.waypoint);
|
||||
break;
|
||||
|
||||
default: break;
|
||||
@@ -174,7 +174,7 @@ static void DrawOrdersWindow(Window *w)
|
||||
DrawString(2, y, str, color);
|
||||
} else {
|
||||
SetDParam(1, STR_INVALID_ORDER);
|
||||
SetDParam(2, order->station);
|
||||
SetDParam(2, order->dest.station);
|
||||
DrawString(2, y, str, color);
|
||||
}
|
||||
y += 10;
|
||||
@@ -205,7 +205,7 @@ static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile)
|
||||
if (IsRailDepot(tile)) {
|
||||
order.type = OT_GOTO_DEPOT;
|
||||
order.flags = OF_PART_OF_ORDERS;
|
||||
order.station = GetDepotByTile(tile)->index;
|
||||
order.dest.depot = GetDepotByTile(tile)->index;
|
||||
return order;
|
||||
}
|
||||
}
|
||||
@@ -215,7 +215,7 @@ static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile)
|
||||
if (GetRoadTileType(tile) == ROAD_TILE_DEPOT && v->type == VEH_Road && IsTileOwner(tile, _local_player)) {
|
||||
order.type = OT_GOTO_DEPOT;
|
||||
order.flags = OF_PART_OF_ORDERS;
|
||||
order.station = GetDepotByTile(tile)->index;
|
||||
order.dest.depot = GetDepotByTile(tile)->index;
|
||||
return order;
|
||||
}
|
||||
break;
|
||||
@@ -225,7 +225,7 @@ static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile)
|
||||
if (IsHangar(tile) && IsTileOwner(tile, _local_player)) {
|
||||
order.type = OT_GOTO_DEPOT;
|
||||
order.flags = OF_PART_OF_ORDERS;
|
||||
order.station = GetStationIndex(tile);
|
||||
order.dest.station = GetStationIndex(tile);
|
||||
return order;
|
||||
}
|
||||
break;
|
||||
@@ -238,7 +238,7 @@ static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile)
|
||||
|
||||
order.type = OT_GOTO_DEPOT;
|
||||
order.flags = OF_PART_OF_ORDERS;
|
||||
order.station = GetDepotByTile(tile < tile2 ? tile : tile2)->index;
|
||||
order.dest.depot = GetDepotByTile(tile < tile2 ? tile : tile2)->index;
|
||||
return order;
|
||||
}
|
||||
|
||||
@@ -254,7 +254,7 @@ static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile)
|
||||
IsRailWaypoint(tile)) {
|
||||
order.type = OT_GOTO_WAYPOINT;
|
||||
order.flags = 0;
|
||||
order.station = GetWaypointByTile(tile)->index;
|
||||
order.dest.waypoint = GetWaypointByTile(tile)->index;
|
||||
return order;
|
||||
}
|
||||
|
||||
@@ -272,7 +272,7 @@ static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile)
|
||||
if (st->facilities & facil) {
|
||||
order.type = OT_GOTO_STATION;
|
||||
order.flags = 0;
|
||||
order.station = st_index;
|
||||
order.dest.station = st_index;
|
||||
return order;
|
||||
}
|
||||
}
|
||||
@@ -281,7 +281,7 @@ static Order GetOrderCmdFromTile(const Vehicle *v, TileIndex tile)
|
||||
// not found
|
||||
order.type = OT_NOTHING;
|
||||
order.flags = 0;
|
||||
order.station = INVALID_STATION;
|
||||
order.dest.station = INVALID_STATION;
|
||||
return order;
|
||||
}
|
||||
|
||||
@@ -410,9 +410,9 @@ static void OrdersWndProc(Window *w, WindowEvent *e)
|
||||
TileIndex xy;
|
||||
|
||||
switch (ord->type) {
|
||||
case OT_GOTO_STATION: xy = GetStation(ord->station)->xy ; break;
|
||||
case OT_GOTO_DEPOT: xy = GetDepot(ord->station)->xy; break;
|
||||
case OT_GOTO_WAYPOINT: xy = GetWaypoint(ord->station)->xy; break;
|
||||
case OT_GOTO_STATION: xy = GetStation(ord->dest.station)->xy ; break;
|
||||
case OT_GOTO_DEPOT: xy = GetDepot(ord->dest.depot)->xy; break;
|
||||
case OT_GOTO_WAYPOINT: xy = GetWaypoint(ord->dest.waypoint)->xy; break;
|
||||
default: xy = 0; break;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user