--- a/src/engine.cpp Wed Jun 13 11:45:14 2007 +0000
+++ b/src/engine.cpp Wed Jun 13 12:05:56 2007 +0000
@@ -178,14 +178,16 @@
static void AcceptEnginePreview(EngineID eid, PlayerID player)
{
Engine *e = GetEngine(eid);
+ Player *p = GetPlayer(player);
SETBIT(e->player_avail, player);
if (e->type == VEH_TRAIN) {
const RailVehicleInfo *rvi = RailVehInfo(eid);
- Player *p = GetPlayer(player);
assert(rvi->railtype < RAILTYPE_END);
SETBIT(p->avail_railtypes, rvi->railtype);
+ } else if (e->type == VEH_ROAD) {
+ SETBIT(p->avail_roadtypes, HASBIT(EngInfo(eid)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD);
}
e->preview_player = INVALID_PLAYER;
@@ -330,6 +332,12 @@
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);
}