Changeset - r16300:dae54be93b98
[Not reviewed]
master
0 3 0
alberth - 14 years ago 2010-10-23 18:28:20
alberth@openttd.org
(svn r21018) -Doc: Add Doxygen comments to some function.
3 files changed with 24 insertions and 5 deletions:
0 comments (0 inline, 0 general)
src/main_gui.cpp
Show inline comments
 
@@ -107,50 +107,55 @@ bool HandlePlacePushButton(Window *w, in
 
	}
 

	
 
	SetObjectToPlace(cursor, PAL_NONE, mode, w->window_class, w->window_number);
 
	w->LowerWidget(widget);
 
	_place_proc = placeproc;
 
	return true;
 
}
 

	
 

	
 
void CcPlaySound10(const CommandCost &result, TileIndex tile, uint32 p1, uint32 p2)
 
{
 
	if (result.Succeeded()) SndPlayTileFx(SND_12_EXPLOSION, tile);
 
}
 

	
 
#ifdef ENABLE_NETWORK
 
void ShowNetworkGiveMoneyWindow(CompanyID company)
 
{
 
	_rename_id = company;
 
	_rename_what = 3;
 
	ShowQueryString(STR_EMPTY, STR_NETWORK_GIVE_MONEY_CAPTION, 30, 180, NULL, CS_NUMERAL, QSF_NONE);
 
}
 
#endif /* ENABLE_NETWORK */
 

	
 

	
 
/* Zooms a viewport in a window in or out
 
 * No button handling or what so ever */
 
/**
 
 * Zooms a viewport in a window in or out.
 
 * @param how Zooming direction.
 
 * @param w   Window owning the viewport.
 
 * @return Returns \c true if zooming step could be done, \c false if further zooming is not possible.
 
 * @note No button handling or what so ever is done.
 
 */
 
bool DoZoomInOutWindow(ZoomStateChange how, Window *w)
 
{
 
	ViewPort *vp;
 

	
 
	assert(w != NULL);
 
	vp = w->viewport;
 

	
 
	switch (how) {
 
		case ZOOM_NONE:
 
			/* On initialisation of the viewport we don't do anything. */
 
			break;
 

	
 
		case ZOOM_IN:
 
			if (vp->zoom == ZOOM_LVL_MIN) return false;
 
			vp->zoom = (ZoomLevel)((int)vp->zoom - 1);
 
			vp->virtual_width >>= 1;
 
			vp->virtual_height >>= 1;
 

	
 
			w->viewport->scrollpos_x += vp->virtual_width >> 1;
 
			w->viewport->scrollpos_y += vp->virtual_height >> 1;
 
			w->viewport->dest_scrollpos_x = w->viewport->scrollpos_x;
 
			w->viewport->dest_scrollpos_y = w->viewport->scrollpos_y;
 
			w->viewport->follow_vehicle = INVALID_VEHICLE;
 
			break;
src/viewport.cpp
Show inline comments
 
@@ -1865,53 +1865,63 @@ bool HandleViewportClicked(const ViewPor
 
 * @param w       %Window containing the viewport.
 
 * @param instant Jump to the location instead of slowly moving to it.
 
 * @return Destination of the viewport was changed (to activate other actions when the viewport is already at the desired position).
 
 */
 
bool ScrollWindowTo(int x, int y, int z, Window *w, bool instant)
 
{
 
	/* The slope cannot be acquired outside of the map, so make sure we are always within the map. */
 
	if (z == -1) z = GetSlopeZ(Clamp(x, 0, MapSizeX() * TILE_SIZE - 1), Clamp(y, 0, MapSizeY() * TILE_SIZE - 1));
 

	
 
	Point pt = MapXYZToViewport(w->viewport, x, y, z);
 
	w->viewport->follow_vehicle = INVALID_VEHICLE;
 

	
 
	if (w->viewport->dest_scrollpos_x == pt.x && w->viewport->dest_scrollpos_y == pt.y) return false;
 

	
 
	if (instant) {
 
		w->viewport->scrollpos_x = pt.x;
 
		w->viewport->scrollpos_y = pt.y;
 
	}
 

	
 
	w->viewport->dest_scrollpos_x = pt.x;
 
	w->viewport->dest_scrollpos_y = pt.y;
 
	return true;
 
}
 

	
 
/**
 
 * Scrolls the viewport of the main window to a given location.
 
 * @param tile    Desired tile to center on.
 
 * @param instant Jump to the location instead of slowly moving to it.
 
 * @return Destination of the viewport was changed (to activate other actions when the viewport is already at the desired position).
 
 */
 
bool ScrollMainWindowToTile(TileIndex tile, bool instant)
 
{
 
	return ScrollMainWindowTo(TileX(tile) * TILE_SIZE + TILE_SIZE / 2, TileY(tile) * TILE_SIZE + TILE_SIZE / 2, -1, instant);
 
}
 

	
 
/**
 
 * Set a tile to display a red error square.
 
 * @param tile Tile that should show the red error square.
 
 */
 
void SetRedErrorSquare(TileIndex tile)
 
{
 
	TileIndex old;
 

	
 
	old = _thd.redsq;
 
	_thd.redsq = tile;
 

	
 
	if (tile != old) {
 
		if (tile != INVALID_TILE) MarkTileDirtyByTile(tile);
 
		if (old  != INVALID_TILE) MarkTileDirtyByTile(old);
 
	}
 
}
 

	
 
/**
 
 * Highlight \a w by \a h tiles at the cursor.
 
 * @param w Width of the highlighted tiles rectangle.
 
 * @param h Height of the highlighted tiles rectangle.
 
 */
 
void SetTileSelectSize(int w, int h)
 
{
 
	_thd.new_size.x = w * TILE_SIZE;
 
	_thd.new_size.y = h * TILE_SIZE;
 
	_thd.new_outersize.x = 0;
 
	_thd.new_outersize.y = 0;
src/viewport_type.h
Show inline comments
 
@@ -30,52 +30,56 @@ struct ViewPort {
 
	int virtual_height;  ///< height << zoom
 

	
 
	ZoomLevel zoom;
 
};
 

	
 
/** Margings for the viewport sign */
 
enum ViewportSignMargin {
 
	VPSM_LEFT   = 1, ///< Left margin
 
	VPSM_RIGHT  = 1, ///< Right margin
 
	VPSM_TOP    = 1, ///< Top margin
 
	VPSM_BOTTOM = 1, ///< Bottom margin
 
};
 

	
 
/** Location information about a sign as seen on the viewport */
 
struct ViewportSign {
 
	int32 center;        ///< The center position of the sign
 
	int32 top;           ///< The top of the sign
 
	uint16 width_normal; ///< The width when not zoomed out (normal font)
 
	uint16 width_small;  ///< The width when zoomed out (small font)
 

	
 
	void UpdatePosition(int center, int top, StringID str);
 
	void MarkDirty() const;
 
};
 

	
 
/**
 
 * Directions of zooming.
 
 * @see DoZoomInOutWindow
 
 */
 
enum ZoomStateChange {
 
	ZOOM_IN   = 0,
 
	ZOOM_OUT  = 1,
 
	ZOOM_NONE = 2, // hack, used to update the button status
 
	ZOOM_IN   = 0, ///< Zoom in (get more detailed view).
 
	ZOOM_OUT  = 1, ///< Zoom out (get helicopter view).
 
	ZOOM_NONE = 2, ///< Hack, used to update the button status.
 
};
 

	
 
/**
 
 * Some values for constructing bounding boxes (BB). The Z positions under bridges are:
 
 * z=0..5  Everything that can be built under low bridges.
 
 * z=6     reserved, currently unused.
 
 * z=7     Z separator between bridge/tunnel and the things under/above it.
 
 */
 
static const uint BB_HEIGHT_UNDER_BRIDGE = 6; ///< Everything that can be built under low bridges, must not exceed this Z height.
 
static const uint BB_Z_SEPARATOR         = 7; ///< Separates the bridge/tunnel from the things under/above it.
 

	
 
/** Viewport place method (type of highlighted area and placed objects) */
 
enum ViewportPlaceMethod {
 
	VPM_X_OR_Y          =    0, ///< drag in X or Y direction
 
	VPM_FIX_X           =    1, ///< drag only in X axis
 
	VPM_FIX_Y           =    2, ///< drag only in Y axis
 
	VPM_X_AND_Y         =    3, ///< area of land in X and Y directions
 
	VPM_X_AND_Y_LIMITED =    4, ///< area of land of limited size
 
	VPM_FIX_HORIZONTAL  =    5, ///< drag only in horizontal direction
 
	VPM_FIX_VERTICAL    =    6, ///< drag only in vertical direction
 
	VPM_X_LIMITED       =    7, ///< Drag only in X axis with limited size
 
	VPM_Y_LIMITED       =    8, ///< Drag only in Y axis with limited size
 
	VPM_RAILDIRS        = 0x40, ///< all rail directions
 
	VPM_SIGNALDIRS      = 0x80, ///< similiar to VMP_RAILDIRS, but with different cursor
0 comments (0 inline, 0 general)