aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Göffringmann2003-06-30 16:59:41 +0000
committerRobert Göffringmann2003-06-30 16:59:41 +0000
commitb421c9fde992191f61f324e9741875e3667a7a87 (patch)
tree9f53ca3fa4ab9b44d480abb7720e1760ac020d03
parent1f0c925c2b953c2832f478307ece40f9eb50058c (diff)
downloadscummvm-rg350-b421c9fde992191f61f324e9741875e3667a7a87.tar.gz
scummvm-rg350-b421c9fde992191f61f324e9741875e3667a7a87.tar.bz2
scummvm-rg350-b421c9fde992191f61f324e9741875e3667a7a87.zip
finally fixed this stupid animation bug
svn-id: r8675
-rw-r--r--sky/logic.cpp3
-rw-r--r--sky/screen.cpp8
2 files changed, 9 insertions, 2 deletions
diff --git a/sky/logic.cpp b/sky/logic.cpp
index efb1dc7f23..c18ca5b6ec 100644
--- a/sky/logic.cpp
+++ b/sky/logic.cpp
@@ -697,7 +697,7 @@ bool SkyLogic::collide(Compact *cpt) {
x -= m1->colOffset; // compensate for inner x offsets
x += m2->colOffset;
- if ((x + m2->colWidth) >= _compact->xcood) // their rightmoast
+ if ((x + m2->colWidth) < _compact->xcood) // their rightmoast
return false;
x -= m1->colWidth; // our left, their right
@@ -1280,6 +1280,7 @@ bool SkyLogic::fnCacheFast(uint32 a, uint32 b, uint32 c) {
bool SkyLogic::fnDrawScreen(uint32 a, uint32 b, uint32 c) {
debug(5, "Call: fnDrawScreen(%X, %X)\n",a,b);
+ SkyState::_systemVars.currentPalette = a;
_skyScreen->fnDrawScreen(a, b);
return true;
}
diff --git a/sky/screen.cpp b/sky/screen.cpp
index 7b5b175617..324ed0500e 100644
--- a/sky/screen.cpp
+++ b/sky/screen.cpp
@@ -300,6 +300,12 @@ void SkyScreen::fnFadeUp(uint32 palNum, uint32 scroll) {
//_currentScreen points to new screen,
//_scrollScreen points to graphic showing old room
+ if (scroll == 13) scroll = 123; // script bug (?) in lower area
+ if ((scroll != 123) && (scroll != 321) && (scroll)) {
+ warning("unknown scroll parameter %d",scroll);
+ scroll = 0;
+ }
+
if ((scroll == 0) || (SkyState::_systemVars.systemFlags & SF_NO_SCROLL)) {
uint8 *palette = (uint8*)SkyState::fetchCompact(palNum);
if (palette == NULL)
@@ -350,7 +356,7 @@ void SkyScreen::fnFadeUp(uint32 palNum, uint32 scroll) {
}
showScreen(_currentScreen);
free(_scrollScreen);
- } else error("Unknown scroll parameter: %d\n",scroll);
+ }
}
void SkyScreen::waitForTimer(void) {