OpenTTD Source
1.11.0-beta2
|
Go to the documentation of this file.
29 #include "table/strings.h"
42 default: NOT_REACHED();
46 case VEH_SHIP:
return STR_ENGINE_PREVIEW_SHIP;
52 static const NWidgetPart _nested_engine_preview_widgets[] = {
58 NWidget(
WWT_EMPTY, INVALID_COLOUR,
WID_EP_QUESTION),
SetMinimalSize(300, 0),
SetPadding(8, 8, 8, 8),
SetFill(1, 0),
90 default: NOT_REACHED();
96 this->vehicle_space = std::max<int>(40, y - y_offs);
98 size->width = std::max(size->width, x - x_offs);
111 int y = r.top +
GetStringHeight(STR_ENGINE_PREVIEW_MESSAGE, r.right - r.left + 1);
120 y += this->vehicle_space;
138 if (!gui_scope)
return;
149 _nested_engine_preview_widgets,
lengthof(_nested_engine_preview_widgets)
153 void ShowEnginePreviewWindow(
EngineID engine)
155 AllocateWindowDescFront<EnginePreviewWindow>(&_engine_preview_desc, engine);
166 return cap.
GetSum<uint>();
192 uint16 mail_capacity;
204 if (mail_capacity > 0) {
208 return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_CAP_RUNCOST;
211 return range > 0 ? STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_RANGE_CAP_RUNCOST : STR_ENGINE_PREVIEW_COST_MAX_SPEED_TYPE_CAP_RUNCOST;
228 return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST;
245 return STR_ENGINE_PREVIEW_COST_WEIGHT_SPEED_POWER_MAX_TE;
256 return STR_ENGINE_PREVIEW_COST_MAX_SPEED_CAP_RUNCOST;
272 return GetTrainEngineInfoString(e);
275 return GetRoadVehEngineInfoString(e);
278 return GetShipEngineInfoString(e);
281 return GetAircraftEngineInfoString(e);
283 default: NOT_REACHED();
302 DrawTrainEngine(left, right, preferred_x, y, engine, pal, image_type);
310 DrawShipEngine(left, right, preferred_x, y, engine, pal, image_type);
314 DrawAircraftEngine(left, right, preferred_x, y, engine, pal, image_type);
317 default: NOT_REACHED();
328 if (el->size() < 2)
return;
329 std::sort(el->begin(), el->end(), compare);
341 if (num_items < 2)
return;
342 assert(begin < el->size());
343 assert(begin + num_items <= el->size());
344 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.
uint GetDisplayDefaultCapacity(uint16 *mail_capacity=nullptr) const
Determines the default cargo capacity of an engine for display purposes.
void OnInvalidateData(int data=0, bool gui_scope=true) override
Some data on this window has become invalid.
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.
uint8 train_acceleration_model
realistic acceleration for trains
Dimensions (a width and height) of a rectangle in 2D.
struct RoadTypeInfo::@44 strings
Strings associated with the rail type.
@ WDF_CONSTRUCTION
This window is used for construction; close it whenever changing company.
void DrawWidget(const Rect &r, int widget) const override
Draw the contents of a nested widget.
@ 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.
void OnClick(Point pt, int widget, int click_count) override
A click with the left mouse button has been made on the window.
Money GetRunningCost() const
Return how much the running costs of this engine are.
StringID GetEngineCategoryName(EngineID engine)
Return the category of an engine.
int DrawString(int left, int right, int top, const char *str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize)
Draw string, possibly truncated to make it fit in its allocated space.
int32 WindowNumber
Number to differentiate different windows of the same class.
@ SA_CENTER
Center both horizontally and vertically.
EngineImageType
Visualisation contexts of vehicles and engines.
@ VEH_ROAD
Road vehicle type.
@ SA_HOR_CENTER
Horizontally center the text.
CargoID GetDefaultCargoType() const
Determines the default cargo type of an engine.
RoadType roadtype
Road type.
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...
static void SetDParam(uint n, uint64 v)
Set a string parameter v at index n in the global string parameter array.
int DrawStringMultiLine(int left, int right, int top, int bottom, const char *str, TextColour colour, StringAlignment align, bool underline, FontSize fontsize)
Draw string, possibly over multiple lines.
High level window description.
static const RailtypeInfo * GetRailTypeInfo(RailType railtype)
Returns a pointer to the Railtype information for a given railtype.
uint GetDisplayMaxSpeed() const
Returns max speed of the engine for display purposes.
uint16 EngineID
Unique identification number of an engine.
void DrawRoadVehEngine(int left, int right, int preferred_x, int y, EngineID engine, PaletteID pal, EngineImageType image_type)
Draw a road vehicle engine.
@ CMD_WANT_ENGINE_PREVIEW
confirm the preview of an engine
ResizeInfo resize
Resize information.
bool DoCommandP(const CommandContainer *container, bool my_cmd)
Shortcut for the long DoCommandP when having a container with the data.
void InitNested(WindowNumber number=0)
Perform complete initialization of the Window with nested widgets, to allow use.
@ WD_FRAMERECT_LEFT
Offset at left to draw the frame rectangular area.
@ WD_FRAMERECT_RIGHT
Offset at right to draw the frame rectangular area.
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.
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.
int GetStringHeight(const char *str, int maxw, FontSize fontsize)
Calculates height of string (in pixels).
void EngList_SortPartial(GUIEngineList *el, EngList_SortTypeFunction compare, uint begin, uint num_items)
Sort selected range of items (on indices @ <begin, begin+num_items-1>)
uint8 acceleration_type
Acceleration type of this rail type.
uint32 StringID
Numeric value that represents a string, independent of the selected language.
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).
uint8 roadveh_acceleration_model
realistic acceleration for road vehicles
uint GetPower() const
Returns the power of the engine for display and sorting purposes.
#define FONT_HEIGHT_NORMAL
Height of characters in the normal (FS_NORMAL) font.
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.
uint32 PaletteID
The number of the palette.
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).
void EngList_Sort(GUIEngineList *el, EngList_SortTypeFunction compare)
Sort all items using quick sort and given 'CompareItems' function.
static const RoadTypeInfo * GetRoadTypeInfo(RoadType roadtype)
Returns a pointer to the Roadtype information for a given roadtype.
struct RailtypeInfo::@41 strings
Strings associated with the rail type.
#define lengthof(x)
Return the length of an fixed size array.
StringID new_loco
Name of an engine for this type of rail in the engine preview GUI.
byte CargoID
Cargo slots to indicate a cargo type within a game.
VehicleSettings vehicle
options for vehicles
Data structure for an opened window.
@ VEH_TRAIN
Train vehicle type.
bool EngList_SortTypeFunction(const EngineID &, const EngineID &)
argument type for EngList_Sort.
uint16 GetRange() const
Get the range of an aircraft type.
void UpdateWidgetSize(int widget, Dimension *size, const Dimension &padding, Dimension *fill, Dimension *resize) override
Update size and resize step of a widget in the window.
@ CT_INVALID
Invalid cargo type.
@ VEH_SHIP
Ship vehicle type.
Specification of a rectangle with absolute coordinates of all edges.
@ WD_PAR_VSEP_WIDE
Large amount of vertical space between two paragraphs of text.
@ 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.