mirror of
https://github.com/OpenRCT2/OpenRCT2
synced 2026-01-19 13:03:11 +01:00
Fix importing SV4 walls in pause mode
This commit is contained in:
@@ -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,
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1212,8 +1212,8 @@ namespace RCT1
|
||||
"WBW ",
|
||||
"WBR1 ",
|
||||
"WBRG ",
|
||||
"WALLCFAR",
|
||||
"WALLPOST",
|
||||
"WFW1 ",
|
||||
"WFW1 ",
|
||||
"WBR2 ",
|
||||
"WBR3 ",
|
||||
"WPW3 ",
|
||||
|
||||
Reference in New Issue
Block a user