Files
coa-altoholic/README.md
T
florian.berthold ee7770baed
release / release (push) Successful in 4s
coa.12: bigger main window with more visible rows (real size, not scale)
- AltoholicFrame 832x447 -> 832x555; AuctionFrame art bottom row re-anchored down
  + middle filler textures cover the gap; tab containers grown to match.
- Every scrolling tab shows more rows: 18px tabs VisibleLines 14->20, 41px tabs
  7/8->10; added matching $parentEntryN frames + extended scrollframes.
- Verified VisibleLines <= max entry per tab (no nil-row crash); luac + xmllint clean.
- Flagged for visual check: art seam at filler, decorative scrollbar track length.
2026-05-29 18:09:16 +02:00

92 lines
8.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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_Inventory``GetAverageItemLevel` 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_Pets``GetNumPets` returns `0` for an unscanned companion table instead of `assert`-crashing TabCharacters.
- `DataStore_Characters``GetColoredCharacterName` tolerates a `nil` name (records known only via guild comm).
- `Altoholic/Characters.lua``GetLineType` 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
- [Edited Version 1.04a](https://github.com/telkar-rg/wow-Altoholic-dev/releases/tag/t1.04a)
- Some game lag issues addressed by adjusting how some Scan functions were called by triggering Game Events
- [Edited Version 1.03a](https://github.com/telkar-rg/wow-Altoholic-dev/releases/tag/t1.03a)
- Added source information to recipes and pets
- [Edited Version 1.02](https://github.com/telkar-rg/wow-Altoholic-dev/releases/tag/t1.02)
- Small fix for "Known Pets" display (thanks to "[UsernameUsername](https://www.rising-gods.de/forum/63-programmiererecke/830273-addon-altoholic-haustier-info.html)")
- [Edited Version 1.01](https://github.com/telkar-rg/wow-Altoholic-dev/releases/tag/t1.01)
- Items that start Quests now show if the player has already completed them (only affects items of quality above common)
![The new "Keys" tab](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/10.png?raw=true)
- [Edited Version 1.0](https://github.com/telkar-rg/wow-Altoholic-dev/releases/tag/t1.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](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/1.png?raw=true)
- [Original 3.3.5 version](https://github.com/telkar-rg/wow-Altoholic-dev/releases/tag/r90)
## Pretty Pictures
<details>
<summary>Key item, that requires a questline</summary>
![Mouseover Key Label](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/8.png?raw=true)
![Mouseover Character Item](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/9.png?raw=true)
</details>
<details>
<summary>Key, that is a questline</summary>
![Mouseover Key Label](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/6.png?raw=true)
![Mouseover Character Item](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/7.png?raw=true)
</details>
<details>
<summary>Key, that requires reputation</summary>
![Mouseover Key Label](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/4.png?raw=true)
![Mouseover Character Item](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/5.png?raw=true)
</details>
<details>
<summary>Optional Key, for quick instance entry</summary>
![Mouseover Key Label](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/2.png?raw=true)
![Mouseover Character Item](https://github.com/telkar-rg/wow-Altoholic-dev/blob/main/_img/3.png?raw=true)
</details>