aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFilippos Karapetis2012-12-11 04:03:22 +0200
committerFilippos Karapetis2012-12-11 04:03:22 +0200
commitf23e7a246c900870dadf2ed764b22fd1b1795c03 (patch)
tree75e2ef77651566814f0be4a606cff0b6eecd7a45
parentee613fe77ba23b8a731789fc3da78fe9571717f1 (diff)
downloadscummvm-rg350-f23e7a246c900870dadf2ed764b22fd1b1795c03.tar.gz
scummvm-rg350-f23e7a246c900870dadf2ed764b22fd1b1795c03.tar.bz2
scummvm-rg350-f23e7a246c900870dadf2ed764b22fd1b1795c03.zip
TINSEL: Merge the different TinselV0/V1 graphics code handlers
-rw-r--r--engines/tinsel/graphics.cpp86
1 files changed, 25 insertions, 61 deletions
diff --git a/engines/tinsel/graphics.cpp b/engines/tinsel/graphics.cpp
index 8533be4631..876d182a1a 100644
--- a/engines/tinsel/graphics.cpp
+++ b/engines/tinsel/graphics.cpp
@@ -872,53 +872,31 @@ void DrawObject(DRAWOBJECT *pObj) {
(pObj->flags & DMA_FLIPH), packType);
}
- } else if (TinselV1PSX) {
- // Tinsel v1 decoders, PSX specific variants
+ } else { // TinselV1
switch (typeId) {
case 0x01:
case 0x41:
- PsxDrawTiles(pObj, srcPtr, destPtr, typeId >= 0x40, psxFourBitClut, psxSkipBytes, psxMapperTable, true);
- break;
- case 0x08:
- case 0x48:
- PsxDrawTiles(pObj, srcPtr, destPtr, typeId >= 0x40, psxFourBitClut, psxSkipBytes, psxMapperTable, false);
- break;
- case 0x84:
- case 0xC4:
- // WrtTrans with/without clipping
- WrtTrans(pObj, destPtr, typeId == 0xC4);
- break;
- case 0x04:
- case 0x44:
- // WrtConst with/without clipping
- WrtConst(pObj, destPtr, typeId == 0x44);
- break;
- default:
- error("Unknown drawing type %d", typeId);
- }
- } else if (TinselV1Mac) {
- // Tinsel v1 Mac decoders
- // TODO: Finish this
- switch (typeId) {
- case 0x01:
- case 0x41:
- // TODO
+ if (TinselV1PSX) {
+ PsxDrawTiles(pObj, srcPtr, destPtr, typeId >= 0x40, psxFourBitClut, psxSkipBytes, psxMapperTable, true);
+ } else if (TinselV1Mac) {
+ // TODO
+ } else if (TinselV1) {
+ WrtNonZero(pObj, srcPtr, destPtr, typeId >= 0x40);
+ } else if (TinselV0) {
+ t0WrtNonZero(pObj, srcPtr, destPtr, typeId >= 0x40);
+ }
break;
case 0x08:
case 0x48:
- WrtAll(pObj, srcPtr, destPtr, typeId >= 0x40);
- break;
- default:
- error("Unknown drawing type %d", typeId);
- }
- } else if (TinselV1) {
- // Tinsel v1 decoders
- switch (typeId) {
- case 0x01:
- case 0x08:
- case 0x41:
- case 0x48:
- WrtNonZero(pObj, srcPtr, destPtr, typeId >= 0x40);
+ if (TinselV1PSX) {
+ PsxDrawTiles(pObj, srcPtr, destPtr, typeId >= 0x40, psxFourBitClut, psxSkipBytes, psxMapperTable, false);
+ } else if (TinselV1Mac) {
+ WrtAll(pObj, srcPtr, destPtr, typeId >= 0x40);
+ } else if (TinselV1) {
+ WrtNonZero(pObj, srcPtr, destPtr, typeId >= 0x40);
+ } else if (TinselV0) {
+ WrtAll(pObj, srcPtr, destPtr, typeId >= 0x40);
+ }
break;
case 0x04:
case 0x44:
@@ -927,26 +905,12 @@ void DrawObject(DRAWOBJECT *pObj) {
break;
case 0x84:
case 0xC4:
- // WrtTrans with/without clipping
- WrtTrans(pObj, destPtr, typeId == 0xC4);
- break;
- default:
- error("Unknown drawing type %d", typeId);
- }
- } else {
- // Tinsel v0 decoders
- switch (typeId) {
- case 0x01:
- case 0x41:
- t0WrtNonZero(pObj, srcPtr, destPtr, typeId >= 0x40);
- break;
- case 0x08:
- case 0x48:
- WrtAll(pObj, srcPtr, destPtr, typeId >= 0x40);
- break;
- case 0x84:
- case 0xC4:
- WrtTrans(pObj, destPtr, (typeId & 0x40) != 0);
+ if (!TinselV0) {
+ // WrtTrans with/without clipping
+ WrtTrans(pObj, destPtr, typeId == 0xC4);
+ } else {
+ WrtTrans(pObj, destPtr, (typeId & 0x40) != 0);
+ }
break;
default:
error("Unknown drawing type %d", typeId);