train_cmd.c
changeset 2758 e962dd6c3ed4
parent 2752 55e04dee346d
child 2804 ea4080819175
equal deleted inserted replaced
2757:d1ccb6600be3 2758:e962dd6c3ed4
  2157 	{ 3, 2, 9, 9 }, // track left
  2157 	{ 3, 2, 9, 9 }, // track left
  2158 	{ 9, 9, 1, 0 }, // track right
  2158 	{ 9, 9, 1, 0 }, // track right
  2159 };
  2159 };
  2160 
  2160 
  2161 static const byte _pick_track_table[6] = {1, 3, 2, 2, 0, 0};
  2161 static const byte _pick_track_table[6] = {1, 3, 2, 2, 0, 0};
  2162 #if PF_BENCHMARK
  2162 #ifdef PF_BENCHMARK
  2163 #if !defined(_MSC_VER)
  2163 #if !defined(_MSC_VER)
  2164 unsigned int _rdtsc()
  2164 unsigned int _rdtsc()
  2165 {
  2165 {
  2166 	unsigned int high, low;
  2166 	unsigned int high, low;
  2167 
  2167 
  2186 /* choose a track */
  2186 /* choose a track */
  2187 static byte ChooseTrainTrack(Vehicle *v, TileIndex tile, int enterdir, TrackdirBits trackdirbits)
  2187 static byte ChooseTrainTrack(Vehicle *v, TileIndex tile, int enterdir, TrackdirBits trackdirbits)
  2188 {
  2188 {
  2189 	TrainTrackFollowerData fd;
  2189 	TrainTrackFollowerData fd;
  2190 	uint best_track;
  2190 	uint best_track;
  2191 #if PF_BENCHMARK
  2191 #ifdef PF_BENCHMARK
  2192 	int time = _rdtsc();
  2192 	int time = _rdtsc();
  2193 	static float f;
  2193 	static float f;
  2194 #endif
  2194 #endif
  2195 
  2195 
  2196 	assert( (trackdirbits & ~0x3F) == 0);
  2196 	assert( (trackdirbits & ~0x3F) == 0);
  2257 		} else {
  2257 		} else {
  2258 			best_track = fd.best_track & 7;
  2258 			best_track = fd.best_track & 7;
  2259 		}
  2259 		}
  2260 	}
  2260 	}
  2261 
  2261 
  2262 #if PF_BENCHMARK
  2262 #ifdef PF_BENCHMARK
  2263 	time = _rdtsc() - time;
  2263 	time = _rdtsc() - time;
  2264 	f = f * 0.99 + 0.01 * time;
  2264 	f = f * 0.99 + 0.01 * time;
  2265 	printf("PF time = %d %f\n", time, f);
  2265 	printf("PF time = %d %f\n", time, f);
  2266 #endif
  2266 #endif
  2267 
  2267