mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2026-07-15 15:19:52 +00:00
Codechange: make EngineImageType a scoped enum (#15755)
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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();
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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 */
|
||||
|
||||
Reference in New Issue
Block a user