Commit Graph

21764 Commits (83d63464db912f030b4cbf2936a878d1c86c338d)

Author SHA1 Message Date
Tyler Trahan 21581b6ab3
Feature: Setting for minutes per calendar year (#11428) 5 months ago
translators be8ed26db6 Update: Translations from eints
norwegian (nynorsk): 5 changes by translators
slovenian: 5 changes by translators
faroese: 5 changes by translators
hebrew: 5 changes by translators
afrikaans: 5 changes by translators
urdu: 5 changes by translators
persian: 5 changes by translators
bulgarian: 5 changes by translators
belarusian: 5 changes by translators
basque: 5 changes by translators
russian: 23 changes by Ln-Wolf
finnish: 1 change by hpiirai
malay: 5 changes by translators
scottish gaelic: 5 changes by translators
croatian: 5 changes by translators
latin: 5 changes by translators
french: 49 changes by glx22, 8 changes by ottdfevr
portuguese (brazilian): 80 changes by pasantoro
icelandic: 5 changes by translators
5 months ago
Tyler Trahan fd9e72a7e7
Feature: Use real-time "wallclock" timekeeping units (#11341) 5 months ago
Tyler Trahan bbdbf9a589
Add: AI/GS Time Mode to choose between economy (default) and calendar time (#11603) 5 months ago
Patric Stout a1487ce620
Add: list_[scenario|heightmap] and load_[scenario|height] console commands (#11867) 5 months ago
Tyler Trahan 76499b96fb
Fix fa479c4: Typo in vehicle list tooltip (#11871) 5 months ago
Patric Stout 090616b4c9
Add: allow loading heightmaps from command-line (#11870)
If you want to load a file from tar, you have to give the file
inside the tar in order for it to work:

<tar-file>/<dir-in-tar>/<file>.png
5 months ago
Kuhnovic bf3fd6526b
Fix: use correct size parameter type in TileArea constructors (#11869) 5 months ago
Patric Stout 11d4f1b2bd
Fix d3b2a576: LOAD_HEIGHTMAP / LOAD_SCENARIO are Scenario Editor modes (#11868) 5 months ago
Patric Stout d3b2a576de
Feature: Plugin framework for Social Integration with Steam, Discord, GOG, etc (#11628) 5 months ago
Patric Stout 75f21065c9
Codechange: refactor DecodeHexText to a generic purpose ConvertHexToBytes (#11866)
DecodeHexText() does more than just decoding hex. ConvertHexToBytes()
now only does pure hex decoding. This required a bit of refactoring
for the code using DecodeHexText().
5 months ago
translators 786cc85e86 Update: Translations from eints
english (au): 155 changes by krysclarke
norwegian (bokmal): 9 changes by v0nNemizez
english (us): 155 changes by 2TallTyler
chinese (simplified): 9 changes by WenSimEHRP
russian: 41 changes by Ln-Wolf
finnish: 1 change by hpiirai
5 months ago
Tyler Trahan 735abfe111
Codechange: Split dates and timers into Economy and Calendar time (#10700) 5 months ago
EmperorJake 419f48dfb3
Change: set amount of smoke/sparks to "realistic" by default (#11624) 5 months ago
Kuhnovic b38d3c2208
Change: simplified water region evaluation, removed savegame data (#11750) 5 months ago
Patric Stout 1985e7415b
Fix: smooth-scrolling large distances didn't got smoothly in one direction (#11861) 5 months ago
Peter Nelson c7d5cedc7b
Codechange: Replace C-style TICC/TOCC macros with C++ RAII implementation. (#11857)
Usage is more robust, and will always include timing when the TicToc object goes out of scope.
5 months ago
Peter Nelson 691c628b07
Codechange: Use named initialization for unscaled WidgetDimensions. (#11859)
Remove now-unused WD_* enums.
5 months ago
Patric Stout 0c81579363
Fix #6377: two tarballs with the same folder in them were considered as one (#11855) 5 months ago
SamuXarick 6588680ccc Revert #6923: start_date parameter is no longer in use
There was an issue with the start_date parameter for AIs. It did not let Random AIs to have their configure button clickable once the game has started, and this was due to the start_date not being pushed into the config.

But now that start_date is no longer in use since #10653, this workaround can be safely removed.
5 months ago
Patric Stout f35e257adc
Fix #9722: create vital windows as soon as local_company is set (#11858)
Many places use local_company to detect whether world generation is
done, and blindly assume all vital windows exists when local_company
is set.
5 months ago
Peter Nelson a9a0bfffc1
Change: Disable building rail infrastructure if train build limit is zero. (#11847)
This matches the behaviour of road, ship and aircraft infrastructure.
5 months ago
Peter Nelson 89474701bc
Codechange: Use templates to deduplicate goal widgets. (#11852) 5 months ago
Patric Stout fa8294ebe7
Remove: rdtsc and TIC/TOC based on CPU ticks (#11856)
Use TIC/TOC based on std::chrono instead. This information is also
easier to compare with others, as although it depends on CPU, it
means a bit more if "yours takes 4ms and mine takes 10ms".
5 months ago
Patric Stout fe035c306e
Codechange: prevent out-of-bound read (even if the result is never used) (#11853) 5 months ago
Peter Nelson 8797cc7ef2
Codechange: Replace GroupStatistics' num_engines with std::map. (#11849)
This removes manual memory management with calloc/free calls, and prevents potentially large arrays being allocated for each group.
5 months ago
Peter Nelson c0ab436077
Codechange: Store Colours in Colours type. (#11625)
This reduces casts, some magic numbers, and introduces a bit of type-safety.
5 months ago
Peter Nelson 0841978304
Codechange: Use vector and iterators to store old/new vehicles during autoreplace. (#11851)
This avoids malloc/free of 3 arrays along index counting, and the data for each part is kept together.
5 months ago
Rubidium 2d77f09a81 Codechange: use std::shared_ptr for vector of TCPConnecters 5 months ago
Patric Stout 71b8801b61
Fix bd85f61a: [Linux] don't include sys/random.h on older glibc systems (#11844) 5 months ago
Tyler Trahan fa479c4a7c
Cleanup: Describe modifier keys more consistently in tooltips (#11716) 5 months ago
Tyler Trahan 500870627d
Change: Rewrite a few main toolbar tooltips (#11717) 5 months ago
translators 4d79d86812 Update: Translations from eints
catalan: 18 changes by J0anJosep
5 months ago
Peter Nelson d6ccfdbbd9
Fix #11827: Make Layouter::GetCharPosition() aware of ligatures. (#11831)
When ligatures happen the precise individual character position is not known, so instead return the previous position (which is that of the ligature.)
5 months ago
Rubidium 086cbd0d72 Codechange: add constexpr to math functions where applicable 5 months ago
Rubidium dfe70181f1 Codechange: add constexpr to bitmath functions where applicable 5 months ago
Rubidium 4c51534b6a Remove: LeastCommonMultiple / GreatestCommonDivisor
Use std::lcm / std::gcd instead.
5 months ago
Rubidium 1403f24fa9 Codechange: replace LeastCommonMultiple with std::lcm 5 months ago
Patric Stout bd85f61a40 Change: use a stronger hash and actual random information to generate Uids 5 months ago
Patric Stout 37244bc8c5 Codechange: MacOS already has MIN/MAX macros defined
This is caused because we use PreCompile Headers, and one of them
includes a system headers which defines MIN/MAX.
5 months ago
Patric Stout 63a3d56b8a Add: monocypher 4.0.2
Monocypher will take care of all our encryption needs; as most
OSes and vcpkg doesn't have it available, we vendor it.
5 months ago
Rubidium 6b21368bc2 Codechange: replace FIND_FIRST_BIT/FindFirstBit2x64 with FindFirstBit 5 months ago
Rubidium 8faaedeff9 Codechange: replace hand written function to find first/last bit with C++ variant 5 months ago
Peter Nelson 903119115b
Fix 9602de4: FinaliseCargoArray did nothing. (#11839)
`CargoSpec::Iterate()` deliberately skips invalid cargo types, but `FinaliseCargoCarry()` is only interested in them.
5 months ago
translators db7697bcdf Update: Translations from eints
chinese (simplified): 22 changes by WenSimEHRP
romanian: 37 changes by bnegrut
5 months ago
Peter Nelson 9cf47af490
Change: Invalidate music volume when restarting music playback on Windows. (#11836) 5 months ago
Peter Nelson 6a2c37b4ed
Fix 09f585b: Crash if font name ends with comma or comma and whitespace on Linux. (#11838) 5 months ago
Rubidium 1c694e433d Codechange: use std::popcount instead of hand written loop 5 months ago
Peter Nelson ae575a7a5b Codechange: Store text run positions in vector of points.
This simplifies the interlaced vector of x/y positions.
5 months ago
Peter Nelson f7cc88f370 Codechange: Return vector references instead of pointer to first item. 5 months ago
Rubidium 2f8de227dc Remove: unused OTTD_ALIGNMENT define and ReadLE16(Un)aligned 5 months ago
Rubidium ee00c7b159 Codechange: use TO_LE16 directly when reading language file offsets 5 months ago
translators 32b99bf77c Update: Translations from eints
portuguese: 4 changes by azulcosta
5 months ago
Loïc Guilloux bf4b669628
Fix: [Script] Improve ScriptText validation (#11721)
The validation is now done in two steps:
 - First we get the list of parameters in the same order they used to be in encoded string
 - Then we validate the parameter types like FormatString would use them while encoding the string
5 months ago
Peter Nelson 28ef5146ba Fix #11646: Non-thread safe shared buffer returned from GetLogPrefix().
Return string from GetLogPrefix instead of shared string's buffer.
5 months ago
Patric Stout 2b599c9d00 Fix: [HarfBuzz] make HarfBuzz use the same glyphs as we render 5 months ago
Patric Stout a24c2bf10a Codechange: [HarfBuzz] hb-ft will set the scaling on its own 5 months ago
Peter Nelson 7faa3848de
Change: Mark whole screen dirty when toggling font AA. (#11825) 5 months ago
Rubidium 4cc97e04e6 Fix #11801, 51f1e93: CalcClosestTownFromTile needs the kd-tree to be valid 5 months ago
Peter Nelson 0be26f5856
Change: Remove extra padding from query text. (#11823)
This window uses 'modalpopup' padding so does not need extra padding on its text.
5 months ago
Rubidium 47c0184a0b Codechange: replace ROR/ROL with std::rotr/rotl 5 months ago
frosch f457be5a27
Fix #11819, aa5ba5b: Out-of-bounds access in linkgraph GUI. (#11821) 5 months ago
Rubidium 2d77cf9c80 Codechange: replace StrStartsWith/StrEndsWith with starts_with and ends_with 5 months ago
translators 384b804f9c Update: Translations from eints
english (au): 1 change by krysclarke
chinese (simplified): 21 changes by WenSimEHRP
danish: 4 changes by bscargo
french: 2 changes by ottdfevr
portuguese (brazilian): 5 changes by pasantoro
polish: 5 changes by pAter-exe
5 months ago
Peter Nelson 341bdabc70
Fix #11815, bb491127: Missing brackets prevented vehicles turning properly. (#11816) 5 months ago
Jonathan G Rennison fd0528a9b4 Fix: Excessive switching of horizontal scale for FPS graph 60 Hz categories 6 months ago
Jonathan G Rennison 17d47ba06f Fix 661bdae2: cargo_payment not cleared when aircraft loading cancelled 6 months ago
Patric Stout fd073a2810 Remove: replace custom span with std::span 6 months ago
Patric Stout bb49112784 Codechange: switch our codebase to C++20 6 months ago
Michael Lutz fd59393899
Fix #11791, e1f5be62: Run missing-glyph detection after toggling sprite font. (#11812) 6 months ago
Rubidium aa5ba5bd7f Codechange: allow certain enumeration to be added
Otherwise C++20 doesn't like it.
6 months ago
Peter Nelson 7737aa6640 Codechange: Make all NWidgetPart arrays constexpr.
This ensures that the arrays are not created at runtime and prevents using non-constexpr values.
6 months ago
Peter Nelson 71b7ba0daa Codechange: Allow constexpr NWidgetPart construction. 6 months ago
Peter Nelson a5b6e17556 Codechange: Make geometry methods constexpr. 6 months ago
Peter Nelson 68843e3a96 Codechange: Move WidgetDimensions::unscaled to header to allow const use. 6 months ago
Peter Nelson 7eecd7512f Codechange: Remove redundant struct keyword. 6 months ago
Patric Stout 6860a86d45
Codechange: remove all u8 prefix in favour of compile-time option (#11807) 6 months ago
Patric Stout 6550682b49
Codechange: minor bits and pieces related to fmt::format() (#11806)
- Don't make run-time formatting what can be done compile-time.
- Be explicit about run-time formatting.
- Fix datetime printing.
6 months ago
Patric Stout 0b7410d979
Codechange: compile-time validate the string format of IConsolePrint (#11804)
This means we can no longer use runtime picking what string to use.
6 months ago
Patric Stout 8b4c5a6269
Codechange: compile-time validate the string format of SlErrorCorruptFmt (#11805) 6 months ago
Peter Nelson d005e8f8bd
Fix 884b9e66: No need to include extra pixel for pressed state. (#11803) 6 months ago
translators 2efd897691 Update: Translations from eints
english (au): 4 changes by krysclarke
english (us): 4 changes by 2TallTyler
chinese (simplified): 8 changes by WenSimEHRP
korean: 4 changes by telk5093
russian: 4 changes by Ln-Wolf
finnish: 4 changes by hpiirai
french: 8 changes by ottdfevr
6 months ago
Rubidium 661bdae2e5 Fix #11785, cf16f45: when bumping aircraft into the air, remove them from the loading vehicle list again 6 months ago
Rubidium f99793547e Fix fbd71a9: for TTO savegames, getting the savegame type left the file pointing to the wrong location 6 months ago
Rubidium d5518f6263 Fix 36a0818: TTO did not save company shares 6 months ago
Rubidium 51f1e939e8 Change: be more resilient against missing towns in old loader 6 months ago
Rubidium 67b405d2f6 Fix #11783, 953445a: TTO savegames are not 65536 by 65536 6 months ago
Rubidium f5b320e502 Codechange: use range based for loop, instead of tile numbers 6 months ago
Rubidium b09a4384d9 Codechange: remove need to use separate array for old_map3 6 months ago
Peter Nelson 8510f7bd00
Fix: NWidgetParts must use unscaled dimensions. (#11794) 6 months ago
EmperorJake 64bc07ff4e
Change: Make "middle" the default stopping location for trains in platforms (#11605) 6 months ago
Patric Stout 375074577f
Fix: [SDL] remove hint to avoid hardware acceleration (#11790)
This hint was once needed because of the way we handled surfaces.
But as OpenGL already uses a hardware surface, we already had to
fix all the issues that comes with it. As that is generic code,
this hint is no longer actually needed. Further more, recent SDL
versions break because of it on Wayland.
6 months ago
Loïc Guilloux b18e78e21d
Change: Redesign script debug window (#11782) 6 months ago
Tyler Trahan 68814bd912
Codechange: Rename SIGTYPE_NORMAL to SIGTYPE_BLOCK (#11788) 6 months ago
Tyler Trahan 4a194482ea
Fix e1f5be6: Typo when selecting traditional sprite font (#11789) 6 months ago
translators a1690d5b7b Update: Translations from eints
portuguese (brazilian): 1 change by pasantoro
6 months ago
Jonathan G Rennison 94e74a45c2
Fix: Viewport virt coords not updated when sprite font toggled (#11784) 6 months ago
Peter Nelson 53fa54f8e9
Fix e1f5be62: Clear font cache when toggling sprite font. (#11780)
This is necessary for the sprite font height and ascender to be updated correctly.
6 months ago
Patric Stout 32fc740582
Fix: [SDL2] fullscreen always used the resolution of the first display (#11779) 6 months ago
Patric Stout 302ba93471
Fix: [SDL2] only resolutions of the first display were shown (#11778) 6 months ago
Michael Lutz e1f5be6244 Add: GUI options to select sprite font and AA mode for all fonts. 6 months ago
Michael Lutz 20f1a0dc57 Fix: [OSX] Spurious log message when a sprite glyph was layouted. 6 months ago
Michael Lutz 36cf6b1d13 Feature: Scalable OpenTTD TrueType font made by Zephyris.
This uses the normal variant for the small font, not the all-caps version.
6 months ago
Michael Lutz 6e766a2e81 Change: Allow TrueType fonts to provide our private-use glyphs. 6 months ago
Loïc Guilloux 37610af0e4
Fix: Don't replace stripped characters with '?' in console (#11777) 6 months ago
Rubidium 564441e822 Remove: Debug redirect over network
It does not work for dedicated servers because upon starting the process to
resolve the address to redirect to gets killed. Also with all the async going
on in the network code, the debug redirection will start very late in the
process.
6 months ago
Peter Nelson a6873ef7dd
Codechange: Avoid repeatedly calling virtual methods in text drawing loop. (#11774) 6 months ago
translators e8d6b496c2 Update: Translations from eints
english (au): 1 change by krysclarke
english (us): 1 change by 2TallTyler
chinese (simplified): 9 changes by WenSimEHRP
korean: 1 change by telk5093
russian: 1 change by Ln-Wolf
finnish: 1 change by hpiirai
danish: 2 changes by bscargo
french: 2 changes by ottdfevr
portuguese: 1 change by azulcosta
6 months ago
Peter Nelson f219557cf2
Codechange: List functions in gui.h under correct source file. (#11775) 6 months ago
Peter Nelson 71aaed860b
Codechange: Missing some conversions to WidgetID. (#11773) 6 months ago
Loïc Guilloux 93ba6d6776
Fix: compilation without precompiled headers (#11770) 6 months ago
Peter Nelson e3bb6497f7 Codechange: Don't assume game options widget is a dropdown list. 6 months ago
Peter Nelson 8ca867ef63 Codechange: Replace game options' style-breaking if-condition with switch. 6 months ago
translators 341d022024 Update: Translations from eints
chinese (simplified): 141 changes by WenSimEHRP
russian: 3 changes by Ln-Wolf
danish: 6 changes by bscargo
latvian: 10 changes by lexuslatvia
dutch: 16 changes by Afoklala
french: 2 changes by ottdfevr
6 months ago
Jonathan G Rennison b3f31a6523
Fix #11696: Graphics set parameters missing from survey data (#11764) 6 months ago
Jonathan G Rennison 479490d7e8
Codechange: Remove unnecessary vector for writing GRF parameter JSON (#11763) 6 months ago
Loïc Guilloux 54b57fbfeb
Codechange: [Script] Use ScriptList::FillList() in more locations (#11762) 6 months ago
Tyler Trahan 60da6b992e
Fix #4415: Land info build date is also renovation date (#11759)
Co-authored-by: Gadg8eer <64449092+Gadg8eer@users.noreply.github.com>
6 months ago
Loïc Guilloux 03df70ce8a
Fix #11752: [Win32] Wrong multi-line text layout due to incorrect partial run handling (#11761) 6 months ago
Loïc Guilloux 28efa65e0c
Revert a2edf52: SQOpsLimiter does a more precise job (#11754) 6 months ago
Jonathan G Rennison 1101b04371 Fix: Build button text when train purchase window using "Engines" filter 6 months ago
Rubidium 32ab765792 Fix #11485: new run on same line must not use last_space of previous run as cut-off point
Use the start of the next run instead as the location of the last space.
6 months ago
translators 94d31864b3 Update: Translations from eints
chinese (simplified): 16 changes by WenSimEHRP
arabic (egypt): 23 changes by AviationGamerX
korean: 1 change by telk5093
portuguese (brazilian): 10 changes by pasantoro
polish: 4 changes by pAter-exe
6 months ago
Patric Stout d3ee045c2d
Codechange: refactor the Windows-only DllLoader in a cross-platform LibraryLoader (#11751) 6 months ago
Loïc Guilloux f7bd70baec
Fix #11748: Incorrect clamping of negative service interval values (#11749) 6 months ago
Jonathan G Rennison 86b046cd26
Fix: Incorrect assertion in GetTileIndexFromLocalCoordinate (#11747) 6 months ago
Peter Nelson 8f2266f0ed
Codechange: Use range-for when validating and finalising industries. (#11744) 6 months ago
Jonathan G Rennison 09eefd6e95 Cleanup: Remove unused constant YAPF_SHIP_PATH_CACHE_LENGTH 6 months ago
Jonathan G Rennison c1b421c0c3 Fix: Clear one way state when removing road from road+tram tile 6 months ago
Peter Nelson 97e2bc612c Codechange: Rename and move SpriteGroup-specific cargo types into a namespace.
These 'cargo types' have special defined uses and must not be used elsewhere. This makes it clearer that they are special.
6 months ago
Peter Nelson 400ae65ff2 Codechange: Redefine some cargo-related values in terms of CargoID instead of CargoType.
Values used as special filter types are now defined as offsets from NUM_CARGO instead of confusingly reusing CARGO_NO_REFIT/CARGO_AUTO_REFIT types.
6 months ago
Peter Nelson 952d111b94 Codechange: Split CT_INVALID into CT_INVALID and INVALID_CARGO.
INVALID_CARGO is a CargoID and should be used for most purposes in game.
CT_INVALID is a CargoType used for defining default properties.
6 months ago
translators 4fd986bd07 Update: Translations from eints
english (au): 7 changes by krysclarke
english (us): 7 changes by 2TallTyler
chinese (simplified): 6 changes by WenSimEHRP
serbian: 39 changes by DoLoop216
russian: 3 changes by Ln-Wolf
finnish: 4 changes by hpiirai
portuguese: 10 changes by azulcosta
polish: 34 changes by pAter-exe
6 months ago
Loïc Guilloux c86d918921
Add: [Script] Optional filter parameter to more ScriptXXXList constructors (#11698) 6 months ago
Kuhnovic f1e999ec59
Feature: Region-based pathfinder for ships (#10543) 6 months ago
translators 9a7c4dda52 Update: Translations from eints
english (au): 3 changes by krysclarke
english (us): 3 changes by 2TallTyler
chinese (simplified): 5 changes by WenSimEHRP
korean: 3 changes by telk5093
russian: 3 changes by Ln-Wolf
finnish: 3 changes by hpiirai
french: 5 changes by Lishouuu
6 months ago
Tyler Trahan 56dd8497e0
Fix: Use consistent wording on waypoint button tooltip (#11700) 6 months ago
Kaspars Putniņš cfc14a57e1
Add: Latvian Lats currency (#11691) 6 months ago
Jonathan G Rennison 4b48d3b5fe
Fix: String gender scan with SCC_INDUSTRY_NAME (#11697) 6 months ago
Tyler Trahan 948651d086
Fix: Use consistent wording for lorry stations (#11699) 6 months ago
translators 6bf7a86a04 Update: Translations from eints
english (us): 2 changes by 2TallTyler
korean: 2 changes by telk5093
danish: 2 changes by bscargo
6 months ago
Tyler Trahan 1e56bd1e5a
Change: Reorganize Settings menu items (#11683) 6 months ago
translators 0a8c0d62ee Update: Translations from eints
chinese (simplified): 103 changes by WenSimEHRP
latvian: 2 changes by lexuslatvia
6 months ago
Rubidium 3a676a5af0 Codechange: replace static inline with static for non-class functions 6 months ago
Peter Nelson 06a5fa6239 Codechange: Use CompanyMask to pass Companies to PopupMainCompanyToolbMenu().
It's like the type was designed for it.
6 months ago
Peter Nelson 6828b6014a Codechange: Use company group statistics to test for vehicles for drop down list state.
This avoids iterating full the vehicle pool to find out if a company has any vehicles of a particular type.
6 months ago
SamuXarick 847f3f660d
Fix #10511: Delay 'go to nearest depot' orders (#11548)
Delay the nearest depot order search for a day if the vehicle can't find its destination, which happens when it has already attempted to do so and failed to find a valid destination.
6 months ago
Peter Nelson 7a5106042f
Codechange: Use CompanyMask and company group statistics for auto clean tests. (#11693)
This function does not need to know how many vehicles there are, only that there is at least one.
6 months ago
Peter Nelson 34e8c8e1c1
Codechange: Build station and depot vehicle lists from shared order lists. (#11676)
The brings some performance advantages:

* No need to iterate all vehicles and check for primary vehicle as only vehicles that can have orders are listed.
* Shared orders only need to be tested once instead of for each vehicle sharing them.
* Vehicle tests only need to be performed on the first shared vehicle instead of all.
6 months ago
Patric Stout 7788b68bbe
Fix: don't unneededly block on transmitting survey on exit (#11687) 6 months ago