Azeroth-Pilot-Reloaded / azeroth-pilot-reloaded

Azeroth Pilot Reloaded
GNU General Public License v3.0
29 stars 10 forks source link

[ISSUE] - Gossip frame autoselects are bugged due to API change in 10.0.7 #127

Closed Pahonix closed 1 year ago

Pahonix commented 1 year ago

Description

It looks like a change in the API in 10.0.7 is leading to a lua error on autoselects when player is presented with a gossip frame.

See https://wowpedia.fandom.com/wiki/Patch_10.0.7/API_changes

| 10.0.5 (47825) → 10.0.7 (47983) Feb 5 2023 | ADDED | ... | C_GossipInfo.SelectOptionByIndex

GossipOptionUIInfo
  # 1: gossipOptionID, Nilable: false -> true

If I don't let it autoaccept by holding Control and manually selecting the gossip option, it does not produce a LUA error.

APR Version

APR 2.2.0

APR Route

Speedrun

World of Warcraft Flavor

Retail (Default)

Tested with only APR

Lua Error

5x FrameXML/GossipFrameShared.lua:268: attempt to call method 'SelectOptionByIndex' (a nil value)
[string "@FrameXML/GossipFrameShared.lua"]:268: in function `SelectGossipOption'
[string "@APR-Core/QuestHandler.lua"]:3336: in function <APR-Core/QuestHandler.lua:3058>

Locals:
index = 1
(*temporary) = nil
(*temporary) = GossipFrame {
 0 = <userdata>
 SetPortraitShown = <function> defined @SharedXML/PortraitFrame.lua:102
 GetTitleText = <function> defined @SharedXML/PortraitFrame.lua:28
 gossipOptions = <table> {
 }
 SetPortraitTexCoord = <function> defined @SharedXML/PortraitFrame.lua:98
 tutorialButtons = <table> {
 }
 SetPortraitTextureRaw = <function> defined @SharedXML/PortraitFrame.lua:84
 OnShow = <function> defined @FrameXML/GossipFrameShared.lua:149
 hasActiveQuests = true
 buttons = <table> {
 }
 AvailableQuestButtonInit = <function> defined @FrameXML/GossipFrameShared.lua:102
 SetTitleMaxLinesAndHeight = <function> defined @SharedXML/PortraitFrame.lua:49
 SetTitleColor = <function> defined @SharedXML/PortraitFrame.lua:32
 SetPoint = <function> defined =[C]:-1
 backdrop = Frame {
 }
 Update = <function> defined @FrameXML/GossipFrameShared.lua:208
 FriendshipStatusBar = StatusBar {
 }
 GreetingPanel = Frame {
 }
 SetTitle = <function> defined @SharedXML/PortraitFrame.lua:36
 OnEvent = <function> defined @FrameXML/GossipFrame.lua:81
 SetTitleOffsets = <function> defined @SharedXML/PortraitFrame.lua:54
 Inset = GossipFrameInset {
 }
 CloseButton = GossipFrameCloseButton {
 }
 TopTileStreaks = Texture {
 }
 SetGossipTitle = <function> defined @FrameXML/GossipFrameShared.lua:261
 SetBorder = <function> defined @SharedXML/PortraitFrame.lua:67
 layoutType = "PortraitFrameTemplate"
 TitleContainer = Frame {
 }
 PortraitContainer = Frame {
 }
 SetFrameLevelsFromBaseLevel = <function> defined @SharedXML/PortraitFrame.lua:120
 SetPortraitToBag = <function> defined @SharedXML/PortraitFrame.lua:80
 SetPortraitAtlasRaw = <function> defined @SharedXML/PortraitFrame.lua:88
 SetPortraitToUnit = <function> defined @SharedXML/PortraitFrame.lua:76
 Background = Texture {
 }
 Bg = GossipFrameBg {
 }
 SetTitleFormatted = <function> defined @SharedXML/PortraitFrame.lua:40
 GetPortrait = <function> defined @SharedXML/PortraitFrame.lua:63
 UpdateScrollBox = <function> defined @FrameXML/GossipFrameShared.lua:109
 NineSlice = Frame {
 }
 OnLoad = <function> defined @FrameXML/GossipFrame.lua:56
 OnHide = <function> defined @FrameXML/GossipFrameShared.lua:156
 SetPortraitToAsset = <function> defined @SharedXML/PortraitFrame.lua:72
 SetPortraitTextureSizeAndOffset = <function> defined @SharedXML/PortraitFrame.lua:106
 HandleShow = <function> defined =[C]:-1
 SortOrder = <function> defined @FrameXML/GossipFrame.lua:97
 SelectGossipOption = <function> defined @FrameXML/GossipFrameShared.lua:191
 HandleHide = <function> defined @FrameXML/GossipFrameShared.lua:186
 GetTutorialButtons = <function> defined @FrameXML/GossipFrame.lua:93
 SetGossipTutorialMode = <function> defined @FrameXML/GossipFrame.lua:87
 GetBackgroundTexture = <function> defined @FrameXML/GossipFrame.lua:70
 SetPortraitToClassIcon = <function> defined @SharedXML/PortraitFrame.lua:92
}
(*temporary) = 1
(*temporary) = "attempt to call method 'SelectOptionByIndex' (a nil value)"

Reproduction Steps

  1. Speak to an NPC that has a gossip option or a quest pickup/turnin where the frame uses a gossip frame
  2. Receive LUA error

Last Good Version

APR 2.1.2

Screenshots

image

Any additional information?

No response