Commit Graph

45 Commits

Author SHA1 Message Date
Jonathan G Rennison
a3371fccc6 Remove Cheats/ExtraCheats distinction
It is not necessary as there is no longer a need to preserve
the size/order of struct Cheats
2023-11-26 11:32:26 +00:00
Jonathan G Rennison
7d65fbd6e8 Link graph: Fix incorrect job start/join dates when loading upstream saves 2023-11-25 16:32:21 +00:00
Jonathan G Rennison
21b49a213e Merge branch 'master' into jgrpp
# Conflicts:
#	src/cheat_gui.cpp
#	src/main_gui.cpp
#	src/network/network_gui.cpp
#	src/saveload/saveload.h
#	src/smallmap_gui.cpp
#	src/station_cmd.cpp
#	src/timetable_cmd.cpp
#	src/toolbar_gui.cpp
#	src/widget.cpp
#	src/widget_type.h
#	src/widgets/dropdown_type.h
2023-11-25 14:14:00 +00:00
Jonathan G Rennison
38df621e62 Improve train speed adaptation with realistic braking
Take into account recorded speeds at signals along the reservation
As noted in the lookahead

See: #613
2023-11-25 00:23:27 +00:00
Jonathan G Rennison
154df0bb7d Fix some unused variable warnings when asserts are disabled 2023-11-20 23:59:08 +00:00
Jonathan G Rennison
0d4d4a9cac Merge branch 'master' into jgrpp
# Conflicts:
#	cmake/CompileFlags.cmake
#	src/3rdparty/squirrel/squirrel/sqclosure.h
#	src/3rdparty/squirrel/squirrel/sqobject.h
#	src/3rdparty/squirrel/squirrel/sqvm.h
#	src/aircraft.h
#	src/airport_gui.cpp
#	src/blitter/32bpp_sse_func.hpp
#	src/blitter/null.hpp
#	src/bridge_gui.cpp
#	src/build_vehicle_gui.cpp
#	src/cargotype.h
#	src/cheat_gui.cpp
#	src/command.cpp
#	src/command_func.h
#	src/company_gui.cpp
#	src/console_gui.cpp
#	src/date_gui.cpp
#	src/depot_gui.cpp
#	src/dock_gui.cpp
#	src/economy.cpp
#	src/error_gui.cpp
#	src/fileio.cpp
#	src/fios.cpp
#	src/fios_gui.cpp
#	src/fontcache/spritefontcache.h
#	src/framerate_gui.cpp
#	src/game/game_text.cpp
#	src/gamelog.cpp
#	src/genworld_gui.cpp
#	src/gfx_layout_fallback.cpp
#	src/group_gui.cpp
#	src/highscore_gui.cpp
#	src/hotkeys.cpp
#	src/industry_cmd.cpp
#	src/industry_gui.cpp
#	src/landscape.cpp
#	src/main_gui.cpp
#	src/misc_cmd.cpp
#	src/misc_gui.cpp
#	src/network/core/tcp_game.cpp
#	src/network/core/udp.cpp
#	src/network/network_chat_gui.cpp
#	src/network/network_content_gui.cpp
#	src/network/network_gui.cpp
#	src/network/network_server.cpp
#	src/network/network_server.h
#	src/newgrf_airport.cpp
#	src/newgrf_airport.h
#	src/newgrf_airporttiles.cpp
#	src/newgrf_airporttiles.h
#	src/newgrf_animation_base.h
#	src/newgrf_canal.cpp
#	src/newgrf_commons.h
#	src/newgrf_config.cpp
#	src/newgrf_debug_gui.cpp
#	src/newgrf_engine.cpp
#	src/newgrf_engine.h
#	src/newgrf_generic.cpp
#	src/newgrf_gui.cpp
#	src/newgrf_house.cpp
#	src/newgrf_house.h
#	src/newgrf_industries.cpp
#	src/newgrf_industries.h
#	src/newgrf_industrytiles.cpp
#	src/newgrf_industrytiles.h
#	src/newgrf_object.cpp
#	src/newgrf_object.h
#	src/newgrf_railtype.cpp
#	src/newgrf_railtype.h
#	src/newgrf_roadstop.cpp
#	src/newgrf_roadstop.h
#	src/newgrf_roadtype.cpp
#	src/newgrf_roadtype.h
#	src/newgrf_spritegroup.cpp
#	src/newgrf_spritegroup.h
#	src/newgrf_station.cpp
#	src/newgrf_station.h
#	src/newgrf_town.cpp
#	src/newgrf_town.h
#	src/news_gui.cpp
#	src/object_gui.cpp
#	src/order_gui.cpp
#	src/os/macosx/crashlog_osx.cpp
#	src/os/unix/crashlog_unix.cpp
#	src/os/windows/crashlog_win.cpp
#	src/os/windows/win32.cpp
#	src/os/windows/win32_main.cpp
#	src/pathfinder/npf/npf.cpp
#	src/pathfinder/npf/queue.cpp
#	src/rail_cmd.cpp
#	src/rail_gui.cpp
#	src/road_gui.cpp
#	src/roadveh.h
#	src/saveload/saveload.cpp
#	src/screenshot.cpp
#	src/script/api/script_text.hpp
#	src/settings.cpp
#	src/settings_gui.cpp
#	src/settings_internal.h
#	src/settings_table.cpp
#	src/signs_cmd.cpp
#	src/signs_gui.cpp
#	src/smallmap_gui.cpp
#	src/smallmap_gui.h
#	src/spriteloader/grf.hpp
#	src/station_cmd.cpp
#	src/station_gui.cpp
#	src/station_map.h
#	src/statusbar_gui.cpp
#	src/stdafx.h
#	src/strgen/strgen.cpp
#	src/table/newgrf_debug_data.h
#	src/terraform_gui.cpp
#	src/timer/timer_game_calendar.cpp
#	src/timer/timer_window.cpp
#	src/town.h
#	src/town_cmd.cpp
#	src/town_gui.cpp
#	src/train_gui.cpp
#	src/transparency_gui.cpp
#	src/vehicle_gui.cpp
#	src/water_cmd.cpp
#	src/waypoint_cmd.cpp
#	src/widget.cpp
#	src/widget_type.h
#	src/widgets/dropdown.cpp
#	src/widgets/rail_widget.h
#	src/widgets/terraform_widget.h
#	src/window.cpp
#	src/window_gui.h
2023-11-20 22:27:05 +00:00
Jonathan G Rennison
c929f7075e Merge branch 'master' into jgrpp
# Conflicts:
#	cmake/SourceList.cmake
#	src/build_vehicle_gui.cpp
#	src/company_gui.cpp
#	src/console_cmds.cpp
#	src/depot_base.h
#	src/elrail.cpp
#	src/network/core/udp.cpp
#	src/network/network_admin.cpp
#	src/network/network_chat_gui.cpp
#	src/network/network_gui.cpp
#	src/network/network_server.cpp
#	src/newgrf.cpp
#	src/newgrf_engine.cpp
#	src/newgrf_railtype.cpp
#	src/newgrf_railtype.h
#	src/newgrf_storage.h
#	src/os/unix/crashlog_unix.cpp
#	src/rail.h
#	src/rail_cmd.cpp
#	src/rail_gui.cpp
#	src/road_cmd.cpp
#	src/road_map.h
#	src/saveload/labelmaps_sl.cpp
#	src/settings_gui.cpp
#	src/settings_type.h
#	src/sl/oldloader_sl.cpp
#	src/station_cmd.cpp
#	src/station_gui.cpp
#	src/table/settings/world_settings.ini
#	src/tests/test_script_admin.cpp
#	src/textfile_gui.cpp
#	src/toolbar_gui.cpp
#	src/train_cmd.cpp
#	src/tunnelbridge_cmd.cpp
#	src/vehicle_gui.cpp
#	src/widget.cpp
#	src/window.cpp
#	src/window_gui.h
#	src/window_type.h
2023-11-19 13:00:21 +00:00
Jonathan G Rennison
6e671ed6e2 Split save/load settings into separate INI files
Matching upstream for all settings
2023-11-18 20:00:55 +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
bea18ffc18 Fix cargodist after loading ChillPP savegames 2023-11-18 12:23:10 +00:00
Jonathan G Rennison
3e299aa488 Use upstream table chunk format for PATS 2023-11-18 00:01:46 +00:00
Jonathan G Rennison
9197cf6be1 Add saveload helper for conditionally upstream chunks 2023-11-17 23:08:29 +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
3436e0a781 Merge branch 'master' into jgrpp
# Conflicts:
#	src/error.h
#	src/error_gui.cpp
#	src/linkgraph/linkgraph_gui.cpp
#	src/misc_gui.cpp
#	src/newgrf_gui.cpp
#	src/news_gui.cpp
#	src/rail_cmd.cpp
#	src/saveload/gamelog_sl.cpp
#	src/script/api/script_text.cpp
#	src/script/script_instance.cpp
#	src/statusbar_gui.cpp
#	src/strings.cpp
#	src/strings_func.h
#	src/strings_internal.h
#	src/table/settings/gui_settings.ini
#	src/table/settings/linkgraph_settings.ini
#	src/textbuf_gui.h
2023-11-09 01:55:23 +00:00
Jonathan G Rennison
0620026d56 Tracerestrict: Add long reserve (unless stopping) mode
Requires realistic braking
2023-10-03 20:59:28 +01:00
Patric Stout
4280c413a6 Fix: only count distance traveled in vehicles for cargo payment (#11283)
No longer you can utilize the free (and instant) labour of station
workers, transporting your cargo from one part of the station to
the other. No more!

Based on patch by dP.

(cherry picked from commit df400ef84a)
2023-10-02 19:26:08 +01:00
Patric Stout
a15847cf4f Codechange: simplify splitting of CargoPacket (#11286)
(cherry picked from commit d1a0ca67be)
2023-10-01 23:55:26 +01:00
Patric Stout
4ee51442d2 Codechange: rename next_station to next_hop to avoid confusing with another next_station
(cherry picked from commit 9f8c1ea552)
2023-10-01 23:49:30 +01:00
Patric Stout
f5d685a525 Fix b0e73277: cargodist information got lost when splitting of cargo (#11280)
During b0e73277 we removed loaded_at_xy, but I kinda forgot that
it was a union with next_station. Now next_station wasn't copied
anymore, or checked in AreMergable.

(cherry picked from commit e6c02ebee6)
2023-10-01 23:47:29 +01:00
Patric Stout
e5673a1756 Codechange: cleanup CargoPacket in terms of variable/function names (#11278)
Over the years, things got reused and changed, making the current
names somewhat unclear in what they actually mean and do.

(cherry picked from commit 30172fc037)
2023-10-01 23:40:38 +01:00
Patric Stout
2890127675 Codechange: remove loaded_at_xy from CargoPacket as it was unused (#11276)
(cherry picked from commit b0e73277d6)
2023-10-01 23:40:38 +01:00
Jonathan G Rennison
e0e4d7c07e Saveload: De-duplicate handling of wrong length SLXI extra data 2023-09-30 16:44:01 +01:00
Jonathan G Rennison
df4c458c29 Add savegame flag for station tile cache flags
Update flags as necessary on load and when reloading GRFs
2023-09-30 16:41:49 +01:00
Jonathan G Rennison
c6ce9ce687 Add road vehicle flags for whether any part is on level crossing 2023-09-10 13:43:13 +01:00
Jonathan G Rennison
02aecca5ae Conditional order: Replace "next station" with manually set station 2023-08-27 13:47:40 +01:00
Jonathan G Rennison
c11be37fd9 Add xdata2 field to OrderExtraInfo 2023-08-27 10:03:37 +01: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
615c42d357 Reserve vector size when loading station flow stats 2023-08-19 18:15:34 +01: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
Jonathan G Rennison
2212191b6c Saveload: Fix missing cast warnings for ship/RV path cache load 2023-08-17 15:17:54 +01:00
Jonathan G Rennison
92e632454e Change ship path cache to be optional and use a ring buffer 2023-08-16 15:20:24 +01:00
Jonathan G Rennison
2ae4e5bdc1 Change road vehicle path cache to be optional and use ring buffers
Show path cache in debug window
2023-08-16 15:17:56 +01:00
Jonathan G Rennison
e3021de408 Saveload: Add helper to conditionally save template functor 2023-08-14 18:51:00 +01:00
Jonathan G Rennison
f378167951 Saveload: Change SlSaveToVector to be templated, add SlSaveToTempBuffer 2023-08-14 18:39:23 +01:00
Tyler Trahan
b012d1100c Fix #10334: Store separate newgrf-safe version of date_of_last_service. (#11124)
This value is not changed when the date cheat is used, which caused issues with changing properties based on service date.

Co-authored-by: Peter Nelson <peter1138@openttd.org>
(cherry picked from commit 9a602ff304)
2023-08-08 18:31:29 +01:00
Jonathan G Rennison
2ed98b3b9d Saveload: Add support for upstream savegame version 316 2023-08-01 18:55:30 +01:00
Jonathan G Rennison
f6e8ea059d Create fio wrapper for rename file 2023-07-09 12:43:21 +01:00
Jonathan G Rennison
c6c69fa3da Add setting for long-term autosaves
A second set of autosaves for whenever the main set wraps around to 0
2023-07-09 10:02:57 +01:00
Jonathan G Rennison
d75c489466 Add various missing includes 2023-07-03 23:44:54 +01:00
Jonathan G Rennison
0bf41dc1ff Change gamelog to use std::vector
Move LoadCheckData to its own header
2023-07-03 22:42:59 +01:00
Jonathan G Rennison
e1cce4d9f7 Link graph: Store last compression in scaled date ticks
Higher accuracy than using dates at high day legnths
2023-07-02 16:58:17 +01: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
Jonathan G Rennison
c4c14cb6a7 3rdparty: Update monocypher from 3.1.3 to 4.0.1
Update to match interface changes
2023-06-14 20:52:00 +01: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