tron@2186: /* $Id$ */ tron@2186: darkvater@164: #ifndef VEHICLE_GUI_H darkvater@164: #define VEHICLE_GUI_H darkvater@164: bjarni@4442: #include "window.h" bjarni@4734: #include "vehicle.h" matthijs@1752: Darkvater@2436: void DrawVehicleProfitButton(const Vehicle *v, int x, int y); bjarni@4712: void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order); tron@1093: void InitializeVehiclesGuiList(void); darkvater@164: darkvater@164: /* sorter stuff */ tron@588: void RebuildVehicleLists(void); tron@588: void ResortVehicleLists(void); tron@588: darkvater@168: #define PERIODIC_RESORT_DAYS 10 darkvater@164: bjarni@4449: /* Vehicle List Window type flags */ bjarni@4449: enum { Darkvater@4546: VLW_STANDARD = 0 << 8, bjarni@4449: VLW_SHARED_ORDERS = 1 << 8, bjarni@4449: VLW_STATION_LIST = 2 << 8, bjarni@4681: VLW_DEPOT_LIST = 3 << 8, Darkvater@4546: VLW_MASK = 0x700, bjarni@4449: }; bjarni@4449: bjarni@4506: static inline bool ValidVLWFlags(uint16 flags) bjarni@4506: { bjarni@4681: return (flags == VLW_STANDARD || flags == VLW_SHARED_ORDERS || flags == VLW_STATION_LIST || flags == VLW_DEPOT_LIST); bjarni@4506: } bjarni@4506: bjarni@4442: void PlayerVehWndProc(Window *w, WindowEvent *e); bjarni@4442: peter1138@4930: void DrawTrainEnginePurchaseInfo(int x, int y, uint w, EngineID engine_number); peter1138@4930: void DrawTrainWagonPurchaseInfo(int x, int y, uint w, EngineID engine_number); peter1138@4930: void DrawRoadVehPurchaseInfo(int x, int y, uint w, EngineID engine_number); peter1138@4930: void DrawAircraftPurchaseInfo(int x, int y, uint w, EngineID engine_number); peter1138@4930: void DrawShipPurchaseInfo(int x, int y, uint w, EngineID engine_number); bjarni@842: bjarni@4442: void DrawTrainImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection); bjarni@4442: void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection); bjarni@4442: void DrawShipImage(const Vehicle *v, int x, int y, VehicleID selection); Darkvater@4542: void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection); bjarni@4442: bjarni@4442: void ShowBuildTrainWindow(TileIndex tile); bjarni@4442: void ShowBuildRoadVehWindow(TileIndex tile); bjarni@4442: void ShowBuildShipWindow(TileIndex tile); bjarni@4800: void ShowBuildVehicleWindow(TileIndex tile, byte type); bjarni@4442: bjarni@2552: void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v); bjarni@2552: peter1138@4932: uint ShowAdditionalText(int x, int y, uint w, EngineID engine); peter1138@4932: uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine); bjarni@2552: bjarni@4668: void ShowVehicleListWindow(PlayerID player, StationID station, byte vehicle_type); bjarni@4668: void ShowVehWithSharedOrders(Vehicle *v, byte vehicle_type); bjarni@4681: void ShowVehDepotOrders(PlayerID player, byte vehicle_type, TileIndex depot_tile); bjarni@4668: bjarni@4734: bjarni@4734: static inline void DrawVehicleImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection) bjarni@4734: { bjarni@4734: switch (v->type) { bjarni@4734: case VEH_Train: DrawTrainImage(v, x, y, count, skip, selection); break; bjarni@4734: case VEH_Road: DrawRoadVehImage(v, x, y, selection); break; bjarni@4734: case VEH_Ship: DrawShipImage(v, x, y, selection); break; bjarni@4734: case VEH_Aircraft: DrawAircraftImage(v, x, y, selection); break; bjarni@4734: default: NOT_REACHED(); bjarni@4734: } bjarni@4734: } bjarni@4734: bjarni@4796: static inline byte GetVehicleListHeight(byte type) bjarni@4796: { bjarni@4796: return (type == VEH_Train || type == VEH_Road) ? 14 : 24; bjarni@4796: } bjarni@4796: darkvater@164: #endif /* VEHICLE_GUI_H */