From 5da75918c0492b998df15dbea9b590e541d4fea5 Mon Sep 17 00:00:00 2001 From: bjarni Date: Sun, 2 Jan 2005 17:23:04 +0000 Subject: (svn r1323) Adding autoreplace feature This feature works much like autorenew, but it will get you a new engine type instead of a new one of the same type. Once ordered, it will automatically replace the engines while they visits a depot. The GUI for setting this up have been added on the vehicle overview windows Note: autorenew is now autoreplace, but to the same engine type Nice new features, that was added to make this possible - windows can now have two independant vertical scrollbars - CMD_SHOW_NO_ERROR have been added as a flag for DoCommandP. It will make it do the action instead of showing the red box with estimated costs even if shift is pressed - fixed problem where enginetypes where not initialized when loading a game. It's now done in InitializeGame() --- engine.c | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) (limited to 'engine.c') diff --git a/engine.c b/engine.c index 7286e0c80..bd3a3fd08 100644 --- a/engine.c +++ b/engine.c @@ -115,6 +115,29 @@ static void CalcEngineReliability(Engine *e) } } +void AddTypeToEngines() +{ + Engine *e; + uint32 counter = 0; + + for(e=_engines; e != endof(_engines); e++, counter++) { + + e->type = VEH_Train; + if (counter >= ROAD_ENGINES_INDEX) { + e->type = VEH_Road; + if (counter >= SHIP_ENGINES_INDEX) { + e->type = VEH_Ship; + if (counter >= AIRCRAFT_ENGINES_INDEX) { + e->type = VEH_Aircraft; + if (counter >= TOTAL_NUM_ENGINES) { + e->type = VEH_Special; + } + } + } + } + } +} + void StartupEngines() { Engine *e; @@ -123,8 +146,8 @@ void StartupEngines() SetupEngineNames(); - for(e=_engines, ei=_engine_info; e != endof(_engines); e++, ei++, counter++) { + e->age = 0; e->railtype = ei->railtype_climates >> 4; e->flags = 0; @@ -170,19 +193,6 @@ void StartupEngines() It should hopefully be the same as when you ask a vehicle what it is but using this, you can ask what type an engine number is even if it is not a vehicle (yet)*/ - e->type = VEH_Train; - if (counter >= ROAD_ENGINES_INDEX) { - e->type = VEH_Road; - if (counter >= SHIP_ENGINES_INDEX) { - e->type = VEH_Ship; - if (counter >= AIRCRAFT_ENGINES_INDEX) { - e->type = VEH_Aircraft; - if (counter >= TOTAL_NUM_ENGINES) { - e->type = VEH_Special; - } - } - } - } } AdjustAvailAircraft(); -- cgit v1.2.3-54-g00ecf