aboutsummaryrefslogtreecommitdiff
path: root/engines/cine/object.cpp
diff options
context:
space:
mode:
authorEugene Sandulenko2010-08-09 11:38:01 +0000
committerEugene Sandulenko2010-08-09 11:38:01 +0000
commit327d30d71962d793e773b147d940e50d06539364 (patch)
treeba4bcb686bc43b69c652f2801f3f00c5474f27fe /engines/cine/object.cpp
parent15b881386aa81bf60919486c5eab9f81c6b9d6ae (diff)
downloadscummvm-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.cpp85
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;