[Scummvm-cvs-logs] SF.net SVN: scummvm:[42036] scummvm/branches/gsoc2009-draci/engines/draci
dkasak13 at users.sourceforge.net
dkasak13 at users.sourceforge.net
Thu Jul 2 22:29:15 CEST 2009
Revision: 42036
http://scummvm.svn.sourceforge.net/scummvm/?rev=42036&view=rev
Author: dkasak13
Date: 2009-07-02 20:29:14 +0000 (Thu, 02 Jul 2009)
Log Message:
-----------
Added Game::changeRoom() method and Game::_currentRoom.
Modified Paths:
--------------
scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
scummvm/branches/gsoc2009-draci/engines/draci/game.h
Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.cpp
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-07-02 19:57:09 UTC (rev 42035)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-07-02 20:29:14 UTC (rev 42036)
@@ -134,7 +134,7 @@
loadObject(1);
_vm->_script->run(getObject(1)->_program, getObject(1)->_init);
- // changeRoom(_currentRoom);
+ changeRoom(_info->_currentRoom);
}
void Game::loadObject(uint16 objNum) {
@@ -189,6 +189,38 @@
return _objects + objNum;
}
+void Game::changeRoom(uint16 roomNum) {
+
+ // Convert to real index (indexes begin with 1 in the data files)
+ roomNum -= 1;
+
+ BAFile *f;
+ f = _vm->_roomsArchive->getFile(roomNum);
+ Common::MemoryReadStream roomReader(f->_data, f->_length);
+
+ roomReader.readUint32LE(); // Pointer to room program, not used
+ roomReader.readUint16LE(); // Program length, not used
+ roomReader.readUint32LE(); // Pointer to room title, not used
+
+ _currentRoom._music = roomReader.readByte();
+ _currentRoom._map = roomReader.readByte();
+ _currentRoom._palette = roomReader.readByte();
+ _currentRoom._numMasks = roomReader.readUint16LE();
+ _currentRoom._init = roomReader.readUint16LE();
+ _currentRoom._look = roomReader.readUint16LE();
+ _currentRoom._use = roomReader.readUint16LE();
+ _currentRoom._canUse = roomReader.readUint16LE();
+ _currentRoom._imInit = roomReader.readByte();
+ _currentRoom._imLook = roomReader.readByte();
+ _currentRoom._imUse = roomReader.readByte();
+ _currentRoom._mouseOn = roomReader.readByte();
+ _currentRoom._heroOn = roomReader.readByte();
+ roomReader.read(&_currentRoom._pers0, 12);
+ roomReader.read(&_currentRoom._persStep, 12);
+ _currentRoom._escRoom = roomReader.readByte();
+ _currentRoom._numGates = roomReader.readByte();
+}
+
Game::~Game() {
delete[] _persons;
delete[] _variables;
Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-07-02 19:57:09 UTC (rev 42035)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-07-02 20:29:14 UTC (rev 42036)
@@ -105,9 +105,11 @@
int16 *_variables;
byte *_itemStatus;
GameObject *_objects;
-
+ Room _currentRoom;
+
void loadObject(uint16 numObj);
GameObject *getObject(uint16 objNum);
+ void changeRoom(uint16 roomNum);
};
} // End of namespace Draci
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