(svn r5641) -Fix: Adjust/correct some bounding boxes. This fixes some graphical glitches near bridges

This commit is contained in:
tron 2006-07-30 07:42:37 +00:00
parent 801bf631b0
commit a46aa3153c
2 changed files with 16 additions and 8 deletions

View File

@ -241,7 +241,7 @@ void DrawFoundation(TileInfo *ti, uint f)
AddSortableSpriteToDraw( AddSortableSpriteToDraw(
HASBIT(M(SLOPE_W) | M(SLOPE_S) | M(SLOPE_E) | M(SLOPE_N), ti->tileh) ? HASBIT(M(SLOPE_W) | M(SLOPE_S) | M(SLOPE_E) | M(SLOPE_N), ti->tileh) ?
sprite_base + (f - 15) : SPR_FOUNDATION_BASE + ti->tileh, sprite_base + (f - 15) : SPR_FOUNDATION_BASE + ti->tileh,
ti->x, ti->y, 1, 1, 1, ti->z ti->x, ti->y, 16, 16, 1, ti->z
); );
#undef M #undef M

View File

@ -858,10 +858,10 @@ static void DrawBridgePillars(PalSpriteID image, const TileInfo *ti, int x, int
const byte *p; const byte *p;
static const byte _tileh_bits[4][8] = { static const byte _tileh_bits[4][8] = {
{2,1,8,4, 16,11,0,9}, { 2, 1, 8, 4, 16, 2, 0, 9 },
{1,8,4,2, 11,16,9,0}, { 1, 8, 4, 2, 2, 16, 9, 0 },
{4,8,1,2, 16,11,0,9}, { 4, 8, 1, 2, 16, 2, 0, 9 },
{2,4,8,1, 11,16,9,0}, { 2, 4, 8, 1, 2, 16, 9, 0 }
}; };
if (_display_opt & DO_TRANS_BUILDINGS) MAKE_TRANSPARENT(image); if (_display_opt & DO_TRANS_BUILDINGS) MAKE_TRANSPARENT(image);
@ -876,12 +876,15 @@ static void DrawBridgePillars(PalSpriteID image, const TileInfo *ti, int x, int
} }
for (; z >= front_height || z >= back_height; z -= TILE_HEIGHT) { for (; z >= front_height || z >= back_height; z -= TILE_HEIGHT) {
/* HACK set height of the BB of pillars to 1, because the origin of the
* sprites is at the top
*/
if (z >= front_height) { // front facing pillar if (z >= front_height) { // front facing pillar
AddSortableSpriteToDraw(image, x, y, p[4], p[5], 0x28, z); AddSortableSpriteToDraw(image, x, y, p[4], p[5], 1, z);
} }
if (drawfarpillar && z >= back_height && z < i - TILE_HEIGHT) { // back facing pillar if (drawfarpillar && z >= back_height && z < i - TILE_HEIGHT) { // back facing pillar
AddSortableSpriteToDraw(image, x - p[6], y - p[7], p[4], p[5], 0x28, z); AddSortableSpriteToDraw(image, x - p[6], y - p[7], p[4], p[5], 1, z);
} }
} }
} }
@ -987,7 +990,12 @@ static void DrawTile_TunnelBridge(TileInfo *ti)
// draw ramp // draw ramp
if (_display_opt & DO_TRANS_BUILDINGS) MAKE_TRANSPARENT(image); if (_display_opt & DO_TRANS_BUILDINGS) MAKE_TRANSPARENT(image);
AddSortableSpriteToDraw(image, ti->x, ti->y, 16, 16, 7, ti->z); /* HACK set the height of the BB of a sloped ramp to 1 so a vehicle on
* it doesn't disappear behind it
*/
AddSortableSpriteToDraw(
image, ti->x, ti->y, 16, 16, ti->tileh == SLOPE_FLAT ? 1 : 8, ti->z
);
} else { } else {
// bridge middle part. // bridge middle part.
Axis axis = GetBridgeAxis(ti->tile); Axis axis = GetBridgeAxis(ti->tile);