Files
coa-altoholic/README.md
T
florian.berthold 97e38d5c3d
release / release (push) Successful in 5s
coa.5: refactor char display into guarded helpers; fix missed sites; restore login scan
- Extract AddCharacterTooltipHeader() + SetCharacterRowNameLevel() (Altoholic.lua);
  nil-guards centralized, callers in AccountSummary/Activity/BagUsage/Skills/tooltip.
- Fix sites the manual sweep missed: Skills.lua (row + skill ranks), Keys.lua x3,
  ShowClassIcons sort (Altoholic.lua:705, getters bypass their own or-0 via the wrapper).
- Restore login scan: OnPlayerAlive was ghost-only (fdcb25a) so iLvl never populated;
  now scans once per session. Removed dated DEBUG leftovers.
2026-05-29 01:02:24 +02:00

82 lines
5.8 KiB
Markdown
Raw Permalink 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.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>