Commit Graph

54654 Commits

Author SHA1 Message Date
Jonathan G Rennison
57c5cc32d0 VarAction2: Improve handling of feature changes with parent scopes 2023-03-11 16:08:36 +00:00
Jonathan G Rennison
205cb2d3ea Fix autosave setting dropdown strings
See: #496
2023-03-11 10:02:02 +00:00
Jonathan G Rennison
4555724da4 Add CBID_VEHICLE_NAME to GetNewGRFCallbackName 2023-03-11 01:36:50 +00:00
TELK
2bc46cc9b7 Update: Korean translation according to splitting extra 2023-03-11 00:17:35 +00:00
TELK
bf86e66186 Fix: Korean translation for "Freight" filter 2023-03-11 00:16:50 +00:00
Jonathan G Rennison
25ed7c2b53 Merge branch 'master' into jgrpp
# Conflicts:
#	src/music.cpp
#	src/script/api/script_company.cpp
#	src/script/api/script_event_types.cpp
#	src/script/api/script_group.cpp
#	src/script/api/script_object.cpp
#	src/script/api/script_road.cpp
2023-03-11 00:06:13 +00:00
Jonathan G Rennison
3657db3b23 Fix 6aa8997e: Type mismatch for _sl_xv_upstream_version variable 2023-03-10 22:40:31 +00:00
Limyx826
64719f0e1c
Doc: Add Coding Style into the repo for easier access (#10512) 2023-03-10 13:40:12 -05:00
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.
2023-03-09 20:35:24 +00:00
Peter Nelson
3b90b85439 Change: Allow jukebox lists to fill window width. 2023-03-09 20:35:24 +00:00
Peter Nelson
0c4e2ce114 Change: Resize jukebox when changing music set. 2023-03-09 20:35:24 +00:00
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.
2023-03-09 20:35:24 +00:00
Jonathan G Rennison
ffb6588481 Add header guard to unit_conversion.h 2023-03-09 17:47:51 +00:00
Jonathan G Rennison
fd532fbd6f Avoid integer overflow issues in measurement tooltip
For large distances
Use integer instead of floating point sqrt
2023-03-09 17:39:34 +00:00
Jonathan G Rennison
3017cb63a9 Fix parameter shadowing in ApplyLookAheadItem 2023-03-09 17:33:19 +00:00
Jonathan G Rennison
277985ad9d Fix parameter shadowing in GetTrainStopLocation 2023-03-09 17:32:24 +00:00
PeterN
2d3250923c
Fix #10554: Let Scrollbar::SetPosition clamp instead of assert. (#10555) 2023-03-09 10:19:58 -05:00
Jonathan G Rennison
f13f8cd740 Tracerestrict: Improve program validator
Check all instruction subtypes and valid enum values
Return failure instead of asserting for invalid instruction subtypes
Identify which instruction triggered validation failure
2023-03-09 03:01:20 +00:00
Jonathan G Rennison
5b788dcb97 Tracerestrict: Use switch for actions in GetTraceRestrictTypeProperties 2023-03-09 01:42:13 +00:00
Jonathan G Rennison
6a0139354a Tracerestrict: Fix various comments 2023-03-09 01:36:04 +00:00
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.
2023-03-08 22:33:47 +01:00
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.
2023-03-08 22:33:47 +01:00
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.
2023-03-08 22:33:47 +01:00
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.
2023-03-08 22:33:47 +01:00
Rubidium
2fffde0891 Add: workflow and script for checking missing mode enforcements 2023-03-08 22:33:47 +01:00
Rubidium
a79f97c022 Change: upon an invalid company mode, set ERR_PRECONDITION_INVALID_COMPANY instead of ERR_PRECONDITION_INVALID 2023-03-08 22:33:47 +01:00
Jonathan G Rennison
ef95af6987 Tracerestrict: Warn when reserved tiles ahead used without realistic braking 2023-03-08 21:14:41 +00:00
Joan Josep
d80f193e74
Fix: Improve grfmessage for ShipVehicleChangeInfo. (#10558) 2023-03-08 20:59:01 +00:00
Jonathan G Rennison
fd144369a9 Tracerestrict: Re-order action/condition type dropdown
Refactor lists to simplify hide conditions
2023-03-08 20:33:57 +00:00
Jonathan G Rennison
119e24fe9d Tracerestrict: Reset dual instruction value when changing instruction type 2023-03-08 20:25:42 +00:00
translators
4af7f3e645 Update: Translations from eints
catalan: 13 changes by J0anJosep
2023-03-08 18:48:34 +00:00
Jonathan G Rennison
c74dfe393f
Fix #10556: Duplication of road infrastructure count updates (#10557)
When building a road stop
2023-03-08 18:38:19 +00:00
Jonathan G Rennison
8002f023cb Autoreplace window: Don't scroll to selected engine if it isn't listed
See: https://github.com/OpenTTD/OpenTTD/issues/10554
2023-03-08 18:01:56 +00:00
Jonathan G Rennison
0fc9223724 VarAction2: Support extended bytes for var 0x7E proc with more_action2_ids 2023-03-07 22:27:24 +00:00
Rubidium
3287acd114 Fix 13528bfcd0: bank balance command allows int64, GS was limited to int32 2023-03-07 23:20:04 +01:00
Peter Nelson
b6609d1833 Fix: Network server highlight invisible with RTL layout. 2023-03-07 22:05:22 +00:00
Jonathan G Rennison
e061fa06fd Fix template train build window not being refreshed for variants changes 2023-03-07 19:11:59 +00:00
translators
df2b66ad5d Update: Translations from eints
english (au): 14 changes by krysclarke
romanian: 3 changes by bnegrut
finnish: 10 changes by hpiirai
2023-03-07 18:49:32 +00:00
Jonathan G Rennison
57437e7068 Saveload: Fix upstream version handling of league table chunks 2023-03-07 18:41:23 +00:00
Jonathan G Rennison
6aa8997eee Saveload: Add corresponding upstream version to SLXI chunk 2023-03-07 18:40:53 +00:00
Jonathan G Rennison
2acc00ab13 Saveload: Fix upstream chunk load state not be cleared before load 2023-03-07 18:12:11 +00:00
Jonathan G Rennison
8dca681c8c Use btree_multimap for pending speed restrictions
Avoid unnecessary iteration when saving VESR chunk
2023-03-07 00:31:14 +00:00
Jonathan G Rennison
70311c0843 Tracerestrict: Use btree_multimap for slot vehicle index 2023-03-07 00:31:14 +00:00
Jonathan G Rennison
633c72b10b Add utility function to test equivalence of multimaps
Returns true if multimap values for a key are in not in the same order,
but are permutations of each other.
2023-03-07 00:31:14 +00:00
Jonathan G Rennison
dedb0ff7e2 Avoid unordered map/multimap for tunnel tile index and axis height maps
Use robin_hood and btree_multimap instead
2023-03-06 23:09:29 +00:00
Jonathan G Rennison
6a9d82bde0 utils: Add missing file headers 2023-03-06 21:48:11 +00:00
Jonathan G Rennison
0e7b115e43 utils/conv-lang.pl: Fix whitespace before shebang 2023-03-06 21:46:38 +00:00
Jonathan G Rennison
d94e8d7b5c Merge branch 'master' into jgrpp
# Conflicts:
#	src/script/api/script_object.cpp
#	src/script/api/script_roadtypelist.cpp
2023-03-06 21:43:40 +00:00
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".
2023-03-06 22:34:09 +01:00
Rubidium
cada2ca310 Add: GSCompanyMode::IsValid and IsDeity, and precondition enforcement helpers 2023-03-06 22:34:09 +01:00