Commit Graph

56 Commits

Author SHA1 Message Date
Jonathan G Rennison
c7a4c6ba0e Saveload: Add helper for null/ptr named save load table handling 2024-07-15 18:56:39 +01:00
Jonathan G Rennison
11eebdc5dd Saveload: Table format sub-struct support 2024-07-14 21:50:52 +01:00
Jonathan G Rennison
99c6cc5bdb Saveload: Use template function to implement SlAutolength 2024-07-14 20:54:57 +01:00
Jonathan G Rennison
74047028dd Saveload: Remove unused size field from struct SaveLoad 2024-07-14 20:54:57 +01:00
Jonathan G Rennison
7ddcf901f5 Saveload: Add a label tag field to SaveLoad 2024-07-14 20:54:57 +01:00
Jonathan G Rennison
10c136f039 Saveload: Add mechanism for custom handling of missing table fields 2024-07-13 00:49:37 +01:00
Jonathan G Rennison
651610cd2a Saveload: Fix sign and narrowing conversion warnings calculating list sizes 2024-07-11 01:43:18 +01:00
Jonathan G Rennison
724c6800c9 Saveload: Fix table chunk array type length headers 2024-07-08 17:50:37 +01:00
Jonathan G Rennison
61f920138f Saveload: Add helper to skip chunk contents 2024-07-07 15:34:09 +01:00
Jonathan G Rennison
0dc4be2aa0 Fix minor code style issue 2024-07-07 15:00:50 +01:00
Jonathan G Rennison
6244f5b929 Avoid nullptr reference undefined behaviour in saveload when discarding table string on load 2024-06-20 00:09:19 +01:00
Jonathan G Rennison
fff46974fd Scheduled dispatch: Allow naming departure slot tags 2024-06-13 19:32:42 +01:00
Jonathan G Rennison
c67f14dc88 Merge branch 'master' into jgrpp
# Conflicts:
#	src/fileio.cpp
#	src/fileio_func.h
#	src/industry_cmd.cpp
#	src/ini.cpp
#	src/openttd.cpp
#	src/os/windows/win32_main.cpp
#	src/settingsgen/settingsgen.cpp
#	src/strgen/strgen.cpp
#	src/strings.cpp
2024-06-10 22:38:23 +01:00
Jonathan G Rennison
1e9fb74451 Merge branch 'master' into jgrpp
# Conflicts:
#	.github/workflows/release-windows.yml
#	src/autoreplace_gui.cpp
#	src/cargotype.cpp
#	src/company_base.h
#	src/company_cmd.cpp
#	src/company_gui.cpp
#	src/currency.h
#	src/date_gui.cpp
#	src/dropdown.cpp
#	src/dropdown_func.h
#	src/dropdown_type.h
#	src/game/game_gui.cpp
#	src/genworld.cpp
#	src/genworld_gui.cpp
#	src/ground_vehicle.hpp
#	src/group_gui.cpp
#	src/house.h
#	src/industry_gui.cpp
#	src/network/network_client.cpp
#	src/network/network_server.cpp
#	src/network/network_type.h
#	src/newgrf_class_func.h
#	src/newgrf_house.cpp
#	src/newgrf_roadstop.h
#	src/openttd.cpp
#	src/order_gui.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/screenshot_gui.cpp
#	src/settings_gui.cpp
#	src/settings_type.h
#	src/slider.cpp
#	src/smallmap_gui.cpp
#	src/station_cmd.cpp
#	src/stdafx.h
#	src/survey.cpp
#	src/tile_map.h
#	src/town_cmd.cpp
#	src/town_gui.cpp
#	src/vehicle.cpp
#	src/vehicle_gui.cpp
#	src/vehicle_gui_base.h
2024-05-28 20:33:35 +01:00
Jonathan G Rennison
18a42664fc Merge branch 'master' into jgrpp
Remove 'byte' typedef
2024-05-07 17:21:50 +01:00
Jonathan G Rennison
71227f61d8 Use MoveFileExW to implement FioRenameFile on Windows
This is to allow renaming over an existing file
2024-04-20 20:55:21 +01:00
Jonathan G Rennison
98f1fb2722 Saveload: Fix NGRF chunks being saved with incorrect table SL_ARR format
Array length prefix was missing

See also: https://github.com/OpenTTD/bananas-api/pull/456
2024-03-30 10:16:26 +00:00
Jonathan G Rennison
e9c8c36af7 Add missing include to src/sl/saveload.cpp 2024-03-24 10:59:06 +00:00
Jonathan G Rennison
16577279a1 Saveload: Save to temporary file name and rename to target on success 2024-03-21 17:27:27 +00:00
Jonathan G Rennison
4d0af08aad Saveload: Log number of bytes/blocks serialised during save 2024-03-20 19:11:14 +00:00
Jonathan G Rennison
26cb47935e Saveload: Raise error if fclose fails in FileWriter 2024-03-20 18:15:40 +00:00
Jonathan G Rennison
041e71ec05 Merge branch 'master' into jgrpp
# Conflicts:
#	src/crashlog.cpp
#	src/gfx.cpp
#	src/network/network_client.cpp
#	src/openttd.cpp
#	src/openttd.h
#	src/saveload/saveload.cpp
#	src/survey.cpp
2024-03-16 18:06:09 +00:00
Jonathan G Rennison
ba79f7b2ba Merge branch 'master' into jgrpp
# Conflicts:
#	src/base_station_base.h
#	src/newgrf_roadstop.cpp
#	src/newgrf_station.cpp
#	src/object_gui.cpp
#	src/saveload/settings_sl.cpp
#	src/saveload/station_sl.cpp
#	src/settings.cpp
#	src/settings_internal.h
#	src/timer/timer_game_calendar.cpp
2024-03-09 20:10:57 +00:00
Jonathan G Rennison
a92377fe98 Use upstream save/load for various unchanged chunks 2024-02-21 20:22:24 +00:00
Jonathan G Rennison
b178be36f3 Saveload: Maintain map of chunk ID to (first byte) block mode 2024-02-21 20:22:24 +00:00
Jonathan G Rennison
dadbad2bfc Saveload: Log changes in SlExecWithSlVersion 2024-02-21 19:53:34 +00:00
Jonathan G Rennison
bd2358f6cc Saveload: Tidy up logging of chunk IDs
Add helper to dump chunk IDs as strings
Avoid duplicate logging of load steps for upstream load paths
2024-02-21 19:23:05 +00:00
Jonathan G Rennison
ba1fa3ad29 Saveload: Fix SlNullPointers with upstream chunks 2024-02-21 19:22:16 +00:00
Jonathan G Rennison
4097fc4e33 Saveload: Enable upstream mode SlAutolength
Use non-upstream implementation for SlCopyBytes
2024-02-19 18:58:32 +00:00
Jonathan G Rennison
8a85055c68 Saveload: Use std::span for autosave temporary buffer view 2024-02-19 18:58:32 +00:00
Jonathan G Rennison
1040f9612f Saveload: Tag duplicate detection in SlTableHeader as maybe unused 2024-02-19 04:26:42 +00:00
Jonathan G Rennison
8581808952 Merge tag '14.0-beta2' into jgrpp
# Conflicts:
#	CMakeLists.txt
#	src/cargotype.cpp
#	src/console_cmds.cpp
#	src/graph_gui.cpp
#	src/industry_cmd.cpp
#	src/industrytype.h
#	src/misc_gui.cpp
#	src/network/network_client.cpp
#	src/newgrf.cpp
#	src/newgrf_town.cpp
#	src/object_cmd.cpp
#	src/openttd.cpp
#	src/pathfinder/water_regions.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/table/build_industry.h
#	src/table/engines.h
#	src/vehicle.cpp
#	src/vehicle_cmd.cpp
#	src/vehicle_gui.cpp
2024-02-19 03:23:19 +00:00
Jonathan G Rennison
fdd666f66a Merge tag '14.0-beta1' into jgrpp
# Conflicts:
#	src/3rdparty/squirrel/squirrel/sqcompiler.cpp
#	src/aircraft.h
#	src/animated_tile.h
#	src/base_consist.h
#	src/cargotype.h
#	src/company_gui.cpp
#	src/console_cmds.cpp
#	src/core/overflowsafe_type.hpp
#	src/engine_gui.cpp
#	src/industry_gui.cpp
#	src/lang/english.txt
#	src/music/extmidi.cpp
#	src/network/core/network_game_info.cpp
#	src/network/network_server.cpp
#	src/newgrf.cpp
#	src/newgrf_industries.cpp
#	src/order_base.h
#	src/order_cmd.cpp
#	src/order_gui.cpp
#	src/order_type.h
#	src/os/macosx/misc_osx.cpp
#	src/os/windows/crashlog_win.cpp
#	src/rail_gui.cpp
#	src/rail_gui.h
#	src/roadveh.h
#	src/roadveh_cmd.cpp
#	src/saveload/afterload.cpp
#	src/saveload/company_sl.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/saveload/saveload_error.hpp
#	src/script/api/script_town.cpp
#	src/settingsgen/settingsgen.cpp
#	src/ship.h
#	src/ship_cmd.cpp
#	src/smallmap_gui.cpp
#	src/spritecache.cpp
#	src/stdafx.h
#	src/strgen/strgen.cpp
#	src/strgen/strgen.h
#	src/table/settings/script_settings.ini
#	src/timetable_cmd.cpp
#	src/timetable_gui.cpp
#	src/town.h
#	src/town_cmd.cpp
#	src/town_cmd.h
#	src/town_gui.cpp
#	src/train.h
#	src/train_cmd.cpp
#	src/tree_cmd.cpp
#	src/vehicle.cpp
#	src/vehicle_base.h
#	src/vehicle_cmd.cpp
#	src/vehicle_gui.cpp
#	src/vehiclelist.cpp
#	src/waypoint_base.h
#	src/widget.cpp
2024-02-18 22:22:29 +00:00
Jonathan G Rennison
838b166726 Merge branch 'master' into jgrpp
# Conflicts:
#	src/cheat_gui.cpp
#	src/command.cpp
#	src/command_func.h
#	src/company_base.h
#	src/debug.cpp
#	src/debug.h
#	src/economy.cpp
#	src/engine_type.h
#	src/graph_gui.cpp
#	src/misc_cmd.cpp
#	src/misc_cmd.h
#	src/network/core/os_abstraction.cpp
#	src/openttd.cpp
#	src/saveload/saveload.cpp
#	src/saveload/saveload.h
#	src/settings_type.h
#	src/ship_cmd.cpp
#	src/stdafx.h
#	src/tests/bitmath_func.cpp
#	src/town_cmd.cpp
#	src/town_gui.cpp
2024-02-17 11:53:35 +00:00
Jonathan G Rennison
7ce06e22b8 Split date types into calendar and economy dates
See: 735abfe1
2024-02-13 21:34:09 +00:00
Jonathan G Rennison
b05738284b Windows: Avoid destruction of unjoined std::thread on ExitProcess
See: #649
2024-02-11 02:03:33 +00:00
Jonathan G Rennison
195b3b6d1d Saveload: Add initial table chunk support to non-upstream save backend 2024-02-10 21:11:27 +00:00
Jonathan G Rennison
936d636cdd No longer save/load water region invalidation states
Move InitializeWaterRegions to AllocateMap
No longer ForceUpdate in InitializeWaterRegions
2024-01-10 00:51:44 +00:00
Jonathan G Rennison
914b92b21f Merge branch 'master' into jgrpp
Bump savegame for water regions for ship pathfinder
Use ring_buffer for ShipPathCache
2024-01-09 18:36:47 +00:00
Jonathan G Rennison
97e6f3062e Adding of _t to (u)int types, and WChar to char32_t
See: eaae0bb5e
2024-01-07 17:20:41 +00:00
Jonathan G Rennison
f034714559 Use StringBuilder for GetString/GetStringWithArgs, as per upstream
Update dependent code as required
2024-01-05 21:12:54 +00:00
Jonathan G Rennison
2e9cb16254 Saveload: Simplify list handling in SlRefList
Use reserve on load if suitable
2023-12-26 18:18:00 +00:00
Jonathan G Rennison
378a545dd4 Add setting for map edge behaviour, and how to display area outside map 2023-12-22 17:32:44 +00:00
Jonathan G Rennison
4689113553 Debug: De-duplicate formatting of hex dates for desync/random logging 2023-12-19 17:55:57 +00:00
Jonathan G Rennison
03e0ec8276 Strong typedef: Use strong typedefs for date, date tick, minutes types
Add delta types
Adjust/add type conversion functions
Add various utility methods on types
Remove the various minute macros
Fix some minute conversion inconsistencies
2023-12-19 02:39:54 +00:00
Jonathan G Rennison
5f08bde936 Saveload: Remove runtime IsVariableSizeRight check 2023-12-17 13:38:22 +00:00
Jonathan G Rennison
ea3b991f72 MinGW: Remove direct mingw-std-threads includes 2023-12-13 23:11:20 +00:00
Jonathan G Rennison
9c29950956 Show savegame version/info in load window if sl debug enabled 2023-11-18 13:24:25 +00:00
Jonathan G Rennison
181eb6b6fe Saveload: Adjust flags for saving using upstream chunks 2023-11-17 23:08:29 +00:00
Jonathan G Rennison
23ad010d70 Replace remaining uses of std::deque with ring buffers
Cargo packet lists and associated save/load
2023-08-19 14:01:06 +01:00