FlightTimer

FlightTimer is a lightweight World of Warcraft: The Burning Crusade addon that tracks and learns flight path durations and displays a real-time progress bar with remaining time and completion percentage while you are in flight.

File Details

v1.0.9-bcc

  • R
  • May 4, 2026
  • 7.72 KB
  • 1.0K
  • 2.5.5
  • Classic TBC

File Name

FlightTimer-v1.0.9-bcc.zip

Supported Versions

  • 2.5.5

Changelog

All notable changes to this project will be documented in this file.


[1.0.0] – Initial CurseForge Release

Added

  • Automatic detection of flight source and destination
  • Flight duration tracking and persistence
  • Learning system for new flight routes
  • Progress bar shown during flight
  • Display of:
    • Source → Destination
    • Time remaining (MM:SS)
    • Percentage completed
  • Averaging of flight durations to improve accuracy
  • Debug logging support

Notes

  • Compatible with World of Warcraft: The Burning Crusade Classic (2.4.3 API)
  • No configuration required

[1.0.1] - Debug info removed

[1.0.2] - Small UI changes

[1.0.3] - Estimated time added

[1.0.4] - Estimated time based on other saved routes added

[1.0.5] - Estimated time logic improved. Reverse routes and default time added

[1.0.6] - Option to move and resize the window added

[1.0.7] - Estimation logic improved

[1.0.8] - In-flight performance pass

Changed

  • Throttled the in-flight progress bar to update 4 times per second instead of every frame, eliminating per-frame string concatenation while the flight UI is visible.
  • Cached the trimmed source and destination labels once per flight so StripAfterComma no longer runs on every UI tick.
  • Replaced the full graph rebuild on flight completion with an incremental edge update, so learning a new route no longer rescans the entire saved database.

[1.0.9] - Correctness and estimation pass

Fixed

  • PLAYER_CONTROL_LOST no longer overwrites flight state when fired by stuns, mind control, vehicles, or cinematics. Previously a non-flight loss-of-control during a flight would reset the timer's start time and could cause the matching PLAYER_CONTROL_GAINED to record a bogus duration.
  • Removed dead code paths (EstimateFromFlightPoints, GetTaxiNodes, the unused waypoint list built in TakeTaxiNode) and the unreachable "new route" UI branch.
  • Defensive guard on the per-route averaging path so a stale sample count without a stored time can no longer crash on landing.
  • Unified the "src:dst" key parser across all call sites so opposite-route lookup and graph build agree on how to split keys.

Changed

  • Flight durations are now tracked as a true running mean using a per-route sample count (FlightTimerDB.samples), instead of an exponential moving average that biased toward the most recent flight. Existing entries from 1.0.8 and earlier are migrated as a single sample so saved times are preserved.
  • The Dijkstra graph now mirrors learned forward edges into the reverse direction (without overwriting a real reverse measurement), so estimates work for routes you have flown only one way.
  • FlightTimerGraph is now a file-local instead of an unintentional global.
  • ADDON_LOADED unregisters itself after our addon loads so it stops firing for every other addon.
  • Switched the progress bar background to SetColorTexture (the supported API for solid-color textures).