Andy
ce9305a5ee
Add: [Script] GSIndustry.GetConstructionDate() method ( #11145 )
11 months ago
Jonathan G Rennison
508f871c5f
Use core/format.hpp for fmt includes
11 months ago
Rubidium
eaae0bb5e7
Codechange: automatic adding of _t to (u)int types, and WChar to char32_t
...
for i in `find src -type f|grep -v 3rdparty/fmt|grep -v 3rdparty/catch2|grep -v 3rdparty/opengl|grep -v stdafx.h`; do sed 's/uint16& /uint16 \&/g;s/int8\([ >*),;[]\)/int8_t\1/g;s/int16\([ >*),;[]\)/int16_t\1/g;s/int32\([ >*),;[]\)/int32_t\1/g;s/int64\([ >*),;[]\)/int64_t\1/g;s/ uint32(/ uint32_t(/g;s/_uint8_t/_uint8/;s/Uint8_t/Uint8/;s/ft_int64_t/ft_int64/g;s/uint64$/uint64_t/;s/WChar/char32_t/g;s/char32_t char32_t/char32_t WChar/' -i $i; done
11 months ago
Rubidium
18a31cca7c
Codechange: do not make a string valid in place, to then copy it
11 months ago
Rubidium
af9b9327af
Codechange: do not keep local variable for temporary string parameters
11 months ago
Rubidium
78f5d58dc6
Codechange: use std::string without const as return
...
Otherwise some compilers, e.g. MSVC, do not pick up that these are temporaries
and as such it will pass the temporaries to `const std::string &` instead of
the wanted `std::string &&`
11 months ago
Jonathan G Rennison
ead18b2af2
Merge branch 'master' into jgrpp
...
# Conflicts:
# CMakeLists.txt
# src/3rdparty/md5/md5.h
# src/3rdparty/squirrel/squirrel/squtils.h
# src/animated_tile.cpp
# src/console_func.h
# src/core/CMakeLists.txt
# src/core/container_func.hpp
# src/core/smallstack_type.hpp
# src/crashlog.cpp
# src/crashlog.h
# src/debug.h
# src/economy.cpp
# src/gamelog.cpp
# src/industry_gui.cpp
# src/lang/catalan.txt
# src/misc_gui.cpp
# src/network/network_content.h
# src/newgrf.cpp
# src/newgrf.h
# src/newgrf_config.cpp
# src/newgrf_config.h
# src/newgrf_gui.cpp
# src/os/unix/font_unix.cpp
# src/os/windows/crashlog_win.cpp
# src/rail_cmd.cpp
# src/saveload/animated_tile_sl.cpp
# src/script/api/script_tilelist.cpp
# src/settings.cpp
# src/settingsgen/settingsgen.cpp
# src/sl/oldloader_sl.cpp
# src/station.cpp
# src/station_cmd.cpp
# src/stdafx.h
# src/strgen/strgen.cpp
# src/strgen/strgen_base.cpp
# src/table/settings/gui_settings.ini
# src/train_gui.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/vehicle_cmd.cpp
# src/vehicle_gui_base.h
# src/viewport_sprite_sorter.h
11 months ago
Jonathan G Rennison
d09b504bc5
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release-linux.yml
# .github/workflows/release-macos.yml
# .github/workflows/release-source.yml
# .github/workflows/release.yml
# CMakeLists.txt
# COMPILING.md
# src/ai/ai_core.cpp
# src/ai/ai_gui.cpp
# src/bridge_gui.cpp
# src/company_gui.cpp
# src/console_cmds.cpp
# src/core/CMakeLists.txt
# src/core/smallmap_type.hpp
# src/disaster_vehicle.h
# src/effectvehicle_base.h
# src/fontcache.cpp
# src/game/game_core.cpp
# src/game/game_gui.cpp
# src/gamelog.cpp
# src/gamelog_internal.h
# src/group_gui.cpp
# src/linkgraph/linkgraph.h
# src/misc.cpp
# src/network/core/config.h
# src/network/core/udp.cpp
# src/network/network_chat_gui.cpp
# src/network/network_content_gui.cpp
# src/network/network_gui.cpp
# src/newgrf.cpp
# src/newgrf_gui.cpp
# src/newgrf_profiling.cpp
# src/newgrf_profiling.h
# src/object_gui.cpp
# src/openttd.cpp
# src/openttd.h
# src/order_gui.cpp
# src/os/windows/font_win32.cpp
# src/rail_gui.cpp
# src/road.cpp
# src/road_gui.cpp
# src/saveload/afterload.cpp
# src/saveload/saveload.h
# src/script/api/script_controller.cpp
# src/script/api/script_roadtypelist.cpp
# src/script/script_config.cpp
# src/script/script_config.hpp
# src/script/script_instance.cpp
# src/script/script_scanner.cpp
# src/script/squirrel.cpp
# src/script/squirrel_helper.hpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/settings_type.h
# src/table/settings/network_private_settings.ini
# src/timetable_gui.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/window_gui.h
11 months ago
Loïc Guilloux
6c19e5ecae
Fix #10868 : [Script] Handle errors when loading savegame data on stack ( #11029 )
...
(cherry picked from commit 1d9bc23525
)
11 months ago
PeterN
d42a78f3e8
Codechange: Make DropDownListStringItem preformat and remove other implementations. ( #11063 )
...
Having to choose between DropDownListStringItem, DropDownListCharStringItem, and DropDownListParamStringItem depending on whether to draw a StringID, a raw string, or a StringID with extra parameters was needlessly complex.
Instead, allow passing a StringID or raw string to DropDownListStringItem. This will preformat the StringID into a raw string, and can therefore accept parameters via the normal SetDParam mechanism.
This also means that strings no longer need to be formatted on every draw.
12 months ago
PeterN
2a2443dd01
Feature: Create group of vehicles from manage vehicle list button. ( #10890 )
12 months ago
Loïc Guilloux
1d9bc23525
Fix #10868 : [Script] Handle errors when loading savegame data on stack ( #11029 )
12 months ago
Rubidium
d4c2043294
Codechange: remove a number of unneeded c_str() calls
12 months ago
Loïc Guilloux
1cd49bf5e5
Fix ca1e34c: [Script] Wrong value printed for {RAW_STRING} ( #11011 )
12 months ago
Rubidium
7c37dcb8e3
Fix: do not use {STRING} when {STRING1} or {STRING2} is needed
12 months ago
mrmbernardi
35ef6c1723
Feature: [GS] Goal destination can be updated ( #10817 )
1 year ago
Rubidium
2ae7367024
Codechange: replace StrMakeValidInPlace with StrValid
1 year ago
Jonathan G Rennison
ac2f9a21e8
Move upstream saveload to src/saveload/, move jgrpp saveload to src/sl/
...
Leave afterload in src/saveload/
1 year ago
Jonathan G Rennison
02549c5224
Merge branch 'master' into jgrpp
...
# Conflicts:
# cmake/CompileFlags.cmake
# src/cargomonitor.cpp
# src/core/CMakeLists.txt
# src/economy.cpp
# src/landscape.cpp
# src/linkgraph/flowmapper.cpp
# src/linkgraph/linkgraph_gui.cpp
# src/linkgraph/linkgraphschedule.cpp
# src/misc_gui.cpp
# src/newgrf_generic.cpp
# src/newgrf_storage.cpp
# src/rail_gui.cpp
# src/saveload/afterload.cpp
# src/saveload/station_sl.cpp
# src/script/script_gui.cpp
# src/station_cmd.cpp
# src/station_gui.cpp
# src/string_func.h
# src/terraform_cmd.cpp
1 year ago
Jonathan G Rennison
f3116eedcf
Support 64 bit values in the give money and change bank balance commands
...
See: #535
1 year ago
Rubidium
ca1e34c121
Codechange: use std::string to build ScriptText's encoded text
1 year ago
Rubidium
fbd71a9d72
Codechange: replace C-style string processing with C++-style for the listing callbacks
1 year ago
Patric Stout
3b1407d240
Feature: allow to do a hostile takeover of an AI company (in singleplayer) ( #10914 )
...
With the removal of the share-system, you could no longer make an
AI disappear in a single player game. At least, not without going
into the console.
1 year ago
PeterN
f814c86389
Codechange: Reorganise hotkey initialisation. ( #10951 )
...
Hotkeys are now initialized inline, and use std::vector instead of
separate static C-arrays and std::string instead of char *. The list end
marker is no longer required.
1 year ago
Bernard Teo
2c667b1773
Doc: Fix spelling error in ScriptTileList::RemoveRectangle ( #10937 )
1 year ago
Patric Stout
6b1c38e303
Fix 3effb893: mention GSAsyncMode in changelog ( #10924 )
1 year ago
Jonathan G Rennison
3effb8931c
Add: [Script] GSAsyncMode to set async mode of gamescript commands ( #10913 )
...
In asynchronous mode, don't wait for result of executed command,
just fire-and-forget, and return estimated cost/result
1 year ago
Jonathan G Rennison
3a47b421b0
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/company_cmd.cpp
# src/core/overflowsafe_type.hpp
# src/economy.cpp
# src/engine_base.h
# src/ground_vehicle.cpp
# src/group_gui.cpp
# src/industry_cmd.cpp
# src/industry_gui.cpp
# src/newgrf_commons.cpp
# src/newgrf_engine.cpp
# src/newgrf_industries.cpp
# src/newgrf_object.cpp
# src/newgrf_roadstop.cpp
# src/newgrf_station.cpp
# src/rail_gui.cpp
# src/road_cmd.h
# src/road_gui.cpp
# src/saveload/afterload.cpp
# src/script/api/script_log.cpp
# src/script/api/script_log.hpp
# src/settings_gui.cpp
# src/settingsgen/settingsgen.cpp
# src/station_cmd.cpp
# src/station_cmd.h
# src/station_gui.cpp
# src/strgen/strgen.cpp
# src/string_func.h
# src/string_type.h
# src/table/settings/network_private_settings.ini
# src/tests/math_func.cpp
# src/textfile_gui.cpp
# src/timetable_gui.cpp
# src/town_cmd.cpp
# src/vehicle.cpp
# src/waypoint_cmd.cpp
# src/waypoint_cmd.h
# src/widgets/dropdown.cpp
1 year ago
Peter Nelson
2511649938
Codechange: Use window parent association for dropdowns.
...
This replaces the separate window class and number properties, and
allows the window system to close dropdowns automatically.
1 year ago
Jonathan G Rennison
58c0aac15f
Fix re-opening GRF/script settings windows not closing drop down windows
...
Causing assertion failure on drop down item selection
See: #527
1 year ago
Jonathan G Rennison
2ed248a61d
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/ci-build.yml
# .github/workflows/release-linux.yml
# src/aircraft_cmd.cpp
# src/airport_gui.cpp
# src/articulated_vehicles.cpp
# src/build_vehicle_gui.cpp
# src/company_gui.cpp
# src/genworld_gui.cpp
# src/gfx_layout.cpp
# src/misc_gui.cpp
# src/newgrf.cpp
# src/newgrf_config.h
# src/newgrf_engine.cpp
# src/news_gui.cpp
# src/order_gui.cpp
# src/roadveh_cmd.cpp
# src/saveload/saveload.h
# src/saveload/vehicle_sl.cpp
# src/ship_cmd.cpp
# src/statusbar_gui.cpp
# src/table/settings/network_private_settings.ini
# src/table/settings/network_settings.ini
# src/toolbar_gui.cpp
# src/train_cmd.cpp
# src/vehicle_gui.cpp
1 year ago
Jonathan G Rennison
02fe4af934
Merge branch 'master' into jgrpp
...
# Conflicts:
# .github/workflows/release-windows.yml
# src/company_base.h
# src/company_cmd.cpp
# src/company_gui.cpp
# src/console_cmds.cpp
# src/economy.cpp
# src/economy_cmd.h
# src/fios.h
# src/goal.cpp
# src/group_gui.cpp
# src/network/core/config.h
# src/network/network_admin.cpp
# src/newgrf_config.cpp
# src/os/windows/win32.cpp
# src/saveload/afterload.cpp
# src/saveload/company_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload_error.hpp
# src/settings_gui.cpp
# src/ship_cmd.cpp
# src/stdafx.h
# src/story.cpp
# src/story_base.h
# src/string.cpp
# src/table/settings/economy_settings.ini
# src/tests/CMakeLists.txt
# src/tests/math_func.cpp
1 year ago
Jonathan G Rennison
3ec66e5fb5
Fix not being able to reload GS in script debug window
...
See: #523
1 year ago
PeterN
d086f288cd
Codechange: Remove duplicated includes. ( #10888 )
...
These are now included by stdafx.h so don't need to be included again.
1 year ago
Jonathan G Rennison
fd4d4d341d
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/animated_tile.cpp
# src/cargopacket.h
# src/cheat_gui.cpp
# src/company_cmd.cpp
# src/company_gui.cpp
# src/date.cpp
# src/disaster_vehicle.cpp
# src/dock_gui.cpp
# src/economy.cpp
# src/engine.cpp
# src/error_gui.cpp
# src/fontcache/spritefontcache.cpp
# src/game/game_gui.cpp
# src/game/game_text.cpp
# src/gfx.cpp
# src/graph_gui.cpp
# src/highscore_gui.cpp
# src/industry_cmd.cpp
# src/lang/dutch.txt
# src/lang/english_AU.txt
# src/lang/english_US.txt
# src/lang/finnish.txt
# src/lang/french.txt
# src/lang/italian.txt
# src/lang/portuguese.txt
# src/lang/russian.txt
# src/lang/turkish.txt
# src/lang/vietnamese.txt
# src/main_gui.cpp
# src/misc_gui.cpp
# src/network/network_gui.cpp
# src/network/network_server.cpp
# src/newgrf.cpp
# src/newgrf.h
# src/newgrf_generic.cpp
# src/news_gui.cpp
# src/openttd.cpp
# src/os/unix/unix.cpp
# src/os/windows/font_win32.cpp
# src/os/windows/win32.cpp
# src/rail_gui.cpp
# src/road_gui.cpp
# src/saveload/afterload.cpp
# src/saveload/misc_sl.cpp
# src/saveload/oldloader_sl.cpp
# src/saveload/saveload.cpp
# src/saveload/saveload.h
# src/script/script_gui.cpp
# src/settings_table.cpp
# src/signs_gui.cpp
# src/smallmap_gui.cpp
# src/smallmap_gui.h
# src/spritecache.cpp
# src/spritecache.h
# src/spriteloader/grf.cpp
# src/station_cmd.cpp
# src/statusbar_gui.cpp
# src/stdafx.h
# src/strgen/strgen_base.cpp
# src/subsidy.cpp
# src/table/settings/difficulty_settings.ini
# src/texteff.cpp
# src/timetable_cmd.cpp
# src/timetable_gui.cpp
# src/toolbar_gui.cpp
# src/town_cmd.cpp
# src/town_gui.cpp
# src/townname.cpp
# src/vehicle.cpp
# src/waypoint_cmd.cpp
# src/widgets/dropdown.cpp
# src/window.cpp
1 year ago
PeterN
584faaf064
Change: Reorganise industry accept/produce arrays. ( #10853 )
...
Use a array of struct for each cargo instead of an array for each statistic.
This makes iterating for acceptance and production much simpler.
pct_transported is now calculated when needed.
1 year ago
Peter Nelson
09408e8e46
Codechange: Add IsCargoAccepted/Produced() helpers.
1 year ago
Peter Nelson
633f19419d
Codechange: Make more use of GetCargoAccepted/ProducedIndex().
1 year ago
Jonathan G Rennison
5428b6dd9b
GS: Documentation/comment fixes for ScriptAsyncMode
1 year ago
Jonathan G Rennison
cd9930542d
GS: Add GSAsyncMode(bool) class to set async mode of script DoCommands
...
In asynchronous mode, don't wait for result of executed command,
just fire-and-forget, and return estimated cost/result
1 year ago
Peter Nelson
76516d7f70
Codechange: Use IsValidCargoID/IsValidCargoType.
...
IsValidCargoType() is used only for unmapped IDs.
1 year ago
Rubidium
63d9bb93b8
Codechange: migrate from C-style GetString to C++-style GetString
1 year ago
Rubidium
275ebf4509
Codechange: replace fprintf(<FILE*> with fmt::print(<FILE*>
1 year ago
Rubidium
c518293135
Codechange: replace printf with fmt::print
1 year ago
Rubidium
07860e67e2
Codechange: use fmt::format_to to format the help message
1 year ago
Rubidium
d9a04ba446
Codechange: make the MD5 hash/digest/checksum variables a std::array
1 year ago
Peter Nelson
c38df2d589
Codechange: Use std::map instead of custom SmallMap.
1 year ago
Peter Nelson
83f2ad500e
Codechange: stdarg.h include not needed as cstdarg is included.
1 year ago
Peter Nelson
56085be9bd
Codechange: Move includes for common STL headers to stdafx.
1 year ago
Patric Stout
199e41c762
Codechange: use default dtor instead of empty ( #10826 )
1 year ago
Rubidium
62fda0f505
Codechange: remove manual allocation/free for SQ_instance
1 year ago
Rubidium
f9b5bc7ee6
Cleanup: the need for SQAutoFreePointers has gone
1 year ago
Rubidium
d9e93edc8b
Codechange: replace 'const char *' script API parameters with std::string
1 year ago
Rubidium
b1b578f988
Cleanup: stredup-ing string variant for calling scripts
1 year ago
Rubidium
ab51175db2
Codechange: use std::string for script config
1 year ago
Rubidium
bbcb55ebc9
Codechange: use std::string as script API return type
1 year ago
Rubidium
b24a6bb8f3
Codechange: use std::string for script log calls
1 year ago
Rubidium
77177f7e8b
Add: support for std::string parameters in the script API
1 year ago
Rubidium
98972a0748
Codechange: use C++ strings for constructing script file paths
1 year ago
Rubidium
20ff0bccd7
Codechange: use std::string to store script GUI's break string
1 year ago
Rubidium
48825e1a8e
Codechange: rewrite script string-to-settings conversion to C++
1 year ago
Rubidium
e035705239
Codechange: introduce and use std::string variant of sq_throwerror
1 year ago
Rubidium
3453c03a17
Codechange: use fmt::format to create dummy scripts
1 year ago
Rubidium
9f2fc860ad
Codechange: use std::optional<std::string> for changing the script over char *
1 year ago
Rubidium
0fd9eb0faa
Codechange: use std::string for script info/library finding
1 year ago
Rubidium
a30f7c83bd
Codechange: use std::string for script names to load
1 year ago
Rubidium
9b0123ab66
Codechange: use std::string for script API versions
1 year ago
Rubidium
3d8d99ba11
Add: method to call script functions with std::string
1 year ago
Jonathan G Rennison
f06160b882
Script: Remove command delay for non-network GS when game paused due to GS
1 year ago
Jonathan G Rennison
7bc6c4b59c
Script: Boost gamescript op limit when game is paused due to game script
1 year ago
Jonathan G Rennison
1b6d1086d0
Script: Add ScriptInstance field for script type
1 year ago
Peter Nelson
531d1ae8bc
Codechange: Use GetScrolled(Row/Item)FromWidget in more places.
...
In many instances the clicked row position is 'manually' calculated
instead of using the GetScrolledRowFromWidget helper function, with
variations on checks. Replace with the two helpers where possible.
1 year ago
Peter Nelson
726d05b22b
Fix: Don't list unavailable road types for game scripts.
1 year ago
Peter Nelson
e6740046ee
Codechange: Use range-for iteration.
1 year ago
Peter Nelson
a8c0d16371
Cleanup: Use std::advance instead of for-loop.
1 year ago
Peter Nelson
68782f951b
Cleanup: Vector supports random access.
1 year ago
Rubidium
1ae7eb1594
Codechange: use std::map over SmallMap and std::string of stredup(char*)
1 year ago
Rubidium
12085d088c
Cleanup: remove obsolete string_compare_type
1 year ago
Rubidium
bc389a86c9
Codechange: use std::string as std::map key, instead of stredup string
1 year ago
Rubidium
72082aa7d3
Codechange: use std::string for getting a script's name
1 year ago
Rubidium
6e3d3c0e7c
Codechange: introduce std::string variant of sq_pushstring
1 year ago
Peter Nelson
bf9caa425b
Change: Units-system can convert from N to kN, don't preconvert.
...
This allows force to passed as is and avoid premature rounding.
The AI function "GetMaxTractiveEffort" still needs to return kN to avoid breaking the API.
1 year ago
Rubidium
68ff3fd062
Change: include fmt.h C++ headers in stdafx.h
...
This to prevent compilation issues between runs with and without precompiled
headers. Also remove the headers from the rest of the code base as they are
not needed there anymore, although they do relatively little harm.
1 year ago
Peter Nelson
6202eae9d5
Codechange: Rely on Scrollbar::SetPosition to clamp.
...
Manually clamping scrollbar bounds before calling `SetPosition()` is doubling up work that the function already does.
1 year ago
Peter Nelson
d2034d9c38
Codechange: Scrollbar methods now accept size_t.
...
This clears up a lot of casts from size_t to int.
1 year ago
Rubidium
fb856e16c1
Codechange: replace some min/clamp constructs to ClampTo
1 year ago
Rubidium
19ec4e8beb
Codechange: replace ClampToI32/U16 with ClampTo<int32_t/uint16_t>
1 year ago
PeterN
b67cf7f94a
Change: Replace ScriptLog data array with std::deque. ( #10770 )
...
Due to cyclic header dependency this requires moving the data types used
by ScriptLog out of the ScriptLog class.
1 year ago
Rubidium
877349c13d
Codechange: use std::string for text file name resolution
1 year ago
Tyler Trahan
6501f84b4a
Codechange: Move calendar date functions inside TimerGameCalendar ( #10753 )
1 year ago
Rubidium
86786a7af6
Codechange: introduce StrEqualsIgnoreCase/StrCompareIgnoreCase to replace strcasecmp
1 year ago
Tyler Trahan
930f0a16d8
Codechange: Define Date/Year/Month/Day within TimerGameCalendar class
1 year ago
Patric Stout
7aa2b9ab0a
Codechange: move all date-related variables inside the timer ( #10706 )
1 year ago
Rubidium
8f24901843
Codechange: replace printf with PRINTF macros by fmt::format for scripts
1 year ago
Rubidium
8b93e45e22
Codechange: use string/fmt instead of printf for squirrel's PRINTFUNC
1 year ago
Jonathan G Rennison
7da25820ea
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/widgets/dropdown.cpp
# src/widgets/dropdown_type.h
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
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
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
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
Patric Stout
1ba4dcc924
Codechange: migrate all Window-related timers to the new framework
...
This means we also say goodbye to GUITimers.
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
Jonathan G Rennison
c89079a210
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/saveload/cargopacket_sl.cpp
# src/saveload/saveload.h
# src/strings.cpp
# src/vehicle.cpp
1 year ago
Jonathan G Rennison
82803b98e0
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/game/game_gui.cpp
# src/graph_gui.cpp
# src/linkgraph/linkgraph_gui.h
# src/newgrf.cpp
# src/order_gui.cpp
# src/saveload/engine_sl.cpp
# src/saveload/saveload.h
# src/script/api/script_text.cpp
# src/script/script_gui.cpp
# src/settings_table.cpp
# src/strings.cpp
# src/table/settings/economy_settings.ini
# src/table/settings/locale_settings.ini
# src/timetable_gui.cpp
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
glx22
3a48d6e60f
Fix 991a797: [Script] Allow STRINGN consumption to be different than expected
1 year ago
Loïc Guilloux
e4c511d403
Fix #10578 : Allow to select any version of AI/GS from GUI ( #10604 )
1 year ago
Jonathan G Rennison
3d1b0af8f6
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/newgrf_debug_gui.cpp
# src/object_cmd.cpp
# src/object_gui.cpp
1 year ago
Peter Nelson
82c70ed3b8
Change: Expose ObjectSpec vector to simplify iteration.
1 year ago
Peter Nelson
1f46f080f0
Codechange: Store objectspecs in std::vector instead of flat array.
1 year ago
Jonathan G Rennison
29c451d1a8
Script: Only log each string parameter warning message once
1 year ago
Loïc Guilloux
9642e87bc8
Fix: [Script] Access to enum/consts defined outside of main.nut ( #10573 )
1 year ago
Jonathan G Rennison
a7efe91007
Script: More closely emulate old text param behaviour for 13 and below scripts
1 year ago
Jonathan G Rennison
a6babb23d3
Script: Allow text param mismatches for scripts with 13 or below compatibility
1 year ago
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
1 year ago
PeterN
2d3250923c
Fix #10554 : Let Scrollbar::SetPosition clamp instead of assert. ( #10555 )
1 year 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.
1 year 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.
1 year 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.
1 year 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.
1 year ago
Rubidium
a79f97c022
Change: upon an invalid company mode, set ERR_PRECONDITION_INVALID_COMPANY instead of ERR_PRECONDITION_INVALID
1 year ago
Rubidium
3287acd114
Fix 13528bfcd0: bank balance command allows int64, GS was limited to int32
1 year ago
Jonathan G Rennison
d94e8d7b5c
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/script/api/script_object.cpp
# src/script/api/script_roadtypelist.cpp
1 year 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".
1 year ago
Rubidium
cada2ca310
Add: GSCompanyMode::IsValid and IsDeity, and precondition enforcement helpers
1 year 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
1 year ago
glx22
ca149447d7
Codechange: Use SQInteger for generic numbers in script_window
1 year ago
glx22
f752d96125
Codechange: Use SQInteger for generic numbers in script_vehicle
1 year ago
glx22
4e48bf2e16
Codechange: Use SQInteger for generic numbers in script_town
1 year ago
glx22
18fe0a4046
Codechange: Use SQInteger for generic numbers in script_tilelist
1 year ago
glx22
cada18a6f8
Codechange: Use SQInteger for generic numbers in script_tile
1 year ago
glx22
07b73a8c02
Codechange: Use SQInteger for generic numbers in script_subsidy
1 year ago
glx22
cd80b31d19
Codechange: Use SQInteger for generic numbers in script_storypage
1 year ago
glx22
a9a55f2153
Codechange: Use SQInteger for generic numbers in script_station
1 year ago
glx22
446ebaa6b9
Codechange: Use SQInteger for generic numbers in script_road
1 year ago
glx22
4f6a2f31b5
Codechange: Use SQInteger for generic numbers in script_rail
1 year ago
glx22
cb2e76aae3
Codechange: Use SQInteger for generic numbers in script_priorityqueue
1 year ago
glx22
777b4d0987
Codechange: Use SQInteger for generic numbers in script_order
1 year ago
glx22
49ea69fdef
Codechange: Use SQInteger for generic numbers in script_objecttype
1 year ago
glx22
0293fd41e5
Codechange: Use SQInteger for generic numbers in script_news
1 year ago
glx22
f22903ab14
Codechange: Use SQInteger for generic numbers in script_newgrf
1 year ago
glx22
ca67075397
Codechange: Use SQInteger for generic numbers in script_map
1 year ago
glx22
a225fda9fe
Codechange: Use SQInteger for generic numbers in script_list
1 year ago
glx22
74ab9ee9dd
Codechange: Use SQInteger for generic numbers in script_league
1 year ago
glx22
367b2ba6d1
Codechange: Use SQInteger for generic numbers in script_infrastructure
1 year ago
glx22
5eaf9d39bf
Codechange: Use SQInteger for generic numbers in script_industrytype
1 year ago
glx22
6671994655
Codechange: Use SQInteger for generic numbers in script_industry
1 year ago
glx22
8eb35633ec
Codechange: Use SQInteger for generic numbers in script_group
1 year ago
glx22
6ca8499e6a
Codechange: Use SQInteger for generic numbers in script_goal
1 year ago
glx22
e784915b27
Codechange: Use SQInteger for generic numbers in script_gamesettings
1 year ago
glx22
6b8b4c392f
Codechange: Use SQInteger for generic numbers in script_engine
1 year ago
glx22
2f40bf8097
Codechange: Use SQInteger for generic numbers in script_date
1 year ago
glx22
424ae74504
Codechange: Use SQInteger for generic numbers in script_companymode
1 year ago
glx22
89c0841d0a
Codechange: Use SQInteger for generic numbers in script_company
1 year ago
glx22
7727323dbe
Codechange: Use SQInteger for generic numbers in script_cargomonitor
1 year ago
glx22
40424601c6
Codechange: Use SQInteger for generic numbers in script_cargo
1 year ago
glx22
83826b1793
Codechange: Use SQInteger for generic numbers in script_bridgelist
1 year ago
glx22
58bf2f7176
Codechange: Use SQInteger for generic numbers in script_bridge
1 year ago
glx22
73561802cb
Codechange: Use SQInteger for generic numbers in script_airport
1 year ago
glx22
b6f3552e4b
Fix: [Script] Inconsistent precondition failure return values
1 year ago
glx22
e06a666fa2
Fix: remove ScriptController constructor from API documentation
1 year ago
glx22
67a4c5e0db
Codechange: Use {fmt} for script_admin JSON generation
1 year ago
glx22
ce8cde3b8d
Fix: [Script] Detect circular references in ScriptText
1 year ago
glx22
9a957f1d4b
Change: [Script] Improve ScriptText validation error messages
1 year 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
1 year ago
Jonathan G Rennison
4ec6a99dd8
Add GetTileTrackStatus wrapper for when red signals part is not needed
1 year 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
1 year ago
glx22
991a797e09
Change: [Script] Validate ScriptText parameters type and amount
1 year ago
Rubidium
728973859d
Change: [Script] Automate the ScriptObject reference counting
1 year ago
glx22
a1fc4d5c0e
Codechange: [Script] Merge the 3 ScriptText param arrays
1 year ago
Rubidium
580d0a6343
Codechange: make use of Tile in for all direct map accesses
1 year ago
Jonathan G Rennison
4c1406a4b5
Add: NewGRF road stops
1 year ago
dP
c73b88ddca
Fix: Don't send unused tile field over the network ( #10507 )
1 year ago
Michael Lutz
9b3326e3fd
Codechange: [Script] Use std::vector instead of a hand-rolled alternative.
1 year ago
Michael Lutz
ca3cb4d2ef
Codechange: [Script] Use a class template instead of a function template for squirrel type conversion.
...
Class templates allow using partial template specialization, which is useful in
case one wants to have a type conversion on a type that is itself templated.
1 year ago
SamuXarick
8351b97f52
Add: [Script] Labels for negative values of a setting
1 year ago
SamuXarick
376820c0b6
Doc: [Script] Update info descriptions
1 year ago
SamuXarick
bb2ac8b3c4
Fix: [Script] Save config item values up to 10 digits + 1 for sign + 1 for termination, enough to fit min and max int
1 year ago
SamuXarick
fde7028a95
Fix #10059 : [Script] Let custom values on a config item be up to 10 digits + 1 for sign
1 year ago
SamuXarick
7b1fd3e37f
Fix #10059 : [Script] Clamp config item values to int32
...
Also prevent random_deviation to be below 0.
1 year ago
SamuXarick
3df9321a65
Fix: Some Script::IsValidVehicle checks need to be complemented with IsPrimaryVehicle
...
Add: [Script] ScriptVehicle.IsPrimaryVehicle
1 year ago
glx22
3559576166
Codechange: [Script] Don't expose static buffers outside of ScriptText
1 year ago
glx22
e735370318
Change: [Script] A ScriptText with too many parameters is now a fatal error
...
It should never happen as adding/setting parameters already checks that anyway.
1 year ago
Jonathan G Rennison
5e398d9478
Add GUI/command support for >255 station types per station class
1 year ago
dP
fe2c8a1240
Codechange: Decouple INDUSTRY_CTRL into separate commands ( #10475 )
1 year ago
Jonathan G Rennison
ae9b416684
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/ai/ai_core.cpp
# src/ai/ai_gui.cpp
# src/ai/ai_instance.cpp
# src/console_cmds.cpp
# src/engine_type.h
# src/game/game_gui.cpp
# src/game/game_instance.cpp
# src/goal.cpp
# src/goal_cmd.h
# src/lang/english.txt
# src/lang/estonian.txt
# src/network/network_client.cpp
# src/newgrf.cpp
# src/newgrf_generic.h
# src/openttd.cpp
# src/saveload/saveload.h
# src/script/api/script_log.cpp
# src/script/api/script_town.cpp
# src/settings_table.cpp
# src/station_cmd.cpp
# src/station_cmd.h
# src/station_map.h
# src/strings.cpp
# src/table/settings/difficulty_settings.ini
# src/table/settings/gui_settings.ini
# src/tbtr_template_gui_main.h
# src/timetable_cmd.cpp
# src/timetable_cmd.h
# src/timetable_gui.cpp
# src/town_gui.cpp
# src/train_gui.cpp
# src/water_cmd.cpp
1 year ago
Jonathan G Rennison
c0c9c66f7b
GRF: Initial support for > 255 objects per GRF
1 year ago
SamuXarick
43ce73db86
Fix: [Script] Use Money instead of int32 for presenting the value of a company to AIs
1 year ago
Peter Nelson
c95a3be243
Change: Expose ObjectSpec vector to simplify iteration.
...
(cherry picked from commit 51b112139235c66c3adb2c3a75919fc1d3eff9fc)
1 year ago
Peter Nelson
74e4556a85
Codechange: Store objectspecs in std::vector instead of flat array.
...
(cherry picked from commit 1ae263c5467105820e4d770b3d57d25ba01e22b1)
1 year ago
Loïc Guilloux
6b99b6672e
Fix: [Script] ScriptBase::Rand() return value was between -MIN(int32) and MAX(int32) ( #10443 )
...
Also ensure the parameters for ScriptBase::RandRange() and ScriptBase::Chance() are in [0-MAX(uint32)] range
1 year ago
glx22
b080f24bd8
Codechange: move windows common to AI and GS out of ai_gui
1 year ago
SamuXarick
1f194eb94e
Fix: [Script] Incorrect value for GOAL_INVALID ( #10436 )
...
* Fix: [Script] Incorrect value for GOAL_INVALID
* Cleanup: Remove unused static variable
1 year ago
SamuXarick
d0639cdc28
Fix: [Script] Incorrect subsidy SourceID value used
1 year ago
SamuXarick
4fc4874a30
Add: [Script] Let random road layout be a choice
1 year ago
SamuXarick
184ff92057
Cleanup: [Script] Pass new_rating directly to CmdTownRating ( #10441 )
1 year ago
Rubidium
31869501ee
Fix: make script goals work with the whole range of ClientIDs
1 year ago
Loïc Guilloux
85a4308741
Fix #10361 , fe30f66: Don't try to give saved data to a dead script ( #10433 )
...
(cherry picked from commit 07b40c02fe
)
1 year ago
Loïc Guilloux
07b40c02fe
Fix #10361 , fe30f66: Don't try to give saved data to a dead script ( #10433 )
1 year ago
Rubidium
4e65ec1dc4
Codechange: do not declare functions in blocks
1 year ago
Jonathan G Rennison
32fe84cfdd
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/clear_cmd.cpp
# src/main_gui.cpp
# src/saveload/newgrf_sl.cpp
# src/water_cmd.cpp
1 year ago
Rubidium
2fd99467ea
Fix: scripts are not aware of nullptr, they only know null
1 year ago
Rubidium
f9a473bef7
Fix: missing/duplicate documentation tags for scripts
1 year ago
Rubidium
3112b387e7
Fix: warnings about obsolete settings/setting values in Doxygen configurations
1 year ago
Rubidium
41fa94bc56
Fix: scripts cannot call constructors of ScriptEvents, so remove from the documentation
1 year ago
Jonathan G Rennison
a9100e93cb
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/group_cmd.cpp
# src/lang/korean.txt
# src/lang/simplified_chinese.txt
# src/script/api/script_rail.cpp
# src/tunnelbridge_cmd.cpp
1 year ago
Rubidium
fe2bcd2a58
Codechange: migrate size related functions to Map structure
1 year ago
Rubidium
22d3de8b67
Codechange: use ScriptMap size functions instead of global functions
1 year ago
Jonathan G Rennison
1bfd96c7f2
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/3rdparty/fmt/core.h
# src/command_type.h
# src/console_cmds.cpp
# src/core/overflowsafe_type.hpp
# src/landscape.cpp
# src/network/network.cpp
# src/newgrf_object.h
# src/object_cmd.cpp
# src/order_gui.cpp
# src/saveload/vehicle_sl.cpp
# src/script/api/script_industrytype.cpp
# src/script/api/script_object.hpp
# src/script/api/script_town.cpp
# src/table/object_land.h
# src/timetable_cmd.cpp
# src/tree_cmd.cpp
# src/vehicle_gui.cpp
# src/window.cpp
1 year ago
Rubidium
921c6591f9
Codechange: do not use interactive random anymore for script configuration
1 year ago
Rubidium
c5ff61c5f2
Add: script specific Randomizer instances
1 year ago
Rubidium
6abad681bd
Codechange: move choice for randomizer of scripts to a single location
1 year ago
Rubidium
3373128233
Codechange: pass the randomizer directly to the town name generation
1 year ago
Rubidium
b3b8c3fd2d
Codechange: pass the randomizer to use directly to the company face generation
1 year ago
Rubidium
90f1768006
Codechange: add non-nullptr asserts in cases where it should never be nullptr
...
Though where similar calls are checked for nullptr as in those instances of
the use of that function it can actually return nullptr. In other words, write
down the assumption that the function never returns nullptr in an assert.
1 year ago
Jonathan G Rennison
10e76b2788
Fix #10032 : Capacities of articulated vehicles in build window
...
See also: #9954
1 year ago
Tyler Trahan
5c64cdcb79
Feature: Press Ctrl to build a diagonal area of trees ( #10342 )
1 year ago
Jonathan G Rennison
62d524eaef
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/saveload/station_sl.cpp
# src/saveload/town_sl.cpp
# src/spritecache.cpp
# src/timetable_gui.cpp
1 year ago
Rubidium
170f37d07f
Codechange: silence some potentially uninitialized local variable errors
...
In these cases technically they are false positives, however dismissing the
alerts when the underlying code may make them true positives does not seem
like the safest solution.
1 year ago
Jonathan G Rennison
24b744f7c8
Merge branch 'master' into jgrpp
...
# Conflicts:
# bin/ai/CMakeLists.txt
# bin/game/CMakeLists.txt
# src/saveload/saveload.h
1 year ago
Michael Lutz
150f05dc15
Change: Heading for 14 now. ( #10302 )
1 year ago
Jonathan G Rennison
a1f6aaa58f
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/lang/korean.txt
# src/saveload/afterload.cpp
# src/saveload/ai_sl.cpp
# src/saveload/game_sl.cpp
# src/script/script_instance.cpp
1 year ago
Loïc Guilloux
fe30f66570
Fix #9720 : Delay start of GS/AI to after loading of savegame ( #9745 )
1 year ago
Loïc Guilloux
c179c10048
Fix #10263 , ccefa76: [scripts] restore tile validation for commands ( #10269 )
1 year ago
Jonathan G Rennison
6a03e7ba97
Command: Remove unused CMD_STR_SEP flag
2 years ago
Jonathan G Rennison
5c134e6dd0
Command: Use auxiliary data for league command strings
2 years ago
Jonathan G Rennison
f32733ef22
Command: Replace binary_length field with auxiliary data
...
Use for CMD_ADD_PLAN_LINE
2 years ago
Jonathan G Rennison
9ada7380ef
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/lang/korean.txt
# src/misc_gui.cpp
2 years ago
Michael Lutz
1c205b2cda
Fix #10212 : [Script] Nested ScriptAccounting scopes are not restored properly.
2 years ago
Jonathan G Rennison
5bbf1f5375
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/core/geometry_type.hpp
# src/error_gui.cpp
# src/rail_gui.cpp
# src/tree_gui.cpp
# src/vehicle_gui.cpp
# src/widgets/dropdown.cpp
2 years ago
dP
c91033ac5e
Feature: [GS] Scriptable league tables ( #10001 )
...
(cherry picked from commit 5e14a20b3b
)
2 years ago
Jonathan G Rennison
bbd84815b8
Script: Add missing function wrappers for 6 - 9 arguments
2 years ago
Jonathan G Rennison
dc96fbc573
Script: Store CommandCost::GetResultData
2 years ago
Jonathan G Rennison
aaf0385dc5
Add command/string helpers for string separator control character
2 years ago
Jonathan G Rennison
1f36c3f3e4
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/ai/ai_gui.cpp
# src/build_vehicle_gui.cpp
# src/genworld_gui.cpp
# src/lang/english.txt
# src/lang/german.txt
# src/lang/korean.txt
# src/newgrf_sound.cpp
# src/roadveh.h
# src/sound.cpp
# src/station_cmd.cpp
# src/train.h
# src/train_cmd.cpp
# src/vehicle.cpp
# src/vehicle_base.h
# src/vehicle_gui.cpp
2 years ago
dP
5e14a20b3b
Feature: [GS] Scriptable league tables ( #10001 )
2 years ago
Peter Nelson
f5f035a22b
Codechange: Make use of Rect Width/Height helpers.
2 years ago
Joel-Milligan
59645c6733
Change: Remove scrollbar from town authority actions panel ( #9928 )
2 years ago
Henry Wilson
89cf0d5da8
Codechange: Factor cargotype weight conversion magic numbers
2 years ago
Jonathan G Rennison
1518c2fa1e
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/depot_type.h
# src/lang/german.txt
# src/order_gui.cpp
# src/pathfinder/yapf/yapf_rail.cpp
# src/script/api/script_window.hpp.in
# src/settings_table.cpp
# src/train_cmd.cpp
2 years ago
Loïc Guilloux
0afa6f2424
Codechange: [CMake] Auto-fill list of #include in script_window.hpp ( #10103 )
2 years ago
Nicolas Chappe
a9a21e784d
Codechange: Always set the ODATFB_NEAREST_DEPOT flag for 'any depot' orders
2 years ago
Jonathan G Rennison
0a9c44d1a2
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/airport_gui.cpp
# src/blitter/32bpp_anim_sse4.cpp
# src/console_cmds.cpp
# src/linkgraph/linkgraph_gui.cpp
# src/newgrf_object.h
# src/road_gui.cpp
# src/widgets/road_widget.h
# src/window.cpp
2 years ago
SamuXarick
8d0d45c431
Add: ScriptCargo::GetWeight to get cargo weights
2 years ago
SamuXarick
3dda8c9bad
Fix: ScriptRoad::HasRoadType really check for RoadType
...
Script::HasRoadType was only checking if the tile had the same RoadTramType as that of the RoadType provided.
Now it really checks RoadType against RoadType.
2 years ago
Tyler Trahan
db98cedb7e
Fix #9883 : Show cost/income float over end tile of rail or road construction
2 years ago