#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 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 Solve_AStar(vf2d startPos,vf2d endPos,float maxRange=8,bool upperLevel=false); };