# HG changeset patch # User rubidium # Date 1209040357 0 # Node ID 2274772a44242b2dcf12cb839c1b55066d7c8ecd # Parent 2820eb37d8289c5b71d1d976c64e9e71d0a19ef5 (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) diff -r 2820eb37d828 -r 2274772a4424 src/aircraft_cmd.cpp --- 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--; } } diff -r 2820eb37d828 -r 2274772a4424 src/news_gui.cpp --- 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 diff -r 2820eb37d828 -r 2274772a4424 src/roadveh_cmd.cpp --- 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; diff -r 2820eb37d828 -r 2274772a4424 src/ship_cmd.cpp --- 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; diff -r 2820eb37d828 -r 2274772a4424 src/train_cmd.cpp --- 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) { diff -r 2820eb37d828 -r 2274772a4424 src/video/cocoa/wnd_quartz.mm --- 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;