aboutsummaryrefslogtreecommitdiff
path: root/engines/supernova/state.cpp
diff options
context:
space:
mode:
authorThierry Crozat2017-11-01 01:00:50 +0000
committerThierry Crozat2018-01-23 02:15:36 +0000
commitf98fcd139b61b2816b30c405ac103dd8e3c5c495 (patch)
tree389e2fba59883ab619a78e61c6376ff3f5cb5a3f /engines/supernova/state.cpp
parent29397932af20e43ff63a8d551ead01333cc9db0e (diff)
downloadscummvm-rg350-f98fcd139b61b2816b30c405ac103dd8e3c5c495.tar.gz
scummvm-rg350-f98fcd139b61b2816b30c405ac103dd8e3c5c495.tar.bz2
scummvm-rg350-f98fcd139b61b2816b30c405ac103dd8e3c5c495.zip
SUPERNOVA: Fix screen shake
OSystem::setShakePos(int) can only take positive offset (as documented). Passing a negative offset caused memory issues in the drawing code and some random crashes.
Diffstat (limited to 'engines/supernova/state.cpp')
-rw-r--r--engines/supernova/state.cpp7
1 files changed, 2 insertions, 5 deletions
diff --git a/engines/supernova/state.cpp b/engines/supernova/state.cpp
index 646bdaa0b4..812cf1a0af 100644
--- a/engines/supernova/state.cpp
+++ b/engines/supernova/state.cpp
@@ -1030,15 +1030,12 @@ void GameManager::handleTime() {
}
void GameManager::screenShake() {
- // STUB
for (int i = 0; i < 12; ++i) {
- _vm->_system->setShakePos(4);
+ _vm->_system->setShakePos(8);
wait2(1);
- _vm->_system->setShakePos(-4);
+ _vm->_system->setShakePos(0);
wait2(1);
}
-
- _vm->_system->setShakePos(0);
}
void GameManager::shock() {