(svn r11784) -Codechange: set up initial engine data in one place

This commit is contained in:
peter1138 2008-01-08 18:25:51 +00:00
parent 814f47a3cc
commit ce2104ed47
5 changed files with 20 additions and 23 deletions

View File

@ -38,6 +38,24 @@ enum {
}; };
void SetupEngines()
{
/* Copy original static engine data */
memcpy(&_engine_info, &orig_engine_info, sizeof(orig_engine_info));
memcpy(&_rail_vehicle_info, &orig_rail_vehicle_info, sizeof(orig_rail_vehicle_info));
memcpy(&_ship_vehicle_info, &orig_ship_vehicle_info, sizeof(orig_ship_vehicle_info));
memcpy(&_aircraft_vehicle_info, &orig_aircraft_vehicle_info, sizeof(orig_aircraft_vehicle_info));
memcpy(&_road_vehicle_info, &orig_road_vehicle_info, sizeof(orig_road_vehicle_info));
/* Add type to engines */
Engine* e = _engines;
do e->type = VEH_TRAIN; while (++e < &_engines[ROAD_ENGINES_INDEX]);
do e->type = VEH_ROAD; while (++e < &_engines[SHIP_ENGINES_INDEX]);
do e->type = VEH_SHIP; while (++e < &_engines[AIRCRAFT_ENGINES_INDEX]);
do e->type = VEH_AIRCRAFT; while (++e < &_engines[TOTAL_NUM_ENGINES]);
}
void ShowEnginePreviewWindow(EngineID engine); void ShowEnginePreviewWindow(EngineID engine);
void DeleteCustomEngineNames() void DeleteCustomEngineNames()
@ -108,16 +126,6 @@ static void CalcEngineReliability(Engine *e)
InvalidateWindowClasses(WC_REPLACE_VEHICLE); InvalidateWindowClasses(WC_REPLACE_VEHICLE);
} }
void AddTypeToEngines()
{
Engine* e = _engines;
do e->type = VEH_TRAIN; while (++e < &_engines[ROAD_ENGINES_INDEX]);
do e->type = VEH_ROAD; while (++e < &_engines[SHIP_ENGINES_INDEX]);
do e->type = VEH_SHIP; while (++e < &_engines[AIRCRAFT_ENGINES_INDEX]);
do e->type = VEH_AIRCRAFT; while (++e < &_engines[TOTAL_NUM_ENGINES]);
}
void StartupEngines() void StartupEngines()
{ {
Engine *e; Engine *e;

View File

@ -153,7 +153,7 @@ enum {
static const EngineID INVALID_ENGINE = 0xFFFF; static const EngineID INVALID_ENGINE = 0xFFFF;
void AddTypeToEngines(); void SetupEngines();
void StartupEngines(); void StartupEngines();

View File

@ -56,8 +56,6 @@ void InitializeGame(int mode, uint size_x, uint size_y)
{ {
AllocateMap(size_x, size_y); AllocateMap(size_x, size_y);
AddTypeToEngines(); // make sure all engines have a type
SetObjectToPlace(SPR_CURSOR_ZZZ, PAL_NONE, VHM_NONE, WC_MAIN_WINDOW, 0); SetObjectToPlace(SPR_CURSOR_ZZZ, PAL_NONE, VHM_NONE, WC_MAIN_WINDOW, 0);
_pause_game = 0; _pause_game = 0;

View File

@ -5063,11 +5063,7 @@ static void ResetNewGRFData()
CleanUpGRFTownNames(); CleanUpGRFTownNames();
/* Copy/reset original engine info data */ /* Copy/reset original engine info data */
memcpy(&_engine_info, &orig_engine_info, sizeof(orig_engine_info)); SetupEngines();
memcpy(&_rail_vehicle_info, &orig_rail_vehicle_info, sizeof(orig_rail_vehicle_info));
memcpy(&_ship_vehicle_info, &orig_ship_vehicle_info, sizeof(orig_ship_vehicle_info));
memcpy(&_aircraft_vehicle_info, &orig_aircraft_vehicle_info, sizeof(orig_aircraft_vehicle_info));
memcpy(&_road_vehicle_info, &orig_road_vehicle_info, sizeof(orig_road_vehicle_info));
/* Copy/reset original bridge info data /* Copy/reset original bridge info data
* First, free sprite table data */ * First, free sprite table data */
@ -5124,9 +5120,6 @@ static void ResetNewGRFData()
/* Reset NewGRF errors. */ /* Reset NewGRF errors. */
ResetNewGRFErrors(); ResetNewGRFErrors();
/* Add engine type to engine data. This is needed for the refit precalculation. */
AddTypeToEngines();
/* Set up the default cargo types */ /* Set up the default cargo types */
SetupCargoForClimate(_opt.landscape); SetupCargoForClimate(_opt.landscape);

View File

@ -1631,8 +1631,6 @@ static bool LoadOldMain(LoadgameState *ls)
FixOldStations(); FixOldStations();
FixOldVehicles(); FixOldVehicles();
AddTypeToEngines();
/* We have a new difficulty setting */ /* We have a new difficulty setting */
_opt.diff.town_council_tolerance = Clamp(_opt.diff_level, 0, 2); _opt.diff.town_council_tolerance = Clamp(_opt.diff_level, 0, 2);