add RCT1 path type enums

This commit is contained in:
Ted John 2016-04-18 22:51:15 +01:00
parent 26ce06a1c7
commit 486c10a9f1
2 changed files with 53 additions and 27 deletions

View File

@ -556,6 +556,32 @@ enum {
RCT1_SCENERY_THEME_PAGODA,
};
enum {
FOOTPATH_TYPE_QUEUE_BLUE,
FOOTPATH_TYPE_QUEUE_RED,
FOOTPATH_TYPE_QUEUE_YELLOW,
FOOTPATH_TYPE_QUEUE_GREEN,
FOOTPATH_TYPE_TARMAC_GRAY,
FOOTPATH_TYPE_DIRT,
FOOTPATH_TYPE_CRAZY_PAVING,
FOOTPATH_TYPE_TILE,
FOOTPATH_TYPE_TARMAC_RED,
FOOTPATH_TYPE_TILE_GRAY,
FOOTPATH_TYPE_DIRT_BLACK,
FOOTPATH_TYPE_TARMAC_BROWN,
FOOTPATH_TYPE_TILE_RED,
FOOTPATH_TYPE_TARMAC_GREEN,
FOOTPATH_TYPE_TILE_GREEN,
};
enum {
FOOTPATH_SUPPORTS_WOODEN_TRUSS,
FOOTPATH_SUPPORTS_WOOD,
FOOTPATH_SUPPORTS_STEEL,
FOOTPATH_SUPPORTS_BAMBOO,
};
enum {
RCT1_PATH_ADDITION_NONE,
RCT1_PATH_ADDITION_LAMP_1,

View File

@ -1031,30 +1031,30 @@ void S4Importer::FixZ()
// rct2: 0x0098BC9F
static const uint8 RCT1PathTypeConversionTable[96] =
{
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3,
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3,
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3,
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3,
0, 0, 0, 0,
2, 2, 2, 2,
1, 1, 1, 1,
0, 0, 0, 0,
3, 3, 3, 3,
6, 6, 6, 6,
0, 0, 0, 0,
0, 0, 0, 0,
5, 5, 5, 5,
5, 5, 5, 5,
5, 5, 5, 5,
5, 5, 5, 5,
4, 4, 4, 4,
4, 4, 4, 4,
4, 4, 4, 4,
4, 4, 4, 4,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0, 0, 0, 0,
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3, // TARMAC, TARMACB, PATHSPCE, PATHDIRT
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3, // TARMAC, TARMACB, PATHSPCE, PATHDIRT
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3, // TARMAC, TARMACB, PATHSPCE, PATHDIRT
0x80 | 0, 0x80 | 1, 0x80 | 2, 0x80 | 3, // TARMAC, TARMACB, PATHSPCE, PATHDIRT
0, 0, 0, 0, // TARMAC
2, 2, 2, 2, // PATHSPCE
1, 1, 1, 1, // TARMACB
0, 0, 0, 0, // TARMAC
3, 3, 3, 3, // PATHDIRT
6, 6, 6, 6, // PATHASH
0, 0, 0, 0, // TARMAC
0, 0, 0, 0, // TARMAC
5, 5, 5, 5, // PATHCRZY
5, 5, 5, 5, // PATHCRZY
5, 5, 5, 5, // PATHCRZY
5, 5, 5, 5, // PATHCRZY
4, 4, 4, 4, // ROAD
4, 4, 4, 4, // ROAD
4, 4, 4, 4, // ROAD
4, 4, 4, 4, // ROAD
0, 0, 0, 0, // TARMAC
0, 0, 0, 0, // TARMAC
0, 0, 0, 0, // TARMAC
0, 0, 0, 0, // TARMAC
};
void S4Importer::FixPaths()
@ -1066,9 +1066,9 @@ void S4Importer::FixPaths()
case MAP_ELEMENT_TYPE_PATH:
{
// Type
int pathType = ((mapElement->properties.path.type & 0xF0) >> 2) | (mapElement->type & 3);
int secondaryType = (mapElement->flags & 0x60) >> 5;
pathType = RCT1PathTypeConversionTable[pathType * 4 + secondaryType];
uint8 pathType = ((mapElement->properties.path.type & 0xF0) >> 2) | (mapElement->type & 3);
uint8 supportsType = (mapElement->flags & 0x60) >> 5;
pathType = RCT1PathTypeConversionTable[pathType * 4 + supportsType];
mapElement->type &= 0xFC;
mapElement->flags &= ~0x60;