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 | } |