diff options
author | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-23 10:30:16 -0500 |
---|---|---|
committer | Kelly Rauchenberger <fefferburbia@gmail.com> | 2021-02-23 10:30:16 -0500 |
commit | ae654356f843bb42a3c72d57b528d87aa63cf66d (patch) | |
tree | eea634cf3c6358775bba463a77ce4e2fa6addc7e /src/character_system.cpp | |
parent | 1cf3ccd05b193e6090c3a61c0e2f54524e1a4ba7 (diff) | |
download | tanetane-ae654356f843bb42a3c72d57b528d87aa63cf66d.tar.gz tanetane-ae654356f843bb42a3c72d57b528d87aa63cf66d.tar.bz2 tanetane-ae654356f843bb42a3c72d57b528d87aa63cf66d.zip |
Added a clipping mode (for testing!)
This allows walking through solid objects. It can be enabled and disabled using StartClipping() and StopClipping() in the debug console. It should not be used in any actual scripts.
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 | } |