diff options
| author | Robert Göffringmann | 2003-06-05 20:37:52 +0000 |
|---|---|---|
| committer | Robert Göffringmann | 2003-06-05 20:37:52 +0000 |
| commit | 4a934a5519484031c4d9a644837ca6ad3d7a753c (patch) | |
| tree | 531771d5513efc4f2ccc6bd22e457b0d6e6ef666 | |
| parent | 98b37121630df40210cac231867c6b0799692930 (diff) | |
| download | scummvm-rg350-4a934a5519484031c4d9a644837ca6ad3d7a753c.tar.gz scummvm-rg350-4a934a5519484031c4d9a644837ca6ad3d7a753c.tar.bz2 scummvm-rg350-4a934a5519484031c4d9a644837ca6ad3d7a753c.zip | |
make mouse move to middle of screen at start and let skystate initialize its _objectList
svn-id: r8335
| -rw-r--r-- | sky/logic.cpp | 5 | ||||
| -rw-r--r-- | sky/mouse.cpp | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/sky/logic.cpp b/sky/logic.cpp index 59e56c55f6..f740f02b38 100644 --- a/sky/logic.cpp +++ b/sky/logic.cpp @@ -59,6 +59,8 @@ SkyLogic::SkyLogic(SkyScreen *skyScreen, SkyDisk *skyDisk, SkyText *skyText, Sky _skyGrid = new SkyGrid(_skyDisk); _skyAutoRoute = new SkyAutoRoute(_skyGrid); + memset(_objectList, 0, 30 * sizeof(uint32)); + for (int i = 0; i < ARRAYSIZE(_moduleList); i++) _moduleList[i] = 0; _stackPtr = 0; @@ -1713,6 +1715,7 @@ bool SkyLogic::fnStartMenu(uint32 firstObject, uint32 b, uint32 c) { for (i = 0; i < ARRAYSIZE(_objectList); i++) { if (_objectList[i]) (SkyState::fetchCompact(_objectList[i]))->status = ST_LOGIC; + else break; } // (5) NOW FIND OUT WHICH OBJECT TO START THE DISPLAY FROM (depending on scroll offset) @@ -1724,7 +1727,7 @@ bool SkyLogic::fnStartMenu(uint32 firstObject, uint32 b, uint32 c) { // (6) AND FINALLY, INITIALISE THE 11 OBJECTS SO THEY APPEAR ON SCREEEN - uint16 rollingX = 128 + 28; + uint16 rollingX = TOP_LEFT_X + 28; for (i = 0; i < 11; i++) { cpt = SkyState::fetchCompact( _objectList[_scriptVariables[SCROLL_OFFSET] + i]); diff --git a/sky/mouse.cpp b/sky/mouse.cpp index f702c41828..57b2edfff1 100644 --- a/sky/mouse.cpp +++ b/sky/mouse.cpp @@ -120,8 +120,10 @@ bool SkyMouse::fnAddHuman(void) { _tMouseX = _newSafeX; _tMouseY = _newSafeY; - if (_aMouseY < 2) //stop mouse activating top line + if (_aMouseY < 2) { //stop mouse activating top line _aMouseY = 2; + _system->warp_mouse(GAME_SCREEN_WIDTH / 2, GAME_SCREEN_HEIGHT / 2); + } //force the pointer engine into running a get-off //even if it's over nothing |
