Jonathan G Rennison
88670a230f
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/articulated_vehicles.cpp
# src/articulated_vehicles.h
# src/base_media_base.h
# src/base_media_func.h
# src/build_vehicle_gui.cpp
# src/dock_gui.cpp
# src/main_gui.cpp
# src/music_gui.cpp
# src/network/network_chat_gui.cpp
# src/network/network_content.cpp
# src/newgrf.cpp
# src/newgrf_roadstop.cpp
# src/os/windows/string_uniscribe.h
# src/os/windows/win32.cpp
# src/rail_gui.cpp
# src/road.cpp
# src/road_gui.cpp
# src/settings.cpp
# src/settings_gui.cpp
# src/smallmap_gui.cpp
# src/strings.cpp
# src/terraform_gui.cpp
# src/tests/test_script_admin.cpp
# src/tests/test_window_desc.cpp
# src/timer/timer_game_calendar.h
# src/vehicle.cpp
# src/vehicle_base.h
# src/viewport.cpp
# src/widget_type.h
# src/window.cpp
# src/window_gui.h
2023-11-29 20:42:29 +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
Peter Nelson
ab535c0a86
Codechange: Add base() method to StrongType to allow access to the base type without casting. ( #11445 )
...
This removes the ability to explicitly cast to the base type, but the requirement
to use .base() means the conversion is still explicit.
2023-11-06 20:29:35 +00:00
Peter Nelson
7d4a91ef9e
Cleanup: Remove some unused functions. ( #11429 )
...
These were picked up with cppcheck.
2023-11-03 21:21:00 +00:00
Peter Nelson
ac9db3f5aa
Codechange: Don't use bit-field in Yapf rail node. ( #11362 )
...
Compacting 3 booleans into 3 bits could save memory allocation, however this data is inside a union which also contains a 4-byte integer. As such this gives the cost penalty of a bit-field without any benefit.
2023-10-09 12:11:55 +00:00
frosch
b6c8f301be
Codechange: Silence warnings about intentionally unused parameters.
2023-09-19 22:49:59 +02: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
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
Patric Stout
299570b2c1
Codechange: make TimerGameCalendar Date and Year types strongly typed ( #10761 )
2023-08-12 18:14:21 +00: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
Jonathan G Rennison
6297abdb3b
Remove str_fmt and str_vfmt
2023-05-30 00:55:24 +01:00
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.
2023-05-08 16:49:23 +02:00
Tyler Trahan
6501f84b4a
Codechange: Move calendar date functions inside TimerGameCalendar ( #10753 )
2023-05-04 13:14:12 +00:00
Jonathan G Rennison
9521e7ef2b
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/elrail.cpp
# src/ground_vehicle.hpp
# src/landscape.cpp
# src/saveload/afterload.cpp
# src/saveload/saveload.h
# src/tile_cmd.h
# src/town_cmd.cpp
# src/tunnelbridge_cmd.cpp
2023-04-12 19:34:11 +01:00
Jonathan G Rennison
c0f7ab8071
Fix spelling mistake
2023-04-09 22:27:13 +01:00
Rubidium
e8af8daa68
Codechange: pass "ground vehicle" to GetTileSlopeZ since for tunnel/bridges there are two states
...
Previously it checked the position in non-driving direction to "guess" whether
a ground vehicle was using the function, so on tunnels/bridges it could either
return the Z of the (virtual) ground compared to the Z of the path the vehicle
would take.
2023-04-09 19:00:26 +02:00
Jonathan G Rennison
4ec6a99dd8
Add GetTileTrackStatus wrapper for when red signals part is not needed
2023-03-04 02:01:40 +00:00
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
2022-11-05 17:19:00 +00:00
Nicolas Chappe
7e7d943526
Codechange: [YAPF] Allow to retrieve the final tile of the calculated path
2022-10-22 14:19:08 +02:00
Nicolas Chappe
227626b0b7
Change: [YAPF] All compatible depots are targets for 'any depot' orders
2022-10-22 14:19:08 +02:00
Jonathan G Rennison
29a1e49c28
Change various asserts to not be included in release builds
2022-10-22 12:34:54 +01:00
Jonathan G Rennison
bd28d5a239
Use order state at reservation time for signal mode tracerestrict eval
2022-07-01 00:33:59 +01:00
Jonathan G Rennison
6a69a5495f
Add tracerestrict action to set combined normal/shunt signal mode
...
Add associated conditional to get reservation end tile
2022-06-28 01:16:57 +01:00
Jonathan G Rennison
da88e12990
Fix deny and penalty actions not being applied to no-entry signals
2022-03-12 15:06:47 +00:00
Jonathan G Rennison
c69ed1711d
Allow road vehicle go to station/waypoint orders to have a direction
2022-01-27 01:30:22 +00:00
Jonathan G Rennison
b4fc0b4dc5
Initial implementation of road waypoints
2022-01-26 21:46:36 +00:00
Jonathan G Rennison
74bfe4e6d2
Allow placing routing restrictions on tunnel/bridge entrance/exit signals
...
No reserve through support
2021-11-13 22:28:14 +00:00
Jonathan G Rennison
3d4261a33a
Merge branch 'master' into jgrpp
...
# Conflicts:
# src/order_cmd.cpp
# src/table/settings/news_display_settings.ini
2021-11-08 00:44:18 +00:00
Loïc Guilloux
6ff0858b38
Fix #9669 , cbe00ec: Only try valid reverse directions ( #9672 )
2021-11-06 17:32:37 +01:00
Jonathan G Rennison
9e946d4c5d
Merge branch 'master' into jgrpp-beta
...
# Conflicts:
# src/command.cpp
# src/console_cmds.cpp
# src/group_gui.cpp
# src/lang/catalan.txt
# src/lang/czech.txt
# src/lang/danish.txt
# src/lang/greek.txt
# src/lang/hungarian.txt
# src/lang/irish.txt
# src/lang/japanese.txt
# src/lang/luxembourgish.txt
# src/lang/norwegian_bokmal.txt
# src/lang/romanian.txt
# src/lang/russian.txt
# src/lang/serbian.txt
# src/lang/simplified_chinese.txt
# src/lang/slovak.txt
# src/lang/spanish_MX.txt
# src/lang/swedish.txt
# src/lang/tamil.txt
# src/lang/traditional_chinese.txt
# src/lang/turkish.txt
# src/lang/ukrainian.txt
# src/lang/vietnamese.txt
# src/network/network.cpp
# src/network/network_client.cpp
# src/network/network_func.h
# src/network/network_internal.h
# src/network/network_server.cpp
# src/network/network_server.h
# src/saveload/afterload.cpp
# src/saveload/newgrf_sl.cpp
# src/saveload/saveload.h
# src/script/script_instance.cpp
# src/toolbar_gui.cpp
# src/toolbar_gui.h
# src/vehicle_gui.cpp
# src/widgets/rail_widget.h
# src/widgets/vehicle_widget.h
# src/window.cpp
2021-11-03 00:45:12 +00:00
glx22
cbe00ec651
Fix: Try all possible reverse directions when a ship reaches a dead end
2021-10-11 21:11:13 +02:00
Jonathan G Rennison
4042480806
Merge branch 'jgrpp' into jgrpp-beta
...
# Conflicts:
# src/settings.cpp
# src/settings_gui.cpp
# src/settings_internal.h
# src/table/company_settings.ini
# src/table/currency_settings.ini
# src/table/gameopt_settings.ini
# src/table/misc_settings.ini
# src/table/settings.h.preamble
# src/table/settings.ini
# src/table/win32_settings.ini
# src/table/window_settings.ini
2021-10-08 18:12:04 +01:00
Loïc Guilloux
07cc7da7fd
Revert 7ca1793: Using Trackdir keyed node is not required, Exitdir keyed node still have the correct trackdir ( #9576 )
...
(cherry picked from commit 11dece205c )
2021-10-04 21:07:37 +01:00
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
2021-09-27 22:47:23 +01:00
Loïc Guilloux
11dece205c
Revert 7ca1793: Using Trackdir keyed node is not required, Exitdir keyed node still have the correct trackdir ( #9576 )
2021-09-26 18:41:41 +02:00
Jonathan G Rennison
7018babeac
Reverse behind signal pathfinding now takes into account train length
...
This is to avoid pathfinding into a reversing track section which
is too short
2021-09-13 02:42:24 +01:00
Jonathan G Rennison
5d351a14d2
Add new signal type: no-entry signal
...
This is only passable in one direction, but does not have a signal
or show an aspect in the opposite direction
Add a setting for whether this is shown in the signal UI.
Off by default.
2021-09-04 11:39:54 +01:00
Patric Stout
91f2710783
Fix: pathfinders always tried to avoid docking tiles (even if nothing was on them) ( #9522 )
...
When coming across any docking tile (for example, all tiles around
an oilrig are docking tiles), it always at least added a penalty
of 3 times a normal tile, even when there are no ships on them.
In result, the pathfinder got suggested to always go around docking
tiles. This was most likely not the intention of the change made in
31db4f8d5e .
(cherry picked from commit f87fe395a7 )
2021-09-01 23:53:32 +01:00
Patric Stout
f87fe395a7
Fix: pathfinders always tried to avoid docking tiles (even if nothing was on them) ( #9522 )
...
When coming across any docking tile (for example, all tiles around
an oilrig are docking tiles), it always at least added a penalty
of 3 times a normal tile, even when there are no ships on them.
In result, the pathfinder got suggested to always go around docking
tiles. This was most likely not the intention of the change made in
31db4f8d5e .
2021-08-31 09:57:44 +02:00
Jonathan G Rennison
bbe079c906
Fix reverse behind signal pathfinding when there is no dead-end
...
This could cause issues if all the paths behind the reverse signal
converge with paths not via the reverse signal with a lower cost
2021-08-30 19:20:44 +01:00
Jonathan G Rennison
ae6b9f6e9c
Fix ESRB_REVERSE not being include in YAPF ESRB dumper
2021-08-30 18:40:24 +01:00
rubidium42
55a11710a6
Codechange: convert printf DEBUG statements to fmt Debug statements
2021-06-13 12:45:45 +02:00
Jonathan G Rennison
a7d8c6fe0c
Add PF setting for whether to pathfind up to back of one-way PBS
2021-06-09 20:43:57 +01:00
Vít Šefl
a73ddf4a35
Fix: Do not send vehicles towards incomplete PF nodes
...
YAPF could end up in a situation where it sets the best intermediate node
to a node whose construction is never finalized (i.e. it is never added to
the open list). The content of the node would be overwritten in the next
round, potentially sending the vehicle to an unwanted location.
(cherry picked from commit 0125ba82e8 )
2021-06-07 18:37:06 +01:00
Vít Šefl
073b15f453
Fix: Encountering two-way red signals could prune unrelated branches.
...
The intermediate node branch is now only pruned if the node is on the
path leading to the two-way red signal.
(cherry picked from commit 33d99d27f4 )
2021-06-07 18:31:24 +01:00
Vít Šefl
0125ba82e8
Fix: Do not send vehicles towards incomplete PF nodes
...
YAPF could end up in a situation where it sets the best intermediate node
to a node whose construction is never finalized (i.e. it is never added to
the open list). The content of the node would be overwritten in the next
round, potentially sending the vehicle to an unwanted location.
2021-05-29 19:00:47 +02:00
rubidium42
9197de39e4
Cleanup: remove unused copy-constructor without copy-assignment
2021-05-27 18:30:56 +02:00
Jonathan G Rennison
c0bf8476b1
Tracerestrict: Fix PBS entry signal conditional with signalled tunnel/bridges
2021-05-26 01:26:28 +01:00
Jonathan G Rennison
0579c8755c
Add tracerestrict action: No PBS signal back PF penalty
2021-05-25 18:50:36 +01:00