diff --git a/src/aircraft_cmd.cpp b/src/aircraft_cmd.cpp index 9cfa3ba143..cb053b923d 100644 --- a/src/aircraft_cmd.cpp +++ b/src/aircraft_cmd.cpp @@ -2150,7 +2150,7 @@ static void AircraftEventHandler(Vehicle *v, int loop) if (v->breakdown_ctr <= 2) { HandleBrokenAircraft(v); } else { - v->breakdown_ctr--; + if (!v->current_order.type == OT_LOADING) v->breakdown_ctr--; } } diff --git a/src/news_gui.cpp b/src/news_gui.cpp index 1528ee38f1..e7f0f483bc 100644 --- a/src/news_gui.cpp +++ b/src/news_gui.cpp @@ -1022,6 +1022,7 @@ void DeleteVehicleNews(VehicleID vid, StringID news) 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 --git a/src/roadveh_cmd.cpp b/src/roadveh_cmd.cpp index d4cb02163f..a24bd25db0 100644 --- a/src/roadveh_cmd.cpp +++ b/src/roadveh_cmd.cpp @@ -790,7 +790,8 @@ static void ProcessRoadVehOrder(Vehicle *v) 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 @@ static void RoadVehController(Vehicle *v) HandleBrokenRoadVeh(v); return; } - v->breakdown_ctr--; + if (!v->current_order.type == OT_LOADING) v->breakdown_ctr--; } if (v->vehstatus & VS_STOPPED) return; diff --git a/src/ship_cmd.cpp b/src/ship_cmd.cpp index ce83f898d5..5b567a9c38 100644 --- a/src/ship_cmd.cpp +++ b/src/ship_cmd.cpp @@ -646,7 +646,7 @@ static void ShipController(Vehicle *v) HandleBrokenShip(v); return; } - v->breakdown_ctr--; + if (!v->current_order.type == OT_LOADING) v->breakdown_ctr--; } if (v->vehstatus & VS_STOPPED) return; diff --git a/src/train_cmd.cpp b/src/train_cmd.cpp index aa87b50ff2..54ce8456b8 100644 --- a/src/train_cmd.cpp +++ b/src/train_cmd.cpp @@ -3570,7 +3570,7 @@ static void TrainLocoHandler(Vehicle *v, bool mode) 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 --git a/src/video/cocoa/wnd_quartz.mm b/src/video/cocoa/wnd_quartz.mm index 6109c46dd8..dfb59c31f9 100644 --- a/src/video/cocoa/wnd_quartz.mm +++ b/src/video/cocoa/wnd_quartz.mm @@ -175,7 +175,8 @@ static CGColorSpaceRef QZ_GetCorrectColorSpace() CMCloseProfile(sysProfile); } - assert(colorSpace != NULL); + if (colorSpace == NULL) + error("Could not get system colour space. You might need to recalibrate your monitor."); } return colorSpace;