[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