From 486c10a9f1253b88620a765461aafc9d3dbf3d40 Mon Sep 17 00:00:00 2001 From: Ted John Date: Mon, 18 Apr 2016 22:51:15 +0100 Subject: [PATCH] add RCT1 path type enums --- src/rct1.h | 26 ++++++++++++++++++++ src/rct1/S4Importer.cpp | 54 ++++++++++++++++++++--------------------- 2 files changed, 53 insertions(+), 27 deletions(-) diff --git a/src/rct1.h b/src/rct1.h index d9a2b0a157..05bef489b3 100644 --- a/src/rct1.h +++ b/src/rct1.h @@ -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, diff --git a/src/rct1/S4Importer.cpp b/src/rct1/S4Importer.cpp index 1e3dcba83b..6bff9c58de 100644 --- a/src/rct1/S4Importer.cpp +++ b/src/rct1/S4Importer.cpp @@ -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;