Commit Graph

21800 Commits (e517e556201212d6e705ae2571ce51823b56a493)

Author SHA1 Message Date
Peter Nelson 4f3adc038a Cleanup: Use standard comment codestyle. 11 months ago
Tyler Trahan 49d53c41ab
Doc: Don't use other names for road vehicle bay stops (#11418) 11 months ago
Peter Nelson d3cb6e1e67
Codechange: Call Widget::SetDirty/SetLowered directly. (#11417)
In these instances we already have the widget to hand, so don't need to look it up by index again.
11 months ago
Tyler Trahan 89480f3531
Change: Don't set vehicle on time if timetable not started (#11359) 11 months ago
Peter Nelson bb50cbb772
Codechange: Assign/StoreSizePosition x/y can be negative. (#11416)
AssignSizePosition is used with negative values when an NWidgetMatrix is
scrolled, but they were passed as unsigned and then stored as signed.

Widget pos_x/pos_y were already made signed.
11 months ago
translators c97120f003 Update: Translations from eints
english (au): 1 change by krysclarke
chinese (simplified): 5 changes by WenSimEHRP
korean: 2 changes by telk5093
russian: 1 change by Ln-Wolf
portuguese: 1 change by azulcosta
portuguese (brazilian): 1 change by pasantoro
polish: 1 change by pAter-exe
11 months ago
Peter Nelson 35a7770fde
Fix 233aac5: Set newline default comment for new groups. (#11411)
The newline space between ini groups is actually recorded as a comment of the group. This got inadvertantly dropped in #11364.
11 months ago
frosch e81313e93e Feature: Base graphics can offer parameters for additional settings. 11 months ago
frosch de3f29d7b2 Add: store base graphics parameters in openttd.cfg. 11 months ago
frosch f09fda1ff0 Codechange: store the GRFConfig of the base graphics, once loaded. 11 months ago
frosch 0b7ecf6102 Codechange: use the shortname as unique id to identify the base graphics in openttd.cfg. 11 months ago
frosch 97df27e41f Codechange: Store base graphics settings in a separate section in openttd.cfg. 11 months ago
Peter Nelson 2d3fef3113 Fix: Incorrect padding for smallmap legend 'icon'.
The size of this icon is based off FONT_HEIGHT_SMALL - 1, so it makes sense to use a scaled 1 here.
11 months ago
Peter Nelson a8aba06a07 Fix: Insufficient space for labels on smallmap legend. 11 months ago
translators 186829b99f Update: Translations from eints
english (au): 1 change by krysclarke
dutch: 1 change by TrueBrain
portuguese: 1 change by azulcosta
polish: 4 changes by pAter-exe
11 months ago
translators 40f52afac2 Update: Translations from eints
indonesian: 1 change by liimee
russian: 2 changes by Ln-Wolf
finnish: 1 change by hpiirai
danish: 1 change by bscargo
french: 1 change by ottdfevr
portuguese (brazilian): 1 change by pasantoro
11 months ago
translators 9e6ea16ca7 Update: Translations from eints 11 months ago
Peter Nelson c0aa9a5f87
Add: Debug tool to draw widget outlines. (#11401)
This is considered a developer tool and is controlled from the help menu (or default hotkey Ctrl-O).

This draws a white dashed outline around widgets. NWidgetSpacer and (unused) WWT_EMPTY widgets are also filled with check pattern to highlight them, as they usually indicate a design issue.
11 months ago
Peter Nelson 129e98fbab
Fix d42a78f: Some raw drop down list strings may need token processing. (#11400)
Storing the raw string without processing though GetString() caused token
processing to be skipped.
11 months ago
Peter Nelson 062c19830b
Fix: OpenTTD can fail to exit on an error due to mutex locks in threads. (#11398) 11 months ago
translators 7b376493a2 Update: Translations from eints
dutch: 3 changes by Afoklala
french: 1 change by ottdfevr
11 months ago
translators 7b4ecb5241 Update: Translations from eints
korean: 3 changes by telk5093
slovak: 1 change by legitalk
polish: 4 changes by pAter-exe
11 months ago
Peter Nelson 5ae5c35f38 Codechange: Remove redundant WWT_PANEL from bootstrap error windows. 11 months ago
Peter Nelson a601a1f406 Change: Use modalpopup spacing for goal question windows. 11 months ago
Peter Nelson 616fb48e25 Change: Use modalpopup spacing for engine preview window. 11 months ago
Peter Nelson 19c314ea1f Change: Use modalpopup spacing for buy company window. 11 months ago
Peter Nelson 8a49c0eb2c Change: Use modalpopup spacing for network relay and survey windows. 11 months ago
Peter Nelson f78c2c9810 Fix: Incorrect title on framerate windows for AIs. 11 months ago
Peter Nelson d19832569e
Cleanup: No need to cast `const Font *` to itself. (#11395) 11 months ago
translators 3d7f54472d Update: Translations from eints
english (us): 3 changes by 2TallTyler
danish: 3 changes by bscargo
polish: 1 change by pAter-exe
12 months ago
translators 9cdf66d3a1 Update: Translations from eints
czech: 18 changes by vladoschreiner
german: 27 changes by Wuzzy2
12 months ago
translators d1351fa0d2 Update: Translations from eints
english (au): 3 changes by krysclarke
russian: 3 changes by Ln-Wolf
finnish: 3 changes by hpiirai
turkish: 4 changes by BeratSJ
french: 3 changes by ottdfevr
portuguese: 3 changes by azulcosta
portuguese (brazilian): 3 changes by pasantoro
12 months ago
Tyler Trahan 92ab114e13
Fix f49ffaa: Use DateAtStartOfYear() to calculate max timetable start date (#11388) 12 months ago
translators f32058e4e5 Update: Translations from eints 12 months ago
Bernhard Reutner-Fischer ac42dea7b2 Codechange: Remove unused parameter for Height()
DropDownListItem::Height does not need to take an argument so remove it

Signed-off-by: Bernhard Reutner-Fischer <rep.dot.nop@gmail.com>
12 months ago
Peter Nelson 59a2abd298 Codechange: Use unified NWidgetContainer methods instead of duplicating.
Most NWidgetContainer derivatives implemented Draw() and GetWidgetFromPos()
the same way. Move this these to NWidgetContainer itself to avoid repeating.
12 months ago
Peter Nelson af41c5cb4e Codechange: Hide toolbar buttons by setting width to zero.
Zero-width is how widgets are hidden elsewhere.
This removes the need for an extra array to lookup if a button is hidden.
12 months ago
Peter Nelson 81ecbaaa33 Codechange: Hide multiplayer headers by setting width to zero.
Zero-width is how widgets are hidden elsewhere.
This removes the need for an extra array to lookup if a header is hidden.
12 months ago
Tyler Trahan 2dd2910ab3
Feature: Cheat to fix station ratings at 100% (#11346) 12 months ago
Rubidium 37f84b7372 Codechange: replace x.size() != 0 with !x.empty() 12 months ago
Rubidium f16399f4c9 Codechange: replace x.size() > 0 with !x.empty() 12 months ago
Rubidium c9276c2959 Codechange: replace x.size() == 0 with x.empty() 12 months ago
Peter Nelson f06b3e9846
Change: Use CARGO_LIST to show station cargo acceptance changes. (#11379)
This simplifies construction of the news message and allows for more than
two changes to be show in one line.
12 months ago
translators 4c24334fda Update: Translations from eints 12 months ago
Peter Nelson fd6f1e844a
Codechange: Avoid emplace_back(new()) into a unique_ptr. (#11384)
This could theoretically leave an unmanaged pointer in certain circumstances, and directly using
make_unique shows intent.
12 months ago
Peter Nelson 429a6f58e7
Codechange: Use max_element to find best cargo (sub-)type in NewGRF var 42. (#11370)
This replaces two manual loops to find the best cargo (sub-)type.
12 months ago
Peter Nelson 90351578a6 Codechange: Use std::map instead of fixed array to store refit options.
This simplifies handling of available refit options.
12 months ago
Peter Nelson e4f94747f3 Codechange: Use comparator struct to sort cargo ID by predefined sort order.
This allows reuse of the comparator where a typename is used instead.
12 months ago
Peter Nelson bc8e26f4e7
Codechange: Simplify usage of GRFFile cargo_map. (#11349) 12 months ago
Peter Nelson 69e20e79ab Codechange: Add const versions of GetItem/GetGroup, and sprinkle liberally.
Non-const version of GetItem is not needed.
12 months ago
Peter Nelson 17ba9d8c96 Codechange: Use range-for instead of nullptr-terminated list in settingsgen.
This simplifies iteration and avoids use of pointers.
12 months ago
Peter Nelson 233aac567b Codechange: Use std::list instead of C-linked list for ini files.
This removes self-management of memory with new/delete and allows simpler iteration.
12 months ago
Peter Nelson ec1cf96b62 Codechange: Move initialization of group-type to CreateGroup function. 12 months ago
Peter Nelson 8bd06807e4 Codechange: Pass initializer list instead of null-terminated list of group types. 12 months ago
Peter Nelson 1fecbeff76 Codechange: Remove create parameter from IniLoadFile::GetGroup.
GetGroup now only returns nullptr if the group does not exist.
Use GetOrCreateGroup to create a group.

This avoids creating groups while reading ini files.
12 months ago
Peter Nelson c47a0e1578 Codechange: Correct scope of IniItem for for-loop. 12 months ago
Peter Nelson 6ce7195ef1 Codechange: Split GetGroup into GetGroup/GetOrCreateGroup.
This follows the pattern used for GetItem/GetOrCreateItem, and allows use
of references where we know the group must exist.
12 months ago
Peter Nelson 54b1a067eb Codechange: Test for nullptr instead of treating pointer as boolean. 12 months ago
Peter Nelson d3c5ae2648 Codechange: Add CreateGroup/CreateItem methods for ini files.
This abstracts the internals a bit.
12 months ago
Peter Nelson 0c85ce29ea Codechange: Pass ini file by reference and prefer automatic storage.
This avoids new/delete operations, and (not) checking for nullptr.
12 months ago
Peter Nelson 3961318974 Codechange: Accept std::string in RemoveGroup(). 12 months ago
Peter Nelson bb6fa9bf3b
Change: Display cargo lists in sorted cargo order. (#11383) 12 months ago
Tyler Trahan 088db62dba
Change: Always allow expanding towns in Scenario Editor to build new roads (#11377) 12 months ago
Jonathan G Rennison 4df2640f87 Fix: Tile slope missing from road stops varact2 variable 0x42 12 months ago
Peter Nelson e1c83869ed
Fix: Scale minimum width for server name by interface scale. (#11381) 12 months ago
Peter Nelson 9602de474d Codechange: Use iterators and/or range-for on cargo related loops. 12 months ago
Peter Nelson 2a88e0fab3 Codechange: Use bitmask instead of array for cargo consistency check.
We only need to know if a cargo type is accepted, not how much.
12 months ago
Jonathan G Rennison a1c6923c63
Fix: Assertion in sprite aligner window (#11371)
When clicking sprite number after re-opening window having previously used sprite picker tool
12 months ago
Loïc Guilloux ab805c4e9e
Fix #11375, 7c37dcb: Use STRING2 when the passed string can have 2 parameters (#11376) 12 months ago
Tyler Trahan f49ffaaaea
Fix e4fd99a, Fix #11270: Vehicle max age is not subject to leap years (#11372) 12 months ago
Peter Nelson 356a5d5773
Codechange: Use std::vector in fallback layouter, and shorten accessors. (#11355)
This avoids use of malloc/free (and custom move constructors), and follows how the exist layouters are written.
12 months ago
translators 2be1b72a5b Update: Translations from eints
hungarian: 50 changes by Norodix
12 months ago
translators a73ef95a2b Update: Translations from eints
chinese (simplified): 5 changes by WenSimEHRP
12 months ago
Rubidium adad078b55 Fix #11367, 7c37dcb: use STRING1 when the passed string can have a parameter 12 months ago
Peter Nelson bdcf6b6acd Fix: Treat closing network relay window as a choice of "No".
Issue ConnectFailure when closing the window if the relay request is
considered unhandled.
12 months ago
Peter Nelson f379b31e28 Add: data parameter in Window::Close method.
This allows passing data when closing a window, e.g. to indicate how it was closed.
12 months ago
Peter Nelson cda6f24fe8
Change: Filter duplicate paths from valid search path list. (#11363) 12 months ago
Loïc Guilloux 0458c15060
Cleanup: [MacOS] Remove unneeded WITH_SDL checks (#11360) 1 year ago
Peter Nelson ac9db3f5aa
Codechange: Don't use bit-field in Yapf rail node. (#11362)
Compacting 3 booleans into 3 bits could save memory allocation, however this data is inside a union which also contains a 4-byte integer. As such this gives the cost penalty of a bit-field without any benefit.
1 year ago
translators 84201a8520 Update: Translations from eints
chinese (traditional): 80 changes by wpi3
chinese (simplified): 1 change by WenSimEHRP
1 year ago
Peter Nelson 2fd3d943aa
Fix 94167dfd: Don't shade the currently selected engine in autoreplace window. (#11354)
This breaks #7729 which specifically allows autoreplace of same engine types, and also did not work properly if the engine had been built during the current game session.
1 year ago
translators 89acfc7ff9 Update: Translations from eints
chinese (simplified): 1 change by WenSimEHRP
indonesian: 12 changes by liimee
1 year ago
Peter Nelson d1a94d75e1
Fix: Incorrect include path for timers. (#11351) 1 year ago
translators 7145b7060a Update: Translations from eints
romanian: 3 changes by bnegrut
1 year ago
merni-ns c794676928
Fix #10763, Fix #11168: Display variant groups that consist only of unavailable sub-groups (#11342) 1 year ago
Peter Nelson 5869f790d8
Fix: Check for engine variant loops during NewGRF initialization. (#11343)
Invalid NewGRFs could set up an engine variant loop that never ends. This
was checked for in some places that evaluated variants, but not all. In
most cases this would result in the engines not appearing, but could
potentially cause an infinite loop and crash.

Instead, during NewGRF initialization detect loops and remove invalid
variants before setting display flags.
1 year ago
merni-ns 077b08bbfa
Fix #11261: Set number of items correctly when choosing available airport set (#11344) 1 year ago
frosch 82c8720814 Fix #8846: When upgrading NewGRF presets, copy NewGRF parameters only if the NewGRF are compatible. Otherwise reset to defaults. 1 year ago
frosch d75a5e1a9a Fix: Upgrading NewGRF presets could result in incomplete display of NewGRF parameters until restart. 1 year ago
translators c84219a42e Update: Translations from eints
english (us): 1 change by 2TallTyler
vietnamese: 21 changes by KhoiCanDev
1 year ago
Peter Nelson b5dc9328f2
Change: Store station blocked/wires/pylons flags in map. (#11337)
This stores three flags in unused map bits, and avoids having to look up
station graphics and custom station specs to determine blocked/wires/pylons
status.

This potentially affects rail pathfinding performance.

Savegame version is not bumped, as the flags can just be updated every
time.
1 year ago
translators fd79d34ba9 Update: Translations from eints
korean: 1 change by telk5093
1 year ago
translators beafdadde4 Update: Translations from eints
italian: 25 changes by Rivarossi
1 year ago
Peter Nelson 015fbafe34 Codechange: Add missing override specifiers to squirrel. 1 year ago
Peter Nelson 49dae08a3b Codechange: Add missing override specifiers. 1 year ago
translators a650194227 Update: Translations from eints
finnish: 1 change by hpiirai
1 year ago
translators 976f8c474f Update: Translations from eints
chinese (simplified): 139 changes by BYXxiaonanhui
catalan: 23 changes by J0anJosep
portuguese (brazilian): 1 change by pasantoro
1 year ago
translators f8303b0397 Update: Translations from eints
english (au): 1 change by krysclarke
russian: 1 change by Ln-Wolf
danish: 1 change by bscargo
dutch: 1 change by Afoklala
french: 1 change by ottdfevr
portuguese: 1 change by azulcosta
polish: 68 changes by pAter-exe
1 year ago
Peter Nelson 398c7e5f9d Codechange: Use new function to get a bitmask of empty cargo types. 1 year ago
Peter Nelson 69ee38bd43 Codechange: Use GetAcceptanceMask() instead of duplicating it. 1 year ago
PeterN 6d675c8acf
Fix: #11329: Don't assert vehicle list length is non-zero when only asked to set string parameter. (#11330)
Since #11321, the vehicle list is not yet initialized when SetStringParameters is called, so a test that the vehicle list size is zero is triggered. However, doing this check in the SetStringParameters function is a bit out of its remit, so just remove it.
1 year ago
PeterN cef6a5f79c
Fix #11326: Update autoreplace scrollbar count after clearing engine list. (#11327) 1 year ago
Joan Josep 6b7537646d
Fix: Allow NewGRF inspection of road tiles. (#11323) 1 year ago
Peter Nelson 122bfa2afd Codechange: Use less locals for station free names bitmask. 1 year ago
Peter Nelson aeaa552385 Codechange: Use std::bitset instead of bool array.
This avoids use of C-style pointers and memset.
1 year ago
Peter Nelson 2eacf36d0a Codechange: List fallback station names by ID instead of magic number.
This improves readability and intention of the station name generator.
1 year ago
frosch f40816503f Codechange: Add enum items for dynmically created setting dropdowns. 1 year ago
frosch 39e67b6f4c Codechange: Use existing widget ids instead of raw numbers. 1 year ago
frosch e0df937247 Fix b5885295: NewGRF preset dropdown was broken. 1 year ago
translators 72323ae9e6 Update: Translations from eints
danish: 20 changes by bscargo
1 year ago
Joan Josep b9a1cb5d7c
Fix: Spelling of NIHAirport. (#11322) 1 year ago
PeterN a0c6259e33
Codechange: Don't access cargo filter before it is initialized. (#11321)
The cargo filter list is initialized during window OnInit, but the first
build of the filtered list occurred before this.
1 year ago
PeterN 48dc4219ea
Codechange: Don't pass GUI cargo filter constants to command system. (#11320)
CMD_BUILD_VEHICLE expects CT_INVALID to indicate a new vehicle should not
be refitted on build, but the code passed CF_NONE instead. CF_NONE has the
same numeric value at CT_INVALID, so the test passed, but...
1 year ago
frosch 6b586dddad Cleanup: TransmitNotesOff is only called with buffer==_buffer. 1 year ago
frosch c84fd30317 Codechange: Add missing 'override'. 1 year ago
frosch a7707302e6 Codechange: silence false warning. 1 year ago
frosch 55da426d44 Codechange: All ParagraphLayoutFactory::AppendToBuffer assume that the buffer has at least some space.
Assert on that.
1 year ago
frosch baf7cc858b Codechange: Rename ship docking tile related functions. 1 year ago
frosch 5733145c59 Cleanup: Remove unneeded parameters. 1 year ago
frosch b5885295f0 Codechange: Use parameters, which should be used. 1 year ago
frosch b6c8f301be Codechange: Silence warnings about intentionally unused parameters. 1 year ago
Patric Stout df400ef84a
Fix: only count distance traveled in vehicles for cargo payment (#11283)
No longer you can utilize the free (and instant) labour of station
workers, transporting your cargo from one part of the station to
the other. No more!

Based on patch by dP.
1 year ago
translators 710722e3c1 Update: Translations from eints
korean: 1 change by telk5093
1 year ago
Peter Nelson 6fb89b189f Fix #11315: Sort industries and cargoes by name* in industry chain window.
*Cargo types are sorted by the normal method so it's not strictly alphabetical.
1 year ago
Peter Nelson 106f29f761 Codechange: Use iteration to copy cargo list into CFT_CARGO. 1 year ago
Peter Nelson 4f8d06ff73 Codechange: Use uint8_t instead of byte for numeric values. 1 year ago
Peter Nelson 9457bda614 Codechange: Use std::fill instead of memset when initializing GUI cargo fields. 1 year ago
PeterN 18e75dbc88
Fix: Don't produce invalid cargo. (#11314)
Production for secondary industries did not always check that the produced cargo type isn't valid.
1 year ago
Peter Nelson fd2dd4397f Codechange: Use range-for and iterator to populate default cargo table. 1 year ago
Peter Nelson 280dce9543 Codechange: Reorder CargoSpec to reduce alignment padding. 1 year ago
Peter Nelson e8cbc3c2c7 Codechange: Simplify initialization of default cargoes. 1 year ago
Rubidium 3a2509198f Codechange: use better location for the "invalid" action sentinel value
It used to be a random sentinel for end-of-(widget-)list that was used to tell
that no action has taken place yet. Since the last action is practically the
widget that was pressed, add the sentinel to that enumeration.
1 year ago
Rubidium 09a7902d36 Fix 8ab0936: missed WIDGET_LIST_END removals 1 year ago
Jonathan G Rennison 3afb732c37 Fix #11307: Incorrect GroupStatistics after selling leading wagon
When this results in a countable consist
1 year ago
Peter Nelson 14bcfff6f5 Codechange: Rename INVALID_CARGO to INVALID_CARGO_BITNUM
... to avoid future ambiguity.
1 year ago
Peter Nelson 9d1b131c44 Codechange: Use correct constant for invalid cargo type. 1 year ago
Rubidium 7ef22af2bb Codechange: introduce and use function to raise and dirty a set of widgets when they are lowered 1 year ago
PeterN 6580ff1adb
Fix #11230: Widget layout also failed for group-less vehicle list window. (#11310) 1 year ago
Rubidium 4cf88e068a Remove: unused include of cstdarg/stdarg.h 1 year ago
Rubidium 8ab0936491 Codechange: use parameter pack/folding instead of va_arg macros for widget states 1 year ago
translators 30eba33f1e Update: Translations from eints
english (us): 20 changes by 2TallTyler
1 year ago
frosch c6f5b57f13
Fix #11297, 4e9a871: SCC_GENDER_LIST tried to determine the gender from the wrong sub-string. (#11299) 1 year ago
Patric Stout 39ef4b503f
Fix: also apply cargo filters on shared groups in vehicle listing (#11294) 1 year ago
translators 8d90448153 Update: Translations from eints
romanian: 18 changes by bnegrut
turkish: 22 changes by densxd
dutch: 20 changes by Afoklala
portuguese: 21 changes by azulcosta
1 year ago
Jonathan G Rennison 42170e6c2b Codechange: Rename RoadType parameter of MakeRoadDepot
See: #9642
1 year ago
frosch a3f661cb66
Fix: compilation failed on gcc 10.2 due to missing include. (#11300)
'_exit' is defined in 'unistd.h'.
1 year ago
translators ba51a34b4c Update: Translations from eints
english (au): 20 changes by krysclarke
korean: 25 changes by telk5093
russian: 20 changes by Ln-Wolf
finnish: 20 changes by hpiirai
french: 20 changes by glx22
portuguese (brazilian): 20 changes by pasantoro
1 year ago
Patric Stout 37e2f99c09
Change: store crash logs in JSON format (#11232) 1 year ago
Peter Nelson a0353af223 Codechange: Shuffle Depot members to reduce padding. 1 year ago
Peter Nelson 2fdc22e7ea Codechange: Shuffle CargoPayment members to reduce padding. 1 year ago
PeterN a3c70ee6fb
Codechange: Pass by reference and use emplace-at-end for CargoSummary. (#11296) 1 year ago
Loïc Guilloux b4ff06b6ef
Fix: marked text was not updated during text deletion (#11293) 1 year ago
translators fca62c245f Update: Translations from eints 1 year ago
Loïc Guilloux 220f93f552
Fix: IConsoleWindow:GetTextBoundingRect() is incorrect (#11292) 1 year ago
Daniel Robinson 71c2878799
Fix #10600: 'Replace Vehicles' didn't show numbers >999 (#10680) 1 year ago
Patric Stout 9c49a61249
Fix: base cargo payment on load/unload tile, instead of station sign location (#11281) 1 year ago
Patric Stout ba67f39db6
Codechange: vendor the nlohmann-json library (#11290) 1 year ago
Niels Martin Hansen 41de0d46f3 Feature: Help and manuals access window 1 year ago
Niels Martin Hansen 4765d0f8c2 Change: Text Layouter support querying all lines for character at pixel 1 year ago
Patric Stout d1a0ca67be
Codechange: simplify splitting of CargoPacket (#11286) 1 year ago
translators a16aa3ef7d Update: Translations from eints
swedish: 1 change by joeax910
1 year ago
translators 3fd50c2949 Update: Translations from eints
swedish: 2 changes by optiedev
vietnamese: 11 changes by KhoiCanDev
romanian: 5 changes by bnegrut
danish: 2 changes by bscargo
dutch: 2 changes by Afoklala
portuguese: 2 changes by azulcosta
polish: 15 changes by pAter-exe
1 year ago
PeterN acd7d3c913
Codechange: Rename *Railtype* to *RailType* for consistency. (#11287) 1 year ago
PeterN a0b2f28f9c
Codechange: Use std::copy/fill pattern to initialize rail and road specs. (#11285)
This avoids use of lengthof and array indices.
1 year ago
Patric Stout 7e3cdbaf62 Fix: mark next_station as INVALID_STATION when loading from older savegames 1 year ago
Patric Stout 9e3763cfb3 Fix b0e73277: save/load next_station for CargoPacket again 1 year ago
Patric Stout 1243c331b6 Fix: don't compare next_station when trying to merge CargoPackets
For vehicle packets they shouldn't be compared, and for station
packets they are already in a bucket per next_station.
1 year ago
Patric Stout 9f8c1ea552 Codechange: rename next_station to next_hop to avoid confusing with another next_station 1 year ago
Patric Stout a0f6983be4 Codechange: remove parameter from VehicleCargoList::Reassign that is always INVALID_STATION 1 year ago
PeterN 6643c010bd
Fix: NewGRF house class mappings were not reset between games. (#11279) 1 year ago
Michael Lutz 1c620b349f Feature: [NewGRF] Related Act2 objects for airports and airport tiles.
Airports are similar two stations and industries, both of which have the town as related object.
Airport tiles are similar to industry tiles, which have the industry as related object.
This seems a sensible structure, so let's make it Airport Tile -> Airport -> Town.
1 year ago
Michael Lutz a6f2f3c042 Add: [NewGRF] Inspection window for airports.
As as the station window combines all station types, accessing the
debug view is via the parent of the airport tile only.
1 year ago
Patric Stout e6c02ebee6
Fix b0e73277: cargodist information got lost when splitting of cargo (#11280)
During b0e73277 we removed loaded_at_xy, but I kinda forgot that
it was a union with next_station. Now next_station wasn't copied
anymore, or checked in AreMergable.
1 year ago
Tyler Trahan 701a61c9af Codechange: Delete date_type.h 1 year ago
Tyler Trahan 77173a6a10 Codechange: Move date consts and functions to CalendarTime and TimerGameCalendar classes 1 year ago
Tyler Trahan fca2b37726 Codechange: Move Ticks into their own class 1 year ago
Patric Stout 30172fc037
Codechange: cleanup CargoPacket in terms of variable/function names (#11278)
Over the years, things got reused and changed, making the current
names somewhat unclear in what they actually mean and do.
1 year ago
Patric Stout b0e73277d6
Codechange: remove loaded_at_xy from CargoPacket as it was unused (#11276) 1 year ago
Peter Nelson f3b4f9d640 Codechange: Reduce size of TextEffectMode and TextEffectID.
TextEffectID was promoted to size_t in #9235, when it was used in loops.
However since then the relevant code uses range-for or iterators instead.
1 year ago
Peter Nelson f6939d6c4d Codechange: Make INVALID_TE_ID a TextEffectID instead of a TextEffectMode.
Type-correctness?
1 year ago
Peter Nelson 3c61c642a9 Codechange: Don't allocate a text effect with INVALID_TE_ID.
Previously, despite INVALID_TE_ID existing, it was not checked during allocation and there was no limit to the number of text effects.
1 year ago
Peter Nelson 78b841d14e Codechange: Take reference to text effect instead of pointer when updating. 1 year ago
Peter Nelson 7519f7ad79 Codechange: Use std::find_if to find or assign a text effect slot.
This replaces an index-based loop.
1 year ago
Peter Nelson 7bd019df90 Codechange: Use std::array for TemporaryStorageArray.
This removes the need for initialisation with memset().
1 year ago
Peter Nelson 9040d7813d Codechange: Use std::array and std::unique_ptr for PersistentStorageArrays.
This (mostly) avoids the need for manual memory management and copying.
1 year ago
Patric Stout c3918838f6
Fix: crash when opening a damaged base-graphics (#11275) 1 year ago
PeterN afc1ea8135
Codechange: Using alias and std::array for company expense storage. (#11273)
This simplifies passing yearly expenses to functions and use of std algorithms.
1 year ago
Patric Stout 00f13282a9
Codechange: keep how we convert string <-> JSON private (#11269) 1 year ago
Patric Stout d725fa14a2
Fix: asserts unintentially being partially disabled in release-builds (#11268)
The nlohmann-json header file includes assert.h, which rudely resets
the assert macro to what that header thinks is right. As we set the
assert macro to be active with release builds when WITH_ASSERT is
active, this means that every file including nlohmann-json has their
asserts disabled (for release-builds) but files that don't do no.

Let's avoid this issue, by telling nlohmann to not include assert.h.
1 year ago
Rubidium 8c742b456f Codechange: use Textbuf directly, instead via several virtual functions in Window 1 year ago
Jonathan G Rennison 0316940fe8
Fix: Inaccurate waiting cargo total in station window when using cargodist (#11213)
For stations with many flows and/or small cargo packets,
due to accumulated inaccuracies in DivideApprox.

The displayed total should match GoodsEntry::TotalCount().
1 year ago
Patric Stout 5f9b8aaa95
Codechange: [Script] use nlohmann for Squirrel <-> JSON conversion (#11251) 1 year ago
translators 6e8d7964ed Update: Translations from eints
english (us): 4 changes by 2TallTyler
1 year ago
translators 9d2920e9c5 Update: Translations from eints
french: 2 changes by ottdfevr
1 year ago
Patric Stout 337b7b0c63
Fix 8c9ecde9: actually remove autosave_interval from setting window (#11260) 1 year ago
Peter Nelson 152b0cac34 Codechange: Return update nwid_begin instead of count.
This avoids needing to keep track of how many widget parts have been consumed, instead we only to ensure nwid_begin < nwid_end.
1 year ago
Peter Nelson e8015e497d Codechange: Use begin/end of nwidget parts of begin/length.
This simplifies processing nwidget parts as, unlike the remaining length, the pointer to the end of the list never changes. This is the same principle as we use(d) for tracking end instead of length for C-style strings.

And this removes 160~ instances of the lengthof() macro.
1 year ago
Peter Nelson e4613fc04c Codechange: Allow using more than 65536 NewGRF string IDs.
NewGRF string allocation allowed up to 524288 strings, however stringid was passed as uint16_t which limits to 2^16.
1 year ago
Peter Nelson 3e762af2d1 Change: Replace fixed length _grf_text array with vector.
Additionally reshuffle GRFTextEntry for better alignment.

This removes a mostly-unused static 20MB allocation.
1 year ago
translators dadf5182d8 Update: Translations from eints
english (au): 2 changes by krysclarke
russian: 3 changes by Ln-Wolf
finnish: 2 changes by hpiirai
portuguese (brazilian): 2 changes by pasantoro
1 year ago
PeterN bd150df914
Codechange: Reorder some high-use structs to reduce their size. (#11201)
This reduces GoodsEntry from 144 to 136 bytes (thereby reducing Station from 9704 bytes to 9192 bytes), and CargoPacket from 40 bytes to 32 bytes.
1 year ago
translators 5c2e4ee6fe Update: Translations from eints 1 year ago
Bouke Haarsma 7e54418022
Codechange: workaround CMake/Xcode duplicate file name issue (#11186)
Having a library with files with the same name isn't supported in CMake's Xcode project file generation: https://gitlab.kitware.com/cmake/cmake/-/issues/20501. One of the files is renamed to work around this bug.
1 year ago
Michael Lutz 0089323542 Add: [Script] Custom news message text for industry SetProductionLevel. 1 year ago
Michael Lutz 1c56991213 Add: [Script] Game script control of industry production level. 1 year ago
mrmbernardi a5c8365aa4
Feature: Setting to disallow level crossings with competitors (#10755) 1 year ago
frosch 236ec41fa2
Fix #11230: Group list widget layout failed, if dropdown widgets were higher than the font height. (#11231) 1 year ago
translators 6ab169fbe0 Update: Translations from eints
dutch: 1 change by Afoklala
1 year ago
Patric Stout 7afd686541
Codechange: add tests for GS <-> AdminPort JSON conversion (#11252)
While at it, fix a bug where booleans were made integers.
1 year ago
Patric Stout 993e7be707
Fix: [Script] GSAdmin.Send() could generate invalid JSON (#11250) 1 year ago
glx22 4eddec9e79 Add: [Emscripten] Support for bootstrapping 1 year ago
glx22 3d1c4a8589 Codechange: [Emscripten] Improve syncfs synchronisation on exit/abort 1 year ago
Patric Stout 502414b567
Fix: [Emscripten] config not saved on exit game (#11248)
When changing a Game Option and pressing Exit Game, the changes
were not actually stored. This because the post-mainloop code
was never executed for Emscripten.
1 year ago
Patric Stout ecb4bb5161
Change: for surveys capture more information about the OpenTTD version (#11244) 1 year ago
translators 5e75afb628 Update: Translations from eints
catalan: 2 changes by J0anJosep
1 year ago
Patric Stout a3d631ffed
Change: make nlohmann a mandatory library to build OpenTTD (#11235) 1 year ago
Patric Stout abc060525d
Add: calendar date for Survey results
This means no heuristics is possible on around which date people
play the game.
1 year ago
Patric Stout b0d7cfaa3d
Change: [Win32] don't allocate 192KiB of memory on the stack on crash (#11240)
Heap is out of the question, as it might be corrupted.
Allocating this much on stack is silly.

So instead, allocate virtual pages to write the information in.
1 year ago
Patric Stout de5e338a76
Change: mention in MacOS / Windows crashlog popup when files couldn't be generated (#11239)
For example, if the crash.sav couldn't be created, and the TryExcept
detected an issue, write out that the file is not available in
the popup.
1 year ago
Joan Josep be9a690f41
Fix #9642: Keep infrastructure totals when overbuilding road depots. (#11229) 1 year ago
Patric Stout d4312c59a4
Codechange: [MacOS] use backtrace() instead of our custom variant (#11233)
As mentioned in the comment, we only did it ourselves as we once
were compatible with versions before 10.5. But that time has long
gone. So let's update the code to a bit more modern approach.
1 year ago
Joan Josep 5e6b5d981f
Codechange: Use existing functions in GetMonthlyInfrastructureCosts. (#11237) 1 year ago
Patric Stout b00e483b0f
Change: recover when possible from crashes during a crash (#11238) 1 year ago
translators 99e4a14cdf Update: Translations from eints
english (au): 1 change by krysclarke
finnish: 3 changes by hpiirai
danish: 1 change by bscargo
french: 1 change by glx22
portuguese (brazilian): 1 change by pasantoro
1 year ago
Patric Stout 29a37c2e0b
Change: [Win32] unify the crashlog handler with the other OSes (#11236)
While at it, make the crash text a bit more readable, and sync
this with MacOS.
1 year ago
translators f2841e62d9 Update: Translations from eints
russian: 1 change by Ln-Wolf
turkish: 1 change by densxd
portuguese: 1 change by azulcosta
polish: 3 changes by pAter-exe
1 year ago
translators 6726918ab0 Update: Translations from eints
catalan: 30 changes by J0anJosep
1 year ago
Richard Wheeler 96fdfb941a
Feature: Transparency option for cost and income indicators (#11001) 1 year ago
Joan Josep a938067d6b
Codechange: Invalid depot value is unrelated to invalid station value. (#11227) 1 year ago
translators 9aef380c99 Update: Translations from eints
italian: 43 changes by Rivarossi
french: 1 change by ottdfevr
1 year ago
translators 4d4a046d23 Update: Translations from eints
polish: 2 changes by pAter-exe
1 year ago
Jonathan G Rennison 2cbd76593a
Fix #11215: Assert in NewGRF parameters window (manual parameter mode) (#11217) 1 year ago
Rubidium 6635f809dd Fix #11181: attempting to read string as int triggers assertion 1 year ago
Jonathan G Rennison 8df4aa7979
Fix: Road stops should not draw a ground sprite of 0 (#11214) 1 year ago
Patric Stout 45cc3acaf5
Codechange: [Win32] unify AppendDecodedStacktrace and LogStacktrace (#11220)
AppendDecodedStacktrace was already doing the same as LogStacktrace,
just with a different name.
1 year ago
translators bc2dfc4691 Update: Translations from eints
turkish: 2 changes by BeratSJ
1 year ago
Patric Stout 352ac264a5
Remove: [Win32] module-list from crash.log (#11219)
Only Windows implemented this, and it opens the files to read them
to get a CRC. Doing this in a crash-handler is strange at best.

Lastly, nobody has actually ever used this information to come to
some sort of conclusion. The module-list is used in combination
with the crash.dmp, but this information is already embedded in
there.
1 year ago
Patric Stout f120d2beb8
Add: use breakpad to create crash.dmp on MacOS / Linux too (#11202)
Normally only the Windows platform could create a crash.dmp, making
analysing crash-reports from MacOS / Linux rather tricky.
1 year ago
Patric Stout 8f6df242c4
Remove: [Win32] (pointer-only) stack trace in crash.log (#11211)
It only contains pointers, which nobody can decipher anyway.
So instead, just report "Not supported", like other targets do
when they can't print a sane stack trace.
1 year ago
Patric Stout a5aebeb1b5
Remove: [Win32] register values in crash.log (#11212) 1 year ago
Loïc Guilloux 8c9ecde964
Change: Remove autosave from settings window (#11218)
It is broken since 4f4810d and it's also in game options.
1 year ago
translators 93f4f1e83a Update: Translations from eints
german: 40 changes by Wuzzy2
1 year ago
Patric Stout cd10ddf9ae
Remove: last remnants of SunOS (#11210)
We have no evidence SunOS has been tried in the last few years,
and the code is awkward enough to just remove.
1 year ago
translators 7f5c0aab60 Update: Translations from eints
dutch: 2 changes by Afoklala
1 year ago
Patric Stout 5ac333c2cc
Fix: [MacOS] screen looks blue-ish when using newer SDKs (#11207)
The define kCGBitmapByteOrder32Host changed (around SDK 12?)
into an enum, which means an old #ifndef was triggering,
overwriting the value to 0. Sadly, 0 means Order16Big, causing
RGBA to become GRAB, which results in strange colours.

As we no longer support PPC, drop that piece of code completely.
1 year ago
Loïc Guilloux 2bf3c02fbf
Fix: no fast forward in network was ensured only from GUI side (#11206) 1 year ago
translators e8c49d3543 Update: Translations from eints
swedish: 1 change by joeax910
1 year ago
Jonathan G Rennison 9061fef59c
Fix #11203: [ICU] Glyph to char mapping with multiple runs (#11204) 1 year ago
translators db1a9f00c0 Update: Translations from eints
dutch: 1 change by Bouke
1 year ago
Patric Stout 07730584d7
Codechange: make explicit when a TileIndex is cast to its basetype (#11190)
This prevents people accidentially assigning a TileIndex to a Date
or any other type they shouldn't.
1 year ago
arikover 5d3f7939e2
Fix d42a78f: Show correct road speed in construction dropdowns (#11196) 1 year ago
Loïc Guilloux 7ef55bdfb0
Cleanup: [CMake] don't add strgen.h twice (#11199) 1 year ago
translators e652cd6434 Update: Translations from eints
swedish: 1 change by Brickblock1
english (us): 2 changes by 2TallTyler
1 year ago
Tyler Trahan 61dfd74e44
Codechange: Use correct type for max timetable start years constant (#11197) 1 year ago
translators 0726835735 Update: Translations from eints
english (au): 2 changes by krysclarke
french: 1 change by Lishouuu
portuguese (brazilian): 2 changes by pasantoro
1 year ago
Patric Stout 9dc2fbe4fa
Fix 0238a2b5: crash when news message is displayed (#11195) 1 year ago
Rubidium 40195e689d Change: improve wording of help (host instead of IP) and update man page 1 year ago
Rubidium a8e4d35bde Fix: crash when not passing parameter for -n 1 year ago
translators 56e0d0c7ef Update: Translations from eints
korean: 3 changes by telk5093
russian: 2 changes by Ln-Wolf
portuguese: 3 changes by azulcosta
1 year ago
Patric Stout 9624017fc2
Codechange: be more type-specific about types in NPFs queue (#11192) 1 year ago
Patric Stout 299570b2c1
Codechange: make TimerGameCalendar Date and Year types strongly typed (#10761) 1 year ago
Patric Stout 0238a2b567
Codechange: use std::variant instead of using bitflags in the value (#11191) 1 year ago
Patric Stout a9ed590ca7
Codechange: use TimerGameCalendar::Date for variables in linkgraph that are dates (#11187) 1 year ago
Patric Stout b7acf9e50e
Codechange: use TimerGameCalendar::Year and friends when working with years (#11188) 1 year ago
Patric Stout 01f55eb734
Codechange: introduce week/quarter triggers for TimerGameCalendar (#11189)
This simplifies code that triggers on these periods.
1 year ago
Loïc Guilloux 02be6ab6ba
Fix #11179, a979d9c: Don't start more competitors than allowed (#11185) 1 year ago
Tyler Trahan 8ea01c0bfb
Fix #11180: Use TileVirtXY for aircraft crash tile (#11184) 1 year ago
Tyler Trahan c7b51a8c3a
Codechange: Use proper date types in various places (#11177) 1 year ago
Patric Stout c9c9cfa4fd
Codechange: simplify the type of loaded_at_xy / next_station (#11182)
It was TileOrStationID, most likely to make sure both types in
the union are identical. But as TileIndex is a StrongTypeDef
that becomes a bit weird. So instead, still make sure they are
of equal size, but define their individual types better.
1 year ago
Patric Stout 5fba47b0f7
Codechange: make no assumptions on how the internals of TileIndex work (#11183)
Basically, avoid ".value", and just cast it to its original type
if you want to retrieve this.
1 year ago
Tyler Trahan 6190f48df0
Codechange: Add a DateToYear function instead of dividing each time (#11173) 1 year ago
Tyler Trahan 4928ccf916
Fix #10478: Clarify airport noise control setting texts (#11169) 1 year ago
Tyler Trahan e4fd99a33a
Codechange: Use DateAtStartOfYear() instead of multiplying by DAYS_IN_LEAP_YEAR (#11174) 1 year ago
Tyler Trahan 93069066f9
Codechange: Use auto type when sorting dates (#11175) 1 year ago
Tyler Trahan 6f057cbe6a
Codechange: Use proper date type in ClickChangeDateCheat (#11176) 1 year ago
translators c2fc2d2ed5 Update: Translations from eints
romanian: 48 changes by bnegrut
1 year ago
translators 4daa00c22a Update: Translations from eints
slovak: 53 changes by legitalk
1 year ago
translators 2bc97fae66 Update: Translations from eints
swedish: 45 changes by joeax910
portuguese: 106 changes by azulcosta
1 year ago
Tyler Trahan 9a602ff304
Fix #10334: Store separate newgrf-safe version of date_of_last_service. (#11124)
This value is not changed when the date cheat is used, which caused issues with changing properties based on service date.

Co-authored-by: Peter Nelson <peter1138@openttd.org>
1 year ago
translators 77c00dfe98 Update: Translations from eints
slovak: 9 changes by legitalk
dutch: 3 changes by Afoklala
1 year ago
translators 9d376dc8e0 Update: Translations from eints
finnish: 1 change by hpiirai
portuguese (brazilian): 1 change by pasantoro
1 year ago
translators 11ba39b435 Update: Translations from eints
korean: 21 changes by telk5093
polish: 1 change by pAter-exe
1 year ago
Jonathan G Rennison 6a048bc168 Fix #11164: Duplicate town names when using the many random towns function 1 year ago
translators 4213a2c909 Update: Translations from eints
russian: 1 change by Ln-Wolf
turkish: 33 changes by densxd
danish: 1 change by bscargo
french: 1 change by Lishouuu
polish: 21 changes by pAter-exe
1 year ago
PeterN 4acb68e539
Fix #11162: Get colour map of correct train part. (#11163) 1 year ago
translators 43559524eb Update: Translations from eints
english (au): 1 change by krysclarke
english (us): 1 change by 2TallTyler
portuguese: 1 change by azulcosta
1 year ago
Tyler Trahan 9876c861e4 Remove: Unused ship pathfinder invalidation setting callback 1 year ago
Tyler Trahan 4decd2aa48 Change: Enable "Forbid 90 degree turns" setting by default 1 year ago
translators 5a2e9be9d3 Update: Translations from eints
vietnamese: 10 changes by KhoiCanDev
french: 15 changes by Lishouuu, 9 changes by ottdfevr
1 year ago
Tyler Trahan f57296a033
Change: Only show platform stopping location in orders when other than default (#11102) 1 year ago
translators 536d2cb75b Update: Translations from eints
english (au): 4 changes by krysclarke
english (us): 4 changes by 2TallTyler
vietnamese: 2 changes by KhoiCanDev
russian: 21 changes by Ln-Wolf
finnish: 37 changes by hpiirai
portuguese: 24 changes by azulcosta
portuguese (brazilian): 6 changes by pasantoro
1 year ago
Loïc Guilloux a979d9cdda
Fix #11067, ed83c4b: Don't start competitors during map generation (#11069) 1 year ago
translators 760a194d31 Update: Translations from eints
english (us): 19 changes by 2TallTyler
dutch: 20 changes by Afoklala
1 year ago
Tyler Trahan 6e99326ad2
Fix: Missing hyphenation in various ownership strings (#11155) 1 year ago
translators 41faae8c59 Update: Translations from eints
english (au): 19 changes by krysclarke
vietnamese: 12 changes by KhoiCanDev
danish: 19 changes by bscargo
portuguese: 20 changes by azulcosta
portuguese (brazilian): 19 changes by pasantoro
1 year ago
translators abc3a96e9d Update: Translations from eints
czech: 6 changes by JakMel
danish: 6 changes by bscargo
1 year ago
Henry Wilson a9c65a69d0 Feature: Add config option to set default company secondary colour for new games
This does duplicate translation strings for the colours
1 year ago
translators 5653a94490 Update: Translations from eints
czech: 16 changes by JakMel
1 year ago
translators 974e6e220c Update: Translations from eints
korean: 3 changes by telk5093
french: 3 changes by ottdfevr
1 year ago
translators 74fac454d0 Update: Translations from eints
vietnamese: 1 change by KhoiCanDev
1 year ago
translators d9d0a2c842 Update: Translations from eints
english (au): 3 changes by krysclarke
portuguese (brazilian): 22 changes by pasantoro
1 year ago
PeterN fd155dfb40
Change: Scale bridge GUI by interface scale. (#11152) 1 year ago
translators 96e937c6cd Update: Translations from eints
norwegian (bokmal): 1 change by buzzCraft
chinese (traditional): 1 change by wpi3
spanish (mexican): 1 change by absay
english (us): 3 changes by 2TallTyler
vietnamese: 13 changes by KhoiCanDev
russian: 3 changes by Ln-Wolf
dutch: 23 changes by Afoklala
lithuanian: 1 change by devbotas
portuguese: 6 changes by azulcosta
polish: 3 changes by pAter-exe
1 year ago
PeterN 44a86e796f
Fix #11061: Missed currency-code suffix removal for some translations. (#11149) 1 year ago
translators 5d27d00821 Update: Translations from eints 1 year ago
Andy ce9305a5ee
Add: [Script] GSIndustry.GetConstructionDate() method (#11145) 1 year ago
MasonGulu 0be27778af
Add: alternative setting for right-click close window option to exclude pinned windows (#10204) 1 year ago
translators 092a3db745 Update: Translations from eints
finnish: 3 changes by hpiirai
polish: 15 changes by pAter-exe
1 year ago
Jonathan G Rennison f31a25cd59
Change: Do not allow mixing road/tram types in powered road type list (#11148)
Road/tram property 0F
1 year ago
Rubidium 461b4b8861 Cleanup: remove typedefs for non _t (u)int types and WChar 1 year ago
Rubidium eaae0bb5e7 Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
1 year ago
Patric Stout 4f4810dc28 Fix: store autosave settings under the new names 1 year ago
Patric Stout 790c1b1b02 Codechange: refactor setting conversions and make sure it only happens once
By forcing it only happens once, the first time you upgrade to
a newer client, means you are free to jump between older and newer
versions after that. As they will not resync, the newer setting
can take on any of the (newer) values, without breaking the old
client. And when going to an old client and back, it doesn't
change it back to the converted value anymore.
1 year ago
Patric Stout ece50d5a1d Codechange: use BoolSettingDesc to parse settings in conversion code 1 year ago
translators 335c7ddac7 Update: Translations from eints
swedish: 22 changes by Brickblock1
1 year ago
translators 61b0143c87 Update: Translations from eints
english (us): 21 changes by 2TallTyler
korean: 3 changes by telk5093
catalan: 27 changes by J0anJosep
turkish: 12 changes by densxd
french: 13 changes by Lishouuu
1 year ago
translators 9c262b0d92 Update: Translations from eints
english (au): 3 changes by krysclarke
russian: 3 changes by Ln-Wolf
portuguese: 3 changes by azulcosta
1 year ago
Jonathan G Rennison 864d2352c2 Fix: Integer overflow in LinkGraphOverlay::ShowTooltip for long links
In particular when fully zoomed in
This could result in tooltips not being shown at all, or being shown
when not appropriate
1 year ago
translators 756c469b8f Update: Translations from eints
english (au): 20 changes by krysclarke
swedish: 2 changes by SkogisREAL
japanese: 2 changes by fmang
welsh: 1 change by Ansbaradigeidfran
english (us): 2 changes by 2TallTyler
galician: 2 changes by pvillaverde
vietnamese: 2 changes by KhoiCanDev
korean: 8 changes by telk5093
hungarian: 1 change by PstasDev
indonesian: 1 change by ecolortest
italian: 2 changes by Rivarossi
german: 2 changes by Wuzzy2
russian: 9 changes by Ln-Wolf
finnish: 2 changes by hpiirai
catalan: 2 changes by J0anJosep
turkish: 2 changes by densxd
danish: 2 changes by bscargo
dutch: 2 changes by Afoklala
french: 2 changes by ZarTek-Creole
portuguese: 28 changes by azulcosta
esperanto: 2 changes by legoscia
portuguese (brazilian): 2 changes by ericandradex
polish: 2 changes by pAter-exe
1 year ago
Rubidium bfbdaf8723 Update: force remove outdated strings as they can still trigger #11137 for other languages 1 year ago
Rubidium a184e7f793 Fix #11137: assertion failure due to interpreting string as number 1 year ago
Tyler Trahan e4be7f4a45
Change: Clean up window title and button capitalization and wording (#11134)
* Change: Use consistent window title format for industry/cargo chains

* Change: Don't capitalize dropdown entry for cargo flow legend

* Change: Use consistent window titles for AI and GS settings

* Change: Use consistent window title for company value graph

* Change: Use consistent window title for industry funding

* Change: Use consistent button title to display industry chain

* Change: Use consistent button capitalization for local authority button on town window

* Fix: Don't capitalize random words in vehicle list management dropdown

* Fix: Use title case for Frame Rate window caption

* Fix: Use title case for Detailed Performance Rating window caption
1 year ago
glx22 46b504a700 Fix: ini_key issues reported by the script 1 year ago
Björn Wärmedal 7de37e07b6
Change: make Exclusive Transport Rights more exclusive (#11076)
Now, exclusive transport rights can only be bought if no company
currently owns them. A successful bribe will void any exclusive
transport rights that any *other* company currently has in the town.
1 year ago
merni-ns fc9afb2d32
Fix #11115: Focus the abandon game/exit game windows (#11125) 1 year ago
PeterN c3d1264a4b
Change: Don't save industry history if cargo slot isn't used. (#11133)
This avoids saving history of 16 slots per industry when in many cases (NewGRF dependent) only a couple are used.
1 year ago
Jonathan G Rennison 3ac663e619
Fix: Build road/tram stop windows did not set WindowDesc::ini_key (#11126)
Saved default window sizes were not persisted in the configuration file
1 year ago
translators 7996752fb1 Update: Translations from eints
indonesian: 71 changes by ecolortest
1 year ago
rubidium42 9f6fec01cd
Codechange: rename cargo aging days to periods, as they are not really days (#11112) 1 year ago
Patric Stout ab19882e94
Codechange: hint in all branches of ClampTo to resolve compile-time (#11130) 1 year ago
Patric Stout 97138acc8a
Codechange: make date-related variables constexpr (#11129)
This hints the compiler even more to result math-related questions
compile-time.
1 year ago
translators d3181375a4 Update: Translations from eints
danish: 2 changes by bscargo
french: 2 changes by Lishouuu
1 year ago
translators a54c28f2c3 Update: Translations from eints
polish: 3 changes by pAter-exe
1 year ago
Loïc Guilloux 119ac66c5c
Fix: [Bootstrap] don't crash when failing to connect to content server (#11122) 1 year ago
translators bd91d249ea Update: Translations from eints
dutch: 3 changes by Afoklala
1 year ago
translators b2ccc19f2d Update: Translations from eints
vietnamese: 2 changes by KhoiCanDev
1 year ago
Rubidium 18a31cca7c Codechange: do not make a string valid in place, to then copy it 1 year ago
Rubidium b958a343fe Codechange: the templated StrMakeValidInPlace is not in place 1 year ago
Rubidium 968de827d6 Fix #11108, e2f583a: missing argument for SCC_CARGO_SHORT formatting 1 year ago
translators 9f28da4e33 Update: Translations from eints
tamil: 3 changes by merni-ns
1 year ago
translators 48f25427bc Update: Translations from eints
english (us): 15 changes by 2TallTyler
korean: 2 changes by telk5093
german: 41 changes by Wuzzy2
portuguese (brazilian): 2 changes by pasantoro
1 year ago
Koen Bussemaker 381fa36450 Change: Autorail / autoroad tools can start dragging from invalid tiles 1 year ago
merni-ns a8a4737c5b
Fix #11096: Increase priority of error and confirmation windows (#11104) 1 year ago
translators bcaa60612e Update: Translations from eints
portuguese: 3 changes by azulcosta
1 year ago
Rubidium af9b9327af Codechange: do not keep local variable for temporary string parameters 1 year ago
Rubidium e04d43f396 Remove: now unused stredup 1 year ago
Rubidium 2ec4ea2b99 Codechange: use the string temporaries for game script strings 1 year ago
Rubidium 3e488465f8 Codechange: allow string temporaries in a StringParameter 1 year ago
Rubidium 78f5d58dc6 Codechange: use std::string without const as return
Otherwise some compilers, e.g. MSVC, do not pick up that these are temporaries
and as such it will pass the temporaries to `const std::string &` instead of
the wanted `std::string &&`
1 year ago
Rubidium b2edf82b69 Cleanup: remove unneeded CopyOutDParam version with StringID 1 year ago
Rubidium 4654b2b0aa Codechange: separate integer and string usage in StringParameters 1 year ago
Rubidium 8b7c34d7d4 Codechange: use string parameter backps for the text effects 1 year ago
Rubidium 7ed90a859f Codechange: function to check whether string parameters have changed since the backup 1 year ago
Rubidium 05ef3f0998 Cleanup: remove old backup/restore of string parameters 1 year ago
Rubidium 6313b8a4cb Codechange: move errors over to the new StringParameterBackup type 1 year ago
Rubidium 0943402bab Codechange: move news over to the new StringParameterBackup type 1 year ago
Rubidium f4a3032985 Codechange: move tooltip and query window over to the new StringParameterBackup type 1 year ago
Rubidium 2687704afc Codechange: introduce new type and functions for StringParameter backups 1 year ago
translators 26f3efb419 Update: Translations from eints
english (au): 2 changes by krysclarke
italian: 14 changes by Rivarossi
russian: 2 changes by Ln-Wolf
finnish: 2 changes by hpiirai
tamil: 8 changes by merni-ns
1 year ago
PeterN 115f6cf8ea
Fix #4575: Use Latin 'l' in English translation of zloty. (#11090)
This avoids many truetype fonts being unusable due to this single character not being available.
1 year ago
translators 10dd3119b1 Update: Translations from eints
welsh: 163 changes by Ansbaradigeidfran
1 year ago
merni-ns 161cc04b8a Fix #11087: Disable base graphics/sound dropdown outside main menu 1 year ago
merni-ns 4ae9ebf582 Change: Tooltip for base graphic/sound dropdown 1 year ago
Kuhnovic 6169e7f4bc
Feature: Orientation of rail and road depots can be changed (#9642) 1 year ago
PeterN c3fbe7bea8
Cleanup: Use FS enum instead of magic numbers. (#11088) 1 year ago
translators 082c47a4f9 Update: Translations from eints
dutch: 1 change by Afoklala
1 year ago
Rubidium d5c75bd655 Codechange: use std::string instead of a temporary buffer for iconv calls 1 year ago
Rubidium 0ea3e338ab Codechange: replace buffer+strecpy with std::string 1 year ago
Rubidium 3f18a8863a Codechange: use std::getline to read strings from stdin 1 year ago
Rubidium f333372dd1 Codechange: let IConsoleCmdExec accept std::string 1 year ago
Rubidium fd380127f0 Codechange: use SignalObjectAndWait since we do not support older than Windows XP anymore 1 year ago
Rubidium 69d5b9d326 Cleanup: unused NO_THREADS #ifdefs 1 year ago
translators 55979b612e Update: Translations from eints
welsh: 28 changes by Ansbaradigeidfran
portuguese: 1 change by azulcosta
polish: 1 change by pAter-exe
1 year ago
Richard Wheeler 3b2934c479
Change: Make terraforming point selection sprite visible at >2x zoom out (#11017) 1 year ago
Johannes E. Krause 5b0cfc7ea5 Add: show fallback sprites with debuglevel sprite=4 1 year ago
Jonathan G Rennison 55c07eed59
Change: Add separate setting for server sent commands per frame limit (#11023)
Set a higher default value for this setting.
Use the higher of this and existing commands per frame limit
setting for server-originating commands, e.g. GS.

This is to support the GSAsyncMode class.
This also avoids undue throttling when more than one
script is in operation (e.g. AIs).
1 year ago
PeterN 8465559488
Codechange: Pass face index as font os_handle for FreeType fonts. (#11073)
This allows fallback font detection to test the specific face within the
font rather instead of only the first.
1 year ago
Rubidium 794b642b9a Codechange: use std::string/std::vector over stredup/strecpy/CallocT/free 1 year ago
Rubidium 700241410b Remove: support for not having getifaddrs 1 year ago
Rubidium 7ad487eeee Cleanup: remove now unused GetInt32/64 functions 1 year ago
Rubidium 75a22a1c83 Codechange: move from GetIntXY to GetNextParameter<XYY> 1 year ago
Rubidium e7937efb01 Codechange: add clearer named function to get the next (string) parameter 1 year ago
translators ee34fae09a Update: Translations from eints
korean: 3 changes by telk5093
danish: 3 changes by bscargo
1 year ago
Niels Martin Hansen 103d88ee33 Fix: Layouter not taking stripped formatting codes into account when mapping visual coordinates to/from original string 1 year ago
Niels Martin Hansen b52e526017 Fix: FallbackParagraphLayouter wasn't reverse-mapping glyphs to character indexes right 1 year ago
translators 5db4473ae8 Update: Translations from eints
vietnamese: 1 change by KhoiCanDev
finnish: 3 changes by hpiirai
french: 5 changes by Naeso
1 year ago
PeterN d140acf34e
Fix: Setting tree lines drawn incorrectly for RTL languages. (#11070) 1 year ago
Peter Nelson fac317b139 Cleanup: Remove {ORANGE} from settings page strings. 1 year ago
Peter Nelson 40a9b080aa Fix: Ensure settings page label is orange. 1 year ago
Loïc Guilloux 55e3dd9409
Cleanup 6298b96: Left-over function declaration (#11072) 1 year ago
Jonathan G Rennison 4f6d75f97d Fix #11016: Defer deletion of client and server game socket handlers
This fixes various use after free scenarios in error handling paths
1 year ago
Jonathan G Rennison 19ae88fb63 Fix: Error logging in game and admin server HandlePacket
Don't invent a packet type in the log message if we can't/don't
read a packet type at all.
Fix packet type not being logged when appropriate.
1 year ago
PeterN 43ddf19df3
Change: Allow text shadow on WWT_EMPTY/WWT_TEXT to extend horizontally. (#11065)
This alleviates text shadows of truetype fonts being cropped in some
window layouts.
1 year ago
PeterN 509471f7f8
Codechange: Use std::optional for GRFConfig::GRFError (#11066)
This changes the semantics from "object pointer ownership" to "optional object", and simplifies copies.
1 year ago
translators 71f241ffe1 Update: Translations from eints
english (au): 1 change by krysclarke
russian: 1 change by Ln-Wolf
turkish: 1 change by BeratSJ
french: 1 change by glx22
portuguese (brazilian): 4 changes by pasantoro
1 year ago
translators 78c9446aef Update: Translations from eints
norwegian (bokmal): 1 change by buzzCraft
chinese (traditional): 1 change by wpi3
spanish (mexican): 1 change by absay
lithuanian: 1 change by devbotas
portuguese (brazilian): 3 changes by Greavez
1 year ago
Peter Nelson 6f36f1d912 Change: Remove currency code/symbol suffix from language files. 1 year ago
Peter Nelson 9dd9b8ec74 Fix #11054: Prevent translation of currency codes.
Most languages stick with the 3-letter latin currency codes in the name
string, however some translations are... clever... and use the currency
symbol instead. Whilst this may look nice, it can cause issues with fonts
as some scripts have a specific limited set of fonts which do not include
these symbols.

Instead, hard code the currency code list and add it when drawing the
currency name.
1 year ago
PeterN d42a78f3e8
Codechange: Make DropDownListStringItem preformat and remove other implementations. (#11063)
Having to choose between DropDownListStringItem, DropDownListCharStringItem, and DropDownListParamStringItem depending on whether to draw a StringID, a raw string, or a StringID with extra parameters was needlessly complex.

Instead, allow passing a StringID or raw string to DropDownListStringItem. This will preformat the StringID into a raw string, and can therefore accept parameters via the normal SetDParam mechanism.

This also means that strings no longer need to be formatted on every draw.
1 year ago
Rubidium 321f01602a Codechange: reduce passing around parameters, but formatting strings earlier 1 year ago
Rubidium f48baa7d00 Codechange: move sign invisibility check out of loop 1 year ago
translators 9016d4a5b5 Update: Translations from eints
arabic (egypt): 8 changes by AviationGamerX
turkish: 5 changes by densxd
danish: 3 changes by bscargo
1 year ago
translators c316d9ecb7 Update: Translations from eints
english (au): 2 changes by krysclarke
vietnamese: 3 changes by KhoiCanDev
russian: 2 changes by Ln-Wolf
dutch: 5 changes by Afoklala
french: 2 changes by Lishouuu
portuguese: 2 changes by azulcosta
esperanto: 51 changes by legoscia
polish: 3 changes by pAter-exe
1 year ago
Rubidium 4e9a871718 Codechange: merge multiple string parameter arrays to single array of structs 1 year ago
Rubidium fa8c50758b Codechange: replace memcpy when copying DParams 1 year ago
Rubidium 2aa48bfcb3 Add: subspan function to span 1 year ago
Rubidium 7a785a4224 Codechange: simplify StringParameters now type cannot be nullptr 1 year ago
Rubidium 428333aeba Codechange: let AllocatedStringParameters allocated types too 1 year ago
Finn Willard f23249f8f1
Fix #10917: Pay loan interest before generating statistics (#11040) 1 year ago
PeterN b68d56d94d
Fix #11043: Don't choose toolbar dropdown option if focus is lost. (#11044)
Since dropdown menus now get closed if they lose focus, 'instant close' dropdowns (i.e. the toolbar dropdowns) should no longer execute their action to avoid unintended actions.
1 year ago
Rubidium 9f3254b72a Fix b1fb209: build failure due to removed parameter 1 year ago
translators 4d0369ea9c Update: Translations from eints
finnish: 1 change by hpiirai
portuguese (brazilian): 1 change by pasantoro
1 year ago
glx22 6c7f977197 Codechange: Use {COLOUR} to simplify drawing of timetables 1 year ago
glx22 b1fb209bed Add: {COLOUR} control code to allow colour changes at runtime 1 year ago
Rubidium 88138c55f8 Codechange: make offset protected and guard against invalid offsets 1 year ago
Rubidium 9c3c90effa Codechange: rename ClearTypeInformation so it can be used for preparing for the next run 1 year ago
Rubidium 01abcdfcac Codechange: make StringParameters#next_type only writable from outside the class 1 year ago
Rubidium 3e8f8c55c2 Codechange: make creating temporary StringParameters easier 1 year ago
translators aaf6811a2c Update: Translations from eints
english (au): 1 change by krysclarke
korean: 1 change by telk5093
russian: 1 change by Ln-Wolf
french: 1 change by Lishouuu
portuguese: 1 change by azulcosta
1 year ago
Rubidium 8caacb5a49 Codechange: use std::deque for console history 1 year ago
Rubidium 4fbc81003f Codechange: make SQString::Create that supports std::string and use that 1 year ago
translators ea54408e1d Update: Translations from eints
french: 1 change by Lishouuu
1 year ago
merni-ns b3669a8795
Fix #11026: Use real engine name instead of default name for filtering (#11033) 1 year ago
Rubidium 714ff35e9d Codechange: move to std::string over stredup + free 1 year ago
PeterN 2a2443dd01
Feature: Create group of vehicles from manage vehicle list button. (#10890) 1 year ago
Rubidium 70de70bdcd Codechange: refactor code to remove need for stredup 1 year ago
Rubidium 74924c8186 Codechange: includes must be before 'safeguards.h' 1 year ago
Niels Martin Hansen ed3f14686d Fix: Layouter::GetCharAtPosition counting wrong
Bug introduced in commit 60399e
1 year ago
translators 31cc349a09 Update: Translations from eints
swedish: 51 changes by SkogisREAL
1 year ago
Rubidium 09f585b772 Codechange: use std::string over stredup+free for splitting font name 1 year ago
Loïc Guilloux 1d9bc23525
Fix #10868: [Script] Handle errors when loading savegame data on stack (#11029) 1 year ago
Rubidium 381e8b69d2 Codechange: make size and offset size_t 1 year ago
Rubidium 4e6733cc6e Codechange: use args.GetParam(offset) over *args.GetPointerToOffset(offset) 1 year ago
Rubidium e404ba0631 Codechange: generify GetRemainingParameters to allow custom offsets 1 year ago
translators 9215e36300 Update: Translations from eints
vietnamese: 2 changes by KhoiCanDev
finnish: 2 changes by hpiirai
danish: 2 changes by bscargo
1 year ago
Jonathan G Rennison a6b625eea3
Fix #10993: Crash log when font caches not initialised (#11024)
See also: #10836
1 year ago
Rubidium 1d902a97ce Codechange: move StringParameters to strings_internal.h 1 year ago
Rubidium ad048b143a Codechange: move implementation of Set/GetDParam to strings.cpp 1 year ago
Rubidium dd53a738bb Codechange: automatically set/check the correct type for string parameters/genders 1 year ago
Rubidium 836541b41c Codechange: use SetDParam and CopyOutDParam for tooltips 1 year ago
Rubidium ac0c932ce7 Codechange: use SetDParam to set measurement tooltip parameters 1 year ago
Jonathan G Rennison ee8b03e8da
Fix: Crash when failing to load a game into a dedicated server at startup (#11021)
Using the -g switch
1 year ago
PeterN ed06c6bdcf
Codechange: Use vector when migrating old savegame orders. (#11020) 1 year ago
PeterN fc2510e2ba
Codechange: Use std::vector for midifile's ByteBuffer. (#11019) 1 year ago
Owen Rudge 1a3d1bca59 Remove: OS/2 port 1 year ago
Rubidium d4c2043294 Codechange: remove a number of unneeded c_str() calls 1 year ago
translators aae8f40b9f Update: Translations from eints
english (au): 2 changes by krysclarke
korean: 2 changes by telk5093
russian: 2 changes by Ln-Wolf
french: 2 changes by ottdfevr
portuguese: 2 changes by azulcosta
portuguese (brazilian): 2 changes by ericandradex
polish: 2 changes by pAter-exe
1 year ago
Loïc Guilloux 1cd49bf5e5
Fix ca1e34c: [Script] Wrong value printed for {RAW_STRING} (#11011) 1 year ago
Jonathan G Rennison 864d3c9c16
Fix: CMD_CHANGE_SETTING did not reject SF_NO_NETWORK_SYNC settings (#11009) 1 year ago
PeterN f51f117b00
Change: Add window description flag to disallow interactive window closing. (#11008)
This replaces/simplifies testing for a closebox to allow closing a window with right-click, and testing for specific window classes when closing all windows by hotkey.

This allows right-click closing of dropdowns and the high-score window.
1 year ago
Rubidium 7c37dcb8e3 Fix: do not use {STRING} when {STRING1} or {STRING2} is needed 1 year ago
Rubidium 0a5e58451b Codechange: pass string parameters by reference 1 year ago
Rubidium 43f91bc50c Cleanup: unused GetDataPointer function 1 year ago
Rubidium e332810231 Codechange: pass zero length arguments for {STRING}, instead of the remaining arguments 1 year ago
Rubidium 82851a9bef Codechange: do not mess with global string params to get pointer to first element 1 year ago
Rubidium aba0d27a28 Codechange: use StringParameters for remapping the NewGRF string control codes 1 year ago
Rubidium 1146904d45 Fix: when a string consumes more parameters than allowed, nullptr is attempted to be formatted 1 year ago
translators f1ec2f274c Update: Translations from eints
vietnamese: 6 changes by KhoiCanDev
korean: 4 changes by telk5093
german: 33 changes by SecretIdetity
romanian: 69 changes by kneekoo
russian: 2 changes by Ln-Wolf
finnish: 4 changes by hpiirai
turkish: 4 changes by BeratSJ
danish: 1 change by bscargo
dutch: 6 changes by Afoklala
french: 4 changes by ottdfevr
portuguese (brazilian): 6 changes by pasantoro
polish: 6 changes by pAter-exe
1 year ago
Andrii f26de0d2f9
Fix #10982: No help text for gamelog command (#10984) 1 year ago
PeterN ebc451b071
Fix #10987: Double-close of dropdown stopped land-info tool working as default. (#11000)
Clicking and releasing on the query toolbar icon is meant to select the land-info tool.

This did not work as during closing a window, OnFocusLost() is called, which then closes the window again. These two calls toggled the land-info tool one and off in the same action.

Resolve by not calling Window::Close in OnFocusLost() if the window is already closing.
1 year ago
Rubidium 613ad80581 Codechange: remove need for GetDParamX 1 year ago
Rubidium 82b434b589 Codechange: rename function to better describe what it is doing 1 year ago
Rubidium f86500df92 Codechange: remove need for SetDParamX 1 year ago
Rubidium 6c6f365d2f Codechange: remove offset parameter for copying DParams in and out 1 year ago
Rubidium d42ef3a0ef Codechange: inject the query window caption into the widget 1 year ago
Patric Stout 6869f387ba
Fix 07add7a9: [Win32] use full monitor resolution for fullscreen (#10985)
On Windows in fullscreen you cannot reach the top with
the cursor for the halve of the height of your toolbar.

Additionally, on Win10 in fullscreen you can see the actual toolbar.
1 year ago
PeterN 2097719f26
Fix: Don't restore backed up vehicle name if it's no longer unique. (#10979) 1 year ago
Rubidium 6d597879d0 Codechange: let ReadLine return a string instead of passing a buffer 1 year ago
Rubidium 81f957b9f8 Codechange: use std::string to find the executable's working directory 1 year ago
merni-ns 1be668c2e4
Fix #10975: Clear a non-head engine's name (#10976) 1 year ago
Rubidium 66a984afd7 Codechange: rename function to better describe its functionality 1 year ago
Rubidium 48dcb79145 Cleanup: remove seprintf and vsnprintf 1 year ago
Rubidium 13cdf5fffa Codechange: use std::filesystem::path for the language file's path 1 year ago
Rubidium 97dd84d1e0 Codechange: move saveload string fixing code to saveload 1 year ago
Rubidium 3f35787458 Codechange: replace stredup + StrMakeValidInPlace with std::string + StrMakeValid 1 year ago
Rubidium e762855201 Cleanup: remove str_strip_colours; StrMakeValid also removes the colours
Essentially str_strip_colours followed by StrMakeValid makes the calling of
str_strip_colours useless, as StrMakeValid would have removed them too.
1 year ago
mrmbernardi 35ef6c1723
Feature: [GS] Goal destination can be updated (#10817) 1 year ago
Rubidium 9408ab4799 Codechange: only one '\0' is required 1 year ago
Rubidium 2ae7367024 Codechange: replace StrMakeValidInPlace with StrValid 1 year ago
Rubidium 4ca23a19b6 Cleanup: char-pointer variant of strtolower 1 year ago
PeterN b49bd86a46
Fix dec7ff6b0c: Dropdowns couldn't be closed by pressing the parent button. (#10954)
Since dropdowns self-close, the detection of re-clicking a dropdown
button no longer worked, as the dropdown is already closed.

Instead set (and then test) a flag on the parent widget to indicate that
the dropdown closed. This method avoids looping windows on every click.
1 year ago
Rubidium b2a8d8aea4 Codechange: use std::string for Windows' ISO code mangling 1 year ago
Rubidium a541b8217d Codechange: use fmt::format to build Squirrel error message 1 year ago
Rubidium 5e9a1eb790 Codechange: use fmt::format to construct error message 1 year ago
Rubidium 4de9b8a988 Codechange: use fmt::format to create desync dump savegames 1 year ago
Rubidium d5c0d3beb7 Codechange: unify the formatting of the game's caption 1 year ago
PeterN 9fa1984ef0
Codechange: IniGroup::GetItem() can now be const. (#10966) 1 year ago
PeterN f249715db3
Fix #10964: Missing FontConfig format for language. (#10965) 1 year ago
PeterN eda3defcb5
Codechange: Pass language for font detection as std::string. (#10964) 1 year ago
PeterN 7a0b6b7ddf
Codechange: Remove Freetype bits on Win32/OSX. (#10960)
These platforms have their own specific font rendering.
1 year ago
translators 316a434933 Update: Translations from eints
english (au): 6 changes by krysclarke
russian: 4 changes by Ln-Wolf
danish: 5 changes by bscargo
portuguese: 7 changes by azulcosta
1 year ago
Rubidium 617cacd542 Fix #10961, 52a7c69: incorrect order of parameters to gamelog revision constructor 1 year ago
Rubidium a47de4b2ab Cleanup: remove DRAW_STRING_BUFFER constant 1 year ago
Rubidium 96fef9f643 Codechange: allocate enough memory to layout the strings 1 year ago
Rubidium 1fa432ca92 Codechange: replace C-style string building with C++-style building 1 year ago
Rubidium ca1e34c121 Codechange: use std::string to build ScriptText's encoded text 1 year ago
Rubidium e32f0aa20b Cleanup: minimum string length for town name generator is not needed anymore 1 year ago
Rubidium edb21620ea Cleanup: remove unneeded checks on remaining buffer size 1 year ago
Rubidium affceea0ae Codechange: switch StringBuilder to use std::string as backend 1 year ago
Rubidium ce8933d63e Add: std::back_insert_iterator<std::string> Utf8Encode function 1 year ago
Rubidium 55dfca1936 Codechange: replace seprintf with C++ style formatting 1 year ago
Rubidium fbd71a9d72 Codechange: replace C-style string processing with C++-style for the listing callbacks 1 year ago
translators 433ec6b5bd Update: Translations from eints
korean: 2 changes by telk5093
russian: 2 changes by Ln-Wolf
finnish: 2 changes by hpiirai
turkish: 2 changes by EndChapter
french: 2 changes by glx22
portuguese: 2 changes by azulcosta
1 year ago
PeterN 64d6ad50f9
Codechange: Split GetItem with GetOrCreateItem. (#10952)
`IniGroup::GetItem()` returns nullptr if the item does not exist, but does not if the create parameter is set to true. Resolve CodeQL warnings with `GetOrCreateItem()` which returns a reference to the item instead.
1 year ago
Patric Stout 3b1407d240
Feature: allow to do a hostile takeover of an AI company (in singleplayer) (#10914)
With the removal of the share-system, you could no longer make an
AI disappear in a single player game. At least, not without going
into the console.
1 year ago
PeterN f814c86389
Codechange: Reorganise hotkey initialisation. (#10951)
Hotkeys are now initialized inline, and use std::vector instead of
separate static C-arrays and std::string instead of char *. The list end
marker is no longer required.
1 year ago
rubidium42 921f5afc4d Codechange: Apply suggestions from code review 1 year ago
Rubidium 2dd2b698d2 Codechange: convert C-style GetTownName API to std::string returning API 1 year ago
Rubidium 14915526ad Cleanup: remove stre-style GetString 1 year ago
Patric Stout 772729cc7d
Fix: when syncing width of GUI items, take padding into account (#10915) 1 year ago
Rubidium 15c75e6f45 Codechange: use std::array and std::string for high scores 1 year ago
Rubidium c158089eff Codechange: use C++ style methods to combine a Utf8Encoded character and a formatted string 1 year ago
PeterN 6ae6b65edb
Cleanup: Remove doubled statements. (#10944) 1 year ago
Rubidium a4bf45729a Change: move string validation (and assignment) to textbuf 1 year ago
Rubidium 4e39a58c59 Codechange: let town name generation use StringBuilder 1 year ago
translators 6a5ab4a9fb Update: Translations from eints
french: 3 changes by glx22
1 year ago
Rubidium 820fe8c621 Codechange: use std::string and concatenation when combining multiple formatted strings 1 year ago
Patric Stout 07add7a96e
Fix: [Win32] position window in center of workspace of primary display (#10942) 1 year ago
PeterN 83a318edcf
Fix dec7ff6b0c: Dropdowns would close if their tooltip appeared. (#10939)
Solution is to not focus any tooltips, so that the dropdown doesn't lose focus. Tooltips don't accept any input so this does not change their behaviour.
1 year ago
rubidium42 bfcb027cb9
Fix 2dffa7d: fmt::format_to copies the iterator, so some text does not remain during formatting (#10940) 1 year ago
Rubidium 6a519f5d89 Cleanup: strecat has no uses anymore 1 year ago
Bernard Teo 2c667b1773
Doc: Fix spelling error in ScriptTileList::RemoveRectangle (#10937) 1 year ago
Patric Stout caa0474d30
Fix: crash with tooltip on low resolution screens (#10933) 1 year ago
Rubidium 36aaa9d683 Codechange: let GetStringWithArgs use StringBuilder 1 year ago
Jonathan G Rennison ec7f9f63f6 Feature: Add coverage button to waypoint window 1 year ago
Jonathan G Rennison d7bf6b2c07 Feature: Highlight waypoint tiles when adjacent or distant joining 1 year ago
Jonathan G Rennison 84b53213af Codechange: Refactor viewport catchment overlay change handling 1 year ago
Patric Stout 0f3dd9c796
Fix: crash when window can't be placed on low resolution screens. (#10932)
Co-authored-by: Jonathan G Rennison <j.g.rennison@gmail.com>
1 year ago
Patric Stout c43a23cea8
Fix: crash when not even a single row fits for dropdowns on low resolution screens (#10934) 1 year ago
PeterN ee2d0745e9
Fix #10502: Refit engine before attaching free wagons. (#10926)
Caused by incorrect order of operations when buying a train engine with refit and attaching free wagons.
1 year ago
Rubidium 87ccff16b5 Codechange: use std::string for the screenshot name/path 1 year ago
Patric Stout 0e56a73fb8
Fix: disable hardware acceleration when GPU driver crashed the game last attempt (#10928) 1 year ago
Rubidium 556b44713e Codechange: use std::string for midi filenames 1 year ago
Rubidium 84037d4a57 Codechange: use std::string for parameters in the dbg_helpers 1 year ago
Rubidium 2dffa7d0c6 Codechange: let FormatString use StringBuilder 1 year ago
Rubidium 993f90b6a0 Codechange: let GenerateDefaultSaveName return std::string 1 year ago
PeterN ac1d042550
Remove: obsolete NewGRF text unprinting. (#10884)
Co-authored-by: Rubidium <rubidium@openttd.org>
1 year ago
Patric Stout 6b1c38e303
Fix 3effb893: mention GSAsyncMode in changelog (#10924) 1 year ago
Rubidium c384d829fe Codechange: let number formatting use StringBuilder 1 year ago
Rubidium ed51cf117a Add: helper output iterator for formatting strings 1 year ago
Jonathan G Rennison 3effb8931c
Add: [Script] GSAsyncMode to set async mode of gamescript commands (#10913)
In asynchronous mode, don't wait for result of executed command,
just fire-and-forget, and return estimated cost/result
1 year ago
Patric Stout 5821194ad1
Add: [Linux] change default scroll mode to non-mouse-lock (#10920)
Wayland doesn't support mouse warping, X11 only for native
systems (so not for remote desktop, WSLg, etc), and emscripten
neither without complications. All these cannot offer a
mouse-lock.
1 year ago
Patric Stout 0d840b4570 Codechange: remove queue_wrap / last_position from mouse movement
No backend uses it anymore, so also no longer any need to support
it.
1 year ago
Patric Stout e83f244750 Codechange: simplify UpdateCursorPositionRelative
The function is only called with fix_at=true, so don't support
the other cases.
1 year ago
Patric Stout a969a78f81 Fix: [SDL] unify the way X11 and Wayland handle mouse events
Basically, we drop RelativeMode completely, and use the same trick
as used by the Windows driver: read all motion events till the last
one, and use that as value.
1 year ago
PeterN 8a2d550904
Codechange: Use std::reverse instead of custom implementation. (#10918) 1 year ago
Jonathan G Rennison a2c0e6aa18
Fix #10831: Level crossing parts left barred after crossing tile removal (#10874) 1 year ago
Patric Stout cd751a598a
Fix: Wayland crash on startup due to Pango also using FontConfig (#10916)
Basically, we haven't been a good neighbour. Turns out you shouldn't
actually call FcFini when you are done, as some library might still
want to use FontConfig. And they use a shared instance for their
administration.

The idea is that you call FcInit once, and use FcConfigReference
after that to get an instance, you can release. This entry is
ref-counted, and things happen automatically based on that.

At least, I think.
1 year ago
Patric Stout 21adfa7567
Fix: track "memory installed" for surveys less precisely (#10910)
It turns out, for Windows and Linux having the exact memory allows
for easy tracing of an individual. That is exactly against the idea
of the survey. And honestly, we don't need this precision.
1 year ago
translators 7d6aff3a34 Update: Translations from eints
french: 16 changes by ottdfevr
1 year ago
Rubidium d68b5c9162 Codechange: replace buffer + strecpy with std::string for getting clipboard contents 1 year ago
Rubidium 35f7f7e8dc Codechange: use std::string for executing the console aliases 1 year ago
Peter Nelson 2e62682f73 Codechange: Close dropdowns by class instead of id. 1 year ago
Peter Nelson 2511649938 Codechange: Use window parent association for dropdowns.
This replaces the separate window class and number properties, and
allows the window system to close dropdowns automatically.
1 year ago
Peter Nelson dec7ff6b0c Fix: Make dropdowns self-close when losing focus. 1 year ago
PeterN a5a3a07005
Fix: GRF Parameters not displayed due to scope issue. (#10911)
Move params so it is still in scope when the text is actually drawn.
1 year ago
Rubidium 513ede7669 Codechange: use C++ strings/paths to resolve links in tars 1 year ago
Rubidium 0ab7bc7a2b Codechange: use fmt::format to create type prefixed driver names 1 year ago
Rubidium 37a3fc4df3 Codechange: replace strstr with more appropriate function 1 year ago
Rubidium 53f83c31b0 Codechange: use std::string to return the debug level information 1 year ago
Rubidium 10e12154f5 Fix: false positive warning in fmt library (backport ef55d4f of upstream fmt) 1 year ago
Rubidium 802d6cb509 Fix: memory leak when parsing (strgen) commands by moving to C++ containers 1 year ago
Rubidium 4f94655cc2 Codechange: use vector/unorder_map over custom implementation 1 year ago
Rubidium 234a143ee5 Codechange: use std::string for LangString over C-style strings 1 year ago
Rubidium f372373e6f Codechange: use std::string/vector for language cases over manual management 1 year ago
Rubidium 6eb51666bc Codechange: use C++ file APIs for writing language files 1 year ago
PeterN 0b663f709d
Codechange: Sprite mapping for objects doesn't involve cargo types. (#10905)
Objects have a default sprite group and an optional purchase list sprite
group. There is no need to pretend that these are cargo IDs.
1 year ago
Jonathan G Rennison cdb3a6288b Codechange: Remove unused CapacitiesMap typedef from struct Vehicle 1 year ago
Patric Stout 9eda419f9b
Fix 646a7e62: recalc_time was not scaled properly (#10901)
This caused "runtime" to underflow or, if you are lucky, hit an
assert in ScaleToMonthly when it hits zero. But mostly underflow.
1 year ago
translators b5b004e518 Update: Translations from eints
ukrainian: 117 changes by alextov
1 year ago
Rubidium f29606fd14 Codechange: use std::string to cache engine/group/vehicle names 1 year ago
Rubidium d9f8a4c380 Codechange: use std::string GetString variant 1 year ago
Rubidium 324c43eeb2 Codechange: let FiosGetDiskFreeSpace only return disk space and split FiosGetCurrentPath off 1 year ago
Rubidium f2e704b9a7 Codechange: use std::string for FiosIsRoot 1 year ago
Rubidium 13789d1703 Codechange: use std::string for FiosIsValidFile 1 year ago
PeterN 1ff0dc11d8
Fix: Land info window maximum width was not scaled. (#10894) 1 year ago
Patric Stout 0302e6f168
Codechange: initialize all values of ICURun on construction (#10892) 1 year ago
translators c8b70e4877 Update: Translations from eints
ukrainian: 53 changes by alextov
portuguese (brazilian): 1 change by ericandradex
1 year ago
translators e1203c3a48 Update: Translations from eints
esperanto: 51 changes by legoscia
1 year ago
PeterN d086f288cd
Codechange: Remove duplicated includes. (#10888)
These are now included by stdafx.h so don't need to be included again.
1 year ago
PeterN 702194cfef
Change: Cargo flow legend only shows defined cargo. (#10872)
This removes the large mostly-empty grid of cargo buttons when not using a complex industry set.
1 year ago
translators c9c6721a47 Update: Translations from eints
esperanto: 44 changes by legoscia
1 year ago
Peter Nelson bae1897826 Change: Include font style in font name for Freetype. 1 year ago
Peter Nelson 9976293c1e Codechange: Return fontcache font name as std::string. 1 year ago
translators 90fdf17e39 Update: Translations from eints
esperanto: 28 changes by legoscia
1 year ago
Loïc Guilloux c880157518
Fix: Check max member count in squirrel classes (#10883)
Manual cherry-pick from 23a0620658
1 year ago
PeterN 8ea9c1a133
Fix #10880: Crash in object window due to incorrect parameter order. (#10881) 1 year ago
PeterN 876871157f
Fix: Ask FontConfig for the face index when opening fonts. (#10878)
This allows selection of the correct face in truetype fonts containing
multiple faces.
1 year ago
PeterN 101e4e54a1
Fix d9a04ba446: Ensure MD5Hash is initialized. (#10876)
Not all instances need to be initialized as often they are copied or
written to, but doing all ensures no surprises.

Move the ^= operator to MD5Hash while we're at it.
1 year ago
Jonathan G Rennison ba11467c02 Fix: Rail waypoint selection window not closed
When rail toolbar or rail waypoint build windows closed
1 year ago
PeterN 584faaf064
Change: Reorganise industry accept/produce arrays. (#10853)
Use a array of struct for each cargo instead of an array for each statistic.
This makes iterating for acceptance and production much simpler.
pct_transported is now calculated when needed.
1 year ago
Loïc Guilloux db3b086a52
Fix #10867, 8b93e45: Squirrel compile error exception type changed (#10869) 1 year ago
Rubidium b133328737 Codechange: use std::string over strecat to create the RV capacity string 1 year ago
Rubidium 4fdde00e25 Codechange: use std::string to create the GRF parameter list 1 year ago
Rubidium fbab94eabb Codechange: use std::string to create error message about external files 1 year ago
Rubidium 30b9e02dd9 Codechange: replace crashlog filenames with std::string in Crashlog 1 year ago
Rubidium 19304bd3d5 Codechange: replace seprintf with fmt::format for filling the crash log data 1 year ago
Rubidium f4b0ac2bd4 Codechange: use std::string for formatting settings 1 year ago
translators 1412ea48ed Update: Translations from eints
esperanto: 268 changes by legoscia
1 year ago
Peter Nelson 09408e8e46 Codechange: Add IsCargoAccepted/Produced() helpers. 1 year ago
Peter Nelson 633f19419d Codechange: Make more use of GetCargoAccepted/ProducedIndex(). 1 year ago
Rubidium 29b20718ba Codechange: use Tthis instead of StrongTypedef, so ==/= does not compare/assign different strong typedefs 1 year ago
translators 9f0e406a51 Update: Translations from eints
esperanto: 18 changes by legoscia
1 year ago
Peter Nelson 8931e90302 Cleanup: No need to cound actual cargo to get scroll count. 1 year ago
Peter Nelson f177ce7c9a Codechange: Base CargoArray off std::array.
This avoids needing to define array accessors and allows use of
default value initialization.
1 year ago
Peter Nelson 74e42e39a8 Codechange: Use CargoArray::GetCount() 1 year ago
Peter Nelson 76516d7f70 Codechange: Use IsValidCargoID/IsValidCargoType.
IsValidCargoType() is used only for unmapped IDs.
1 year ago
Peter Nelson c4ca6a0f74 Codechange: Rename IsCargo..Valid to IsValidCargo..
This better fits our naming pattern for this type of function.
1 year ago
translators e2827d0e9c Update: Translations from eints
galician: 41 changes by pvillaverde
esperanto: 95 changes by legoscia
portuguese (brazilian): 18 changes by ericandradex
1 year ago
Rubidium a19a43a4f7 Codechange: use fmt::format and time conversions over "custom" implementation 1 year ago
Rubidium eb635b85bb Fix: work around GCC compiler bug #105120 in fmt
The fmt code pushes a pragma option, and later pops is. The intrinsics code
interacts with it via the __OPTIMIZE__ macro. This has been set by the pragma
option push, but not unset/reset to the original with the pop.
Since the pragma is only used for the GCC compiler (not Clang, not MSVC, not
ICC) and in debug mode, just remove the whole pragma handling for it.
1 year ago
Rubidium 187fa3f214 Codechange: update to fmt 10.0.0 and add formatting support for chrono and std types 1 year ago
Rubidium 6f2f38b3ed Codechange: fmt (and std::format) do explicitly not support enums out-of-the-box
That it works for the version we have packaged it pure coincidence, as that is
one of the few versions that due to a bug allow it. So add the appropriate
template specialisations to support it out-of-the-box within OpenTTD.
1 year ago
PeterN bc45c3f66c
Change: Remember waypoint filter string. (#10857) 1 year ago
Rubidium 63d9bb93b8 Codechange: migrate from C-style GetString to C++-style GetString 1 year ago
Rubidium 1a179cb297 Codechange: use GetString + StrMakeValid to pass string without colours/font sizes to Debug 1 year ago
Rubidium 00695c29de Codechange: simplify news string drawing by using StrMakeValid to replaces newlines with spaces 1 year ago
translators 9610705f46 Update: Translations from eints
esperanto: 52 changes by legoscia
1 year ago
axet 60540f7df6 Change: Allow dedicated server to use threaded saves. (#10787)
Co-authored-by: Jonathan G Rennison <j.g.rennison@gmail.com>
1 year ago
Rubidium 2efd88d513 Cleanup: version of strgen/settingsgen was always $Revision$, so remove it 1 year ago
Rubidium 2dbd974d4c Codechange: prevent using (f)printf/(f)puts over fmt::print 1 year ago
Rubidium 411379f587 Codechange: replace puts with fmt::print 1 year ago
Rubidium 275ebf4509 Codechange: replace fprintf(<FILE*> with fmt::print(<FILE*> 1 year ago
Rubidium c518293135 Codechange: replace printf with fmt::print 1 year ago
Tyler Trahan d57046e7ec
Change: Use "Via-Destination-Source" as default station cargodist display (#10851) 1 year ago
Patric Stout 0850193a38
Fix: survey result on crash only worked on Linux (#10855)
Every OS-specific crashlog handler has their own MakeCrashLog
in some form. In result, only Linux was calling the generic one.
1 year ago
translators 98dffc3157 Update: Translations from eints
catalan: 12 changes by J0anJosep
esperanto: 678 changes by legoscia
1 year ago
Rubidium 3323402aaa Codechange: rename smallvec_type to container_func and use only when needed 1 year ago
Rubidium 80d8c01814 Codechange: replace std::vector + duplicate preventing include with std::set 1 year ago
Rubidium 07860e67e2 Codechange: use fmt::format_to to format the help message 1 year ago
Loïc Guilloux 8d2a0a7da4
Fix #10846: [Squirrel] Ensure sqvector size does not overflow (#10848) 1 year ago
PeterN 0cbbfd3eae
Codechange: Use display list instead of exclude list for file window. (#10845)
This simplifies retrieving the correct data for each row when data is
filtered. The background FileList is left intact so that savegame data
does not have to be rescanned when the filter is changed, and sorting
still remains the task of the background FileList.
1 year ago
translators cdb184f53b Update: Translations from eints
catalan: 14 changes by J0anJosep
dutch: 14 changes by Afoklala
1 year ago
Peter Nelson 6b87fe6540 Codechange: Use std::array for GRF(File|Config) parameters.
This simplifies comparison, copying and assignment operations.
1 year ago
Peter Nelson c23aae96a2 Codechange: Use std::array instead of C array for automatic deep-copies. 1 year ago
Rubidium acec34a0fe Cleanup: remove MD5SumToString in lieu of FormatArrayAsHex 1 year ago
Rubidium d9a04ba446 Codechange: make the MD5 hash/digest/checksum variables a std::array 1 year ago
Peter Nelson 7934418133 Codechange: Remove comment alignment from GRFConfig. 1 year ago
Peter Nelson f14479d27d Codechange: Use std::optional for GRF Parameter list. 1 year ago
Peter Nelson c51a7f629e Codechange: GRFParameterInfo no longer needs deep-copy constructor. 1 year ago
translators fd26658558 Update: Translations from eints
russian: 2 changes by Ln-Wolf
1 year ago
Peter Nelson 91e140c722 Codechange: Use unique_ptr for fios company properties.
This is the data used to show company names in the saveload window.
1 year ago
Peter Nelson bf8f24f9a8 Codechange: Use unique_ptr for text layout font mapping.
This must stay a pointer as the value passed to other structures.
1 year ago
Peter Nelson c38df2d589 Codechange: Use std::map instead of custom SmallMap. 1 year ago
Peter Nelson 72018badff Codechange: Swap SocketList map key/value around.
This map is used store socket and address together, and, other than
checking that the address does not already have a socket, the data layout
does not seem particularly important.

However, as address is the key, technically it should not be modified,
and address may self-modify itself during comparisons.
1 year ago
Peter Nelson f454ec8d63 Fix: Don't rely on static initialization to set up sprite font caches.
The order of static initialization is undefined, so this can cause initalization
before relevant caches are initializations.
1 year ago
translators 418888ac23 Update: Translations from eints
romanian: 11 changes by bnegrut
turkish: 14 changes by densxd
1 year ago
Peter Nelson 83f2ad500e Codechange: stdarg.h include not needed as cstdarg is included. 1 year ago
Peter Nelson 56085be9bd Codechange: Move includes for common STL headers to stdafx. 1 year ago
translators a5cf362886 Update: Translations from eints
english (au): 14 changes by krysclarke
english (us): 14 changes by 2TallTyler
vietnamese: 14 changes by KhoiCanDev
korean: 19 changes by telk5093
italian: 14 changes by Rivarossi
russian: 14 changes by Ln-Wolf
finnish: 14 changes by hpiirai
danish: 22 changes by bscargo
portuguese: 14 changes by azulcosta
polish: 14 changes by pAter-exe
1 year ago