(svn r3996) -Fix: Slope and height information returned for some tile types is wrong

This leads to graphical glitches when drawing foundations.
This doesn't fix all problems, but at least some of them.
pull/155/head
tron 19 years ago
parent 4b86230d94
commit 4d3364d811

@ -16,12 +16,12 @@ static void DrawTile_Dummy(TileInfo *ti)
static uint GetSlopeZ_Dummy(const TileInfo* ti)
{
return GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
return 0;
}
static uint GetSlopeTileh_Dummy(const TileInfo* ti)
{
return ti->tileh;
return 0;
}
static int32 ClearTile_Dummy(TileIndex tile, byte flags)

@ -399,7 +399,7 @@ static void DrawTile_Industry(TileInfo *ti)
static uint GetSlopeZ_Industry(const TileInfo* ti)
{
return GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
return ti->z + (ti->tileh == 0 ? 0 : 8);
}
static uint GetSlopeTileh_Industry(const TileInfo* ti)

@ -2032,7 +2032,7 @@ void StationPickerDrawSprite(int x, int y, RailType railtype, int image)
static uint GetSlopeZ_Station(const TileInfo* ti)
{
return (ti->tileh != 0) ? ti->z + 8 : ti->z;
return ti->z + (ti->tileh == 0 ? 0 : 8);
}
static uint GetSlopeTileh_Station(const TileInfo *ti)

@ -144,14 +144,12 @@ static void DrawTile_Town(TileInfo *ti)
static uint GetSlopeZ_Town(const TileInfo* ti)
{
uint z = GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
if (ti->tileh != 0) z = (z & ~7) + 4;
return (uint16) z;
return ti->z + (ti->tileh == 0 ? 0 : 8);
}
static uint GetSlopeTileh_Town(const TileInfo *ti)
{
return ti->tileh;
return 0;
}
static void AnimateTile_Town(TileIndex tile)

@ -184,12 +184,16 @@ static void DrawTile_Unmovable(TileInfo *ti)
static uint GetSlopeZ_Unmovable(const TileInfo* ti)
{
return GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh) + ti->z;
if (_m[ti->tile].m5 == 3) {
return ti->z + GetPartialZ(ti->x & 0xF, ti->y & 0xF, ti->tileh);
} else {
return ti->z + (ti->tileh == 0 ? 0 : 8);
}
}
static uint GetSlopeTileh_Unmovable(const TileInfo *ti)
{
return 0;
return _m[ti->tile].m5 == 3 ? ti->tileh : 0;
}
static int32 ClearTile_Unmovable(TileIndex tile, byte flags)

Loading…
Cancel
Save