// Reset price base data
private static void LoadSpriteTables()
	{
		//final FileList files = _use_dos_palette ? files_dos : files_win;
		//final FileList files = files_win;
		final String[] files = files_win;
		int load_index;
		int i;
		//LoadGrfIndexed(files.basic[0].filename, trg1idx, 0);
		LoadGrfIndexed(files[0], trg1idx, 0);
		SpriteCache.DupSprite(  2, 130); // non-breaking space medium
		SpriteCache.DupSprite(226, 354); // non-breaking space tiny
		SpriteCache.DupSprite(450, 578); // non-breaking space large
		load_index = 4793;
		// TODO why start from 1?
		//for (i = 1; files.basic[i].filename != null; i++) {
		for (i = 1; files[i] != null; i++) {
			load_index += LoadGrfFile(files[i], load_index, i);
		}
		if (_sprite_page_to_load != 0) {
			LoadGrfIndexed(
					files_landscape[_sprite_page_to_load - 1],
					//files.landscape[_sprite_page_to_load - 1].filename,
					_landscape_spriteindexes[_sprite_page_to_load - 1],
					i++
					);
		}
		assert(load_index == Sprites.SPR_CANALS_BASE);
		load_index += LoadGrfFile("canalsw.grf", load_index, i++);
		assert(load_index == Sprites.SPR_SLOPES_BASE);
		// TODO LoadGrfIndexed("trkfoundw.grf", _slopes_spriteindexes[_opt.landscape], i++);
		LoadGrfIndexed("trkfoundw.grf", _slopes_spriteindexes[_sprite_page_to_load], i++);
		load_index = Sprites.SPR_AUTORAIL_BASE;
		load_index += LoadGrfFile("autorail.grf", load_index, i++);
		assert(load_index == Sprites.SPR_OPENTTD_BASE);
		LoadGrfIndexed("openttd.grf", _openttd_grf_indexes, i++);
		load_index = Sprites.SPR_OPENTTD_BASE + OPENTTD_SPRITES_COUNT;
		// [dz] wrong place, but it was in LoadNewGRF for some reason. 
		//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));
		// TODO make deep copy??
		//Global._engine_info =  EngineTables2.orig_engine_info;
		//for( EngineInfo ei : EngineTables2.orig_engine_info )
		System.arraycopy(
				EngineTables2.orig_engine_info, 0, 
				Global._engine_info, 0, Global._engine_info.length );
		System.arraycopy(
				EngineTables2.orig_rail_vehicle_info , 0, 
				Global._rail_vehicle_info, 0, Global._rail_vehicle_info.length );
		System.arraycopy(
				EngineTables2.orig_ship_vehicle_info, 0, 
				Global._ship_vehicle_info, 0, Global._ship_vehicle_info.length );
		System.arraycopy(
				EngineTables2.orig_aircraft_vehicle_info, 0, 
				Global._aircraft_vehicle_info, 0, Global._aircraft_vehicle_info.length );
		System.arraycopy(
				EngineTables2.orig_road_vehicle_info, 0, 
				Global._road_vehicle_info, 0, Global._road_vehicle_info.length );
		Bridge.loadOrigBridges();
		// Unload sprite group data
		Engine.UnloadWagonOverrides();
		Engine.UnloadCustomEngineSprites();
		Engine.UnloadCustomEngineNames();
		// Reset price base data
		Economy.ResetPriceBaseMultipliers();
		// TODO was called from LoadNewGRF 
		GRFFile.ResetNewGRFData();
		GRFFile.LoadNewGRF(load_index, i);
	}
Engine.UnloadCustomEngineSprites();
Engine.UnloadCustomEngineNames();
// Reset price base data
Economy.ResetPriceBaseMultipliers();
// TODO was called from LoadNewGRF
EngineTables2.orig_aircraft_vehicle_info, 0,
Global._aircraft_vehicle_info, 0, Global._aircraft_vehicle_info.length );
System.arraycopy(
EngineTables2.orig_road_vehicle_info, 0,
Global._road_vehicle_info, 0, Global._road_vehicle_info.length );
Bridge.loadOrigBridges();
// Unload sprite group data
Engine.UnloadWagonOverrides();
Engine.UnloadCustomEngineSprites();
Engine.UnloadCustomEngineNames();
// Reset price base data
Economy.ResetPriceBaseMultipliers();
// TODO was called from LoadNewGRF
GRFFile.ResetNewGRFData();
GRFFile.LoadNewGRF(load_index, i);
}
System.arraycopy(
EngineTables2.orig_engine_info, 0,
Global._engine_info, 0, Global._engine_info.length );
System.arraycopy(
EngineTables2.orig_rail_vehicle_info , 0,
Global._rail_vehicle_info, 0, Global._rail_vehicle_info.length );
System.arraycopy(
EngineTables2.orig_ship_vehicle_info, 0,
Global._ship_vehicle_info, 0, Global._ship_vehicle_info.length );
System.arraycopy(
EngineTables2.orig_aircraft_vehicle_info, 0,
Global._aircraft_vehicle_info, 0, Global._aircraft_vehicle_info.length );
System.arraycopy(
EngineTables2.orig_road_vehicle_info, 0,
Global._road_vehicle_info, 0, Global._road_vehicle_info.length );
Bridge.loadOrigBridges();
// Unload sprite group data
Engine.UnloadWagonOverrides();
Engine.UnloadCustomEngineSprites();
Engine.UnloadCustomEngineNames();
// Reset price base data
Economy.ResetPriceBaseMultipliers();
// TODO was called from LoadNewGRF
GRFFile.ResetNewGRFData();
GRFFile.LoadNewGRF(load_index, i);
}