From 8139b14e9c941433bce74e46a7330123cae4ae2b Mon Sep 17 00:00:00 2001 From: Eddi-z <43699911+Eddi-z@users.noreply.github.com> Date: Sat, 2 Mar 2019 22:28:22 +0100 Subject: Change: Synchronize introduction date and reliability randomness across vehicles with the same base introduction date (#7147) --- src/engine.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/engine.cpp b/src/engine.cpp index 9f500e1cd..d539a4852 100644 --- a/src/engine.cpp +++ b/src/engine.cpp @@ -652,7 +652,14 @@ void StartupOneEngine(Engine *e, Date aging_date) /* Don't randomise the start-date in the first two years after gamestart to ensure availability * of engines in early starting games. * Note: TTDP uses fixed 1922 */ + SavedRandomSeeds saved_seeds; + SaveRandomSeeds(&saved_seeds); + SetRandomSeed(_settings_game.game_creation.generation_seed ^ + ei->base_intro ^ + e->type ^ + e->GetGRFID()); uint32 r = Random(); + e->intro_date = ei->base_intro <= ConvertYMDToDate(_settings_game.game_creation.starting_year + 2, 0, 1) ? ei->base_intro : (Date)GB(r, 0, 9) + ei->base_intro; if (e->intro_date <= _date) { e->age = (aging_date - e->intro_date) >> 5; @@ -672,6 +679,7 @@ void StartupOneEngine(Engine *e, Date aging_date) e->reliability_spd_dec = ei->decay_speed << 2; + RestoreRandomSeeds(saved_seeds); CalcEngineReliability(e); /* prevent certain engines from ever appearing. */ -- cgit v1.2.3-70-g09d2