Tyler Trahan
ef60a93816
Fix #8302 : Improve "Maintenance intervals are in percents" helptext ( #10686 )
1 year ago
Tyler Trahan
394192dde8
Codechange: Refactor timetable GUI ( #10613 )
1 year ago
Rubidium
7b539fa7c9
Fix: fmt's {:#04X} yields '0X00', not '0x0000'
...
Technically the 0X vs 0x is not a big problem, just not pretty. However, the
length also including the 0x results in unexpected behaviour, so it probably
better to not use it.
1 year ago
PeterN
27b4b5d0a0
Codechange: Make GRF temporary engine data a vector. ( #10685 )
...
This replaces manual C-style realloc/memset/free.
1 year ago
translators
b56be83937
Update: Translations from eints
...
italian: 20 changes by Rivarossi
french: 5 changes by ZarTek-Creole
1 year ago
PeterN
d5f9e04a55
Change: Failure to load a savegame is critical. ( #10682 )
...
Marking the error message critical ensures it is queued if multiple errors occured.
1 year ago
aeonofdiscord
36f5fe19fe
Fix #10665 : CheckEngines should ignore wagons when determining available vehicles at the start date. ( #10673 )
1 year ago
Rubidium
7088f5b7c7
Codechange: use string/fmt instead of printf for grfmsg
1 year ago
Rubidium
dfe52da1ea
Codechange: use string/fmt instead of print for strgen warnings/errors/fatals
1 year ago
translators
1fd17148e1
Update: Translations from eints
...
english (au): 1 change by krysclarke
german: 1 change by SecretIdetity
russian: 1 change by Ln-Wolf
finnish: 5 changes by hpiirai
slovak: 15 changes by legitalk
portuguese: 1 change by azulcosta
1 year ago
SamuXarick
f8b5661d28
Change: Allow GS access to ScriptGroup functions
1 year ago
SamuXarick
f225f36c3d
Change: Allow GS access to ScriptGameSettings.IsDisabledVehicleType
1 year ago
SamuXarick
fd26a44c9e
Change: Allow GS access to more ScriptCompany functions
1 year ago
Andy
8b1960a41c
Change: Allow GS access to more ScriptOrder functions
1 year ago
PeterN
db573c8742
Fix #10660 : Sprite Font scale affected by viewport zoom level limits. ( #10668 )
1 year ago
Charles Pigott
e20a6f8ebb
Codechange: Optimise FormatNumber by removing seprintf calls ( #10659 )
1 year ago
Andy
15c3bc456f
Change: extend callback 161 (engine name) with bit 0x22 for context 'Autoreplace - Vehicles in use' ( #10666 )
1 year ago
PeterN
d949cfab24
Codechange: Use std:: features for NewGRF town names ( #10631 )
...
This removes manual memory (de-)allocation and list counting.
1 year ago
Rubidium
4491e45f3c
Update: change {STRING} to {ZEROFILL_NUM} for STR_FORMAT_DATE_TINY/ISO
1 year ago
Rubidium
29b09523d1
Codechange: Use {ZEROFILL_NUM} instead of custom seprintf + {RAW_STRING}
1 year ago
PeterN
e97bf271dc
Codechange: Make SpriteType, CargoSortType, SourceType and ScriptType enum classes. ( #10663 )
...
This avoids a (soft) namespace conflict between the four ST_* enums.
1 year ago
translators
32c8e7feb8
Update: Translations from eints
...
english (au): 4 changes by krysclarke
vietnamese: 31 changes by KhoiCanDev
russian: 4 changes by Ln-Wolf
portuguese: 4 changes by azulcosta
1 year ago
Patric Stout
ed83c4b0da
Change: replace per-AI "start_date" with a global "competitors_interval" ( #10653 )
...
The per-AI "start_date" is a lot of custom code, and was rarely
used in the way it was meant.
While at it, also ported this part over to the new timer system.
1 year ago
Rubidium
43a7e54067
Add: unit test functionality using catch2
1 year ago
Rubidium
88ead3f102
Add: catch2 v2.13.10
1 year ago
Rubidium
9b56505fec
Codechange: split building into a library and executable
1 year ago
Rubidium
9e89eb5726
Codechange: move main function(s) to separate files
1 year ago
Peter Nelson
7b0797d1cd
Codechange: Use unique ptrs for NewGRF specs.
1 year ago
Peter Nelson
ef6b307465
Change: Use std::vector for NewGRF spec tables.
...
Pointer space is allocated only for the number of IDs used, instead of
the max number of IDs for each feature.
1 year ago
Peter Nelson
15e6fc4eeb
Codechange: Use iterator when mapping sprite groups.
1 year ago
Tyler Trahan
bc44158f9a
Change: Allow overbuilding station and waypoint tiles ( #10618 )
1 year ago
translators
27b40da06a
Update: Translations from eints
...
catalan: 14 changes by J0anJosep
portuguese: 20 changes by azulcosta
portuguese (brazilian): 15 changes by ericandradex
1 year ago
Charles Pigott
6fc28d649e
Cleanup: Unused alloca definitions and includes
1 year ago
Charles Pigott
b282664242
Codechange: Replace all usages of alloca/AllocaM with more modern/less discouraged alternatives
1 year ago
rubidium42
b19f42ecd9
Codechange: Replace some p1/p2 parameter names with better names ( #10658 )
1 year ago
Patric Stout
387d5eb74f
Codechange: validate the developer didn't schedule two timers on the same trigger/priority
1 year ago
Patric Stout
3ebc7ad16e
Codechange: migrate all game-time-related timers to the new framework
1 year ago
Patric Stout
1ba4dcc924
Codechange: migrate all Window-related timers to the new framework
...
This means we also say goodbye to GUITimers.
1 year ago
Patric Stout
5e1bcee39b
Codechange: introduce a framework for all our timers
...
IntervalTimer and TimeoutTimer use RAII, and can be used to replace
all the time-based timeouts, lag-detection, "execute every N" we
have.
As it uses RAII, you can safely use it as static variable, class
member, temporary variable, etc. As soon as it goes out-of-scope,
it will be safely removed.
This allows for much easier to read code when it comes to intervals.
1 year ago
rubidium42
730687080a
Fix: Update some network documentation to match the new command system ( #10657 )
1 year ago
Tyler Trahan
646a7e625b
Change: Use seconds for Linkgraph update settings ( #10610 )
1 year ago
translators
0e915c830c
Update: Translations from eints
...
dutch: 15 changes by Afoklala
1 year ago
Tyler Trahan
8e04cba0c3
Change: Make tick length 27 milliseconds ( #10607 )
...
This makes a month last about 60 seconds, allowing the use of real-time units in game.
Co-authored-by: Niels Martin Hansen <nielsm@indvikleren.dk>
1 year ago
Peter Nelson
e5af5907ec
Change: Make all dropdown lists extend width if necessary.
...
This removes the auto_width parameter from ShowDropDown(At).
1 year ago
Peter Nelson
5bc9d00735
Cleanup: Let GetStringBoundingBox deal with buffer.
1 year ago
Peter Nelson
701092003d
Fix: DropDownListColourItem didn't provide width nor scale vertical padding.
1 year ago
Jonathan G Rennison
bb988f940e
Fix #10638 : Incorrect water infra total when building canal over object
...
In the case where the object is on an unowned canal tile and
the new canal tile is owned
1 year ago
translators
d04aae8428
Update: Translations from eints
...
danish: 18 changes by bscargo
1 year ago
PeterN
ff55bfb787
Fix #10343 : Don't extend town-disallowed roadtypes. ( #10347 )
...
Towns currently don't build disallowed roadtypes, however they should
also not extend disallowed roadtypes as well.
If the roadtype that cannot be extended happens to be the roadtype that
the town was going to build then this restriction is ignored.
1 year ago
PeterN
5f99c8c4aa
Fix: Extra viewport cannot be scrolled with right-click-close. ( #10644 )
1 year ago
Tyler Trahan
97cfd40649
Fix #10630 : Don't allow shifting service date earlier than 0 ( #10643 )
1 year ago
translators
a0d8545f6c
Update: Translations from eints
...
french: 15 changes by glx22
1 year ago
Peter Nelson
06b78a7299
Fix: Don't double-pad existing size when adding widget padding.
...
UpdateWidgetSize's size parameter already includes padding.
1 year ago
Peter Nelson
d93f96a442
Fix: Account for extra dropdown list padding.
1 year ago
Jonathan G Rennison
e17420777a
Fix #10637 : Incorrect water infra total when building multi-tile object
...
Wrong tile used in ownership checks
1 year ago
PeterN
3b2eb11fe8
Codechange: Use cached name for all station/industry/town name formatting. ( #10634 )
...
This reuses an existing name caching mechanism to avoid "recalculating" names every time.
1 year ago
translators
d7f0c5d6d8
Update: Translations from eints
...
russian: 3 changes by Ln-Wolf
finnish: 7 changes by hpiirai
polish: 17 changes by pAter-exe
1 year ago
translators
9e69556e2f
Update: Translations from eints
...
english (au): 13 changes by krysclarke
english (us): 15 changes by 2TallTyler
russian: 12 changes by Ln-Wolf
1 year ago
PeterN
ce046f6d17
Fix: Abort loading savegame if road vehicle is on invalid road type. ( #10622 )
...
This can happen if NewGRFs are missing so that engine or road type definitions are wrong.
1 year ago
Charles Pigott
ce24709576
Add: Some additional debugging information when chunk sizes are incorrect
1 year ago
Charles Pigott
8aea13a85b
Codechange: Use fmt for SlErrorCorruptFmt
1 year ago
PeterN
246ba6f00a
Fix 8361cf5a73: Missing bounds check for house specs. ( #10625 )
1 year ago
dP
e2f1cd44dc
Change: Increase max cargo age and let min cargo payment approach zero. ( #10596 )
...
Co-authored-by: Michael Lutz <michi@icosahedron.de>
1 year ago
translators
58e629ca84
Update: Translations from eints
...
korean: 8 changes by telk5093
russian: 7 changes by Ln-Wolf
finnish: 8 changes by hpiirai
2 years ago
PeterN
078e27bd84
Fix #10619 : Crash loading linkgraph for older savegames. ( #10620 )
2 years ago
Rubidium
c6ff7dad68
Add: compile time "unit tests" for GetPartialZ consistent
2 years ago
Rubidium
41ef7c88af
Codechange: make a numer of Slope related functions constexpr
2 years ago
Rubidium
9d2a0f3d0b
Change: make GetPartialZ consistent, meaning Z of adjacent slopes continue
...
Previously, on a straight line of a one corner up slope with the adjacent
steep sloop the Z would increase one step every two sub pixels, except for one
case where one sub pixel is skipped. Similarly, a steep slope with two
adjacent one corner up slopes, would have a bump in the height line along the
diagonal whenever it enters/leaves the steep slope tile.
2 years ago
Rubidium
1fcd69096c
Fix: do not update a RV's Z-position when stationary while turning
...
When the direction of a RV changes the Z-position update logic was called,
which did nothing to the Z-position because that is only changed every other
step. By chance/luck this never triggered with RV's turning around, until
making the partial Z calculations consistent and moving the locations where
the Z-position is changed, causing the Z-position to be changed twice for
the RV that stayed at the same location.
2 years ago
Rubidium
e8af8daa68
Codechange: pass "ground vehicle" to GetTileSlopeZ since for tunnel/bridges there are two states
...
Previously it checked the position in non-driving direction to "guess" whether
a ground vehicle was using the function, so on tunnels/bridges it could either
return the Z of the (virtual) ground compared to the Z of the path the vehicle
would take.
2 years ago
Alberth289346
1321e48465
Fix: Update top toolbar tooltips for added features. ( #10616 )
2 years ago
Tyler Trahan
97bdf99239
Codechange: Add a property to graph windows for whether to draw dates ( #10608 )
2 years ago
translators
39c6b3def1
Update: Translations from eints
...
english (au): 2 changes by krysclarke
russian: 2 changes by Ln-Wolf
2 years ago
Tyler Trahan
0de5eb53fa
Codechange: Use constants for service interval max/min/default values ( #10611 )
2 years ago
Tyler Trahan
1691640603
Fix: Specify units for value of share trading age setting ( #10612 )
2 years ago
PeterN
f1144de509
Feature: Separate rail/road and sea/air velocity units, and add knots. ( #10594 )
...
This is achieved by packing vehicle type along with the velocity so that
the string system can decode and pick the appropriate unit.
2 years ago
glx22
3a48d6e60f
Fix 991a797: [Script] Allow STRINGN consumption to be different than expected
2 years ago
Jonathan G Rennison
43cea852a6
Fix 41b414b: Validate RAW_STRING parameter values in game_script mode
2 years ago
Peter Nelson
47e12a8790
Codechange: Check that CompanyMask fits into 16 bits during compilation.
2 years ago
Peter Nelson
5199881a8d
Codechange: Use correct type for linkgraph company mask.
2 years ago
Peter Nelson
65e0b0dcb7
Codechange: Be consistent with how company masks are set to all.
2 years ago
Peter Nelson
08977828cc
Fix: Check ID for name is within bounds.
2 years ago
Peter Nelson
cd6c04a663
Fix: Check station ID is within bounds when copying layouts.
2 years ago
Peter Nelson
8361cf5a73
Fix: Check sprite group mapping ID is within bounds of feature.
2 years ago
Peter Nelson
96f4eb3681
Codechange: Check NewGRF feature is defined before processing any sprite group mapping.
...
Previously this was checked after loading ids, or repeatedly checked for
each item.
2 years ago
Peter Nelson
04215afe3f
Codechange: Replace roadstop spec limit magic number with constant.
2 years ago
translators
9246789fd3
Update: Translations from eints
...
spanish (mexican): 2 changes by GNosii
vietnamese: 2 changes by KhoiCanDev
czech: 1 change by jachymozo
romanian: 10 changes by bnegrut
danish: 3 changes by bscargo
2 years ago
Loïc Guilloux
e4c511d403
Fix #10578 : Allow to select any version of AI/GS from GUI ( #10604 )
2 years ago
Peter Nelson
82c70ed3b8
Change: Expose ObjectSpec vector to simplify iteration.
2 years ago
Peter Nelson
1f46f080f0
Codechange: Store objectspecs in std::vector instead of flat array.
2 years ago
Peter Nelson
93197f58b7
Codechange: Bind objectspecs to classes once all finalised.
2 years ago
Peter Nelson
02961fd7af
Codechange: Use std::vector for NewGRF class lists.
2 years ago
PeterN
73474b08fe
Fix: Clicking on editbox clear button didn't take account of padding. ( #10583 )
2 years ago
PeterN
c1077212d7
Codechange: Use a shared_ptr for viewport overlay. ( #10586 )
2 years ago
translators
c905824248
Update: Translations from eints
...
chinese (traditional): 14 changes by inAndyPao
danish: 1 change by bscargo
2 years ago
Loïc Guilloux
9642e87bc8
Fix: [Script] Access to enum/consts defined outside of main.nut ( #10573 )
2 years ago
Tyler Trahan
0bf6f82305
Cleanup: Don't mix switches and early returns in widget selection
2 years ago
Tyler Trahan
066ae6f3fb
Codechange: Simplify some CodeQL-flagged trivial switches
2 years ago
translators
a15e584e40
Update: Translations from eints
...
japanese: 27 changes by fmang
chinese (simplified): 12 changes by XiaoJi-Game
2 years ago
translators
24e9af83aa
Update: Translations from eints
...
japanese: 22 changes by fmang
2 years ago
translators
83eb73a9b2
Update: Translations from eints
...
japanese: 12 changes by fmang
2 years ago
translators
1d915214a1
Update: Translations from eints
...
japanese: 31 changes by fmang
2 years ago
translators
d15a14bd9e
Update: Translations from eints
...
japanese: 32 changes by fmang
danish: 7 changes by bscargo
2 years ago
Tyler Trahan
e5438891e2
Cleanup: Keep spacing saveload versions by groups of five ( #10576 )
2 years ago
translators
1424b7b49e
Update: Translations from eints
...
french: 14 changes by ZarTek-Creole
2 years ago
translators
3254d65b3e
Update: Translations from eints
...
swedish: 17 changes by joeax910
czech: 13 changes by jachymozo
danish: 3 changes by bscargo
2 years ago
translators
0bf6d80cd7
Update: Translations from eints
...
danish: 161 changes by bscargo
2 years ago
Rubidium
24b5033a06
Fix #10568 : "can savegame be loaded check" failed in dedicated server
...
* If loading fails, it usually returns SL_REINIT which doesn't trigger check
* If savegame has NewGRFs, it complains NewGRFs are not allowed in intro game
2 years ago
translators
be69aa6257
Update: Translations from eints
...
vietnamese: 1 change by KhoiCanDev
korean: 3 changes by telk5093
german: 30 changes by Wuzzy2
slovak: 14 changes by legitalk
dutch: 12 changes by Afoklala
2 years ago
Peter Nelson
e999aa2923
Fix: Don't (briefly) switch from title-only playlist on menu screen.
...
Switching playlist while on the menu screen now only changes the playlist
that will be used when out of the menu screen.
2 years ago
Peter Nelson
3b90b85439
Change: Allow jukebox lists to fill window width.
2 years ago
Peter Nelson
0c4e2ce114
Change: Resize jukebox when changing music set.
2 years ago
Peter Nelson
1ec34acb51
Fix: Truncated music-set song names cause warning log.
...
The music-set does not need to be selected for this to occur.
Resolved by using std::string instead of fixed buffer for song names,
which avoids manual string copying and removes the length limit.
2 years ago
PeterN
2d3250923c
Fix #10554 : Let Scrollbar::SetPosition clamp instead of assert. ( #10555 )
2 years ago
Rubidium
1e4a89177e
Fix: crashes to desktop from game scripts when companies disappear
...
When a game script is in company mode, it pretends to be another company. When
that company disappear (bankruptcy/merger), the game script still uses that
company and it keeps calling functions as if it is that company.
For example, ScriptEngine::IsBuildable internally dereferences Company without
checks, causing a null dereference for any ScriptEngine function when called
from a company scope of a company that has disappeared.
Guard against this by extending the ScriptCompanyScope::IsValid check to also
check for the company still being active.
2 years ago
Rubidium
717f79ff22
Add: deity mode enforcement checks to functions with command or company access
...
Command functions are those that call ScriptObject::Command, and functions
with company access are any that call ScriptObject::GetCompany. This is a bit
over-protective, but having the check everywhere makes it easier to validate
that no check is missing automatically instead of by review.
2 years ago
Rubidium
8d443d1379
Add: company mode enforcement checks to functions with command or company access
...
Command functions are those that call ScriptObject::Command, and functions
with company access are any that call ScriptObject::GetCompany. This is a bit
over-protective, but having the check everywhere makes it easier to validate
that no check is missing automatically instead of by review.
2 years ago
Rubidium
534f2419ad
Add: precondition checks to functions that work with both valid company and deity
...
These are functions that either use ScriptObject::Command or ScriptObject::GetCompany.
This is a bit over-protective, but having the check everywhere makes it easier to
validate that no check is missing automatically instead of by review.
At this moment these checks will not do anything useful, as either IsValid or
IsDeity from ScriptCompanyMode returns true, but that will change later.
2 years ago
Rubidium
a79f97c022
Change: upon an invalid company mode, set ERR_PRECONDITION_INVALID_COMPANY instead of ERR_PRECONDITION_INVALID
2 years ago
Joan Josep
d80f193e74
Fix: Improve grfmessage for ShipVehicleChangeInfo. ( #10558 )
2 years ago
translators
4af7f3e645
Update: Translations from eints
...
catalan: 13 changes by J0anJosep
2 years ago
Jonathan G Rennison
c74dfe393f
Fix #10556 : Duplication of road infrastructure count updates ( #10557 )
...
When building a road stop
2 years ago
Rubidium
3287acd114
Fix 13528bfcd0: bank balance command allows int64, GS was limited to int32
2 years ago
Peter Nelson
b6609d1833
Fix: Network server highlight invisible with RTL layout.
2 years ago
translators
df2b66ad5d
Update: Translations from eints
...
english (au): 14 changes by krysclarke
romanian: 3 changes by bnegrut
finnish: 10 changes by hpiirai
2 years ago
Rubidium
83946ca31d
Codechange: use GSCompanyMode::IsValid, IsDeity, and the precondition helpers
...
Direct 1:1 replacements in the code, and comments now refer to either
GSCompanyMode::IsValid or GSCompanyMode::IsDeity instead of several variations
on "company mode active" or "no company mode active".
2 years ago
Rubidium
cada2ca310
Add: GSCompanyMode::IsValid and IsDeity, and precondition enforcement helpers
2 years ago
translators
665a73b3c7
Update: Translations from eints
...
english (us): 12 changes by 2TallTyler
korean: 14 changes by telk5093
portuguese: 12 changes by azulcosta
polish: 16 changes by pAter-exe
2 years ago
glx22
ca149447d7
Codechange: Use SQInteger for generic numbers in script_window
2 years ago
glx22
f752d96125
Codechange: Use SQInteger for generic numbers in script_vehicle
2 years ago
glx22
4e48bf2e16
Codechange: Use SQInteger for generic numbers in script_town
2 years ago
glx22
18fe0a4046
Codechange: Use SQInteger for generic numbers in script_tilelist
2 years ago
glx22
cada18a6f8
Codechange: Use SQInteger for generic numbers in script_tile
2 years ago
glx22
07b73a8c02
Codechange: Use SQInteger for generic numbers in script_subsidy
2 years ago
glx22
cd80b31d19
Codechange: Use SQInteger for generic numbers in script_storypage
2 years ago
glx22
a9a55f2153
Codechange: Use SQInteger for generic numbers in script_station
2 years ago
glx22
446ebaa6b9
Codechange: Use SQInteger for generic numbers in script_road
2 years ago
glx22
4f6a2f31b5
Codechange: Use SQInteger for generic numbers in script_rail
2 years ago
glx22
cb2e76aae3
Codechange: Use SQInteger for generic numbers in script_priorityqueue
2 years ago
glx22
777b4d0987
Codechange: Use SQInteger for generic numbers in script_order
2 years ago
glx22
49ea69fdef
Codechange: Use SQInteger for generic numbers in script_objecttype
2 years ago
glx22
0293fd41e5
Codechange: Use SQInteger for generic numbers in script_news
2 years ago
glx22
f22903ab14
Codechange: Use SQInteger for generic numbers in script_newgrf
2 years ago
glx22
ca67075397
Codechange: Use SQInteger for generic numbers in script_map
2 years ago
glx22
a225fda9fe
Codechange: Use SQInteger for generic numbers in script_list
2 years ago
glx22
74ab9ee9dd
Codechange: Use SQInteger for generic numbers in script_league
2 years ago
glx22
367b2ba6d1
Codechange: Use SQInteger for generic numbers in script_infrastructure
2 years ago
glx22
5eaf9d39bf
Codechange: Use SQInteger for generic numbers in script_industrytype
2 years ago
glx22
6671994655
Codechange: Use SQInteger for generic numbers in script_industry
2 years ago
glx22
8eb35633ec
Codechange: Use SQInteger for generic numbers in script_group
2 years ago