engine_type.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00012 #ifndef ENGINE_TYPE_H
00013 #define ENGINE_TYPE_H
00014
00015 #include "economy_type.h"
00016 #include "rail_type.h"
00017 #include "cargo_type.h"
00018 #include "vehicle_type.h"
00019 #include "gfx_type.h"
00020 #include "date_type.h"
00021 #include "sound_type.h"
00022 #include "company_type.h"
00023 #include "strings_type.h"
00024
00025 typedef uint16 EngineID;
00026
00027 struct Engine;
00028
00029 enum RailVehicleTypes {
00030 RAILVEH_SINGLEHEAD,
00031 RAILVEH_MULTIHEAD,
00032 RAILVEH_WAGON,
00033 };
00034
00035 enum EngineClass {
00036 EC_STEAM,
00037 EC_DIESEL,
00038 EC_ELECTRIC,
00039 EC_MONORAIL,
00040 EC_MAGLEV,
00041 };
00042
00043 struct RailVehicleInfo {
00044 byte image_index;
00045 RailVehicleTypes railveh_type;
00046 byte cost_factor;
00047 RailTypeByte railtype;
00048 uint16 max_speed;
00049 uint16 power;
00050 uint16 weight;
00051 byte running_cost;
00052 Price running_cost_class;
00053 EngineClass engclass;
00054 byte capacity;
00055 byte ai_passenger_only;
00056 uint16 pow_wag_power;
00057 byte pow_wag_weight;
00058 byte visual_effect;
00059 byte shorten_factor;
00060 byte tractive_effort;
00061 byte user_def_data;
00062 };
00063
00064 struct ShipVehicleInfo {
00065 byte image_index;
00066 byte cost_factor;
00067 uint16 max_speed;
00068 uint16 capacity;
00069 byte running_cost;
00070 SoundID sfx;
00071 bool old_refittable;
00072 };
00073
00074
00075
00076
00077 enum {
00078 AIR_HELI = 0,
00079 AIR_CTOL = 1,
00080 AIR_FAST = 2
00081 };
00082
00083 struct AircraftVehicleInfo {
00084 byte image_index;
00085 byte cost_factor;
00086 byte running_cost;
00087 byte subtype;
00088 SoundID sfx;
00089 byte acceleration;
00090 uint16 max_speed;
00091 byte mail_capacity;
00092 uint16 passenger_capacity;
00093 };
00094
00095 struct RoadVehicleInfo {
00096 byte image_index;
00097 byte cost_factor;
00098 byte running_cost;
00099 Price running_cost_class;
00100 SoundID sfx;
00101 uint16 max_speed;
00102 byte capacity;
00103 uint8 weight;
00104 uint8 power;
00105 uint8 tractive_effort;
00106 uint8 air_drag;
00107 };
00108
00112 struct EngineInfo {
00113 Date base_intro;
00114 Year lifelength;
00115 Year base_life;
00116 byte decay_speed;
00117 byte load_amount;
00118 byte climates;
00119 CargoID cargo_type;
00120 uint32 refit_mask;
00121 byte refit_cost;
00122 byte misc_flags;
00123 byte callback_mask;
00124 int8 retire_early;
00125 StringID string_id;
00126 };
00127
00131 enum {
00132 EF_RAIL_TILTS = 0,
00133 EF_ROAD_TRAM = 0,
00134 EF_USES_2CC = 1,
00135 EF_RAIL_IS_MU = 2,
00136 };
00137
00141 enum {
00142 ENGINE_AVAILABLE = 1,
00143 ENGINE_EXCLUSIVE_PREVIEW = 2,
00144 ENGINE_OFFER_WINDOW_OPEN = 4,
00145 };
00146
00147 enum {
00148 NUM_VEHICLE_TYPES = 6,
00149 MAX_LENGTH_ENGINE_NAME_BYTES = 31,
00150 MAX_LENGTH_ENGINE_NAME_PIXELS = 160,
00151 };
00152
00153 static const EngineID INVALID_ENGINE = 0xFFFF;
00154
00155 #endif