Add a minimum visible height and no ground tile parameter to DrawTileProc.

Filter out tile parts which are entirely outside the drawing area.
This commit is contained in:
Jonathan G Rennison
2020-02-26 21:15:42 +00:00
parent 8ef367b126
commit 7949de2c05
13 changed files with 41 additions and 27 deletions

View File

@@ -555,13 +555,15 @@ struct TreeListEnt : PalSpriteID {
byte x, y;
};
static void DrawTile_Trees(TileInfo *ti)
static void DrawTile_Trees(TileInfo *ti, DrawTileProcParams params)
{
switch (GetTreeGround(ti->tile)) {
case TREE_GROUND_SHORE: DrawShoreTile(ti->tileh); break;
case TREE_GROUND_GRASS: DrawClearLandTile(ti, GetTreeDensity(ti->tile)); break;
case TREE_GROUND_ROUGH: DrawHillyLandTile(ti); break;
default: DrawGroundSprite(_clear_land_sprites_snow_desert[GetTreeDensity(ti->tile)] + SlopeToSpriteOffset(ti->tileh), PAL_NONE); break;
if (!params.no_ground_tiles) {
switch (GetTreeGround(ti->tile)) {
case TREE_GROUND_SHORE: DrawShoreTile(ti->tileh); break;
case TREE_GROUND_GRASS: DrawClearLandTile(ti, GetTreeDensity(ti->tile)); break;
case TREE_GROUND_ROUGH: DrawHillyLandTile(ti); break;
default: DrawGroundSprite(_clear_land_sprites_snow_desert[GetTreeDensity(ti->tile)] + SlopeToSpriteOffset(ti->tileh), PAL_NONE); break;
}
}
/* Do not draw trees when the invisible trees setting is set */