diff --git a/src/openrct2/rct1.h b/src/openrct2/rct1.h index d3159d52b3..cddd7cccba 100644 --- a/src/openrct2/rct1.h +++ b/src/openrct2/rct1.h @@ -1057,6 +1057,22 @@ enum { RCT1_PATH_ADDITION_JUMPING_SNOW, }; +enum { + RCT1_WALL_TYPE_GLASS_SMOOTH = 11, + RCT1_WALL_TYPE_GLASS_PANELS = 22, + RCT1_WALL_TYPE_WOODEN_PANEL_FENCE = 12, + RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_GATE = 13, + RCT1_WALL_TYPE_WHITE_WOODEN_PANEL_FENCE = 26, + RCT1_WALL_TYPE_RED_WOODEN_PANEL_FENCE = 27, + RCT1_WALL_TYPE_SMALL_GREY_CASTLE = 35, + RCT1_WALL_TYPE_LARGE_CREY_CASTLE = 42, + RCT1_WALL_TYPE_LARGE_CREY_CASTLE_CROSS = 43, + RCT1_WALL_TYPE_LARGE_CREY_CASTLE_GATE = 44, + RCT1_WALL_TYPE_LARGE_CREY_CASTLE_WINDOW = 45, + RCT1_WALL_TYPE_MEDIUM_CREY_CASTLE = 46, + RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_SNOW = 50, +}; + enum { RCT1_RESEARCH_END_AVAILABLE = 0xFF, RCT1_RESEARCH_END_RESEARCHABLE = 0xFE, diff --git a/src/openrct2/rct1/S4Importer.cpp b/src/openrct2/rct1/S4Importer.cpp index dc07af379a..570630c6c4 100644 --- a/src/openrct2/rct1/S4Importer.cpp +++ b/src/openrct2/rct1/S4Importer.cpp @@ -2214,6 +2214,11 @@ private: void FixWalls() { + // The user might attempt to load a save while in pause mode. + // Since we cannot place walls in pause mode without a cheat, temporarily turn it on. + bool oldCheatValue = gCheatsBuildInPauseMode; + gCheatsBuildInPauseMode = true; + for (sint32 x = 0; x < RCT1_MAX_MAP_SIZE; x++) { for (sint32 y = 0; y < RCT1_MAX_MAP_SIZE; y++) @@ -2253,40 +2258,42 @@ private: while (!map_element_is_last_for_tile(mapElement++)); } } + + gCheatsBuildInPauseMode = oldCheatValue; } void ConvertWall(sint32 * type, sint32 * colourA, sint32 * colourB, sint32 * colourC) { switch (*type) { - case 12: // creepy gate - *colourA = 24; + case RCT1_WALL_TYPE_WOODEN_PANEL_FENCE: + *colourA = COLOUR_DARK_BROWN; break; - case 26: // white wooden fence - *type = 12; - *colourA = 2; + case RCT1_WALL_TYPE_WHITE_WOODEN_PANEL_FENCE: + *type = RCT1_WALL_TYPE_WOODEN_PANEL_FENCE; + *colourA = COLOUR_WHITE; break; - case 27: // red wooden fence - *type = 12; - *colourA = 25; + case RCT1_WALL_TYPE_RED_WOODEN_PANEL_FENCE: + *type = RCT1_WALL_TYPE_WOODEN_PANEL_FENCE; + *colourA = COLOUR_SALMON_PINK; break; - case 50: // plate glass - *colourA = 24; + case RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_SNOW: + *colourA = COLOUR_DARK_BROWN; break; - case 13: + case RCT1_WALL_TYPE_WOODEN_PANEL_FENCE_WITH_GATE: *colourB = *colourA; - *colourA = 24; + *colourA = COLOUR_DARK_BROWN; break; - case 11: // tall castle wall with grey gate - case 22: // brick wall with gate - *colourB = 2; + case RCT1_WALL_TYPE_GLASS_SMOOTH: + case RCT1_WALL_TYPE_GLASS_PANELS: + *colourB = COLOUR_WHITE; break; - case 35: // wood post fence - case 42: // tall grey castle wall - case 43: // wooden fence with snow - case 44: - case 45: - case 46: - *colourA = 1; + case RCT1_WALL_TYPE_SMALL_GREY_CASTLE: + case RCT1_WALL_TYPE_LARGE_CREY_CASTLE: + case RCT1_WALL_TYPE_LARGE_CREY_CASTLE_CROSS: + case RCT1_WALL_TYPE_LARGE_CREY_CASTLE_GATE: + case RCT1_WALL_TYPE_LARGE_CREY_CASTLE_WINDOW: + case RCT1_WALL_TYPE_MEDIUM_CREY_CASTLE: + *colourA = COLOUR_GREY; break; } } diff --git a/src/openrct2/rct1/tables.cpp b/src/openrct2/rct1/tables.cpp index 89067f51b1..a819cc351d 100644 --- a/src/openrct2/rct1/tables.cpp +++ b/src/openrct2/rct1/tables.cpp @@ -1212,8 +1212,8 @@ namespace RCT1 "WBW ", "WBR1 ", "WBRG ", - "WALLCFAR", - "WALLPOST", + "WFW1 ", + "WFW1 ", "WBR2 ", "WBR3 ", "WPW3 ",