welsh: 5 changes by Ansbaradigeidfran
estonian: 108 changes by siimsoni, 50 changes by RM87
luxembourgish: 276 changes by phreeze83
hungarian: 81 changes by PstasDev
indonesian: 6 changes by tsaqibfs
italian: 191 changes by AlphaJack
bulgarian: 118 changes by lamarin1
ukrainian: 16 changes by StepanIvasyn
tamil: 408 changes by Aswn
turkish: 43 changes by metsysma
esperanto: 103 changes by JadedCtrl
portuguese (brazilian): 57 changes by pasantoro
polish: 61 changes by pAter-exe
swedish: 1 change by SpamixOfficial
welsh: 280 changes by Ansbaradigeidfran
vietnamese: 245 changes by myquartz
estonian: 1 change by siimsoni
czech: 64 changes by LubosKolouch, 29 changes by adamek0202
arabic (egypt): 17 changes by AviationGamerX
luxembourgish: 247 changes by phreeze83
hungarian: 9 changes by nemesbala
indonesian: 21 changes by tsaqibfs, 19 changes by K4smun1
italian: 13 changes by AlphaJack
hebrew: 20 changes by Boltyansky
bulgarian: 107 changes by lamarin1
finnish: 4 changes by lanurmi
ukrainian: 18 changes by StepanIvasyn
catalan: 1 change by arnaullv
turkish: 120 changes by metsysma, 43 changes by EndChapter
danish: 23 changes by mamure, 23 changes by bscargo
dutch: 1 change by Jaws3rd
french: 1 change by Lishouuu
portuguese (brazilian): 362 changes by pasantoro
polish: 60 changes by pAter-exe
english (au): 1 change by krysclarke
english (us): 1 change by 2TallTyler
czech: 74 changes by adamek0202
chinese (simplified): 3 changes by WenSimEHRP
luxembourgish: 42 changes by phreeze83
korean: 1 change by telk5093
german: 1 change by Wuzzy2
romanian: 19 changes by ALEX11BR
russian: 1 change by Ln-Wolf
finnish: 6 changes by lanurmi
ukrainian: 13 changes by StepanIvasyn
turkish: 26 changes by metsysma
danish: 18 changes by bscargo
latvian: 3 changes by lexuslatvia
portuguese: 1 change by azulcosta
portuguese (brazilian): 273 changes by pasantoro
swedish: 132 changes by sereneavatar
spanish (mexican): 31 changes by absay
english (us): 2 changes by 2TallTyler
czech: 6 changes by Caesar008
arabic (egypt): 76 changes by AviationGamerX
turkish: 91 changes by metsysma
danish: 9 changes by mamure
portuguese: 9 changes by azulcosta
portuguese (brazilian): 253 changes by pasantoro
polish: 14 changes by pAter-exe
english (au): 2 changes by krysclarke
swedish: 307 changes by sereneavatar
galician: 127 changes by pvillaverde
romanian: 165 changes by bnegrut
spanish: 8 changes by MontyMontana
portuguese: 89 changes by azulcosta
portuguese (brazilian): 335 changes by pasantoro
`supp_cargoes` and `cust_cargoes` actually contains a column index, however this index is always stored at the indexed position...
Replace with a bitmask instead, which stores if the column indices are linked.
* Codechange: Don't scan vehicle pool to find targeting disaster vehicle when deleting any vehicle.
When deleting a vehicle, the vehicle pool is scanned to find a targetting disaster vehicle. With lots of vehicles this can take some time, especially when deleting multiple consecutive vehicles.
Disasters vehicles can actually only target road vehicles. Store the DisasterVehicle index in the road vehicle, so that no pool scan is necessary.
* Change: Small UFOs no longer target a vehicle which is already a target.
This matches original TTD drawing behaviour, which is what the original baseset sprites are designed for, and avoids alignment issues (which are more problematic with high detail 4x sprites.)
galician: 85 changes by pvillaverde
estonian: 1 change by RM87
czech: 7 changes by JakMel
chinese (simplified): 1 change by WenSimEHRP
korean: 10 changes by telk5093
german: 191 changes by Wuzzy2
romanian: 122 changes by bnegrut
russian: 29 changes by Ln-Wolf
catalan: 28 changes by J0anJosep
french: 6 changes by glx22
portuguese (brazilian): 252 changes by pasantoro
As we now use HTTPS, it is very likely this will work on most systems.
For systems that do have HTTPS blocked, it will fail instantly,
and it will fallback to TCP anyway. That makes this setting no longer
very useful.
swedish: 1 change by SpamixOfficial
english (us): 7 changes by 2TallTyler
galician: 123 changes by pvillaverde
estonian: 5 changes by RM87
czech: 46 changes by justidan4
romanian: 19 changes by ALEX11BR
russian: 13 changes by gisterecis
finnish: 6 changes by rikkerton
catalan: 188 changes by J0anJosep
turkish: 29 changes by densxd
latvian: 7 changes by lexuslatvia
portuguese: 33 changes by azulcosta
portuguese (brazilian): 546 changes by pasantoro
polish: 24 changes by pAter-exe
english (au): 7 changes by krysclarke
galician: 1 change by pvillaverde
chinese (simplified): 3 changes by WenSimEHRP
italian: 29 changes by Giredson
german: 53 changes by MagnumSociety
ukrainian: 37 changes by StepanIvasyn
dutch: 7 changes by rcpaul
spanish: 144 changes by MontyMontana
french: 4 changes by Lishouuu
portuguese: 48 changes by azulcosta
portuguese (brazilian): 156 changes by pasantoro
polish: 22 changes by azabost, 6 changes by pAter-exe
galician: 25 changes by pvillaverde
czech: 182 changes by justidan4
hungarian: 31 changes by titanicbobo, 13 changes by Norodix
indonesian: 27 changes by tsaqibfs
german: 58 changes by UnsuspiciousGooball
russian: 18 changes by Ln-Wolf
finnish: 6 changes by hpiirai, 5 changes by lanurmi
ukrainian: 39 changes by StepanIvasyn
turkish: 3 changes by metsysma
danish: 55 changes by mamure, 6 changes by bscargo
dutch: 111 changes by Afoklala, 2 changes by robert5800
spanish: 196 changes by MontyMontana
portuguese: 4 changes by azulcosta
portuguese (brazilian): 148 changes by pasantoro
polish: 42 changes by pAter-exe, 16 changes by azabost
If a dropdown menu is set to persist, it will not close when an item is selected. It will close as normal if the window loses focus.
Closing the list is the responsibility of the caller.
spanish (mexican): 7 changes by Skinazo
english (us): 4 changes by 2TallTyler
czech: 37 changes by justidan4
chinese (simplified): 1 change by WenSimEHRP
finnish: 50 changes by Finjet-cyber, 22 changes by hpiirai
spanish: 13 changes by MontyMontana
french: 4 changes by ottdfevr
portuguese (brazilian): 141 changes by pasantoro
polish: 68 changes by pAter-exe
* Fix 2fd90960: Missing default vehicles and industry acceptance/production.
Some default definitions are used across multiple climate types and relied on climate-independent cargo slot even though they specified a climate-dependent cargo type.
Add MixedCargoType that indirectly allows multiple labels to be specified for these.
english (au): 4 changes by krysclarke
chinese (simplified): 21 changes by WenSimEHRP
korean: 4 changes by CoconutKR
finnish: 94 changes by hpiirai
catalan: 20 changes by J0anJosep
danish: 7 changes by bscargo
latvian: 4 changes by lexuslatvia
esperanto: 31 changes by JadedCtrl
portuguese (brazilian): 283 changes by pasantoro
polish: 75 changes by pAter-exe
english (au): 11 changes by krysclarke
english (us): 11 changes by 2TallTyler
galician: 3 changes by pvillaverde
chinese (simplified): 17 changes by WenSimEHRP
korean: 14 changes by telk5093
german: 78 changes by SecretIdetity
russian: 11 changes by Ln-Wolf
catalan: 23 changes by J0anJosep
danish: 2 changes by bscargo
latvian: 229 changes by lexuslatvia
french: 29 changes by glx22
portuguese: 33 changes by azulcosta
portuguese (brazilian): 28 changes by pasantoro
english (au): 3 changes by krysclarke
english (us): 3 changes by 2TallTyler
chinese (simplified): 3 changes by WenSimEHRP
korean: 4 changes by telk5093
russian: 19 changes by Ln-Wolf
latvian: 67 changes by lexuslatvia
portuguese: 3 changes by azulcosta
portuguese (brazilian): 3 changes by pasantoro
Town production effect is modelled on town acceptance (growth) effect, and so takes an original cargo slot for behaviour instead of a direct value.
NewGRF feature 0x0B, property 0x1E, takes 1 byte.
Valid values are:
- 0x00 to behave like passengers
- 0x02 to behave like mail
- 0xFF to behave like other cargo (i.e. not produced.)
If not set, town production effect is set based on the cargo label ('PASS' or 'MAIL').
Town production multiplier allows adjusting the amount of cargo produces when Town Production Effect is set, without needing to use callbacks.
NewGRF feature 0x0B (cargo), property 0x1F, accepts a 2 byte (word) value, similar to the cargo capacity multiplier property. The default value is 256 which means 100%, i.e. normal rate.
The string pointer can become invalid before the reference is
dropped, causing out-of-bound access in windows like ErrorWindow,
or News that copy 10 or 20 parameters for their internals.
Co-authored-by: Jonathan G Rennison <j.g.rennison@gmail.com>
chinese (simplified): 49 changes by WenSimEHRP
russian: 47 changes by Ln-Wolf
catalan: 71 changes by J0anJosep
dutch: 114 changes by Afoklala
portuguese: 46 changes by azulcosta
portuguese (brazilian): 29 changes by pasantoro
english (au): 5 changes by krysclarke
english (us): 5 changes by 2TallTyler
chinese (simplified): 8 changes by WenSimEHRP
korean: 5 changes by telk5093
russian: 14 changes by Ln-Wolf
latvian: 4 changes by lexuslatvia
portuguese: 11 changes by azulcosta
portuguese (brazilian): 5 changes by pasantoro
english (au): 10 changes by krysclarke
english (us): 10 changes by 2TallTyler
vietnamese: 10 changes by KhoiCanDev
chinese (simplified): 62 changes by WenSimEHRP, 4 changes by XiaoJi-Game
korean: 11 changes by telk5093
russian: 5 changes by Ln-Wolf
finnish: 32 changes by hpiirai
portuguese (brazilian): 12 changes by pasantoro
chinese (simplified): 7 changes by WenSimEHRP
russian: 24 changes by Ln-Wolf
finnish: 61 changes by hpiirai
spanish: 1 change by MontyMontana
french: 134 changes by glx22
portuguese: 22 changes by azulcosta
portuguese (brazilian): 57 changes by pasantoro
english (au): 86 changes by krysclarke
english (us): 105 changes by 2TallTyler
chinese (simplified): 29 changes by WenSimEHRP
korean: 156 changes by telk5093
russian: 4 changes by Ln-Wolf
danish: 1 change by bscargo
spanish: 132 changes by lrlopez
portuguese: 52 changes by azulcosta
portuguese (brazilian): 181 changes by pasantoro
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
Adds GSStoryPage::IsValidStoryPageButtonColour, GSStoryPage::IsValidStoryPageButtonFlags and GSStoryPage::IsValidStoryPageButtonCursor to the API.
Add missing enforced preconditions to validate parameters passed to MakePushButtonReference, MakeTileButtonReference and MakeVehicleButtonReference.
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.
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.
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.
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().
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
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.
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".
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