| OpenTTD
    | 
Functions related to OTTD's landscape. More...
Go to the source code of this file.
| Data Structures | |
| struct | SnowLine | 
| Structure describing the height of the snow line each day of the year.  More... | |
| Functions | |
| bool | IsSnowLineSet () | 
| Has a snow line table already been loaded. | |
| void | SetSnowLine (byte table[SNOW_LINE_MONTHS][SNOW_LINE_DAYS]) | 
| Set a variable snow line, as loaded from a newgrf file. | |
| byte | GetSnowLine () | 
| Get the current snow line, either variable or static. | |
| byte | HighestSnowLine () | 
| Get the highest possible snow line height, either variable or static. | |
| byte | LowestSnowLine () | 
| Get the lowest possible snow line height, either variable or static. | |
| void | ClearSnowLine () | 
| Clear the variable snow line table and free the memory. | |
| int | GetSlopeZInCorner (Slope tileh, Corner corner) | 
| Determine the Z height of a corner relative to TileZ. | |
| Slope | GetFoundationSlope (TileIndex tile, int *z=NULL) | 
| Get slope of a tile on top of a (possible) foundation If a tile does not have a foundation, the function returns the same as GetTileSlope. | |
| uint | GetPartialPixelZ (int x, int y, Slope corners) | 
| Determines height at given coordinate of a slope. | |
| int | GetSlopePixelZ (int x, int y) | 
| void | GetSlopePixelZOnEdge (Slope tileh, DiagDirection edge, int *z1, int *z2) | 
| Determine the Z height of the corners of a specific tile edge. | |
| static int | GetSlopePixelZInCorner (Slope tileh, Corner corner) | 
| Determine the Z height of a corner relative to TileZ. | |
| static Slope | GetFoundationPixelSlope (TileIndex tile, int *z) | 
| Get slope of a tile on top of a (possible) foundation If a tile does not have a foundation, the function returns the same as GetTilePixelSlope. | |
| static Point | RemapCoords (int x, int y, int z) | 
| Map 3D world or tile coordinate to equivalent 2D coordinate as used in the viewports and smallmap. | |
| static Point | RemapCoords2 (int x, int y) | 
| Map 3D world or tile coordinate to equivalent 2D coordinate as used in the viewports and smallmap. | |
| static Point | InverseRemapCoords (int x, int y) | 
| Map 2D viewport or smallmap coordinate to 3D world or tile coordinate. | |
| uint | ApplyFoundationToSlope (Foundation f, Slope *s) | 
| Applies a foundation to a slope. | |
| static uint | ApplyPixelFoundationToSlope (Foundation f, Slope *s) | 
| Applies a foundation to a slope. | |
| void | DrawFoundation (TileInfo *ti, Foundation f) | 
| Draw foundation f at tile ti. | |
| bool | HasFoundationNW (TileIndex tile, Slope slope_here, uint z_here) | 
| bool | HasFoundationNE (TileIndex tile, Slope slope_here, uint z_here) | 
| void | DoClearSquare (TileIndex tile) | 
| void | RunTileLoop () | 
| Gradually iterate over all tiles on the map, calling their TileLoopProcs once every 256 ticks. | |
| void | InitializeLandscape () | 
| void | GenerateLandscape (byte mode) | 
| Variables | |
| static const uint | SNOW_LINE_MONTHS = 12 | 
| Number of months in the snow line table. | |
| static const uint | SNOW_LINE_DAYS = 32 | 
| Number of days in each month in the snow line table. | |
Functions related to OTTD's landscape.
Definition in file landscape.h.
| uint ApplyFoundationToSlope | ( | Foundation | f, | 
| Slope * | s | ||
| ) | 
Applies a foundation to a slope.
| f | The Foundation. | 
| s | The Slope to modify. | 
Definition at line 99 of file landscape.cpp.
References FOUNDATION_INCLINED_X, FOUNDATION_INCLINED_Y, FOUNDATION_STEEP_BOTH, FOUNDATION_STEEP_LOWER, GetHalftileFoundationCorner(), GetHighestSlopeCorner(), GetRailFoundationCorner(), HalftileSlope(), IsFoundation(), IsLeveledFoundation(), IsNonContinuousFoundation(), IsSpecialRailFoundation(), IsSteepSlope(), OppositeCorner(), SLOPE_FLAT, SLOPE_NE, SLOPE_NW, SLOPE_SE, SLOPE_SW, SlopeWithOneCornerRaised(), and SlopeWithThreeCornersRaised().
Referenced by ApplyPixelFoundationToSlope(), CheckBridgeSlopeNorth(), CheckBridgeSlopeSouth(), DrawRailCatenaryRailway(), FloodHalftile(), GetBridgeHeight(), GetFoundationSlope(), HasBridgeFlatRamp(), and TestAutoslopeOnRailTile().
| 
 | inlinestatic | 
Applies a foundation to a slope.
| f | The Foundation. | 
| s | The Slope to modify. | 
Definition at line 127 of file landscape.h.
References ApplyFoundationToSlope(), and TILE_HEIGHT.
Referenced by DrawFoundation().
| void DrawFoundation | ( | TileInfo * | ti, | 
| Foundation | f | ||
| ) | 
Draw foundation f at tile ti.
Updates ti.
| ti | Tile to draw foundation on | 
| f | Foundation to draw | 
Definition at line 390 of file landscape.cpp.
References AddSortableSpriteToDraw(), ApplyPixelFoundationToSlope(), FOUNDATION_INCLINED_X, FOUNDATION_INCLINED_Y, FOUNDATION_STEEP_BOTH, FOUNDATION_STEEP_LOWER, GetFoundationPixelSlope(), GetHalftileFoundationCorner(), GetHighestSlopeCorner(), GetRailFoundationCorner(), IsFoundation(), IsInclinedFoundation(), IsLeveledFoundation(), IsNonContinuousFoundation(), IsSpecialRailFoundation(), IsSteepSlope(), OffsetGroundSprite(), SLOPE_EW, SLOPE_NE, SLOPE_NS, SLOPE_STEEP, SLOPE_SW, SlopeWithOneCornerRaised(), SlopeWithThreeCornersRaised(), SPR_HALFTILE_FOUNDATION_BASE, TileInfo::tile, TILE_HEIGHT, TileInfo::tileh, TileInfo::x, TileInfo::y, and TileInfo::z.
Referenced by DrawRoadBits(), DrawTile_Road(), DrawTile_Town(), DrawTile_TunnelBridge(), and DrawTrackBits().
| void GenerateLandscape | ( | byte | mode | ) | 
Number of steps of landscape generation
< Loading a heightmap
< Terragenesis generator
< Original generator
< Extra steps needed for tropic landscape
< Extra steps for other landscapes
Definition at line 1211 of file landscape.cpp.
References _file_to_saveload, _settings_game, Clamp(), GameSettings::construction, CreateRivers(), CUSTOM_SEA_LEVEL_NUMBER_DIFFICULTY, FileToSaveLoad::detail_ftype, GameSettings::difficulty, FixSlopes(), ConstructionSettings::freeform_edges, GameSettings::game_creation, GB(), GenerateTerrainPerlin(), GWM_HEIGHTMAP, GWP_LANDSCAPE, IncreaseGeneratingWorldProgress(), GameCreationSettings::land_generator, GameCreationSettings::landscape, LG_TERRAGENESIS, LoadHeightmap(), MakeVoid(), MapSizeX(), MapSizeY(), FileToSaveLoad::name, DifficultySettings::quantity_sea_lakes, ScaleByMapSize(), SetGeneratingWorldProgress(), DifficultySettings::terrain_type, and TileXY().
Referenced by _GenerateWorld().
Get slope of a tile on top of a (possible) foundation If a tile does not have a foundation, the function returns the same as GetTilePixelSlope.
| tile | The tile of interest. | 
| z | returns the z of the foundation slope. (Can be NULL, if not needed) | 
Definition at line 67 of file landscape.h.
References GetFoundationSlope(), and TILE_HEIGHT.
Referenced by DrawFoundation().
Get slope of a tile on top of a (possible) foundation If a tile does not have a foundation, the function returns the same as GetTileSlope.
| tile | The tile of interest. | 
| z | returns the z of the foundation slope. (Can be NULL, if not needed) | 
Definition at line 342 of file landscape.cpp.
References ApplyFoundationToSlope(), GetTileSlope(), and GetTileType().
Referenced by GetFoundationPixelSlope(), IsPossibleCrossing(), IsRoadAllowedHere(), and TileLoop_Water().
| uint GetPartialPixelZ | ( | int | x, | 
| int | y, | ||
| Slope | corners | ||
| ) | 
Determines height at given coordinate of a slope.
| x | x coordinate | 
| y | y coordinate | 
| corners | slope to examine | 
Definition at line 152 of file landscape.cpp.
References GetHalftileSlopeCorner(), GetSlopeMaxPixelZ(), IsHalftileSlope(), RemoveHalftileSlope(), SLOPE_E, SLOPE_ELEVATED, SLOPE_ENW, SLOPE_EW, SLOPE_N, SLOPE_NE, SLOPE_NS, SLOPE_NW, SLOPE_NWS, SLOPE_S, SLOPE_SE, SLOPE_SEN, SLOPE_STEEP_E, SLOPE_STEEP_N, SLOPE_STEEP_S, SLOPE_STEEP_W, SLOPE_SW, SLOPE_W, and SLOPE_WSE.
Referenced by DrawRoadBits().
Determine the Z height of a corner relative to TileZ.
| tileh | The slope. | 
| corner | The corner. | 
Definition at line 54 of file landscape.h.
References GetSlopeZInCorner(), and TILE_HEIGHT.
Referenced by DrawTrackFence().
| void GetSlopePixelZOnEdge | ( | Slope | tileh, | 
| DiagDirection | edge, | ||
| int * | z1, | ||
| int * | z2 | ||
| ) | 
Determine the Z height of the corners of a specific tile edge.
| tileh | The slope of the tile. | 
| edge | The edge of interest. | 
| z1 | Gets incremented by the height of the first corner of the edge. (near corner wrt. the camera) | 
| z2 | Gets incremented by the height of the second corner of the edge. (far corner wrt. the camera) | 
Definition at line 313 of file landscape.cpp.
References GetHalftileSlopeCorner(), IsHalftileSlope(), RemoveHalftileSlope(), SLOPE_E, SLOPE_N, SLOPE_S, SLOPE_STEEP_E, SLOPE_STEEP_N, SLOPE_STEEP_S, SLOPE_STEEP_W, SLOPE_W, SlopeWithOneCornerRaised(), and TILE_HEIGHT.
Referenced by DrawBridgePillars().
Determine the Z height of a corner relative to TileZ.
| tileh | The slope. | 
| corner | The corner. | 
Definition at line 295 of file landscape.cpp.
References IsHalftileSlope(), SlopeWithOneCornerRaised(), and SteepSlope().
Referenced by GetSlopePixelZInCorner(), and TestAutoslopeOnRailTile().
| 
 | inlinestatic | 
Map 2D viewport or smallmap coordinate to 3D world or tile coordinate.
Function assumes z == 0. For other values of z, add z to y before the call. 
| x | X coordinate of the 2D coordinate. | 
| y | Y coordinate of the 2D coordinate. | 
Definition at line 112 of file landscape.h.
Referenced by SmallMapWindow::SetNewScroll(), and ViewportAddLandscape().
| 
 | inlinestatic | 
Map 3D world or tile coordinate to equivalent 2D coordinate as used in the viewports and smallmap.
| x | X world or tile coordinate (runs in SW direction in the 2D view). | 
| y | Y world or tile coordinate (runs in SE direction in the 2D view). | 
| z | Z world or tile coordinate (runs in N direction in the 2D view). | 
Definition at line 83 of file landscape.h.
Referenced by AddCombinedSprite(), AddSortableSpriteToDraw(), AddTileSpriteToDraw(), CcStartStopVehicle(), DrawCommonTileSeqInGUI(), DrawGroundSpriteAt(), MarkTileDirtyByTile(), MarkTileDirtyByTileOutsideMap(), RemapCoords2(), SetSelectionTilesDirty(), SetupScreenshotViewport(), ShowCostOrIncomeAnimation(), ShowFeederIncomeAnimation(), ShowFillingPercent(), Vehicle::UpdateViewport(), Sign::UpdateVirtCoord(), and ViewportDrawBoundingBoxes().
| 
 | inlinestatic | 
Map 3D world or tile coordinate to equivalent 2D coordinate as used in the viewports and smallmap.
Same as RemapCoords, except the Z coordinate is read from the map.
| x | X world or tile coordinate (runs in SW direction in the 2D view). | 
| y | Y world or tile coordinate (runs in SE direction in the 2D view). | 
Definition at line 99 of file landscape.h.
References RemapCoords().
Referenced by ErrmsgWindow::OnInitialPosition(), Waypoint::UpdateVirtCoord(), Town::UpdateVirtCoord(), and Station::UpdateVirtCoord().
 1.8.1.2
 1.8.1.2