mirror of
https://github.com/OpenTTD/OpenTTD.git
synced 2025-08-29 01:19:11 +00:00
(svn r1167) Feature: Added the possibility to add validation functions to NewsItems. This is now done for "Train in depot" messages. Before displaying such a message, it checks if the train really still is in the depot. Can be applied to other news items as well.
This commit is contained in:
15
train_cmd.c
15
train_cmd.c
@@ -2546,6 +2546,16 @@ void Train_Tick(Vehicle *v)
|
||||
|
||||
static const byte _depot_track_ind[4] = {0,1,0,1};
|
||||
|
||||
// Validation for the news item "Train is waiting in depot"
|
||||
bool ValidateTrainInDepot( uint data_a, uint data_b )
|
||||
{
|
||||
Vehicle *v = &_vehicles[data_a];
|
||||
if (v->u.rail.track == 0x80 && (v->vehstatus | VS_STOPPED))
|
||||
return true;
|
||||
else
|
||||
return false;
|
||||
}
|
||||
|
||||
void TrainEnterDepot(Vehicle *v, uint tile)
|
||||
{
|
||||
SetSignalsOnBothDir(tile, _depot_track_ind[_map5[tile]&3]);
|
||||
@@ -2580,11 +2590,12 @@ void TrainEnterDepot(Vehicle *v, uint tile)
|
||||
v->vehstatus |= VS_STOPPED;
|
||||
if (v->owner == _local_player) {
|
||||
SetDParam(0, v->unitnumber);
|
||||
AddNewsItem(
|
||||
AddValidatedNewsItem(
|
||||
STR_8814_TRAIN_IS_WAITING_IN_DEPOT,
|
||||
NEWS_FLAGS(NM_SMALL, NF_VIEWPORT|NF_VEHICLE, NT_ADVICE, 0),
|
||||
v->index,
|
||||
0);
|
||||
0,
|
||||
ValidateTrainInDepot);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user