1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-26 16:24:35 +01:00
Files
OpenRCT2/src/openrct2/world/SurfaceData.cpp
2024-10-15 22:02:31 +02:00

656 lines
36 KiB
C++

/*****************************************************************************
* Copyright (c) 2014-2024 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.
*****************************************************************************/
#include "SurfaceData.h"
#include "tile_element/Slope.h"
// 0x00981A1E
// Table of pre-calculated surface slopes (32) when raising the land tile for a given selection (5)
// 0x1F = new slope
// 0x20 = base height increases
constexpr uint8_t TileElementRaiseStyles[9][32] = {
// MAP_SELECT_TYPE_CORNER_0
{ kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_CORNER_1
{ kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_CORNER_2
{ kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_CORNER_3
{ kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_FULL
{ kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight },
// MAP_SELECT_TYPE_EDGE_0
{ kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_EDGE_1
{ kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_EDGE_2
{ kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp },
// MAP_SELECT_TYPE_EDGE_3
{ kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp },
};
// 0x00981ABE
// Basically the inverse of the table above.
// 0x1F = new slope
// 0x20 = base height increases
constexpr uint8_t TileElementLowerStyles[9][32] = {
// MAP_SELECT_TYPE_CORNER_0
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
0,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_CORNER_1
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp
| kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_CORNER_2
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeWCornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_CORNER_3
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeSCornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp
| kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeDiagonalFlag | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeDiagonalFlag | kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_FULL
{ kTileSlopeRaiseOrLowerBaseHeight,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
0,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
0,
0,
0,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
0,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
0 },
// MAP_SELECT_TYPE_EDGE_0
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeECornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp,
0,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp },
// MAP_SELECT_TYPE_EDGE_1
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
0,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
0,
0,
kTileSlopeECornerUp,
kTileSlopeECornerUp,
kTileSlopeSCornerUp,
kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
0,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
0,
0,
kTileSlopeECornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp },
// MAP_SELECT_TYPE_EDGE_2
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
0,
0,
0,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp,
kTileSlopeSCornerUp,
kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
0,
0,
0,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp,
kTileSlopeSCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeSCornerUp | kTileSlopeWCornerUp },
// MAP_SELECT_TYPE_EDGE_3
{ kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
0,
kTileSlopeNCornerUp,
0,
kTileSlopeNCornerUp,
0,
kTileSlopeNCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
0,
kTileSlopeNCornerUp,
0,
kTileSlopeNCornerUp,
0,
kTileSlopeNCornerUp | kTileSlopeECornerUp | kTileSlopeSCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeRaiseOrLowerBaseHeight | kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp,
kTileSlopeECornerUp | kTileSlopeSCornerUp | kTileSlopeWCornerUp,
kTileSlopeNCornerUp | kTileSlopeWCornerUp },
};
uint8_t LowerSurfaceCornerFlags(size_t SelectedCorner, size_t CurrentSlope)
{
return TileElementLowerStyles[SelectedCorner][CurrentSlope];
}
uint8_t RaiseSurfaceCornerFlags(size_t SelectedCorner, size_t CurrentSlope)
{
return TileElementRaiseStyles[SelectedCorner][CurrentSlope];
}