mirror of https://github.com/OpenRCT2/OpenRCT2.git
121 lines
3.9 KiB
C
121 lines
3.9 KiB
C
/*****************************************************************************
|
|
* Copyright (c) 2014-2020 OpenRCT2 developers
|
|
*
|
|
* For a complete list of all authors, please refer to contributors.md
|
|
* Interested in contributing? Visit https://github.com/OpenRCT2/OpenRCT2
|
|
*
|
|
* OpenRCT2 is licensed under the GNU General Public License version 3.
|
|
*****************************************************************************/
|
|
|
|
#pragma once
|
|
|
|
#include "../common.h"
|
|
#include "TileElement.h"
|
|
|
|
enum
|
|
{
|
|
TERRAIN_GRASS,
|
|
TERRAIN_SAND,
|
|
TERRAIN_DIRT,
|
|
TERRAIN_ROCK,
|
|
TERRAIN_MARTIAN,
|
|
TERRAIN_CHECKERBOARD,
|
|
TERRAIN_GRASS_CLUMPS,
|
|
TERRAIN_ICE,
|
|
TERRAIN_GRID_RED,
|
|
TERRAIN_GRID_YELLOW,
|
|
TERRAIN_GRID_BLUE,
|
|
TERRAIN_GRID_GREEN,
|
|
TERRAIN_SAND_DARK,
|
|
TERRAIN_SAND_LIGHT,
|
|
|
|
TERRAIN_RCT2_COUNT,
|
|
|
|
TERRAIN_ROOF_BROWN = TERRAIN_RCT2_COUNT,
|
|
TERRAIN_ROOF_GREY,
|
|
TERRAIN_ROOF_IRON,
|
|
TERRAIN_ROOF_LOG,
|
|
TERRAIN_COUNT_REGULAR, // The amount of surface types the user can actually select - what follows are technical types
|
|
// Technical types (not selectable)
|
|
TERRAIN_CHECKERBOARD_INVERTED = TERRAIN_COUNT_REGULAR,
|
|
TERRAIN_UNDERGROUND_VIEW,
|
|
};
|
|
|
|
enum
|
|
{
|
|
TERRAIN_EDGE_ROCK,
|
|
TERRAIN_EDGE_WOOD_RED,
|
|
TERRAIN_EDGE_WOOD_BLACK,
|
|
TERRAIN_EDGE_ICE,
|
|
|
|
TERRAIN_EDGE_RCT2_COUNT,
|
|
|
|
TERRAIN_EDGE_BRICK = TERRAIN_EDGE_RCT2_COUNT,
|
|
TERRAIN_EDGE_IRON,
|
|
TERRAIN_EDGE_GREY,
|
|
TERRAIN_EDGE_YELLOW,
|
|
TERRAIN_EDGE_RED,
|
|
TERRAIN_EDGE_PURPLE,
|
|
TERRAIN_EDGE_GREEN,
|
|
TERRAIN_EDGE_STONE_BROWN,
|
|
TERRAIN_EDGE_STONE_GREY,
|
|
TERRAIN_EDGE_SKYSCRAPER_A,
|
|
TERRAIN_EDGE_SKYSCRAPER_B,
|
|
|
|
TERRAIN_EDGE_COUNT
|
|
};
|
|
|
|
enum
|
|
{
|
|
GRASS_LENGTH_MOWED,
|
|
GRASS_LENGTH_CLEAR_0,
|
|
GRASS_LENGTH_CLEAR_1,
|
|
GRASS_LENGTH_CLEAR_2,
|
|
GRASS_LENGTH_CLUMPS_0,
|
|
GRASS_LENGTH_CLUMPS_1,
|
|
GRASS_LENGTH_CLUMPS_2
|
|
};
|
|
|
|
enum
|
|
{
|
|
OWNERSHIP_UNOWNED = 0,
|
|
OWNERSHIP_CONSTRUCTION_RIGHTS_OWNED = (1 << 4),
|
|
OWNERSHIP_OWNED = (1 << 5),
|
|
OWNERSHIP_CONSTRUCTION_RIGHTS_AVAILABLE = (1 << 6),
|
|
OWNERSHIP_AVAILABLE = (1 << 7)
|
|
};
|
|
|
|
enum
|
|
{
|
|
TILE_ELEMENT_SLOPE_FLAT = 0x00,
|
|
TILE_ELEMENT_SLOPE_ALL_CORNERS_UP = 0x0F,
|
|
|
|
TILE_ELEMENT_SLOPE_N_CORNER_UP = (1 << 0),
|
|
TILE_ELEMENT_SLOPE_E_CORNER_UP = (1 << 1),
|
|
TILE_ELEMENT_SLOPE_S_CORNER_UP = (1 << 2),
|
|
TILE_ELEMENT_SLOPE_W_CORNER_UP = (1 << 3),
|
|
TILE_ELEMENT_SLOPE_DOUBLE_HEIGHT = (1 << 4),
|
|
|
|
TILE_ELEMENT_SLOPE_W_CORNER_DN = TILE_ELEMENT_SLOPE_ALL_CORNERS_UP & ~TILE_ELEMENT_SLOPE_W_CORNER_UP,
|
|
TILE_ELEMENT_SLOPE_S_CORNER_DN = TILE_ELEMENT_SLOPE_ALL_CORNERS_UP & ~TILE_ELEMENT_SLOPE_S_CORNER_UP,
|
|
TILE_ELEMENT_SLOPE_E_CORNER_DN = TILE_ELEMENT_SLOPE_ALL_CORNERS_UP & ~TILE_ELEMENT_SLOPE_E_CORNER_UP,
|
|
TILE_ELEMENT_SLOPE_N_CORNER_DN = TILE_ELEMENT_SLOPE_ALL_CORNERS_UP & ~TILE_ELEMENT_SLOPE_N_CORNER_UP,
|
|
|
|
TILE_ELEMENT_SLOPE_NE_SIDE_UP = TILE_ELEMENT_SLOPE_N_CORNER_UP | TILE_ELEMENT_SLOPE_E_CORNER_UP,
|
|
TILE_ELEMENT_SLOPE_SE_SIDE_UP = TILE_ELEMENT_SLOPE_E_CORNER_UP | TILE_ELEMENT_SLOPE_S_CORNER_UP,
|
|
TILE_ELEMENT_SLOPE_NW_SIDE_UP = TILE_ELEMENT_SLOPE_N_CORNER_UP | TILE_ELEMENT_SLOPE_W_CORNER_UP,
|
|
TILE_ELEMENT_SLOPE_SW_SIDE_UP = TILE_ELEMENT_SLOPE_S_CORNER_UP | TILE_ELEMENT_SLOPE_W_CORNER_UP,
|
|
|
|
TILE_ELEMENT_SLOPE_W_E_VALLEY = TILE_ELEMENT_SLOPE_E_CORNER_UP | TILE_ELEMENT_SLOPE_W_CORNER_UP,
|
|
TILE_ELEMENT_SLOPE_N_S_VALLEY = TILE_ELEMENT_SLOPE_N_CORNER_UP | TILE_ELEMENT_SLOPE_S_CORNER_UP
|
|
};
|
|
|
|
// Surface
|
|
#define TILE_ELEMENT_SURFACE_DIAGONAL_FLAG 0x10 // in TileElement.properties.surface.slope
|
|
#define TILE_ELEMENT_SURFACE_RAISED_CORNERS_MASK 0x0F // in TileElement.properties.surface.slope
|
|
#define TILE_ELEMENT_SURFACE_SLOPE_MASK \
|
|
(TILE_ELEMENT_SURFACE_DIAGONAL_FLAG | TILE_ELEMENT_SURFACE_RAISED_CORNERS_MASK) // in TileElement.properties.surface.slope
|
|
|
|
#define TILE_ELEMENT_SURFACE_OWNERSHIP_MASK 0xF0
|
|
#define TILE_ELEMENT_SURFACE_PARK_FENCE_MASK 0x0F
|