[Scummvm-cvs-logs] SF.net SVN: scummvm:[42582] scummvm/branches/gsoc2009-draci/engines/draci/ game.cpp
dkasak13 at users.sourceforge.net
dkasak13 at users.sourceforge.net
Sat Jul 18 05:05:20 CEST 2009
Revision: 42582
http://scummvm.svn.sourceforge.net/scummvm/?rev=42582&view=rev
Author: dkasak13
Date: 2009-07-18 03:05:20 +0000 (Sat, 18 Jul 2009)
Log Message:
-----------
Fixed a bug where the cursor was not shown when the first room is loaded and has mouse enabled.
Modified Paths:
--------------
scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-07-18 03:00:12 UTC (rev 42581)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-07-18 03:05:20 UTC (rev 42582)
@@ -157,8 +157,6 @@
_currentRoom._roomNum = _info._startRoom;
changeRoom(_info._startRoom);
-
- _vm->_mouse->setCursorType(kNormalCursor);
}
void Game::loop() {
@@ -237,21 +235,15 @@
debugC(4, kDraciLogicDebugLevel, "EscRoom: %d", _currentRoom._escRoom);
debugC(4, kDraciLogicDebugLevel, "Gates: %d", _currentRoom._numGates);
- // Set cursor state
- if (_currentRoom._mouseOn) {
- debugC(6, kDraciLogicDebugLevel, "Mouse: ON");
- _vm->_mouse->cursorOn();
- } else {
- debugC(6, kDraciLogicDebugLevel, "Mouse: OFF");
- _vm->_mouse->cursorOff();
- }
+ // Read in the gates' numbers
Common::Array<int> gates;
for (uint i = 0; i < _currentRoom._numGates; ++i) {
gates.push_back(roomReader.readSint16LE());
}
+ // Load the room's objects
for (uint i = 0; i < _info._numObjects; ++i) {
debugC(7, kDraciLogicDebugLevel,
"Checking if object %d (%d) is at the current location (%d)", i,
@@ -274,6 +266,7 @@
}
}
+ // Load the room's GPL program and run the init part
f = _vm->_roomsArchive->getFile(roomNum * 4 + 3);
_currentRoom._program._bytecode = f->_data;
_currentRoom._program._length = f->_length;
@@ -288,9 +281,22 @@
_vm->_script->run(_currentRoom._program, gates[i]);
}
+ // Set room palette
f = _vm->_paletteArchive->getFile(_currentRoom._palette);
_vm->_screen->setPalette(f->_data, 0, kNumColours);
+ // Set cursor state
+ // Need to do this after we set the palette since the cursors use it
+ if (_currentRoom._mouseOn) {
+ debugC(6, kDraciLogicDebugLevel, "Mouse: ON");
+ _vm->_mouse->cursorOn();
+ } else {
+ debugC(6, kDraciLogicDebugLevel, "Mouse: OFF");
+ _vm->_mouse->cursorOff();
+ }
+
+ _vm->_mouse->setCursorType(kNormalCursor);
+
// HACK: Create a visible overlay from the walking map so we can test it
byte *wlk = new byte[kScreenWidth * kScreenHeight];
memset(wlk, 255, kScreenWidth * kScreenHeight);
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list