summary refs log tree commit diff stats
path: root/src/direction.h
diff options
context:
space:
mode:
authorKelly Rauchenberger <fefferburbia@gmail.com>2021-03-05 20:50:51 -0500
committerKelly Rauchenberger <fefferburbia@gmail.com>2021-03-05 20:50:51 -0500
commit1c462ef3780b33468ed93dde3ab6178765807ffe (patch)
tree6ee2f34ed3514c10d146c91b0e8e935cf9d1ccb6 /src/direction.h
parent937875c4e1432b418f0f5051759e02c8d4c9ffa4 (diff)
downloadtanetane-1c462ef3780b33468ed93dde3ab6178765807ffe.tar.gz
tanetane-1c462ef3780b33468ed93dde3ab6178765807ffe.tar.bz2
tanetane-1c462ef3780b33468ed93dde3ab6178765807ffe.zip
Added MirrorSystem
This is really just for letting one sprite mirror another's movement and animation. I tried doing it in the BehaviourSystem, but you get stuttering if you do it earlier in the loop than the CharacterSystem, so I ended up having to make a new system just for this thing that will not happen very often.
Diffstat (limited to 'src/direction.h')
-rw-r--r--src/direction.h13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/direction.h b/src/direction.h index 432f7a9..325bcaf 100644 --- a/src/direction.h +++ b/src/direction.h
@@ -65,6 +65,19 @@ inline Direction oppositeDirection(Direction value) {
65 } 65 }
66} 66}
67 67
68inline Direction directionMirroredVertically(Direction value) {
69 switch (value) {
70 case Direction::up: return Direction::down;
71 case Direction::up_right: return Direction::down_right;
72 case Direction::right: return Direction::right;
73 case Direction::down_right: return Direction::up_right;
74 case Direction::down: return Direction::up;
75 case Direction::down_left: return Direction::up_left;
76 case Direction::left: return Direction::left;
77 case Direction::up_left: return Direction::down_left;
78 }
79}
80
68inline Direction directionFacingPoint(vec2i point) { 81inline Direction directionFacingPoint(vec2i point) {
69 double theta = atan2(-point.y(), point.x()); 82 double theta = atan2(-point.y(), point.x());
70 theta /= M_PI; 83 theta /= M_PI;