(svn r13182) -Doc: add documentation to mostly rail_gui related functions. Patch by Alberth.
authorrubidium
Mon, 19 May 2008 09:24:03 +0000
changeset 10638 1234ac29df11
parent 10637 1ea14a417a37
child 10639 0091368fe9fc
(svn r13182) -Doc: add documentation to mostly rail_gui related functions. Patch by Alberth.
src/misc_gui.cpp
src/osk_gui.cpp
src/rail_gui.cpp
src/viewport.cpp
--- a/src/misc_gui.cpp	Mon May 19 09:18:51 2008 +0000
+++ b/src/misc_gui.cpp	Mon May 19 09:24:03 2008 +0000
@@ -1081,10 +1081,10 @@
  * @param str StringID for the text shown in the textbox
  * @param caption StringID of text shown in caption of querywindow
  * @param maxlen maximum length in characters allowed. If bit 12 is set we
- * will not check the resulting string against to original string to return success
+ *               will not check the resulting string against to original string to return success
  * @param maxwidth maximum width in pixels allowed
  * @param parent pointer to a Window that will handle the events (ok/cancel) of this
- * window. If NULL, results are handled by global function HandleOnEditText
+ *        window. If NULL, results are handled by global function HandleOnEditText
  * @param afilter filters out unwanted character input */
 void ShowQueryString(StringID str, StringID caption, uint maxlen, uint maxwidth, Window *parent, CharSetFilter afilter)
 {
--- a/src/osk_gui.cpp	Mon May 19 09:18:51 2008 +0000
+++ b/src/osk_gui.cpp	Mon May 19 09:24:03 2008 +0000
@@ -346,7 +346,7 @@
 }
 
 /**
- * Show the osk associated with a given textbox
+ * Show the on-screen keyboard (osk) associated with a given textbox
  * @param parent pointer to the Window where this keyboard originated from
  * @param q      querystr_d pointer to the query string of the parent, which is
  *               shared for both windows
--- a/src/rail_gui.cpp	Mon May 19 09:18:51 2008 +0000
+++ b/src/rail_gui.cpp	Mon May 19 09:24:03 2008 +0000
@@ -42,25 +42,25 @@
 #include "table/sprites.h"
 #include "table/strings.h"
 
-static RailType _cur_railtype;
-static bool _remove_button_clicked;
-static DiagDirection _build_depot_direction;
-static byte _waypoint_count = 1;
-static byte _cur_waypoint_type;
-static bool _convert_signal_button;       ///< convert signal button in the signal GUI pressed
-static SignalVariant _cur_signal_variant; ///< set the signal variant (for signal GUI)
-static SignalType _cur_signal_type;       ///< set the signal type (for signal GUI)
+static RailType _cur_railtype;               ///< Rail type of the current build-rail toolbar.
+static bool _remove_button_clicked;          ///< Flag whether 'remove' toggle-button is currently enabled
+static DiagDirection _build_depot_direction; ///< Currently selected depot direction
+static byte _waypoint_count = 1;             ///< Number of waypoint types
+static byte _cur_waypoint_type;              ///< Currently selected waypoint type
+static bool _convert_signal_button;          ///< convert signal button in the signal GUI pressed
+static SignalVariant _cur_signal_variant;    ///< set the signal variant (for signal GUI)
+static SignalType _cur_signal_type;          ///< set the signal type (for signal GUI)
 
 static struct {
-	byte orientation;
-	byte numtracks;
-	byte platlength;
-	bool dragdrop;
+	byte orientation;                 ///< Currently selected rail station orientation
+	byte numtracks;                   ///< Currently selected number of tracks in station (if not \c dragdrop )
+	byte platlength;                  ///< Currently selected platform length of station (if not \c dragdrop )
+	bool dragdrop;                    ///< Use drag & drop to place a station
 
-	bool newstations;
-	StationClassIDByte station_class;
-	byte station_type;
-	byte station_count;
+	bool newstations;                 ///< Are custom station definitions available?
+	StationClassIDByte station_class; ///< Currently selected custom station class (if newstations is \c true )
+	byte station_type;                ///< Station type within the currently selected custom station class (if newstations is \c true )
+	byte station_count;               ///< Number of custom stations (if newstations is \c true )
 } _railstation;
 
 
@@ -111,6 +111,12 @@
 	VpStartPlaceSizing(tile, VPM_RAILDIRS, DDSP_PLACE_AUTORAIL);
 }
 
+/**
+ * Try to add an additional rail-track at the entrance of a depot
+ * @param tile  Tile to use for adding the rail-track
+ * @param extra Track to add
+ * @see CcRailDepot()
+ */
 static void PlaceExtraDepotRail(TileIndex tile, uint16 extra)
 {
 	if (GetRailTileType(tile) != RAIL_TILE_NORMAL) return;
@@ -119,10 +125,11 @@
 	DoCommandP(tile, _cur_railtype, extra & 0xFF, NULL, CMD_BUILD_SINGLE_RAIL | CMD_NO_WATER);
 }
 
+/** Additional pieces of track to add at the entrance of a depot. */
 static const uint16 _place_depot_extra[12] = {
-	0x0604, 0x2102, 0x1202, 0x0505,
-	0x2400, 0x2801, 0x1800, 0x1401,
-	0x2203, 0x0904, 0x0A05, 0x1103,
+	0x0604, 0x2102, 0x1202, 0x0505,  // First additional track for directions 0..3
+	0x2400, 0x2801, 0x1800, 0x1401,  // Second additional track
+	0x2203, 0x0904, 0x0A05, 0x1103,  // Third additional track
 };
 
 
@@ -235,6 +242,7 @@
 	VpStartPlaceSizing(tile, VPM_X_OR_Y, DDSP_BUILD_BRIDGE);
 }
 
+/** Command callback for building a tunnel */
 void CcBuildRailTunnel(bool success, TileIndex tile, uint32 p1, uint32 p2)
 {
 	if (success) {
@@ -285,7 +293,7 @@
 };
 
 
-/** Toogles state of the Remove button of Build rail toolbar
+/** Toggles state of the Remove button of Build rail toolbar
  * @param w window the button belongs to
  */
 static void ToggleRailButton_Remove(Window *w)
@@ -316,36 +324,71 @@
 }
 
 
+/**
+ * The "rail N"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_N(Window *w)
 {
 	HandlePlacePushButton(w, RTW_BUILD_NS, GetRailTypeInfo(_cur_railtype)->cursor.rail_ns, VHM_RECT, PlaceRail_N);
 }
 
+/**
+ * The "rail NE"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_NE(Window *w)
 {
 	HandlePlacePushButton(w, RTW_BUILD_X, GetRailTypeInfo(_cur_railtype)->cursor.rail_swne, VHM_RECT, PlaceRail_NE);
 }
 
+/**
+ * The "rail E"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_E(Window *w)
 {
 	HandlePlacePushButton(w, RTW_BUILD_EW, GetRailTypeInfo(_cur_railtype)->cursor.rail_ew, VHM_RECT, PlaceRail_E);
 }
 
+/**
+ * The "rail NW"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_NW(Window *w)
 {
 	HandlePlacePushButton(w, RTW_BUILD_Y, GetRailTypeInfo(_cur_railtype)->cursor.rail_nwse, VHM_RECT, PlaceRail_NW);
 }
 
+/**
+ * The "auto-rail"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_AutoRail(Window *w)
 {
 	HandlePlacePushButton(w, RTW_AUTORAIL, GetRailTypeInfo(_cur_railtype)->cursor.autorail, VHM_RAIL, PlaceRail_AutoRail);
 }
 
+/**
+ * The "demolish"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Demolish(Window *w)
 {
 	HandlePlacePushButton(w, RTW_DEMOLISH, ANIMCURSOR_DEMOLISH, VHM_RECT, PlaceProc_DemolishArea);
 }
 
+/**
+ * The "build depot"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Depot(Window *w)
 {
 	if (HandlePlacePushButton(w, RTW_BUILD_DEPOT, GetRailTypeInfo(_cur_railtype)->cursor.depot, VHM_RECT, PlaceRail_Depot)) {
@@ -353,6 +396,12 @@
 	}
 }
 
+/**
+ * The "build waypoint"-button click proc of the build-rail toolbar.
+ * If there are newGRF waypoints, also open a window to pick the waypoint type.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Waypoint(Window *w)
 {
 	_waypoint_count = GetNumCustomStations(STAT_CLASS_WAYP);
@@ -362,12 +411,22 @@
 	}
 }
 
+/**
+ * The "build station"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Station(Window *w)
 {
 	if (HandlePlacePushButton(w, RTW_BUILD_STATION, SPR_CURSOR_RAIL_STATION, VHM_RECT, PlaceRail_Station)) ShowStationBuilder();
 }
 
-/** The "build signal"-button proc from BuildRailToolbWndProc() (start ShowSignalBuilder() and/or HandleAutoSignalPlacement()) */
+/**
+ * The "build signal"-button click proc of the build-rail toolbar.
+ * Start ShowSignalBuilder() and/or HandleAutoSignalPlacement().
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_AutoSignals(Window *w)
 {
 	if (_patches.enable_signal_gui != _ctrl_pressed) {
@@ -377,16 +436,31 @@
 	}
 }
 
+/**
+ * The "build bridge"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Bridge(Window *w)
 {
 	HandlePlacePushButton(w, RTW_BUILD_BRIDGE, SPR_CURSOR_BRIDGE, VHM_RECT, PlaceRail_Bridge);
 }
 
+/**
+ * The "build tunnel"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Tunnel(Window *w)
 {
 	HandlePlacePushButton(w, RTW_BUILD_TUNNEL, GetRailTypeInfo(_cur_railtype)->cursor.tunnel, VHM_SPECIAL, PlaceRail_Tunnel);
 }
 
+/**
+ * The "remove"-button click proc of the build-rail toolbar.
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Remove(Window *w)
 {
 	if (w->IsWidgetDisabled(RTW_REMOVE)) return;
@@ -416,6 +490,12 @@
 	}
 }
 
+/**
+ * The "convert-rail"-button click proc of the build-rail toolbar.
+ * Switches to 'convert-rail' mode
+ * @param w Build-rail toolbar window
+ * @see BuildRailToolbWndProc()
+ */
 static void BuildRailClick_Convert(Window *w)
 {
 	HandlePlacePushButton(w, RTW_CONVERT_RAIL, GetRailTypeInfo(_cur_railtype)->cursor.convert, VHM_RECT, PlaceRail_ConvertRail);
@@ -526,6 +606,11 @@
 };
 
 
+/**
+ * Based on the widget clicked, update the status of the 'remove' button.
+ * @param w              Rail toolbar window
+ * @param clicked_widget Widget clicked in the toolbar
+ */
 struct BuildRailToolbarWindow : Window {
 	BuildRailToolbarWindow(const WindowDesc *desc, WindowNumber window_number) : Window(desc, window_number)
 	{
@@ -740,6 +825,17 @@
 	w->widget[RTW_BUILD_TUNNEL].data = rti->gui_sprites.build_tunnel;
 }
 
+/**
+ * Open the build rail toolbar window for a specific rail type.
+ * The window may be opened in the 'normal' way by clicking at the rail icon in
+ * the main toolbar, or by means of selecting one of the functions of the
+ * toolbar. In the latter case, the corresponding widget is also selected.
+ *
+ * If the terraform toolbar is linked to the toolbar, that window is also opened.
+ *
+ * @param railtype Rail type to open the window for
+ * @param button   Widget clicked (\c -1 means no button clicked)
+ */
 void ShowBuildRailToolbar(RailType railtype, int button)
 {
 	BuildRailToolbarWindow *w;
@@ -824,11 +920,16 @@
 		BRSW_NEWST_SCROLL
 	};
 
-	/* Check if the currently selected station size is allowed */
+	/**
+	 * Verify whether the currently selected station size is allowed after selecting a new station class/type.
+	 * If not, change the station size variables ( _railstation.numtracks and _railstation.platlength ).
+	 * @param statspec Specification of the new station class/type
+	 */
 	void CheckSelectedSize(const StationSpec *statspec)
 	{
 		if (statspec == NULL || _railstation.dragdrop) return;
 
+		/* If current number of tracks is not allowed, make it as big as possible (which is always less than currently selected) */
 		if (HasBit(statspec->disallowed_platforms, _railstation.numtracks - 1)) {
 			this->RaiseWidget(_railstation.numtracks + BRSW_PLATFORM_NUM_BEGIN);
 			_railstation.numtracks = 1;
@@ -848,6 +949,7 @@
 		}
 	}
 
+	/** Build a dropdown list of available station classes */
 	static DropDownList *BuildStationClassDropDown()
 	{
 		DropDownList *list = new DropDownList();
@@ -859,6 +961,11 @@
 
 		return list;
 	}
+/**
+ * Window event handler of station build window.
+ * @param w Staion build window
+ * @param e Window event to handle
+ */
 
 public:
 	BuildRailStationWindow(const WindowDesc *desc, bool newstation) : PickerWindowBase(desc)
@@ -1210,6 +1317,7 @@
 {   WIDGETS_END},
 };
 
+/** High level window description of the default station-build window */
 static const WindowDesc _station_builder_desc = {
 	WDP_AUTO, WDP_AUTO, 148, 200, 148, 200,
 	WC_BUILD_STATION, WC_BUILD_TOOLBAR,
@@ -1218,6 +1326,7 @@
 	NULL
 };
 
+/** High level window description of the newGRF station-build window */
 static const WindowDesc _newstation_builder_desc = {
 	WDP_AUTO, WDP_AUTO, 148, 290, 148, 290,
 	WC_BUILD_STATION, WC_BUILD_TOOLBAR,
@@ -1226,6 +1335,7 @@
 	NULL
 };
 
+/** Open station build window */
 static void ShowStationBuilder()
 {
 	if (GetNumStationClasses() <= 2 && GetNumCustomStations(STAT_CLASS_DFLT) == 1) {
@@ -1561,7 +1671,9 @@
 	new BuildRailWaypointWindow(&_build_waypoint_desc);
 }
 
-
+/**
+ * Initialize rail building GUI settings
+ */
 void InitializeRailGui()
 {
 	_build_depot_direction = DIAGDIR_NW;
@@ -1570,6 +1682,10 @@
 	_railstation.dragdrop = true;
 }
 
+/**
+ * Re-initialize rail-build toolbar after toggling support for electric trains
+ * @param disable Boolean whether electric trains are disabled (removed from the game)
+ */
 void ReinitGuiAfterToggleElrail(bool disable)
 {
 	extern RailType _last_built_railtype;
@@ -1585,6 +1701,7 @@
 	MarkWholeScreenDirty();
 }
 
+/** Set the initial (default) railtype to use */
 static void SetDefaultRailGui()
 {
 	if (_local_player == PLAYER_SPECTATOR || !IsValidPlayer(_local_player)) return;
--- a/src/viewport.cpp	Mon May 19 09:18:51 2008 +0000
+++ b/src/viewport.cpp	Mon May 19 09:24:03 2008 +0000
@@ -2661,7 +2661,10 @@
 	_thd.selend.y = y;
 }
 
-/** while dragging */
+/**
+ * Handle the mouse while dragging for placement/resizing.
+ * @return Boolean whether search for a handler should continue
+ */
 bool VpHandlePlaceSizingDrag()
 {
 	if (_special_mouse_mode != WSM_SIZING) return true;