diff options
author | Eugene Sandulenko | 2010-08-09 11:38:01 +0000 |
---|---|---|
committer | Eugene Sandulenko | 2010-08-09 11:38:01 +0000 |
commit | 327d30d71962d793e773b147d940e50d06539364 (patch) | |
tree | ba4bcb686bc43b69c652f2801f3f00c5474f27fe /engines/cine/object.cpp | |
parent | 15b881386aa81bf60919486c5eab9f81c6b9d6ae (diff) | |
download | scummvm-rg350-327d30d71962d793e773b147d940e50d06539364.tar.gz scummvm-rg350-327d30d71962d793e773b147d940e50d06539364.tar.bz2 scummvm-rg350-327d30d71962d793e773b147d940e50d06539364.zip |
CINE: eliminate global variables
svn-id: r51937
Diffstat (limited to 'engines/cine/object.cpp')
-rw-r--r-- | engines/cine/object.cpp | 85 |
1 files changed, 41 insertions, 44 deletions
diff --git a/engines/cine/object.cpp b/engines/cine/object.cpp index 116b57c267..82dc0a6ef1 100644 --- a/engines/cine/object.cpp +++ b/engines/cine/object.cpp @@ -35,12 +35,9 @@ namespace Cine { -Common::Array<ObjectStruct> objectTable; -Common::List<overlay> overlayList; - /** Resets all elements in the object table. */ void resetObjectTable() { - for (Common::Array<ObjectStruct>::iterator it = objectTable.begin(); it != objectTable.end(); ++it) { + for (Common::Array<ObjectStruct>::iterator it = g_cine->_objectTable.begin(); it != g_cine->_objectTable.end(); ++it) { it->clear(); } } @@ -64,23 +61,23 @@ void loadObject(char *pObjectName) { assert(numEntry <= NUM_MAX_OBJECT); for (i = 0; i < numEntry; i++) { - if (objectTable[i].costume != -2) { // flag is keep ? + if (g_cine->_objectTable[i].costume != -2) { // flag is keep ? Common::MemoryReadStream readS(ptr, entrySize); - objectTable[i].x = readS.readSint16BE(); - objectTable[i].y = readS.readSint16BE(); - objectTable[i].mask = readS.readUint16BE(); - objectTable[i].frame = readS.readSint16BE(); - objectTable[i].costume = readS.readSint16BE(); - readS.read(objectTable[i].name, 20); - objectTable[i].part = readS.readUint16BE(); + g_cine->_objectTable[i].x = readS.readSint16BE(); + g_cine->_objectTable[i].y = readS.readSint16BE(); + g_cine->_objectTable[i].mask = readS.readUint16BE(); + g_cine->_objectTable[i].frame = readS.readSint16BE(); + g_cine->_objectTable[i].costume = readS.readSint16BE(); + readS.read(g_cine->_objectTable[i].name, 20); + g_cine->_objectTable[i].part = readS.readUint16BE(); } ptr += entrySize; } if (!strcmp(pObjectName, "INTRO.OBJ")) { for (i = 0; i < 10; i++) { - objectTable[i].costume = 0; + g_cine->_objectTable[i].costume = 0; } } @@ -95,9 +92,9 @@ void loadObject(char *pObjectName) { int removeOverlay(uint16 objIdx, uint16 param) { Common::List<overlay>::iterator it; - for (it = overlayList.begin(); it != overlayList.end(); ++it) { + for (it = g_cine->_overlayList.begin(); it != g_cine->_overlayList.end(); ++it) { if (it->objIdx == objIdx && it->type == param) { - overlayList.erase(it); + g_cine->_overlayList.erase(it); return 1; } } @@ -115,9 +112,9 @@ void addOverlay(uint16 objIdx, uint16 type) { Common::List<overlay>::iterator it; overlay tmp; - for (it = overlayList.begin(); it != overlayList.end(); ++it) { + for (it = g_cine->_overlayList.begin(); it != g_cine->_overlayList.end(); ++it) { // This is done for both Future Wars and Operation Stealth - if (objectTable[it->objIdx].mask >= objectTable[objIdx].mask) { + if (g_cine->_objectTable[it->objIdx].mask >= g_cine->_objectTable[objIdx].mask) { break; } @@ -128,7 +125,7 @@ void addOverlay(uint16 objIdx, uint16 type) { } // In Operation Stealth's implementation we might bail out early - if (g_cine->getGameType() == Cine::GType_OS && it != overlayList.end() && it->objIdx == objIdx && it->type == type) { + if (g_cine->getGameType() == Cine::GType_OS && it != g_cine->_overlayList.end() && it->objIdx == objIdx && it->type == type) { return; } @@ -139,7 +136,7 @@ void addOverlay(uint16 objIdx, uint16 type) { tmp.width = 0; tmp.color = 0; - overlayList.insert(it, tmp); + g_cine->_overlayList.insert(it, tmp); } /** @@ -151,13 +148,13 @@ void addGfxElement(int16 objIdx, int16 param, int16 type) { Common::List<overlay>::iterator it; overlay tmp; - for (it = overlayList.begin(); it != overlayList.end(); ++it) { - if (objectTable[it->objIdx].mask >= objectTable[objIdx].mask || it->type == 2 || it->type == 3) { + for (it = g_cine->_overlayList.begin(); it != g_cine->_overlayList.end(); ++it) { + if (g_cine->_objectTable[it->objIdx].mask >= g_cine->_objectTable[objIdx].mask || it->type == 2 || it->type == 3) { break; } } - if (it != overlayList.end() && it->objIdx == objIdx && it->type == type && it->x == param) { + if (it != g_cine->_overlayList.end() && it->objIdx == objIdx && it->type == type && it->x == param) { return; } @@ -168,7 +165,7 @@ void addGfxElement(int16 objIdx, int16 param, int16 type) { tmp.width = 0; tmp.color = 0; - overlayList.insert(it, tmp); + g_cine->_overlayList.insert(it, tmp); } /** @@ -180,19 +177,19 @@ void addGfxElement(int16 objIdx, int16 param, int16 type) { void removeGfxElement(int16 objIdx, int16 param, int16 type) { Common::List<overlay>::iterator it; - for (it = overlayList.begin(); it != overlayList.end(); ++it) { + for (it = g_cine->_overlayList.begin(); it != g_cine->_overlayList.end(); ++it) { if (it->objIdx == objIdx && it->type == type && it->x == param) { - overlayList.erase(it); + g_cine->_overlayList.erase(it); return; } } } void setupObject(byte objIdx, uint16 param1, uint16 param2, uint16 param3, uint16 param4) { - objectTable[objIdx].x = param1; - objectTable[objIdx].y = param2; - objectTable[objIdx].mask = param3; - objectTable[objIdx].frame = param4; + g_cine->_objectTable[objIdx].x = param1; + g_cine->_objectTable[objIdx].y = param2; + g_cine->_objectTable[objIdx].mask = param3; + g_cine->_objectTable[objIdx].frame = param4; if (g_cine->getGameType() == Cine::GType_OS) { resetGfxEntityEntry(objIdx); @@ -219,13 +216,13 @@ void modifyObjectParam(byte objIdx, byte paramIdx, int16 newValue) { switch (paramIdx) { case 1: - objectTable[objIdx].x = newValue; + g_cine->_objectTable[objIdx].x = newValue; break; case 2: - objectTable[objIdx].y = newValue; + g_cine->_objectTable[objIdx].y = newValue; break; case 3: - objectTable[objIdx].mask = newValue; + g_cine->_objectTable[objIdx].mask = newValue; if (g_cine->getGameType() == Cine::GType_OS) { // Operation Stealth specific resetGfxEntityEntry(objIdx); @@ -236,18 +233,18 @@ void modifyObjectParam(byte objIdx, byte paramIdx, int16 newValue) { } break; case 4: - objectTable[objIdx].frame = newValue; + g_cine->_objectTable[objIdx].frame = newValue; break; case 5: // TODO: Test if this really breaks the newspaper machine on the airport in Operation Stealth. if (g_cine->getGameType() == Cine::GType_FW && newValue == -1) { - objectTable[objIdx].costume = globalVars[0]; + g_cine->_objectTable[objIdx].costume = g_cine->_globalVars[0]; } else { - objectTable[objIdx].costume = newValue; + g_cine->_objectTable[objIdx].costume = newValue; } break; case 6: - objectTable[objIdx].part = newValue; + g_cine->_objectTable[objIdx].part = newValue; break; } } @@ -263,8 +260,8 @@ bool compareRanges(uint16 aStart, uint16 aEnd, uint16 bStart, uint16 bEnd) { uint16 compareObjectParamRanges(uint16 objIdx1, uint16 xAdd1, uint16 yAdd1, uint16 maskAdd1, uint16 objIdx2, uint16 xAdd2, uint16 yAdd2, uint16 maskAdd2) { assert(objIdx1 < NUM_MAX_OBJECT && objIdx2 < NUM_MAX_OBJECT); - const ObjectStruct &obj1 = objectTable[objIdx1]; - const ObjectStruct &obj2 = objectTable[objIdx2]; + const ObjectStruct &obj1 = g_cine->_objectTable[objIdx1]; + const ObjectStruct &obj2 = g_cine->_objectTable[objIdx2]; if (compareRanges(obj1.x, obj1.x + xAdd1, obj2.x, obj2.x + xAdd2) && compareRanges(obj1.y, obj1.y + yAdd1, obj2.y, obj2.y + yAdd2) && @@ -304,17 +301,17 @@ int16 getObjectParam(uint16 objIdx, uint16 paramIdx) { switch (paramIdx) { case 0: - return objectTable[objIdx].x; + return g_cine->_objectTable[objIdx].x; case 1: - return objectTable[objIdx].y; + return g_cine->_objectTable[objIdx].y; case 2: - return objectTable[objIdx].mask; + return g_cine->_objectTable[objIdx].mask; case 3: - return objectTable[objIdx].frame; + return g_cine->_objectTable[objIdx].frame; case 4: - return objectTable[objIdx].costume; + return g_cine->_objectTable[objIdx].costume; case 5: - return objectTable[objIdx].part; + return g_cine->_objectTable[objIdx].part; } return 0; |