#include "stdafx.h"
#include "clear_map.h"
#include "industry_map.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 "zoom_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 | ExtraViewportWindow |
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) |
Enumerations | |
enum | SmallMapWindowWidgets { SM_WIDGET_MAP_BORDER = 3, SM_WIDGET_MAP, SM_WIDGET_LEGEND, SM_WIDGET_BUTTONSPANEL, 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_BOTTOMPANEL, SM_WIDGET_ENABLEINDUSTRIES, SM_WIDGET_DISABLEINDUSTRIES, SM_WIDGET_RESIZEBOX } |
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 void | DrawSmallMapStuff (void *dst, uint xc, uint yc, int pitch, int reps, uint32 mask, GetSmallMapPixels *proc) |
Draws one column of the small map in a certain mode onto the screen buffer. | |
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 void | DrawVertMapIndicator (int x, int y, int x2, int y2) |
static void | DrawHorizMapIndicator (int x, int y, int x2, int y2) |
void | ShowSmallMap () |
void | ShowExtraViewPortWindow (TileIndex tile) |
bool | ScrollMainWindowTo (int x, int y, int z, bool instant) |
Scrolls the main window to given coordinates. | |
Variables | |
static const Widget | _smallmap_widgets [] |
static int | _smallmap_industry_count |
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 * | _smallmap_draw_procs [] |
static const byte | _vehicle_type_colours [6] |
static const WindowDesc | _smallmap_desc (WDP_AUTO, WDP_AUTO, 350, 214, 446, 314, WC_SMALLMAP, WC_NONE, WDF_STD_TOOLTIPS|WDF_STD_BTN|WDF_DEF_WIDGET|WDF_STICKY_BUTTON|WDF_RESIZABLE, _smallmap_widgets) |
static const Widget | _extra_view_port_widgets [] |
static const WindowDesc | _extra_view_port_desc (WDP_AUTO, WDP_AUTO, 300, 68, 300, 268, WC_EXTRA_VIEW_PORT, WC_NONE, WDF_STD_TOOLTIPS|WDF_STD_BTN|WDF_DEF_WIDGET|WDF_UNCLICK_BUTTONS|WDF_STICKY_BUTTON|WDF_RESIZABLE, _extra_view_port_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 59 of file smallmap_gui.cpp.
static void DrawSmallMapStuff | ( | void * | dst, | |
uint | xc, | |||
uint | yc, | |||
int | pitch, | |||
int | reps, | |||
uint32 | mask, | |||
GetSmallMapPixels * | proc | |||
) | [static] |
Draws one column of the small map in a certain mode onto the screen buffer.
This function looks exactly the same for all types
dst | Pointer to a part of the screen buffer to write to. | |
xc | The X coordinate of the first tile in the column. | |
yc | The Y coordinate of the first tile in the column | |
pitch | Number of pixels to advance in the screen buffer each time a pixel is written. | |
reps | Number of lines to draw | |
mask | ? | |
proc | Pointer to the colour function |
Definition at line 279 of file smallmap_gui.cpp.
References _settings_game, GameSettings::construction, ConstructionSettings::freeform_edges, BlitterFactoryBase::GetCurrentBlitter(), IsInsideMM(), MapMaxX(), MapMaxY(), Blitter::MoveTo(), Blitter::SetPixelIfEmpty(), and TileXY().
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 335 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 362 of file smallmap_gui.cpp.
References GetIndustryByTile(), 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 461 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 385 of file smallmap_gui.cpp.
References 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 349 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 1223 of file smallmap_gui.cpp.
References FindWindowById().
const Widget _extra_view_port_widgets[] [static] |
Initial value:
{ { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_GREY, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CAPTION, RESIZE_RIGHT, COLOUR_GREY, 11, 287, 0, 13, STR_EXTRA_VIEW_PORT_TITLE, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_STICKYBOX, RESIZE_LR, COLOUR_GREY, 288, 299, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_PANEL, RESIZE_RB, COLOUR_GREY, 0, 299, 14, 33, 0x0, STR_NULL}, { WWT_INSET, RESIZE_RB, COLOUR_GREY, 2, 297, 16, 31, 0x0, STR_NULL}, { WWT_PUSHIMGBTN, RESIZE_TB, COLOUR_GREY, 0, 21, 34, 55, SPR_IMG_ZOOMIN, STR_017F_ZOOM_THE_VIEW_IN}, { WWT_PUSHIMGBTN, RESIZE_TB, COLOUR_GREY, 22, 43, 34, 55, SPR_IMG_ZOOMOUT, STR_0180_ZOOM_THE_VIEW_OUT}, { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 44, 171, 34, 55, STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW, STR_EXTRA_VIEW_MOVE_MAIN_TO_VIEW_TT}, { WWT_PUSHTXTBTN, RESIZE_TB, COLOUR_GREY, 172, 298, 34, 55, STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN, STR_EXTRA_VIEW_MOVE_VIEW_TO_MAIN_TT}, { WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 299, 299, 34, 55, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, COLOUR_GREY, 0, 287, 56, 67, 0x0, STR_NULL}, { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_GREY, 288, 299, 56, 67, 0x0, STR_RESIZE_BUTTON}, { WIDGETS_END}, }
Definition at line 1069 of file smallmap_gui.cpp.
const LegendAndColour _legend_land_contours[] [static] |
Initial value:
{ MK(0x5A, STR_00F0_100M), MK(0x5C, STR_00F1_200M), MK(0x5E, STR_00F2_300M), MK(0x1F, STR_00F3_400M), MK(0x27, STR_00F4_500M), MS(0xD7, STR_00EB_ROADS), MK(0x0A, STR_00EC_RAILROADS), MK(0x98, STR_00ED_STATIONS_AIRPORTS_DOCKS), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES), MK(0x0F, STR_00EF_VEHICLES), }
Definition at line 72 of file smallmap_gui.cpp.
const LegendAndColour _legend_land_owners[] [static] |
Initial value:
{ MK(0xCA, STR_0126_WATER), MK(0x54, STR_0127_NO_OWNER), MK(0xB4, STR_0128_TOWNS), MK(0x20, STR_0129_INDUSTRIES), }
Definition at line 126 of file smallmap_gui.cpp.
const LegendAndColour _legend_routes[] [static] |
Initial value:
{ MK(0xD7, STR_00EB_ROADS), MK(0x0A, STR_00EC_RAILROADS), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES), MS(0x56, STR_011B_RAILROAD_STATION), MK(0xC2, STR_011C_TRUCK_LOADING_BAY), MK(0xBF, STR_011D_BUS_STATION), MK(0xB8, STR_011E_AIRPORT_HELIPORT), MK(0x98, STR_011F_DOCK), }
Definition at line 97 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 174 of file smallmap_gui.cpp.
const LegendAndColour _legend_vegetation[] [static] |
Initial value:
{ MK(0x52, STR_0120_ROUGH_LAND), MK(0x54, STR_0121_GRASS_LAND), MK(0x37, STR_0122_BARE_LAND), MK(0x25, STR_0123_FIELDS), MK(0x57, STR_0124_TREES), MK(0xD0, STR_00FC_FOREST), MS(0x0A, STR_0125_ROCKS), MK(0xC2, STR_012A_DESERT), MK(0x98, STR_012B_SNOW), MK(0xD7, STR_00F9_TRANSPORT_ROUTES), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES), }
Definition at line 110 of file smallmap_gui.cpp.
const LegendAndColour _legend_vehicles[] [static] |
Initial value:
{ MK(0xB8, STR_00F5_TRAINS), MK(0xBF, STR_00F6_ROAD_VEHICLES), MK(0x98, STR_00F7_SHIPS), MK(0x0F, STR_00F8_AIRCRAFT), MS(0xD7, STR_00F9_TRANSPORT_ROUTES), MK(0xB5, STR_00EE_BUILDINGS_INDUSTRIES), }
Definition at line 87 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 188 of file smallmap_gui.cpp.
Referenced by GetSmallMapContoursPixels().
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 219 of file smallmap_gui.cpp.
GetSmallMapPixels* _smallmap_draw_procs[] [static] |
Initial value:
{ GetSmallMapContoursPixels, GetSmallMapVehiclesPixels, GetSmallMapIndustriesPixels, GetSmallMapRoutesPixels, GetSmallMapVegetationPixels, GetSmallMapOwnerPixels, }
Definition at line 493 of file smallmap_gui.cpp.
const uint32 _smallmap_mask_left[3] [static] |
Initial value:
{ MKCOLOUR(0xFF000000), MKCOLOUR(0xFFFF0000), MKCOLOUR(0xFFFFFF00), }
Definition at line 479 of file smallmap_gui.cpp.
const uint32 _smallmap_mask_right[] [static] |
Initial value:
{ MKCOLOUR(0x000000FF), MKCOLOUR(0x0000FFFF), MKCOLOUR(0x00FFFFFF), }
Definition at line 485 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 249 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 234 of file smallmap_gui.cpp.
const Widget _smallmap_widgets[] [static] |
Initial value:
{ { WWT_CLOSEBOX, RESIZE_NONE, COLOUR_BROWN, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CAPTION, RESIZE_RIGHT, COLOUR_BROWN, 11, 337, 0, 13, STR_00B0_MAP, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_STICKYBOX, RESIZE_LR, COLOUR_BROWN, 338, 349, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_PANEL, RESIZE_RB, COLOUR_BROWN, 0, 349, 14, 157, 0x0, STR_NULL}, { WWT_INSET, RESIZE_RB, COLOUR_BROWN, 2, 347, 16, 155, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_RTB, COLOUR_BROWN, 0, 261, 158, 201, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_LRTB, COLOUR_BROWN, 262, 349, 158, 158, 0x0, STR_NULL}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 284, 305, 158, 179, SPR_IMG_SHOW_COUNTOURS, STR_0191_SHOW_LAND_CONTOURS_ON_MAP}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 306, 327, 158, 179, SPR_IMG_SHOW_VEHICLES, STR_0192_SHOW_VEHICLES_ON_MAP}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 328, 349, 158, 179, SPR_IMG_INDUSTRY, STR_0193_SHOW_INDUSTRIES_ON_MAP}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 284, 305, 180, 201, SPR_IMG_SHOW_ROUTES, STR_0194_SHOW_TRANSPORT_ROUTES_ON}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 306, 327, 180, 201, SPR_IMG_PLANTTREES, STR_0195_SHOW_VEGETATION_ON_MAP}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 328, 349, 180, 201, SPR_IMG_COMPANY_GENERAL, STR_0196_SHOW_LAND_OWNERS_ON_MAP}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 262, 283, 158, 179, SPR_IMG_SMALLMAP, STR_SMALLMAP_CENTER}, { WWT_IMGBTN, RESIZE_LRTB, COLOUR_BROWN, 262, 283, 180, 201, SPR_IMG_TOWN, STR_0197_TOGGLE_TOWN_NAMES_ON_OFF}, { WWT_PANEL, RESIZE_RTB, COLOUR_BROWN, 0, 337, 202, 213, 0x0, STR_NULL}, { WWT_TEXTBTN, RESIZE_TB, COLOUR_BROWN, 0, 99, 202, 213, STR_MESSAGES_ENABLE_ALL, STR_NULL}, { WWT_TEXTBTN, RESIZE_TB, COLOUR_BROWN, 100, 201, 202, 213, STR_MESSAGES_DISABLE_ALL, STR_NULL}, { WWT_RESIZEBOX, RESIZE_LRTB, COLOUR_BROWN, 338, 349, 202, 213, 0x0, STR_RESIZE_BUTTON}, { WIDGETS_END}, }
Definition at line 27 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 407 of file smallmap_gui.cpp.
const byte _vehicle_type_colours[6] [static] |