Changeset - r7428:7a14b23c98c3
[Not reviewed]
master
0 2 0
rubidium - 17 years ago 2007-08-09 05:25:33
rubidium@openttd.org
(svn r10833) -Fix [FS#1115]: assertion (different cost between test and execution) of overbuilding road tunnels with tram tracks (and vice versa) when the dragged area contains both ends of the tunnel.
2 files changed with 21 insertions and 7 deletions:
0 comments (0 inline, 0 general)
src/road_cmd.cpp
Show inline comments
 
@@ -588,6 +588,7 @@ CommandCost CmdBuildLongRoad(TileIndex e
 
	TileIndex start_tile, tile;
 
	CommandCost cost, ret;
 
	bool had_bridge = false;
 
	bool had_tunnel = false;
 
	bool had_success = false;
 
	DisallowedRoadDirections drd = DRD_NORTHBOUND;
 

	
 
@@ -633,12 +634,19 @@ CommandCost CmdBuildLongRoad(TileIndex e
 
			_error_message = INVALID_STRING_ID;
 
		} else {
 
			had_success = true;
 
			/* Only pay for the upgrade on one side of the bridge */
 
			if (IsBridgeTile(tile)) {
 
				if ((!had_bridge || GetBridgeRampDirection(tile) == DIAGDIR_SE || GetBridgeRampDirection(tile) == DIAGDIR_SW)) {
 
					cost.AddCost(ret);
 
			/* Only pay for the upgrade on one side of the bridges and tunnels */
 
			if (IsTileType(tile, MP_TUNNELBRIDGE)) {
 
				if (IsBridge(tile)) {
 
					if ((!had_bridge || GetBridgeRampDirection(tile) == DIAGDIR_SE || GetBridgeRampDirection(tile) == DIAGDIR_SW)) {
 
						cost.AddCost(ret);
 
					}
 
					had_bridge = true;
 
				} else {
 
					if ((!had_tunnel || GetTunnelDirection(tile) == DIAGDIR_SE || GetTunnelDirection(tile) == DIAGDIR_SW)) {
 
						cost.AddCost(ret);
 
					}
 
					had_tunnel = true;
 
				}
 
				had_bridge = true;
 
			} else {
 
				cost.AddCost(ret);
 
			}
src/video/win32_v.cpp
Show inline comments
 
@@ -219,8 +219,9 @@ static void MakeWindow(bool full_screen)
 

	
 
	// recreate window?
 
	if ((full_screen || _wnd.fullscreen) && _wnd.main_wnd) {
 
		DestroyWindow(_wnd.main_wnd);
 
		HWND wnd = _wnd.main_wnd;
 
		_wnd.main_wnd = 0;
 
		DestroyWindow(wnd);
 
	}
 

	
 
#if defined(WINCE)
 
@@ -519,6 +520,9 @@ static LRESULT CALLBACK WndProcGdi(HWND 
 
			break;
 

	
 
		case WM_SIZE:
 
			/* Resizing a destroy window is NOT good */
 
			if (_wnd.main_wnd == 0) return;
 

	
 
			if (wParam != SIZE_MINIMIZED) {
 
				/* Set maximized flag when we maximize (obviously), but also when we
 
				 * switched to fullscreen from a maximized state */
 
@@ -792,7 +796,9 @@ void VideoDriver_Win32::Stop()
 
{
 
	DeleteObject(_wnd.gdi_palette);
 
	DeleteObject(_wnd.dib_sect);
 
	DestroyWindow(_wnd.main_wnd);
 
	HWND wnd = _wnd.main_wnd;
 
	_wnd.main_wnd = 0;
 
	DestroyWindow(wnd);
 

	
 
#if !defined(WINCE)
 
	if (_wnd.fullscreen) ChangeDisplaySettings(NULL, 0);
0 comments (0 inline, 0 general)