#include "stdafx.h"
#include "openttd.h"
#include "debug.h"
#include "town.h"
#include "viewport_func.h"
#include "gfx_func.h"
#include "gui.h"
#include "window_gui.h"
#include "textbuf_gui.h"
#include "command_func.h"
#include "player_func.h"
#include "player_base.h"
#include "player_gui.h"
#include "network/network.h"
#include "variables.h"
#include "strings_func.h"
#include "economy_func.h"
#include "core/alloc_func.hpp"
#include "settings_type.h"
#include "table/sprites.h"
#include "table/strings.h"
Go to the source code of this file.
Enumerations | |
enum | TownAuthorityWidget { TWA_CLOSEBOX = 0, TWA_CAPTION, TWA_RATING_INFO, TWA_COMMAND_LIST, TWA_SCROLLBAR, TWA_ACTION_INFO, TWA_EXECUTE } |
enum | TownActions { TACT_NONE = 0x00, TACT_ADVERTISE_SMALL = 0x01, TACT_ADVERTISE_MEDIUM = 0x02, TACT_ADVERTISE_LARGE = 0x04, TACT_ROAD_REBUILD = 0x08, TACT_BUILD_STATUE = 0x10, TACT_FOUND_BUILDINGS = 0x20, TACT_BUY_RIGHTS = 0x40, TACT_BRIBE = 0x80, TACT_ADVERTISE = TACT_ADVERTISE_SMALL | TACT_ADVERTISE_MEDIUM | TACT_ADVERTISE_LARGE, TACT_CONSTRUCTION = TACT_ROAD_REBUILD | TACT_BUILD_STATUE | TACT_FOUND_BUILDINGS, TACT_FUNDS = TACT_BUY_RIGHTS | TACT_BRIBE, TACT_ALL = TACT_ADVERTISE | TACT_CONSTRUCTION | TACT_FUNDS } |
enum | TownDirectoryWidget { TDW_SORTNAME = 3, TDW_SORTPOPULATION, TDW_CENTERTOWN } |
Functions | |
DECLARE_ENUM_AS_BIT_SET (TownActions) | |
uint | GetMaskOfTownActions (int *nump, PlayerID pid, const Town *t) |
Get a list of available actions to do at a town. | |
static int | GetNthSetBit (uint32 bits, int n) |
Get the position of the Nth set bit. | |
static void | TownAuthorityWndProc (Window *w, WindowEvent *e) |
static void | ShowTownAuthorityWindow (uint town) |
static void | TownViewWndProc (Window *w, WindowEvent *e) |
void | ShowTownViewWindow (TownID town) |
static int CDECL | TownNameSorter (const void *a, const void *b) |
static int CDECL | TownPopSorter (const void *a, const void *b) |
static void | MakeSortedTownList () |
static void | TownDirectoryWndProc (Window *w, WindowEvent *e) |
void | ShowTownDirectory () |
Variables | |
static const Widget | _town_authority_widgets [] |
const byte | _town_action_costs [8] |
static const WindowDesc | _town_authority_desc |
static const Widget | _town_view_widgets [] |
static const WindowDesc | _town_view_desc |
static const Widget | _town_view_scen_widgets [] |
static const WindowDesc | _town_view_scen_desc |
static const Widget | _town_directory_widgets [] |
static uint | _num_town_sort |
static char | _bufcache [64] |
static const Town * | _last_town |
static const WindowDesc | _town_directory_desc |
Definition in file town_gui.cpp.
uint GetMaskOfTownActions | ( | int * | nump, | |
PlayerID | pid, | |||
const Town * | t | |||
) |
Get a list of available actions to do at a town.
nump | if not NULL add put the number of available actions in it | |
pid | the player that is querying the town | |
t | the town that is queried |
Definition at line 77 of file town_gui.cpp.
References HasBit(), and PLAYER_SPECTATOR.
Referenced by CmdDoTownAction(), and TownAuthorityWndProc().
static int GetNthSetBit | ( | uint32 | bits, | |
int | n | |||
) | [static] |
Get the position of the Nth set bit.
If there is no Nth bit set return -1
bits | The value to search in | |
n | The Nth set bit from which we want to know the position |
Definition at line 126 of file town_gui.cpp.
References FOR_EACH_SET_BIT.
Referenced by TownAuthorityWndProc().
static void TownAuthorityWndProc | ( | Window * | w, | |
WindowEvent * | e | |||
) | [static] |
< Draw only the 5 fitting lines
Definition at line 138 of file town_gui.cpp.
References CMD_DO_TOWN_ACTION, CMD_MSG, DoCommandP(), GetMaskOfTownActions(), GetNthSetBit(), HasBit(), IsInsideMM(), and SetWindowDirty().
const WindowDesc _town_authority_desc [static] |
Initial value:
{ WDP_AUTO, WDP_AUTO, 317, 222, 317, 222, WC_TOWN_AUTHORITY, WC_NONE, WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS, _town_authority_widgets, TownAuthorityWndProc }
Definition at line 255 of file town_gui.cpp.
const Widget _town_authority_widgets[] [static] |
Initial value:
{ { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 316, 0, 13, STR_2022_LOCAL_AUTHORITY, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_PANEL, RESIZE_NONE, 13, 0, 316, 14, 105, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 13, 0, 304, 106, 157, 0x0, STR_2043_LIST_OF_THINGS_TO_DO_AT}, { WWT_SCROLLBAR, RESIZE_NONE, 13, 305, 316, 106, 157, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_PANEL, RESIZE_NONE, 13, 0, 316, 158, 209, 0x0, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 316, 210, 221, STR_2042_DO_IT, STR_2044_CARRY_OUT_THE_HIGHLIGHTED}, { WIDGETS_END}, }
Definition at line 38 of file town_gui.cpp.
const WindowDesc _town_directory_desc [static] |
Initial value:
{ WDP_AUTO, WDP_AUTO, 208, 202, 208, 202, WC_TOWN_DIRECTORY, WC_NONE, WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON | WDF_RESIZABLE, _town_directory_widgets, TownDirectoryWndProc }
Definition at line 555 of file town_gui.cpp.
const Widget _town_directory_widgets[] [static] |
Initial value:
{ { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 195, 0, 13, STR_2000_TOWNS, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_STICKYBOX, RESIZE_NONE, 13, 196, 207, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 98, 14, 25, STR_SORT_BY_NAME, STR_SORT_ORDER_TIP}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 99, 195, 14, 25, STR_SORT_BY_POPULATION, STR_SORT_ORDER_TIP}, { WWT_PANEL, RESIZE_BOTTOM, 13, 0, 195, 26, 189, 0x0, STR_200A_TOWN_NAMES_CLICK_ON_NAME}, { WWT_SCROLLBAR, RESIZE_BOTTOM, 13, 196, 207, 14, 189, 0x0, STR_0190_SCROLL_BAR_SCROLLS_LIST}, { WWT_PANEL, RESIZE_TB, 13, 0, 195, 190, 201, 0x0, STR_NULL}, { WWT_RESIZEBOX, RESIZE_TB, 13, 196, 207, 190, 201, 0x0, STR_RESIZE_BUTTON}, { WIDGETS_END}, }
Definition at line 404 of file town_gui.cpp.
const WindowDesc _town_view_desc [static] |
Initial value:
{ WDP_AUTO, WDP_AUTO, 260, 150, 260, 150, WC_TOWN_VIEW, WC_NONE, WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON, _town_view_widgets, TownViewWndProc }
Definition at line 352 of file town_gui.cpp.
const WindowDesc _town_view_scen_desc [static] |
Initial value:
{ WDP_AUTO, WDP_AUTO, 260, 150, 260, 150, WC_TOWN_VIEW, WC_NONE, WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS | WDF_STICKY_BUTTON, _town_view_scen_widgets, TownViewWndProc }
Definition at line 375 of file town_gui.cpp.
const Widget _town_view_scen_widgets[] [static] |
Initial value:
{ { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 172, 0, 13, STR_2005, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_STICKYBOX, RESIZE_NONE, 13, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_PANEL, RESIZE_NONE, 13, 0, 259, 14, 105, 0x0, STR_NULL}, { WWT_INSET, RESIZE_NONE, 13, 2, 257, 16, 103, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 13, 0, 259, 106, 137, 0x0, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 85, 138, 149, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON}, { WWT_EMPTY, RESIZE_NONE, 0, 0, 0, 0, 0, 0x0, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 173, 247, 0, 13, STR_0130_RENAME, STR_200C_CHANGE_TOWN_NAME}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 86, 171, 138, 149, STR_023C_EXPAND, STR_023B_INCREASE_SIZE_OF_TOWN}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 172, 259, 138, 149, STR_0290_DELETE, STR_0291_DELETE_THIS_TOWN_COMPLETELY}, { WIDGETS_END}, }
Definition at line 360 of file town_gui.cpp.
const Widget _town_view_widgets[] [static] |
Initial value:
{ { WWT_CLOSEBOX, RESIZE_NONE, 13, 0, 10, 0, 13, STR_00C5, STR_018B_CLOSE_WINDOW}, { WWT_CAPTION, RESIZE_NONE, 13, 11, 247, 0, 13, STR_2005, STR_018C_WINDOW_TITLE_DRAG_THIS}, { WWT_STICKYBOX, RESIZE_NONE, 13, 248, 259, 0, 13, 0x0, STR_STICKY_BUTTON}, { WWT_PANEL, RESIZE_NONE, 13, 0, 259, 14, 105, 0x0, STR_NULL}, { WWT_INSET, RESIZE_NONE, 13, 2, 257, 16, 103, 0x0, STR_NULL}, { WWT_PANEL, RESIZE_NONE, 13, 0, 259, 106, 137, 0x0, STR_NULL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 0, 85, 138, 149, STR_00E4_LOCATION, STR_200B_CENTER_THE_MAIN_VIEW_ON}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 86, 171, 138, 149, STR_2020_LOCAL_AUTHORITY, STR_2021_SHOW_INFORMATION_ON_LOCAL}, { WWT_PUSHTXTBTN, RESIZE_NONE, 13, 172, 259, 138, 149, STR_0130_RENAME, STR_200C_CHANGE_TOWN_NAME}, { WIDGETS_END}, }
Definition at line 339 of file town_gui.cpp.