From 3f6a071f6728b4d08553220d4174018a4080b176 Mon Sep 17 00:00:00 2001 From: Kelly Rauchenberger Date: Sun, 7 Feb 2021 22:20:48 -0500 Subject: Added "no problem here" --- src/input_system.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/input_system.cpp') diff --git a/src/input_system.cpp b/src/input_system.cpp index 5133e27..5158724 100644 --- a/src/input_system.cpp +++ b/src/input_system.cpp @@ -34,12 +34,19 @@ void InputSystem::tick(double dt) { game_.getSystem().advanceText(); } else { // Otherwise, check if there is a sprite in front of the player. + bool inFrontOfSomething = false; + bool activated = false; + for (int spriteId : game_.getSprites()) { Sprite& sprite = game_.getSprite(spriteId); if (sprite.controllable) { vec2i checkLoc = sprite.loc + (unitVecInDirection(sprite.dir) * MOVEMENT_SPEED); CollisionResult collision = game_.getSystem().checkCollision(spriteId, checkLoc, sprite.dir); + if (collision.horiz.blocked || collision.vert.blocked) { + inFrontOfSomething = true; + } + // If there is a sprite to be interacted with, rotate that sprite so it is facing the player. // Then, run its interaction script if present. if (collision.horiz.colliderSprite != -1) { @@ -48,6 +55,7 @@ void InputSystem::tick(double dt) { Sprite& collider = game_.getSprite(collision.horiz.colliderSprite); if (collider.interactionScript != "") { game_.getSystem().runScript(collider.interactionScript); + activated = true; } } else if (collision.vert.colliderSprite != -1) { game_.getSystem().setSpriteDirection(collision.vert.colliderSprite, oppositeDirection(sprite.dir)); @@ -55,10 +63,15 @@ void InputSystem::tick(double dt) { Sprite& collider = game_.getSprite(collision.vert.colliderSprite); if (collider.interactionScript != "") { game_.getSystem().runScript(collider.interactionScript); + activated = true; } } } } + + if (inFrontOfSomething && !activated) { + game_.getSystem().runScript("default"); + } } } } else if (e.type == SDL_KEYUP && (e.key.keysym.sym == SDLK_LSHIFT || e.key.keysym.sym == SDLK_RSHIFT)) { -- cgit 1.4.1