promotional bannermobile promotional banner

Midnight Objective Tracker

A week-by-week in-game progression guide for World of Warcraft: Midnight. Automatically detects your WoW client language and displays in French, English, Russian, German or Spanish.

File Details

Midnight Objective Tracker v5.6.2

  • R
  • Mar 9, 2026
  • 78.37 KB
  • 6.6K
  • 12.0.1
  • Retail

File Name

MidnightObjectiveTracker.zip

Supported Versions

  • 12.0.1

[5.6.2] – 2026-03-09

Bug fixes

  • Window overlap — When dragging a window over another, the background would render behind it while text remained on top, causing visual overlap. Fixed by adding SetToplevel(true) on the main frame and an explicit Raise() call on drag start.
  • Summary menu hover — The hover color on the week summary menu buttons was always the default yellow regardless of the chosen accent color. Replaced SetHighlightTexture with a custom menuHoverTex texture colored dynamically via GetAccentColor() on each OnEnter.
  • Color Accessibility dropdown — The selected item and hover highlight in the colorblind mode dropdown were hardcoded to yellow. UpdateCBDropdownSelection now uses GetAccentColor(), the hover texture is updated on OnEnter, and a RegisterAccentColorCallback refreshes the selection immediately when the accent color changes.
  • Sub-window overlap — The Crests table (MidnightMplusFrame), Item Level reference (MidnightIlvlFrame) and Content Planning (MidnightPlanningContenuFrame) windows had the same drag-overlap bug as the main frame. All three now use SetToplevel(true) and Raise() on drag start.

Cleanup & code quality

  • Removed inline comment lines from Lua files.
  • Removed tooltip from the Reset button.
  • Removed two redundant anonymous function wrappers (ApplyWindowBgColor, ApplyButtonTextColor) on the Midnight export table — replaced with direct function references.
  • Simplified ApplyMidnightBorder: replaced a split if/else variable initialization with a cleaner default-then-override pattern.
  • Fixed three indentation errors in Midnight:Refresh() (local numVisible, for oIndex inner loop) and in CreateObjective (local rowBtn).
  • Removed dead code: if self.UnlockHighlight then self:UnlockHighlight() end in the menu button OnLeave (leftover from the SetHighlightTexture removal); cleaned up the unused self parameter.
  • Added an early-return guard in the hover-opacity poll (_hoverPoll) when the main frame is hidden, avoiding unnecessary polling every 50 ms.
  • Fixed a missing semicolon between two statements on one line in the parseCSV inner loop of ecus.lua (j = j + 1; break).