[Scummvm-cvs-logs] SF.net SVN: scummvm:[42464] scummvm/branches/gsoc2009-draci/engines/draci
dkasak13 at users.sourceforge.net
dkasak13 at users.sourceforge.net
Tue Jul 14 02:41:17 CEST 2009
Revision: 42464
http://scummvm.svn.sourceforge.net/scummvm/?rev=42464&view=rev
Author: dkasak13
Date: 2009-07-14 00:41:17 +0000 (Tue, 14 Jul 2009)
Log Message:
-----------
Made Game allocate its _info member statically instead of dinamically.
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-13 23:42:37 UTC (rev 42463)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.cpp 2009-07-14 00:41:17 UTC (rev 42464)
@@ -72,24 +72,23 @@
file = initArchive.getFile(3);
Common::MemoryReadStream gameData(file->_data, file->_length);
- _info = new GameInfo();
- _info->_currentRoom = gameData.readByte() - 1;
- _info->_mapRoom = gameData.readByte() - 1;
- _info->_numObjects = gameData.readUint16LE();
- _info->_numIcons = gameData.readUint16LE();
- _info->_numVariables = gameData.readByte();
- _info->_numPersons = gameData.readByte();
- _info->_numDialogs = gameData.readByte();
- _info->_maxIconWidth = gameData.readUint16LE();
- _info->_maxIconHeight = gameData.readUint16LE();
- _info->_musicLength = gameData.readUint16LE();
- _info->_crc[0] = gameData.readUint16LE();
- _info->_crc[1] = gameData.readUint16LE();
- _info->_crc[2] = gameData.readUint16LE();
- _info->_crc[3] = gameData.readUint16LE();
+ _info._currentRoom = gameData.readByte() - 1;
+ _info._mapRoom = gameData.readByte() - 1;
+ _info._numObjects = gameData.readUint16LE();
+ _info._numIcons = gameData.readUint16LE();
+ _info._numVariables = gameData.readByte();
+ _info._numPersons = gameData.readByte();
+ _info._numDialogs = gameData.readByte();
+ _info._maxIconWidth = gameData.readUint16LE();
+ _info._maxIconHeight = gameData.readUint16LE();
+ _info._musicLength = gameData.readUint16LE();
+ _info._crc[0] = gameData.readUint16LE();
+ _info._crc[1] = gameData.readUint16LE();
+ _info._crc[2] = gameData.readUint16LE();
+ _info._crc[3] = gameData.readUint16LE();
- _info->_numDialogBlocks = curOffset;
+ _info._numDialogBlocks = curOffset;
// Read in variables
@@ -128,11 +127,11 @@
_objects[i]._location = (~(1 << 7) & tmp) - 1;
}
- assert(numDialogs == _info->_numDialogs);
- assert(numPersons == _info->_numPersons);
- assert(numVariables == _info->_numVariables);
- assert(numObjects == _info->_numObjects);
- assert(numIcons == _info->_numIcons);
+ assert(numDialogs == _info._numDialogs);
+ assert(numPersons == _info._numPersons);
+ assert(numVariables == _info._numVariables);
+ assert(numObjects == _info._numObjects);
+ assert(numIcons == _info._numIcons);
}
void Game::init() {
@@ -172,7 +171,7 @@
_currentRoom._escRoom = roomReader.readByte() - 1;
_currentRoom._numGates = roomReader.readByte();
- for (uint i = 0; i < _info->_numObjects; ++i) {
+ for (uint i = 0; i < _info._numObjects; ++i) {
debugC(1, kDraciLogicDebugLevel,
"Checking if object %d (%d) is at the current location (%d)", i,
_objects[i]._location, roomNum);
@@ -186,7 +185,7 @@
// Run the init scripts for room objects
// We can't do this in the above loop because some objects' scripts reference
// other objects that may not yet be loaded
- for (uint i = 0; i < _info->_numObjects; ++i) {
+ for (uint i = 0; i < _info._numObjects; ++i) {
if (_objects[i]._location == roomNum) {
_vm->_script->run(getObject(i)->_program, getObject(i)->_init);
}
@@ -328,7 +327,7 @@
int oldRoomNum = _currentRoom._roomNum;
- for (uint i = 0; i < _info->_numObjects; ++i) {
+ for (uint i = 0; i < _info._numObjects; ++i) {
GameObject *obj = &_objects[i];
if (i != 0 && obj->_location == oldRoomNum) {
@@ -366,7 +365,6 @@
delete[] _dialogOffsets;
delete[] _iconStatus;
delete[] _objects;
- delete _info;
}
GameObject::~GameObject() {
Modified: scummvm/branches/gsoc2009-draci/engines/draci/game.h
===================================================================
--- scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-07-13 23:42:37 UTC (rev 42463)
+++ scummvm/branches/gsoc2009-draci/engines/draci/game.h 2009-07-14 00:41:17 UTC (rev 42464)
@@ -147,7 +147,7 @@
private:
DraciEngine *_vm;
int *_variables;
- GameInfo *_info;
+ GameInfo _info;
Person *_persons;
uint16 *_dialogOffsets;
byte *_iconStatus;
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