Changeset - r11934:17c3a38acbd0
[Not reviewed]
master
0 4 0
frosch - 15 years ago 2009-05-17 18:21:21
frosch@openttd.org
(svn r16342) -Feature(tte): Display base graphics description in game options window.
4 files changed with 67 insertions and 16 deletions:
0 comments (0 inline, 0 general)
src/gfxinit.cpp
Show inline comments
 
@@ -579,35 +579,59 @@ int GetNumGraphicsSets()
 
{
 
	int n = 0;
 
	for (const GraphicsSet *g = _available_graphics_sets; g != NULL; g = g->next) {
 
		if (g != _used_graphics_set && g->found_grfs <= 1) continue;
 
		n++;
 
	}
 
	return n;
 
}
 

	
 
/**
 
 * Get the index of the currently active graphics set
 
 */
 
int GetIndexOfCurrentGraphicsSet()
 
{
 
	int n = 0;
 
	for (const GraphicsSet *g = _available_graphics_sets; g != NULL; g = g->next) {
 
		if (g == _used_graphics_set) return n;
 
		if (g->found_grfs <= 1) continue;
 
		n++;
 
	}
 
	return -1;
 
}
 

	
 
/**
 
 * Get the graphics set at the specified index
 
 */
 
static const GraphicsSet *GetGraphicsSetAtIndex(int index)
 
{
 
	for (const GraphicsSet *g = _available_graphics_sets; g != NULL; g = g->next) {
 
		if (g != _used_graphics_set && g->found_grfs <= 1) continue;
 
		if (index == 0) return g;
 
		index--;
 
	}
 
	error("GetGraphicsSetAtIndex: index %d out of range", index);
 
}
 

	
 
/**
 
 * Get the name of the graphics set at the specified index
 
 */
 
const char *GetGraphicsSetName(int index)
 
{
 
	for (const GraphicsSet *g = _available_graphics_sets; g != NULL; g = g->next) {
 
		if (g != _used_graphics_set && g->found_grfs <= 1) continue;
 
		if (index == 0) return g->name;
 
		index--;
 
	}
 
	error("GetGraphicsSetName: index %d out of range", index);
 
	return GetGraphicsSetAtIndex(index)->name;
 
}
 

	
 
/**
 
 * Get the description of the graphics set at the specified index
 
 */
 
const char *GetGraphicsSetDescription(int index)
 
{
 
	return GetGraphicsSetAtIndex(index)->description;
 
}
 

	
 
/**
 
 * Get the number of missing/corrupted files of the graphics set at the specified index
 
 */
 
int GetGraphicsSetNumMissingFiles(int index)
 
{
 
	return MAX_GFT - GetGraphicsSetAtIndex(index)->found_grfs;
 
}
src/gfxinit.h
Show inline comments
 
/* $Id$ */
 

	
 
/** @file gfxinit.h Functions related to the graphics initialization. */
 

	
 
#ifndef GFXINIT_H
 
#define GFXINIT_H
 

	
 
#include "gfx_type.h"
 

	
 
void CheckExternalFiles();
 
void GfxLoadSprites();
 
void LoadSpritesIndexed(int file_index, uint *sprite_id, const SpriteID *index_tbl);
 

	
 
void FindGraphicsSets();
 
bool SetGraphicsSet(const char *name);
 
char *GetGraphicsSetsList(char *p, const char *last);
 

	
 
int GetNumGraphicsSets();
 
int GetIndexOfCurrentGraphicsSet();
 
const char *GetGraphicsSetName(int index);
 
const char *GetGraphicsSetDescription(int index);
 
int GetGraphicsSetNumMissingFiles(int index);
 

	
 
extern char *_ini_graphics_set;
 

	
 
#endif /* GFXINIT_H */
src/lang/english.txt
Show inline comments
 
@@ -834,48 +834,50 @@ STR_CURR_SKK                            
 
STR_CURR_BRL                                                    :Brazilian Real (BRL)
 
STR_CURR_EEK                                                    :Estonian Krooni (EEK)
 

	
 
STR_CURR_CUSTOM                                                 :Custom...
 

	
 
STR_OPTIONS_LANG                                                :{BLACK}Language
 
STR_OPTIONS_LANG_CBO                                            :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
 
STR_OPTIONS_LANG_TIP                                            :{BLACK}Select the interface language to use
 

	
 
STR_OPTIONS_FULLSCREEN                                          :{BLACK}Fullscreen
 
STR_OPTIONS_FULLSCREEN_TIP                                      :{BLACK}Check this box to play OpenTTD fullscreen mode
 
STR_FULLSCREEN_FAILED                                           :{WHITE}Fullscreen mode failed
 

	
 
STR_OPTIONS_RES                                                 :{BLACK}Screen resolution
 
STR_OPTIONS_RES_CBO                                             :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
 
STR_OPTIONS_RES_TIP                                             :{BLACK}Select the screen resolution to use
 

	
 
STR_OPTIONS_SCREENSHOT_FORMAT                                   :{BLACK}Screenshot format
 
STR_OPTIONS_SCREENSHOT_FORMAT_CBO                               :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{STRING}
 
STR_OPTIONS_SCREENSHOT_FORMAT_TIP                               :{BLACK}Select the screenshot format to use
 

	
 
STR_OPTIONS_BASE_GRF                                            :{BLACK}Base graphics set
 
STR_OPTIONS_BASE_GRF_CBO                                        :{BLACK}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{SKIP}{RAW_STRING}
 
STR_OPTIONS_BASE_GRF_TIP                                        :{BLACK}Select the base graphics set to use
 
STR_OPTIONS_BASE_GRF_STATUS                                     :{RED}{10:NUM} missing/corrupted file{P "" s}
 
STR_OPTIONS_BASE_GRF_DESCRIPTION_TIP                            :{BLACK}Additional information about the base graphics set
 

	
 
STR_AUTOSAVE_FAILED                                             :{WHITE}Autosave failed
 

	
 
STR_MONTH_JAN                                                   :January
 
STR_MONTH_FEB                                                   :February
 
STR_MONTH_MAR                                                   :March
 
STR_MONTH_APR                                                   :April
 
STR_MONTH_MAY                                                   :May
 
STR_MONTH_JUN                                                   :June
 
STR_MONTH_JUL                                                   :July
 
STR_MONTH_AUG                                                   :August
 
STR_MONTH_SEP                                                   :September
 
STR_MONTH_OCT                                                   :October
 
STR_MONTH_NOV                                                   :November
 
STR_MONTH_DEC                                                   :December
 

	
 
STR_HEADING_FOR_STATION                                         :{LTBLUE}Heading for {STATION}
 
STR_HEADING_FOR_STATION_VEL                                     :{LTBLUE}Heading for {STATION}, {VELOCITY}
 
STR_NO_ORDERS                                                   :{LTBLUE}No orders
 
STR_NO_ORDERS_VEL                                               :{LTBLUE}No orders, {VELOCITY}
 

	
 
STR_PASSENGERS                                                  :passengers
 
STR_BAGS                                                        :bags
 
STR_TONS                                                        :tonnes
src/settings_gui.cpp
Show inline comments
 
@@ -99,48 +99,50 @@ static int GetCurRes()
 
enum GameOptionsWidgets {
 
	GOW_CLOSEBOX = 0,        ///< Close the window
 
	GOW_CAPTION,             ///< Caption of the window
 
	GOW_BACKGROUND,          ///< Background of the window
 
	GOW_CURRENCY_FRAME,      ///< Frame of the currency dropdown
 
	GOW_CURRENCY_DROPDOWN,   ///< Currency dropdown
 
	GOW_DISTANCE_FRAME,      ///< Measuring unit frame
 
	GOW_DISTANCE_DROPDOWN,   ///< Measuring unit dropdown
 
	GOW_ROADSIDE_FRAME,      ///< Road side frame
 
	GOW_ROADSIDE_DROPDOWN,   ///< Dropdown to select the road side (to set the right side ;))
 
	GOW_TOWNNAME_FRAME,      ///< Frame for the town name dropdown
 
	GOW_TOWNNAME_DROPDOWN,   ///< Town name dropdown
 
	GOW_AUTOSAVE_FRAME,      ///< Frame for autosave
 
	GOW_AUTOSAVE_DROPDOWN,   ///< Dropdown to say how often to autosave
 
	GOW_LANG_FRAME,          ///< Language dropdown frame
 
	GOW_LANG_DROPDOWN,       ///< Language dropdown
 
	GOW_RESOLUTION_FRAME,    ///< Frame for the dropdown for the resolution
 
	GOW_RESOLUTION_DROPDOWN, ///< Dropdown for the resolution
 
	GOW_FULLSCREEN_LABEL,    ///< Text (right) to the fullscreen button
 
	GOW_FULLSCREEN_BUTTON,   ///< Toggle fullscreen
 
	GOW_SCREENSHOT_FRAME,    ///< Frame for the screenshot type
 
	GOW_SCREENSHOT_DROPDOWN, ///< Select the screenshot type... please use PNG!
 
	GOW_BASE_GRF_FRAME,      ///< Base GRF selection frame
 
	GOW_BASE_GRF_DROPDOWN,   ///< Use to select a base GRF
 
	GOW_BASE_GRF_STATUS,     ///< Info about missing files etc.
 
	GOW_BASE_GRF_DESCRIPTION,///< Description of selected base GRF
 
};
 

	
 
/**
 
 * Update/redraw the townnames dropdown
 
 * @param w   the window the dropdown belongs to
 
 * @param sel the currently selected townname generator
 
 */
 
static void ShowTownnameDropdown(Window *w, int sel)
 
{
 
	typedef std::map<StringID, int, StringIDCompare> TownList;
 
	TownList townnames;
 

	
 
	/* Add and sort original townnames generators */
 
	for (int i = 0; i < _nb_orig_names; i++) townnames[STR_TOWNNAME_ORIGINAL_ENGLISH + i] = i;
 

	
 
	/* Add and sort newgrf townnames generators */
 
	for (int i = 0; i < _nb_grf_names; i++) townnames[_grf_names[i]] = _nb_orig_names + i;
 

	
 
	DropDownList *list = new DropDownList();
 
	for (TownList::iterator it = townnames.begin(); it != townnames.end(); it++) {
 
		list->push_back(new DropDownListStringItem((*it).first, (*it).second, !(_game_mode == GM_MENU || GetNumTowns() == 0 || (*it).second == sel)));
 
	}
 

	
 
	ShowDropDownList(w, list, sel, GOW_TOWNNAME_DROPDOWN);
 
@@ -170,50 +172,64 @@ struct GameOptionsWindow : Window {
 
		this->opt = (_game_mode == GM_MENU) ? &_settings_newgame : &_settings_game;
 
		this->reload = false;
 
		this->FindWindowPlacementAndResize(desc);
 
	}
 

	
 
	~GameOptionsWindow()
 
	{
 
		DeleteWindowById(WC_CUSTOM_CURRENCY, 0);
 
		if (this->reload) _switch_mode = SM_MENU;
 
	}
 

	
 
	virtual void OnPaint()
 
	{
 
		SetDParam(1, _currency_specs[this->opt->locale.currency].name);
 
		SetDParam(2, STR_UNITS_IMPERIAL + this->opt->locale.units);
 
		SetDParam(3, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_LEFT + this->opt->vehicle.road_side);
 
		SetDParam(4, TownName(this->opt->game_creation.town_name));
 
		SetDParam(5, _autosave_dropdown[_settings_client.gui.autosave]);
 
		SetDParam(6, SPECSTR_LANGUAGE_START + _dynlang.curr);
 
		int i = GetCurRes();
 
		SetDParam(7, i == _num_resolutions ? STR_RES_OTHER : SPECSTR_RESOLUTION_START + i);
 
		SetDParam(8, SPECSTR_SCREENSHOT_START + _cur_screenshot_format);
 
		this->SetWidgetLoweredState(GOW_FULLSCREEN_BUTTON, _fullscreen);
 
		SetDParamStr(9, GetGraphicsSetName(GetIndexOfCurrentGraphicsSet()));
 
		int missing_files = GetGraphicsSetNumMissingFiles(GetIndexOfCurrentGraphicsSet());
 
		SetDParam(10, missing_files);
 
		SetWidgetHiddenState(GOW_BASE_GRF_STATUS, missing_files == 0);
 

	
 
		this->DrawWidgets();
 

	
 
		SetDParam(0, STR_JUST_RAW_STRING);
 
		SetDParamStr(1, GetGraphicsSetDescription(GetIndexOfCurrentGraphicsSet()));
 
		const Widget *desc = &this->widget[GOW_BASE_GRF_DESCRIPTION];
 
		int y = DrawStringMultiLine(desc->left, desc->right, desc->top, UINT16_MAX, STR_BLACK_STRING);
 

	
 
		if (y != desc->bottom) {
 
			this->SetDirty();
 
			ResizeWindowForWidget(this, GOW_BASE_GRF_DESCRIPTION, 0, y - desc->bottom);
 
			this->SetDirty();
 
		}
 
	}
 

	
 
	virtual void OnClick(Point pt, int widget)
 
	{
 
		switch (widget) {
 
			case GOW_CURRENCY_DROPDOWN: // Setup currencies dropdown
 
				ShowDropDownMenu(this, BuildCurrencyDropdown(), this->opt->locale.currency, GOW_CURRENCY_DROPDOWN, _game_mode == GM_MENU ? 0 : ~GetMaskOfAllowedCurrencies(), 0);
 
				break;
 

	
 
			case GOW_DISTANCE_DROPDOWN: // Setup distance unit dropdown
 
				ShowDropDownMenu(this, _units_dropdown, this->opt->locale.units, GOW_DISTANCE_DROPDOWN, 0, 0);
 
				break;
 

	
 
			case GOW_ROADSIDE_DROPDOWN: { // Setup road-side dropdown
 
				int i = 0;
 
				extern bool RoadVehiclesAreBuilt();
 

	
 
				/* You can only change the drive side if you are in the menu or ingame with
 
				 * no vehicles present. In a networking game only the server can change it */
 
				if ((_game_mode != GM_MENU && RoadVehiclesAreBuilt()) || (_networking && !_network_server)) {
 
					i = (-1) ^ (1 << this->opt->vehicle.road_side); // disable the other value
 
				}
 

	
 
				ShowDropDownMenu(this, _driveside_dropdown, this->opt->vehicle.road_side, GOW_ROADSIDE_DROPDOWN, i, 0);
 
@@ -307,137 +323,144 @@ struct GameOptionsWindow : Window {
 
				UpdateAllWaypointSigns();
 
				MarkWholeScreenDirty();
 
				break;
 

	
 
			case GOW_RESOLUTION_DROPDOWN: // Change resolution
 
				if (index < _num_resolutions && ChangeResInGame(_resolutions[index].width, _resolutions[index].height)) {
 
					this->SetDirty();
 
				}
 
				break;
 

	
 
			case GOW_SCREENSHOT_DROPDOWN: // Change screenshot format
 
				SetScreenshotFormat(index);
 
				this->SetDirty();
 
				break;
 

	
 
			case GOW_BASE_GRF_DROPDOWN:
 
				if (_game_mode == GM_MENU) {
 
					const char *name = GetGraphicsSetName(index);
 

	
 
					free(_ini_graphics_set);
 
					_ini_graphics_set = strdup(name);
 

	
 
					SetGraphicsSet(name);
 
					this->reload = true;
 
					this->SetDirty();
 
				}
 
				break;
 
		}
 
	}
 
};
 

	
 
static const Widget _game_options_widgets[] = {
 
{   WWT_CLOSEBOX,   RESIZE_NONE,  COLOUR_GREY,     0,    10,     0,    13, STR_BLACK_CROSS,                           STR_TOOLTIP_CLOSE_WINDOW},                          // GOW_CLOSEBOX
 
{    WWT_CAPTION,   RESIZE_NONE,  COLOUR_GREY,    11,   369,     0,    13, STR_GAME_OPTIONS_CAPTION,                  STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS},                // GOW_CAPTION
 
{      WWT_PANEL,   RESIZE_NONE,  COLOUR_GREY,     0,   369,    14,   242, 0x0,                                       STR_NULL},                                          // GOW_BACKGROUND
 
{      WWT_PANEL,   RESIZE_NONE,  COLOUR_GREY,     0,   369,    14,   248, 0x0,                                       STR_NULL},                                          // GOW_BACKGROUND
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,    20,    55, STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME,     STR_NULL},                                          // GOW_CURRENCY_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,    34,    45, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN,  STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP},  // GOW_CURRENCY_DROPDOWN
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,    20,    55, STR_GAME_OPTIONS_MEASURING_UNITS_FRAME,    STR_NULL},                                          // GOW_DISTANCE_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,    34,    45, STR_GAME_OPTIONS_MEASURING_UNITS_DROPDOWN, STR_GAME_OPTIONS_MEASURING_UNITS_DROPDOWN_TOOLTIP}, // GOW_DISTANCE_DROPDOWN
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,    62,    97, STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME,      STR_NULL},                                          // GOW_ROADSIDE_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,    76,    87, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN,   STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP},   // GOW_ROADSIDE_DROPDOWN
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,    62,    97, STR_GAME_OPTIONS_TOWN_NAMES_FRAME,         STR_NULL},                                          // GOW_TOWNNAME_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,    76,    87, STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN,      STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP},      // GOW_TOWNNAME_DROPDOWN
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   104,   139, STR_GAME_OPTIONS_AUTOSAVE_FRAME,           STR_NULL},                                          // GOW_AUTOSAVE_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   118,   129, STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN,        STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP},        // GOW_AUTOSAVE_DROPDOWN
 

	
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,   104,   139, STR_OPTIONS_LANG,                          STR_NULL},                                          // GOW_LANG_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,   118,   129, STR_OPTIONS_LANG_CBO,                      STR_OPTIONS_LANG_TIP},                              // GOW_LANG_DROPDOWN
 

	
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   146,   190, STR_OPTIONS_RES,                           STR_NULL},                                          // GOW_RESOLUTION_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   160,   171, STR_OPTIONS_RES_CBO,                       STR_OPTIONS_RES_TIP},                               // GOW_RESOLUTION_DROPDOWN
 
{       WWT_TEXT,   RESIZE_NONE,  COLOUR_GREY,    20,   146,   175,   186, STR_OPTIONS_FULLSCREEN,                    STR_NULL},                                          // GOW_FULLSCREEN_LABEL
 
{    WWT_TEXTBTN,   RESIZE_NONE,  COLOUR_GREY,   149,   169,   176,   184, STR_EMPTY,                                 STR_OPTIONS_FULLSCREEN_TIP},                        // GOW_FULLSCREEN_BUTTON
 

	
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,   190,   359,   146,   190, STR_OPTIONS_SCREENSHOT_FORMAT,             STR_NULL},                                          // GOW_SCREENSHOT_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,   200,   349,   160,   171, STR_OPTIONS_SCREENSHOT_FORMAT_CBO,         STR_OPTIONS_SCREENSHOT_FORMAT_TIP},                 // GOW_SCREENSHOT_DROPDOWN
 

	
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   179,   197,   232, STR_OPTIONS_BASE_GRF,                      STR_NULL},                                          // GOW_BASE_GRF_FRAME
 
{      WWT_FRAME,   RESIZE_NONE,  COLOUR_GREY,    10,   359,   197,   238, STR_OPTIONS_BASE_GRF,                      STR_NULL},                                          // GOW_BASE_GRF_FRAME
 
{   WWT_DROPDOWN,   RESIZE_NONE,  COLOUR_GREY,    20,   169,   211,   222, STR_OPTIONS_BASE_GRF_CBO,                  STR_OPTIONS_BASE_GRF_TIP},                          // GOW_BASE_GRF_DROPDOWN
 
{       WWT_TEXT,   RESIZE_NONE,  COLOUR_GREY,   200,   349,   211,   222, STR_OPTIONS_BASE_GRF_STATUS,               STR_NULL},                                          // GOW_BASE_GRF_STATUS
 
{       WWT_TEXT,   RESIZE_NONE,  COLOUR_GREY,    20,   349,   229,   228, STR_EMPTY,                                 STR_OPTIONS_BASE_GRF_DESCRIPTION_TIP},              // GOW_BASE_GRF_DESCRIPTION
 

	
 
{   WIDGETS_END},
 
};
 

	
 
static const NWidgetPart _nested_game_options_widgets[] = {
 
	NWidget(NWID_HORIZONTAL),
 
		NWidget(WWT_CLOSEBOX, COLOUR_GREY, GOW_CLOSEBOX),
 
		NWidget(WWT_CAPTION, COLOUR_GREY, GOW_CAPTION), SetDataTip(STR_GAME_OPTIONS_CAPTION, STR_TOOLTIP_WINDOW_TITLE_DRAG_THIS),
 
	EndContainer(),
 
	NWidget(WWT_PANEL, COLOUR_GREY, GOW_BACKGROUND),
 
	NWidget(WWT_PANEL, COLOUR_GREY, GOW_BACKGROUND), SetPIP(6, 6, 10),
 
		NWidget(NWID_HORIZONTAL), SetPIP(10, 10, 10),
 
			NWidget(NWID_VERTICAL), SetPIP(6, 6, 10),
 
			NWidget(NWID_VERTICAL), SetPIP(0, 6, 0),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_CURRENCY_FRAME), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_FRAME, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_CURRENCY_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN, STR_GAME_OPTIONS_CURRENCY_UNITS_DROPDOWN_TOOLTIP), SetPadding(14, 10, 10, 10),
 
				EndContainer(),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_ROADSIDE_FRAME), SetDataTip(STR_GAME_OPTIONS_ROAD_VEHICLES_FRAME, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_ROADSIDE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN, STR_GAME_OPTIONS_ROAD_VEHICLES_DROPDOWN_TOOLTIP), SetPadding(14, 10, 10, 10),
 
				EndContainer(),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_AUTOSAVE_FRAME), SetDataTip(STR_GAME_OPTIONS_AUTOSAVE_FRAME, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_AUTOSAVE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN, STR_GAME_OPTIONS_AUTOSAVE_DROPDOWN_TOOLTIP), SetPadding(14, 10, 10, 10),
 
				EndContainer(),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_RESOLUTION_FRAME), SetDataTip(STR_OPTIONS_RES, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_RESOLUTION_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_OPTIONS_RES_CBO, STR_OPTIONS_RES_TIP), SetPadding(14, 10, 3, 10),
 
					NWidget(NWID_HORIZONTAL),
 
						NWidget(WWT_TEXT, COLOUR_GREY, GOW_FULLSCREEN_LABEL), SetMinimalSize(0, 12), SetFill(true, false), SetDataTip(STR_OPTIONS_FULLSCREEN, STR_NULL), SetPadding(0, 2, 4, 10),
 
						NWidget(WWT_TEXTBTN, COLOUR_GREY, GOW_FULLSCREEN_BUTTON), SetMinimalSize(21, 9), SetDataTip(STR_EMPTY, STR_OPTIONS_FULLSCREEN_TIP), SetPadding(0, 10, 4, 0),
 
					EndContainer(),
 
				EndContainer(),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_BASE_GRF_FRAME), SetDataTip(STR_OPTIONS_BASE_GRF, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_BASE_GRF_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_OPTIONS_BASE_GRF_CBO, STR_OPTIONS_BASE_GRF_TIP), SetPadding(14, 10, 10, 10),
 
				EndContainer(),
 
			EndContainer(),
 

	
 
			NWidget(NWID_VERTICAL), SetPIP(6, 6, 10),
 
			NWidget(NWID_VERTICAL), SetPIP(0, 6, 0),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_DISTANCE_FRAME), SetDataTip(STR_GAME_OPTIONS_MEASURING_UNITS_FRAME, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_DISTANCE_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_GAME_OPTIONS_MEASURING_UNITS_DROPDOWN, STR_GAME_OPTIONS_MEASURING_UNITS_DROPDOWN_TOOLTIP), SetPadding(14, 10, 10, 10),
 
				EndContainer(),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_TOWNNAME_FRAME), SetDataTip(STR_GAME_OPTIONS_TOWN_NAMES_FRAME, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_TOWNNAME_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN, STR_GAME_OPTIONS_TOWN_NAMES_DROPDOWN_TOOLTIP), SetPadding(14, 10, 10, 10),
 
				EndContainer(),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_LANG_FRAME), SetDataTip(STR_OPTIONS_LANG, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_LANG_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_OPTIONS_LANG_CBO, STR_OPTIONS_LANG_TIP), SetPadding(14, 10, 10, 10),
 
				EndContainer(),
 
				NWidget(WWT_FRAME, COLOUR_GREY, GOW_SCREENSHOT_FRAME), SetDataTip(STR_OPTIONS_SCREENSHOT_FORMAT, STR_NULL),
 
					NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_SCREENSHOT_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_OPTIONS_SCREENSHOT_FORMAT_CBO, STR_OPTIONS_SCREENSHOT_FORMAT_TIP), SetPadding(14, 10, 10, 10),
 
					NWidget(NWID_SPACER), SetMinimalSize(0, 9),
 
				EndContainer(),
 
				NWidget(NWID_SPACER), SetFill(false, true),
 
			EndContainer(),
 
		EndContainer(),
 

	
 
		NWidget(WWT_FRAME, COLOUR_GREY, GOW_BASE_GRF_FRAME), SetDataTip(STR_OPTIONS_BASE_GRF, STR_NULL),
 
			NWidget(NWID_HORIZONTAL), SetPIP(10, 30, 10),
 
				NWidget(WWT_DROPDOWN, COLOUR_GREY, GOW_BASE_GRF_DROPDOWN), SetMinimalSize(150, 12), SetDataTip(STR_OPTIONS_BASE_GRF_CBO, STR_OPTIONS_BASE_GRF_TIP), SetPadding(14, 0, 0, 0),
 
				NWidget(WWT_TEXT, COLOUR_GREY, GOW_BASE_GRF_STATUS), SetMinimalSize(150, 12), SetDataTip(STR_OPTIONS_BASE_GRF_STATUS, STR_NULL), SetPadding(14, 0, 0, 0),
 
			EndContainer(),
 
			NWidget(WWT_TEXT, COLOUR_GREY, GOW_BASE_GRF_DESCRIPTION), SetMinimalSize(330, 0), SetDataTip(STR_EMPTY, STR_OPTIONS_BASE_GRF_DESCRIPTION_TIP), SetPadding(6, 10, 10, 10),
 
		EndContainer(),
 
	EndContainer(),
 
};
 

	
 
static const WindowDesc _game_options_desc(
 
	WDP_CENTER, WDP_CENTER, 370, 243, 370, 243,
 
	WDP_CENTER, WDP_CENTER, 370, 249, 370, 249,
 
	WC_GAME_OPTIONS, WC_NONE,
 
	WDF_STD_TOOLTIPS | WDF_STD_BTN | WDF_DEF_WIDGET | WDF_UNCLICK_BUTTONS,
 
	_game_options_widgets, _nested_game_options_widgets, lengthof(_nested_game_options_widgets)
 
);
 

	
 

	
 
void ShowGameOptions()
 
{
 
	DeleteWindowById(WC_GAME_OPTIONS, 0);
 
	new GameOptionsWindow(&_game_options_desc);
 
}
 

	
 
extern void StartupEconomy();
 

	
 

	
 
/* Names of the game difficulty settings window */
 
enum GameDifficultyWidgets {
 
	GDW_CAPTION,
 
	GDW_UPPER_BG,
 
	GDW_LVL_EASY,
 
	GDW_LVL_MEDIUM,
 
	GDW_LVL_HARD,
 
	GDW_LVL_CUSTOM,
 
	GDW_HIGHSCORE,
0 comments (0 inline, 0 general)