diff options
author | Ludvig Strigeus | 2001-11-06 21:41:56 +0000 |
---|---|---|
committer | Ludvig Strigeus | 2001-11-06 21:41:56 +0000 |
commit | bddfc49eeacf84e3fda681a5f239c563b5fa8207 (patch) | |
tree | e296563fd94028d2862c83622ab2bdf3921bddec | |
parent | 78413a1c438ac697cd37e444d1c05461cf8d1f0a (diff) | |
download | scummvm-rg350-bddfc49eeacf84e3fda681a5f239c563b5fa8207.tar.gz scummvm-rg350-bddfc49eeacf84e3fda681a5f239c563b5fa8207.tar.bz2 scummvm-rg350-bddfc49eeacf84e3fda681a5f239c563b5fa8207.zip |
removed some hardcoded constants
svn-id: r3467
-rw-r--r-- | object.cpp | 6 | ||||
-rw-r--r-- | resource.cpp | 33 | ||||
-rw-r--r-- | scumm.h | 4 | ||||
-rw-r--r-- | scummvm.cpp | 20 | ||||
-rw-r--r-- | verbs.cpp | 4 |
5 files changed, 32 insertions, 35 deletions
diff --git a/object.cpp b/object.cpp index 70a5c0045a..233eec3d72 100644 --- a/object.cpp +++ b/object.cpp @@ -493,7 +493,7 @@ void Scumm::removeObjectFromRoom(int obj) { void Scumm::addObjectToDrawQue(int object) { _drawObjectQue[_drawObjectQueNr++] = object; - if (_drawObjectQueNr > 200) + if (_drawObjectQueNr > sizeof(_drawObjectQue)/sizeof(_drawObjectQue[0])) error("Draw Object Que overflow"); } @@ -580,8 +580,8 @@ void Scumm::addObjectToInventory(uint obj, uint room) { numobj = READ_LE_UINT16(&roomhdr->numObjects); if (numobj==0) error("addObjectToInventory: No object found in room %d", room); - if (numobj > 200) - error("addObjectToInventory: More (%d) than %d objects in room %d", numobj, 200, room); + if (numobj > _numLocalObjects) + error("addObjectToInventory: More (%d) than %d objects in room %d", numobj, _numLocalObjects, room); for (i=0; i<numobj; i++) { obcdptr = findResource(MKID('OBCD'), roomptr, i); diff --git a/resource.cpp b/resource.cpp index 965ce97e3d..b2fe608869 100644 --- a/resource.cpp +++ b/resource.cpp @@ -824,24 +824,13 @@ void Scumm::readMAXS() { allocResTypeData(4, MKID('SOUN'), _numSounds, "sound", 1); allocResTypeData(2, MKID('SCRP'), _numScripts, "script", 1); allocResTypeData(6, MKID('CHAR'), _numCharsets, "charset", 1); - allocResTypeData(5, MKID('NONE'), _numInventory, "inventory", 0); - allocResTypeData(8, MKID('NONE'), _numVerbs,"verb", 0); - allocResTypeData(7, MKID('NONE'), _numArray,"array", 0); - allocResTypeData(13, MKID('NONE'),_numFlObject,"flobject", 0); - allocResTypeData(12,MKID('NONE'),10, "temp", 0); - allocResTypeData(11,MKID('NONE'),5, "scale table", 0); - allocResTypeData(9, MKID('NONE'),13,"actor name", 0); - allocResTypeData(10, MKID('NONE'),10,"buffer", 0); - allocResTypeData(14, MKID('NONE'),10,"boxes", 0); + allocResTypeData(16, MKID('NONE'),50,"new name", 0); + allocateArrays(); + _objectFlagTable = (byte*)alloc(_numGlobalObjects); - _inventory = (uint16*)alloc(_numInventory * sizeof(uint16)); _arrays = (byte*)alloc(_numArray); - _verbs = (VerbSlot*)alloc(_numVerbs * sizeof(VerbSlot)); - _objs = (ObjectData*)alloc(_numLocalObjects * sizeof(ObjectData)); - _vars = (int16*)alloc(_numVariables * sizeof(int16)); - _bitVars = (byte*)alloc(_numBitVariables >> 3); _newNames = (uint16*)alloc(50 * sizeof(uint16)); _classData = (uint32*)alloc(_numGlobalObjects * sizeof(uint32)); @@ -849,4 +838,20 @@ void Scumm::readMAXS() { _dynamicRoomOffsets = 1; } +void Scumm::allocateArrays() { + _inventory = (uint16*)alloc(_numInventory * sizeof(uint16)); + _verbs = (VerbSlot*)alloc(_numVerbs * sizeof(VerbSlot)); + _objs = (ObjectData*)alloc(_numLocalObjects * sizeof(ObjectData)); + _vars = (int16*)alloc(_numVariables * sizeof(int16)); + _bitVars = (byte*)alloc(_numBitVariables >> 3); + allocResTypeData(rtInventory, MKID('NONE'), _numInventory, "inventory", 0); + allocResTypeData(rtTemp,MKID('NONE'),10, "temp", 0); + allocResTypeData(rtScaleTable,MKID('NONE'),5, "scale table", 0); + allocResTypeData(rtActorName, MKID('NONE'),13,"actor name", 0); + allocResTypeData(rtBuffer, MKID('NONE'),10,"buffer", 0); + allocResTypeData(rtVerb, MKID('NONE'),_numVerbs,"verb", 0); + allocResTypeData(rtString, MKID('NONE'),_numArray,"array", 0); + allocResTypeData(rtFlObject, MKID('NONE'),_numFlObject,"flobject", 0); + allocResTypeData(rtMatrix, MKID('NONE'),10,"boxes", 0); +} @@ -749,7 +749,7 @@ struct Scumm { byte _talk_sound_mode; int _drawObjectQueNr; - byte _drawObjectQue[0xC8]; + byte _drawObjectQue[200]; uint16 _currentDrive; uint16 _soundCardType; @@ -1573,6 +1573,8 @@ struct Scumm { void setupCursor() { _cursorAnimate = true; } void decompressDefaultCursor(int index); + + void allocateArrays(); }; struct ScummDebugger { diff --git a/scummvm.cpp b/scummvm.cpp index 16b789ed96..32cc464c45 100644 --- a/scummvm.cpp +++ b/scummvm.cpp @@ -30,22 +30,12 @@ void Scumm::initThingsV5() { _numLocalObjects = 200; _numVerbs = 100; _numInventory = 80; + _numVerbs = 100; + _numArray = 0x32; + _numFlObject = 0x32; + + allocateArrays(); - _inventory = (uint16*)alloc(_numInventory * sizeof(uint16)); - _verbs = (VerbSlot*)alloc(100 * sizeof(VerbSlot)); - _objs = (ObjectData*)alloc(200 * sizeof(ObjectData)); - _vars = (int16*)alloc(800 * sizeof(int16)); - _bitVars = (byte*)alloc(2048 >> 3); - - allocResTypeData(5, MKID('NONE'), 0x50, "inventory", 0); - allocResTypeData(12,MKID('NONE'),10, "temp", 0); - allocResTypeData(11,MKID('NONE'),5, "scale table", 0); - allocResTypeData(9, MKID('NONE'),13,"actor name", 0); - allocResTypeData(10, MKID('NONE'),10,"buffer", 0); - allocResTypeData(8, MKID('NONE'),100,"verb", 0); - allocResTypeData(7, MKID('NONE'),0x32,"string", 0); - allocResTypeData(13, MKID('NONE'),0x32,"flobject", 0); - allocResTypeData(14, MKID('NONE'),10,"boxes", 0); readIndexFileV5(2); initRandSeeds(); @@ -260,8 +260,8 @@ void Scumm::setVerbObject(uint room, uint object, uint verb) { numobj = READ_LE_UINT16(&roomhdr->numObjects); if (numobj==0) error("No images found in room %d", room); - if (numobj > 200) - error("More (%d) than %d objects in room %d", numobj, 200, room); + if (numobj > _numLocalObjects) + error("More (%d) than %d objects in room %d", numobj, _numLocalObjects, room); for (i=0; i<numobj; i++) { obimptr = findResource(MKID('OBIM'), roomptr, i); |