make mouse move to middle of screen at start and let skystate initialize its _objectList

svn-id: r8335
This commit is contained in:
Robert Göffringmann 2003-06-05 20:37:52 +00:00
parent 98b3712163
commit 4a934a5519
2 changed files with 7 additions and 2 deletions

View file

@ -59,6 +59,8 @@ SkyLogic::SkyLogic(SkyScreen *skyScreen, SkyDisk *skyDisk, SkyText *skyText, Sky
_skyGrid = new SkyGrid(_skyDisk); _skyGrid = new SkyGrid(_skyDisk);
_skyAutoRoute = new SkyAutoRoute(_skyGrid); _skyAutoRoute = new SkyAutoRoute(_skyGrid);
memset(_objectList, 0, 30 * sizeof(uint32));
for (int i = 0; i < ARRAYSIZE(_moduleList); i++) for (int i = 0; i < ARRAYSIZE(_moduleList); i++)
_moduleList[i] = 0; _moduleList[i] = 0;
_stackPtr = 0; _stackPtr = 0;
@ -1713,6 +1715,7 @@ bool SkyLogic::fnStartMenu(uint32 firstObject, uint32 b, uint32 c) {
for (i = 0; i < ARRAYSIZE(_objectList); i++) { for (i = 0; i < ARRAYSIZE(_objectList); i++) {
if (_objectList[i]) if (_objectList[i])
(SkyState::fetchCompact(_objectList[i]))->status = ST_LOGIC; (SkyState::fetchCompact(_objectList[i]))->status = ST_LOGIC;
else break;
} }
// (5) NOW FIND OUT WHICH OBJECT TO START THE DISPLAY FROM (depending on scroll offset) // (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 // (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++) { for (i = 0; i < 11; i++) {
cpt = SkyState::fetchCompact( cpt = SkyState::fetchCompact(
_objectList[_scriptVariables[SCROLL_OFFSET] + i]); _objectList[_scriptVariables[SCROLL_OFFSET] + i]);

View file

@ -120,8 +120,10 @@ bool SkyMouse::fnAddHuman(void) {
_tMouseX = _newSafeX; _tMouseX = _newSafeX;
_tMouseY = _newSafeY; _tMouseY = _newSafeY;
if (_aMouseY < 2) //stop mouse activating top line if (_aMouseY < 2) { //stop mouse activating top line
_aMouseY = 2; _aMouseY = 2;
_system->warp_mouse(GAME_SCREEN_WIDTH / 2, GAME_SCREEN_HEIGHT / 2);
}
//force the pointer engine into running a get-off //force the pointer engine into running a get-off
//even if it's over nothing //even if it's over nothing