Commit Graph

21599 Commits (fd0528a9b4a695c601c7b0ae1ad897ed719800b1)

Author SHA1 Message Date
Peter Nelson daec0e2ca4 Codechange: Split palette handling to separate file. 9 months ago
Peter Nelson 4ecc107d30 Codechange: Perform simpler comparison first when checking for palette updates.
This avoids unnecessarily comparing contents of an array.
9 months ago
Loïc Guilloux af8b8c2cfc
Fix 4a2038e301: fully restore script break filter on reopen (#11622) 9 months ago
Peter Nelson c0cdf3460e Change: Rename Standard Livery to Default Livery. 9 months ago
Peter Nelson 3436b5f090 Change: Show a message in livery window if vehicle type has no groups. 9 months ago
Peter Nelson 513c7e7b53 Change: Add distinct tooltips for vehicle group colour schemes. 9 months ago
Peter Nelson eda0dd24fe Change: Remove hardcoded minimum sizes and allow resize.
This stops the window being needlessly large.
9 months ago
Peter Nelson 0949eddd55 Change: Move colour selection dropdowns to bottom of window.
This stops them looking similar to how filter controls are used elsewhere,
and matches action dropdowns on other windows.
9 months ago
Peter Nelson 5cb7a16edc
Fix #11618: Don't try to display unavailable zoom levels in sprite aligner. (#11619) 9 months ago
Darragh acfe367507
Fix #11442: "default" colour in group colour window is not updated when changing master colour (#11614)
Updated SelectCompanyLiveryWindow.DrawWidget method to check if a group's livery.in_use 0 bit is set, rendering the company's default colour if it has not been.
9 months ago
Peter Nelson fd0aa3dd19
Fix #11515: Zoom level could wrap around when changing interface scale. (#11615)
This happened due to converting the new value to unsigned before clamping instead of after.
9 months ago
Peter Nelson c1afbc9415
Fix: Update widget dimensions before updating viewport signs. (#11611)
Viewport signs used fullbevel WidgetDimensions before it was updated for the new interface scale.
9 months ago
Loïc Guilloux 2d3af14181
Add: Horizontal scroll for script debug log (#11597) 9 months ago
Peter Nelson 0ca4b4e146 Change: Allow opening multiple script debug windows by holding Ctrl. 9 months ago
Peter Nelson 4a2038e301 Codechange: Make script debug window filter state per-window. 9 months ago
Peter Nelson b85ecf9ac2
Codechange: Replace pointer to Sprite array with reference to SpriteCollection. (#11580)
Add `SpriteLoader::SpriteCollection` type which is an array of `SpriteLoad::Sprite`.

This removes the ambiguity of what `SpriteLoader::Sprite *` is pointing to,
and cleans up mismatches using both dereference -> and array access [] for the
same object.
9 months ago
Peter Nelson 7466c3c39e Fix: Draw unavailable mask over picker sprite instead of behind it.
This makes these disabled picker buttons consistent with other disabled buttons.
9 months ago
Peter Nelson 712a4bb40b Fix: Prevent picker preview sprites from overflowing button bevel. 9 months ago
Peter Nelson 313ee13e5f Codechange: Add Rect version of FillDrawPixelInfo().
This simplifies most callers as they longer have to split out a rect.
9 months ago
Finn Willard 3a42340db3 Add: Hotkey to focus industry directory filter box
Co-authored-by: Tyler Trahan <tyler@tylertrahan.com>
9 months ago
Finn Willard 7d3ae4a058 Add: Hotkey to focus town directory filter box
Co-authored-by: Tyler Trahan <tyler@tylertrahan.com>
9 months ago
Tyler Trahan e8d2ebb016
Fix: Add missing includes to timers from script implementation files (#11604) 9 months ago
SamuXarick fddcaef74a Codechange: Use town zone constants instead of magic numbers 9 months ago
translators 9b7a5bc876 Update: Translations from eints
vietnamese: 1 change by KhoiCanDev
danish: 4 changes by bscargo
9 months ago
Peter Nelson b19a6c3b81
Fix: Window width/height was doubly-scaled with automatic DPI switch. (#11598) 9 months ago
SamuXarick c05ffb22bd
Fix #10452: Don't let AyStar max_search_nodes unattended when initializing (#11544)
Add a constant with the default value of 10000 and have the pathfinding settings refer to it.

Add a preventative method to AyStar when it's initializing, to limit the number of max_search_nodes if left unattended.
9 months ago
translators 8ab3838387 Update: Translations from eints
vietnamese: 20 changes by KhoiCanDev
italian: 5 changes by Rivarossi
9 months ago
Peter Nelson 661e0cd82d
Fix: Make compact picker windows expand to fill if necessary. (#11591) 9 months ago
translators 651343d69e Update: Translations from eints
english (au): 17 changes by krysclarke
english (us): 17 changes by 2TallTyler
italian: 30 changes by Rivarossi
russian: 17 changes by Ln-Wolf
french: 36 changes by ottdfevr
portuguese (brazilian): 30 changes by pasantoro
9 months ago
translators 0e6038f0e5 Update: Translations from eints
english (us): 19 changes by 2TallTyler
vietnamese: 14 changes by KhoiCanDev
turkish: 26 changes by BeratSJ
dutch: 19 changes by Afoklala
9 months ago
Tyler Trahan 8816c9dd26 Change: Improve and standardize wording of World Generation helptexts 9 months ago
Tyler Trahan 1343d7e25a Change: Don't mention TerraGenesis in setting helptexts
We no longer show the land generator in the World Generation GUI, so this is less important to explain in tooltips.
9 months ago
Tyler Trahan 1e8aa9ce22 Add: Use more tooltips in World Generation GUI 9 months ago
Peter Nelson 302e8852c1
Fix: Crash if squirrel compatibility scripts cannot be parsed. (#11589) 9 months ago
Loïc Guilloux 7726f8f245
Fix: [Script] Properly store the previous AsyncMode state (#11587) 9 months ago
Peter Nelson bbf3028f89 Fix #11585: Crash when cleaning AI/GS with nested AsyncMode.
Do not throw sanity check when in_shutdown is true. This is also applied to
ExecMode and TestMode as they follow the same pattern.
9 months ago
Peter Nelson 47dd04d16c Fix: Don't crash when saving a crashlog save with no main window open. 9 months ago
Peter Nelson da2d21f5b0
Fix: Left-over printf-style format passed to fmt. (#11584) 9 months ago
translators 63c006a174 Update: Translations from eints
korean: 20 changes by telk5093
danish: 13 changes by bscargo
portuguese (brazilian): 18 changes by pasantoro
9 months ago
Jonathan G Rennison 97b86b7147
Codechange: Use MakeParameters with GetNextParameter in FormatString (#11583)
Instead of StringParameters subspan, to avoid GSs being able to
cause subspan boundary assertion failures
9 months ago
Peter Nelson 12bb750128
Codechange: Cargo filters no longer take an index. (#11582)
Update naming of functions to reflect that parameter is now a cargoid.
9 months ago
Peter Nelson d6515d6c98
Fix 0a8bcdd: Scaling non-sprite fonts does not depend on _font_zoom changing. (#11579) 9 months ago
translators 8e05001001 Update: Translations from eints
english (au): 18 changes by krysclarke
russian: 18 changes by Ln-Wolf
9 months ago
Peter Nelson 6c5aeae01b
Fix #11577: Extra viewport opened in wrong location. (#11578)
ExtraViewportWindow calls IninitializeViewport() with focus as 0, which is ambiguous as focus should be either a TileIndex or a VehicleID.

Instead, pass the tile and let InitializeViewport() handle setting all the coordinates.
10 months ago
Peter Nelson 0a8bcdd344
Change: Be selective about clearing sprite/font caches on interface scale change. (#11576)
Sprite cache contains all zoom levels anyway, so does not need to be reloaded.

Font cache does not need to be clear if the font zoom hasn't changed, i.e. when changing the max sprite zoom level setting.
10 months ago
translators b62fafc5d4 Update: Translations from eints
english (au): 1 change by krysclarke
italian: 1 change by Rivarossi
german: 7 changes by SecretIdetity
russian: 1 change by Ln-Wolf
danish: 1 change by bscargo
french: 1 change by glx22
10 months ago
Peter Nelson dc27f1649a Fix e2425b7: Sprites no longer refreshed if max zoom level changed.
Handle this via AdjustGUIZoom() instead.
10 months ago
Peter Nelson 162ffc288d Fix e2425b7: WidgetDimensions and depot sizes not set up if blitter forced.
Set up WidgetDimensions and depot sizes during InitWindowSystem().
10 months ago
Tyler Trahan 2bada59193 Feature: Mode to display timetable in seconds 10 months ago
Tyler Trahan 2a62caa30b Codechange: Use Ticks for BaseConsist timetable fields 10 months ago
Tyler Trahan 051abb2fad
Change: Don't show scoring year in high score table (#11546) 10 months ago
Peter Nelson 6e8c27b8e5
Change: Hide bevel for resizeable sparse layout windows. (#11572)
When clicked, the button is still highlighted to show that it is active.

The bevel is controlled with widget_data by RWV_SHOW_BEVEL or RWV_HIDE_BEVEL values.
10 months ago
SamuXarick a3d56e2c6e
Fix: Prevent overflow when calculating max town noise (#11564)
Max town noise could overflow if the population was high enough. The value is now clamped.
10 months ago
Peter Nelson 09251d993c
Change: Use sparse padding for network server list. (#11571) 10 months ago
Peter Nelson 102fc6a9d1
Cleanup: iif should be iff (if-and-only-if) (#11570) 10 months ago
Peter Nelson 8186182e4c Codechange: Set displayed plane earlier to avoid ReInit. 10 months ago
Peter Nelson fb60f8f2f5 Codechange: Simplify BuildRailStationWindow initialization. 10 months ago
Peter Nelson 66b064cbad Codechange: Use return value of SetDisplayedPlane to simplify CompanyWindow. 10 months ago
Peter Nelson ebf299e1b4 Codechange: Make SetDisplayedPlane return whether the plane changed or not. 10 months ago
Peter Nelson d6060a4d47
Change: Use sparse padding for start network server window. (#11569) 10 months ago
Peter Nelson a759d35f26
Fix #11352: Draw all network server info as multiline strings. (#11567)
This also allows the 'header' (which is not actually a widget) to grow
as necessary to fit the server name.
10 months ago
Peter Nelson c0ea0589b4
Fix: AirportGetNearestTown incorrectly assumed first TileIterator result was origin. (#11565)
Not all TileIterators are equal, and some do not start at the top-corner, so the perimeter check was wrong. As the caller already has thie origin tile, use that instead.
10 months ago
Peter Nelson 10f94fb0dd Codechange: Remove runtime variable size assertion. 10 months ago
Peter Nelson 9f853c10b0 Codechange: Add compile-time check that variable size matches saveload entry. 10 months ago
Peter Nelson cb53fed229 Codechange: Move VarType helpers to allow earlier use. 10 months ago
Peter Nelson a05d6ee404 Fix: Ensure saveload type match variable type.
This either changes the saveload definition or changes the variable depending on which makes more sense.
10 months ago
Peter Nelson 54d45a6047 Codechange: Don't keep autosave_interval in std::chrono::minutes.
This variable is saved as a setting which requires the variable type to be known, but std::chrono::minutes may vary depending on system type.

Instead, keep as uint32_t and convert to std::chrono::minutes only when setting the timer.
10 months ago
Peter Nelson a29766d6cc Codechange: Move dropdown list size and position calculation to window.
This simplifies initialization of DropdownWindow, as instead of both the caller code and the class needing to know about list sizes and available space, only the DropdownWindow needs to know.
10 months ago
Peter Nelson f1cceb43a1 Codechange: Move initialization of DropdownWindow members. 10 months ago
Peter Nelson 52b121942b Codechange: DropdownWindow's selected_index is not actually an index. 10 months ago
translators 2dcb00a79a Update: Translations from eints
galician: 88 changes by pvillaverde
chinese (simplified): 4 changes by WenSimEHRP
italian: 6 changes by Rivarossi
turkish: 2 changes by densxd
dutch: 5 changes by Afoklala
10 months ago
Peter Nelson 3317e29847 Fix #11516: Adjust window size by interface scale during ReInit.
To simplify this and ensure that scaling only occurs once, regardless of
resize nesting, each window now remembers interface scale.
10 months ago
Peter Nelson e2425b72c1 Fix: Don't implicitly ReInit all windows after updating the character width cache.
This caused duplicate ReInit when changing interface scale.
10 months ago
Peter Nelson 54ba757910
Fix #11556: Missing saveload change for OrderBackup. (#11557)
Apply the saveload change from #11468 to OrderBackup and bump again.
10 months ago
Jonathan G Rennison 2cbe91c312
Fix #11551, aab580e0a: Link graph job results were incorrectly applied (#11558)
Edge flows were incorrectly restricted because the restricted
instead of unrestricted last update date was checked

See also: #10314
10 months ago
Peter Nelson 60565da8f9
Codechange: Add specific WidgetDimension for dropdown list window. (#11554)
This avoids contorting fullbevel dimensions.
10 months ago
Peter Nelson 89461b5561
Codechange: Don't highlight unselectable dropdown item. (#11553) 10 months ago
Peter Nelson 90e386acaa
Codechange: Vertical spacing for caption is captiontext, not framerect. (#11550)
This does not really matter as the caption height is sized correctly later anyway, so this just avoids confusion.
10 months ago
Peter Nelson bdef9b451c
Codechange: Remove unnecessary SetMinimalTextLines for text buttons alongside captions. (#11549) 10 months ago
translators d8f989a1f5 Update: Translations from eints
danish: 3 changes by bscargo
portuguese (brazilian): 5 changes by pasantoro
10 months ago
Loïc Guilloux 2a22063d77
Change: Remember the active game option window tab (#11547) 10 months ago
Peter Nelson 58c252b81a Cleanup: Remove unnecessary pressed button offset code. 10 months ago
Peter Nelson 884b9e6690 Change: Revert pressed-button content shifting introduced in r2161.
This restores original behaviour, and prevents all image buttons being slightly too large.
10 months ago
translators a92d0da8b4 Update: Translations from eints
finnish: 5 changes by hpiirai
polish: 5 changes by pAter-exe
10 months ago
translators 7d0ce826db Update: Translations from eints
english (au): 5 changes by krysclarke
english (us): 5 changes by 2TallTyler
korean: 5 changes by telk5093
russian: 5 changes by Ln-Wolf
catalan: 5 changes by J0anJosep
french: 5 changes by glx22
10 months ago
Peter Nelson e749bbefe5
Change: Show rating in station list even with no cargo waiting. (#11540)
e745bd9 (r21144) changed the filter from cargo waiting to rating, which makes the station list display appear inconsistent with the cargo filter selection.
10 months ago
Peter Nelson 07a8bd21e4 Fix: Make station list filters use per-window state instead of global state.
Changing filters with multiple windows open would have unexpected effects leading to inconsistent state.

Now state is loaded and saved when the window is opened and closed, so state is still persistent.
10 months ago
Peter Nelson dcf730f1f6 Codechange: Optionally allow passing state to GUIList sorter function.
GUIList sorter functions can currently only use global state, which makes per-window-instance sorting difficult.
10 months ago
Peter Nelson 4d9f335f36 Change: Add outline of sprite to sprite aligner. 10 months ago
Peter Nelson f7380a4d2d Change: Make NewGRF Sprite Aligner window resizeable. 10 months ago
Peter Nelson 0434c1b474 Feature: (-tte) Add zoom level buttons to sprite aligner.
This allows for offsets to be adjusted a different zoom level than currently in use, and offset adjustment and display is also more convenient.
10 months ago
Peter Nelson 4e5700939d Change: Use sparse padding for sprite aligner. 10 months ago
Peter Nelson 9122b4eb47
Codechange: SetMinimalTextLines(1, 0) is implied for widgets with text. (#11536) 10 months ago
Peter Nelson 17c3ce8632
Codechange: Use maxdim instead of setting width/height separately. (#11535) 10 months ago
Peter Nelson aae6e0481e
Codechange: Rearrange AI/GS debug window following invalidate/set state/draw pattern. (#11483)
The AI/GS window updated its state as it was drawn, and would redraw again if some state had changed.

Instead, update state either during OnInvalidateData or before any drawing commences.
10 months ago
Peter Nelson 1084ab4b66 Add: Website button to Game Options window for basesets.
This links to the optional "url" item in the baseset's [metadata] section.
10 months ago
Peter Nelson cc528bd8fc Change: Adjust layout of Content and NewGRF Website buttons for consistency. 10 months ago
Peter Nelson 2272e8fe0e Add: Website button for Game Script settings window. 10 months ago
Peter Nelson f60c14a682 Add: Website button for AI settings window. 10 months ago
Peter Nelson 7ba89b946e
Change: Hide unused cargos from vehicle cargo filter. (#11533)
The list of used cargo types is updated when the list is invalidated.
10 months ago
Peter Nelson 9a92e02fa7
Change: Add tooltips for text file buttons, and shorten Website / Readme buttons. (#11534) 10 months ago
Patric Stout b866e52b17
Remove: officially mark Vista as no longer supported (#11531)
It is very likely Vista hasn't been working for years, but the
amount of users that use an OS that has been EoL for over 11 years
is very small, so reports happen rarely.
10 months ago
Peter Nelson a258833aee
Fix 67d071d: WC_STATION_LIST should be invalidated by owner, not station index. (#11530) 10 months ago
Peter Nelson 1aedea8eda Feature: Place cargo icon on cargo filter dropdowns.
Reveal the pixel art.
10 months ago
Peter Nelson 76701c4622 Add: Function to get largest cargo icon size. 10 months ago
Peter Nelson 8db7c79e79 Codechange: Add DropDownIcon constructor to override dimension.
This avoids the need to construct a DropDownIcon and set the dimension after.
10 months ago
Peter Nelson 49532914dd Change: Use CRTP-mixins to compose dropdown list items.
This allows list items to built from component parts as required, and additional
functionality is added:

* Icons and text can be positioned at the start or end of the space (templated.)
* Font size of text can be changed (templated.)
* Palette of sprites can be set (runtime.)
10 months ago
Peter Nelson 62e4d1e507 Codechange: Dimension must have both width and height.
Default parameters allowed Dimension to be constructed with only a width.

Instead use separate empty and width/height constructors to ensure that either none or both are provided.
10 months ago
Peter Nelson 0b1429ce14
Fix: AI window did not update button disabled state when changing values. (#11527) 10 months ago
Peter Nelson cc488ec6c9
Fix ddd609c: Reverse build probability callback was not called for articulated parts. (#11526) 10 months ago
Peter Nelson 4a5ab331e2
Change: Add extra padding to climate buttons to match pre-#11464. (#11525)
Padding used to be included in the SetMinimalSize() part which was removed, but also made it require specific sprite sizes.

This now adds padding on the already determined size, removing the need for hardcoding pixel dimensions and allowing the sprites to be any size.
10 months ago
Peter Nelson 6f7153bf71
Codechange: Make a generic DrawRectOutline function from DrawOutline. (#11524)
This allows drawing an outline from Rect, not just constrained to a Widget's Rect. And reduces duplication a little.
10 months ago
rubidium42 33ba609290 Fix #11521, e404ba0: size for remaining span determined incorrectly 10 months ago
rubidium42 cb8612ba79 Remove: ZOOM_LVL_COUNT
This is the only enumeration with a COUNT and END. The logic of the COUNT
implied that BEGIN could be non-zero, but all but two uses of zoom level
assume that BEGIN is zero, making the separate count only confusing.
10 months ago
Peter Nelson ddd609ce9b
Feature: Randomize direction of rail vehicle on build based on probability callback. (#11489)
This allows NewGRF authors to indicate that the game should randomly flip rail vehicles on build, without needing to use random bits nor duplicate sprites to handle it themselves.

To use this functionality, test for callback 162 (CBID_VEHICLE_BUILD_PROBABILITY)  and var10 = 0 (values other than 0 are reserved for future use), and return a value between 0 and 100 inclusive.

The return value is a percentage chance of reversing the vehicle. A value of 0 will always build a forward facing vehicle, and 100 will always build a reverse facing vehicle.
10 months ago
Peter Nelson 6f35f3274f
Fix ab1a4c6c: Crash if the "No Music" set is loaded because there is no current set_index. (#11511)
Add a helper function to get the current set_index which which checks it is in range.
10 months ago
rubidium42 27082f9efa Codechange: pass std::string references to OpenBrowser 10 months ago
Jonathan G Rennison 8437b20fed Fix: Deleting towns did not check for waypoints referencing the town 10 months ago
Peter Nelson 7b0afec11f Codechange: Use max_element to find highest cargo amount. 10 months ago
Peter Nelson 3f853d8003 Codechange: Use range-for to simplify getting first non-zero value.
This reduces indexed array access.
10 months ago
Tyler Trahan 4181d3c1ff Codechange: Don't use a magic number for the number of DiagDirections 10 months ago
Tyler Trahan 2dad9263d7 Doc: Add, fix, and clean up documentation inside town_cmd.cpp 10 months ago
Tyler Trahan 745945c4d3 Codechange: Be consistent with how we name common parameters
TileIndex is always tile and Town is always *t. Don't use t and *town.
10 months ago
Tyler Trahan 1b14eca9d9 Codechange: Rename TryClearTile() for clarity
The function does not execute the clearing action.
10 months ago
Tyler Trahan a98fe9f317 Codechange: Rename MakeTownHouseBigger() for clarity 10 months ago
Tyler Trahan 060672428d Codechange: Merge confusingly-named helper functions into their timer 10 months ago
Tyler Trahan 1f41e773d6 Codechange: Use consistent name for bay road stops
As of #10494, this is how we describe original dead-end road stops.
10 months ago
translators 5f442c9127 Update: Translations from eints
english (us): 1 change by 2TallTyler
10 months ago
Peter Nelson 519fe33175
Fix ab1a4c6c: Changing baseset/playlist while shuffle is on does not change song. (#11510)
The change-playlist function relied on toggling shuffle to restart playing which is no longer the case, so always handle it when changing playlist instead.
10 months ago
Peter Nelson e3924f3231
Fix #10811: Allow dragging vehicle in depot to any free row. (#11508) 10 months ago
Peter Nelson e6d132d24b
Fix #10926: New free wagons no longer split by type. (#11507)
NormalizeTrainVehInDepot() should only be called if an engine was built, not for wagons.
10 months ago
Peter Nelson 3df7d1aff9
Codechange: Template input buffer type in audio mixer. (#11505)
This reduces code duplication.
10 months ago
Peter Nelson e5aed24395
Codechange: Use std::array for industry tile cargo acceptance. (#11498)
This avoids use of memcpy/memset to copy or fill.
10 months ago
Peter Nelson f268c90bd3
Change: Use sparse padding for content download window. (#11501) 10 months ago
Peter Nelson ab1a4c6c80 Change: Don't restart playback when toggling playlist shuffle.
Instead update the selected playlist entry for the current song.
10 months ago
Peter Nelson 6c91c4b99d Fix: Invalidate playlist window when (un)shuffling playlist. 10 months ago
Peter Nelson 4c6ccb5248
Change: Try stopping extmidi player with SIGINT first. (#11404)
This may give the player a chance to issue MIDI note-off commands.

The kill/waitpid cycle is also less aggressive, waiting 50ms each time.
10 months ago
Peter Nelson e3622da408
Fix #11500: Rename Textfile GUI's LinkType to HyperlinkType. (#11502)
This disambiguates it with LinkType in league tables.
10 months ago
Peter Nelson 46098449b6
Fix 7cfcf65: cargo_filter_criteria is now a CargoID instead of a index. (#11497) 10 months ago
Peter Nelson 7bee955a4b
Change: Set height of larger heightmap/scenario worldgen buttons by text height. (#11496)
This allows the button height to scale properly by font size.
10 months ago
Jonathan G Rennison c5a292c0df
Fix #11493: Incorrect flow values in LinkGraphJob::EdgeAnnotation (#11494) 10 months ago
translators c6b9227dbb Update: Translations from eints 10 months ago
Tyler Trahan d28caa3ced Codechange: Use ticks for timetable start date 10 months ago
Tyler Trahan 3902acb13d Codechange: Define a TickCounter variable type for TimerGameTick::counter 10 months ago
Peter Nelson bc1d49ebf4 Codechange: Add missing `ar` from `Toolb`. 10 months ago
Peter Nelson 5489b9fc0c Codechange: Undo #11447, drop down list divider lines are now explicit. 10 months ago
Peter Nelson 667be98ce8 Codechange: List toolbar menu items and dividers explicitly.
This makes it clearer what items will be shown in the list, allows for non-consecutive
string IDs, and means unused enum values are not necessary.
10 months ago
Peter Nelson 47eabe0cd9
Fix 7cfcf65: Check if last-remembered build vehicle cargo filter is valid. (#11486)
This can be invalid when switching between games with different cargoes loaded.
10 months ago
Peter Nelson 096da3e59f
Fix #11407: Don't steal focus from dropdown menus. (#11484) 10 months ago
Peter Nelson 09d01bd015
Fix: Restore original cargo legend 'blob' dimensions. (#11480)
An off-by-one in a previous life made the 'blob' too narrow.
10 months ago
Peter Nelson c2f19fed24
Fix: Widget without tooltip should use STR_NULL not STR_EMPTY. (#11482) 10 months ago
Peter Nelson c18a1494b7
Codechange: Remove FONT_HEIGHT_... macros. (#11481)
These make it look like we're dealing with a constant, but actually each is a call to `GetCharacterHeight(...)`.
10 months ago
translators 96ec9c1b47 Update: Translations from eints
indonesian: 67 changes by ekaknl22
10 months ago
Peter Nelson 0d60dc0353 Fix 96d98d08: Crash in text layouter due to trying to find height of string with zero-width.
96d98d08 removed the hardcoded minimum width in favour of all-calculated widths, however this does not work when determining multiline text sizes.
10 months ago
Peter Nelson 62d4fd0572 Codechange: Add method to guess the width/height required for a multiline string.
This is necessary for widget layouts where a minimum width is not yet known during UpdateWidgetSize().
10 months ago
Peter Nelson f281525492 Codechange: Add method to resize both width and height of a widget. 10 months ago
Peter Nelson d04fd4602d Codechange: Assert that max width passed to GetStringHeight is non-zero.
Max width of zero will cause text layouters to crash, potentially after exhausting memory first.
10 months ago
Peter Nelson 0578b8eaa9
Change: Use picker-spacing for scenario found town window. (#11478) 10 months ago
Peter Nelson a58a043402
Fix 6065122: Missing SetFill on worldgen spacer. (#11477) 10 months ago
Jonathan G Rennison 9822fa6584
Fix: Trivial autoreplace of mixed cargo articulated engines (#11253)
Do not fail autoreplace/autorenew of mixed cargo articulated engines
due to an inability to refit to mixed cargoes, when no refit is
required because the target engine already has a suitable set of cargoes.
Notably, this allows autorenew (autoreplace to same engine type)
to succeed.
10 months ago
Peter Nelson 96d98d08c8
Change: Use sparse padding for main intro menu. (#11475) 10 months ago
Peter Nelson c80fa7d752
Codechange: Simplify setting minimum width for game options dropdown lists. (#11474)
Height isn't necessary as drop down controls already have sufficient height, so we can use GetDropDownListDimension() to get the width.
10 months ago
Peter Nelson f58a7ef673
Codechange: Remove now-unnecessary containers in picker layouts. (#11473)
These are no longer necessary as the issue they work around was resolved by #11471
10 months ago
Peter Nelson 293a26f248
Change: Use sparse padding and SETTING_BUTTON sizes for custom currency window. (#11472) 10 months ago
Peter Nelson 05b55c4d43
Fix: Extra space allocated to container-within-container may not get allocated to children. (#11471)
Always derive additional length from contained widgets instead of from the container, as the container's minimal length may have been adjusted by an NC_EQUALSIZE parent container.
10 months ago
translators 29102ce42c Update: Translations from eints
dutch: 1 change by Afoklala
10 months ago
Peter Nelson 08778094f4
Fix: extmidi did not move on to next song after playing ends. (#11469)
`song` is no longer a C-style string so cannot be cleared by writing a NUL char.
Use `.clear()` to properly clear a std::string.
10 months ago
Peter Nelson b2d4d90502 Change: Apply interface scaling to NewGRF settings min/max sizes. 10 months ago
Peter Nelson 42ae61a4fe Change: Use sparse padding for NewGRF settings window. 10 months ago
Peter Nelson cdb4e98a15
Change: Use sparse padding for AI/GS settings windows. (#11466) 10 months ago
Peter Nelson f93711838f
Fix 6317967: Missing exception for SetPipRatio(). (#11465) 10 months ago
Peter Nelson 60651227a0
Change: Simplify world gen widgets and use sparse padding. (#11464) 10 months ago
translators bca321443a Update: Translations from eints
french: 1 change by Lishouuu
10 months ago
Peter Nelson 7d48a3f073
Codechange: Move RectPadding::zero definition to header. (#11461)
This potentially allows better inlining/optimization.
10 months ago
Peter Nelson e2e0753916
Codechange: Use GetCurrentRect() where feasible. (#11460) 10 months ago
Peter Nelson 17ceed0241
Change: Use sparse padding for Game Options window. (#11463) 10 months ago
Peter Nelson 306e75223a Change: Adjust layouts and standardize spacing for company-related windows. 10 months ago
Peter Nelson 58c037fba0 Change: Increase finance window lines (and underlines) with interface scale. 10 months ago
translators 1dff1e34f6 Update: Translations from eints
tamil: 3 changes by Jeyanthinath
10 months ago
Peter Nelson 7cfcf65f95 Codechange: Simplify cargo filter lists, building only when required.
Some cargo filter lists were built in advance, and used as lookups to test which cargo type to filter.

Instead, use the Cargo ID directly as the filter parameter, and build the lists only when the drop down list is used.
10 months ago
Peter Nelson 08dfe35442 Codechange: Move DropDownList height and width calculation to helper. 10 months ago
translators 1242b355e5 Update: Translations from eints
danish: 1 change by bscargo
polish: 1 change by pAter-exe
10 months ago
Peter Nelson c877494f7a
Codechange: Simplify autoreplace rail/road types by using separate widget. (#11457)
This avoids needing to determine which type of list to deal with by additionally checking the window number for VEH_TRAIN/VEH_ROAD.
10 months ago
Tyler Trahan 7a6d102c4b
Codechange: Clean up timetable start checks (#11456) 10 months ago
translators 5446ece100 Update: Translations from eints
vietnamese: 7 changes by KhoiCanDev
korean: 1 change by telk5093
catalan: 7 changes by J0anJosep
11 months ago
translators 1432511fe5 Update: Translations from eints
english (au): 1 change by krysclarke
italian: 7 changes by Rivarossi
russian: 1 change by Ln-Wolf
finnish: 1 change by hpiirai
portuguese: 1 change by azulcosta
portuguese (brazilian): 1 change by pasantoro
11 months ago
Tyler Trahan 235ac0bceb
Codechange: Reword rail/road type label constants (#11451) 11 months ago
translators ef1abbcd1f Update: Translations from eints 11 months ago
Peter Nelson bd2ddb07ca
Change: Move baseset missing/corrupted files label to list item. (#11455)
This allows any baseset error to be displayed in the drop down list so it is more easily visible, and avoids wasted space in the layout.
11 months ago
Peter Nelson 1071acb483
Codechange: Redundant use of char * and c_str(). (#11454) 11 months ago
Peter Nelson 938c8339d2 Codechange: Ensure space between `for`/`if` and `(`. 11 months ago
Peter Nelson d4008850e3 Codechange: Ensure function opening `{` is on new line. 11 months ago
Jonathan G Rennison 1de1af08b9
Codechange: Replace AllocatedStringParameters with ArrayStringParameters (#11452)
All uses of AllocatedStringParameters are with a compile-time fixed
constant.
Use of a dynamically allocated buffer on the heap is unnecessary and
increases overhead, particularly due to frequent use as a temporary.
11 months ago
translators 92816ac96b Update: Translations from eints
german: 3 changes by SecretIdetity
romanian: 6 changes by bnegrut
11 months ago
Peter Nelson 9f90ab7b04
Codechange: Use rail/road type label constants instead of literals. (#11450) 11 months ago
translators 382d7a9076 Update: Translations from eints
hungarian: 54 changes by titanicbobo
11 months ago
Peter Nelson 90bd8e64d8 Change: Simplify help window widgets and use sparse padding. 11 months ago
Peter Nelson 55adbe10b7 Add: WidgetDimensions for 'sparse' widget windows.
These are for windows that have space between widgets instead of being clumped together.
11 months ago
translators 56657eeaae Update: Translations from eints
chinese (simplified): 1 change by WenSimEHRP
danish: 1 change by bscargo
hindi: 111 changes by NisheshTyagi
11 months ago
Peter Nelson 842cf87765 Change: Bring airport picker inline with other pickers. 11 months ago