1
0
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:
Gymnasiast
2017-03-25 21:56:15 +01:00
parent 6ea78d6c01
commit e85c627bd5
3 changed files with 47 additions and 24 deletions

View File

@@ -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,

View File

@@ -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;
}
}

View File

@@ -1212,8 +1212,8 @@ namespace RCT1
"WBW ",
"WBR1 ",
"WBRG ",
"WALLCFAR",
"WALLPOST",
"WFW1 ",
"WFW1 ",
"WBR2 ",
"WBR3 ",
"WPW3 ",