mirror of
https://github.com/AquariaOSE/Aquaria.git
synced 2025-05-10 19:13:44 +00:00
There were still only 6 of 8 bits of the map grid in use. The last 2 bits are now available as non-colliding user bits, and are ignored unless specially treated. The findPath() function can now be told which bits to respect, which allows to prevent pathfinding to pass through fish tunnels, for example. A function for fast user bit map dilation is added as well.
46 lines
1.3 KiB
C++
46 lines
1.3 KiB
C++
/*
|
|
Copyright (C) 2007, 2010 - Bit-Blot
|
|
|
|
This file is part of Aquaria.
|
|
|
|
Aquaria is free software; you can redistribute it and/or
|
|
modify it under the terms of the GNU General Public License
|
|
as published by the Free Software Foundation; either version 2
|
|
of the License, or (at your option) any later version.
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License
|
|
along with this program; if not, write to the Free Software
|
|
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
#ifndef PATHFINDING_H
|
|
#define PATHFINDING_H
|
|
|
|
#include "../BBGE/Base.h"
|
|
//#include "Astar.h"
|
|
#include "TileVector.h"
|
|
#include <assert.h>
|
|
|
|
class RenderObject;
|
|
class SearchGrid;
|
|
class Game;
|
|
|
|
class PathFinding
|
|
{
|
|
public:
|
|
void forceMinimumPath(VectorPath &path, const Vector &start, const Vector &dest);
|
|
void molestPath(VectorPath &path);
|
|
void generatePath(RenderObject *go, TileVector g1, TileVector g2, int offx=0, int offy=0);
|
|
|
|
bool generatePathSimple(VectorPath& path, const Vector& start, const Vector& end, unsigned int step = 0, unsigned int obs = 0);
|
|
};
|
|
|
|
#endif
|
|
|
|
|
|
|