#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 } |
| 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 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 AndOr | _smallmap_vegetation_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 60 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 289 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 315 of file smallmap_gui.cpp.
References Industry::GetByTile(), GetIndustrySpec(), IndustrySpec::map_colour, MP_CLEAR, and MP_INDUSTRY.
| 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 400 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 338 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 302 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 1295 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 73 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 128 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 99 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 175 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 112 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 88 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 189 of file smallmap_gui.cpp.
Referenced by GetSmallMapContoursPixels().
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 1214 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 1207 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), SetMinimalSize(100, 12), SetDataTip(STR_SMALLMAP_ENABLE_ALL, STR_NULL),
NWidget(WWT_TEXTBTN, COLOUR_BROWN, SM_WIDGET_DISABLEINDUSTRIES), SetMinimalSize(100, 12), SetDataTip(STR_SMALLMAP_DISABLE_ALL, STR_NULL),
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 1249 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 220 of file smallmap_gui.cpp.
GetSmallMapPixels* const _smallmap_draw_procs[] [static] |
Initial value:
{
GetSmallMapContoursPixels,
GetSmallMapVehiclesPixels,
GetSmallMapIndustriesPixels,
GetSmallMapRoutesPixels,
GetSmallMapVegetationPixels,
GetSmallMapOwnerPixels,
}
Definition at line 432 of file smallmap_gui.cpp.
const uint32 _smallmap_mask_left[3] [static] |
Initial value:
{
MKCOLOUR(0xFF000000),
MKCOLOUR(0xFFFF0000),
MKCOLOUR(0xFFFFFF00),
}
Definition at line 418 of file smallmap_gui.cpp.
const uint32 _smallmap_mask_right[] [static] |
Initial value:
{
MKCOLOUR(0x000000FF),
MKCOLOUR(0x0000FFFF),
MKCOLOUR(0x00FFFFFF),
}
Definition at line 424 of file smallmap_gui.cpp.
const AndOr _smallmap_vegetation_andor[] [static] |
Initial value:
{
{MKCOLOUR(0x00000000), MKCOLOUR(0xFFFFFFFF)},
{MKCOLOUR(0x00D7D700), MKCOLOUR(0xFF0000FF)},
{MKCOLOUR(0x00D7D700), MKCOLOUR(0xFF0000FF)},
{MKCOLOUR(0x00B5B500), MKCOLOUR(0xFF0000FF)},
{MKCOLOUR(0x00575700), MKCOLOUR(0xFF0000FF)},
{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 250 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 235 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 358 of file smallmap_gui.cpp.
const byte _vehicle_type_colours[6] [static] |
1.5.6