summary refs log tree commit diff stats
path: root/src/systems/playing.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/systems/playing.cpp')
-rw-r--r--src/systems/playing.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/src/systems/playing.cpp b/src/systems/playing.cpp index 40d9706..5077f8a 100644 --- a/src/systems/playing.cpp +++ b/src/systems/playing.cpp
@@ -5,6 +5,7 @@
5#include "components/playable.h" 5#include "components/playable.h"
6#include "components/controllable.h" 6#include "components/controllable.h"
7#include "components/orientable.h" 7#include "components/orientable.h"
8#include "components/mappable.h"
8#include "systems/mapping.h" 9#include "systems/mapping.h"
9#include "systems/pondering.h" 10#include "systems/pondering.h"
10#include "systems/orienting.h" 11#include "systems/orienting.h"
@@ -84,7 +85,8 @@ void PlayingSystem::initPlayer()
84 85
85 game_.getSystemManager().getSystem<PonderingSystem>().initializeBody( 86 game_.getSystemManager().getSystem<PonderingSystem>().initializeBody(
86 player, 87 player,
87 PonderableComponent::Type::freefalling); 88 PonderableComponent::BodyType::freefalling,
89 PonderableComponent::ColliderType::player);
88 90
89 game_.getEntityManager().emplaceComponent<ControllableComponent>(player); 91 game_.getEntityManager().emplaceComponent<ControllableComponent>(player);
90 game_.getEntityManager().emplaceComponent<OrientableComponent>(player); 92 game_.getEntityManager().emplaceComponent<OrientableComponent>(player);
@@ -173,3 +175,32 @@ void PlayingSystem::die()
173 }); 175 });
174 } 176 }
175} 177}
178
179void PlayingSystem::save()
180{
181 playSound("res/Pickup_Coin23.wav", 0.25);
182
183 auto players = game_.getEntityManager().getEntitiesWithComponents<
184 TransformableComponent,
185 PlayableComponent>();
186
187 auto maps = game_.getEntityManager().getEntitiesWithComponents<
188 MappableComponent>();
189
190 auto& mappable = game_.getEntityManager().
191 getComponent<MappableComponent>(*maps.begin());
192
193 for (id_type player : players)
194 {
195 auto& transformable = game_.getEntityManager().
196 getComponent<TransformableComponent>(player);
197
198 auto& playable = game_.getEntityManager().
199 getComponent<PlayableComponent>(player);
200
201 playable.checkpointMapId = mappable.getMapId();
202 playable.checkpointX = transformable.getX();
203 playable.checkpointY = transformable.getY();
204 playable.checkpointObjectActivated = false;
205 }
206}