Changeset - r10199:15f7084a7592
[Not reviewed]
master
0 2 0
frosch - 16 years ago 2008-09-28 15:42:15
frosch@openttd.org
(svn r14412) -Documentation: Comment some functions related to the advanced settings. Patch by Alberth, but with less excessive use of 'at'.
2 files changed with 46 insertions and 23 deletions:
0 comments (0 inline, 0 general)
src/settings.cpp
Show inline comments
 
@@ -1941,6 +1941,13 @@ bool SetPatchValue(uint index, const cha
 
	return true;
 
}
 

	
 
/**
 
 * Given a name of patch, return a setting description of it.
 
 * @param name  Name of the patch to return a setting description of
 
 * @param i     Pointer to an integer that will contain the index of the setting after the call, if it is successful.
 
 * @return Pointer to the setting description of patch \a name if it can be found,
 
 *         \c NULL indicates failure to obtain the description
 
 */
 
const SettingDesc *GetPatchFromName(const char *name, uint *i)
 
{
 
	const SettingDesc *sd;
 
@@ -2003,6 +2010,10 @@ void IConsoleSetPatchSetting(const char 
 
	SetPatchValue(index, value);
 
}
 

	
 
/**
 
 * Output value of a specific patch to the console
 
 * @param name  Name of the patch to output its value
 
 */
 
void IConsoleGetPatchSetting(const char *name)
 
{
 
	char value[20];
 
@@ -2031,6 +2042,11 @@ void IConsoleGetPatchSetting(const char 
 
	}
 
}
 

	
 
/**
 
 * List all patches and their value to the console
 
 *
 
 * @param prefilter  If not \c NULL, only list patches with names that begin with \a prefilter prefix
 
 */
 
void IConsoleListPatches(const char *prefilter)
 
{
 
	IConsolePrintF(CC_WARNING, "All patches with their current value:");
src/settings_gui.cpp
Show inline comments
 
@@ -708,20 +708,26 @@ static const char *_patches_vehicles[] =
 
	"vehicle.dynamic_engines",
 
};
 

	
 
/** Data structure describing a single patch in a tab */
 
struct PatchEntry {
 
	const SettingDesc *setting;
 
	uint index;
 
	const SettingDesc *setting; ///< Setting description of the patch
 
	uint index;                 ///< Index of the setting in the settings table
 
};
 

	
 
/**
 
 * Data structure describing one page of patches in the patch settings window.
 
 *
 
 * The names of the patches to display are statically defined, and from this
 
 * information, a dynamic array (with length \a num) of PatchEntry entries is
 
 * constructed.
 
 */
 
struct PatchPage {
 
	const char **names;
 
	PatchEntry *entries;
 
	byte num;
 
	const char **names;  ///< Static list of strings with patch names that are settable from the tab
 
	PatchEntry *entries; ///< Array of patch entries of the page. Initially \c NULL, filled in at run time
 
	byte num;            ///< Number of entries on the page (statically filled).
 
};
 

	
 
/* PatchPage holds the categories, the number of elements in each category
 
 * and (in NULL) a dynamic array of settings based on the string-representations
 
 * of the settings. This way there is no worry about indeces, and such */
 
/** Array of pages (tabs), where each page holds a number of advanced settings. */
 
static PatchPage _patches_page[] = {
 
	{_patches_ui,           NULL, lengthof(_patches_ui)},
 
	{_patches_construction, NULL, lengthof(_patches_construction)},
 
@@ -731,19 +737,20 @@ static PatchPage _patches_page[] = {
 
	{_patches_ai,           NULL, lengthof(_patches_ai)},
 
};
 

	
 
/** Widget numbers of config patches window */
 
enum PatchesSelectionWidgets {
 
	PATCHSEL_OPTIONSPANEL = 3,
 
	PATCHSEL_INTERFACE,
 
	PATCHSEL_CONSTRUCTION,
 
	PATCHSEL_VEHICLES,
 
	PATCHSEL_STATIONS,
 
	PATCHSEL_ECONOMY,
 
	PATCHSEL_COMPETITORS
 
	PATCHSEL_OPTIONSPANEL = 3, ///< Panel widget containing the option lists
 
	PATCHSEL_INTERFACE,        ///< Button 'Interface'
 
	PATCHSEL_CONSTRUCTION,     ///< Button 'Construction'
 
	PATCHSEL_VEHICLES,         ///< Button 'Vehicles'
 
	PATCHSEL_STATIONS,         ///< Button 'Stations'
 
	PATCHSEL_ECONOMY,          ///< Button 'Economy'
 
	PATCHSEL_COMPETITORS       ///< Button 'Competitors'
 
};
 

	
 
struct PatchesSelectionWindow : Window {
 
	static GameSettings *patches_ptr;
 
	static int patches_max;
 
	static int patches_max;  ///< Maximal number of patches on a single page
 

	
 
	int page;
 
	int entry;
 
@@ -855,15 +862,15 @@ struct PatchesSelectionWindow : Window {
 
				int x, y;
 
				byte btn;
 

	
 
				y = pt.y - 46 - 1;
 
				if (y < 0) return;
 
				y = pt.y - 46 - 1;  // Shift y coordinate
 
				if (y < 0) return;  // Clicked above first entry
 

	
 
				x = pt.x - 5;
 
				if (x < 0) return;
 
				x = pt.x - 5;  // Shift x coordinate
 
				if (x < 0) return;  // Clicked left of the entry
 

	
 
				btn = y / 11;
 
				if (y % 11 > 9) return;
 
				if (btn >= page->num) return;
 
				btn = y / 11;  // Compute which setting is selected
 
				if (y % 11 > 9) return;  // Clicked too low at the setting
 
				if (btn >= page->num) return;  // Clicked below the last setting of the page
 

	
 
				sd = page->entries[btn].setting;
 

	
0 comments (0 inline, 0 general)