Commit Graph

21800 Commits (e517e556201212d6e705ae2571ce51823b56a493)

Author SHA1 Message Date
translators 809b599c21 Update: Translations from eints
english (au): 48 changes by krysclarke
english (us): 32 changes by 2TallTyler
vietnamese: 10 changes by KhoiCanDev
chinese (simplified): 46 changes by WenSimEHRP, 2 changes by XiaoJi-Game
korean: 58 changes by telk5093
russian: 57 changes by Ln-Wolf
finnish: 22 changes by hpiirai
catalan: 30 changes by J0anJosep
danish: 12 changes by bscargo
dutch: 45 changes by Afoklala
spanish: 214 changes by lrlopez
french: 8 changes by glx22
portuguese: 23 changes by azulcosta
portuguese (brazilian): 30 changes by pasantoro
polish: 4 changes by pAter-exe
5 months ago
Koen Bussemaker 5a55c4a934 Feature: [NewGRF] Allow higher max speeds for ships 5 months ago
Loïc Guilloux 461d69a8f6
Fix #11907: Allow genders for time related {UNITS_XXX} (#11908) 5 months ago
frosch 17dfc1a49a Codechange: Replace SF_GUI_NEGATIVE_IS_SPECIAL with a settings value callback. 5 months ago
frosch 28c83089f6 Codechange: Remove TKM string code. 5 months ago
frosch 9344b50435 Codechange: Remove TKM from settings texts. 5 months ago
frosch 9e9a8ca7f6 Codechange: Add callbacks to IntSettingDesc to support dynamic strings for title, help and values. 5 months ago
frosch 022b9e92d2 Codechange: Move settings string formatting into IntSettingDesc members. 5 months ago
frosch a9d1078434 Codechange: Remove TKM from town action tooltips. 5 months ago
frosch abfeeea849 Codechange: Compose engine preview text from multiple strings. 5 months ago
frosch 68c64d2511 Codechange: Remove TKM string codes by duplicating strings. 5 months ago
frosch bd3d687bf9 Codechange: Merge all BaseGraphWindow widget enums into one.
Previously it relied on some enum entries using the same integer value.
5 months ago
frosch 69f47caf3f Codechange: Remove TKM from vehicle list sorting dropdowns. 5 months ago
frosch 9741510396 Fix: Wallclock setting should not affect percent-based service interval increments. 5 months ago
Tyler Trahan 86981c0983
Fix: Extra refit button when train/RV is in a depot (#11904) 5 months ago
Patric Stout 05b253b33b
Fix ea8c1d85: improve smoothness of smooth-scrolling for 60+Hz screens (#11884) 5 months ago
SamuXarick 0c4e509b60
Fix #10439: [GS] Validate story page button colour, flags, cursor and vehicle type (#11892)
Adds GSStoryPage::IsValidStoryPageButtonColour, GSStoryPage::IsValidStoryPageButtonFlags and GSStoryPage::IsValidStoryPageButtonCursor to the API.

Add missing enforced preconditions to validate parameters passed to MakePushButtonReference, MakeTileButtonReference and MakeVehicleButtonReference.
5 months ago
SamuXarick 76f0f9e386
Fix #10438: [GS] Validate story page element type for ScriptStoryPage::NewElement (#11888)
Fixes a crash that happens if an invalid StoryPageElementType is passed to ScriptStoryPage::NewElement.

Adds an enforced precondition that tests the validity of StoryPageElementType.

Adds GSStoryPage::IsValidStoryPageElementType to the API.
5 months ago
Peter Nelson 6d276698b6
Fix: Memory leak in ICUParagraphLayout::NextLine() (#11895)
This function calls icu::BreakIterator::createLineInstance() but does not clean up after it.

Instead use a static instance that is cloned (for thread-safety) and deleted as necessary.
5 months ago
Jonathan G Rennison 1df7b21ee3
Fix #11889: ConstructWindow not called from SurveyResultTextfileWindow constructor (#11903) 5 months ago
Peter Nelson d3c673e20b
Fix #11894: Defer window OnResize event to avoid processing multiple times per input tick. (#11900) 5 months ago
Patric Stout 8c5ad1ade7
Fix fd9e72a7: actually use the parameter value instead of the current date (#11898) 5 months ago
Peter Nelson fef0bfcfd3
Fix: TextfileWindow called virtual methods before constructor completed. (#11889)
SetStringParameters() was called during widget tree init in the constructor.

Calls within a constructor cannot call the derived classes methods. This would result in invalid data being passed to the string system, which could then crash.
5 months ago
Kuhnovic 8a4a99b7e8
Fix #5713: FindClosestShipDepot only considers depots that are actually reachable (#11768) 5 months ago
Patric Stout 89520f5665
Add: show in multiplayer the amount of hours a game has been unpaused (#11886) 5 months ago
Patric Stout 2bbc95cac3
Fix: update server as offline when unexpected disconnect during refresh (#11891) 5 months ago
Richard Wheeler 8770ef6bd9
Change: Make street lights transparent with houses (#11828) 5 months ago
Rubidium 7916e97c62 Update: opengl; glext header to 20231129, wglext header to 20231018 5 months ago
Rubidium a23cd4aef7 Update: nlohmann/json to 3.11.3 5 months ago
Rubidium 79b684b8ac Update: fmt to 10.2.0 5 months ago
Patric Stout 80ebcc72fb
Change: rebrand Cheats as Sandbox Options (#11874) 5 months ago
Tyler Trahan 28716548d2
Feature: Setting to automatically restart server based on hours played (#11142) 5 months ago
Loïc Guilloux 09b66751cf
Fix b38d3c2208: missing water regions invalidation when building locks (#11879) 5 months ago
Patric Stout 36579dd18b
Change: set smooth-scrolling on by default (#11860) 5 months ago
Patric Stout ea8c1d8597 Change: make for smooth-scrolling based on actual time
This means if rendering takes a bit longer, scrolling goes a bit
quicker, making travel time always about the same time for the
same distance.
5 months ago
Jonathan G Rennison cbb24b5d71
Codechange: Split bit numbers from values in RailTypeFlags, RoadTypeFlags enums (#11877) 5 months ago
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