Codechange: make EngineImageType a scoped enum (#15755)

This commit is contained in:
Peter Nelson
2026-06-21 09:05:41 +01:00
committed by GitHub
parent a57eb70e05
commit 9f49ea4177
15 changed files with 54 additions and 54 deletions
+4 -4
View File
@@ -504,13 +504,13 @@ static void HelicopterTickHandler(Aircraft *v)
VehicleSpriteSeq seq;
if (spd == 0) {
u->state = HRS_ROTOR_STOPPED;
GetRotorImage(v, EIT_ON_MAP, &seq);
GetRotorImage(v, EngineImageType::OnMap, &seq);
if (u->sprite_cache.sprite_seq == seq) return;
} else if (tick >= spd) {
u->tick_counter = 0;
u->state++;
if (u->state > HRS_ROTOR_MOVING_3) u->state = HRS_ROTOR_MOVING_1;
GetRotorImage(v, EIT_ON_MAP, &seq);
GetRotorImage(v, EngineImageType::OnMap, &seq);
} else {
return;
}
@@ -536,7 +536,7 @@ void SetAircraftPosition(Aircraft *v, int x, int y, int z)
v->UpdatePosition();
v->UpdateViewport(true, false);
if (v->subtype == AIR_HELICOPTER) {
GetRotorImage(v, EIT_ON_MAP, &v->Next()->Next()->sprite_cache.sprite_seq);
GetRotorImage(v, EngineImageType::OnMap, &v->Next()->Next()->sprite_cache.sprite_seq);
}
Aircraft *u = v->Next();
@@ -1323,7 +1323,7 @@ void Aircraft::MarkDirty()
this->colourmap = PAL_NONE;
this->UpdateViewport(true, false);
if (this->subtype == AIR_HELICOPTER) {
GetRotorImage(this, EIT_ON_MAP, &this->Next()->Next()->sprite_cache.sprite_seq);
GetRotorImage(this, EngineImageType::OnMap, &this->Next()->Next()->sprite_cache.sprite_seq);
}
}
+5 -5
View File
@@ -55,7 +55,7 @@
*/
uint GetEngineListHeight(VehicleType type)
{
return std::max<uint>(GetCharacterHeight(FontSize::Normal) + WidgetDimensions::scaled.matrix.Vertical(), GetVehicleImageCellSize(type, EIT_PURCHASE).height);
return std::max<uint>(GetCharacterHeight(FontSize::Normal) + WidgetDimensions::scaled.matrix.Vertical(), GetVehicleImageCellSize(type, EngineImageType::Purchase).height);
}
static constexpr std::initializer_list<NWidgetPart> _nested_build_vehicle_widgets = {
@@ -930,8 +930,8 @@ void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_li
bool rtl = _current_text_dir == TD_RTL;
int step_size = GetEngineListHeight(type);
int sprite_left = GetVehicleImageCellSize(type, EIT_PURCHASE).extend_left;
int sprite_right = GetVehicleImageCellSize(type, EIT_PURCHASE).extend_right;
int sprite_left = GetVehicleImageCellSize(type, EngineImageType::Purchase).extend_left;
int sprite_right = GetVehicleImageCellSize(type, EngineImageType::Purchase).extend_right;
int sprite_width = sprite_left + sprite_right;
int circle_width = std::max(GetScaledSpriteSize(SPR_CIRCLE_FOLDED).width, GetScaledSpriteSize(SPR_CIRCLE_UNFOLDED).width);
PixelColour linecolour = GetColourGradient(Colours::Orange, Shade::Normal);
@@ -1005,7 +1005,7 @@ void DrawEngineList(VehicleType type, const Rect &r, const GUIEngineList &eng_li
}
int sprite_x = tr.WithWidth(sprite_width, rtl).left + sprite_left;
DrawVehicleEngine(r.left, r.right, sprite_x, tr.top + sprite_y_offset, item.engine_id, pal, EIT_PURCHASE);
DrawVehicleEngine(r.left, r.right, sprite_x, tr.top + sprite_y_offset, item.engine_id, pal, EngineImageType::Purchase);
tr = tr.Indent(sprite_width + WidgetDimensions::scaled.hsep_wide, rtl);
@@ -1870,7 +1870,7 @@ struct BuildVehicleWindow : Window {
case WID_BV_LIST:
fill.height = resize.height = GetEngineListHeight(this->vehicle_type);
size.height = 3 * resize.height;
size.width = std::max(size.width, this->badge_classes.GetTotalColumnsWidth() + GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_left + GetVehicleImageCellSize(this->vehicle_type, EIT_PURCHASE).extend_right + 165) + padding.width;
size.width = std::max(size.width, this->badge_classes.GetTotalColumnsWidth() + GetVehicleImageCellSize(this->vehicle_type, EngineImageType::Purchase).extend_left + GetVehicleImageCellSize(this->vehicle_type, EngineImageType::Purchase).extend_right + 165) + padding.width;
break;
case WID_BV_PANEL:
+13 -13
View File
@@ -160,14 +160,14 @@ static uint _consistent_train_width; ///< Whether
* Get the GUI cell size for a vehicle image.
* @param type Vehicle type to get the size for.
* @param image_type Image type to get size for.
* @pre image_type == EIT_IN_DEPOT || image_type == EIT_PURCHASE
* @pre image_type == EngineImageType::InDepot || image_type == EngineImageType::Purchase
* @return Cell dimensions for the vehicle and image type.
*/
VehicleCellSize GetVehicleImageCellSize(VehicleType type, EngineImageType image_type)
{
switch (image_type) {
case EIT_IN_DEPOT: return _base_block_sizes_depot[type];
case EIT_PURCHASE: return _base_block_sizes_purchase[type];
case EngineImageType::InDepot: return _base_block_sizes_depot[type];
case EngineImageType::Purchase: return _base_block_sizes_purchase[type];
default: NOT_REACHED();
}
}
@@ -201,12 +201,12 @@ static void InitBlocksizeForVehicles(VehicleType type, EngineImageType image_typ
int max_extend = ScaleSpriteTrad(98);
switch (image_type) {
case EIT_IN_DEPOT:
case EngineImageType::InDepot:
_base_block_sizes_depot[type].height = std::max<uint>(ScaleSpriteTrad(GetVehicleHeight(type)), max_height);
_base_block_sizes_depot[type].extend_left = Clamp(max_extend_left, min_extend, max_extend);
_base_block_sizes_depot[type].extend_right = Clamp(max_extend_right, min_extend, max_extend);
break;
case EIT_PURCHASE:
case EngineImageType::Purchase:
_base_block_sizes_purchase[type].height = std::max<uint>(ScaleSpriteTrad(GetVehicleHeight(type)), max_height);
_base_block_sizes_purchase[type].extend_left = Clamp(max_extend_left, min_extend, max_extend);
_base_block_sizes_purchase[type].extend_right = Clamp(max_extend_right, min_extend, max_extend);
@@ -223,8 +223,8 @@ static void InitBlocksizeForVehicles(VehicleType type, EngineImageType image_typ
void InitDepotWindowBlockSizes()
{
for (VehicleType vt : EnumRange(VehicleType::CompanyEnd)) {
InitBlocksizeForVehicles(vt, EIT_IN_DEPOT);
InitBlocksizeForVehicles(vt, EIT_PURCHASE);
InitBlocksizeForVehicles(vt, EngineImageType::InDepot);
InitBlocksizeForVehicles(vt, EngineImageType::Purchase);
}
_consistent_train_width = TRAININFO_DEFAULT_VEHICLE_WIDTH;
@@ -358,7 +358,7 @@ struct DepotWindow : Window {
ScaleSpriteTrad(_consistent_train_width != 0 ? _consistent_train_width : TRAININFO_DEFAULT_VEHICLE_WIDTH) :
0;
DrawTrainImage(u, image.Indent(x_space, rtl), this->sel, EIT_IN_DEPOT, free_wagon ? 0 : this->hscroll->GetPosition(), this->vehicle_over);
DrawTrainImage(u, image.Indent(x_space, rtl), this->sel, EngineImageType::InDepot, free_wagon ? 0 : this->hscroll->GetPosition(), this->vehicle_over);
/* Length of consist in tiles with 1 fractional digit (rounded up) */
uint length = u->gcache.cached_total_length + this->CountDraggedLength(u);
@@ -369,9 +369,9 @@ struct DepotWindow : Window {
break;
}
case VehicleType::Road: DrawRoadVehImage(v, image, this->sel, EIT_IN_DEPOT); break;
case VehicleType::Ship: DrawShipImage(v, image, this->sel, EIT_IN_DEPOT); break;
case VehicleType::Aircraft: DrawAircraftImage(v, image, this->sel, EIT_IN_DEPOT); break;
case VehicleType::Road: DrawRoadVehImage(v, image, this->sel, EngineImageType::InDepot); break;
case VehicleType::Ship: DrawShipImage(v, image, this->sel, EngineImageType::InDepot); break;
case VehicleType::Aircraft: DrawAircraftImage(v, image, this->sel, EngineImageType::InDepot); break;
default: NOT_REACHED();
}
@@ -595,7 +595,7 @@ struct DepotWindow : Window {
TrainDepotMoveVehicle(v, sel, result.vehicle);
} else if (v != nullptr) {
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
SetMouseCursorVehicle(v, EIT_IN_DEPOT);
SetMouseCursorVehicle(v, EngineImageType::InDepot);
_cursor.vehchain = _ctrl_pressed;
this->sel = v->index;
@@ -681,7 +681,7 @@ struct DepotWindow : Window {
void OnInit() override
{
this->cell_size = GetVehicleImageCellSize(this->type, EIT_IN_DEPOT);
this->cell_size = GetVehicleImageCellSize(this->type, EngineImageType::InDepot);
this->flag_size = maxdim(GetScaledSpriteSize(SPR_FLAG_VEH_STOPPED), GetScaledSpriteSize(SPR_FLAG_VEH_RUNNING));
}
+2 -2
View File
@@ -116,7 +116,7 @@ struct EnginePreviewWindow : Window {
switch (widget) {
case WID_EP_QUESTION: {
/* Get size of engine sprite, on loan from depot_gui.cpp */
EngineImageType image_type = EIT_PREVIEW;
EngineImageType image_type = EngineImageType::Preview;
/* First determine required the horizontal size. */
this->vehicle_space = ScaleSpriteTrad(40);
@@ -174,7 +174,7 @@ struct EnginePreviewWindow : Window {
DrawString(r.left, r.right, y, GetString(STR_ENGINE_NAME, PackEngineNameDParam(engine, EngineNameContext::PreviewNews)), TextColour::Black, SA_HOR_CENTER);
y += GetCharacterHeight(FontSize::Normal);
DrawVehicleEngine(r.left, r.right, this->width >> 1, y + this->vehicle_space / 2, engine, GetEnginePalette(engine, _local_company), EIT_PREVIEW);
DrawVehicleEngine(r.left, r.right, this->width >> 1, y + this->vehicle_space / 2, engine, GetEnginePalette(engine, _local_company), EngineImageType::Preview);
y += this->vehicle_space;
DrawStringMultiLine(r.left, r.right, y, r.bottom, GetEngineInfoString(engine), TextColour::Black, SA_CENTER);
+1 -1
View File
@@ -858,7 +858,7 @@ public:
}
SetObjectToPlaceWnd(SPR_CURSOR_MOUSE, PAL_NONE, HT_DRAG, this);
SetMouseCursorVehicle(v, EIT_IN_LIST);
SetMouseCursorVehicle(v, EngineImageType::InList);
_cursor.vehchain = true;
this->SetDirty();
+3 -3
View File
@@ -370,7 +370,7 @@ struct NewGRFInspectWindow : Window {
switch (widget) {
case WID_NGRFI_VEH_CHAIN:
assert(this->HasChainIndex());
size.height = std::max(size.height, GetVehicleImageCellSize(this->GetVehicleTypeForWindow(), EIT_IN_DEPOT).height + 2 + WidgetDimensions::scaled.bevel.Vertical());
size.height = std::max(size.height, GetVehicleImageCellSize(this->GetVehicleTypeForWindow(), EngineImageType::InDepot).height + 2 + WidgetDimensions::scaled.bevel.Vertical());
break;
case WID_NGRFI_MAINPANEL:
@@ -424,9 +424,9 @@ struct NewGRFInspectWindow : Window {
if (sel_center > width / 2) skip = std::min(total_width - width, sel_center - width / 2);
}
int h = GetVehicleImageCellSize(this->GetVehicleTypeForWindow(), EIT_IN_DEPOT).height;
int h = GetVehicleImageCellSize(this->GetVehicleTypeForWindow(), EngineImageType::InDepot).height;
int y = CentreBounds(br.top, br.bottom, h);
DrawVehicleImage(v->First(), br, VehicleID::Invalid(), EIT_IN_DETAILS, skip);
DrawVehicleImage(v->First(), br, VehicleID::Invalid(), EngineImageType::InDetails, skip);
/* Highlight the articulated part (this is different to the whole-vehicle highlighting of DrawVehicleImage */
if (_current_text_dir == TD_RTL) {
+3 -3
View File
@@ -1116,7 +1116,7 @@ static void GetCustomEngineSprite(EngineID engine, const Vehicle *v, Direction d
bool sprite_stack = EngInfo(engine)->misc_flags.Test(EngineMiscFlag::SpriteStack);
uint max_stack = sprite_stack ? static_cast<uint>(std::size(result->seq)) : 1;
for (uint stack = 0; stack < max_stack; ++stack) {
object.callback_param1 = image_type | (stack << 8);
object.callback_param1 = to_underlying(image_type) | (stack << 8);
const auto *group = object.Resolve<ResultSpriteGroup>();
int32_t reg100 = sprite_stack ? object.GetRegister(0x100) : 0;
if (group != nullptr && group->num_sprites != 0) {
@@ -1150,7 +1150,7 @@ static void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, En
* TTDPatch copies some variables between the vehicles each time, to somehow synchronize the rotor vehicle with the primary vehicle.
* We use 'rotor_in_gui' to replicate when the variables differ.
* But some other variables like 'rotor state' and 'rotor speed' are not available in OpenTTD, while they are in TTDPatch. */
bool rotor_in_gui = image_type != EIT_ON_MAP;
bool rotor_in_gui = image_type != EngineImageType::OnMap;
VehicleResolverObject object(engine, v, VehicleResolverObject::WagonOverride::Self, rotor_in_gui, CBID_NO_CALLBACK);
result->Clear();
uint rotor_pos = v == nullptr || rotor_in_gui ? 0 : v->Next()->Next()->state;
@@ -1158,7 +1158,7 @@ static void GetRotorOverrideSprite(EngineID engine, const struct Aircraft *v, En
bool sprite_stack = e->info.misc_flags.Test(EngineMiscFlag::SpriteStack);
uint max_stack = sprite_stack ? static_cast<uint>(std::size(result->seq)) : 1;
for (uint stack = 0; stack < max_stack; ++stack) {
object.callback_param1 = image_type | (stack << 8);
object.callback_param1 = to_underlying(image_type) | (stack << 8);
const auto *group = object.Resolve<ResultSpriteGroup>();
int32_t reg100 = sprite_stack ? object.GetRegister(0x100) : 0;
if (group != nullptr && group->num_sprites != 0) {
+1 -1
View File
@@ -551,7 +551,7 @@ struct NewsWindow : Window {
case WID_N_VEH_SPR: {
assert(std::holds_alternative<EngineID>(ni->ref1));
EngineID engine = std::get<EngineID>(this->ni->ref1);
DrawVehicleEngine(r.left, r.right, CentreBounds(r.left, r.right, 0), CentreBounds(r.top, r.bottom, 0), engine, GetEnginePalette(engine, _local_company), EIT_PREVIEW);
DrawVehicleEngine(r.left, r.right, CentreBounds(r.left, r.right, 0), CentreBounds(r.top, r.bottom, 0), engine, GetEnginePalette(engine, _local_company), EngineImageType::Preview);
GfxFillRect(r, PALETTE_NEWSPAPER, FillRectMode::Recolour);
break;
}
+3 -3
View File
@@ -503,12 +503,12 @@ void AfterLoadVehiclesPhase2(bool part_of_load)
case VehicleType::Road:
case VehicleType::Train:
case VehicleType::Ship:
v->GetImage(v->direction, EIT_ON_MAP, &v->sprite_cache.sprite_seq);
v->GetImage(v->direction, EngineImageType::OnMap, &v->sprite_cache.sprite_seq);
break;
case VehicleType::Aircraft:
if (Aircraft::From(v)->IsNormalAircraft()) {
v->GetImage(v->direction, EIT_ON_MAP, &v->sprite_cache.sprite_seq);
v->GetImage(v->direction, EngineImageType::OnMap, &v->sprite_cache.sprite_seq);
/* The aircraft's shadow will have the same image as the aircraft, but no colour */
Vehicle *shadow = v->Next();
@@ -521,7 +521,7 @@ void AfterLoadVehiclesPhase2(bool part_of_load)
Vehicle *rotor = shadow->Next();
if (rotor == nullptr) SlErrorCorrupt("Missing rotor for helicopter");
GetRotorImage(Aircraft::From(v), EIT_ON_MAP, &rotor->sprite_cache.sprite_seq);
GetRotorImage(Aircraft::From(v), EngineImageType::OnMap, &rotor->sprite_cache.sprite_seq);
}
UpdateAircraftCache(Aircraft::From(v), true);
+1 -1
View File
@@ -135,7 +135,7 @@ void Ship::GetImage(Direction direction, EngineImageType image_type, VehicleSpri
{
uint8_t spritenum = this->spritenum;
if (image_type == EIT_ON_MAP) direction = this->rotation;
if (image_type == EngineImageType::OnMap) direction = this->rotation;
if (IsCustomVehicleSpriteNum(spritenum)) {
GetCustomVehicleSprite(this, direction, image_type, result);
+1 -1
View File
@@ -385,7 +385,7 @@ void DrawTrainDetails(const Train *v, const Rect &r, int vscroll_pos, uint16_t v
}
PaletteID pal = v->vehstatus.Test(VehState::Crashed) ? PALETTE_CRASH : GetVehiclePalette(u);
VehicleSpriteSeq seq;
u->GetImage(dir, EIT_IN_DETAILS, &seq);
u->GetImage(dir, EngineImageType::InDetails, &seq);
seq.Draw(px + (rtl ? -offset.x : offset.x), r.top - line_height * vscroll_pos + sprite_y_offset + pitch, pal, v->vehstatus.Test(VehState::Crashed));
}
px += rtl ? -width : width;
+1 -1
View File
@@ -1196,7 +1196,7 @@ void ViewportAddVehicles(DrawPixelInfo *dpi)
*/
if (v->sprite_cache.revalidate_before_draw) {
VehicleSpriteSeq seq;
v->GetImage(v->direction, EIT_ON_MAP, &seq);
v->GetImage(v->direction, EngineImageType::OnMap, &seq);
if (seq.IsValid() && v->sprite_cache.sprite_seq != seq) {
v->sprite_cache.sprite_seq = seq;
+1 -1
View File
@@ -1244,7 +1244,7 @@ struct SpecializedVehicle : public Vehicle {
if (this->direction != this->sprite_cache.last_direction || this->sprite_cache.is_viewport_candidate) {
VehicleSpriteSeq seq;
((T*)this)->T::GetImage(this->direction, EIT_ON_MAP, &seq);
((T*)this)->T::GetImage(this->direction, EngineImageType::OnMap, &seq);
if (this->sprite_cache.sprite_seq != seq) {
sprite_has_changed = true;
this->sprite_cache.sprite_seq = seq;
+8 -8
View File
@@ -1050,7 +1050,7 @@ struct RefitWindow : public Window {
case WID_VR_VEHICLE_PANEL_DISPLAY: {
Vehicle *v = Vehicle::Get(this->window_number);
DrawVehicleImage(v, r.WithX(this->sprite_left, this->sprite_right),
VehicleID::Invalid(), EIT_IN_DETAILS, this->hscroll != nullptr ? this->hscroll->GetPosition() : 0);
VehicleID::Invalid(), EngineImageType::InDetails, this->hscroll != nullptr ? this->hscroll->GetPosition() : 0);
/* Highlight selected vehicles. */
if (this->order != INVALID_VEH_ORDER_ID) break;
@@ -1149,7 +1149,7 @@ struct RefitWindow : public Window {
this->BuildRefitList();
/* The vehicle width has changed too. */
this->vehicle_width = GetVehicleWidth(Vehicle::Get(this->window_number), EIT_IN_DETAILS);
this->vehicle_width = GetVehicleWidth(Vehicle::Get(this->window_number), EngineImageType::InDetails);
uint max_width = 0;
/* Check the width of all cargo information strings. */
@@ -1309,7 +1309,7 @@ struct RefitWindow : public Window {
void OnResize() override
{
this->vehicle_width = GetVehicleWidth(Vehicle::Get(this->window_number), EIT_IN_DETAILS);
this->vehicle_width = GetVehicleWidth(Vehicle::Get(this->window_number), EngineImageType::InDetails);
this->vscroll->SetCapacityFromWidget(this, WID_VR_MATRIX);
if (this->hscroll != nullptr) this->hscroll->SetCapacityFromWidget(this, WID_VR_VEHICLE_PANEL_DISPLAY);
}
@@ -1817,7 +1817,7 @@ void BaseVehicleListWindow::DrawVehicleListItems(VehicleID selected_vehicle, int
DrawSprite(SPR_WARNING_SIGN, PAL_NONE, vehicle_button_x, ir.top + GetCharacterHeight(FontSize::Normal) + WidgetDimensions::scaled.vsep_normal + profit.height);
}
DrawVehicleImage(v, ir.WithX(image_left, image_right), selected_vehicle, EIT_IN_LIST, 0);
DrawVehicleImage(v, ir.WithX(image_left, image_right), selected_vehicle, EngineImageType::InList, 0);
if (_settings_client.gui.show_cargo_in_vehicle_lists) {
/* Get the cargoes the vehicle can carry */
@@ -1869,7 +1869,7 @@ void BaseVehicleListWindow::DrawVehicleListItems(VehicleID selected_vehicle, int
for (int i = 0; i < static_cast<int>(vehgroup.NumVehicles()); ++i) {
if (image_left + WidgetDimensions::scaled.hsep_wide * i >= image_right) break; // Break if there is no more space to draw any more vehicles anyway.
DrawVehicleImage(vehgroup.vehicles_begin[i], ir.WithX(image_left + WidgetDimensions::scaled.hsep_wide * i, image_right), selected_vehicle, EIT_IN_LIST, 0);
DrawVehicleImage(vehgroup.vehicles_begin[i], ir.WithX(image_left + WidgetDimensions::scaled.hsep_wide * i, image_right), selected_vehicle, EngineImageType::InList, 0);
}
if (show_orderlist) DrawSmallOrderList(vehgroup.vehicles_begin[0]->orders, olr.left, olr.right, ir.top + GetCharacterHeight(FontSize::Small), this->order_arrow_width);
@@ -2683,15 +2683,15 @@ struct VehicleDetailsWindow : Window {
case WID_VD_MIDDLE_DETAILS: {
/* For other vehicles, at the place of the matrix. */
bool rtl = _current_text_dir == TD_RTL;
uint sprite_width = GetSingleVehicleWidth(v, EIT_IN_DETAILS) + WidgetDimensions::scaled.framerect.Horizontal();
uint sprite_width = GetSingleVehicleWidth(v, EngineImageType::InDetails) + WidgetDimensions::scaled.framerect.Horizontal();
Rect tr = r.Shrink(WidgetDimensions::scaled.framerect);
/* Articulated road vehicles use a complete line. */
if (v->type == VehicleType::Road && v->HasArticulatedPart()) {
DrawVehicleImage(v, tr.WithHeight(ScaleGUITrad(GetVehicleHeight(v->type)), false), VehicleID::Invalid(), EIT_IN_DETAILS, 0);
DrawVehicleImage(v, tr.WithHeight(ScaleGUITrad(GetVehicleHeight(v->type)), false), VehicleID::Invalid(), EngineImageType::InDetails, 0);
} else {
Rect sr = tr.WithWidth(sprite_width, rtl);
DrawVehicleImage(v, sr.WithHeight(ScaleGUITrad(GetVehicleHeight(v->type)), false), VehicleID::Invalid(), EIT_IN_DETAILS, 0);
DrawVehicleImage(v, sr.WithHeight(ScaleGUITrad(GetVehicleHeight(v->type)), false), VehicleID::Invalid(), EngineImageType::InDetails, 0);
}
DrawVehicleDetails(v, tr.Indent(sprite_width, rtl), 0, 0, this->tab);
+7 -7
View File
@@ -73,13 +73,13 @@ enum AccelerationModel : uint8_t {
};
/** Visualisation contexts of vehicles and engines. */
enum EngineImageType : uint8_t {
EIT_ON_MAP = 0x00, ///< Vehicle drawn in viewport.
EIT_IN_DEPOT = 0x10, ///< Vehicle drawn in depot.
EIT_IN_DETAILS = 0x11, ///< Vehicle drawn in vehicle details, refit window, ...
EIT_IN_LIST = 0x12, ///< Vehicle drawn in vehicle list, group list, ...
EIT_PURCHASE = 0x20, ///< Vehicle drawn in purchase list, autoreplace gui, ...
EIT_PREVIEW = 0x21, ///< Vehicle drawn in preview window, news, ...
enum class EngineImageType : uint8_t {
OnMap = 0x00, ///< Vehicle drawn in viewport.
InDepot = 0x10, ///< Vehicle drawn in depot.
InDetails = 0x11, ///< Vehicle drawn in vehicle details, refit window, ...
InList = 0x12, ///< Vehicle drawn in vehicle list, group list, ...
Purchase = 0x20, ///< Vehicle drawn in purchase list, autoreplace gui, ...
Preview = 0x21, ///< Vehicle drawn in preview window, news, ...
};
/** Randomisation triggers for vehicles */