(svn r11669) -Codechange: refactor tile.h -> tile_type.h and tile_map.h

This commit is contained in:
rubidium 2007-12-19 23:26:02 +00:00
parent d582aea639
commit 5b49e75453
74 changed files with 233 additions and 224 deletions

View File

@ -372,7 +372,7 @@
RelativePath=".\..\src\thread.cpp">
</File>
<File
RelativePath=".\..\src\tile.cpp">
RelativePath=".\..\src\tile_map.cpp">
</File>
<File
RelativePath=".\..\src\vehicle.cpp">

View File

@ -728,7 +728,7 @@
>
</File>
<File
RelativePath=".\..\src\tile.cpp"
RelativePath=".\..\src\tile_map.cpp"
>
</File>
<File

View File

@ -725,7 +725,7 @@
>
</File>
<File
RelativePath=".\..\src\tile.cpp"
RelativePath=".\..\src\tile_map.cpp"
>
</File>
<File

View File

@ -75,7 +75,7 @@ strings.cpp
texteff.cpp
tgp.cpp
thread.cpp
tile.cpp
tile_map.cpp
#if WIN32
#else
#if WINCE

View File

@ -11,7 +11,6 @@
#include "../../road_map.h"
#include "../../roadveh.h"
#include "../../station_map.h"
#include "../../tile.h"
#include "../../player.h"
#include "../../tunnel_map.h"
#include "../../vehicle.h"

View File

@ -6,7 +6,6 @@
#include "../../functions.h"
#include "../../map.h"
#include "../../road_map.h"
#include "../../tile.h"
#include "../../vehicle.h"
#include "../../command.h"
#include "trolly.h"

View File

@ -6,7 +6,6 @@
#include "../../debug.h"
#include "../../functions.h"
#include "../../map.h"
#include "../../tile.h"
#include "../../command.h"
#include "trolly.h"
#include "../../depot.h"

View File

@ -25,7 +25,6 @@
#include "../../station_map.h"
#include "table/strings.h"
#include "../../map.h"
#include "../../tile.h"
#include "../../command.h"
#include "trolly.h"
#include "../../town.h"

View File

@ -13,7 +13,6 @@
#include "strings.h"
#include "table/strings.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
#include "timetable.h"
#include "depot.h"

View File

@ -10,7 +10,6 @@
#include "map.h"
#include "rail_type.h"
#include "road_map.h"
#include "tile.h"
/**

View File

@ -10,7 +10,6 @@
#include "functions.h"
#include "map.h"
#include "player.h"
#include "tile.h"
#include "viewport.h"
#include "command.h"
#include "tunnel_map.h"

View File

@ -6,7 +6,6 @@
#define CLEAR_MAP_H
#include "macros.h"
#include "tile.h"
#include "bridge_map.h"
/**

View File

@ -9,6 +9,7 @@
#include "functions.h"
#include "landscape.h"
#include "map.h"
#include "tile_map.h"
#include "gui.h"
#include "command.h"
#include "player.h"
@ -16,7 +17,6 @@
#include "variables.h"
#include "genworld.h"
#include "newgrf_storage.h"
#include "tile.h"
const char *_cmd_text = NULL;

View File

@ -8,7 +8,6 @@
#include "depot.h"
#include "functions.h"
#include "landscape.h"
#include "tile.h"
#include "map.h"
#include "table/strings.h"
#include "saveload.h"

View File

@ -7,7 +7,6 @@
#include "direction_type.h"
#include "oldpool.h"
#include "tile.h"
#include "variables.h"
#include "road_map.h"
#include "rail_map.h"

View File

@ -25,7 +25,6 @@
#include "table/strings.h"
#include "strings.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
#include "command.h"
#include "news.h"

View File

@ -8,6 +8,7 @@
#include "table/strings.h"
#include "functions.h"
#include "map.h"
#include "tile_map.h"
#include "station.h"
#include "gui.h"
#include "window_gui.h"

View File

@ -48,7 +48,6 @@
#include "stdafx.h"
#include "openttd.h"
#include "station_map.h"
#include "tile.h"
#include "viewport.h"
#include "functions.h" /* We should REALLY get rid of this goddamn file, as it is butt-ugly */
#include "variables.h" /* ... same here */

View File

@ -12,7 +12,6 @@
#include "window_gui.h"
#include "textbuf_gui.h"
#include "gfx.h"
#include "tile.h"
#include "strings.h"
#include "gfxinit.h"
#include "player.h"

View File

@ -9,7 +9,7 @@
#include "window_type.h"
#include "rail_type.h"
#include "road_type.h"
#include "vehicle.h"
#include "vehicle_type.h"
/* main_gui.cpp */
void CcPlaySound10(bool success, TileIndex tile, uint32 p1, uint32 p2);

View File

@ -12,7 +12,6 @@
#include "strings.h"
#include "table/sprites.h"
#include "map.h"
#include "tile.h"
#include "train.h"
#include "landscape.h"
#include "viewport.h"

View File

@ -7,7 +7,7 @@
#include "industry.h"
#include "macros.h"
#include "tile.h"
#include "tile_map.h"

View File

@ -11,7 +11,6 @@
#include "player.h"
#include "spritecache.h"
#include "table/sprites.h"
#include "tile.h"
#include <stdarg.h>
#include "viewport.h"
#include "command.h"

View File

@ -13,7 +13,6 @@
#include "table/sprites.h"
#include "table/strings.h"
#include "map.h"
#include "tile.h"
#include "gui.h"
#include "window_gui.h"
#include "window_func.h"

View File

@ -7,6 +7,7 @@
#include "stdafx.h"
#include "direction_func.h"
#include "tile_type.h"
extern uint _map_tile_mask;
@ -135,11 +136,6 @@ uint ScaleByMapSize(uint);
*/
uint ScaleByMapSize1D(uint);
/**
* The index/ID of a Tile.
*/
typedef uint32 TileIndex;
/**
* An offset value between to tiles.
*

View File

@ -17,6 +17,7 @@
#include "strings.h"
#include "table/tree_land.h"
#include "map.h"
#include "tile_map.h"
#include "gui.h"
#include "window_gui.h"
#include "station_gui.h"

View File

@ -10,6 +10,7 @@
#include "newgrf_commons.h"
#include "newgrf_spritegroup.h"
#include "newgrf_canal.h"
#include "tile_map.h"
/** Table of canal 'feature' sprite groups */

View File

@ -12,6 +12,7 @@
#include "industry.h"
#include "newgrf.h"
#include "newgrf_commons.h"
#include "tile_map.h"
/** Constructor of generic class
* @param offset end of original data for this entity. i.e: houses = 110

View File

@ -10,7 +10,6 @@
#include "viewport.h"
#include "landscape.h"
#include "date.h"
#include "tile.h"
#include "town.h"
#include "town_map.h"
#include "sound.h"

View File

@ -14,7 +14,6 @@
#include "pathfind.h"
#include "station.h"
#include "station_map.h"
#include "tile.h"
#include "depot.h"
#include "tunnel_map.h"
#include "network/network.h"

View File

@ -9,7 +9,7 @@
#include "aystar.h"
#include "station.h"
#include "vehicle.h"
#include "tile.h"
#include "tile_type.h"
/* mowing grass */
enum {

View File

@ -9,8 +9,6 @@
#include "driver.h"
#include "saveload.h"
#include "map.h"
#include "tile.h"
#include "void_map.h"
#include "helpers.hpp"
#include "openttd.h"
@ -79,6 +77,7 @@
#include "unmovable_map.h"
#include "tree_map.h"
#include "tunnelbridge_map.h"
#include "void_map.h"
#include <stdarg.h>

View File

@ -26,10 +26,10 @@ struct Pair {
};
#include "map.h"
#include "slope.h"
#include "slope_type.h"
#include "vehicle_type.h"
// Forward declarations of structs.
struct Vehicle;
struct Depot;
struct Waypoint;
struct Station;
@ -55,7 +55,6 @@ static const StringID INVALID_STRING_ID = 0xFFFF;
typedef EngineID *EngineList; ///< engine list type placeholder acceptable for C code (see helpers.cpp)
/* IDs used in Pools */
typedef uint16 VehicleID;
typedef uint16 StationID;
static const StationID INVALID_STATION = 0xFFFF;
typedef uint16 RoadStopID;

View File

@ -11,7 +11,6 @@
#include "strings.h"
#include "functions.h"
#include "map.h"
#include "tile.h"
#include "gui.h"
#include "window_gui.h"
#include "gfx.h"

View File

@ -10,7 +10,6 @@
#include "functions.h"
#include "landscape.h"
#include "map.h"
#include "tile.h"
#include "pathfind.h"
#include "rail_type.h"
#include "debug.h"

View File

@ -29,6 +29,7 @@
#include "group.h"
#include "settings.h"
#include "window_func.h"
#include "tile_map.h"
/**
* Sets the local player and updates the patch settings that are set on a

View File

@ -8,7 +8,6 @@
#include "gfx.h"
#include "rail_type.h"
#include "track_type.h"
#include "tile.h"
#include "variables.h"
/** This struct contains all the info that is needed to draw and construct tracks.
@ -228,8 +227,6 @@ void DrawCatenaryOnTunnel(const TileInfo *ti);
Foundation GetRailFoundation(Slope tileh, TrackBits bits);
void FloodHalftile(TileIndex t);
int32 SettingsDisableElrail(int32 p1); ///< _patches.disable_elrail callback
#endif /* RAIL_H */

View File

@ -15,7 +15,6 @@
#include "table/strings.h"
#include "map.h"
#include "landscape.h"
#include "tile.h"
#include "town_map.h"
#include "tunnel_map.h"
#include "vehicle.h"

View File

@ -11,7 +11,6 @@
#include "landscape.h"
#include "date.h"
#include "map.h"
#include "tile.h"
#include "gui.h"
#include "window_gui.h"
#include "station_gui.h"

View File

@ -8,7 +8,7 @@
#include "direction_func.h"
#include "track_func.h"
#include "rail.h"
#include "tile.h"
#include "tile_map.h"
/** Different types of Rail-related tiles */

View File

@ -17,7 +17,6 @@
#include "functions.h"
#include "map.h"
#include "landscape.h"
#include "tile.h"
#include "town_map.h"
#include "vehicle.h"
#include "viewport.h"

View File

@ -9,7 +9,6 @@
#include "strings.h"
#include "functions.h"
#include "map.h"
#include "tile.h"
#include "gui.h"
#include "window_gui.h"
#include "station_gui.h"

View File

@ -9,7 +9,7 @@
#include "track_func.h"
#include "rail_type.h"
#include "road_func.h"
#include "tile.h"
#include "tile_map.h"
enum RoadTileType {

View File

@ -13,7 +13,6 @@
#include "table/strings.h"
#include "strings.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
#include "timetable.h"
#include "engine.h"

View File

@ -10,7 +10,6 @@
#include "functions.h"
#include "landscape.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
#include "timetable.h"
#include "command.h"

View File

@ -1,71 +1,12 @@
/* $Id$ */
/** @file slope.h Definitions of a slope.
* This file defines the enumeration and helper functions for handling
* the slope info of a tile.
*/
/** @file slope_func.h Functions related to slopes. */
#ifndef SLOPE_H
#define SLOPE_H
#ifndef SLOPE_FUNC_H
#define SLOPE_FUNC_H
/**
* Enumeration of tile corners
*/
enum Corner {
CORNER_W = 0,
CORNER_S = 1,
CORNER_E = 2,
CORNER_N = 3,
CORNER_END,
CORNER_INVALID = 0xFF
};
/**
* Enumeration for the slope-type.
*
* This enumeration use the chars N,E,S,W corresponding the
* direction north, east, south and west. The top corner of a tile
* is the north-part of the tile. The whole slope is encoded with
* 5 bits, 4 bits for each corner and 1 bit for a steep-flag.
*
* For halftile slopes an extra 3 bits are used to represent this
* properly; 1 bit for a halftile-flag and 2 bits to encode which
* extra side (corner) is leveled when the slope of the first 5
* bits is applied. This means that there can only be one leveled
* slope for steep slopes, which is logical because two leveled
* slopes would mean that it is not a steep slope as halftile
* slopes only span one height level.
*/
enum Slope {
SLOPE_FLAT = 0x00, ///< a flat tile
SLOPE_W = 0x01, ///< the west corner of the tile is raised
SLOPE_S = 0x02, ///< the south corner of the tile is raised
SLOPE_E = 0x04, ///< the east corner of the tile is raised
SLOPE_N = 0x08, ///< the north corner of the tile is raised
SLOPE_STEEP = 0x10, ///< indicates the slope is steep
SLOPE_NW = SLOPE_N | SLOPE_W, ///< north and west corner are raised
SLOPE_SW = SLOPE_S | SLOPE_W, ///< south and west corner are raised
SLOPE_SE = SLOPE_S | SLOPE_E, ///< south and east corner are raised
SLOPE_NE = SLOPE_N | SLOPE_E, ///< north and east corner are raised
SLOPE_EW = SLOPE_E | SLOPE_W, ///< east and west corner are raised
SLOPE_NS = SLOPE_N | SLOPE_S, ///< north and south corner are raised
SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, ///< all corner are raised, similar to SLOPE_FLAT
SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S, ///< north, west and south corner are raised
SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E, ///< west, south and east corner are raised
SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N, ///< south, east and north corner are raised
SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W, ///< east, north and west corner are raised
SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS, ///< a steep slope falling to east (from west)
SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE, ///< a steep slope falling to north (from south)
SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN, ///< a steep slope falling to west (from east)
SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW, ///< a steep slope falling to south (from north)
SLOPE_HALFTILE = 0x20, ///< one halftile is leveled (non continuous slope)
SLOPE_HALFTILE_MASK = 0xE0, ///< three bits used for halftile slopes
SLOPE_HALFTILE_W = SLOPE_HALFTILE | (CORNER_W << 6), ///< the west halftile is leveled (non continuous slope)
SLOPE_HALFTILE_S = SLOPE_HALFTILE | (CORNER_S << 6), ///< the south halftile is leveled (non continuous slope)
SLOPE_HALFTILE_E = SLOPE_HALFTILE | (CORNER_E << 6), ///< the east halftile is leveled (non continuous slope)
SLOPE_HALFTILE_N = SLOPE_HALFTILE | (CORNER_N << 6), ///< the north halftile is leveled (non continuous slope)
};
#include "slope_type.h"
#include "direction_type.h"
/**
* Rangecheck for Corner enumeration.
@ -78,6 +19,7 @@ static inline bool IsValidCorner(Corner corner)
return IsInsideMM(corner, 0, CORNER_END);
}
/**
* Checks if a slope is steep.
*
@ -227,32 +169,6 @@ static inline Slope HalftileSlope(Slope s, Corner corner)
}
/**
* Enumeration for Foundations.
*/
enum Foundation {
FOUNDATION_NONE, ///< The tile has no foundation, the slope remains unchanged.
FOUNDATION_LEVELED, ///< The tile is leveled up to a flat slope.
FOUNDATION_INCLINED_X, ///< The tile has an along X-axis inclined foundation.
FOUNDATION_INCLINED_Y, ///< The tile has an along Y-axis inclined foundation.
FOUNDATION_STEEP_LOWER, ///< The tile has a steep slope. The lowest corner is raised by a foundation to allow building railroad on the lower halftile.
/* Halftile foundations */
FOUNDATION_STEEP_BOTH, ///< The tile has a steep slope. The lowest corner is raised by a foundation and the upper halftile is leveled.
FOUNDATION_HALFTILE_W, ///< Level west halftile non-continuously.
FOUNDATION_HALFTILE_S, ///< Level south halftile non-continuously.
FOUNDATION_HALFTILE_E, ///< Level east halftile non-continuously.
FOUNDATION_HALFTILE_N, ///< Level north halftile non-continuously.
/* Special anti-zig-zag foundations for single horizontal/vertical track */
FOUNDATION_RAIL_W, ///< Foundation for TRACK_BIT_LEFT, but not a leveled foundation.
FOUNDATION_RAIL_S, ///< Foundation for TRACK_BIT_LOWER, but not a leveled foundation.
FOUNDATION_RAIL_E, ///< Foundation for TRACK_BIT_RIGHT, but not a leveled foundation.
FOUNDATION_RAIL_N, ///< Foundation for TRACK_BIT_UPPER, but not a leveled foundation.
FOUNDATION_INVALID = 0xFF ///< Used inside "rail_cmd.cpp" to indicate invalid slope/track combination.
};
/**
* Tests for FOUNDATION_NONE.
*
@ -383,4 +299,4 @@ static inline Foundation SpecialRailFoundation(Corner corner)
return (Foundation)(FOUNDATION_RAIL_W + corner);
}
#endif /* SLOPE_H */
#endif /* SLOPE_FUNC_H */

101
src/slope_type.h Normal file
View File

@ -0,0 +1,101 @@
/* $Id$ */
/**
* @file slope_type.h Definitions of a slope.
* This file defines the enumeration and helper functions for handling
* the slope info of a tile.
*/
#ifndef SLOPE_TYPE_H
#define SLOPE_TYPE_H
#include "core/enum_type.hpp"
/**
* Enumeration of tile corners
*/
enum Corner {
CORNER_W = 0,
CORNER_S = 1,
CORNER_E = 2,
CORNER_N = 3,
CORNER_END,
CORNER_INVALID = 0xFF
};
/**
* Enumeration for the slope-type.
*
* This enumeration use the chars N,E,S,W corresponding the
* direction north, east, south and west. The top corner of a tile
* is the north-part of the tile. The whole slope is encoded with
* 5 bits, 4 bits for each corner and 1 bit for a steep-flag.
*
* For halftile slopes an extra 3 bits are used to represent this
* properly; 1 bit for a halftile-flag and 2 bits to encode which
* extra side (corner) is leveled when the slope of the first 5
* bits is applied. This means that there can only be one leveled
* slope for steep slopes, which is logical because two leveled
* slopes would mean that it is not a steep slope as halftile
* slopes only span one height level.
*/
enum Slope {
SLOPE_FLAT = 0x00, ///< a flat tile
SLOPE_W = 0x01, ///< the west corner of the tile is raised
SLOPE_S = 0x02, ///< the south corner of the tile is raised
SLOPE_E = 0x04, ///< the east corner of the tile is raised
SLOPE_N = 0x08, ///< the north corner of the tile is raised
SLOPE_STEEP = 0x10, ///< indicates the slope is steep
SLOPE_NW = SLOPE_N | SLOPE_W, ///< north and west corner are raised
SLOPE_SW = SLOPE_S | SLOPE_W, ///< south and west corner are raised
SLOPE_SE = SLOPE_S | SLOPE_E, ///< south and east corner are raised
SLOPE_NE = SLOPE_N | SLOPE_E, ///< north and east corner are raised
SLOPE_EW = SLOPE_E | SLOPE_W, ///< east and west corner are raised
SLOPE_NS = SLOPE_N | SLOPE_S, ///< north and south corner are raised
SLOPE_ELEVATED = SLOPE_N | SLOPE_E | SLOPE_S | SLOPE_W, ///< all corner are raised, similar to SLOPE_FLAT
SLOPE_NWS = SLOPE_N | SLOPE_W | SLOPE_S, ///< north, west and south corner are raised
SLOPE_WSE = SLOPE_W | SLOPE_S | SLOPE_E, ///< west, south and east corner are raised
SLOPE_SEN = SLOPE_S | SLOPE_E | SLOPE_N, ///< south, east and north corner are raised
SLOPE_ENW = SLOPE_E | SLOPE_N | SLOPE_W, ///< east, north and west corner are raised
SLOPE_STEEP_W = SLOPE_STEEP | SLOPE_NWS, ///< a steep slope falling to east (from west)
SLOPE_STEEP_S = SLOPE_STEEP | SLOPE_WSE, ///< a steep slope falling to north (from south)
SLOPE_STEEP_E = SLOPE_STEEP | SLOPE_SEN, ///< a steep slope falling to west (from east)
SLOPE_STEEP_N = SLOPE_STEEP | SLOPE_ENW, ///< a steep slope falling to south (from north)
SLOPE_HALFTILE = 0x20, ///< one halftile is leveled (non continuous slope)
SLOPE_HALFTILE_MASK = 0xE0, ///< three bits used for halftile slopes
SLOPE_HALFTILE_W = SLOPE_HALFTILE | (CORNER_W << 6), ///< the west halftile is leveled (non continuous slope)
SLOPE_HALFTILE_S = SLOPE_HALFTILE | (CORNER_S << 6), ///< the south halftile is leveled (non continuous slope)
SLOPE_HALFTILE_E = SLOPE_HALFTILE | (CORNER_E << 6), ///< the east halftile is leveled (non continuous slope)
SLOPE_HALFTILE_N = SLOPE_HALFTILE | (CORNER_N << 6), ///< the north halftile is leveled (non continuous slope)
};
/**
* Enumeration for Foundations.
*/
enum Foundation {
FOUNDATION_NONE, ///< The tile has no foundation, the slope remains unchanged.
FOUNDATION_LEVELED, ///< The tile is leveled up to a flat slope.
FOUNDATION_INCLINED_X, ///< The tile has an along X-axis inclined foundation.
FOUNDATION_INCLINED_Y, ///< The tile has an along Y-axis inclined foundation.
FOUNDATION_STEEP_LOWER, ///< The tile has a steep slope. The lowest corner is raised by a foundation to allow building railroad on the lower halftile.
/* Halftile foundations */
FOUNDATION_STEEP_BOTH, ///< The tile has a steep slope. The lowest corner is raised by a foundation and the upper halftile is leveled.
FOUNDATION_HALFTILE_W, ///< Level west halftile non-continuously.
FOUNDATION_HALFTILE_S, ///< Level south halftile non-continuously.
FOUNDATION_HALFTILE_E, ///< Level east halftile non-continuously.
FOUNDATION_HALFTILE_N, ///< Level north halftile non-continuously.
/* Special anti-zig-zag foundations for single horizontal/vertical track */
FOUNDATION_RAIL_W, ///< Foundation for TRACK_BIT_LEFT, but not a leveled foundation.
FOUNDATION_RAIL_S, ///< Foundation for TRACK_BIT_LOWER, but not a leveled foundation.
FOUNDATION_RAIL_E, ///< Foundation for TRACK_BIT_RIGHT, but not a leveled foundation.
FOUNDATION_RAIL_N, ///< Foundation for TRACK_BIT_UPPER, but not a leveled foundation.
FOUNDATION_INVALID = 0xFF ///< Used inside "rail_cmd.cpp" to indicate invalid slope/track combination.
};
#endif /* SLOPE_TYPE_H */

View File

@ -15,7 +15,6 @@
#include "table/sprites.h"
#include "landscape.h"
#include "map.h"
#include "tile.h"
#include "gui.h"
#include "window_gui.h"
#include "tree_map.h"

View File

@ -11,7 +11,6 @@
#include "table/sprites.h"
#include "table/strings.h"
#include "map.h"
#include "tile.h"
#include "station.h"
#include "gfx.h"
#include "viewport.h"

View File

@ -9,7 +9,6 @@
#include "player.h"
#include "oldpool.h"
#include "sprite.h"
#include "tile.h"
#include "road_type.h"
#include "newgrf_station.h"
#include "cargopacket.h"

View File

@ -15,7 +15,6 @@
#include "table/sprites.h"
#include "table/strings.h"
#include "map.h"
#include "tile.h"
#include "station.h"
#include "gfx.h"
#include "viewport.h"

View File

@ -10,7 +10,6 @@
#include "table/strings.h"
#include "functions.h"
#include "player.h"
#include "tile.h"
#include "gui.h"
#include "window_gui.h"
#include "viewport.h"

View File

@ -10,7 +10,6 @@
#include "map.h"
#include "table/strings.h"
#include "clear_map.h"
#include "tile.h"
#include "variables.h"
#include "void_map.h"
#include "tgp.h"

View File

@ -3,7 +3,8 @@
/** @file tile.cpp */
#include "stdafx.h"
#include "tile.h"
#include "openttd.h"
#include "tile_map.h"
Slope GetTileSlope(TileIndex tile, uint *h)
{

View File

@ -1,57 +1,13 @@
/* $Id$ */
/** @file tile.h */
/** @file tile_map.h Map writing/reading functions for tiles. */
#ifndef TILE_H
#define TILE_H
#ifndef TILE_MAP_H
#define TILE_MAP_H
#include "macros.h"
#include "openttd.h"
#include "tile_type.h"
#include "slope_type.h"
#include "map.h"
#include "slope.h"
/** Maximum allowed tile height */
#define MAX_TILE_HEIGHT 15
/** Maximum allowed snowline height */
#define MAX_SNOWLINE_HEIGHT (MAX_TILE_HEIGHT - 2)
/**
* The different type of a tile.
*
* Each tile belongs to one type, according whatever is build on it.
*
* @note A railway with a crossing street is marked as MP_ROAD.
*/
enum TileType {
MP_CLEAR, ///< A tile without any structures, i.e. grass, rocks, farm fields etc.
MP_RAILWAY, ///< A railway
MP_ROAD, ///< A tile with road (or tram tracks)
MP_HOUSE, ///< A house by a town
MP_TREES, ///< Tile got trees
MP_STATION, ///< A tile of a station
MP_WATER, ///< Water tile
MP_VOID, ///< Invisible tiles at the SW and SE border
MP_INDUSTRY, ///< Part of an industry
MP_TUNNELBRIDGE, ///< Tunnel entry/exit and bridge heads
MP_UNMOVABLE, ///< Contains an object with cannot be removed like transmitters
};
/**
* Additional infos of a tile on a tropic game.
*
* Each non-water tile in a tropic game is either a rainforest tile or a
* desert one.
*/
enum TropicZone {
TROPICZONE_INVALID = 0, ///< Invalid tropiczone-type
TROPICZONE_DESERT = 1, ///< Tile is desert
TROPICZONE_RAINFOREST = 2, ///< Rainforest tile
};
Slope GetTileSlope(TileIndex tile, uint *h);
uint GetTileZ(TileIndex tile);
uint GetTileMaxZ(TileIndex tile);
/**
* Returns the height of a tile
@ -226,4 +182,9 @@ static inline TropicZone GetTropicZone(TileIndex tile)
assert(tile < MapSize());
return (TropicZone)GB(_m[tile].m6, 0, 2);
}
#endif /* TILE_H */
Slope GetTileSlope(TileIndex tile, uint *h);
uint GetTileZ(TileIndex tile);
uint GetTileMaxZ(TileIndex tile);
#endif /* TILE_TYPE_H */

54
src/tile_type.h Normal file
View File

@ -0,0 +1,54 @@
/* $Id$ */
/** @file tile_type.h Types related to tiles. */
#ifndef TILE_TYPE_H
#define TILE_TYPE_H
#include "core/enum_type.hpp"
/** Maximum allowed tile height */
#define MAX_TILE_HEIGHT 15
/** Maximum allowed snowline height */
#define MAX_SNOWLINE_HEIGHT (MAX_TILE_HEIGHT - 2)
/**
* The different type of a tile.
*
* Each tile belongs to one type, according whatever is build on it.
*
* @note A railway with a crossing street is marked as MP_ROAD.
*/
enum TileType {
MP_CLEAR, ///< A tile without any structures, i.e. grass, rocks, farm fields etc.
MP_RAILWAY, ///< A railway
MP_ROAD, ///< A tile with road (or tram tracks)
MP_HOUSE, ///< A house by a town
MP_TREES, ///< Tile got trees
MP_STATION, ///< A tile of a station
MP_WATER, ///< Water tile
MP_VOID, ///< Invisible tiles at the SW and SE border
MP_INDUSTRY, ///< Part of an industry
MP_TUNNELBRIDGE, ///< Tunnel entry/exit and bridge heads
MP_UNMOVABLE, ///< Contains an object with cannot be removed like transmitters
};
/**
* Additional infos of a tile on a tropic game.
*
* Each non-water tile in a tropic game is either a rainforest tile or a
* desert one.
*/
enum TropicZone {
TROPICZONE_INVALID = 0, ///< Invalid tropiczone-type
TROPICZONE_DESERT = 1, ///< Tile is desert
TROPICZONE_RAINFOREST = 2, ///< Rainforest tile
};
/**
* The index/ID of a Tile.
*/
typedef uint32 TileIndex;
#endif /* TILE_TYPE_H */

View File

@ -13,7 +13,6 @@
#include "table/sprites.h"
#include "map.h"
#include "landscape.h"
#include "tile.h"
#include "town_map.h"
#include "tunnel_map.h"
#include "viewport.h"

View File

@ -7,6 +7,7 @@
#include "town.h"
#include "date.h"
#include "tile_map.h"
/**
* Get the index of which town this house/street is attached to.

View File

@ -7,6 +7,7 @@
#include "track_type.h"
#include "direction_type.h"
#include "slope_func.h"
/**
* Convert an Axis to the corresponding Track

View File

@ -13,7 +13,6 @@
#include "table/strings.h"
#include "strings.h"
#include "map.h"
#include "tile.h"
#include "tunnel_map.h"
#include "vehicle.h"
#include "timetable.h"

View File

@ -12,7 +12,6 @@
#include "functions.h"
#include "map.h"
#include "landscape.h"
#include "tile.h"
#include "tree_map.h"
#include "viewport.h"
#include "command.h"

View File

@ -4,7 +4,6 @@
#include "stdafx.h"
#include "openttd.h"
#include "tile.h"
#include "tunnel_map.h"
#include "tunnelbridge_map.h"

View File

@ -10,6 +10,7 @@
#include "map.h"
#include "rail_type.h"
#include "road_type.h"
#include "tile_map.h"
/**

View File

@ -16,7 +16,6 @@
#include "functions.h"
#include "map.h"
#include "landscape.h"
#include "tile.h"
#include "tunnel_map.h"
#include "unmovable_map.h"
#include "vehicle.h"

View File

@ -8,7 +8,7 @@
#include "direction_func.h"
#include "core/bitmath_func.hpp" /* GB, HasBit, SB */
#include "map.h" /* Tile, TileIndex */
#include "tile.h" /* TileType, IsTileType */
#include "tile_map.h" /* TileType, IsTileType */
#include "openttd.h" /* TransportType */

View File

@ -9,7 +9,6 @@
#include "functions.h"
#include "landscape.h"
#include "map.h"
#include "tile.h"
#include "command.h"
#include "viewport.h"
#include "player.h"

View File

@ -13,7 +13,6 @@
#include "functions.h"
#include "landscape.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
#include "timetable.h"
#include "gfx.h"

View File

@ -5,6 +5,7 @@
#ifndef VEHICLE_H
#define VEHICLE_H
#include "vehicle_type.h"
#include "oldpool.h"
#include "order.h"
#include "track_type.h"
@ -69,20 +70,6 @@ enum RoadVehicleStates {
RVSB_ROAD_STOP_TRACKDIR_MASK = 0x09 ///< Only bits 0 and 3 are used to encode the trackdir for road stops
};
enum VehicleType {
VEH_TRAIN,
VEH_ROAD,
VEH_SHIP,
VEH_AIRCRAFT,
VEH_SPECIAL,
VEH_DISASTER,
VEH_END,
VEH_INVALID = 0xFF,
};
DECLARE_POSTFIX_INCREMENT(VehicleType);
template <> struct EnumPropsT<VehicleType> : MakeEnumPropsT<VehicleType, byte, VEH_TRAIN, VEH_END, VEH_INVALID> {};
typedef TinyEnumT<VehicleType> VehicleTypeByte;
enum VehStatus {
VS_HIDDEN = 0x01,
VS_STOPPED = 0x02,
@ -218,7 +205,6 @@ struct VehicleShip {
TrackBitsByte state;
};
struct Vehicle;
DECLARE_OLD_POOL(Vehicle, Vehicle, 9, 125)
/* Some declarations of functions, so we can make them friendly */

28
src/vehicle_type.h Normal file
View File

@ -0,0 +1,28 @@
/* $Id$ */
/** @file vehicle_type.h Types related to vehicles. */
#ifndef VEHICLE_TYPE_H
#define VEHICLE_TYPE_H
#include "core/enum_type.hpp"
typedef uint16 VehicleID;
enum VehicleType {
VEH_TRAIN,
VEH_ROAD,
VEH_SHIP,
VEH_AIRCRAFT,
VEH_SPECIAL,
VEH_DISASTER,
VEH_END,
VEH_INVALID = 0xFF,
};
DECLARE_POSTFIX_INCREMENT(VehicleType);
template <> struct EnumPropsT<VehicleType> : MakeEnumPropsT<VehicleType, byte, VEH_TRAIN, VEH_END, VEH_INVALID> {};
typedef TinyEnumT<VehicleType> VehicleTypeByte;
struct Vehicle;
#endif /* VEHICLE_TYPE_H */

View File

@ -5,6 +5,8 @@
#ifndef VOID_MAP_H
#define VOID_MAP_H
#include "tile_map.h"
/**
* Make a nice void tile ;)
* @param t the tile to make void

View File

@ -10,5 +10,6 @@ void DrawShipDepotSprite(int x, int y, int image);
void DrawCanalWater(TileIndex tile);
void MakeWaterOrCanalDependingOnOwner(TileIndex tile, Owner o);
void MakeWaterOrCanalDependingOnSurroundings(TileIndex t, Owner o);
void FloodHalftile(TileIndex t);
#endif /* WATER_H */

View File

@ -14,7 +14,6 @@
#include "functions.h"
#include "landscape.h"
#include "map.h"
#include "tile.h"
#include "vehicle.h"
#include "viewport.h"
#include "command.h"
@ -25,6 +24,7 @@
#include "vehicle_gui.h"
#include "train.h"
#include "roadveh.h"
#include "water.h"
#include "water_map.h"
#include "industry_map.h"
#include "newgrf.h"

View File

@ -15,7 +15,6 @@
#include "bridge_map.h"
#include "saveload.h"
#include "station.h"
#include "tile.h"
#include "town.h"
#include "waypoint.h"
#include "variables.h"

View File

@ -3,9 +3,9 @@
#ifndef TRACK_DIR_HPP
#define TRACK_DIR_HPP
#include "../tile.h"
#include "../tile_type.h"
#include "../openttd.h"
#include "../map.h"
#include "../rail.h"
#include "../rail_type.h"
#endif /* TRACK_DIR_HPP */