Ticket #647 (closed enhancement: fixed)

Opened 2 years ago

Last modified 20 months ago

Pathfinder and FoW branch

Reported by: prock Owned by: helios2000
Priority: normal Milestone: 0.3.4
Component: engine/core Version: trunk
Severity: normal Keywords:
Cc: Blocked By:
Blocking: Time planned:
Time remaining: Time spent:

Description

Helios is working on a new pathfinder and some Fog of War code. This ticket is for that branch.

Change History

comment:1 Changed 2 years ago by helios2000

(In [3845]) * Created new cell_pathfinding branch. refs #647

comment:2 Changed 2 years ago by helios2000

(In [3846]) * Initial commit to cell_pathfinding. Cell, Cellcache and CellRenderer? have been added. Otherwise, for the moment, no changes in pathfinding.

  • Implemented a basic Fog of War example in Rio de Hola. refs #647

comment:3 Changed 2 years ago by helios2000

(In [3847]) * Fixed a mistake in cell.cpp. refs #647

comment:4 Changed 2 years ago by helios2000

(In [3848]) * Added an update mechanism to CellRenderer?. Fog of War map is updated only if Camera or Cellcache force it.

Browse the change here:  https://fife.trac.cvsdude.com/engine/changeset/3848 refs #647

comment:5 Changed 2 years ago by helios2000

(In [3849]) * Pathfinder uses now Cellcache instead of SearchSpace?.

Browse the change here:  https://fife.trac.cvsdude.com/engine/changeset/3849 refs #647

comment:6 Changed 2 years ago by helios2000

(In [3850]) * Fixed a bug in Cellcache.

Browse the change here:  https://fife.trac.cvsdude.com/engine/changeset/3850 refs #647

comment:7 Changed 2 years ago by helios2000

(In [3851]) * Added Route and the associated changes.

  • Changed python loader so that it is also able to create Cellcaches.
  • Changed also Grid and Heuristic functions.
  • Removed SearchSpace?.

Browse the change here:  https://fife.trac.cvsdude.com/engine/changeset/3851 refs #647

comment:8 Changed 2 years ago by helios2000

(In [3852]) * Removed SearchSpace? leftover.

Browse the change here:  https://fife.trac.cvsdude.com/engine/changeset/3852 refs #647

comment:9 Changed 2 years ago by helios2000

(In [3854]) * Fixed a few bugs.

  • Added methods to cancel instance movement and to cut paths.
  • Added the possibility to render paths. refs #647

comment:10 Changed 2 years ago by helios2000

(In [3855]) * Removed heuristic and added the cost function to cellgrid.

  • Added one layer transition support.
  • Renamed black_cell.PNG to black_cell.png.
  • Fixed a few bugs in LayerCache?, ImageManager? and Image classes. refs #647

comment:11 Changed 2 years ago by chewie

(In [3856]) - extended loaders & savers to handle new walkable flag for layers refs #647

comment:12 Changed 2 years ago by helios2000

(In [3863]) * Added the possibility to move between different layers. The Agent isn't by default forced to use the transition areas. Pathfinder uses them only if they are in the near. All this need more testing and improvements.

  • Added the functionality to transfer instances safely between layers without the need of deleting. refs #647

comment:13 Changed 2 years ago by helios2000

(In [3864]) * Added cost and speed multiplier options.

  • Added cell stack position to sort blockers.
  • Added two new blocker states for cell. This two can overwrite all contained instance blocker.
  • Added the possibility to resize the Cellcache at runtime. Listeners should do it automatically. refs #647

comment:14 Changed 2 years ago by helios2000

(In [3865]) * Extend cell interface. refs #647

comment:15 Changed 2 years ago by helios2000

(In [3871]) * Added the possibility to use special costs to create paths. Then it is used, default cost * cost multiplier * special cost.

  • Added getCosts() and unregisterAllCosts() to cell.
  • Added getCellsInCircle() to cellcache. refs #647

comment:16 Changed 2 years ago by helios2000

(In [3873]) * Added the possibility to render special cell costs.

  • Added more Instance/Object? functions to interact with cells. e.g. cellstack position and costs
  • Added the possibility to change the default action.
  • Corrected getCellsInCircle(). refs #647

comment:17 Changed 2 years ago by helios2000

(In [3877]) * Merged the trunk changes to branch.

  • Changed the Python xmlanimation loader to be able to load Atlas animations, e.g. for cursors, special fx. refs #647

comment:18 Changed 2 years ago by helios2000

(In [3880]) * Changed RoutePatherSearch? to be a base class and added derived classes for single and multi layer search.

  • Changed save/load functions for layer_type.
  • Merged trunk changes to branch. refs #647

comment:19 Changed 2 years ago by helios2000

(In [3892]) * Added pathfinder support for multi cell objects. You can add relative coordinates to an object. The instance is then used on all these cells.

comment:20 Changed 2 years ago by helios2000

(In [3898]) * Optimized multi cell object support.

  • Added CellChangeListener?. This is able to detect if a instance entered or exited a cell.
  • Fixed few small bugs and unpleasant things.
  • Merged trunk changes to branch. refs #647

comment:21 Changed 2 years ago by chewie

(In [3902]) - merged trunk changes to cell_pathfinding branch refs #647

comment:22 Changed 2 years ago by helios2000

(In [3908]) * Fixed a small bug in CellCacheChangeListener?.

  • Extended Instance follow() so it is able to detect if an action with the same properties has already been created.
  • Merged trunk changes to branch. refs #647

comment:23 Changed 2 years ago by helios2000

(In [3915]) * Introduced basic save and load for CellCaches? and Cells. Added for this initialize and finalizeCellCaches() to map.

  • Added cost and speed functions to CellCache?. These are now used as defaults.
  • Optimized path search and fixed a bug.
  • Fixed one more gap/wobbling problem in LayerCache?. refs #647

comment:24 Changed 2 years ago by helios2000

(In [3924]) * Added PathfinderTest? to fife tests. It demonstrates multilayer movement and how speed and cost multiplier could be used.

  • Added zones, these allows a better and faster search for paths.
  • Added areas which allow the clients to store cells in own groups.
  • Merged trunk changes to branch.
  • Some other minor fixes and improvements. refs #647

comment:25 Changed 2 years ago by helios2000

(In [3925]) * Fixed a small problem with std::set which resulting in a compiler error for MSVC. refs #647

comment:26 Changed 2 years ago by helios2000

(In [3928]) * Changed the way instance rotation works. Instead of using a facing location the instance now use only a rotation value. But the possibility to get and set facing locations is still available. In case you set a facing location, internally it is converted to a angle or in case of get, the angle is converted to a location. refs #647

comment:27 Changed 23 months ago by helios2000

(In [3975]) * Changed the creation of multi cell objects. So multi objects works but they still need an area.

  • Fixed a instance activity problem.
  • Fixed some other small bugs.
  • Merged trunk changes to branch. refs #647

comment:28 Changed 23 months ago by helios2000

(In [3976]) * Removed FREEFORM from Pathing strategies because it was useless. The pathing stragegy is still stored by the layer but used in grid to allow diagonal movement.

  • Fixed camera update bug which caused a asynchrony at FogOfWar?.
  • Added Multiobject support for transitions. refs #647

comment:29 Changed 23 months ago by helios2000

(In [3977]) * Changed the way multi objects search and check its paths. This way we don't need the walking areas. So the Pathfinder can mostly find a way e.g. a ship with width 1 and length 3 has no problem to drive through a river with width 1. Note: Simple rotation changes are not checked against blocker.

  • Changed the branch related code to match the new coding standards. refs #647

comment:30 Changed 22 months ago by prock

(In [3978]) Modifying code/comments/file headers that apply to this branch to conform to the new coding standard. Also applied the correct eol-style svn property for some of the new files. refs #647

comment:31 Changed 22 months ago by helios2000

(In [3980]) * Fixed demo applications to work with the new pathfinder.

  • Added two more versions of instance act(). All in all there are three versions. The first one uses a location intended to be the rotation, the second uses a rotation value and the third uses the rotation of the instance.
  • Added FoW, cell stack and special cost to map loader and saver.
  • Merged trunk changes. I had to adjust it a little. refs #647

comment:32 Changed 22 months ago by helios2000

(In [3981]) * Fixed the multi object "jumping".

  • Added a flag that allow to restrict the rotation that is used by multi objects. Thus, only registered rotations are used. So no free rotation by moving. refs #647

comment:33 Changed 22 months ago by helios2000

(In [3984]) * Added a lot of documentation.

  • Changed some code to match our coding standards.
  • Merged trunk changes to branch. refs #647

comment:34 Changed 22 months ago by helios2000

(In [3989]) * Optimized RAM consumption of the cells. Therefore a few functions and variables were moved to CellCache?, others were removed or changed to another container type. All in all the consumption is reduced by about 60%.

  • Improved zone splittings and mergers.
  • Added the possibility to disable automatic search for narrow cells, instead the client can sets its own. Or can thus use static zones. refs #647

comment:35 Changed 22 months ago by helios2000

(In [3991]) * Added a new event type to editor. It is needed to update the editor plugin correct.

comment:36 Changed 22 months ago by helios2000

  • Status changed from new to closed
  • Resolution set to fixed

(In [3992]) * Merged the cell_pathfinding branch back to trunk. closes #647

comment:37 Changed 21 months ago by helios2000

(In [4002]) * Added getMapViewPort() and getLayerViewPort() functions to camera class. These functions return the position and size of the camera in map or layer coordinates. CellRenderer? make use of it to speed up rendering, especially when many cells exist in the cache. refs #647

comment:38 Changed 21 months ago by helios2000

(In [4023]) * Fixed a bug with cell visitors.

  • Fixed a small problem with std::set which resulting in a compiler error for MSVC. refs #647

comment:39 Changed 21 months ago by helios2000

(In [4032]) * Fixed bugs in hex grid and map editor. Thank you Niektory! refs #647

comment:40 Changed 20 months ago by helios2000

(In [4042]) * Fixed inheritance problem of the IPather and added missing functions.

  • Enhanced Fog of War. You can now choose between quad or circle shape.
  • Added a feature that allows to add a interact layer to an existing CellCache?.
  • Fixed an update problem that occurred at CellCache? resize(). refs #647

comment:41 Changed 20 months ago by helios2000

(In [4047]) * Fixed a bug in getPreviousNode(). Thanks Niektory for finding and fixing this bug. refs #647

comment:42 Changed 20 months ago by helios2000

(In [4052]) * Changed the IPather API to fix inheritance/proxy class problem. The rotation is now part of the route and nextLocation is a pointer instead of a reference. refs #647

Note: See TracTickets for help on using tickets.