2005-07-24 14:12:37 +00:00
|
|
|
/* $Id$ */
|
|
|
|
|
2004-09-06 18:15:13 +00:00
|
|
|
#ifndef VEHICLE_GUI_H
|
|
|
|
#define VEHICLE_GUI_H
|
|
|
|
|
2006-08-29 17:41:13 +00:00
|
|
|
#include "window.h"
|
2006-10-05 08:15:51 +00:00
|
|
|
#include "vehicle.h"
|
2005-05-02 23:59:11 +00:00
|
|
|
|
2005-09-18 20:56:44 +00:00
|
|
|
void DrawVehicleProfitButton(const Vehicle *v, int x, int y);
|
2006-10-03 14:52:39 +00:00
|
|
|
void ShowVehicleRefitWindow(const Vehicle *v, VehicleOrderID order);
|
2007-03-07 11:47:46 +00:00
|
|
|
void InitializeVehiclesGuiList();
|
2004-09-06 18:15:13 +00:00
|
|
|
|
|
|
|
/* sorter stuff */
|
2007-03-07 11:47:46 +00:00
|
|
|
void RebuildVehicleLists();
|
|
|
|
void ResortVehicleLists();
|
2004-12-10 18:16:08 +00:00
|
|
|
|
2004-09-06 18:15:13 +00:00
|
|
|
#define PERIODIC_RESORT_DAYS 10
|
|
|
|
|
2006-08-29 21:36:39 +00:00
|
|
|
/* Vehicle List Window type flags */
|
|
|
|
enum {
|
2006-09-04 15:16:58 +00:00
|
|
|
VLW_STANDARD = 0 << 8,
|
2006-08-29 21:36:39 +00:00
|
|
|
VLW_SHARED_ORDERS = 1 << 8,
|
|
|
|
VLW_STATION_LIST = 2 << 8,
|
2006-09-30 13:39:34 +00:00
|
|
|
VLW_DEPOT_LIST = 3 << 8,
|
2006-09-04 15:16:58 +00:00
|
|
|
VLW_MASK = 0x700,
|
2006-08-29 21:36:39 +00:00
|
|
|
};
|
|
|
|
|
2006-09-01 10:24:15 +00:00
|
|
|
static inline bool ValidVLWFlags(uint16 flags)
|
|
|
|
{
|
2006-09-30 13:39:34 +00:00
|
|
|
return (flags == VLW_STANDARD || flags == VLW_SHARED_ORDERS || flags == VLW_STATION_LIST || flags == VLW_DEPOT_LIST);
|
2006-09-01 10:24:15 +00:00
|
|
|
}
|
|
|
|
|
2006-08-29 17:41:13 +00:00
|
|
|
void PlayerVehWndProc(Window *w, WindowEvent *e);
|
|
|
|
|
2007-01-21 22:50:43 +00:00
|
|
|
void DrawVehiclePurchaseInfo(int x, int y, uint w, EngineID engine_number);
|
2005-01-02 17:23:04 +00:00
|
|
|
|
2006-08-29 17:41:13 +00:00
|
|
|
void DrawTrainImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection);
|
|
|
|
void DrawRoadVehImage(const Vehicle *v, int x, int y, VehicleID selection);
|
|
|
|
void DrawShipImage(const Vehicle *v, int x, int y, VehicleID selection);
|
2006-09-03 23:27:38 +00:00
|
|
|
void DrawAircraftImage(const Vehicle *v, int x, int y, VehicleID selection);
|
2006-08-29 17:41:13 +00:00
|
|
|
|
2006-10-10 15:02:38 +00:00
|
|
|
void ShowBuildVehicleWindow(TileIndex tile, byte type);
|
2006-08-29 17:41:13 +00:00
|
|
|
|
2005-10-24 19:40:48 +00:00
|
|
|
void ChangeVehicleViewWindow(const Vehicle *from_v, const Vehicle *to_v);
|
|
|
|
|
2006-10-23 21:39:15 +00:00
|
|
|
uint ShowAdditionalText(int x, int y, uint w, EngineID engine);
|
|
|
|
uint ShowRefitOptionsList(int x, int y, uint w, EngineID engine);
|
2005-10-24 19:40:48 +00:00
|
|
|
|
2007-01-21 00:01:47 +00:00
|
|
|
void ShowVehicleListWindow(const Vehicle *v);
|
|
|
|
void ShowVehicleListWindow(PlayerID player, byte vehicle_type);
|
|
|
|
void ShowVehicleListWindow(PlayerID player, byte vehicle_type, StationID station);
|
|
|
|
void ShowVehicleListWindow(PlayerID player, byte vehicle_type, TileIndex depot_tile);
|
2006-09-28 23:05:03 +00:00
|
|
|
|
2007-01-23 13:26:12 +00:00
|
|
|
void ShowReplaceVehicleWindow(byte vehicletype);
|
2006-10-05 08:15:51 +00:00
|
|
|
|
|
|
|
static inline void DrawVehicleImage(const Vehicle *v, int x, int y, int count, int skip, VehicleID selection)
|
|
|
|
{
|
|
|
|
switch (v->type) {
|
2007-03-08 16:27:54 +00:00
|
|
|
case VEH_TRAIN: DrawTrainImage(v, x, y, count, skip, selection); break;
|
|
|
|
case VEH_ROAD: DrawRoadVehImage(v, x, y, selection); break;
|
|
|
|
case VEH_SHIP: DrawShipImage(v, x, y, selection); break;
|
|
|
|
case VEH_AIRCRAFT: DrawAircraftImage(v, x, y, selection); break;
|
2006-10-05 08:15:51 +00:00
|
|
|
default: NOT_REACHED();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2007-02-10 13:37:32 +00:00
|
|
|
static inline uint GetVehicleListHeight(byte type)
|
2006-10-10 10:04:09 +00:00
|
|
|
{
|
2007-03-08 16:27:54 +00:00
|
|
|
return (type == VEH_TRAIN || type == VEH_ROAD) ? 14 : 24;
|
2006-10-10 10:04:09 +00:00
|
|
|
}
|
|
|
|
|
2004-09-06 18:15:13 +00:00
|
|
|
#endif /* VEHICLE_GUI_H */
|