diff options
Diffstat (limited to 'src/character_system.cpp')
| -rw-r--r-- | src/character_system.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
| diff --git a/src/character_system.cpp b/src/character_system.cpp index 6e15eac..99b6929 100644 --- a/src/character_system.cpp +++ b/src/character_system.cpp | |||
| @@ -117,7 +117,7 @@ void CharacterSystem::tick(double dt) { | |||
| 117 | CollisionResult collision = game_.getSystem<TransformSystem>().checkCollision(spriteId, pLoc, sprite.dir); | 117 | CollisionResult collision = game_.getSystem<TransformSystem>().checkCollision(spriteId, pLoc, sprite.dir); |
| 118 | bool blocked = collision.horiz.blocked || collision.vert.blocked; | 118 | bool blocked = collision.horiz.blocked || collision.vert.blocked; |
| 119 | 119 | ||
| 120 | if (collision.horiz.blocked) { | 120 | if (collision.horiz.blocked && !sprite.clipping) { |
| 121 | pLoc.x() = sprite.loc.x();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; | 121 | pLoc.x() = sprite.loc.x();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; |
| 122 | } else if (collision.horiz.colliderSprite != -1) { | 122 | } else if (collision.horiz.colliderSprite != -1) { |
| 123 | Sprite& collider = game_.getSprite(collision.horiz.colliderSprite); | 123 | Sprite& collider = game_.getSprite(collision.horiz.colliderSprite); |
| @@ -127,7 +127,7 @@ void CharacterSystem::tick(double dt) { | |||
| 127 | } | 127 | } |
| 128 | } | 128 | } |
| 129 | 129 | ||
| 130 | if (collision.vert.blocked) { | 130 | if (collision.vert.blocked && !sprite.clipping) { |
| 131 | pLoc.y() = sprite.loc.y();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; | 131 | pLoc.y() = sprite.loc.y();//(newColPosDR * map.getTileSize() - (collisionBox / 2)).x() - 1; |
| 132 | } else if (collision.vert.colliderSprite != -1) { | 132 | } else if (collision.vert.colliderSprite != -1) { |
| 133 | Sprite& collider = game_.getSprite(collision.vert.colliderSprite); | 133 | Sprite& collider = game_.getSprite(collision.vert.colliderSprite); |
| @@ -137,7 +137,7 @@ void CharacterSystem::tick(double dt) { | |||
| 137 | } | 137 | } |
| 138 | } | 138 | } |
| 139 | 139 | ||
| 140 | if (blocked && sprite.characterState == CharacterState::Running) { | 140 | if (blocked && sprite.characterState == CharacterState::Running && !sprite.clipping) { |
| 141 | stopRunning(spriteId); | 141 | stopRunning(spriteId); |
| 142 | game_.getMixer().playSound("../res/sfx/bump.wav"); | 142 | game_.getMixer().playSound("../res/sfx/bump.wav"); |
| 143 | } | 143 | } |
