176 } |
176 } |
177 |
177 |
178 static void AcceptEnginePreview(EngineID eid, PlayerID player) |
178 static void AcceptEnginePreview(EngineID eid, PlayerID player) |
179 { |
179 { |
180 Engine *e = GetEngine(eid); |
180 Engine *e = GetEngine(eid); |
|
181 Player *p = GetPlayer(player); |
181 |
182 |
182 SETBIT(e->player_avail, player); |
183 SETBIT(e->player_avail, player); |
183 if (e->type == VEH_TRAIN) { |
184 if (e->type == VEH_TRAIN) { |
184 const RailVehicleInfo *rvi = RailVehInfo(eid); |
185 const RailVehicleInfo *rvi = RailVehInfo(eid); |
185 Player *p = GetPlayer(player); |
|
186 |
186 |
187 assert(rvi->railtype < RAILTYPE_END); |
187 assert(rvi->railtype < RAILTYPE_END); |
188 SETBIT(p->avail_railtypes, rvi->railtype); |
188 SETBIT(p->avail_railtypes, rvi->railtype); |
|
189 } else if (e->type == VEH_ROAD) { |
|
190 SETBIT(p->avail_roadtypes, HASBIT(EngInfo(eid)->misc_flags, EF_ROAD_TRAM) ? ROADTYPE_TRAM : ROADTYPE_ROAD); |
189 } |
191 } |
190 |
192 |
191 e->preview_player = INVALID_PLAYER; |
193 e->preview_player = INVALID_PLAYER; |
192 if (player == _local_player) { |
194 if (player == _local_player) { |
193 AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type); |
195 AddRemoveEngineFromAutoreplaceAndBuildWindows(e->type); |