mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-10-01 15:46:17 -04:00
hotfix: fixed errors in quest log & code cleanup
This commit is contained in:
parent
96916863ff
commit
f02ccd86c4
@ -83,11 +83,12 @@ const (
|
|||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
tab1BaseFrame = 0
|
|
||||||
tab2BaseFrame = 2
|
tab1BaseFrame = iota * 2
|
||||||
tab3BaseFrame = 4
|
tab2BaseFrame
|
||||||
tab4BaseFrame = 6
|
tab3BaseFrame
|
||||||
tab5BaseFrame = 8
|
tab4BaseFrame
|
||||||
|
tab5BaseFrame
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
|
@ -209,7 +209,7 @@ func NewGameControls(
|
|||||||
inventoryRecord := asset.Records.Layout.Inventory[inventoryRecordKey]
|
inventoryRecord := asset.Records.Layout.Inventory[inventoryRecordKey]
|
||||||
|
|
||||||
heroStatsPanel := NewHeroStatsPanel(asset, ui, hero.Name(), hero.Class, l, hero.Stats)
|
heroStatsPanel := NewHeroStatsPanel(asset, ui, hero.Name(), hero.Class, l, hero.Stats)
|
||||||
questLog := NewQuestLog(asset, ui, l, 1) // need to be changed
|
questLog := NewQuestLog(asset, ui, l, hero.Act)
|
||||||
inventory := NewInventory(asset, ui, l, hero.Gold, inventoryRecord)
|
inventory := NewInventory(asset, ui, l, hero.Gold, inventoryRecord)
|
||||||
skilltree := newSkillTree(hero.Skills, hero.Class, asset, l, ui)
|
skilltree := newSkillTree(hero.Skills, hero.Class, asset, l, ui)
|
||||||
|
|
||||||
|
@ -77,11 +77,64 @@ const (
|
|||||||
questNone = 0
|
questNone = 0
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
func (s *QuestLog) questTable(act, number int) struct {
|
||||||
|
name string
|
||||||
|
numberOfDescrs int
|
||||||
|
status int
|
||||||
|
frame int
|
||||||
|
x int
|
||||||
|
y int
|
||||||
|
} {
|
||||||
|
var quests = []struct {
|
||||||
|
name string // name of quest in string table
|
||||||
|
numberOfDescrs int // number of possible descriptions (not used yet)
|
||||||
|
status int // status of quest (not used yet)
|
||||||
|
frame int // frame of quest
|
||||||
|
x, y int // position of quest
|
||||||
|
}{
|
||||||
|
{"qstsa1q1", 5, 0, 0, q1SocketX, q1SocketY},
|
||||||
|
{"qstsa1q2", 0, 0, 1, q2SocketX, q2SocketY},
|
||||||
|
{"qstsa1q3", 0, 0, 2, q3SocketX, q3SocketY},
|
||||||
|
{"qstsa1q4", 0, 0, 3, q4SocketX, q4SocketY},
|
||||||
|
{"qstsa1q5", 0, 0, 4, q5SocketX, q5SocketY},
|
||||||
|
{"qstsa1q6", 0, 0, 5, q6SocketX, q6SocketY},
|
||||||
|
{"qstsa2q1", 0, 0, 6, q1SocketX, q1SocketY},
|
||||||
|
{"qstsa2q2", 0, 0, 7, q2SocketX, q2SocketY},
|
||||||
|
{"qstsa2q3", 0, 0, 8, q3SocketX, q3SocketY},
|
||||||
|
{"qstsa2q4", 0, 0, 9, q4SocketX, q4SocketY},
|
||||||
|
{"qstsa2q5", 0, 0, 10, q5SocketX, q5SocketY},
|
||||||
|
{"qstsa2q6", 0, 0, 11, q6SocketX, q6SocketY},
|
||||||
|
{"qstsa3q1", 0, 0, 12, q1SocketX, q1SocketY},
|
||||||
|
{"qstsa3q2", 0, 0, 13, q2SocketX, q2SocketY},
|
||||||
|
{"qstsa3q3", 0, 0, 14, q3SocketX, q3SocketY},
|
||||||
|
{"qstsa3q4", 0, 0, 15, q4SocketX, q4SocketY},
|
||||||
|
{"qstsa3q5", 0, 0, 16, q5SocketX, q5SocketY},
|
||||||
|
{"qstsa3q6", 0, 0, 17, q6SocketX, q6SocketY},
|
||||||
|
{"qstsa4q1", 0, 0, 18, q1SocketX, q1SocketY},
|
||||||
|
{"qstsa4q2", 0, 0, 19, q2SocketX, q2SocketY},
|
||||||
|
{"qstsa4q3", 0, 0, 20, q3SocketX, q3SocketY},
|
||||||
|
{"qstsa5q1", 0, 0, 21, q1SocketX, q1SocketY},
|
||||||
|
{"qstsa5q2", 0, 0, 22, q2SocketX, q2SocketY},
|
||||||
|
{"qstsa5q3", 0, 0, 23, q3SocketX, q3SocketY},
|
||||||
|
{"qstsa5q4", 0, 0, 24, q4SocketX, q4SocketY},
|
||||||
|
{"qstsa5q5", 0, 0, 25, q5SocketX, q5SocketY},
|
||||||
|
{"qstsa5q6", 0, 0, 26, q6SocketX, q6SocketY},
|
||||||
|
}
|
||||||
|
|
||||||
|
key := (act-1)*normalActQuestsNumber + number
|
||||||
|
if act > act4 {
|
||||||
|
key -= act4QuestsNumber
|
||||||
|
}
|
||||||
|
|
||||||
|
return quests[key]
|
||||||
|
}
|
||||||
|
|
||||||
// NewQuestLog creates a new quest log
|
// NewQuestLog creates a new quest log
|
||||||
func NewQuestLog(asset *d2asset.AssetManager,
|
func NewQuestLog(asset *d2asset.AssetManager,
|
||||||
ui *d2ui.UIManager,
|
ui *d2ui.UIManager,
|
||||||
act int,
|
l d2util.LogLevel,
|
||||||
l d2util.LogLevel) *QuestLog {
|
act int) *QuestLog {
|
||||||
originX := 0
|
originX := 0
|
||||||
originY := 0
|
originY := 0
|
||||||
|
|
||||||
@ -98,7 +151,6 @@ func NewQuestLog(asset *d2asset.AssetManager,
|
|||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
},
|
},
|
||||||
selectedQuest: 1,
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ql.Logger = d2util.NewLogger()
|
ql.Logger = d2util.NewLogger()
|
||||||
@ -193,56 +245,33 @@ func (s *QuestLog) Load() {
|
|||||||
s.panelGroup.SetVisible(false)
|
s.panelGroup.SetVisible(false)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *QuestLog) questTable(act, number int) struct {
|
func (s *QuestLog) loadTabs() {
|
||||||
name string
|
s.tab[questLogTab1].newTab(s.uiManager, d2ui.ButtonTypeTab1, questTab1X)
|
||||||
numberOfDescrs int
|
s.tab[questLogTab1].invisibleButton.OnActivated(func() { s.setTab(questLogTab1) })
|
||||||
status int
|
s.panelGroup.AddWidget(s.tab[questLogTab1].button)
|
||||||
frame int
|
s.panelGroup.AddWidget(s.tab[questLogTab1].invisibleButton)
|
||||||
x int
|
|
||||||
y int
|
|
||||||
} {
|
|
||||||
var quests = []struct {
|
|
||||||
name string // name of quest in string table
|
|
||||||
numberOfDescrs int // number of possible descriptions (not used yet)
|
|
||||||
status int // status of quest (not used yet)
|
|
||||||
frame int // frame of quest
|
|
||||||
x, y int // position of quest
|
|
||||||
}{
|
|
||||||
{"qstsa1q1", 5, 0, 0, q1SocketX, q1SocketY},
|
|
||||||
{"qstsa1q2", 0, 0, 1, q2SocketX, q2SocketY},
|
|
||||||
{"qstsa1q3", 0, 0, 2, q3SocketX, q3SocketY},
|
|
||||||
{"qstsa1q4", 0, 0, 3, q4SocketX, q4SocketY},
|
|
||||||
{"qstsa1q5", 0, 0, 4, q5SocketX, q5SocketY},
|
|
||||||
{"qstsa1q6", 0, 0, 5, q6SocketX, q6SocketY},
|
|
||||||
{"qstsa2q1", 0, 0, 6, q1SocketX, q1SocketY},
|
|
||||||
{"qstsa2q2", 0, 0, 7, q2SocketX, q2SocketY},
|
|
||||||
{"qstsa2q3", 0, 0, 8, q3SocketX, q3SocketY},
|
|
||||||
{"qstsa2q4", 0, 0, 9, q4SocketX, q4SocketY},
|
|
||||||
{"qstsa2q5", 0, 0, 10, q5SocketX, q5SocketY},
|
|
||||||
{"qstsa2q6", 0, 0, 11, q6SocketX, q6SocketY},
|
|
||||||
{"qstsa3q1", 0, 0, 12, q1SocketX, q1SocketY},
|
|
||||||
{"qstsa3q2", 0, 0, 13, q2SocketX, q2SocketY},
|
|
||||||
{"qstsa3q3", 0, 0, 14, q3SocketX, q3SocketY},
|
|
||||||
{"qstsa3q4", 0, 0, 15, q4SocketX, q4SocketY},
|
|
||||||
{"qstsa3q5", 0, 0, 16, q5SocketX, q5SocketY},
|
|
||||||
{"qstsa3q6", 0, 0, 17, q6SocketX, q6SocketY},
|
|
||||||
{"qstsa4q1", 0, 0, 18, q1SocketX, q1SocketY},
|
|
||||||
{"qstsa4q2", 0, 0, 19, q2SocketX, q2SocketY},
|
|
||||||
{"qstsa4q3", 0, 0, 20, q3SocketX, q3SocketY},
|
|
||||||
{"qstsa5q1", 0, 0, 21, q1SocketX, q1SocketY},
|
|
||||||
{"qstsa5q2", 0, 0, 22, q2SocketX, q2SocketY},
|
|
||||||
{"qstsa5q3", 0, 0, 23, q3SocketX, q3SocketY},
|
|
||||||
{"qstsa5q4", 0, 0, 24, q4SocketX, q4SocketY},
|
|
||||||
{"qstsa5q5", 0, 0, 25, q5SocketX, q5SocketY},
|
|
||||||
{"qstsa5q6", 0, 0, 26, q6SocketX, q6SocketY},
|
|
||||||
}
|
|
||||||
|
|
||||||
key := (act-1)*normalActQuestsNumber + number
|
s.tab[questLogTab2].newTab(s.uiManager, d2ui.ButtonTypeTab2, questTab2X)
|
||||||
if act > act4 {
|
s.tab[questLogTab2].invisibleButton.OnActivated(func() { s.setTab(questLogTab2) })
|
||||||
key -= act4QuestsNumber
|
s.panelGroup.AddWidget(s.tab[questLogTab2].button)
|
||||||
}
|
s.panelGroup.AddWidget(s.tab[questLogTab2].invisibleButton)
|
||||||
|
|
||||||
return quests[key]
|
s.tab[questLogTab3].newTab(s.uiManager, d2ui.ButtonTypeTab3, questTab3X)
|
||||||
|
s.tab[questLogTab3].invisibleButton.OnActivated(func() { s.setTab(questLogTab3) })
|
||||||
|
s.panelGroup.AddWidget(s.tab[questLogTab3].button)
|
||||||
|
s.panelGroup.AddWidget(s.tab[questLogTab3].invisibleButton)
|
||||||
|
|
||||||
|
s.tab[questLogTab4].newTab(s.uiManager, d2ui.ButtonTypeTab4, questTab4X)
|
||||||
|
s.tab[questLogTab4].invisibleButton.OnActivated(func() { s.setTab(questLogTab4) })
|
||||||
|
s.panelGroup.AddWidget(s.tab[questLogTab4].button)
|
||||||
|
s.panelGroup.AddWidget(s.tab[questLogTab4].invisibleButton)
|
||||||
|
|
||||||
|
s.tab[questLogTab5].newTab(s.uiManager, d2ui.ButtonTypeTab5, questTab5X)
|
||||||
|
s.tab[questLogTab5].invisibleButton.OnActivated(func() { s.setTab(questLogTab5) })
|
||||||
|
s.panelGroup.AddWidget(s.tab[questLogTab5].button)
|
||||||
|
s.panelGroup.AddWidget(s.tab[questLogTab5].invisibleButton)
|
||||||
|
|
||||||
|
s.setTab(s.act - 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *QuestLog) loadQuestIcons() {
|
func (s *QuestLog) loadQuestIcons() {
|
||||||
@ -253,12 +282,6 @@ func (s *QuestLog) loadQuestIcons() {
|
|||||||
s.questsa5 = s.loadQuestIconsForAct(act5)
|
s.questsa5 = s.loadQuestIconsForAct(act5)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *QuestLog) makeQuestCallback(n int) func() {
|
|
||||||
return func() {
|
|
||||||
s.onQuestClicked(n + 1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *QuestLog) loadQuestIconsForAct(act int) *d2ui.WidgetGroup {
|
func (s *QuestLog) loadQuestIconsForAct(act int) *d2ui.WidgetGroup {
|
||||||
wg := s.uiManager.NewWidgetGroup(d2ui.RenderPriorityQuestLog)
|
wg := s.uiManager.NewWidgetGroup(d2ui.RenderPriorityQuestLog)
|
||||||
|
|
||||||
@ -304,7 +327,14 @@ func (s *QuestLog) loadQuestIconsForAct(act int) *d2ui.WidgetGroup {
|
|||||||
return wg
|
return wg
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *QuestLog) loadQuestLabels() {
|
|
||||||
|
func (s *QuestLog) makeQuestCallback(n int) func() {
|
||||||
|
return func() {
|
||||||
|
s.onQuestClicked(n + 1)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (s *QuestLog) setQuestLabels() {
|
||||||
if s.selectedQuest == 0 {
|
if s.selectedQuest == 0 {
|
||||||
s.questName.SetText("")
|
s.questName.SetText("")
|
||||||
return
|
return
|
||||||
@ -313,39 +343,10 @@ func (s *QuestLog) loadQuestLabels() {
|
|||||||
s.questName.SetText(s.asset.TranslateString(fmt.Sprintf("qstsa%dq%d", s.selectedTab+1, s.selectedQuest)))
|
s.questName.SetText(s.asset.TranslateString(fmt.Sprintf("qstsa%dq%d", s.selectedTab+1, s.selectedQuest)))
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s *QuestLog) loadTabs() {
|
|
||||||
s.tab[questLogTab1].newTab(s.uiManager, d2ui.ButtonTypeTab1, questTab1X)
|
|
||||||
s.tab[questLogTab1].invisibleButton.OnActivated(func() { s.setTab(questLogTab1) })
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab1].button)
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab1].invisibleButton)
|
|
||||||
|
|
||||||
s.tab[questLogTab2].newTab(s.uiManager, d2ui.ButtonTypeTab2, questTab2X)
|
|
||||||
s.tab[questLogTab2].invisibleButton.OnActivated(func() { s.setTab(questLogTab2) })
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab2].button)
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab2].invisibleButton)
|
|
||||||
|
|
||||||
s.tab[questLogTab3].newTab(s.uiManager, d2ui.ButtonTypeTab3, questTab3X)
|
|
||||||
s.tab[questLogTab3].invisibleButton.OnActivated(func() { s.setTab(questLogTab3) })
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab3].button)
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab3].invisibleButton)
|
|
||||||
|
|
||||||
s.tab[questLogTab4].newTab(s.uiManager, d2ui.ButtonTypeTab4, questTab4X)
|
|
||||||
s.tab[questLogTab4].invisibleButton.OnActivated(func() { s.setTab(questLogTab4) })
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab4].button)
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab4].invisibleButton)
|
|
||||||
|
|
||||||
s.tab[questLogTab5].newTab(s.uiManager, d2ui.ButtonTypeTab5, questTab5X)
|
|
||||||
s.tab[questLogTab5].invisibleButton.OnActivated(func() { s.setTab(questLogTab5) })
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab5].button)
|
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab5].invisibleButton)
|
|
||||||
|
|
||||||
s.setTab(s.act - 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func (s *QuestLog) setTab(tab int) {
|
func (s *QuestLog) setTab(tab int) {
|
||||||
s.selectedTab = tab
|
s.selectedTab = tab
|
||||||
s.selectedQuest = questNone
|
s.selectedQuest = questNone
|
||||||
s.loadQuestLabels()
|
s.setQuestLabels()
|
||||||
|
|
||||||
s.questsa1.SetVisible(tab == questLogTab1)
|
s.questsa1.SetVisible(tab == questLogTab1)
|
||||||
s.questsa2.SetVisible(tab == questLogTab2)
|
s.questsa2.SetVisible(tab == questLogTab2)
|
||||||
@ -360,7 +361,7 @@ func (s *QuestLog) setTab(tab int) {
|
|||||||
|
|
||||||
func (s *QuestLog) onQuestClicked(number int) {
|
func (s *QuestLog) onQuestClicked(number int) {
|
||||||
s.selectedQuest = number
|
s.selectedQuest = number
|
||||||
s.loadQuestLabels()
|
s.setQuestLabels()
|
||||||
s.Infof("Quest number %d in tab %d clicked", number, s.selectedTab)
|
s.Infof("Quest number %d in tab %d clicked", number, s.selectedTab)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user