diff options
-rw-r--r-- | src/depot_gui.cpp | 29 | ||||
-rw-r--r-- | src/train_gui.cpp | 4 | ||||
-rw-r--r-- | src/vehicle.cpp | 8 | ||||
-rw-r--r-- | src/vehicle_func.h | 3 |
4 files changed, 23 insertions, 21 deletions
diff --git a/src/depot_gui.cpp b/src/depot_gui.cpp index 007c192ca..072c10659 100644 --- a/src/depot_gui.cpp +++ b/src/depot_gui.cpp @@ -144,16 +144,14 @@ void CcCloneVehicle(bool success, TileIndex tile, uint32 p1, uint32 p2) { if (!success) return; - Vehicle *v = GetVehicle(_new_vehicle_id); + const Vehicle *v = GetVehicle(_new_vehicle_id); ShowVehicleViewWindow(v); } -static void TrainDepotMoveVehicle(Vehicle *wagon, VehicleID sel, Vehicle *head) +static void TrainDepotMoveVehicle(const Vehicle *wagon, VehicleID sel, const Vehicle *head) { - Vehicle *v; - - v = GetVehicle(sel); + const Vehicle *v = GetVehicle(sel); if (v == wagon) return; @@ -397,8 +395,8 @@ struct DepotWindow : Window { } struct GetDepotVehiclePtData { - Vehicle *head; - Vehicle *wagon; + const Vehicle *head; + const Vehicle *wagon; }; enum DepotGUIAction { @@ -408,7 +406,7 @@ struct DepotWindow : Window { MODE_START_STOP, }; - DepotGUIAction GetVehicleFromDepotWndPt(int x, int y, Vehicle **veh, GetDepotVehiclePtData *d) const + DepotGUIAction GetVehicleFromDepotWndPt(int x, int y, const Vehicle **veh, GetDepotVehiclePtData *d) const { Vehicle **vl = this->vehicle_list; uint xt, row, xm = 0, ym = 0; @@ -454,7 +452,7 @@ struct DepotWindow : Window { switch (this->type) { case VEH_TRAIN: { - Vehicle *v = *veh; + const Vehicle *v = *veh; d->head = d->wagon = v; /* either pressed the flag or the number, but only when it's a loco */ @@ -501,7 +499,7 @@ struct DepotWindow : Window { void DepotClick(int x, int y) { GetDepotVehiclePtData gdvp = { NULL, NULL }; - Vehicle *v = NULL; + const Vehicle *v = NULL; DepotGUIAction mode = this->GetVehicleFromDepotWndPt(x, y, &v, &gdvp); /* share / copy orders */ @@ -879,7 +877,7 @@ struct DepotWindow : Window { { switch (widget) { case DEPOT_WIDGET_MATRIX: { - Vehicle *v = NULL; + const Vehicle *v = NULL; VehicleID sel = this->sel; this->sel = INVALID_VEHICLE; @@ -908,23 +906,20 @@ struct DepotWindow : Window { case DEPOT_WIDGET_SELL: case DEPOT_WIDGET_SELL_CHAIN: if (!this->IsWidgetDisabled(DEPOT_WIDGET_SELL) && this->sel != INVALID_VEHICLE) { - Vehicle *v; uint command; - int sell_cmd; - bool is_engine; if (this->IsWidgetDisabled(widget)) return; if (this->sel == INVALID_VEHICLE) return; this->HandleButtonClick(widget); - v = GetVehicle(this->sel); + const Vehicle *v = GetVehicle(this->sel); this->sel = INVALID_VEHICLE; this->SetDirty(); - sell_cmd = (v->type == VEH_TRAIN && (widget == DEPOT_WIDGET_SELL_CHAIN || _ctrl_pressed)) ? 1 : 0; + int sell_cmd = (v->type == VEH_TRAIN && (widget == DEPOT_WIDGET_SELL_CHAIN || _ctrl_pressed)) ? 1 : 0; - is_engine = (!(v->type == VEH_TRAIN && !IsFrontEngine(v))); + bool is_engine = (!(v->type == VEH_TRAIN && !IsFrontEngine(v))); if (is_engine) { _backup_orders_tile = v->tile; diff --git a/src/train_gui.cpp b/src/train_gui.cpp index d95d84dd6..3e516a4e3 100644 --- a/src/train_gui.cpp +++ b/src/train_gui.cpp @@ -28,8 +28,8 @@ void CcBuildWagon(bool success, TileIndex tile, uint32 p1, uint32 p2) if (!success) return; /* find a locomotive in the depot. */ - Vehicle *found = NULL; - Vehicle *v; + const Vehicle *found = NULL; + const Vehicle *v; FOR_ALL_VEHICLES(v) { if (v->type == VEH_TRAIN && IsFrontEngine(v) && v->tile == tile && diff --git a/src/vehicle.cpp b/src/vehicle.cpp index 8796eca34..ae77c96fd 100644 --- a/src/vehicle.cpp +++ b/src/vehicle.cpp @@ -58,7 +58,7 @@ #define GEN_HASH(x, y) ((GB((y), 6, 6) << 6) + GB((x), 7, 6)) VehicleID _vehicle_id_ctr_day; -Vehicle *_place_clicked_vehicle; +const Vehicle *_place_clicked_vehicle; VehicleID _new_vehicle_id; uint16 _returned_refit_capacity; @@ -531,6 +531,12 @@ Vehicle *GetLastVehicleInChain(Vehicle *v) return v; } +const Vehicle *GetLastVehicleInChain(const Vehicle *v) +{ + while (v->Next() != NULL) v = v->Next(); + return v; +} + uint CountVehiclesInChain(const Vehicle* v) { uint count = 0; diff --git a/src/vehicle_func.h b/src/vehicle_func.h index 9e5dceba5..b279e2b0c 100644 --- a/src/vehicle_func.h +++ b/src/vehicle_func.h @@ -24,6 +24,7 @@ typedef void *VehicleFromPosProc(Vehicle *v, void *data); void VehicleServiceInDepot(Vehicle *v); void VehiclePositionChanged(Vehicle *v); Vehicle *GetLastVehicleInChain(Vehicle *v); +const Vehicle *GetLastVehicleInChain(const Vehicle *v); uint CountVehiclesInChain(const Vehicle *v); bool IsEngineCountable(const Vehicle *v); void DeleteVehicleChain(Vehicle *v); @@ -173,7 +174,7 @@ bool EnsureNoVehicleOnGround(TileIndex tile); void StopAllVehicles(); extern VehicleID _vehicle_id_ctr_day; -extern Vehicle *_place_clicked_vehicle; +extern const Vehicle *_place_clicked_vehicle; extern VehicleID _new_vehicle_id; extern uint16 _returned_refit_capacity; |