The open source repository for the action RPG game in development by Sig Productions titled 'Adventures in Lestoria'! https://forums.lestoria.net
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
AdventuresInLestoria/Crawler/Pathfinding.h

26 lines
891 B

#pragma once
#include "olcPixelGameEngine.h"
struct Pathfinding{
struct sNode
{
bool bObstacle = false; // Is the node an obstruction?
bool bObstacleUpper = false; // Is the node an obstruction on the upper level?
bool bVisited = false; // Have we searched this node before?
float fGlobalGoal; // Distance to goal so far
float fLocalGoal; // Distance to goal if we took the alternative route
int x; // Nodes position in 2D space
int y;
std::vector<sNode*> vecNeighbours; // Connections to neighbours
sNode* parent=nullptr; // Node connecting to this node that offers shortest parent
};
sNode *nodes = nullptr;
sNode *nodeStart = nullptr;
sNode *nodeEnd = nullptr;
void Initialize();
//maxRange in tiles. Returns the path as points.
std::vector<vf2d> Solve_AStar(vf2d startPos,vf2d endPos,float maxRange=8,bool upperLevel=false);
};