(svn r12868) [0.6] -Backport from trunk r12795, r12776, r12683, r12681, r12678: 0.6
authorrubidium
Thu, 24 Apr 2008 12:32:37 +0000
branch0.6
changeset 10327 2274772a4424
parent 10326 2820eb37d828
child 10328 721fe18a2176
(svn r12868) [0.6] -Backport from trunk r12795, r12776, r12683, r12681, r12678:
- Fix: Vehicles could break down during loading and keep loading. The intention of the break down code is not to break down when having zero speed, therefor break downs now do not happen when loading [FS#1938] (r12795)
- Fix: [OSX] In some rare cases when using an uncalibrated monitor the system colour space could not be retrieved. Show an error when this happens instead of just trying an assertion (r12776)
- Fix: In some cases a news messages would not be shown [FS#1906] (r12683)
- Fix: When a road vehicle has a tram only stop multiple times in a row in it's orders, only the first one would be skipped [FS#1918] (r12678)
src/aircraft_cmd.cpp
src/news_gui.cpp
src/roadveh_cmd.cpp
src/ship_cmd.cpp
src/train_cmd.cpp
src/video/cocoa/wnd_quartz.mm
--- a/src/aircraft_cmd.cpp	Thu Apr 24 12:15:24 2008 +0000
+++ b/src/aircraft_cmd.cpp	Thu Apr 24 12:32:37 2008 +0000
@@ -2150,7 +2150,7 @@
 		if (v->breakdown_ctr <= 2) {
 			HandleBrokenAircraft(v);
 		} else {
-			v->breakdown_ctr--;
+			if (!v->current_order.type == OT_LOADING) v->breakdown_ctr--;
 		}
 	}
 
--- a/src/news_gui.cpp	Thu Apr 24 12:15:24 2008 +0000
+++ b/src/news_gui.cpp	Thu Apr 24 12:32:37 2008 +0000
@@ -1022,6 +1022,7 @@
 			if (_total_news == 0) {
 				assert(_latest_news == _oldest_news);
 				_latest_news = INVALID_NEWS;
+				_current_news = INVALID_NEWS;
 			}
 
 			/* Since we only imitate a FIFO removing an arbitrary element does need
--- a/src/roadveh_cmd.cpp	Thu Apr 24 12:15:24 2008 +0000
+++ b/src/roadveh_cmd.cpp	Thu Apr 24 12:32:37 2008 +0000
@@ -790,7 +790,8 @@
 
 	if (order->type  == v->current_order.type &&
 			order->flags == v->current_order.flags &&
-			order->dest  == v->current_order.dest) {
+			order->dest  == v->current_order.dest &&
+			v->dest_tile != 0) {
 		return;
 	}
 
@@ -1940,7 +1941,7 @@
 			HandleBrokenRoadVeh(v);
 			return;
 		}
-		v->breakdown_ctr--;
+		if (!v->current_order.type == OT_LOADING) v->breakdown_ctr--;
 	}
 
 	if (v->vehstatus & VS_STOPPED) return;
--- a/src/ship_cmd.cpp	Thu Apr 24 12:15:24 2008 +0000
+++ b/src/ship_cmd.cpp	Thu Apr 24 12:32:37 2008 +0000
@@ -646,7 +646,7 @@
 			HandleBrokenShip(v);
 			return;
 		}
-		v->breakdown_ctr--;
+		if (!v->current_order.type == OT_LOADING) v->breakdown_ctr--;
 	}
 
 	if (v->vehstatus & VS_STOPPED) return;
--- a/src/train_cmd.cpp	Thu Apr 24 12:15:24 2008 +0000
+++ b/src/train_cmd.cpp	Thu Apr 24 12:32:37 2008 +0000
@@ -3570,7 +3570,7 @@
 			HandleBrokenTrain(v);
 			return;
 		}
-		v->breakdown_ctr--;
+		if (!v->current_order.type == OT_LOADING) v->breakdown_ctr--;
 	}
 
 	if (HasBit(v->u.rail.flags, VRF_REVERSING) && v->cur_speed == 0) {
--- a/src/video/cocoa/wnd_quartz.mm	Thu Apr 24 12:15:24 2008 +0000
+++ b/src/video/cocoa/wnd_quartz.mm	Thu Apr 24 12:32:37 2008 +0000
@@ -175,7 +175,8 @@
 			CMCloseProfile(sysProfile);
 		}
 
-		assert(colorSpace != NULL);
+		if (colorSpace == NULL)
+			error("Could not get system colour space. You might need to recalibrate your monitor.");
 	}
 
 	return colorSpace;