summary refs log tree commit diff stats
path: root/src/systems/pondering.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/systems/pondering.h')
-rw-r--r--src/systems/pondering.h34
1 files changed, 16 insertions, 18 deletions
diff --git a/src/systems/pondering.h b/src/systems/pondering.h index abc6db2..273db67 100644 --- a/src/systems/pondering.h +++ b/src/systems/pondering.h
@@ -4,19 +4,7 @@
4#include "system.h" 4#include "system.h"
5#include "components/ponderable.h" 5#include "components/ponderable.h"
6#include "direction.h" 6#include "direction.h"
7 7#include "vector.h"
8struct CollisionResult
9{
10 double newX;
11 double newY;
12 bool stopProcessing = false;
13 bool touchedWall = false;
14 bool adjacentlyWarping = false;
15 Direction adjWarpDir;
16 size_t adjWarpMapId;
17 bool grounded = false;
18 EntityManager::id_type groundEntity;
19};
20 8
21class PonderingSystem : public System { 9class PonderingSystem : public System {
22public: 10public:
@@ -47,7 +35,19 @@ public:
47 35
48private: 36private:
49 37
50 38 struct CollisionResult
39 {
40 vec2d pos;
41 bool stopProcessing = false;
42 bool touchedWall = false;
43 bool blockedHoriz = false;
44 bool blockedVert = false;
45 bool adjacentlyWarping = false;
46 Direction adjWarpDir;
47 size_t adjWarpMapId;
48 bool grounded = false;
49 id_type groundEntity;
50 };
51 51
52 void tickBody( 52 void tickBody(
53 id_type entity, 53 id_type entity,
@@ -56,13 +56,11 @@ private:
56 56
57 CollisionResult moveBody( 57 CollisionResult moveBody(
58 id_type entity, 58 id_type entity,
59 double x, 59 vec2d newPos);
60 double y);
61 60
62 CollisionResult detectCollisions( 61 CollisionResult detectCollisions(
63 id_type entity, 62 id_type entity,
64 double x, 63 vec2d newPos);
65 double y);
66 64
67 template <typename Param> 65 template <typename Param>
68 void detectCollisionsInDirection( 66 void detectCollisionsInDirection(