Joan Josep
5e6b5d981f
Codechange: Use existing functions in GetMonthlyInfrastructureCosts. ( #11237 )
2023-08-27 22:12:44 +02:00
Jonathan G Rennison
19835b51ee
Move StationCargoList and FlowStatMap out of GoodsEntry struct
...
Move them into a new GoodsEntryData struct referenced
using a std::unique_ptr from GoodsEntry.
The unique_ptr may be nullptr if the cargo list and flow stat map
are both empty (this is the case for unused cargoes).
This reduces GoodsEntry from 128 to 24 bytes,
and Station from 8680 to 2024 bytes,
(on Linux x86_64).
2023-08-19 21:24:29 +01:00
Jonathan G Rennison
e912cfc19d
Ring buffer: Use as backing for std::queue uses
2023-08-19 15:28:45 +01:00
Jonathan G Rennison
a403a0c8e3
Use ring buffer for script log line data
2023-08-18 21:25:36 +01:00
Patric Stout
07730584d7
Codechange: make explicit when a TileIndex is cast to its basetype ( #11190 )
...
This prevents people accidentially assigning a TileIndex to a Date
or any other type they shouldn't.
2023-08-15 18:12:05 +02:00
Jonathan G Rennison
6ccbd7cce2
Saveload: Remove test pass from ScriptInstance::Save
...
Use SlConditionallySave to discard the saved data instead if there
was an error
2023-08-14 18:51:58 +01:00
Jonathan G Rennison
d0c6b7136d
Saveload: Improve performance of script data save/load
...
Avoid unnecessarily using SlObject wrappers
2023-08-14 17:28:49 +01:00
Patric Stout
299570b2c1
Codechange: make TimerGameCalendar Date and Year types strongly typed ( #10761 )
2023-08-12 18:14:21 +00:00
Patric Stout
5fba47b0f7
Codechange: make no assumptions on how the internals of TileIndex work ( #11183 )
...
Basically, avoid ".value", and just cast it to its original type
if you want to retrieve this.
2023-08-11 14:53:51 +02:00
Jonathan G Rennison
752b0bce47
ScriptList: Defer creation of sorter and values map until first used
2023-08-05 20:03:33 +01:00
Jonathan G Rennison
24a77e5b36
ScriptList: Update iterators when swapping lists
...
Safe btree iterators store a pointer to the parent container
2023-08-05 19:54:05 +01:00
Jonathan G Rennison
bdbc631e6c
Script: Simplify implementation of ScriptList
...
Use btrees instead of set/map
Replace bucket mechanism for reverse mapping
Avoid redundant operations
2023-08-03 22:05:26 +01:00
Andy
ce9305a5ee
Add: [Script] GSIndustry.GetConstructionDate() method ( #11145 )
2023-07-20 20:35:37 +02:00
Jonathan G Rennison
508f871c5f
Use core/format.hpp for fmt includes
2023-07-20 16:34:59 +01:00
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
2023-07-19 19:30:14 +02:00
Rubidium
18a31cca7c
Codechange: do not make a string valid in place, to then copy it
2023-07-06 19:59:50 +02:00
Rubidium
af9b9327af
Codechange: do not keep local variable for temporary string parameters
2023-07-03 18:08:03 +02:00
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 &&`
2023-07-03 18:08:03 +02:00
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
2023-07-02 12:02:36 +01:00
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
2023-07-01 02:42:51 +01:00
Loïc Guilloux
6c19e5ecae
Fix #10868 : [Script] Handle errors when loading savegame data on stack ( #11029 )
...
(cherry picked from commit 1d9bc23525
)
2023-06-24 23:48:08 +01:00
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.
2023-06-23 08:30:13 +00:00
PeterN
2a2443dd01
Feature: Create group of vehicles from manage vehicle list button. ( #10890 )
2023-06-18 20:48:04 +01:00
Loïc Guilloux
1d9bc23525
Fix #10868 : [Script] Handle errors when loading savegame data on stack ( #11029 )
2023-06-18 12:03:59 +02:00
Rubidium
d4c2043294
Codechange: remove a number of unneeded c_str() calls
2023-06-15 22:14:45 +02:00
Loïc Guilloux
1cd49bf5e5
Fix ca1e34c
: [Script] Wrong value printed for {RAW_STRING} ( #11011 )
2023-06-14 22:07:11 +00:00
Rubidium
7c37dcb8e3
Fix: do not use {STRING} when {STRING1} or {STRING2} is needed
2023-06-14 09:44:06 +02:00
mrmbernardi
35ef6c1723
Feature: [GS] Goal destination can be updated ( #10817 )
2023-06-08 18:00:31 +01:00
Rubidium
2ae7367024
Codechange: replace StrMakeValidInPlace with StrValid
2023-06-08 18:29:44 +02:00
Jonathan G Rennison
ac2f9a21e8
Move upstream saveload to src/saveload/, move jgrpp saveload to src/sl/
...
Leave afterload in src/saveload/
2023-06-08 00:01:40 +01:00
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
2023-06-08 00:01:38 +01:00
Jonathan G Rennison
f3116eedcf
Support 64 bit values in the give money and change bank balance commands
...
See: #535
2023-06-06 22:09:01 +01:00
Rubidium
ca1e34c121
Codechange: use std::string to build ScriptText's encoded text
2023-06-06 18:07:54 +02:00
Rubidium
fbd71a9d72
Codechange: replace C-style string processing with C++-style for the listing callbacks
2023-06-05 23:25:49 +02:00
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.
2023-06-05 19:32:22 +02:00
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.
2023-06-05 18:12:30 +01:00
Bernard Teo
2c667b1773
Doc: Fix spelling error in ScriptTileList::RemoveRectangle ( #10937 )
2023-06-04 17:45:18 +00:00
Patric Stout
6b1c38e303
Fix 3effb893
: mention GSAsyncMode in changelog ( #10924 )
2023-06-04 11:10:22 +00:00
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
2023-06-04 11:15:35 +02:00
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
2023-06-03 19:16:57 +01:00
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.
2023-06-03 14:17:05 +01:00
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
2023-06-01 21:12:16 +01:00
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
2023-05-31 23:21:38 +01:00
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
2023-05-30 00:49:24 +01:00
Jonathan G Rennison
3ec66e5fb5
Fix not being able to reload GS in script debug window
...
See: #523
2023-05-29 20:21:07 +01:00
PeterN
d086f288cd
Codechange: Remove duplicated includes. ( #10888 )
...
These are now included by stdafx.h so don't need to be included again.
2023-05-29 14:29:00 +01:00
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
2023-05-26 19:36:48 +01:00
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.
2023-05-25 21:25:46 +01:00
Peter Nelson
09408e8e46
Codechange: Add IsCargoAccepted/Produced() helpers.
2023-05-24 17:34:11 +01:00
Peter Nelson
633f19419d
Codechange: Make more use of GetCargoAccepted/ProducedIndex().
2023-05-24 17:34:11 +01:00