An issue where all headers disappear when the quest is completed during combat.
chkmyid opened this issue · 9 comments
Probably something relating to fader animations. I've been working a bit on them, trying to make them behave better. Apparently I need to tweak them even more than I thought.
(I've also noticed an other issue where headers seem to stay around when they shouldn't. I definitely need to polish things before moving on to adding new features.)
I tried hard to recreate the situation where headers disappeared.
Please take a look at the following error message.
1x AQT\GUI.lua:683: attempt to index local 'b' (a nil value)
AQT\GUI.lua:683: in function <AQT\GUI.lua:682>
[C]: ?
AQT\GUI.lua:682: in function Sort' AQT\GUI.lua:635: in function
Update'
AQT\GUI.lua:556: in function New' AQT\Core.lua:408: in function
CreateUIObject'
AQT\Core.lua:757: in function Track' AQT\Core.lua:674: in function
New'
AQT\Core.lua:929: in function `?'
AQT\Core.lua:1108: in function <AQT\Core.lua:1107>
Locals:
a = {
0 =
releasing = true
text = {
}
owner =
}
container = {
}
scripts =
}
button = {
}
children =
}
counter = {
}
}
b = nil
(*temporary) =
trackedQuests =
}
name = "붉은마루 산맥"
uiObject = {
}
lastUpdate = 1572340240
quests =
}
}
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = nil
(*temporary) = "attempt to index local 'b' (a nil value)"
st =
SOUND_OBJECTIVE_PROGRESS = 3
SOUND_OBJECTIVE_COMPLETE = 2
cfg =
}
db =
}
gui = AQTParent {
}
initConfig = defined @aqt\Config.lua:1713
L =
}
SOUND_COMPLETE = 1
types =
}
}
18x FrameXML\QuestLogFrame.lua:165: attempt to concatenate local 'questLogTitleText' (a nil value)
FrameXML\QuestLogFrame.lua:165: in function QuestLog_Update' AQT\Core.lua:249: in function
func'
AQT\GUI.lua:1064: in function <AQT\GUI.lua:980>
Locals:
self = nil
numEntries = 16
numQuests = 12
questIndex = -6
questLogTitle = QuestLogTitle1 {
0 =
isHeader = true
r = 0.700000
Text = QuestLogTitle1NormalText {
}
g = 0.700000
b = 0.700000
}
questTitleTag = QuestLogTitle1Tag {
0 =
}
questNumGroupMates = QuestLogTitle1GroupMates {
0 =
}
questNormalText = QuestLogTitle1NormalText {
0 =
}
questHighlight = QuestLogTitle1Highlight {
0 =
}
questCheck = QuestLogTitle1Check {
0 =
}
questLogTitleText = nil
level = 0
questTag = nil
isHeader = false
isCollapsed = false
isComplete = nil
color = nil
numPartyMembers = nil
partyMembersOnQuest = nil
tempWidth = nil
textWidth = nil
(for index) = 1
(for limit) = 23
(for step) = 1
i = 1
(*temporary) = defined =[C]:-1
(*temporary) = QuestLogTitle1 {
0 =
isHeader = true
r = 0.700000
Text = QuestLogTitle1NormalText {
}
g = 0.700000
b = 0.700000
}
(*temporary) = " "
(*temporary) = nil
(*temporary) = false
(*temporary) = nil
(*temporary) = 1
(*temporary) = 0
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = false
(*temporary) = "attempt to concatenate local 'questLogTitleText' (a nil value)"
I suppose I could also hijack the reference to GetQuestLogTitle(), and if the first return is nil, replace it with an empty string. The drawback would be that that risks breaking things that rely on checking whether or not it is nil.
I'll bug report it to Blizz once logged on.
The first one seems strange. Neither field should ever be nil, I will have to look into what's causing that.
The second error isn't really on my end, but rather on Blizzard's. The only thing I can do there is scan the questlog, and only call QuestLog_Update() if none of the entries return nil.
But really, they should encapsule that with a tostring() if it can return title as nil.
But I'll investigate the first part. It seems as though it somehow fails to create a uiobject for something, and inserts a nil entry in the containing table. Need to try to figure out why this would happen.
Alright, hacking GetQuestLogTitle() is a bad option, as it leads to infinite iterations or recurions somewhere. So I can't make that error completely go away, I can only take steps to ensure I won't take the blame for it.