Fixes for QuestUtil usage in Classic

This commit is contained in:
SabinDeus 2023-02-16 19:22:40 -05:00
parent d269a24967
commit 14d9f35361

View File

@ -202,6 +202,7 @@ function TI_LoadEvents()
end
function TI_ResetPointers()
TI_debug("resetting pointers")
TI_activenumber = 1;
TI_availnumber = 1;
TI_specnum = 0;
@ -420,6 +421,7 @@ function TI_CompleteQuest()
TI_ResetPointers();
else
TI_debug("quest is not completable, declining");
TI_availnumber = TI_availnumber + 1;
QuestDetailDeclineButton_OnClick();
end
end
@ -526,6 +528,7 @@ function TI_HandleGossipWindow(gorq)
end
if(TI_availnumber > TotalOptions or TI_activenumber > TotalOptions) then
TI_debug("Out of available/active quests, giving up ");
TI_ResetPointers();
return;
end
@ -585,7 +588,6 @@ function TI_HandleGossipWindow(gorq)
if(current.type == "availquest" and #AvailableQuests > 0 and TI_availnumber <= #AvailableQuests) then
SAvQ(AvailableQuests[TI_availnumber].questID);
TI_debug("Selecting Available Quest ".. TI_availnumber);
TI_ResetPointers();
return;
elseif(current.type == "activequest" and #ActiveQuests > 0 and TI_activenumber <= #ActiveQuests) then
while TI_activenumber <= #ActiveQuests do
@ -729,58 +731,46 @@ function TI_TabulateGossipUIInfo_Retail(guis)
return x;
end
function TI_TabulateGossipAvailableQuests_Classic(...)
function TI_TabulateGossipAvailableQuests_Classic(gquis)
local x = {};
local idx = 1;
for i=1, select("#", ...), 7 do
for i,gqui in ipairs(gquis) do
local temp = {};
temp.name = select(i, ...);
temp.name = gqui.title;
local isTrivial = select(i+2, ...);
local isDaily = select(i+3, ...);
local isRepeatable = select(i+4, ...);
local isLegendary = select(i+5, ...);
local isIgnored = select(i+6, ...);
if ( isDaily ) then
if ( gqui.repeatable ) then
temp.icon = "Interface\\GossipFrame\\DailyQuestIcon";
elseif ( isRepeatable ) then
temp.icon = "Interface\\GossipFrame\\DailyActiveQuestIcon";
elseif ( isLegendary ) then
elseif ( gqui.isLegendary ) then
temp.icon = "Interface\\GossipFrame\\AvailableLegendaryQuestIcon";
else
temp.icon = "Interface\\GossipFrame\\AvailableQuestIcon";
end
temp.questID = idx;
temp.questID = gqui.questID;
temp.isComplete = gqui.isComplete;
table.insert(x, temp);
idx = idx + 1;
end
return x;
end
function TI_TabulateGossipActiveQuests_Classic(...)
function TI_TabulateGossipActiveQuests_Classic(gquis)
local x = {};
local idx = 1;
for i=1, select("#", ...), 6 do
for i,gqui in ipairs(gquis) do
local temp = {};
temp.name = select(i, ...);
temp.name = gqui.title;
local isComplete = select(i+3, ...);
temp.isComplete = isComplete;
local isLegendary = select(i+4, ...);
if(isComplete) then
if(isLegendary) then
temp.icon = "Interface\\GossipFrame\\ActiveLegendaryQuestIcon";
if ( gqui.repeatable ) then
temp.icon = "Interface\\GossipFrame\\DailyQuestIcon";
elseif ( gqui.isLegendary ) then
temp.icon = "Interface\\GossipFrame\\AvailableLegendaryQuestIcon";
else
temp.icon = "Interface\\GossipFrame\\ActiveQuestIcon";
temp.icon = "Interface\\GossipFrame\\AvailableQuestIcon";
end
else
temp.icon = "Interface\\GossipFrame\\IncompleteQuestIcon";
end
temp.questID = idx;
temp.questID = gqui.questID;
temp.isComplete = gqui.isComplete;
table.insert(x, temp);
idx = idx + 1;
end
return x;
end
@ -813,8 +803,8 @@ else
getavailquests = C_GossipInfo.GetAvailableQuests,
getactivequests = C_GossipInfo.GetActiveQuests,
getoptions = C_GossipInfo.GetOptions,
tabulateAvailable = TI_TabulateGossipQuestUIInfo_Retail,
tabulateActive = TI_TabulateGossipQuestUIInfo_Retail,
tabulateAvailable = TI_TabulateGossipAvailableQuests_Classic,
tabulateActive = TI_TabulateGossipActiveQuests_Classic,
tabulateOptions = TI_TabulateGossipUIInfo_Retail,
},
q = {