summaryrefslogtreecommitdiffstats
path: root/src/control/MapContext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/control/MapContext.cpp')
-rw-r--r--src/control/MapContext.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/control/MapContext.cpp b/src/control/MapContext.cpp
index f5d4c05..1b0e721 100644
--- a/src/control/MapContext.cpp
+++ b/src/control/MapContext.cpp
@@ -71,6 +71,15 @@ void MapContext::movePlayerContinue(uint64_t time) {
movePlayer(Model::Direction::WEST, time);
}
+void MapContext::interact(uint64_t time) {
+ Model::Position<int> p = map.getEntityPosition(playerEntity) + playerEntity->getDirection();
+ Model::Entity *target = map.getEntityAt(p);
+
+ if (!target)
+ return;
+
+ target->interact(time);
+}
void MapContext::keyPressed(uint16_t key, uint64_t time) {
switch (key) {
@@ -88,6 +97,10 @@ void MapContext::keyPressed(uint16_t key, uint64_t time) {
case SDL_SCANCODE_LEFT:
movePlayer(Model::Direction::WEST, time);
+ break;
+
+ case SDL_SCANCODE_SPACE:
+ interact(time);
}
}