florian.berthold 219e749046
release / release (push) Successful in 5s
coa.18: guard DataStore_Achievements nil criteria quantity
GetAchievementCriteriaInfo returns nil reqQuantity/quantity for some CoA achievements;
'reqQuantity > 1' crashed. Guarded both.
2026-05-29 20:05:03 +02:00
2025-03-24 16:03:04 +01:00

wow-Altoholic-dev

Altoholic: modified development for WotLK

CoA fork (Exiles)

Ported for the Ascension CoA (Vol'jin) 3.3.5a client by the Exiles guild. Released as *-coa.N tags via Gitea Actions; see Exiles/coa-altoholic.

  • 3.3.002b-coa.12 — Bigger main window (real size, not scale): AltoholicFrame 447→555px tall; AuctionFrame background art re-anchored with a middle filler; every scrolling tab shows more rows (18px tabs 14→20, 41px tabs 7/8→10) with matching $parentEntryN frames + grown scrollframes. Visual polish (art seam, scrollbar track length) may need a tweak after testing.
  • 3.3.002b-coa.11 — Hotfix: Skills tab crash — $parentSkill1 ButtonText global-name collision left Skill1NormalText nil; made it self-contained.
  • 3.3.002b-coa.10 — Three CoA data-coverage features:
    • Reputation is now data-driven: shows every faction a character actually has (grouped by in-game category), so CoA's custom factions (and future ones) appear automatically. The old hardcoded faction tree is kept only as an icon lookup.
    • Class icons for CoA custom classes (1232) now render from a bundled CoA atlas (Altoholic/images/coa-classes.blp, texcoords from the CoA Details fork) instead of falling back to the Warrior glue icon.
    • Skills tab shows ALL known professions (dynamic list, not 2 fixed slots) incl. Woodcutting/Woodworking, and fixes "no profession data" — DataStore_Skills now scans on login (PLAYER_ENTERING_WORLD/SKILL_LINES_CHANGED) instead of only on death/ghost-release.
  • 3.3.002b-coa.9 — Reverted the 1.4 default scale (it only zoomed, didn't show more content; scale stays user-opt-in at 1.0 default, applied on open). Hardened Options:Get/Set against a nil options table (TabOptions.lua:442 crash). Guild Members: guard Level_OnClick against cleared/stale row IDs (clicking AiL crashed). New: Personal + Realm bank tracking ported from coa-bagnon (detects CoA BANK_PERMISSIONS_PAYLOAD, personal=per-char, realm=per-realm; surfaced in Search + BagUsage tooltip). New: Woodcutting + Woodworking columns on the Skills tab (CoA custom professions). NOTE: Skills "all professions" redesign, profession data population, character icons, and reputation factions are still in progress.
  • 3.3.002b-coa.8 — Title bar reads just Altoholic <version> (from the live .toc), dropping the "by Thaoky (Edited by Telkar-RG 1.04a)" string. Window now opens at the AtlasLoot-ish default scale (UIScale 1.4, ≈ 1105×640); scale is applied on every open (upstream only applied it after visiting Options), with a one-time bump for profiles still on the old 1.0 default.
  • 3.3.002b-coa.7 — Skills tab: GetColor() now nil-safe and the per-skill rank fields (skillRank1/2, cooking, firstaid, fishing, riding) default to 0 — they're nil for chars DataStore_Characters hasn't scanned, which crashed the Skills summary (floor(rank/…) arithmetic and the >= 300 riding check).
  • 3.3.002b-coa.6 — Final straggler: guarded AccountSharing.lua realm/name line (name getter was the last format arg, so a no-value collapsed it to a format error). Concludes the frame sweep.
  • 3.3.002b-coa.5 — Refactor + completeness pass:
    • Extracted the duplicated character header/row blocks into Altoholic:AddCharacterTooltipHeader() and Altoholic:SetCharacterRowNameLevel() — the nil-guards now live in one place instead of being copy-pasted across frames.
    • Fixed crash sites the per-frame sweep had missed: Skills.lua (row + skill-rank tooltip), Keys.lua (×3 format with possibly-nil name), and the latent ShowClassIcons sort (Altoholic.lua — getters bypass their own or 0 via the DataStore wrapper).
    • Restored login scanning: OnPlayerAlive in Altoholic.lua + DataStore_Inventory was gated to ghost-only (commit fdcb25a), so inventory/iLvl never populated on login. Now scans once per session (still skips resurrect/Feign-Death rescans). Removed dated DEBUG leftovers.
  • 3.3.002b-coa.4 — Rebranded to the Exiles fork (title Altoholic (Exiles); Thaoky/Telkar-RG still credited as Author). Hardened all Altoholic frames against partial alt records: DataStore char-based getters return no value for any module that hasn't scanned a char, and the frames assumed full data everywhere. Guarded every format/concat/arithmetic/pairs site across AccountSummary, Activity, BagUsage, Quests, Reputations, TabCharacters, DrawCharacterTooltip, and the recipe tooltip. No DataStore contract change.
  • 3.3.002b-coa.3 — More partial-record guards in DataStore_Characters (own alts seen via guild comm but never fully scanned):
    • GetXPRate — guard nil/zero XPMax (crashed AccountSummary; also fixes div-by-zero at max level).
    • GetRestXPRate — guard nil/zero XPMax and nil lastLogoutTimestamp (nil ~= 0 was true and crashed).
  • 3.3.002b-coa.2 — Defensive guards for CoA data shapes (custom classes, records seeded from guild comm before a full scan, ungeared chars). Fixes login/UI crashes:
    • DataStore_InventoryGetAverageItemLevel returns 0 instead of nil (crashed the Altoholic char sort and AccountSummary iLvl format); guarded the login AIL broadcast and the 0/0 average for ungeared chars.
    • DataStore_PetsGetNumPets returns 0 for an unscanned companion table instead of assert-crashing TabCharacters.
    • DataStore_CharactersGetColoredCharacterName tolerates a nil name (records known only via guild comm).
    • Altoholic/Characters.luaGetLineType returns nil for a stale/out-of-range line id (caller already handles it) instead of indexing a nil row.
  • 3.3.002b-coa.1 — Initial CoA packaging (Altoholic + Altoholic_Achievements + 16 DataStore modules).

Added "Keys" Tab for better overview of owned keys and some attunement quests.

Changes

The new "Keys" tab

  • Edited Version 1.0
    • Added "Keys" tab: will show various relevant keys or attunement quests per character in order to enter instances or allow for quicker entry.
    • Items in "Currencies" tab are now sorted by item id
    • Added button to "DataStore" options to ignore Addon-Communication from the Rising-Gods starter guilds
    • Fixed various "Source tooltip" entries (specifically for Ulduar)
    • Fixed various links between recipes and crafting spells
    • The "Hearthstone" will no longer be counted per character (as everyone has it)
    • Removed deDE mistranslation of "Mail"
    • Characters in the horizontzal tab are now sorted by average item level

The new "Keys" tab

Pretty Pictures

Key item, that requires a questline

Mouseover Key Label Mouseover Character Item

Key, that is a questline

Mouseover Key Label Mouseover Character Item

Key, that requires reputation

Mouseover Key Label Mouseover Character Item

Optional Key, for quick instance entry

Mouseover Key Label Mouseover Character Item

S
Description
CoA Guild Exiles fork of telkar-rg/wow-Altoholic-dev — Altoholic + DataStore_* bundle for WoW 3.3.5 (Interface 30300), tracks Ascension CoA
Readme 8.1 MiB
2026-05-29 23:33:21 +00:00
Languages
Lua 99.7%
XSLT 0.2%