[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