diff --git a/resources/g2/sprites.json b/resources/g2/sprites.json index 0b8b758ee1..26588a6d9c 100644 --- a/resources/g2/sprites.json +++ b/resources/g2/sprites.json @@ -354,6 +354,12 @@ { "path": "icons/search.png" }, + { + "path": "surface/glassy_recolourable.png", + "x_offset": -32, + "y_offset": -1, + "palette": "keep" + }, { "path": "surface/selection_edge_nw.png", "x_offset": -32, diff --git a/resources/g2/surface/blank_recolourable.png b/resources/g2/surface/blank_recolourable.png new file mode 100644 index 0000000000..cb59b4bc4a Binary files /dev/null and b/resources/g2/surface/blank_recolourable.png differ diff --git a/resources/g2/surface/glassy_recolourable.png b/resources/g2/surface/glassy_recolourable.png new file mode 100644 index 0000000000..27583b8209 Binary files /dev/null and b/resources/g2/surface/glassy_recolourable.png differ diff --git a/src/openrct2/paint/tile_element/virtual_floor.c b/src/openrct2/paint/tile_element/virtual_floor.c index 109b788b61..1aa8719e31 100644 --- a/src/openrct2/paint/tile_element/virtual_floor.c +++ b/src/openrct2/paint/tile_element/virtual_floor.c @@ -271,7 +271,7 @@ void virtual_floor_paint(paint_session * session) if (paintEdges & 0x8) { sub_98197C(session, SPR_G2_SELECTION_EDGE_NW | (!(occupiedEdges & 0x8)? ((litEdges & 0x8)? remap_lit : remap_base) : remap_edge), - 0, 0, 1, 1, 1, gMapVirtualFloorHeight, 5, 5, gMapVirtualFloorHeight + ((dullEdges & 0x8)? -2 : 0), get_current_rotation()); + 0, 0, 0, 0, 1, gMapVirtualFloorHeight, 5, 5, gMapVirtualFloorHeight + ((dullEdges & 0x8)? -2 : 0), get_current_rotation()); } if (paintEdges & 0x4) { @@ -281,11 +281,17 @@ void virtual_floor_paint(paint_session * session) if (paintEdges & 0x1) { sub_98197C(session, SPR_G2_SELECTION_EDGE_NE | (!(occupiedEdges & 0x1)? ((litEdges & 0x1)? remap_lit : remap_base) : remap_edge), - 0, 0, 1, 1, 1, gMapVirtualFloorHeight, 5, 5, gMapVirtualFloorHeight + ((dullEdges & 0x1)? -2 : 0), get_current_rotation()); + 0, 0, 0, 0, 1, gMapVirtualFloorHeight, 5, 5, gMapVirtualFloorHeight + ((dullEdges & 0x1)? -2 : 0), get_current_rotation()); } if (paintEdges & 0x2) { sub_98197C(session, SPR_G2_SELECTION_EDGE_SE | (!(occupiedEdges & 0x2)? ((litEdges & 0x2)? remap_lit : remap_base) : remap_edge), 0, 0, 1, 1, 1, gMapVirtualFloorHeight, 16, 27, gMapVirtualFloorHeight + ((dullEdges & 0x2)? -2 : 0), get_current_rotation()); } + + if (!weAreOccupied && !weAreLit) + { + sint32 imageColourFlats = SPR_G2_SURFACE_GLASSY_RECOLOURABLE | IMAGE_TYPE_REMAP | IMAGE_TYPE_TRANSPARENT | PALETTE_WATER << 19; + sub_98197C(session, imageColourFlats, 0, 0, 30, 30, 0, gMapVirtualFloorHeight, 2, 2, gMapVirtualFloorHeight - 3, get_current_rotation()); + } } diff --git a/src/openrct2/sprites.h b/src/openrct2/sprites.h index db6b553d5f..52a10fa4d9 100644 --- a/src/openrct2/sprites.h +++ b/src/openrct2/sprites.h @@ -824,10 +824,12 @@ enum { SPR_G2_SEARCH = SPR_G2_BEGIN + 106, - SPR_G2_SELECTION_EDGE_NW = SPR_G2_BEGIN + 107, - SPR_G2_SELECTION_EDGE_NE = SPR_G2_BEGIN + 108, - SPR_G2_SELECTION_EDGE_SW = SPR_G2_BEGIN + 109, - SPR_G2_SELECTION_EDGE_SE = SPR_G2_BEGIN + 110, + SPR_G2_SURFACE_GLASSY_RECOLOURABLE = SPR_G2_BEGIN + 107, + + SPR_G2_SELECTION_EDGE_NW = SPR_G2_BEGIN + 108, + SPR_G2_SELECTION_EDGE_NE = SPR_G2_BEGIN + 109, + SPR_G2_SELECTION_EDGE_SW = SPR_G2_BEGIN + 110, + SPR_G2_SELECTION_EDGE_SE = SPR_G2_BEGIN + 111, // 0x60000, chosen because it's a round hex number // of the last possible range of image ID values that is large enough to fit all csg1 sprites.