From 9f5f4e59cdc9a9a8225131c7a007acb009016dfb Mon Sep 17 00:00:00 2001 From: bjarni Date: Sun, 27 Apr 2008 18:05:48 +0000 Subject: (svn r12912) -Codechange: overloaded ChangeVehicleViewWindow() so each argument can be either a Vehicle pointer or a VehicleID --- src/vehicle_gui.cpp | 29 ++++++++++++++--------------- src/vehicle_gui.h | 23 +++++++++++++++++++++-- 2 files changed, 35 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/vehicle_gui.cpp b/src/vehicle_gui.cpp index 55f824a97..71e3071e5 100644 --- a/src/vehicle_gui.cpp +++ b/src/vehicle_gui.cpp @@ -731,40 +731,39 @@ void InitializeGUI() /** Assigns an already open vehicle window to a new vehicle. * Assigns an already open vehicle window to a new vehicle. If the vehicle got * any sub window open (orders and so on) it will change owner too. - * @param *from_v the current owner of the window - * @param *to_v the new owner of the window + * @param from_index the current owner of the window + * @param to_index the new owner of the window */ -void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v) +void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_index) { - Window *w; + Window *w = FindWindowById(WC_VEHICLE_VIEW, from_index); - w = FindWindowById(WC_VEHICLE_VIEW, from_v->index); if (w != NULL) { - w->window_number = to_v->index; - WP(w, vp_d).follow_vehicle = to_v->index; + w->window_number = to_index; + WP(w, vp_d).follow_vehicle = to_index; SetWindowDirty(w); - w = FindWindowById(WC_VEHICLE_ORDERS, from_v->index); + w = FindWindowById(WC_VEHICLE_ORDERS, from_index); if (w != NULL) { - w->window_number = to_v->index; + w->window_number = to_index; SetWindowDirty(w); } - w = FindWindowById(WC_VEHICLE_REFIT, from_v->index); + w = FindWindowById(WC_VEHICLE_REFIT, from_index); if (w != NULL) { - w->window_number = to_v->index; + w->window_number = to_index; SetWindowDirty(w); } - w = FindWindowById(WC_VEHICLE_DETAILS, from_v->index); + w = FindWindowById(WC_VEHICLE_DETAILS, from_index); if (w != NULL) { - w->window_number = to_v->index; + w->window_number = to_index; SetWindowDirty(w); } - w = FindWindowById(WC_VEHICLE_TIMETABLE, from_v->index); + w = FindWindowById(WC_VEHICLE_TIMETABLE, from_index); if (w != NULL) { - w->window_number = to_v->index; + w->window_number = to_index; SetWindowDirty(w); } } diff --git a/src/vehicle_gui.h b/src/vehicle_gui.h index e10ed2c18..a64264069 100644 --- a/src/vehicle_gui.h +++ b/src/vehicle_gui.h @@ -10,6 +10,7 @@ #include "order_type.h" #include "station_type.h" #include "engine_type.h" +#include "vehicle_base.h" void DrawVehicleProfitButton(const Vehicle *v, int x, int y); void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order); @@ -80,8 +81,6 @@ void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection); void ShowBuildVehicleWindow(TileIndex tile, VehicleType type); -void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v); - uint ShowAdditionalText(int x, int y, uint w, EngineID engine); uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine); @@ -94,6 +93,26 @@ void DrawSmallOrderList(const Vehicle *v, int x, int y); void DrawVehicleImage(const Vehicle *v, int x, int y, VehicleID selection, int count, int skip); + +/* ChangeVehicleViewWindow() moves all windows for one vehicle to another vehicle. + * For ease of use it can be called with both Vehicle pointers and VehicleIDs. */ +void ChangeVehicleViewWindow(VehicleID from_index, VehicleID to_index); + +static inline void ChangeVehicleViewWindow(const Vehicle *from_v, VehicleID to_index) +{ + ChangeVehicleViewWindow(from_v->index, to_index); +} + +static inline void ChangeVehicleViewWindow(VehicleID from_index, const Vehicle *to_v) +{ + ChangeVehicleViewWindow(from_index, to_v->index); +} + +static inline void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v) +{ + ChangeVehicleViewWindow(from_v->index, to_v->index); +} + static inline uint GetVehicleListHeight(VehicleType type) { return (type == VEH_TRAIN || type == VEH_ROAD) ? 14 : 24; -- cgit v1.2.3-54-g00ecf