SAGA2: Fix tile rendering
This commit is contained in:
parent
d72f53efdc
commit
b4558ea22c
1 changed files with 1 additions and 123 deletions
|
@ -115,7 +115,6 @@ void unpackSprite(gPixelMap *map, uint8 *sprData) {
|
||||||
//}
|
//}
|
||||||
|
|
||||||
void drawTile(gPixelMap *map, int32 x, int32 y, int32 height, uint8 *srcData) {
|
void drawTile(gPixelMap *map, int32 x, int32 y, int32 height, uint8 *srcData) {
|
||||||
warning("STUB: drawTile()");
|
|
||||||
const byte *tilePointer;
|
const byte *tilePointer;
|
||||||
const byte *readPointer;
|
const byte *readPointer;
|
||||||
byte *drawPointer;
|
byte *drawPointer;
|
||||||
|
@ -124,15 +123,9 @@ void drawTile(gPixelMap *map, int32 x, int32 y, int32 height, uint8 *srcData) {
|
||||||
int row, col, count, lowBound;
|
int row, col, count, lowBound;
|
||||||
int bgRunCount;
|
int bgRunCount;
|
||||||
int fgRunCount;
|
int fgRunCount;
|
||||||
const int32 SAGA_ISOTILE_WIDTH = 32;
|
const int32 SAGA_ISOTILE_WIDTH = 64;
|
||||||
Point16 point(x, y);
|
Point16 point(x, y);
|
||||||
|
|
||||||
|
|
||||||
// if (tileIndex >= _tilesTable.size()) {
|
|
||||||
// error("IsoMap::drawTile wrong tileIndex");
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
if (point.x + SAGA_ISOTILE_WIDTH < 0) {
|
if (point.x + SAGA_ISOTILE_WIDTH < 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -141,10 +134,6 @@ void drawTile(gPixelMap *map, int32 x, int32 y, int32 height, uint8 *srcData) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((height <= 8) || (height > 64)) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
tilePointer = srcData;
|
tilePointer = srcData;
|
||||||
|
|
||||||
drawPoint = point;
|
drawPoint = point;
|
||||||
|
@ -155,99 +144,6 @@ void drawTile(gPixelMap *map, int32 x, int32 y, int32 height, uint8 *srcData) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if 0
|
|
||||||
if (location != NULL) {
|
|
||||||
if (location->z <= -16) {
|
|
||||||
if (location->z <= -48) {
|
|
||||||
if (location->u() < -THRESH8 || location->v() < -THRESH8) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (location->u() < THRESH0 || location->v() < THRESH0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (location->z >= 16) {
|
|
||||||
return;
|
|
||||||
} else {
|
|
||||||
switch (_tilesTable[tileIndex].getMaskRule()) {
|
|
||||||
case kMaskRuleNever:
|
|
||||||
return;
|
|
||||||
case kMaskRuleAlways:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
case kMaskRuleUMIN:
|
|
||||||
if (location->u() < THRESH0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleUMID:
|
|
||||||
if (location->u() < THRESH8) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleUMAX:
|
|
||||||
if (location->u() < THRESH16) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleVMIN:
|
|
||||||
if (location->v() < THRESH0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleVMID:
|
|
||||||
if (location->v() < THRESH8) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleVMAX:
|
|
||||||
if (location->v() < THRESH16) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleYMIN:
|
|
||||||
if (location->uv() < THRESH0 * 2) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleYMID:
|
|
||||||
if (location->uv() < THRESH8 * 2) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleYMAX:
|
|
||||||
if (location->uv() < THRESH16 * 2) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleUVMAX:
|
|
||||||
if (location->u() < THRESH16 && location->v() < THRESH16) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleUVMIN:
|
|
||||||
if (location->u() < THRESH0 || location->v() < THRESH0) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleUorV:
|
|
||||||
if (location->u() < THRESH8 && location->v() < THRESH8) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
case kMaskRuleUandV:
|
|
||||||
if (location->u() < THRESH8 || location->v() < THRESH8) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
readPointer = tilePointer;
|
readPointer = tilePointer;
|
||||||
lowBound = MIN((int)(drawPoint.y + height), (int)map->size.y);
|
lowBound = MIN((int)(drawPoint.y + height), (int)map->size.y);
|
||||||
for (row = drawPoint.y; row < lowBound; row++) {
|
for (row = drawPoint.y; row < lowBound; row++) {
|
||||||
|
@ -308,24 +204,6 @@ void drawTile(gPixelMap *map, int32 x, int32 y, int32 height, uint8 *srcData) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Compute dirty rect
|
|
||||||
int rectX = MAX<int>(drawPoint.x, 0);
|
|
||||||
int rectY = MAX<int>(drawPoint.y, 0);
|
|
||||||
int rectX2 = MIN<int>(drawPoint.x + SAGA_ISOTILE_WIDTH, map->size.x);
|
|
||||||
int rectY2 = lowBound;
|
|
||||||
debugC(3, kDebugTiles, "Rect = (%d,%d,%d,%d)", rectX, rectY, rectX2, rectY2);
|
|
||||||
|
|
||||||
// FIXME: Debug purposes-code for displaying things on the screen
|
|
||||||
// updateScreen should not be called here
|
|
||||||
warning("FIXME: drawTile");
|
|
||||||
Graphics::Surface sur;
|
|
||||||
sur.create(map->size.x, map->size.y, Graphics::PixelFormat::createFormatCLUT8());
|
|
||||||
sur.setPixels(map->data);
|
|
||||||
//sur.debugPrint();
|
|
||||||
g_system->copyRectToScreen(sur.getPixels(), sur.pitch, 0, 0, sur.w, sur.h);
|
|
||||||
g_system->updateScreen();
|
|
||||||
//g_vm->_render->addDirtyRect(Common::Rect(rectX, rectY, rectX2, rectY2));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue