1
0
Fork 0

(svn r3952) - Fix: On loading a game, GetPlayerRailtypes() didn't account for the fact that vehicles are introduced a year after their introduction date. This will also relieve possible (rare) network desyncs. Backport of r3565 from trunk

release/0.4.5
Darkvater 2006-03-18 15:17:57 +00:00
parent 8157969b2b
commit e89a98d296
2 changed files with 2 additions and 2 deletions

View File

@ -1010,7 +1010,7 @@ void EnginesMonthlyLoop(void)
CalcEngineReliability(e); CalcEngineReliability(e);
} }
if (!(e->flags & ENGINE_AVAILABLE) && (uint16)(_date - min(_date, 365)) >= e->intro_date) { if (!(e->flags & ENGINE_AVAILABLE) && _date >= (e->intro_date + 365)) {
// Introduce it to all players // Introduce it to all players
NewVehicleAvailable(e); NewVehicleAvailable(e);
} else if (!(e->flags & (ENGINE_AVAILABLE|ENGINE_INTRODUCING)) && _date >= e->intro_date) { } else if (!(e->flags & (ENGINE_AVAILABLE|ENGINE_INTRODUCING)) && _date >= e->intro_date) {

View File

@ -629,7 +629,7 @@ byte GetPlayerRailtypes(PlayerID p)
const EngineInfo *ei = &_engine_info[i]; const EngineInfo *ei = &_engine_info[i];
if (e->type == VEH_Train && HASBIT(ei->climates, _opt.landscape) && if (e->type == VEH_Train && HASBIT(ei->climates, _opt.landscape) &&
(HASBIT(e->player_avail, p) || e->intro_date <= _date) && (HASBIT(e->player_avail, p) || _date >= (e->intro_date + 365)) &&
!(RailVehInfo(i)->flags & RVI_WAGON)) { !(RailVehInfo(i)->flags & RVI_WAGON)) {
assert(e->railtype < RAILTYPE_END); assert(e->railtype < RAILTYPE_END);
SETBIT(rt, e->railtype); SETBIT(rt, e->railtype);