aboutsummaryrefslogtreecommitdiff
path: root/sky/screen.cpp
diff options
context:
space:
mode:
authorRobert Göffringmann2003-07-08 22:27:17 +0000
committerRobert Göffringmann2003-07-08 22:27:17 +0000
commit4fb3e9a448cb30e89e1de0e49bb83d32ef27c62d (patch)
tree66dfac1d1364356621c7bf121f9fdd139d9ebf00 /sky/screen.cpp
parent3d9b20bb86dc76ba7efa15bb90fa07fc6f1ea663 (diff)
downloadscummvm-rg350-4fb3e9a448cb30e89e1de0e49bb83d32ef27c62d.tar.gz
scummvm-rg350-4fb3e9a448cb30e89e1de0e49bb83d32ef27c62d.tar.bz2
scummvm-rg350-4fb3e9a448cb30e89e1de0e49bb83d32ef27c62d.zip
another fix for the swing seqs
svn-id: r8869
Diffstat (limited to 'sky/screen.cpp')
-rw-r--r--sky/screen.cpp12
1 files changed, 10 insertions, 2 deletions
diff --git a/sky/screen.cpp b/sky/screen.cpp
index 4ab30dafc9..c73978ceb9 100644
--- a/sky/screen.cpp
+++ b/sky/screen.cpp
@@ -422,8 +422,16 @@ void SkyScreen::processSequence(void) {
uint8 gridSta = (uint8)((screenPos / (GAME_SCREEN_WIDTH * 16))*20 + ((screenPos % GAME_SCREEN_WIDTH) >> 4));
uint8 gridEnd = (uint8)(((screenPos+nrToDo) / (GAME_SCREEN_WIDTH * 16))*20 + (((screenPos+nrToDo) % GAME_SCREEN_WIDTH) >> 4));
- for (cnt = gridSta; cnt <= gridEnd; cnt++)
- _seqGrid[cnt] = 1;
+ if (gridEnd >= gridSta)
+ for (cnt = gridSta; cnt <= gridEnd; cnt++)
+ _seqGrid[cnt] = 1;
+ else {
+ for (cnt = gridSta; cnt < (gridSta / 20 + 1) * 20; cnt++)
+ _seqGrid[cnt] = 1;
+ for (cnt = (gridEnd / 20) * 20; cnt <= gridEnd; cnt++)
+ _seqGrid[cnt] = 1;
+ }
+
for (cnt = 0; cnt < nrToDo; cnt++) {
_currentScreen[screenPos] = _seqInfo.seqDataPos[0];
_seqInfo.seqDataPos++;