diff options
author | bjarni <bjarni@openttd.org> | 2005-01-24 22:24:47 +0000 |
---|---|---|
committer | bjarni <bjarni@openttd.org> | 2005-01-24 22:24:47 +0000 |
commit | f7774a007a21a21a041642c12e942512a546f346 (patch) | |
tree | a40c92393f20c790b63d3d4ac0824541652cd3c3 | |
parent | 8f0ea9436394c25fdaa23e19b8023e8ae6abea4d (diff) | |
download | openttd-f7774a007a21a21a041642c12e942512a546f346.tar.xz |
(svn r1652) Fix: train and road vehicle lists are now redrawn when vehicles enters/leaves a depot (Hackykid)
fix: the ship status bar was not updated properly after a breakdown if show_speed was off (Hackykid)
-rw-r--r-- | aircraft_cmd.c | 10 | ||||
-rw-r--r-- | roadveh_cmd.c | 7 | ||||
-rw-r--r-- | roadveh_gui.c | 2 | ||||
-rw-r--r-- | ship_cmd.c | 2 | ||||
-rw-r--r-- | train_cmd.c | 15 | ||||
-rw-r--r-- | train_gui.c | 2 |
6 files changed, 23 insertions, 15 deletions
diff --git a/aircraft_cmd.c b/aircraft_cmd.c index 5da4b6929..ce4ee322b 100644 --- a/aircraft_cmd.c +++ b/aircraft_cmd.c @@ -1029,15 +1029,15 @@ static void ProcessAircraftOrder(Vehicle *v) v->current_order.type == OT_LOADING) { if (v->current_order.type != OT_GOTO_DEPOT || !(v->current_order.flags & OF_UNLOAD)) - return; - } + return; + } if (v->current_order.type == OT_GOTO_DEPOT && (v->current_order.flags & (OF_UNLOAD | OF_FULL_LOAD)) == (OF_UNLOAD | OF_FULL_LOAD) && - !VehicleNeedsService(v) && + !VehicleNeedsService(v) && v->set_for_replacement == false) { - v->cur_order_index++; - } + v->cur_order_index++; + } if (v->cur_order_index >= v->num_orders) v->cur_order_index = 0; diff --git a/roadveh_cmd.c b/roadveh_cmd.c index 97429a1af..c78aa79d8 100644 --- a/roadveh_cmd.c +++ b/roadveh_cmd.c @@ -515,7 +515,7 @@ static void RoadVehCheckTrainCrash(Vehicle *v) // Make sure it's a road/rail crossing if (!IsTileType(tile, MP_STREET) || - (_map5[tile] & 0xF0) != 0x10) + (_map5[tile] & 0xF0) != 0x10) return; if (VehicleFromPos(tile, v, (VehicleFromPosProc*)EnumCheckRoadVehCrashTrain) != NULL) @@ -671,7 +671,7 @@ static void *EnumCheckRoadVehClose(Vehicle *v, RoadVehFindData *rvf) (_dists[v->direction] > 0 && (x_diff >= _dists[v->direction] || x_diff < 0)) || (_dists[v->direction+8] < 0 && (y_diff <= _dists[v->direction+8] || y_diff > 0)) || (_dists[v->direction+8] > 0 && (y_diff >= _dists[v->direction+8] || y_diff < 0))) - return NULL; + return NULL; return v; } @@ -1408,6 +1408,7 @@ void RoadVehEnterDepot(Vehicle *v) } InvalidateWindow(WC_VEHICLE_DEPOT, v->tile); + InvalidateWindowClasses(WC_ROADVEH_LIST); } static void AgeRoadVehCargo(Vehicle *v) @@ -1504,7 +1505,7 @@ void OnNewDay_RoadVeh(Vehicle *v) SubtractMoneyFromPlayerFract(v->owner, cost); InvalidateWindow(WC_VEHICLE_DETAILS, v->index); - InvalidateWindow(WC_ROADVEH_LIST, v->owner); + InvalidateWindowClasses(WC_ROADVEH_LIST); } void HandleClickOnRoadVeh(Vehicle *v) diff --git a/roadveh_gui.c b/roadveh_gui.c index ecd9a697d..7286803d4 100644 --- a/roadveh_gui.c +++ b/roadveh_gui.c @@ -822,7 +822,7 @@ static void PlayerRoadVehWndProc(Window *w, WindowEvent *e) DrawVehicleProfitButton(v, x, y + 13); SetDParam(0, v->unitnumber); - if (IsRoadDepotTile(v->tile)) + if (IsRoadDepotTile(v->tile) && (v->vehstatus & VS_HIDDEN)) str = STR_021F; else str = v->age > v->max_age - 366 ? STR_00E3 : STR_00E2; diff --git a/ship_cmd.c b/ship_cmd.c index b56d201f8..ea28db771 100644 --- a/ship_cmd.c +++ b/ship_cmd.c @@ -175,7 +175,7 @@ static void HandleBrokenShip(Vehicle *v) if (!(v->tick_counter & 1)) { if (!--v->breakdown_delay) { v->breakdown_ctr = 0; - InvalidateWindowClasses(WC_SHIPS_LIST); + InvalidateWindow(WC_VEHICLE_VIEW, v->index); } } } diff --git a/train_cmd.c b/train_cmd.c index 8a65b108f..df41334e6 100644 --- a/train_cmd.c +++ b/train_cmd.c @@ -1336,15 +1336,21 @@ static bool CheckTrainStayInDepot(Vehicle *v) return false; if (v->u.rail.force_proceed == 0) { - if (++v->load_unload_time_rem < 37) + if (++v->load_unload_time_rem < 37) { + InvalidateWindowClasses(WC_TRAINS_LIST); return true; + } + v->load_unload_time_rem = 0; - if (UpdateSignalsOnSegment(v->tile, v->direction)) + if (UpdateSignalsOnSegment(v->tile, v->direction)) { + InvalidateWindowClasses(WC_TRAINS_LIST); return true; + } } VehicleServiceInDepot(v); + InvalidateWindowClasses(WC_TRAINS_LIST); TrainPlayLeaveStationSound(v); v->u.rail.track = 1; @@ -2485,7 +2491,7 @@ static bool TrainCheckIfLineEnds(Vehicle *v) /* Calculate next tile */ tile += TileOffsByDir(t); // determine the track status on the next tile. - ts = GetTileTrackStatus(tile, TRANSPORT_RAIL) & _reachable_tracks[t]; + ts = GetTileTrackStatus(tile, TRANSPORT_RAIL) & _reachable_tracks[t]; /* Calc position within the current tile ?? */ x = v->x_pos & 0xF; @@ -2690,6 +2696,7 @@ void TrainEnterDepot(Vehicle *v, uint tile) } } } + InvalidateWindowClasses(WC_TRAINS_LIST); } static void CheckIfTrainNeedsService(Vehicle *v) @@ -2797,7 +2804,7 @@ void OnNewDay_Train(Vehicle *v) SubtractMoneyFromPlayerFract(v->owner, cost); InvalidateWindow(WC_VEHICLE_DETAILS, v->index); - InvalidateWindow(WC_TRAINS_LIST, v->owner); + InvalidateWindowClasses(WC_TRAINS_LIST); } } } diff --git a/train_gui.c b/train_gui.c index 0acb273a6..12037c418 100644 --- a/train_gui.c +++ b/train_gui.c @@ -1319,7 +1319,7 @@ static void PlayerTrainsWndProc(Window *w, WindowEvent *e) DrawVehicleProfitButton(v, x, y + 13); SetDParam(0, v->unitnumber); - if (IsTrainDepotTile(v->tile)) + if (IsTrainDepotTile(v->tile) && (v->vehstatus & VS_HIDDEN)) str = STR_021F; else str = v->age > v->max_age - 366 ? STR_00E3 : STR_00E2; |