rubidium42
057e858d32
Fix #9353 : [Script] Garbage collecting on priority queues could crash the game
...
(cherry picked from commit 71f3c35288
)
3 years ago
Loïc Guilloux
d46c764d60
Fix 4079c47: Missed a file when removing generated .sq files from the repo ( #9350 )
...
(cherry picked from commit 16ebf7861f
)
3 years ago
Loïc Guilloux
0f05fc8573
Fix: [Script] doxygen_filter is very strict about DOXYGEN_API usage ( #9351 )
...
(cherry picked from commit ee5f23382d
)
3 years ago
Loïc Guilloux
c408007575
Fix #9548 , e5fedcd: [Squirrel] Crash during engine cleanup after reaching memory limit on realloc ( #9592 )
...
(cherry picked from commit a53cfeef13
)
3 years ago
Loïc Guilloux
ff67f7b311
Fix #9588 , 140a96b: [Squirrel] Reaching memory limit during script registration could prevent further script detections ( #9589 )
...
Also the memory allocation triggering the limit was never freed.
And if the exception was thrown in a constructor using placement new, the pre-allocated memory was not freed either.
(cherry picked from commit ccd586a736
)
3 years ago
Loïc Guilloux
a53cfeef13
Fix #9548 , e5fedcd: [Squirrel] Crash during engine cleanup after reaching memory limit on realloc ( #9592 )
3 years ago
Loïc Guilloux
ccd586a736
Fix #9588 , 140a96b: [Squirrel] Reaching memory limit during script registration could prevent further script detections ( #9589 )
...
Also the memory allocation triggering the limit was never freed.
And if the exception was thrown in a constructor using placement new, the pre-allocated memory was not freed either.
3 years ago
Jonathan G Rennison
fd605e3cf3
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# .github/workflows/commit-checker.yml
# src/company_cmd.cpp
# src/console_cmds.cpp
# src/crashlog.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/indonesian.txt
# src/lang/japanese.txt
# src/lang/korean.txt
# src/lang/swedish.txt
# src/linkgraph/linkgraphjob.cpp
# src/linkgraph/mcf.cpp
# src/network/core/tcp.cpp
# src/network/core/tcp.h
# src/network/core/tcp_game.h
# src/network/core/udp.h
# src/network/network.cpp
# src/network/network_admin.cpp
# src/network/network_admin.h
# src/network/network_chat_gui.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_func.h
# src/network/network_internal.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/newgrf.cpp
# src/newgrf_station.cpp
# src/order_gui.cpp
# src/rail_cmd.cpp
# src/saveload/saveload.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_type.h
# src/station_cmd.cpp
# src/stdafx.h
# src/table/currency_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/terraform_cmd.cpp
# src/timetable_gui.cpp
# src/train_cmd.cpp
# src/tree_cmd.cpp
# src/water_cmd.cpp
3 years ago
Patric Stout
394c749b6b
Change: Heading for 13 now ( #9573 )
3 years ago
dP
39662aabef
Add: allow gamescripts to build neutral objects ( #9568 )
3 years ago
Jonathan G Rennison
0b0d154788
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# .github/workflows/ci-build.yml
# src/lang/german.txt
# src/lang/romanian.txt
# src/lang/slovak.txt
# src/lang/turkish.txt
# src/network/core/address.cpp
# src/network/core/tcp.h
# src/network/core/udp.cpp
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_server.cpp
# src/network/network_server.h
# src/network/network_udp.cpp
# src/openttd.cpp
# src/saveload/newgrf_sl.cpp
# src/tree_cmd.cpp
# src/video/video_driver.hpp
# src/window.cpp
# src/window_gui.h
3 years ago
Jonathan G Rennison
2bd535e834
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/engine_base.h
# src/gfxinit.cpp
# src/graph_gui.cpp
# src/lang/brazilian_portuguese.txt
# src/lang/dutch.txt
# src/lang/french.txt
# src/lang/korean.txt
# src/lang/norwegian_bokmal.txt
# src/lang/portuguese.txt
# src/lang/russian.txt
# src/lang/spanish.txt
# src/lang/spanish_MX.txt
# src/network/core/address.cpp
# src/network/core/game_info.h
# src/network/core/os_abstraction.h
# src/network/core/udp.cpp
# src/network/network_client.cpp
# src/network/network_client.h
# src/network/network_internal.h
# src/newgrf_engine.cpp
# src/settings_gui.cpp
# src/station_cmd.cpp
# src/string_func.h
# src/town_gui.cpp
# src/video/video_driver.cpp
# src/widget_type.h
3 years ago
SamuXarick
37de878129
Feature: [AI/GS] Missing water related functions and objects ( #8390 )
3 years ago
Patric Stout
eca73a810c
Change: rebrand 1.12.0 to 12.0
...
One question that keeps popping up: "when do we release 2.0?".
NewGRF will force that at least 1.16 will be 2.0, but to not wait
for this, let's drop the "1." and be for ever done with that
conversation.
We are following in the footstep of giants here.
3 years ago
SamuXarick
120d216b0b
Add: [AI] Get the number of vehicles in a given group ( #9462 )
3 years ago
Michael Lutz
b14681891d
Fix 8706dcd9: [Script] Byte-swap grfids to match normal expectations.
3 years ago
Loïc Guilloux
4eb368c786
Fix 14f197c: [Script] int64 values don't fit into int ( #9465 )
3 years ago
Michael Lutz
8706dcd9c1
Add: [Script] Basic information about loaded NewGRFs for scripts. ( #9464 )
...
Currently, scripts use various heuristics to detect loaded NewGRFs that are inherently unreliable.
The list of loaded NewGRFs is easily accessible to a human player, and thus giving
scripts the same information is consistent with the current approach to not give scripts
more information than a human player.
3 years ago
Charles Pigott
549a58731f
Codechange: Remove (unused) ability to specify min/max of OverflowSafeInt
3 years ago
Rubidium
01139d3368
Codechange: access the name of a setting via an accessor function
3 years ago
Loïc Guilloux
ddafc0de05
Fix 39e90ec: Integers for scripts are 64bit, but saved as 32bit ( #9415 )
3 years ago
Patric Stout
7dd5fd6ed4
Feature: framework to make savegames self-descriptive
...
We won't be able to make it fully self-descriptive (looking at you
MAP-chunks), but anything else can. With this framework, we can
add headers for each chunk explaining how each chunk looks like
in detail.
They also will all be tables, making it a lot easier to read in
external tooling, and opening the way to consider a database
(like SQLite) to use as savegame format.
Lastly, with the headers in the savegame, you can freely add
fields without needing a savegame version bump; older versions
of OpenTTD will simply ignore the new field. This also means
we can remove all the SLE_CONDNULL, as they are irrelevant.
The next few commits will start using this framework.
3 years ago
Rubidium
281a65b3e1
Cleanup: simplify some boolean expressions
3 years ago
Rubidium
3237e97b35
Cleanup: [Script] Use nullptr instead of 0 or NULL
3 years ago
Patric Stout
97b94bdc9a
Change: prefix SL_ARR with the length of the array
...
This means that during loading we can validate that what is saved
is also that what is expected. Additionally, this makes all list
types similar to how they are stored on disk:
First a gamma to indicate length, followed by the data.
The size still depends on the type.
3 years ago
Rubidium
d31a535c87
Cleanup: remove some unneeded c_str() calls
3 years ago
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
3 years ago
rubidium42
bf500c39c9
Codechange: make the name of SettingDesc a std::string
3 years ago
rubidium42
71f3c35288
Fix #9353 : [Script] Garbage collecting on priority queues could crash the game
3 years ago
Loïc Guilloux
16ebf7861f
Fix 4079c47: Missed a file when removing generated .sq files from the repo ( #9350 )
3 years ago
Loïc Guilloux
ee5f23382d
Fix: [Script] doxygen_filter is very strict about DOXYGEN_API usage ( #9351 )
3 years ago
rubidium42
2924ac48c5
Fix: [Script] Ensure the saved script strings are properly validated and terminated when being read from the savegame
3 years ago
Patric Stout
648ee88a02
Codechange: merge guiflags and flags in settings .ini files
...
It was rather confusing which one was for what, especially as some
SaveLoad flags were settings-only. Clean up this mess a bit by
having only Setting flags.
3 years ago
Patric Stout
28e90769f7
Codechange: use "[[maybe_unused]]" instead of a wide variety of other ways we had
...
While at it, replace OTTD_ASSERT with WITH_ASSERT, as this
is always set if assert() is valid. No matter if NDEBUG is set
or not.
3 years ago
Patric Stout
9fff00ba20
Codechange: C++-ify lists for SaveLoad ( #9323 )
...
Basically, this changes "SaveLoad *" to either:
1) "SaveLoadTable" if a list of SaveLoads was meant
2) "SaveLoad &" if a single entry was meant
As added bonus, this removes SL_END / SLE_END / SLEG_END. This
also adds core/span.hpp, a "std::span"-lite.
3 years ago
Patric Stout
921ab68a48
Codechange: use AsIntSetting()->Read() wrapper if possible ( #9324 )
3 years ago
rubidium42
e58581f1f8
Codechange: [Network] Let admin-game script use std::string
3 years ago
rubidium42
29f2bd27c4
Codechange: [Game] Pass the length instead of '\0' terminating (and undoing that) in the middle of a C-string
3 years ago
Patric Stout
d70fb74ac6
Codechange: use setting name instead of index for CmdChange(Company)Setting ( #9306 )
...
This is mostly done as there are now constraints on settings.ini you might not
expected. For example, conditional settings always have to come last, as otherwise
they would influence the index.
3 years ago
glx22
5799402f7a
Codechange: Rename window related DeleteXXX to match new behaviour
3 years ago
rubidium42
2e136285e1
Codechange: move from C-string to std::string for DoCommand
3 years ago
Patric Stout
7713c3e3cc
Codechange: move casting a "const char *" to "char *" to the caller
...
It is not nice to have your definition say you won't change a value
while in fact the whole reason for your existance is to change it.
3 years ago
Patric Stout
665e3c1f45
Fix: ScriptObject::DoCommand could modify "text" while defined "const"
...
This could have unwanted side-effects, as it could change the
source for ever and ever.
3 years ago
Patric Stout
ca9a7df752
Codechange: rename str_validate to StrMakeValid(InPlace) ( #9304 )
...
This to be more explicit the function changes the value, and not
returns yes/no.
3 years ago
rubidium42
86c9ef8134
Codechange: remove SettingDescType in lieu of the actual classes
3 years ago
rubidium42
8ffb4122df
Codechange: just pass the SettingDesc to SetSettingValue and remove distinction between (non)company
3 years ago
rubidium42
425d50372f
Codechange: let SettingDesc extend SettingDescBase
3 years ago
rubidium42
4d246cda73
Codechange: [Network] Let NetworkClientInfo use std::string
3 years ago
rubidium42
44ca7d9377
Change: Use gender-neutral pronouns
3 years ago
William Davis
879de9781b
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
...
(cherry picked from commit 881e1da51d
)
3 years ago
rubidium42
0f062b3882
Codechange: clean up C-string support from settings
3 years ago
rubidium42
a032714dc4
Codechange: move script settings to std::string
3 years ago
Rubidium
7755f81bb8
Codechange: make explicit that virtual functions in a con/destructor are resolved statically
...
This as during construction the sub class has not been initialized yet, and
during destruction the sub class has already been destroyed, so the overriding
virtual function would be accessing uninitialized data.
3 years ago
glx22
38c97e1492
Codechange: Replace TILE_AREA_LOOP with range-based for loops
3 years ago
William Davis
881e1da51d
Change: Use gender-neutral pronouns in console command messages (and comments) ( #9203 )
3 years ago
glx22
72cfb991e5
Codechange: Replace FOR_ALL_SEARCHPATHS with range-based for loops
...
(cherry picked from commit 983c7ade60
)
3 years ago
glx22
ffd30cf91b
Codechange: Replace FOR_ALL_TARS with range-based for loops
...
(cherry picked from commit 34215f7faa
)
3 years ago
glx22
050b95e351
Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loops
...
(cherry picked from commit 9a8756d7ed
)
3 years ago
Loïc Guilloux
88bc7bd235
Fix: [MinGW] Set minimum OS version to Windows XP ( #9135 )
...
(cherry picked from commit 356bbbb90a
)
3 years ago
glx22
983c7ade60
Codechange: Replace FOR_ALL_SEARCHPATHS with range-based for loops
3 years ago
glx22
34215f7faa
Codechange: Replace FOR_ALL_TARS with range-based for loops
3 years ago
glx22
9a8756d7ed
Codechange: Replace FOR_ALL_CARGOSPECS with range-based for loops
3 years ago
Loïc Guilloux
356bbbb90a
Fix: [MinGW] Set minimum OS version to Windows XP ( #9135 )
3 years ago
Jonathan G Rennison
253772e9af
Merge branch 'master' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# COMPILING.md
# src/console.cpp
# src/console_cmds.cpp
# src/console_internal.h
# src/rev.cpp.in
3 years ago
Jonathan G Rennison
ba418f9d0d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/lang/simplified_chinese.txt
# src/network/core/tcp_content.cpp
# src/network/core/udp.cpp
# src/network/network_server.cpp
# src/saveload/linkgraph_sl.cpp
# src/table/gameopt_settings.ini
3 years ago
peter1138
c56fce70b4
Codechange: Replace CMD_SET_GROUP_REPLACE_PROTECTION with generic CMD_SET_GROUP_FLAG.
3 years ago
peter1138
27a956ba62
Codechange: Replace Group::replace_protection with Group::flags
3 years ago
Rubidium
e5fedcd6da
Fix #6322 : [Script] Try to let the script die when no memory can be allocated instead of crashing the whole game
3 years ago
Rubidium
4400bbfa96
Change: [Script] Let Script_FatalError use std::string instead of const char *
3 years ago
Jonathan G Rennison
5e14b54a0c
Merge branch 'master' into jgrpp
3 years ago
Patric Stout
9bfa7198fd
Change: Heading for 1.12 now ( #8862 )
3 years ago
Jonathan G Rennison
f4e29071be
Merge tag '1.11.0-beta2' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release.yml
# CMakeLists.txt
# src/blitter/32bpp_optimized.cpp
# src/debug.cpp
# src/gfx.cpp
# src/gfx_func.h
# src/lang/czech.txt
# src/lang/english.txt
# src/lang/italian.txt
# src/lang/swedish.txt
# src/lang/ukrainian.txt
# src/network/network_server.cpp
# src/os/windows/crashlog_win.cpp
# src/os/windows/win32.cpp
# src/pathfinder/follow_track.hpp
# src/screenshot.cpp
# src/settings_type.h
# src/spritecache.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/video_driver.cpp
# src/video/video_driver.hpp
# src/video/win32_v.cpp
3 years ago
Patric Stout
9a3dbf3122
Fix 02e770ff: allow estimating CloneVehicle if short on money ( #8748 )
...
CheckCompanyHasMoney() was also executed when not using DC_EXEC,
resulting in an error about shortage of money instead of the
estimation.
This mostly is a problem for AI players, as they will have no
way to know how much it would have cost.
3 years ago
Jonathan G Rennison
e95216b59d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/company_cmd.cpp
# src/core/geometry_func.cpp
# src/date.cpp
# src/genworld_gui.cpp
# src/gfx.cpp
# src/object_gui.cpp
# src/openttd.cpp
# src/settings_type.h
# src/video/allegro_v.cpp
# src/video/dedicated_v.cpp
# src/video/null_v.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
3 years ago
dP
91cc414588
Feature: [GS] Allow non-question type windows to have no buttons
3 years ago
Jonathan G Rennison
f11dcb8478
Fix crash if AI attempts to set order flags of invalid vehicle's order
...
Fixes: 4c8b358f
3 years ago
Jonathan G Rennison
7154f8859d
Merge tag '1.11.0-beta1' into jgrpp
...
# Conflicts:
# src/console_cmds.cpp
# src/gfx_func.h
# src/industry.h
# src/lang/czech.txt
# src/lang/estonian.txt
# src/lang/german.txt
# src/lang/indonesian.txt
# src/lang/japanese.txt
# src/lang/norwegian_bokmal.txt
# src/lang/russian.txt
# src/lang/slovak.txt
# src/saveload/saveload.h
# src/station_gui.cpp
# src/town_gui.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/waypoint_gui.cpp
3 years ago
Jonathan G Rennison
b7ddd486cf
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/CompileFlags.cmake
# src/aircraft_cmd.cpp
# src/blitter/32bpp_anim.cpp
# src/cargopacket.cpp
# src/cheat_gui.cpp
# src/company_cmd.cpp
# src/company_gui.cpp
# src/core/pool_func.hpp
# src/date.cpp
# src/economy.cpp
# src/error_gui.cpp
# src/ground_vehicle.cpp
# src/ground_vehicle.hpp
# src/group_gui.cpp
# src/industry_cmd.cpp
# src/lang/dutch.txt
# src/lang/french.txt
# src/lang/german.txt
# src/linkgraph/linkgraph_gui.cpp
# src/linkgraph/mcf.cpp
# src/network/network_content.cpp
# src/network/network_server.cpp
# src/network/network_udp.cpp
# src/newgrf_engine.cpp
# src/newgrf_station.cpp
# src/order_cmd.cpp
# src/order_gui.cpp
# src/pathfinder/follow_track.hpp
# src/pathfinder/yapf/yapf_common.hpp
# src/saveload/saveload.cpp
# src/settings_gui.cpp
# src/station_cmd.cpp
# src/station_kdtree.h
# src/string_func.h
# src/table/settings.ini
# src/tgp.cpp
# src/timetable_cmd.cpp
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/town_cmd.cpp
# src/train_cmd.cpp
# src/train_gui.cpp
# src/tree_gui.cpp
# src/tunnelbridge_cmd.cpp
# src/vehicle.cpp
# src/vehicle_gui.cpp
# src/video/sdl2_v.cpp
# src/video/sdl_v.cpp
# src/video/win32_v.cpp
# src/viewport.cpp
# src/viewport_sprite_sorter_sse4.cpp
# src/window.cpp
3 years ago
Jonathan G Rennison
6c3e5642f8
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/CompileFlags.cmake
# src/crashlog.cpp
# src/fileio.cpp
# src/fileio_func.h
# src/fios_gui.cpp
# src/ini_load.cpp
# src/ini_type.h
# src/lang/english.txt
# src/lang/german.txt
# src/lang/korean.txt
# src/network/network_client.cpp
# src/order_base.h
# src/order_cmd.cpp
# src/os/windows/win32.cpp
# src/road_cmd.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/settings.cpp
# src/station_cmd.cpp
# src/stdafx.h
# src/table/settings.ini
# src/tree_cmd.cpp
# src/tree_gui.cpp
# src/vehicle_base.h
# src/video/cocoa/cocoa_v.mm
# src/video/cocoa/event.mm
# src/video/cocoa/wnd_quartz.mm
# src/viewport.cpp
# src/widgets/tree_widget.h
3 years ago
Jonathan G Rennison
39df1c49a1
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/fileio.cpp
# src/group_gui.cpp
# src/industry.h
# src/lang/korean.txt
# src/linkgraph/linkgraphjob.cpp
# src/linkgraph/linkgraphjob.h
# src/linkgraph/linkgraphschedule.cpp
# src/linkgraph/linkgraphschedule.h
# src/openttd.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/town_cmd.cpp
# src/vehicle_gui.cpp
# src/vehicle_gui_base.h
3 years ago
Jonathan G Rennison
43980639de
Merge branch 'master' into jgrpp
...
# Conflicts:
# .gitignore
# CMakeLists.txt
# src/3rdparty/optional/optional.hpp
# src/group_cmd.cpp
# src/industry_cmd.cpp
# src/misc_gui.cpp
# src/video/sdl2_v.cpp
3 years ago
dP
bab7de6cf2
Feature: Allow GameScripts to add additional text to Industry view window
3 years ago
Pavel Stupnikov
4b42ecb0f6
Feature: Add tile parameter for GSCompany.ChangeBankBalance to show text effect if needed ( #8573 )
3 years ago
SamuXarick
6298d9221a
Fix 218f40e: Warning about 32-bit shift implicitly converted to 64 bits
4 years ago
Patric Stout
218f40eea2
Add: [Script] ScriptCargo::GetName, to get the human readable name of a cargo ( #8544 )
...
Of course this translates into AICargo.GetName() for AIs and
GSCargo.GetName() for GameScripts.
4 years ago
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
4 years ago
glx22
f7e48cac87
Fix #8453 : [Script] Don't truncate loan variation to 32bit
4 years ago
Pavel Stupnikov
f39a00d676
Feature: Set exclusive access to industry from GS ( #8115 )
...
(cherry picked from commit 9a45a0f535
)
4 years ago
Niels Martin Hansen
4d97fbc814
Feature: Influence industry production changes from GS ( #7912 )
...
(cherry picked from commit b7751c483e
)
4 years ago
Jonathan G Rennison
483ed2f468
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/commit-checker.yml
# src/openttd.cpp
4 years ago
SamuXarick
dc5b8020cc
Fix #6452 : Reset only editable and visible settings from GUI ( #7890 )
...
Also enables the Reset button while in-game for AI configs.
4 years ago
Michael Lutz
b408fe77f7
Codechange: Use std::string in file scanners.
4 years ago
Michael Lutz
65f65ad2ad
Codechange: Convert some more FIO functions to take std::string.
4 years ago
Michael Lutz
f3326d34e7
Codechange: Use std::string in FIO search path handling.
4 years ago
glx22
d8605ad18d
Codechange: Replace FOR_VEHICLE_ORDERS with range-based for loops
4 years ago
Patric Stout
f66baa444f
Codechange: use C++11 constructs for for-each loops ( #8432 )
4 years ago
Patric Stout
29e3331055
Codechange: move block a bit lower to increase readability
...
It was rather confusing that "library_name" was calculated, and
then not used to do the FindLibrary() call. Flipping those two
blocks around makes it a bit more sane to read.
4 years ago
Patric Stout
8c0e4ab07f
Doc: for over 10 years now, we do not load the exact AI version first ( #8431 )
...
See commit fae34ee7
for details. The documentation simply never
got updated.
4 years ago
Pavel Stupnikov
9a45a0f535
Feature: Set exclusive access to industry from GS ( #8115 )
4 years ago
Niels Martin Hansen
b7751c483e
Feature: Influence industry production changes from GS ( #7912 )
4 years ago