static bool TestTrace(Path filename, unsigned ntrace, bool output=false) { FileLineReaderA reader(filename); printf("# %d", ntrace); Trace trace(1000, ntrace); IGCExtensions extensions; extensions.clear(); char *line; int i = 0; for (; (line = reader.ReadLine()) != NULL; i++) { if (output && (i % 500 == 0)) { putchar('.'); fflush(stdout); } IGCFix fix; if (!IGCParseFix(line, extensions, fix) || !fix.gps_valid) continue; OnAdvance(trace, fix.location, fix.gps_altitude, fix.time.GetSecondOfDay()); } putchar('\n'); printf("# samples %d\n", i); return true; }
void Player::OnAdvanceChildren(Timeline* timeline) { for (int i = 0; i < 65536; i++) { PlacedCharacter* placed = timeline->GetPlacedCharacterAtDepth(i); if (placed) { // Character def = m_movie.GetCharacter(placed->m_CharacterID); Character* def = placed->m_character; Sprite* sprite = dynamic_cast<Sprite*>(def); if (sprite != NULL) { // placed->m_currentFrame = 2; OnAdvance(sprite, placed); // pSprite->m_DecodedFrameCount++; // placed->m_currentFrame++; // pSprite->m_DecodedFrameCount = placed->m_currentFrame; } } } Invalidate(); }
static bool TestTrace(const char *filename, unsigned ntrace, bool output=false) { FileLineReaderA reader(filename); if (reader.error()) { fprintf(stderr, "Failed to open %s\n", filename); return false; } printf("# %d", ntrace); Trace trace(1000, ntrace); char *line; int i = 0; for (; (line = reader.read()) != NULL; i++) { if (output && (i % 500 == 0)) { putchar('.'); fflush(stdout); } IGCFix fix; if (!IGCParseFix(line, fix) || !fix.gps_valid) continue; OnAdvance(trace, fix.location, fixed(30), Angle::Zero(), fixed(fix.gps_altitude), fixed(fix.pressure_altitude), fixed(fix.time.GetSecondOfDay())); } putchar('\n'); printf("# samples %d\n", i); return true; }
void Player::OnAdvance() { if (m_placedMovie->m_currentFrame < m_movie->GetFrameCount()-1) { m_placedMovie->m_gotoFrame++; OnAdvance(m_movie, m_placedMovie); } }
bool DemoReplayGlue::Update() { if (!enabled) return false; if (!UpdateTime()) return true; fixed floor_alt = fixed_300; if (device_blackboard->Calculated().terrain_valid) { floor_alt += device_blackboard->Calculated().terrain_altitude; } ProtectedTaskManager::ExclusiveLease protected_task_manager(*task_manager); ProtectedTaskAccessor ta(protected_task_manager, floor_alt); bool retval = DemoReplay::Update(ta); const AircraftState s = aircraft.GetState(); OnAdvance(s.location, s.ground_speed, s.track, s.altitude, s.altitude, s.time); return retval; }