(svn r9918) -Fix: the available roadtypes/railtypes were not updated on GRF updates.

This commit is contained in:
rubidium 2007-05-25 08:47:40 +00:00
parent 21546a66f3
commit 7ec428fe7e
2 changed files with 13 additions and 0 deletions

View File

@ -332,6 +332,12 @@ static void NewVehicleAvailable(Engine *e)
if (p->is_active) SETBIT(p->avail_railtypes, railtype); if (p->is_active) SETBIT(p->avail_railtypes, railtype);
} }
} }
if ((index - NUM_TRAIN_ENGINES) < NUM_ROAD_ENGINES) {
/* maybe make another road type available */
FOR_ALL_PLAYERS(p) {
if (p->is_active) SETBIT(p->avail_roadtypes, HASBIT(EngInfo(index)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD);
}
}
AddNewsItem(index, NEWS_FLAGS(NM_CALLBACK, 0, NT_NEW_VEHICLES, DNC_VEHICLEAVAIL), 0, 0); AddNewsItem(index, NEWS_FLAGS(NM_CALLBACK, 0, NT_NEW_VEHICLES, DNC_VEHICLEAVAIL), 0, 0);
} }

View File

@ -4808,6 +4808,13 @@ void InitDepotWindowBlockSizes();
static void AfterLoadGRFs() static void AfterLoadGRFs()
{ {
/* Update the bitmasks for the vehicle lists */
Player *p;
FOR_ALL_PLAYERS(p) {
p->avail_railtypes = GetPlayerRailtypes(p->index);
p->avail_roadtypes = GetPlayerRoadtypes(p->index);
}
/* Pre-calculate all refit masks after loading GRF files. */ /* Pre-calculate all refit masks after loading GRF files. */
CalculateRefitMasks(); CalculateRefitMasks();