summary refs log tree commit diff stats
path: root/src/systems/orienting.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/systems/orienting.cpp')
-rw-r--r--src/systems/orienting.cpp32
1 files changed, 8 insertions, 24 deletions
diff --git a/src/systems/orienting.cpp b/src/systems/orienting.cpp index d73ddd2..a2be34f 100644 --- a/src/systems/orienting.cpp +++ b/src/systems/orienting.cpp
@@ -20,30 +20,6 @@ void OrientingSystem::tick(double)
20 auto& ponderable = game_.getEntityManager(). 20 auto& ponderable = game_.getEntityManager().
21 getComponent<PonderableComponent>(entity); 21 getComponent<PonderableComponent>(entity);
22 22
23 switch (orientable.getWalkState())
24 {
25 case OrientableComponent::WalkState::still:
26 {
27 ponderable.vel.x() = 0.0;
28
29 break;
30 }
31
32 case OrientableComponent::WalkState::left:
33 {
34 ponderable.vel.x() = -WALK_SPEED;
35
36 break;
37 }
38
39 case OrientableComponent::WalkState::right:
40 {
41 ponderable.vel.x() = WALK_SPEED;
42
43 break;
44 }
45 }
46
47 if (orientable.isJumping() && (ponderable.vel.y() > 0)) 23 if (orientable.isJumping() && (ponderable.vel.y() > 0))
48 { 24 {
49 orientable.setJumping(false); 25 orientable.setJumping(false);
@@ -62,6 +38,8 @@ void OrientingSystem::moveLeft(id_type entity)
62 orientable.setFacingRight(false); 38 orientable.setFacingRight(false);
63 orientable.setWalkState(OrientableComponent::WalkState::left); 39 orientable.setWalkState(OrientableComponent::WalkState::left);
64 40
41 ponderable.targetVel.x() = -WALK_SPEED;
42
65 auto& animating = game_.getSystemManager().getSystem<AnimatingSystem>(); 43 auto& animating = game_.getSystemManager().getSystem<AnimatingSystem>();
66 if (ponderable.grounded) 44 if (ponderable.grounded)
67 { 45 {
@@ -82,6 +60,8 @@ void OrientingSystem::moveRight(id_type entity)
82 orientable.setFacingRight(true); 60 orientable.setFacingRight(true);
83 orientable.setWalkState(OrientableComponent::WalkState::right); 61 orientable.setWalkState(OrientableComponent::WalkState::right);
84 62
63 ponderable.targetVel.x() = WALK_SPEED;
64
85 auto& animating = game_.getSystemManager().getSystem<AnimatingSystem>(); 65 auto& animating = game_.getSystemManager().getSystem<AnimatingSystem>();
86 if (ponderable.grounded) 66 if (ponderable.grounded)
87 { 67 {
@@ -93,10 +73,14 @@ void OrientingSystem::moveRight(id_type entity)
93 73
94void OrientingSystem::stopWalking(id_type entity) 74void OrientingSystem::stopWalking(id_type entity)
95{ 75{
76 auto& ponderable = game_.getEntityManager().
77 getComponent<PonderableComponent>(entity);
78
96 auto& orientable = game_.getEntityManager(). 79 auto& orientable = game_.getEntityManager().
97 getComponent<OrientableComponent>(entity); 80 getComponent<OrientableComponent>(entity);
98 81
99 orientable.setWalkState(OrientableComponent::WalkState::still); 82 orientable.setWalkState(OrientableComponent::WalkState::still);
83 ponderable.targetVel.x() = 0;
100 84
101 auto& animating = game_.getSystemManager().getSystem<AnimatingSystem>(); 85 auto& animating = game_.getSystemManager().getSystem<AnimatingSystem>();
102 86