diff --git a/docs/changelog.html b/docs/changelog.html new file mode 100644 index 0000000..f6b368d --- /dev/null +++ b/docs/changelog.html @@ -0,0 +1,273 @@ + + + + + + Questie (3.3.5a) - Developer Documentation + + + + +
+

Questie Changelog

+

Complete history of changes, fixes, and additions.

+
+ ← Back to Documentation +
+
+ +
+

v9.7.5

+

Fixes

+ +

New Quests

+ +

v9.7.4

+

Fixes

+ +

New Quests

+ +

v9.7.3

+

New Features

+ +

Quests (Custom Content)

+ +

New Ascension Quests

+ +

New Ebonhold Quests

+ +

Fixes

+ + +
+ + + + \ No newline at end of file diff --git a/docs/index.html b/docs/index.html index 93a0cd9..87b23e0 100644 --- a/docs/index.html +++ b/docs/index.html @@ -153,8 +153,13 @@ } @media (max-width: 768px) { - .grid { grid-template-columns: 1fr; } - .hero h1 { font-size: 2.2rem; } + .grid { + grid-template-columns: 1fr; + } + + .hero h1 { + font-size: 2.2rem; + } } @@ -162,10 +167,14 @@

Questie (3.3.5a)

-

Developer documentation for Project Ascension & Project Ebonhold compatibility layers and core engine refinements.

+

Developer documentation for Project Ascension & Project Ebonhold compatibility layers and + core engine refinements.

Version: v9.7.5 Branch: feature/ebonhold-compat + View + Changelog
@@ -173,7 +182,9 @@

Ebonhold Database Architecture

-

To support custom servers without polluting the base WotLK database, Questie now implements a modular override system. This allows custom quests, NPCs, and objects to be defined in a safe namespace that persists across upstream updates.

+

To support custom servers without polluting the base WotLK database, Questie now implements a modular + override system. This allows custom quests, NPCs, and objects to be defined in a safe namespace that + persists across upstream updates.

1. Directory Structure

Database/Ebonhold/
@@ -185,7 +196,9 @@
     └── EbonholdNpcDB.lua    # Custom NPC spawn overrides

2. Injection Methodology

-

The system hooks into QuestieDB:Initialize(). Instead of modifying QuestieDB.questData directly, it populates the override tables which are checked during quest retrieval.

+

The system hooks into QuestieDB:Initialize(). Instead of modifying + QuestieDB.questData directly, it populates the override tables which are checked during + quest retrieval.

-- EbonholdLoader.lua snippet
 local function InjectOverrides()
     for id, data in pairs(EbonholdDB.questData) do
@@ -197,33 +210,43 @@ end

Core Logic Refinements

- +

Quest Arrow: Auto-Mode

-

Restored "Auto Nearby" logic which points to the closest available quest when the player has no active tracking list. Features Zone Filtering to prevent the arrow from pointing to distant continents when in auto-mode.

+

Restored "Auto Nearby" logic which points to the closest available quest when the player has no + active tracking list. Features Zone Filtering to prevent the arrow from + pointing to distant continents when in auto-mode.

Tracker Robustness

-

The tracker update loop is now protected with pcall. This prevents malformed quest data (like the "Fel Orc Scavengers" bug) from crashing the entire UI and hiding unrelated quests.

+

The tracker update loop is now protected with pcall. This prevents malformed quest + data (like the "Fel Orc Scavengers" bug) from crashing the entire UI and hiding unrelated + quests.

Quest Icon Persistence Fix

-

Custom server quests often use auto-complete triggers which can bypass Questie's standard cleanup events. We implemented a two-tier cleanup strategy:

+

Custom server quests often use auto-complete triggers which can bypass Questie's standard cleanup events. + We implemented a two-tier cleanup strategy:

Custom Quest Implementation

-

For large-scale "kill count" quests (e.g., 75 Dragonkin), we utilize the killCreditObjective pattern. This allows a single quest objective to be mapped to a dynamic list of NPC IDs.

+

For large-scale "kill count" quests (e.g., 75 Dragonkin), we utilize the killCreditObjective + pattern. This allows a single quest objective to be mapped to a dynamic list of NPC IDs.

- Developer Note: Using killCreditObjective (Index [10][5]) ensures that all participating NPC spawns appear on the map, but only one counter appears in the tracker. + Developer Note: Using killCreditObjective (Index [10][5]) ensures that all + participating NPC spawns appear on the map, but only one counter appears in the + tracker.
-- Example implementation (EbonholdQuestDB.lua)
@@ -246,7 +269,8 @@ end

Automated Learning (Self-Learning)

-

When Questie encounters a Quest ID that exists in the player's log but is missing from the local database, it triggers a Runtime Learning event.

+

When Questie encounters a Quest ID that exists in the player's log but is missing from the local + database, it triggers a Runtime Learning event.

  1. Scans GetQuestLogTitle(index) for the missing ID.
  2. Calls QuestieLearner:OnQuestAccepted to populate overrides.
  3. @@ -261,4 +285,4 @@ end - + \ No newline at end of file