aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Gilbert2009-03-16 09:45:37 +0000
committerPaul Gilbert2009-03-16 09:45:37 +0000
commit34d3d7c74dcdd36acf6172c02ca3874c75073852 (patch)
treef91c12e150cab7a51553262e36bfdde0c84119d5
parent7d85194eaae2e741ca9b2e55c91eaa2cdf4ff0c3 (diff)
downloadscummvm-rg350-34d3d7c74dcdd36acf6172c02ca3874c75073852.tar.gz
scummvm-rg350-34d3d7c74dcdd36acf6172c02ca3874c75073852.tar.bz2
scummvm-rg350-34d3d7c74dcdd36acf6172c02ca3874c75073852.zip
Code formatting, added further constant references, and corrected method signatures
svn-id: r39445
-rw-r--r--engines/cruise/background.cpp16
-rw-r--r--engines/cruise/background.h2
-rw-r--r--engines/cruise/backgroundIncrust.cpp28
-rw-r--r--engines/cruise/cell.cpp2
-rw-r--r--engines/cruise/cruise.h3
-rw-r--r--engines/cruise/cruise_main.cpp11
-rw-r--r--engines/cruise/cruise_main.h22
-rw-r--r--engines/cruise/dataLoader.cpp8
-rw-r--r--engines/cruise/debugger.cpp6
-rw-r--r--engines/cruise/function.cpp6
-rw-r--r--engines/cruise/gfxModule.cpp14
-rw-r--r--engines/cruise/gfxModule.h14
-rw-r--r--engines/cruise/mainDraw.cpp43
-rw-r--r--engines/cruise/mainDraw.h2
14 files changed, 90 insertions, 87 deletions
diff --git a/engines/cruise/background.cpp b/engines/cruise/background.cpp
index d250ff7f2d..21e4052dcd 100644
--- a/engines/cruise/background.cpp
+++ b/engines/cruise/background.cpp
@@ -29,7 +29,7 @@ namespace Cruise {
uint8 colorMode = 0;
-uint8 *backgroundPtrtable[8] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; // wasn't initialized in original, but it's probably better
+uint8 *backgroundScreens[8] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL }; // wasn't initialized in original, but it's probably better
backgroundTableStruct backgroundTable[8];
char hwPage[64000];
@@ -92,11 +92,11 @@ int loadBackground(const char *name, int idx) {
printf("Loading BG: %s\n", name);
- if (!backgroundPtrtable[idx]) {
- backgroundPtrtable[idx] = (uint8 *)mallocAndZero(320 * 200);
+ if (!backgroundScreens[idx]) {
+ backgroundScreens[idx] = (uint8 *)mallocAndZero(320 * 200);
}
- if (!backgroundPtrtable[idx]) {
+ if (!backgroundScreens[idx]) {
backgroundTable[idx].name[0] = 0;
return (-2);
}
@@ -184,19 +184,19 @@ int loadBackground(const char *name, int idx) {
gfxModuleData_setPal256(palScreen[idx]);
// read image data
- gfxModuleData_gfxClearFrameBuffer(backgroundPtrtable[idx]);
+ gfxModuleData_gfxClearFrameBuffer(backgroundScreens[idx]);
switch (mode) {
case 0:
case 4:
- convertGfxFromMode4(ptr2, 320, 200, backgroundPtrtable[idx]);
+ convertGfxFromMode4(ptr2, 320, 200, backgroundScreens[idx]);
ptr2 += 32000;
break;
case 5:
- convertGfxFromMode5(ptr2, 320, 200, backgroundPtrtable[idx]);
+ convertGfxFromMode5(ptr2, 320, 200, backgroundScreens[idx]);
break;
case 8:
- memcpy(backgroundPtrtable[idx], ptr2, 320 * 200);
+ memcpy(backgroundScreens[idx], ptr2, 320 * 200);
ptr2 += 320 * 200;
break;
}
diff --git a/engines/cruise/background.h b/engines/cruise/background.h
index 5635f9343a..711e89a34a 100644
--- a/engines/cruise/background.h
+++ b/engines/cruise/background.h
@@ -35,7 +35,7 @@ struct backgroundTableStruct {
extern short int cvtPalette[0x20];
extern int CVTLoaded;
-extern uint8 *backgroundPtrtable[8];
+extern uint8 *backgroundScreens[8];
extern backgroundTableStruct backgroundTable[8];
int loadBackground(const char *name, int idx);
diff --git a/engines/cruise/backgroundIncrust.cpp b/engines/cruise/backgroundIncrust.cpp
index f67f4e6170..1f5a9d8513 100644
--- a/engines/cruise/backgroundIncrust.cpp
+++ b/engines/cruise/backgroundIncrust.cpp
@@ -24,6 +24,7 @@
*/
#include "cruise/cruise_main.h"
+#include "cruise/cruise.h"
namespace Cruise {
@@ -62,7 +63,7 @@ void restoreBackground(backgroundIncrustStruct *pIncrust) {
if (pIncrust->ptr == NULL)
return;
- uint8* pBackground = backgroundPtrtable[pIncrust->backgroundIdx];
+ uint8* pBackground = backgroundScreens[pIncrust->backgroundIdx];
if (pBackground == NULL)
return;
@@ -90,15 +91,14 @@ backgroundIncrustStruct *addBackgroundIncrust(int16 overlayIdx, int16 objectIdx,
ptr = filesDatabase[params.fileIdx].subData.ptr;
- if (!ptr) {
+ // Don't process any further if not a sprite or polygon
+ if (!ptr) return NULL;
+ if ((filesDatabase[params.fileIdx].subData.resourceType != OBJ_TYPE_SPRITE) &&
+ (filesDatabase[params.fileIdx].subData.resourceType != OBJ_TYPE_POLY)) {
return NULL;
}
- if (filesDatabase[params.fileIdx].subData.resourceType != 4 && filesDatabase[params.fileIdx].subData.resourceType != 8) {
- return NULL;
- }
-
- backgroundPtr = backgroundPtrtable[backgroundIdx];
+ backgroundPtr = backgroundScreens[backgroundIdx];
assert(backgroundPtr != NULL);
@@ -139,16 +139,18 @@ backgroundIncrustStruct *addBackgroundIncrust(int16 overlayIdx, int16 objectIdx,
newElement->ptr = NULL;
strcpy(newElement->name, filesDatabase[params.fileIdx].subData.name);
- if (filesDatabase[params.fileIdx].subData.resourceType == 4) { // sprite
+ if (filesDatabase[params.fileIdx].subData.resourceType == OBJ_TYPE_SPRITE) {
+ // sprite
int width = filesDatabase[params.fileIdx].width;
int height = filesDatabase[params.fileIdx].height;
-
if (saveBuffer == 1) {
backupBackground(newElement, newElement->X, newElement->Y, width, height, backgroundPtr);
}
- drawSprite(width, height, NULL, filesDatabase[params.fileIdx].subData.ptr, newElement->Y, newElement->X, backgroundPtr, filesDatabase[params.fileIdx].subData.ptrMask);
- } else { // poly
+ drawSprite(width, height, NULL, filesDatabase[params.fileIdx].subData.ptr, newElement->Y,
+ newElement->X, backgroundPtr, filesDatabase[params.fileIdx].subData.ptrMask);
+ } else {
+ // poly
if (saveBuffer == 1) {
int newX;
int newY;
@@ -202,9 +204,9 @@ void regenerateBackgroundIncrust(backgroundIncrustStruct *pHead) {
int width = filesDatabase[frame].width;
int height = filesDatabase[frame].height;
- drawSprite(width, height, NULL, filesDatabase[frame].subData.ptr, pl->Y, pl->X, backgroundPtrtable[pl->backgroundIdx], filesDatabase[frame].subData.ptrMask);
+ drawSprite(width, height, NULL, filesDatabase[frame].subData.ptr, pl->Y, pl->X, backgroundScreens[pl->backgroundIdx], filesDatabase[frame].subData.ptrMask);
} else { // poly
- addBackgroundIncrustSub1(frame, pl->X, pl->Y, NULL, pl->scale, (char*)backgroundPtrtable[pl->backgroundIdx], (char *)filesDatabase[frame].subData.ptr);
+ addBackgroundIncrustSub1(frame, pl->X, pl->Y, NULL, pl->scale, (char*)backgroundScreens[pl->backgroundIdx], (char *)filesDatabase[frame].subData.ptr);
}
}
diff --git a/engines/cruise/cell.cpp b/engines/cruise/cell.cpp
index 058bb3785e..7966d5ea12 100644
--- a/engines/cruise/cell.cpp
+++ b/engines/cruise/cell.cpp
@@ -150,7 +150,7 @@ void createTextObject(cellStruct *pObject, int overlayIdx, int messageIdx, int x
pObject->next = pNewElement;
pNewElement->idx = messageIdx;
- pNewElement->type = OBJ_TYPE_MSG;
+ pNewElement->type = OBJ_TYPE_MESSAGE;
pNewElement->backgroundPlane = backgroundPlane;
pNewElement->overlay = overlayIdx;
pNewElement->x = x;
diff --git a/engines/cruise/cruise.h b/engines/cruise/cruise.h
index c8bc52045e..a3fcd0216b 100644
--- a/engines/cruise/cruise.h
+++ b/engines/cruise/cruise.h
@@ -40,7 +40,7 @@ enum CruiseGameType {
GType_CRUISE = 1
};
-#define GAME_FRAME_DELAY 70
+#define GAME_FRAME_DELAY 40
#define MAX_LANGUAGE_STRINGS 25
@@ -117,7 +117,6 @@ enum {
kCmpLT = (1 << 2)
};
-
} // End of namespace Cruise
#endif
diff --git a/engines/cruise/cruise_main.cpp b/engines/cruise/cruise_main.cpp
index 01f4ed0b08..7ca5750206 100644
--- a/engines/cruise/cruise_main.cpp
+++ b/engines/cruise/cruise_main.cpp
@@ -374,7 +374,7 @@ void resetFileEntry(int32 entryNumber) {
filesDatabase[entryNumber].subData.ptrMask = NULL;
filesDatabase[entryNumber].widthInColumn = 0;
filesDatabase[entryNumber].width = 0;
- filesDatabase[entryNumber].resType = 0;
+ filesDatabase[entryNumber].resType = OBJ_TYPE_LINE;
filesDatabase[entryNumber].height = 0;
filesDatabase[entryNumber].subData.index = -1;
filesDatabase[entryNumber].subData.resourceType = 0;
@@ -578,7 +578,9 @@ int findObject(int mouseX, int mouseY, int *outObjOvl, int *outObjIdx) {
cellStruct *currentObject = cellHead.prev;
while (currentObject) {
- if (currentObject->overlay > 0 && overlayTable[currentObject->overlay].alreadyLoaded && (currentObject->type == OBJ_TYPE_SPRITE || currentObject->type == OBJ_TYPE_MASK || currentObject->type == OBJ_TYPE_EXIT || currentObject->type == OBJ_TYPE_VIRTUEL)) {
+ if (currentObject->overlay > 0 && overlayTable[currentObject->overlay].alreadyLoaded &&
+ (currentObject->type == OBJ_TYPE_SPRITE || currentObject->type == OBJ_TYPE_MASK ||
+ currentObject->type == OBJ_TYPE_EXIT || currentObject->type == OBJ_TYPE_VIRTUAL)) {
const char* pObjectName = getObjectName(currentObject->idx, overlayTable[currentObject->overlay].ovlData->arrayNameObj);
strcpy(objectName, pObjectName);
@@ -639,7 +641,8 @@ int findObject(int mouseX, int mouseY, int *outObjOvl, int *outObjIdx) {
offset += j;
if (offset >= 0) {
- if (filesDatabase[offset].resType == 0 && filesDatabase[offset].subData.ptr) {
+ if (filesDatabase[offset].resType == OBJ_TYPE_LINE &&
+ filesDatabase[offset].subData.ptr) {
dataPtr = (int16 *)filesDatabase[offset].subData.ptr;
}
}
@@ -675,7 +678,7 @@ int findObject(int mouseX, int mouseY, int *outObjOvl, int *outObjIdx) {
}
}
}
- } else if (currentObject->type == OBJ_TYPE_VIRTUEL) {
+ } else if (currentObject->type == OBJ_TYPE_VIRTUAL) {
int x = params.X + x2;
int y = params.Y + y2;
int width = params.fileIdx;
diff --git a/engines/cruise/cruise_main.h b/engines/cruise/cruise_main.h
index 602a72a98c..b5328cb3d0 100644
--- a/engines/cruise/cruise_main.h
+++ b/engines/cruise/cruise_main.h
@@ -73,16 +73,18 @@ enum MouseButton {
#define ASSERT_PTR assert
#define ASSERT assert
-#define OBJ_TYPE_LINE 0
-#define OBJ_TYPE_MASK 1
-#define OBJ_TYPE_BGMK 2
-#define OBJ_TYPE_VIRTUEL 3
-#define OBJ_TYPE_SPRITE 4
-#define OBJ_TYPE_MSG 5
-#define OBJ_TYPE_SOUND 6
-#define OBJ_TYPE_FONT 7
-#define OBJ_TYPE_POLY 8
-#define OBJ_TYPE_EXIT 9
+enum ResType {
+ OBJ_TYPE_LINE = 0,
+ OBJ_TYPE_MASK = 1,
+ OBJ_TYPE_BGMASK = 2,
+ OBJ_TYPE_VIRTUAL = 3,
+ OBJ_TYPE_SPRITE = 4,
+ OBJ_TYPE_MESSAGE = 5,
+ OBJ_TYPE_SOUND = 6,
+ OBJ_TYPE_FONT = 7,
+ OBJ_TYPE_POLY = 8,
+ OBJ_TYPE_EXIT = 9
+};
extern gfxEntryStruct* linkedMsgList;
diff --git a/engines/cruise/dataLoader.cpp b/engines/cruise/dataLoader.cpp
index 364b1dfee8..db9e57d77d 100644
--- a/engines/cruise/dataLoader.cpp
+++ b/engines/cruise/dataLoader.cpp
@@ -148,9 +148,9 @@ int updateResFileEntry(int height, int width, int entryNumber, int resType) {
int maskSize = height * width; // for sprites: width * height
- if (resType == 4) {
+ if (resType == OBJ_TYPE_SPRITE) {
div = maskSize / 4;
- } else if (resType == 5) {
+ } else if (resType == OBJ_TYPE_MESSAGE) {
width = (width * 8) / 5;
}
@@ -193,9 +193,9 @@ int createResFileEntry(int width, int height, int resType) {
size = width * height; // for sprites: width * height
- if (resType == 4) {
+ if (resType == OBJ_TYPE_SPRITE) {
div = size / 4;
- } else if (resType == 5) {
+ } else if (resType == OBJ_TYPE_MESSAGE) {
width = (width * 8) / 5;
}
diff --git a/engines/cruise/debugger.cpp b/engines/cruise/debugger.cpp
index 62a4e34b15..eb1cf585fc 100644
--- a/engines/cruise/debugger.cpp
+++ b/engines/cruise/debugger.cpp
@@ -49,7 +49,7 @@ bool Debugger::cmd_hotspots(int argc, const char **argv) {
while (currentObject) {
if (currentObject->overlay > 0 && overlayTable[currentObject->overlay].alreadyLoaded &&
(currentObject->type == OBJ_TYPE_SPRITE || currentObject->type == OBJ_TYPE_MASK ||
- currentObject->type == OBJ_TYPE_EXIT || currentObject->type == OBJ_TYPE_VIRTUEL)) {
+ currentObject->type == OBJ_TYPE_EXIT || currentObject->type == OBJ_TYPE_VIRTUAL)) {
const char *pObjectName = getObjectName(currentObject->idx, overlayTable[currentObject->overlay].ovlData->arrayNameObj);
switch (currentObject->type) {
@@ -62,8 +62,8 @@ bool Debugger::cmd_hotspots(int argc, const char **argv) {
case OBJ_TYPE_EXIT:
pObjType = "EXIT";
break;
- case OBJ_TYPE_VIRTUEL:
- pObjType = "VIRTUEL";
+ case OBJ_TYPE_VIRTUAL:
+ pObjType = "VIRTUAL";
break;
default:
pObjType = "UNKNOWN";
diff --git a/engines/cruise/function.cpp b/engines/cruise/function.cpp
index 03037db629..815e1235c4 100644
--- a/engines/cruise/function.cpp
+++ b/engines/cruise/function.cpp
@@ -828,7 +828,7 @@ int16 Op_SetActiveBackground(void) {
int newPlane = popVar();
if (newPlane >= 0 && newPlane < 8) {
- if (backgroundPtrtable[newPlane]) {
+ if (backgroundScreens[newPlane]) {
masterScreen = newPlane;
switchPal = 1;
}
@@ -841,8 +841,8 @@ int16 Op_RemoveBackground(void) {
int backgroundIdx = popVar();
if (backgroundIdx > 0 && backgroundIdx < 8) {
- if (backgroundPtrtable[backgroundIdx])
- free(backgroundPtrtable[backgroundIdx]);
+ if (backgroundScreens[backgroundIdx])
+ free(backgroundScreens[backgroundIdx]);
if (masterScreen == backgroundIdx)
masterScreen = 0;
diff --git a/engines/cruise/gfxModule.cpp b/engines/cruise/gfxModule.cpp
index 8a21842503..f3700253d3 100644
--- a/engines/cruise/gfxModule.cpp
+++ b/engines/cruise/gfxModule.cpp
@@ -54,15 +54,15 @@ void gfxModuleData_gfxClearFrameBuffer(uint8 *ptr) {
memset(ptr, 0, 64000);
}
-void gfxModuleData_gfxCopyScreen(char *sourcePtr, char *destPtr) {
- memcpy(destPtr, sourcePtr, 64000);
+void gfxModuleData_gfxCopyScreen(const uint8 *sourcePtr, uint8 *destPtr) {
+ memcpy(destPtr, sourcePtr, 320 * 200);
}
void outputBit(char *buffer, int bitPlaneNumber, uint8 data) {
*(buffer + (8000 * bitPlaneNumber)) = data;
}
-void convertGfxFromMode4(uint8 *sourcePtr, int width, int height, uint8 *destPtr) {
+void convertGfxFromMode4(const uint8 *sourcePtr, int width, int height, uint8 *destPtr) {
for (int y = 0; y < height; ++y) {
for (int x = 0; x < width / 16; ++x) {
for (int bit = 0; bit < 16; ++bit) {
@@ -79,7 +79,7 @@ void convertGfxFromMode4(uint8 *sourcePtr, int width, int height, uint8 *destPtr
}
}
-void convertGfxFromMode5(uint8 *sourcePtr, int width, int height, uint8 *destPtr) {
+void convertGfxFromMode5(const uint8 *sourcePtr, int width, int height, uint8 *destPtr) {
int range = (width / 8) * height;
for (int line = 0; line < 200; line++) {
@@ -169,7 +169,7 @@ void gfxModuleData_setPal256(uint8 *ptr) {
gfxModuleData_setDirtyColors(0, 16);
}*/
-void gfxModuleData_convertOldPalColor(uint16 oldColor, uint8* pOutput) {
+void gfxModuleData_convertOldPalColor(uint16 oldColor, uint8 *pOutput) {
int R;
int G;
int B;
@@ -198,7 +198,7 @@ void gfxModuleData_gfxWaitVSync(void) {
void gfxModuleData_flip(void) {
}
-void gfxCopyRect(const byte *sourceBuffer, int width, int height, byte *dest, int x, int y, int colour) {
+void gfxCopyRect(const uint8 *sourceBuffer, int width, int height, byte *dest, int x, int y, int colour) {
int xp, yp;
for (yp = 0; yp < height; ++yp) {
@@ -253,6 +253,4 @@ void resetBitmap(uint8 *dataPtr, int32 dataSize) {
memset(dataPtr, 0, dataSize);
}
-
-
} // End of namespace Cruise
diff --git a/engines/cruise/gfxModule.h b/engines/cruise/gfxModule.h
index d0aab71fc8..d71029455b 100644
--- a/engines/cruise/gfxModule.h
+++ b/engines/cruise/gfxModule.h
@@ -46,20 +46,20 @@ struct palEntry {
extern gfxModuleDataStruct gfxModuleData;
-void gfxModuleData_gfxClearFrameBuffer(uint8 * ptr);
+void gfxModuleData_gfxClearFrameBuffer(uint8 *ptr);
void gfxModuleData_setDirtyColors(int min, int max);
void gfxModuleData_setPalColor(int idx, int r, int g, int b);
void gfxModuleData_field_90(void);
void gfxModuleData_gfxWaitVSync(void);
void gfxModuleData_flip(void);
-void gfxCopyRect(const byte *sourceBuffer, int width, int height, byte *dest, int x, int y, int colour);
-void gfxModuleData_gfxCopyScreen(char *sourcePtr, char *destPtr);
-void convertGfxFromMode4(uint8 *sourcePtr, int width, int height, uint8 *destPtr);
-void convertGfxFromMode5(uint8 *sourcePtr, int width, int height, uint8 *destPtr);
+void gfxCopyRect(const uint8 *sourceBuffer, int width, int height, byte *dest, int x, int y, int colour);
+void gfxModuleData_gfxCopyScreen(const uint8 *sourcePtr, uint8 *destPtr);
+void convertGfxFromMode4(const uint8 *sourcePtr, int width, int height, uint8 *destPtr);
+void convertGfxFromMode5(const uint8 *sourcePtr, int width, int height, uint8 *destPtr);
void gfxModuleData_flipScreen(void);
//void gfxModuleData_setPal(uint8 * ptr);
-void gfxModuleData_convertOldPalColor(uint16 oldColor, uint8* pOutput);
-void gfxModuleData_setPal256(uint8 * ptr);
+void gfxModuleData_convertOldPalColor(uint16 oldColor, uint8 *pOutput);
+void gfxModuleData_setPal256(uint8 *ptr);
void flip(void);
void drawSolidBox(int32 x1, int32 y1, int32 x2, int32 y2, uint8 colour);
void resetBitmap(uint8 *dataPtr, int32 dataSize);
diff --git a/engines/cruise/mainDraw.cpp b/engines/cruise/mainDraw.cpp
index 6cdedd3d86..5d7ffe4ca0 100644
--- a/engines/cruise/mainDraw.cpp
+++ b/engines/cruise/mainDraw.cpp
@@ -175,7 +175,7 @@ void flipPoly(int fileId, int16 *dataPtr, int scale, char** newFrame, int X, int
offset += fileId;
if (offset >= 0) {
- if (filesDatabase[offset].resType == 0 && filesDatabase[offset].subData.ptr) {
+ if (filesDatabase[offset].resType == OBJ_TYPE_LINE && filesDatabase[offset].subData.ptr) {
dataPtr = (int16 *)filesDatabase[offset].subData.ptr;
}
}
@@ -1107,7 +1107,7 @@ void mainDrawPolygons(int fileIndex, cellStruct *plWork, int X, int scale, int Y
int numPasses = 0;
while (plWork) {
- if (plWork->type == OBJ_TYPE_BGMK && plWork->freeze == 0) {
+ if (plWork->type == OBJ_TYPE_BGMASK && plWork->freeze == 0) {
objectParamsQuery params;
getMultipleObjectParam(plWork->overlay, plWork->idx, &params);
@@ -1116,7 +1116,7 @@ void mainDrawPolygons(int fileIndex, cellStruct *plWork, int X, int scale, int Y
int maskY = params.Y;
int maskFrame = params.fileIdx;
- if (filesDatabase[maskFrame].subData.resourceType == OBJ_TYPE_BGMK && filesDatabase[maskFrame].subData.ptrMask) {
+ if (filesDatabase[maskFrame].subData.resourceType == OBJ_TYPE_BGMASK && filesDatabase[maskFrame].subData.ptrMask) {
drawMask(polygonMask, 40, 200, filesDatabase[maskFrame].subData.ptrMask, filesDatabase[maskFrame].width / 8, filesDatabase[maskFrame].height, maskX, maskY, numPasses++);
} else
if (filesDatabase[maskFrame].subData.resourceType == OBJ_TYPE_SPRITE && filesDatabase[maskFrame].subData.ptrMask) {
@@ -1181,20 +1181,20 @@ void drawMessage(const gfxEntryStruct *pGfxPtr, int globalX, int globalY, int wi
}
}
-void drawSprite(int objX1, int height, cellStruct *currentObjPtr, uint8 *data1, int objY2, int objX2, uint8 *output, uint8 *data2) {
+void drawSprite(int width, int height, cellStruct *currentObjPtr, const uint8 *dataIn, int ys, int xs, uint8 *output, const uint8 *dataBuf) {
int x = 0;
int y = 0;
cellStruct* plWork = currentObjPtr;
- int workBufferSize = height * (objX1 / 8);
+ int workBufferSize = height * (width / 8);
unsigned char* workBuf = (unsigned char*)malloc(workBufferSize);
- memcpy(workBuf, data2, workBufferSize);
+ memcpy(workBuf, dataBuf, workBufferSize);
int numPasses = 0;
while (plWork) {
- if (plWork->type == OBJ_TYPE_BGMK && plWork->freeze == 0) {
+ if (plWork->type == OBJ_TYPE_BGMASK && plWork->freeze == 0) {
objectParamsQuery params;
getMultipleObjectParam(plWork->overlay, plWork->idx, &params);
@@ -1203,11 +1203,11 @@ void drawSprite(int objX1, int height, cellStruct *currentObjPtr, uint8 *data1,
int maskY = params.Y;
int maskFrame = params.fileIdx;
- if (filesDatabase[maskFrame].subData.resourceType == OBJ_TYPE_BGMK && filesDatabase[maskFrame].subData.ptrMask) {
- drawMask(workBuf, objX1 / 8, height, filesDatabase[maskFrame].subData.ptrMask, filesDatabase[maskFrame].width / 8, filesDatabase[maskFrame].height, maskX - objX2, maskY - objY2, numPasses++);
+ if (filesDatabase[maskFrame].subData.resourceType == OBJ_TYPE_BGMASK && filesDatabase[maskFrame].subData.ptrMask) {
+ drawMask(workBuf, width / 8, height, filesDatabase[maskFrame].subData.ptrMask, filesDatabase[maskFrame].width / 8, filesDatabase[maskFrame].height, maskX - xs, maskY - ys, numPasses++);
} else
if (filesDatabase[maskFrame].subData.resourceType == OBJ_TYPE_SPRITE && filesDatabase[maskFrame].subData.ptrMask) {
- drawMask(workBuf, objX1 / 8, height, filesDatabase[maskFrame].subData.ptrMask, filesDatabase[maskFrame].width / 8, filesDatabase[maskFrame].height, maskX - objX2, maskY - objY2, numPasses++);
+ drawMask(workBuf, width / 8, height, filesDatabase[maskFrame].subData.ptrMask, filesDatabase[maskFrame].width / 8, filesDatabase[maskFrame].height, maskX - xs, maskY - ys, numPasses++);
}
}
@@ -1216,13 +1216,12 @@ void drawSprite(int objX1, int height, cellStruct *currentObjPtr, uint8 *data1,
}
for (y = 0; y < height; y++) {
- for (x = 0; x < (objX1); x++) {
- uint8 color = (data1[0]);
- data1++;
+ for (x = 0; x < (width); x++) {
+ uint8 color = *dataIn++;
- if ((x + objX2) >= 0 && (x + objX2) < 320 && (y + objY2) >= 0 && (y + objY2) < 200) {
- if (testMask(x, y, workBuf, objX1 / 8)) {
- output[320 * (y + objY2) + x + objX2] = color;
+ if ((x + xs) >= 0 && (x + xs) < 320 && (y + ys) >= 0 && (y + ys) < 200) {
+ if (testMask(x, y, workBuf, width / 8)) {
+ output[320 * (y + ys) + x + xs] = color;
}
}
}
@@ -1382,10 +1381,10 @@ void mainDraw(int16 param) {
return;
}*/
- bgPtr = backgroundPtrtable[masterScreen];
+ bgPtr = backgroundScreens[masterScreen];
if (bgPtr) {
- gfxModuleData_gfxCopyScreen((char *)bgPtr, (char *)gfxModuleData.pPage10);
+ gfxModuleData_gfxCopyScreen(bgPtr, gfxModuleData.pPage10);
}
autoCellHead.next = NULL;
@@ -1433,9 +1432,9 @@ void mainDraw(int16 param) {
if ((params.state >= 0) && (objZ2 >= 0) && filesDatabase[objZ2].subData.ptr) {
if (filesDatabase[objZ2].subData.resourceType == 8) { // Poly
mainDrawPolygons(objZ2, currentObjPtr, objX2, params.scale, objY2, (char *)gfxModuleData.pPage10, (char *)filesDatabase[objZ2].subData.ptr); // poly
- } else if (filesDatabase[objZ2].subData.resourceType == 6) { // sound
- } else if (filesDatabase[objZ2].resType == 1) { //(num plan == 1)
- } else if (filesDatabase[objZ2].subData.resourceType == 4) {
+ } else if (filesDatabase[objZ2].subData.resourceType == OBJ_TYPE_SOUND) {
+ } else if (filesDatabase[objZ2].resType == OBJ_TYPE_MASK) {
+ } else if (filesDatabase[objZ2].subData.resourceType == OBJ_TYPE_SPRITE) {
objX1 = filesDatabase[objZ2].width; // width
spriteHeight = filesDatabase[objZ2].height; // height
@@ -1535,7 +1534,7 @@ void mainDraw(int16 param) {
currentObjPtr = cellHead.next;
while (currentObjPtr) {
- if (currentObjPtr->type == OBJ_TYPE_MSG && currentObjPtr->freeze == 0) {
+ if (currentObjPtr->type == OBJ_TYPE_MESSAGE && currentObjPtr->freeze == 0) {
drawMessage(currentObjPtr->gfxPtr, currentObjPtr->x, currentObjPtr->field_C, currentObjPtr->spriteIdx, currentObjPtr->color, gfxModuleData.pPage10);
isMessage = 1;
}
diff --git a/engines/cruise/mainDraw.h b/engines/cruise/mainDraw.h
index 84705badb5..dc988b551d 100644
--- a/engines/cruise/mainDraw.h
+++ b/engines/cruise/mainDraw.h
@@ -39,7 +39,7 @@ void pixel(int x, int y, char color);
void mainDraw(int16 param);
void flipScreen(void);
void buildPolyModel(int X, int Y, int scale, char *ptr2, char *destBuffer, char *dataPtr);
-void drawSprite(int objX1, int height, cellStruct *currentObjPtr, uint8 *data1, int objY2, int objX2, uint8 *output, uint8 *data2);
+void drawSprite(int width, int height, cellStruct *currentObjPtr, const uint8 *dataIn, int ys, int xs, uint8 *output, const uint8 *dataBuf);
void flipPoly(int fileId, int16 *dataPtr, int scale, char** newFrame, int X, int Y, int *outX, int *outY, int *outScale);
void getPolySize(int positionX, int positionY, int scale, int sizeTable[4], unsigned char *dataPtr);
bool findPoly(char* dataPtr, int x, int y, int zoom, int mouseX, int mouseY);