|
OpenTTD Source
14.0-beta1
|
Go to the documentation of this file.
31 #include "table/strings.h"
44 default: NOT_REACHED();
48 case VEH_SHIP:
return STR_ENGINE_PREVIEW_SHIP;
54 static constexpr
NWidgetPart _nested_engine_preview_widgets[] = {
93 default: NOT_REACHED();
101 size->width = std::max(size->width, x - x_offs);
108 void DrawWidget(
const Rect &r,
WidgetID widget)
const override
122 y += this->vehicle_space;
126 void OnClick([[maybe_unused]]
Point pt,
WidgetID widget, [[maybe_unused]]
int click_count)
override
138 void OnInvalidateData([[maybe_unused]]
int data = 0, [[maybe_unused]]
bool gui_scope =
true)
override
140 if (!gui_scope)
return;
147 static WindowDesc _engine_preview_desc(__FILE__, __LINE__,
151 std::begin(_nested_engine_preview_widgets), std::end(_nested_engine_preview_widgets)
155 void ShowEnginePreviewWindow(
EngineID engine)
157 AllocateWindowDescFront<EnginePreviewWindow>(&_engine_preview_desc, engine);
168 return cap.
GetSum<uint>();
173 SetDParam(0, STR_ENGINE_PREVIEW_COST_WEIGHT);
185 SetDParam(9, STR_ENGINE_PREVIEW_CAPACITY);
190 return STR_ENGINE_PREVIEW_TEXT4;
196 uint16_t mail_capacity;
200 SetDParam(0, STR_ENGINE_PREVIEW_COST_MAX_SPEED);
204 SetDParam(3, range > 0 ? STR_ENGINE_PREVIEW_TYPE_RANGE : STR_ENGINE_PREVIEW_TYPE);
211 SetDParam(9, mail_capacity > 0 ? STR_ENGINE_PREVIEW_CAPACITY_2 : STR_ENGINE_PREVIEW_CAPACITY);
217 return STR_ENGINE_PREVIEW_TEXT4;
225 SetDParam(9, STR_ENGINE_PREVIEW_CAPACITY);
231 SetDParam(0, STR_ENGINE_PREVIEW_COST_MAX_SPEED);
235 return STR_ENGINE_PREVIEW_TEXT3;
237 SetDParam(0, STR_ENGINE_PREVIEW_COST_WEIGHT);
241 SetDParam(3, STR_ENGINE_PREVIEW_SPEED_POWER_MAX_TE);
246 return STR_ENGINE_PREVIEW_TEXT4;
252 SetDParam(0, STR_ENGINE_PREVIEW_COST_MAX_SPEED);
259 SetDParam(9, STR_ENGINE_PREVIEW_CAPACITY);
263 return STR_ENGINE_PREVIEW_TEXT3;
279 return GetTrainEngineInfoString(e);
282 return GetRoadVehEngineInfoString(e);
285 return GetShipEngineInfoString(e);
288 return GetAircraftEngineInfoString(e);
290 default: NOT_REACHED();
309 DrawTrainEngine(left, right, preferred_x, y, engine, pal, image_type);
317 DrawShipEngine(left, right, preferred_x, y, engine, pal, image_type);
321 DrawAircraftEngine(left, right, preferred_x, y, engine, pal, image_type);
324 default: NOT_REACHED();
335 if (el.size() < 2)
return;
336 std::sort(el.begin(), el.end(), compare);
348 if (num_items < 2)
return;
349 assert(begin < el.size());
350 assert(begin + num_items <= el.size());
351 std::sort(el.begin() + begin, el.begin() + begin + num_items, compare);
@ VEH_AIRCRAFT
Aircraft vehicle type.
StringID GetEngineInfoString(EngineID engine)
Get a multi-line string with some technical data, describing the engine.
StringID new_engine
Name of an engine for this type of road in the engine preview GUI.
const T GetSum() const
Get the sum of all cargo amounts.
@ EIT_PREVIEW
Vehicle drawn in preview window, news, ...
static Titem * Get(size_t index)
Returns Titem with given index.
Dimensions (a width and height) of a rectangle in 2D.
@ WDF_CONSTRUCTION
This window is used for construction; close it whenever changing company.
const RailTypeInfo * GetRailTypeInfo(RailType railtype)
Returns a pointer to the Railtype information for a given railtype.
uint GetDisplayDefaultCapacity(uint16_t *mail_capacity=nullptr) const
Determines the default cargo capacity of an engine for display purposes.
bool EngList_SortTypeFunction(const GUIEngineListItem &, const GUIEngineListItem &)
argument type for EngList_Sort.
uint32_t StringID
Numeric value that represents a string, independent of the selected language.
StringID new_loco
Name of an engine for this type of rail in the engine preview GUI.
@ WC_ENGINE_PREVIEW
Engine preview window; Window numbers:
CargoArray GetCapacityOfArticulatedParts(EngineID engine)
Get the capacity of the parts of a given engine.
uint GetDisplayMaxTractiveEffort() const
Returns the tractive effort of the engine for display purposes.
Tindex index
Index of this pool item.
@ EIT_PURCHASE
Vehicle drawn in purchase list, autoreplace gui, ...
Class for storing amounts of cargo.
@ WF_STICKY
Window is made sticky by user.
virtual void Close(int data=0)
Hide the window and all its child windows, and mark them for a later deletion.
Money GetRunningCost() const
Return how much the running costs of this engine are.
StringID GetEngineCategoryName(EngineID engine)
Return the category of an engine.
static bool UsingWallclockUnits(bool newgame=false)
Check if we are using wallclock units.
EngineImageType
Visualisation contexts of vehicles and engines.
@ VEH_ROAD
Road vehicle type.
struct RailTypeInfo::@26 strings
Strings associated with the rail type.
CargoID GetDefaultCargoType() const
Determines the default cargo type of an engine.
RoadType roadtype
Road type.
uint32_t PaletteID
The number of the palette.
PaletteID GetEnginePalette(EngineID engine_type, CompanyID company)
Get the colour map for an engine.
void GetShipSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
Get the size of the sprite of a ship sprite heading west (used for lists).
Window(WindowDesc *desc)
Empty constructor, initialization has been moved to InitNested() called from the constructor of the d...
High level window description.
uint8_t train_acceleration_model
realistic acceleration for trains
uint GetDisplayMaxSpeed() const
Returns max speed of the engine for display purposes.
void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
Draw a road vehicle engine.
ResizeInfo resize
Resize information.
@ PreviewNews
Name is shown in exclusive preview or newspaper.
int32_t WindowNumber
Number to differentiate different windows of the same class.
@ FS_NORMAL
Index of the normal font in the font tables.
@ SA_TOP
Top align the text.
void InitNested(WindowNumber number=0)
Perform complete initialization of the Window with nested widgets, to allow use.
uint64_t PackEngineNameDParam(EngineID engine_id, EngineNameContext context, uint32_t extra_data=0)
Combine an engine ID and a name context to an engine name dparam.
GameSettings _settings_game
Game settings of a running game or the scenario editor.
uint GetDisplayWeight() const
Returns the weight of the engine for display purposes.
CompanyID _local_company
Company controlled by the human player at this client. Can also be COMPANY_SPECTATOR.
WindowFlags flags
Window flags.
int GetStringHeight(std::string_view str, int maxw, FontSize fontsize)
Calculates height of string (in pixels).
bool _shift_pressed
Is Shift pressed?
Coordinates of a point in 2D.
Money GetCost() const
Return how much a new engine costs.
WindowNumber window_number
Window number within the window class.
@ WC_NONE
No window, redirects to WC_MAIN_WINDOW.
@ SA_HOR_CENTER
Horizontally center the text.
void EngList_Sort(GUIEngineList &el, EngList_SortTypeFunction compare)
Sort all items using quick sort and given 'CompareItems' function.
const RoadTypeInfo * GetRoadTypeInfo(RoadType roadtype)
Returns a pointer to the Roadtype information for a given roadtype.
uint8_t roadveh_acceleration_model
realistic acceleration for road vehicles
int DrawStringMultiLine(int left, int right, int top, int bottom, std::string_view str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize)
Draw string, possibly over multiple lines.
void GetAircraftSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
Get the size of the sprite of an aircraft sprite heading west (used for lists).
uint GetPower() const
Returns the power of the engine for display and sorting purposes.
void GetTrainSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
Get the size of the sprite of a train sprite heading west, or both heads (used for lists).
uint GetTotalCapacityOfArticulatedParts(EngineID engine)
Get the capacity of an engine with articulated parts.
void SetDParam(size_t n, uint64_t v)
Set a string parameter v at index n in the global string parameter array.
void GetRoadVehSpriteSize(EngineID engine, uint &width, uint &height, int &xoffs, int &yoffs, EngineImageType image_type)
Get the size of the sprite of a road vehicle sprite heading west (used for lists).
int ScaleSpriteTrad(int value)
Scale traditional pixel dimensions to GUI zoom level, for drawing sprites.
void EngList_SortPartial(GUIEngineList &el, EngList_SortTypeFunction compare, size_t begin, size_t num_items)
Sort selected range of items (on indices @ <begin, begin+num_items-1>)
RailType railtype
Railtype, mangled if elrail is disabled.
int64_t PackVelocity(uint speed, VehicleType type)
Pack velocity and vehicle type for use with SCC_VELOCITY string parameter.
struct RoadTypeInfo::@29 strings
Strings associated with the rail type.
@ SA_CENTER
Center both horizontally and vertically.
int GetCharacterHeight(FontSize size)
Get height of a character for a given font size.
byte CargoID
Cargo slots to indicate a cargo type within a game.
int DrawString(int left, int right, int top, std::string_view str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize)
Draw string, possibly truncated to make it fit in its allocated space.
VehicleSettings vehicle
options for vehicles
uint16_t EngineID
Unique identification number of an engine.
Data structure for an opened window.
@ VEH_TRAIN
Train vehicle type.
@ VEH_SHIP
Ship vehicle type.
Specification of a rectangle with absolute coordinates of all edges.
uint8_t acceleration_type
Acceleration type of this rail type.
@ WDP_CENTER
Center the window.
StringID GetAircraftTypeText() const
Get the name of the aircraft type for display purposes.
void DrawVehicleEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
Draw an engine.
VehicleType type
Vehicle type, ie VEH_ROAD, VEH_TRAIN, etc.
uint16_t GetRange() const
Get the range of an aircraft type.
void OnInvalidateData([[maybe_unused]] int data=0, [[maybe_unused]] bool gui_scope=true) override
Some data on this window has become invalid.