mirror of https://github.com/OpenRCT2/OpenRCT2.git
Simplifies map_window_get_pixel_colour_ride
- Splits uint32 into two uint16 - Reuse code for unowned land colour
This commit is contained in:
parent
887619a87e
commit
e5d143b748
|
@ -1,4 +1,4 @@
|
||||||
#pragma region Copyright (c) 2014-2017 OpenRCT2 Developers
|
#pragma region Copyright (c) 2014-2018 OpenRCT2 Developers
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
* OpenRCT2, an open source clone of Roller Coaster Tycoon 2.
|
* OpenRCT2, an open source clone of Roller Coaster Tycoon 2.
|
||||||
*
|
*
|
||||||
|
@ -34,9 +34,9 @@
|
||||||
#include <openrct2-ui/interface/Widget.h>
|
#include <openrct2-ui/interface/Widget.h>
|
||||||
#include <openrct2-ui/windows/Window.h>
|
#include <openrct2-ui/windows/Window.h>
|
||||||
|
|
||||||
#define MAP_COLOUR_2(colourA, colourB) ((colourA << 8) | colourB)
|
#define MAP_COLOUR_2(colourA, colourB) (((colourA) << 8) | (colourB))
|
||||||
#define MAP_COLOUR(colour) MAP_COLOUR_2(colour, colour)
|
#define MAP_COLOUR(colour) MAP_COLOUR_2(colour, colour)
|
||||||
#define FALLBACK_COLOUR(colour) ((colour << 24) | colour << 16)
|
#define MAP_COLOUR_UNOWNED(colour) (PALETTE_INDEX_10 | ((colour) & 0xFF00))
|
||||||
|
|
||||||
#define MAP_WINDOW_MAP_SIZE (MAXIMUM_MAP_SIZE_TECHNICAL * 2)
|
#define MAP_WINDOW_MAP_SIZE (MAXIMUM_MAP_SIZE_TECHNICAL * 2)
|
||||||
|
|
||||||
|
@ -1582,7 +1582,7 @@ static uint16 map_window_get_pixel_colour_peep(sint32 x, sint32 y)
|
||||||
colour = WaterColour;
|
colour = WaterColour;
|
||||||
|
|
||||||
if (!(tileElement->properties.surface.ownership & OWNERSHIP_OWNED))
|
if (!(tileElement->properties.surface.ownership & OWNERSHIP_OWNED))
|
||||||
colour = PALETTE_INDEX_10 | (colour & 0xFF00);
|
colour = MAP_COLOUR_UNOWNED(colour);
|
||||||
|
|
||||||
const sint32 maxSupportedTileElementType = (sint32)Util::CountOf(ElementTypeAddColour);
|
const sint32 maxSupportedTileElementType = (sint32)Util::CountOf(ElementTypeAddColour);
|
||||||
while (!tile_element_is_last_for_tile(tileElement++)) {
|
while (!tile_element_is_last_for_tile(tileElement++)) {
|
||||||
|
@ -1599,26 +1599,23 @@ static uint16 map_window_get_pixel_colour_peep(sint32 x, sint32 y)
|
||||||
|
|
||||||
static uint16 map_window_get_pixel_colour_ride(sint32 x, sint32 y)
|
static uint16 map_window_get_pixel_colour_ride(sint32 x, sint32 y)
|
||||||
{
|
{
|
||||||
rct_tile_element *tileElement;
|
|
||||||
Ride *ride;
|
Ride *ride;
|
||||||
uint32 colour;
|
uint16 colourA = 0; // highlight colour
|
||||||
|
uint16 colourB = MAP_COLOUR(PALETTE_INDEX_13); // surface colour (dark grey)
|
||||||
|
|
||||||
colour = FALLBACK_COLOUR(PALETTE_INDEX_13);
|
// as an improvement we could use first_element to show underground stuff?
|
||||||
tileElement = map_get_surface_element_at(x >> 5, y >> 5);
|
rct_tile_element * tileElement = map_get_surface_element_at(x >> 5, y >> 5);
|
||||||
do {
|
do {
|
||||||
switch (tile_element_get_type(tileElement)) {
|
switch (tile_element_get_type(tileElement)) {
|
||||||
case TILE_ELEMENT_TYPE_SURFACE:
|
case TILE_ELEMENT_TYPE_SURFACE:
|
||||||
if (map_get_water_height(tileElement) > 0) {
|
if (map_get_water_height(tileElement) > 0)
|
||||||
colour &= 0xFFFF;
|
// Why is this a different water colour as above (195)?
|
||||||
colour |= FALLBACK_COLOUR(PALETTE_INDEX_194);
|
colourB = MAP_COLOUR(PALETTE_INDEX_194);
|
||||||
}
|
if (!(tileElement->properties.surface.ownership & OWNERSHIP_OWNED))
|
||||||
if (!(tileElement->properties.surface.ownership & OWNERSHIP_OWNED)) {
|
colourB = MAP_COLOUR_UNOWNED(colourB);
|
||||||
colour &= 0xFF00FFFF;
|
|
||||||
colour |= PALETTE_INDEX_10 << 16;
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
case TILE_ELEMENT_TYPE_PATH:
|
case TILE_ELEMENT_TYPE_PATH:
|
||||||
colour = MAP_COLOUR(PALETTE_INDEX_14);
|
colourA = MAP_COLOUR(PALETTE_INDEX_14); // lighter grey
|
||||||
break;
|
break;
|
||||||
case TILE_ELEMENT_TYPE_ENTRANCE:
|
case TILE_ELEMENT_TYPE_ENTRANCE:
|
||||||
if (tileElement->properties.entrance.type == ENTRANCE_TYPE_PARK_ENTRANCE)
|
if (tileElement->properties.entrance.type == ENTRANCE_TYPE_PARK_ENTRANCE)
|
||||||
|
@ -1626,15 +1623,15 @@ static uint16 map_window_get_pixel_colour_ride(sint32 x, sint32 y)
|
||||||
// fall-through
|
// fall-through
|
||||||
case TILE_ELEMENT_TYPE_TRACK:
|
case TILE_ELEMENT_TYPE_TRACK:
|
||||||
ride = get_ride(track_element_get_ride_index(tileElement));
|
ride = get_ride(track_element_get_ride_index(tileElement));
|
||||||
colour = RideKeyColours[RideColourKey[ride->type]];
|
colourA = RideKeyColours[RideColourKey[ride->type]];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} while (!tile_element_is_last_for_tile(tileElement++));
|
} while (!tile_element_is_last_for_tile(tileElement++));
|
||||||
|
|
||||||
if ((colour & 0xFFFF) == 0)
|
if (colourA != 0)
|
||||||
colour >>= 16;
|
return colourA;
|
||||||
|
|
||||||
return colour & 0xFFFF;
|
return colourB;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void map_window_set_pixels(rct_window *w)
|
static void map_window_set_pixels(rct_window *w)
|
||||||
|
|
Loading…
Reference in New Issue