diff options
author | Filippos Karapetis | 2012-12-11 04:03:22 +0200 |
---|---|---|
committer | Filippos Karapetis | 2012-12-11 04:03:22 +0200 |
commit | f23e7a246c900870dadf2ed764b22fd1b1795c03 (patch) | |
tree | 75e2ef77651566814f0be4a606cff0b6eecd7a45 | |
parent | ee613fe77ba23b8a731789fc3da78fe9571717f1 (diff) | |
download | scummvm-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.cpp | 86 |
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); |