summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbjarni <bjarni@openttd.org>2005-01-24 22:24:47 +0000
committerbjarni <bjarni@openttd.org>2005-01-24 22:24:47 +0000
commite006f89aa3e750ead8cce290d86ee22b2190a582 (patch)
treea40c92393f20c790b63d3d4ac0824541652cd3c3
parentffb2c4de778acd8bb35b43c44b65bb10af05e137 (diff)
downloadopenttd-e006f89aa3e750ead8cce290d86ee22b2190a582.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.c10
-rw-r--r--roadveh_cmd.c7
-rw-r--r--roadveh_gui.c2
-rw-r--r--ship_cmd.c2
-rw-r--r--train_cmd.c15
-rw-r--r--train_gui.c2
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;