Commit Graph

41509 Commits (06e0f39affc89888e07640a1aea0808e89c4003d)

Author SHA1 Message Date
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
Jonathan G Rennison ffb6588481 Add header guard to unit_conversion.h 2 years ago
Jonathan G Rennison fd532fbd6f Avoid integer overflow issues in measurement tooltip
For large distances
Use integer instead of floating point sqrt
2 years ago
Jonathan G Rennison 3017cb63a9 Fix parameter shadowing in ApplyLookAheadItem 2 years ago
Jonathan G Rennison 277985ad9d Fix parameter shadowing in GetTrainStopLocation 2 years ago
PeterN 2d3250923c
Fix #10554: Let Scrollbar::SetPosition clamp instead of assert. (#10555) 2 years ago
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
2 years ago
Jonathan G Rennison 5b788dcb97 Tracerestrict: Use switch for actions in GetTraceRestrictTypeProperties 2 years ago
Jonathan G Rennison 6a0139354a Tracerestrict: Fix various comments 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
Jonathan G Rennison ef95af6987 Tracerestrict: Warn when reserved tiles ahead used without realistic braking 2 years ago
Joan Josep d80f193e74
Fix: Improve grfmessage for ShipVehicleChangeInfo. (#10558) 2 years ago
Jonathan G Rennison fd144369a9 Tracerestrict: Re-order action/condition type dropdown
Refactor lists to simplify hide conditions
2 years ago
Jonathan G Rennison 119e24fe9d Tracerestrict: Reset dual instruction value when changing instruction type 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
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
2 years ago
Jonathan G Rennison 0fc9223724 VarAction2: Support extended bytes for var 0x7E proc with more_action2_ids 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
Jonathan G Rennison e061fa06fd Fix template train build window not being refreshed for variants changes 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
Jonathan G Rennison 57437e7068 Saveload: Fix upstream version handling of league table chunks 2 years ago
Jonathan G Rennison 6aa8997eee Saveload: Add corresponding upstream version to SLXI chunk 2 years ago
Jonathan G Rennison 2acc00ab13 Saveload: Fix upstream chunk load state not be cleared before load 2 years ago
Jonathan G Rennison 8dca681c8c Use btree_multimap for pending speed restrictions
Avoid unnecessary iteration when saving VESR chunk
2 years ago
Jonathan G Rennison 70311c0843 Tracerestrict: Use btree_multimap for slot vehicle index 2 years ago
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.
2 years ago
Jonathan G Rennison dedb0ff7e2 Avoid unordered map/multimap for tunnel tile index and axis height maps
Use robin_hood and btree_multimap instead
2 years ago
Jonathan G Rennison d94e8d7b5c Merge branch 'master' into jgrpp
# Conflicts:
#	src/script/api/script_object.cpp
#	src/script/api/script_roadtypelist.cpp
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
Jonathan G Rennison b07d964081 Allow use of GetTownRoadType result in HasRoadTypeAvail for towns 2 years ago
Jonathan G Rennison faa77e2605 Merge branch 'master' into jgrpp
# Conflicts:
#	src/script/api/script_company.cpp
#	src/script/api/script_date.cpp
#	src/script/api/script_date.hpp
#	src/script/api/script_gamesettings.cpp
#	src/script/api/script_order.hpp
#	src/script/api/script_town.cpp
#	src/script/api/script_window.cpp
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
glx22 6ca8499e6a Codechange: Use SQInteger for generic numbers in script_goal 2 years ago
glx22 e784915b27 Codechange: Use SQInteger for generic numbers in script_gamesettings 2 years ago
glx22 6b8b4c392f Codechange: Use SQInteger for generic numbers in script_engine 2 years ago
glx22 2f40bf8097 Codechange: Use SQInteger for generic numbers in script_date 2 years ago
glx22 424ae74504 Codechange: Use SQInteger for generic numbers in script_companymode 2 years ago
glx22 89c0841d0a Codechange: Use SQInteger for generic numbers in script_company 2 years ago
glx22 7727323dbe Codechange: Use SQInteger for generic numbers in script_cargomonitor 2 years ago
glx22 40424601c6 Codechange: Use SQInteger for generic numbers in script_cargo 2 years ago
glx22 83826b1793 Codechange: Use SQInteger for generic numbers in script_bridgelist 2 years ago
glx22 58bf2f7176 Codechange: Use SQInteger for generic numbers in script_bridge 2 years ago
glx22 73561802cb Codechange: Use SQInteger for generic numbers in script_airport 2 years ago
glx22 b6f3552e4b Fix: [Script] Inconsistent precondition failure return values 2 years ago
glx22 e06a666fa2 Fix: remove ScriptController constructor from API documentation 2 years ago
glx22 67a4c5e0db Codechange: Use {fmt} for script_admin JSON generation 2 years ago
Jonathan G Rennison 983790ec7a Remove unused town argument from GetTownRoadType 2 years ago
glx22 ce8cde3b8d Fix: [Script] Detect circular references in ScriptText 2 years ago
glx22 9a957f1d4b Change: [Script] Improve ScriptText validation error messages 2 years ago
Rubidium 8fa61533f0 Fix 30ae072: when a road type is hidden, towns may not build them even when that flag is set 2 years ago
translators e60632bce6 Update: Translations from eints
italian: 12 changes by Rivarossi
russian: 14 changes by Ln-Wolf
finnish: 2 changes by hpiirai
portuguese (brazilian): 14 changes by ericandradex
2 years ago
Jonathan G Rennison de17e0aa4d NewGRF: Add extension for more Action2 set IDs 2 years ago
Jonathan G Rennison 2b288c8056 Merge PR #491: Galician language strings 2 years ago
Jonathan G Rennison cbd71b3d58 Merge branch 'master' into jgrpp
# Conflicts:
#	src/order_cmd.cpp
2 years ago
Rubidium 30ae07269d Fix: game scripts must not build with non-existing road types 2 years ago
dP 01ebfad809
Fix 3719f60: Crash when copying non-station orders (#10540) 2 years ago
translators 16a7bc54b3 Update: Translations from eints
finnish: 2 changes by hpiirai
catalan: 2 changes by J0anJosep
2 years ago
Jonathan G Rennison 2ea1766677 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/commit-checker.yml
#	src/industry_cmd.cpp
#	src/industry_gui.cpp
#	src/landscape.cpp
#	src/linkgraph/linkgraph_gui.cpp
#	src/order_base.h
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/saveload/afterload.cpp
#	src/saveload/league_sl.cpp
#	src/saveload/saveload.h
#	src/script/api/script_object.hpp
#	src/script/squirrel_helper.hpp
#	src/settings_table.cpp
#	src/station_cmd.cpp
#	src/table/settings.h.preamble
#	src/tree_cmd.cpp
#	src/tree_map.h
#	src/vehicle.cpp
#	src/waypoint_cmd.cpp
2 years ago
Jonathan G Rennison 4ec6a99dd8 Add GetTileTrackStatus wrapper for when red signals part is not needed 2 years ago
Jonathan G Rennison ae7c86c49d Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release-linux.yml
#	.github/workflows/release-macos.yml
#	src/industry_cmd.cpp
#	src/industry_cmd.h
#	src/network/core/http_curl.cpp
#	src/network/core/tcp_http.cpp
#	src/network/core/tcp_http.h
#	src/network/network_content.h
#	src/script/api/script_goal.cpp
#	src/script/api/script_industry.cpp
#	src/script/api/script_league.cpp
#	src/script/api/script_story_page.cpp
#	src/script/api/script_town.cpp
#	src/train.h
#	src/train_cmd.cpp
2 years ago
Jonathan G Rennison 3549d5be20 Add fmt-based Debug macro for upstream 2 years ago
Jonathan G Rennison a2d2dcd3d5 3rdparty: Add fmt from upstream 2 years ago
Jonathan G Rennison 87f4d37de3
Fix #10522: Link graph line tooltip test for vertical lines (#10524) 2 years ago
Tyler Trahan 3719f60de0 Add: Use specific error message when vehicle cannot go to station/waypoint 2 years ago
Tyler Trahan 44848f4edf Add: CommandCost supports an optional second error string 2 years ago
dP e3169c73bd
Fix: Restore using founder client name as company manager name (#10535) 2 years ago
translators ec8b2836df Update: Translations from eints
english (us): 2 changes by 2TallTyler
dutch: 2 changes by Afoklala
polish: 3 changes by pAter-exe
2 years ago
Jonathan G Rennison 088cc20186 Fix water flooding in the scenario editor at day lengths > 4 2 years ago
translators 58aa769282 Update: Translations from eints
vietnamese: 2 changes by KhoiCanDev
italian: 2 changes by Rivarossi
russian: 2 changes by Ln-Wolf
turkish: 3 changes by EndChapter
portuguese: 2 changes by azulcosta
2 years ago
Loïc Guilloux 2a2e51765a
Cleanup 54db96b: Left-over function declaration (#10528) 2 years ago
translators 9bdcbc5af7 Update: Translations from eints
french: 3 changes by glx22
2 years ago
Jonathan G Rennison 36700631aa Use SoftClamp for QueryWindow::FindWindowPlacementAndResize
See: #490
2 years ago
Jonathan G Rennison 0e4b716815 Fix: O(N^2) cost of Station::RecomputeCatchmentForAll
Station::RemoveFromAllNearbyLists does not need to be called when
all station nearby lists have been cleared and are being regenerated.
2 years ago
Jonathan G Rennison 5d0ad5625b
Fix : [NewGRF] Object and road stop ignore property handlers (#10525)
* Fix: IgnoreObjectProperty did not handle object property 0x18

* Fix: IgnoreRoadStopProperty did not handle properties 0x0E - 0x12, 0x15
2 years ago
Jonathan G Rennison 412eab22c0 Fix: IgnoreRoadStopProperty did not handle properties 0x0E - 0x12, 0x15 2 years ago
Jonathan G Rennison 8e900c7a87 Fix: IgnoreObjectProperty did not handle object property 0x18 2 years ago
Zachary e17c82e32b Add: maximum number of companies allowed to the client list 2 years ago
Jonathan G Rennison 467b20f5e2 Link graph: Fix tooltips with vertical link graph lines
See: https://github.com/OpenTTD/OpenTTD/issues/10522
2 years ago
translators 6f9b3fa964 Update: Translations from eints
chinese (traditional): 7 changes by inAndyPao
2 years ago
glx22 41b414bc1c Change: [Script] Restore support of {RAW_STRING} in ScriptText 2 years ago
glx22 991a797e09 Change: [Script] Validate ScriptText parameters type and amount 2 years ago
Rubidium 728973859d Change: [Script] Automate the ScriptObject reference counting 2 years ago
glx22 a1fc4d5c0e Codechange: [Script] Merge the 3 ScriptText param arrays 2 years ago
glx22 af15dca316 Change: [Script] Extract params info from GS strings 2 years ago
Tyler Trahan 6e52ceab96
Feature: Industry directory text filter (#10518) 2 years ago
Rubidium 1eefe1c3a0 Codechange: hide Tile(Extended) into the Tile structure 2 years ago
Rubidium 580d0a6343 Codechange: make use of Tile in for all direct map accesses 2 years ago
Rubidium 7a6452d3ef Codechange: introduce Tile class for accessing map data of a single tile 2 years ago
Rubidium 7a1816a6cd Codechange: rename Tile to TileBase to be able to introduce a new Tile class 2 years ago
Rubidium 0fb0469e47 Codechange: introduce iterator to iterate over the Tiles of a Map
Note: this version is using TileIndex, but that changes later
2 years ago
Jonathan G Rennison b7a82e0f29 AyStar: Reduce redundant GetElement calls in BinaryHeap 2 years ago
Jonathan G Rennison 88d7a8ea13 Formatting: Fix indentation of public/private specifiers 2 years ago
Jonathan G Rennison 0a8c58b755 Public roads: Fix memory leaks 2 years ago
Jonathan G Rennison 777dcd047d CMake: Add missing references in src/3rdparty 2 years ago
Jonathan G Rennison b1d55519d3 strgen: Fix memory leak 2 years ago
Jonathan G Rennison 50be7b224a Road waypoints: Clip previews in build windows to drawing area 2 years ago
Chenshu Yu eabb9db0bb
Fix #9810: 'Rebuilding' a through road stop costs money (#9852) 2 years ago
dP b0542c8c49
Codechange: Don't store tree counter in the map array (#10018) 2 years ago
SamuXarick 6eabbaa751 Fix #10469, 5e14a20: [Script] League Table rating element is a int64 everywhere else 2 years ago
Michael Lutz aab580e0ac Codechange: [Linkgraph] Drop node/edge wrappers from LinkGraph. 2 years ago
Michael Lutz 4d3da0cf14 Codechange: [Linkgraph] Drop node/edge wrappers from LinkGraphJob. 2 years ago
Michael Lutz 7352f812e6 Codechange: [Linkgraph] Only store present link graph edges and not all possible edges. 2 years ago
Michael Lutz 178249e7cc Codechange: Saveload macros for entries with a custom table name. 2 years ago
Michael Lutz 8f851ead70 Codechange: [Linkgraph] Split annotation for demand between nodes from the edge annotations. 2 years ago
Michael Lutz 564de01d66 Remove: SmallMatrix be gone. 2 years ago
Michael Lutz fe27db3dfd Codechange: [Linkgraph] Store edges in each node and not in a global matrix. 2 years ago
Niels Martin Hansen 2fee8ecdda Add #7525: Allow autoreplace with same model vehicle 2 years ago
Jonathan G Rennison 4c1406a4b5 Add: NewGRF road stops 2 years ago
Tyler Trahan a18182e24b
Revert 92c7551: Line drawing algorithm fix broke other cases (#10497)
This reverts commit 92c755161d.
2 years ago
translators 07fbd19da3 Update: Translations from eints
luxembourgish: 8 changes by phreeze83
2 years ago
Jonathan G Rennison db224585eb Revert "Public roads: Dynamically set A* max search nodes"
This reverts commit acd67a0d0b.
2 years ago
Jonathan G Rennison 8e5371eec4 Public roads: Fix handling of non-trivial foundations 2 years ago
Jonathan G Rennison d64b52cdaf AyStar: Change types used for hashes and queue
Use robin_hood for the hashes
Store nodes in PodPools
Change BinaryHeap to store node IDs
2 years ago
Jonathan G Rennison dd1bd270e7 AyStar: Use dbg_assert in BinaryHeap Push, GetElement 2 years ago
Jonathan G Rennison ad90f90d43 Public roads: Adjust return type of town_network_distance 2 years ago
Jonathan G Rennison acd67a0d0b Public roads: Dynamically set A* max search nodes 2 years ago
Jonathan G Rennison ff189e44e4 Public roads: Handle non-trivial existing foundations 2 years ago
Jonathan G Rennison 2d1b3fb6e7 Public roads: Remove visited towns mechanism
It is excessively expensive, and not needed
2 years ago