#include "stdafx.h"
#include "clear_map.h"
#include "industry.h"
#include "station_map.h"
#include "landscape.h"
#include "window_gui.h"
#include "tree_map.h"
#include "viewport_func.h"
#include "gfx_func.h"
#include "town.h"
#include "blitter/factory.hpp"
#include "tunnelbridge_map.h"
#include "strings_func.h"
#include "core/endian_func.hpp"
#include "vehicle_base.h"
#include "sound_func.h"
#include "window_func.h"
#include "table/strings.h"
#include "table/sprites.h"
Go to the source code of this file.
Data Structures | |
struct | LegendAndColour |
Structure for holding relevant data for legends in small map. More... | |
struct | AndOr |
class | SmallMapWindow |
Class managing the smallmap window. More... | |
class | NWidgetSmallmapDisplay |
Custom container class for displaying smallmap with a vertically resizing legend panel. More... | |
Defines | |
#define | MK(a, b) {a, b, INVALID_INDUSTRYTYPE, true, false, false} |
Macro for ordinary entry of LegendAndColour. | |
#define | MKEND() {0, STR_NULL, INVALID_INDUSTRYTYPE, true, true, false} |
Macro for end of list marker in arrays of LegendAndColour. | |
#define | MS(a, b) {a, b, INVALID_INDUSTRYTYPE, true, false, true} |
Macro for break marker in arrays of LegendAndColour. | |
#define | MKCOLOUR(x) TO_LE32X(x) |
Typedefs | |
typedef uint32 | GetSmallMapPixels (TileIndex tile) |
Typedef callthrough function. | |
Enumerations | |
enum | SmallMapWindowWidgets { SM_WIDGET_CAPTION, SM_WIDGET_MAP_BORDER, SM_WIDGET_MAP, SM_WIDGET_LEGEND, SM_WIDGET_CONTOUR, SM_WIDGET_VEHICLES, SM_WIDGET_INDUSTRIES, SM_WIDGET_ROUTES, SM_WIDGET_VEGETATION, SM_WIDGET_OWNERS, SM_WIDGET_CENTERMAP, SM_WIDGET_TOGGLETOWNNAME, SM_WIDGET_SELECTINDUSTRIES, SM_WIDGET_ENABLEINDUSTRIES, SM_WIDGET_DISABLEINDUSTRIES, SM_WIDGET_SHOW_HEIGHT } |
Widget numbers of the small map window. More... | |
Functions | |
void | BuildIndustriesLegend () |
Fills an array for the industries legends. | |
assert_compile (lengthof(_map_height_bits)==MAX_TILE_HEIGHT+1) | |
static uint32 | ApplyMask (uint32 colour, const AndOr *mask) |
static TileType | GetEffectiveTileType (TileIndex tile) |
static uint32 | GetSmallMapContoursPixels (TileIndex tile) |
Return the colour a tile would be displayed with in the small map in mode "Contour". | |
static uint32 | GetSmallMapVehiclesPixels (TileIndex tile) |
Return the colour a tile would be displayed with in the small map in mode "Vehicles". | |
static uint32 | GetSmallMapIndustriesPixels (TileIndex tile) |
Return the colour a tile would be displayed with in the small map in mode "Industries". | |
static uint32 | GetSmallMapRoutesPixels (TileIndex tile) |
Return the colour a tile would be displayed with in the small map in mode "Routes". | |
static uint32 | GetSmallMapVegetationPixels (TileIndex tile) |
static uint32 | GetSmallMapOwnerPixels (TileIndex tile) |
Return the colour a tile would be displayed with in the small map in mode "Owner". | |
static NWidgetBase * | SmallMapDisplay (int *biggest_index) |
void | ShowSmallMap () |
bool | ScrollMainWindowTo (int x, int y, int z, bool instant) |
Scrolls the main window to given coordinates. | |
Variables | |
static int | _smallmap_industry_count |
Number of used industries. | |
static const LegendAndColour | _legend_land_contours [] |
Legend text giving the colours to look for on the minimap. | |
static const LegendAndColour | _legend_vehicles [] |
static const LegendAndColour | _legend_routes [] |
static const LegendAndColour | _legend_vegetation [] |
static const LegendAndColour | _legend_land_owners [] |
static LegendAndColour | _legend_from_industries [NUM_INDUSTRYTYPES+1] |
Allow room for all industries, plus a terminator entry This is required in order to have the indutry slots all filled up. | |
static uint | _industry_to_list_pos [NUM_INDUSTRYTYPES] |
static bool | _smallmap_industry_show_heightmap |
Show heightmap in industry mode of smallmap window. | |
static const LegendAndColour *const | _legend_table [] |
static const uint32 | _map_height_bits [] |
Height encodings; MAX_TILE_HEIGHT + 1 levels, from 0 to MAX_TILE_HEIGHT. | |
static const AndOr | _smallmap_contours_andor [] |
static const AndOr | _smallmap_vehicles_andor [] |
static const uint32 | _vegetation_clear_bits [] |
static uint32 | _owner_colours [OWNER_END+1] |
static const uint32 | _smallmap_mask_left [3] |
static const uint32 | _smallmap_mask_right [] |
static GetSmallMapPixels *const | _smallmap_draw_procs [] |
static const byte | _vehicle_type_colours [6] |
static const NWidgetPart | _nested_smallmap_display [] |
Widget parts of the smallmap display. | |
static const NWidgetPart | _nested_smallmap_bar [] |
Widget parts of the smallmap legend bar + image buttons. | |
static const NWidgetPart | _nested_smallmap_widgets [] |
static const WindowDesc | _smallmap_desc (WDP_AUTO, 446, 314, WC_SMALLMAP, WC_NONE, WDF_UNCLICK_BUTTONS, _nested_smallmap_widgets, lengthof(_nested_smallmap_widgets)) |
Definition in file smallmap_gui.cpp.
#define MS | ( | a, | |||
b | ) | {a, b, INVALID_INDUSTRYTYPE, true, false, true} |
Macro for break marker in arrays of LegendAndColour.
It will have valid data, though
Definition at line 61 of file smallmap_gui.cpp.
static uint32 GetSmallMapContoursPixels | ( | TileIndex | tile | ) | [inline, static] |
Return the colour a tile would be displayed with in the small map in mode "Contour".
tile | The tile of which we would like to get the colour. |
Definition at line 277 of file smallmap_gui.cpp.
References _map_height_bits, and TileHeight().
static uint32 GetSmallMapIndustriesPixels | ( | TileIndex | tile | ) | [inline, static] |
Return the colour a tile would be displayed with in the small map in mode "Industries".
tile | The tile of which we would like to get the colour. |
Definition at line 303 of file smallmap_gui.cpp.
References _map_height_bits, _smallmap_industry_show_heightmap, Industry::GetByTile(), GetIndustrySpec(), IndustrySpec::map_colour, MP_CLEAR, MP_INDUSTRY, and TileHeight().
static uint32 GetSmallMapOwnerPixels | ( | TileIndex | tile | ) | [inline, static] |
Return the colour a tile would be displayed with in the small map in mode "Owner".
tile | The tile of which we would like to get the colour. |
Definition at line 388 of file smallmap_gui.cpp.
References GetTileOwner(), GetTileType(), MP_HOUSE, MP_INDUSTRY, OWNER_END, and OWNER_TOWN.
static uint32 GetSmallMapRoutesPixels | ( | TileIndex | tile | ) | [inline, static] |
Return the colour a tile would be displayed with in the small map in mode "Routes".
tile | The tile of which we would like to get the colour. |
Definition at line 326 of file smallmap_gui.cpp.
References GetStationType(), and MP_STATION.
static uint32 GetSmallMapVehiclesPixels | ( | TileIndex | tile | ) | [inline, static] |
Return the colour a tile would be displayed with in the small map in mode "Vehicles".
tile | The tile of which we would like to get the colour. |
Definition at line 290 of file smallmap_gui.cpp.
bool ScrollMainWindowTo | ( | int | x, | |
int | y, | |||
int | z, | |||
bool | instant | |||
) |
Scrolls the main window to given coordinates.
x | x coordinate | |
y | y coordinate | |
z | z coordinate; -1 to scroll to terrain height | |
instant | scroll instantly (meaningful only when smooth_scrolling is active) |
Definition at line 1293 of file smallmap_gui.cpp.
References FindWindowById(), ScrollWindowTo(), and SmallMapWindow::SmallMapCenterOnCurrentPos().
Referenced by VehicleViewWindow::OnClick(), and NewsWindow::OnClick().
const LegendAndColour _legend_land_contours[] [static] |
Initial value:
{ MK(0x5A, STR_SMALLMAP_LEGENDA_100M), MK(0x5C, STR_SMALLMAP_LEGENDA_200M), MK(0x5E, STR_SMALLMAP_LEGENDA_300M), MK(0x1F, STR_SMALLMAP_LEGENDA_400M), MK(0x27, STR_SMALLMAP_LEGENDA_500M), MS(0xD7, STR_SMALLMAP_LEGENDA_ROADS), MK(0x0A, STR_SMALLMAP_LEGENDA_RAILROADS), MK(0x98, STR_SMALLMAP_LEGENDA_STATIONS_AIRPORTS_DOCKS), MK(0xB5, STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES), MK(0x0F, STR_SMALLMAP_LEGENDA_VEHICLES), }
Definition at line 74 of file smallmap_gui.cpp.
const LegendAndColour _legend_land_owners[] [static] |
Initial value:
{ MK(0xCA, STR_SMALLMAP_LEGENDA_WATER), MK(0x54, STR_SMALLMAP_LEGENDA_NO_OWNER), MK(0xB4, STR_SMALLMAP_LEGENDA_TOWNS), MK(0x20, STR_SMALLMAP_LEGENDA_INDUSTRIES), }
Definition at line 129 of file smallmap_gui.cpp.
const LegendAndColour _legend_routes[] [static] |
Initial value:
{ MK(0xD7, STR_SMALLMAP_LEGENDA_ROADS), MK(0x0A, STR_SMALLMAP_LEGENDA_RAILROADS), MK(0xB5, STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES), MS(0x56, STR_SMALLMAP_LEGENDA_RAILROAD_STATION), MK(0xC2, STR_SMALLMAP_LEGENDA_TRUCK_LOADING_BAY), MK(0xBF, STR_SMALLMAP_LEGENDA_BUS_STATION), MK(0xB8, STR_SMALLMAP_LEGENDA_AIRPORT_HELIPORT), MK(0x98, STR_SMALLMAP_LEGENDA_DOCK), }
Definition at line 100 of file smallmap_gui.cpp.
const LegendAndColour* const _legend_table[] [static] |
Initial value:
{ _legend_land_contours, _legend_vehicles, _legend_from_industries, _legend_routes, _legend_vegetation, _legend_land_owners, }
Definition at line 178 of file smallmap_gui.cpp.
const LegendAndColour _legend_vegetation[] [static] |
Initial value:
{ MK(0x52, STR_SMALLMAP_LEGENDA_ROUGH_LAND), MK(0x54, STR_SMALLMAP_LEGENDA_GRASS_LAND), MK(0x37, STR_SMALLMAP_LEGENDA_BARE_LAND), MK(0x25, STR_SMALLMAP_LEGENDA_FIELDS), MK(0x57, STR_SMALLMAP_LEGENDA_TREES), MK(0xD0, STR_SMALLMAP_LEGENDA_FOREST), MS(0x0A, STR_SMALLMAP_LEGENDA_ROCKS), MK(0xC2, STR_SMALLMAP_LEGENDA_DESERT), MK(0x98, STR_SMALLMAP_LEGENDA_SNOW), MK(0xD7, STR_SMALLMAP_LEGENDA_TRANSPORT_ROUTES), MK(0xB5, STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES), }
Definition at line 113 of file smallmap_gui.cpp.
const LegendAndColour _legend_vehicles[] [static] |
Initial value:
{ MK(0xB8, STR_SMALLMAP_LEGENDA_TRAINS), MK(0xBF, STR_SMALLMAP_LEGENDA_ROAD_VEHICLES), MK(0x98, STR_SMALLMAP_LEGENDA_SHIPS), MK(0x0F, STR_SMALLMAP_LEGENDA_AIRCRAFT), MS(0xD7, STR_SMALLMAP_LEGENDA_TRANSPORT_ROUTES), MK(0xB5, STR_SMALLMAP_LEGENDA_BUILDINGS_INDUSTRIES), }
Definition at line 89 of file smallmap_gui.cpp.
const uint32 _map_height_bits[] [static] |
Initial value:
{ MKCOLOUR(0x5A5A5A5A), MKCOLOUR(0x5A5B5A5B), MKCOLOUR(0x5B5B5B5B), MKCOLOUR(0x5B5C5B5C), MKCOLOUR(0x5C5C5C5C), MKCOLOUR(0x5C5D5C5D), MKCOLOUR(0x5D5D5D5D), MKCOLOUR(0x5D5E5D5E), MKCOLOUR(0x5E5E5E5E), MKCOLOUR(0x5E5F5E5F), MKCOLOUR(0x5F5F5F5F), MKCOLOUR(0x5F1F5F1F), MKCOLOUR(0x1F1F1F1F), MKCOLOUR(0x1F271F27), MKCOLOUR(0x27272727), MKCOLOUR(0x27272727), }
Definition at line 192 of file smallmap_gui.cpp.
Referenced by GetSmallMapContoursPixels(), and GetSmallMapIndustriesPixels().
const NWidgetPart _nested_smallmap_bar[] [static] |
Initial value:
{ NWidget(WWT_PANEL, COLOUR_BROWN), NWidget(NWID_HORIZONTAL), NWidget(WWT_EMPTY, INVALID_COLOUR, SM_WIDGET_LEGEND), SetResize(1, 1), NWidget(NWID_VERTICAL), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), NWidget(WWT_PUSHIMGBTN, COLOUR_BROWN, SM_WIDGET_CENTERMAP), SetDataTip(SPR_IMG_SMALLMAP, STR_SMALLMAP_CENTER), NWidget(WWT_IMGBTN, COLOUR_BROWN, SM_WIDGET_CONTOUR), SetDataTip(SPR_IMG_SHOW_COUNTOURS, STR_SMALLMAP_TOOLTIP_SHOW_LAND_CONTOURS_ON_MAP), NWidget(WWT_IMGBTN, COLOUR_BROWN, SM_WIDGET_VEHICLES), SetDataTip(SPR_IMG_SHOW_VEHICLES, STR_SMALLMAP_TOOLTIP_SHOW_VEHICLES_ON_MAP), NWidget(WWT_IMGBTN, COLOUR_BROWN, SM_WIDGET_INDUSTRIES), SetDataTip(SPR_IMG_INDUSTRY, STR_SMALLMAP_TOOLTIP_SHOW_INDUSTRIES_ON_MAP), EndContainer(), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), NWidget(WWT_IMGBTN, COLOUR_BROWN, SM_WIDGET_TOGGLETOWNNAME), SetDataTip(SPR_IMG_TOWN, STR_SMALLMAP_TOOLTIP_TOGGLE_TOWN_NAMES_ON_OFF), NWidget(WWT_IMGBTN, COLOUR_BROWN, SM_WIDGET_ROUTES), SetDataTip(SPR_IMG_SHOW_ROUTES, STR_SMALLMAP_TOOLTIP_SHOW_TRANSPORT_ROUTES_ON), NWidget(WWT_IMGBTN, COLOUR_BROWN, SM_WIDGET_VEGETATION), SetDataTip(SPR_IMG_PLANTTREES, STR_SMALLMAP_TOOLTIP_SHOW_VEGETATION_ON_MAP), NWidget(WWT_IMGBTN, COLOUR_BROWN, SM_WIDGET_OWNERS), SetDataTip(SPR_IMG_COMPANY_GENERAL, STR_SMALLMAP_TOOLTIP_SHOW_LAND_OWNERS_ON_MAP), EndContainer(), NWidget(NWID_SPACER), SetResize(0, 1), EndContainer(), EndContainer(), EndContainer(), }
Definition at line 1211 of file smallmap_gui.cpp.
const NWidgetPart _nested_smallmap_display[] [static] |
Initial value:
{ NWidget(WWT_PANEL, COLOUR_BROWN, SM_WIDGET_MAP_BORDER), NWidget(WWT_INSET, COLOUR_BROWN, SM_WIDGET_MAP), SetMinimalSize(346, 140), SetResize(1, 1), SetPadding(2, 2, 2, 2), EndContainer(), EndContainer(), }
Definition at line 1204 of file smallmap_gui.cpp.
const NWidgetPart _nested_smallmap_widgets[] [static] |
Initial value:
{ NWidget(NWID_HORIZONTAL), NWidget(WWT_CLOSEBOX, COLOUR_BROWN), NWidget(WWT_CAPTION, COLOUR_BROWN, SM_WIDGET_CAPTION), SetDataTip(STR_SMALLMAP_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS), NWidget(WWT_SHADEBOX, COLOUR_BROWN), NWidget(WWT_STICKYBOX, COLOUR_BROWN), EndContainer(), NWidgetFunction(SmallMapDisplay), NWidget(NWID_HORIZONTAL), NWidget(WWT_PANEL, COLOUR_BROWN), NWidget(NWID_HORIZONTAL), NWidget(NWID_SELECTION, INVALID_COLOUR, SM_WIDGET_SELECTINDUSTRIES), NWidget(NWID_HORIZONTAL, NC_EQUALSIZE), NWidget(WWT_TEXTBTN, COLOUR_BROWN, SM_WIDGET_ENABLEINDUSTRIES), SetDataTip(STR_SMALLMAP_ENABLE_ALL, STR_SMALLMAP_TOOLTIP_ENABLE_ALL), NWidget(WWT_TEXTBTN, COLOUR_BROWN, SM_WIDGET_DISABLEINDUSTRIES), SetDataTip(STR_SMALLMAP_DISABLE_ALL, STR_SMALLMAP_TOOLTIP_DISABLE_ALL), NWidget(WWT_TEXTBTN, COLOUR_BROWN, SM_WIDGET_SHOW_HEIGHT), SetDataTip(STR_SMALLMAP_SHOW_HEIGHT, STR_SMALLMAP_TOOLTIP_SHOW_HEIGHT), EndContainer(), NWidget(NWID_SPACER), SetFill(1, 1), EndContainer(), NWidget(NWID_SPACER), SetFill(1, 0), SetResize(1, 0), EndContainer(), EndContainer(), NWidget(WWT_RESIZEBOX, COLOUR_BROWN), EndContainer(), }
Definition at line 1246 of file smallmap_gui.cpp.
const AndOr _smallmap_contours_andor[] [static] |
Initial value:
{ {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0x000A0A00), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x00D7D700), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x00B5B500), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0x98989898), MKCOLOUR(0x00000000)}, {MKCOLOUR(0xCACACACA), MKCOLOUR(0x00000000)}, {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0xB5B5B5B5), MKCOLOUR(0x00000000)}, {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0x00B5B500), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x000A0A00), MKCOLOUR(0xFF0000FF)}, }
Definition at line 223 of file smallmap_gui.cpp.
GetSmallMapPixels* const _smallmap_draw_procs[] [static] |
Initial value:
{ GetSmallMapContoursPixels, GetSmallMapVehiclesPixels, GetSmallMapIndustriesPixels, GetSmallMapRoutesPixels, GetSmallMapVegetationPixels, GetSmallMapOwnerPixels, }
Definition at line 420 of file smallmap_gui.cpp.
bool _smallmap_industry_show_heightmap [static] |
Show heightmap in industry mode of smallmap window.
Definition at line 146 of file smallmap_gui.cpp.
Referenced by GetSmallMapIndustriesPixels(), and SmallMapWindow::OnClick().
const uint32 _smallmap_mask_left[3] [static] |
Initial value:
{ MKCOLOUR(0xFF000000), MKCOLOUR(0xFFFF0000), MKCOLOUR(0xFFFFFF00), }
Definition at line 406 of file smallmap_gui.cpp.
const uint32 _smallmap_mask_right[] [static] |
Initial value:
{ MKCOLOUR(0x000000FF), MKCOLOUR(0x0000FFFF), MKCOLOUR(0x00FFFFFF), }
Definition at line 412 of file smallmap_gui.cpp.
const AndOr _smallmap_vehicles_andor[] [static] |
Initial value:
{ {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0x00D7D700), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x00D7D700), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x00B5B500), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0x00D7D700), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0xCACACACA), MKCOLOUR(0x00000000)}, {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0xB5B5B5B5), MKCOLOUR(0x00000000)}, {MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)}, {MKCOLOUR(0x00B5B500), MKCOLOUR(0xFF0000FF)}, {MKCOLOUR(0x00D7D700), MKCOLOUR(0xFF0000FF)}, }
Definition at line 238 of file smallmap_gui.cpp.
const uint32 _vegetation_clear_bits[] [static] |
Initial value:
{ MKCOLOUR(0x54545454), MKCOLOUR(0x52525252), MKCOLOUR(0x0A0A0A0A), MKCOLOUR(0x25252525), MKCOLOUR(0x98989898), MKCOLOUR(0xC2C2C2C2), MKCOLOUR(0x54545454), MKCOLOUR(0x54545454), }
Definition at line 346 of file smallmap_gui.cpp.
const byte _vehicle_type_colours[6] [static] |