[Scummvm-cvs-logs] SF.net SVN: scummvm: [24118] scummvm/trunk/engines/agos

kirben at users.sourceforge.net kirben at users.sourceforge.net
Thu Oct 5 03:18:05 CEST 2006


Revision: 24118
          http://svn.sourceforge.net/scummvm/?rev=24118&view=rev
Author:   kirben
Date:     2006-10-04 18:17:59 -0700 (Wed, 04 Oct 2006)

Log Message:
-----------
Reduce memory required by each game, and add safety checks

Modified Paths:
--------------
    scummvm/trunk/engines/agos/agos.cpp
    scummvm/trunk/engines/agos/agos.h

Modified: scummvm/trunk/engines/agos/agos.cpp
===================================================================
--- scummvm/trunk/engines/agos/agos.cpp	2006-10-05 00:16:50 UTC (rev 24117)
+++ scummvm/trunk/engines/agos/agos.cpp	2006-10-05 01:17:59 UTC (rev 24118)
@@ -548,6 +548,7 @@
 #else
 		_vgaMemSize = gVars->memory[kMemSimon2Games];
 #endif
+		_itemMemSize = 20000;
 		_tableMemSize = 200000;
 		_frameRate = 1;
 		_vgaBaseDelay = 5;
@@ -561,6 +562,7 @@
 #else
 		_vgaMemSize = gVars->memory[kMemSimon2Games];
 #endif
+		_itemMemSize = 20000;
 		_tableMemSize = 200000;
 		_frameRate = 1;
 		_vgaBaseDelay = 5;
@@ -576,6 +578,7 @@
 #else
 		_vgaMemSize = gVars->memory[kMemSimon2Games];
 #endif
+		_itemMemSize = 20000;
 		_tableMemSize = 100000;
 		// Check whether to use MT-32 MIDI tracks in Simon the Sorcerer 2
 		if ((getGameType() == GType_SIMON2) && _native_mt32)
@@ -597,7 +600,8 @@
 #else
 		_vgaMemSize = gVars->memory[kMemSimon1Games];
 #endif
-		_tableMemSize = 150000;
+		_itemMemSize = 20000;
+		_tableMemSize = 50000;
 		_musicIndexBase = 1316 / 4;
 		_soundIndexBase = 0;
 		_frameRate = 1;
@@ -612,7 +616,8 @@
 #else
 		_vgaMemSize = gVars->memory[kMemSimon1Games];
 #endif
-		_tableMemSize = 150000;
+		_itemMemSize = 64000;
+		_tableMemSize = 50000;
 		_frameRate = 4;
 		_vgaBaseDelay = 1;
 		_numVars = 255;
@@ -625,6 +630,7 @@
 #else
 		_vgaMemSize = gVars->memory[kMemSimon1Games];
 #endif
+		_itemMemSize = 64000;
 		_tableMemSize = 50000;
 		_frameRate = 4;
 		_vgaBaseDelay = 1;
@@ -638,7 +644,8 @@
 #else
 		_vgaMemSize = gVars->memory[kMemSimon1Games];
 #endif
-		_tableMemSize = 150000;
+		_itemMemSize = 64000;
+		_tableMemSize = 50000;
 		_frameRate = 4;
 		_vgaBaseDelay = 1;
 		_numVars = 512;
@@ -649,8 +656,10 @@
 	initMouse();
 
 	_variableArray = (int16 *)calloc(_numVars, sizeof(int16));
-	_variableArray2 = (int16 *)calloc(_numVars, sizeof(int16));
 	_variableArrayPtr = _variableArray;
+	if (getGameType() == GType_FF || getGameType() == GType_PP) {
+		_variableArray2 = (int16 *)calloc(_numVars, sizeof(int16));
+	}
 
 	setupOpcodes();
 	setupVgaOpcodes();
@@ -802,15 +811,19 @@
 }
 
 void AGOSEngine::allocItemHeap() {
-	_itemHeapSize = 64000;
+	_itemHeapSize = _itemMemSize;
 	_itemHeapCurPos = 0;
-	_itemHeapPtr = (byte *)calloc(64000, 1);
+	_itemHeapPtr = (byte *)calloc(_itemMemSize, 1);
+	if (!_itemHeapPtr)
+		error("Out Of Memory - Items");
 }
 
 void AGOSEngine::allocTablesHeap() {
 	_tablesHeapSize = _tableMemSize;
 	_tablesHeapCurPos = 0;
 	_tablesHeapPtr = (byte *)calloc(_tableMemSize, 1);
+	if (!_tablesHeapPtr)
+		error("Out Of Memory - Tables");
 }
 
 void AGOSEngine::setItemState(Item *item, int value) {

Modified: scummvm/trunk/engines/agos/agos.h
===================================================================
--- scummvm/trunk/engines/agos/agos.h	2006-10-05 00:16:50 UTC (rev 24117)
+++ scummvm/trunk/engines/agos/agos.h	2006-10-05 01:17:59 UTC (rev 24118)
@@ -194,14 +194,18 @@
 
 	uint32 *_gameOffsetsPtr;
 
+	uint _numVars;
 	uint _vgaBaseDelay;
+
+	uint _musicIndexBase;
+	uint _soundIndexBase;
 	uint _tableIndexBase;
 	uint _textIndexBase;
+
+	uint _itemMemSize;
+	uint _tableMemSize;
 	uint _vgaMemSize;
-	uint _tableMemSize;
-	uint _musicIndexBase;
-	uint _soundIndexBase;
-	uint _numVars;
+
 	const GameSpecificSettings *gss;
 
 	byte _keyPressed;


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