#pragma once #include struct Area { int startX; int startY; int endX; int endY; int dimensionId; }; enum Direction : char { NO_DIRECTION = (char)0, NORTH = (char)1, EAST = (char)2, SOUTH = (char)4, WEST = (char)8, TOP = (char)16, BOTTOM = (char)32, INSIDE = (char)64 }; typedef char Directions; #define ANY_DIRECTION NORTH | EAST | SOUTH | WEST | TOP | BOTTOM Direction getOppositeDirection(Direction dir); Directions getDirections( Framework::Vec3 currentPos, Framework::Vec3 otherPos); Framework::Vec3 getDirection(Directions dir); int getDirectionIndex(Direction dir); Direction getDirectionFromIndex(int index);