Peter Nelson
3be0166801
Codechange: Use std::ranges::find where possible.
...
Replace `std::find(range.begin(), range.end(), ...)` with `std::ranges::find(range, ...)`.
2024-11-24 10:36:03 +00:00
Peter Nelson
c39810ff6a
Codechange: Replace path cache queues with vectors.
...
Ship and RoadVehicle path caches use a std::deque, which is quite memory hungry, especially for RoadVehicle which has two.
std::deque was used to be able to push/pop from either end.
Change to use a single std::vector each, which is now push/popped from the back.
2024-11-18 08:59:41 +00:00
Peter Nelson
04b6dfae48
Cleanup: Remove now-unneeded includes from yapf. ( #13088 )
2024-11-16 23:23:06 +00:00
Koen Bussemaker
3e195df3c7
Codechange: Cleaned up and renamed NodeList
2024-11-12 21:06:17 +01:00
Peter Nelson
a171939ec3
Codechange: Remove `m_` prefix from pathfinders.
2024-10-25 19:01:39 +01:00
Peter Nelson
a6f412c615
Codechange: Add `this->` to YAPF.
2024-10-25 19:01:39 +01:00
Koen Bussemaker
257d312a58
Fix #12228 , Fix #12231 : CheckShipReverse only restricts path when it has to
2024-04-16 20:21:18 +02:00
Patric Stout
a3cfd23cf9
Codechange: rename byte to uint8_t ( #12308 )
2024-03-16 23:59:32 +01:00
SamuXarick
d7c5e9e8ab
Codechange: Where the ship comes from is already known
...
This simplifies the handling of variables.
`ChooseShipTrack` is called upon entering `tile`, and looking further back to the caller, it can be deduced that `v->tile` matches `src_tile`. With that said, `enterdir` can also be removed, as it's not used anywhere else.
`CreateRandomPath` and `GetRandomFollowUpTrackdir` is being fed `src_tile` as it's 2nd parameter. This could be eliminated, as `v` is also being passed to it. Just use `v->tile` in those functions.
2024-03-16 17:02:19 +01:00
Patric Stout
5f4f9334ce
Codefix f1e999ec: use RandomRange(l) instead of _random.Next(l) ( #12274 )
2024-03-16 14:39:57 +00:00
SamuXarick
a7625b8ae0
Fix #12280 : Allow ships 90 degree turns if only choice
...
If there is no path found, a random path is created which forbids 90 degrees.
Allow 90 degrees if they're the only choice.
2024-03-15 08:04:08 +01:00
SamuXarick
14d95ef1c9
Fix #12279 : Update random path each step ( #12286 )
2024-03-13 11:22:52 -04:00
Kuhnovic
08ff1ab93e
Fix #12236 : Ship pathfinder causes crash when ship is already at destination ( #12238 )
2024-03-08 23:46:13 +01:00
Peter Nelson
b2ca6e1ac8
Codefix: Remove no-longer used ship special-case. ( #12192 )
...
This special-case has not been triggered since multi-tile docks were introduced.
2024-03-03 09:31:04 +00:00
Kuhnovic
c5afc9173c
Fix #12176 : Ships are circling in one place ( #12181 )
2024-03-02 21:45:54 +01:00
Kuhnovic
2fb1593550
Fix e38c3c5: Added missing return statement ( #12185 )
2024-02-27 12:55:42 +01:00
Kuhnovic
e38c3c59f3
Fix #11840 : Ship pathfinder always returns a valid trackdir if one is available ( #12031 )
2024-02-09 12:31:38 -05:00
Rubidium
6b21368bc2
Codechange: replace FIND_FIRST_BIT/FindFirstBit2x64 with FindFirstBit
2024-01-19 21:10:39 +01:00
Kuhnovic
f1e999ec59
Feature: Region-based pathfinder for ships ( #10543 )
2024-01-08 20:29:05 +01:00
Rubidium
e3f49ee7a0
Codechange: coding style fixes
2024-01-04 16:23:54 +01:00
Loïc Guilloux
6ff0858b38
Fix #9669 , cbe00ec: Only try valid reverse directions ( #9672 )
2021-11-06 17:32:37 +01:00
glx22
cbe00ec651
Fix: Try all possible reverse directions when a ship reaches a dead end
2021-10-11 21:11:13 +02: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
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
Charles Pigott
9b800a96ed
Codechange: Remove min/max functions in favour of STL variants ( #8502 )
2021-01-08 11:16:18 +01:00
S. D. Cloudt
13cc8a0cee
Cleanup: Removed SVN headers
2019-11-10 17:59:20 +00:00
peter1138
0db31ae27f
Change: Avoid caching end of ship path, to allow penalties to apply.
2019-06-30 16:46:32 +02:00
peter1138
31db4f8d5e
Add: Penalty for occupied docking points.
2019-06-30 16:46:32 +02:00
peter1138
f538179878
Feature: Multi-tile docks and docking points.
2019-06-30 16:46:32 +02:00
Charles Pigott
9f3928658b
Codechange: Remove Track{dir,}{Bits,}Byte types
2019-04-29 17:40:22 +01:00
Henry Wilson
7c8e7c6b6e
Codechange: Use null pointer literal instead of the NULL macro
2019-04-10 23:22:20 +02:00
PeterN
6c6971fb43
Add: Road vehicle path cache. ( #7261 )
2019-03-08 23:52:45 +00:00
Peter Nelson
7ca1793ec4
Change: Automatically use Trackdir node key as needed if ship curve penalties differ.
2019-03-08 16:52:08 +01:00
Peter Nelson
b8a0107ad1
Change: Add configurable curve penalty for ships.
2019-03-08 16:52:08 +01:00
Peter Nelson
3f327116db
Change: Don't apply forbid 90 deg turn settings to ships.
2019-03-03 20:59:44 +01:00
J0an Josep
a5836874ef
Codechange: Use track functions.
2019-01-26 22:55:12 +00:00
Peter Nelson
81330b8d6e
Change: Add path cache for ships.
2019-01-19 23:11:17 +00:00
J0anJosep
d01c09fb73
Codechange: Use HasTrack(dir) to improve code readability.
2018-06-27 23:14:30 +02:00
J0anJosep
79a551a83c
Codechange: Use TileAddBy(Diag)Dir when possible.
2018-04-30 18:55:04 +02:00
alberth
b885d79f50
(svn r27362) -Codechange: Codestyle fixes for reference var declarations, static cast type, operator methods.
2015-08-08 10:06:24 +00:00
rubidium
0463dbdc9e
(svn r26482) -Codechange: add an include that allows us to undefine/redefine "unsafe" functions to prevent them from being used, and thus having to care about certain aspects of their return values
2014-04-23 20:13:33 +00:00
rubidium
f669101560
(svn r26117) -Cleanup: unneeded NULL check
2013-11-26 10:00:15 +00:00
rubidium
eb538da228
(svn r24964) -Fix [FS#5416]: With YAPF the docking behaviour differed per direction; now favour docking in the direction you approached
2013-02-03 14:16:45 +00:00
frosch
d17ec934f5
(svn r24481) -Feature [FS#5127]: Make the pathfinder decide whether ships shall leave depots towards north or south.
2012-08-18 11:37:47 +00:00
truebrain
1c9bec1999
(svn r23640) -Fix: stop using FORCEINLINE (1/3rd of the instances were, the others were still regular inline), but make sure inline is always a 'forced' inline (I am looking at you MSVC)
2011-12-20 17:57:56 +00:00
michi_cc
45b95ed629
(svn r22801) -Feature: [YAPF] Take canal/ocean speed fraction of ships into account.
2011-08-21 14:13:22 +00:00
smatz
6e011e9e68
(svn r22348) -Codechange: split ship-specific part of yapf_node.hpp to yapf_node_ship.hpp
2011-04-19 15:00:11 +00:00
rubidium
4045429df6
(svn r21511) -Feature: vehicle lost message for ships
2010-12-13 21:56:40 +00:00
frosch
4bd32799f1
(svn r20286) -Codechange: Unify end of doxygen comments.
2010-08-01 19:44:49 +00:00
frosch
ed4f806f1d
(svn r20283) -Codechange: Unify start of doygen comments.
2010-08-01 19:22:34 +00:00