mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2024-09-27 21:56:19 -04:00
moved max quests acts to d2enum
This commit is contained in:
parent
ed89d91ae4
commit
dffa8ff865
@ -23,9 +23,6 @@ const (
|
|||||||
Act5
|
Act5
|
||||||
)
|
)
|
||||||
|
|
||||||
// ActsWithHalfQuestNumber is act, where is half quest number (act4)
|
|
||||||
const ActsWithHalfQuestNumber = Act4
|
|
||||||
|
|
||||||
/* I think, It should looks like that:
|
/* I think, It should looks like that:
|
||||||
each quest has its own position in questStatus map
|
each quest has its own position in questStatus map
|
||||||
which should come from save file.
|
which should come from save file.
|
||||||
|
@ -54,15 +54,6 @@ const (
|
|||||||
questTab5X = 317
|
questTab5X = 317
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
|
||||||
questLogTab1 = iota
|
|
||||||
questLogTab2
|
|
||||||
questLogTab3
|
|
||||||
questLogTab4
|
|
||||||
questLogTab5
|
|
||||||
questLogNumTabs
|
|
||||||
)
|
|
||||||
|
|
||||||
func (s *QuestLog) getPositionForSocket(number int) (x, y int) {
|
func (s *QuestLog) getPositionForSocket(number int) (x, y int) {
|
||||||
pos := []struct {
|
pos := []struct {
|
||||||
x int
|
x int
|
||||||
@ -129,7 +120,7 @@ func NewQuestLog(asset *d2asset.AssetManager,
|
|||||||
originX: originX,
|
originX: originX,
|
||||||
originY: originY,
|
originY: originY,
|
||||||
act: act,
|
act: act,
|
||||||
tab: [questLogNumTabs]*questLogTab{
|
tab: [d2enum.ActsNumber]*questLogTab{
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
{},
|
{},
|
||||||
@ -157,11 +148,11 @@ type QuestLog struct {
|
|||||||
selectedTab int
|
selectedTab int
|
||||||
selectedQuest int
|
selectedQuest int
|
||||||
act int
|
act int
|
||||||
tab [questLogNumTabs]*questLogTab
|
tab [d2enum.ActsNumber]*questLogTab
|
||||||
|
|
||||||
questName *d2ui.Label
|
questName *d2ui.Label
|
||||||
questDescr *d2ui.Label
|
questDescr *d2ui.Label
|
||||||
quests [5]*d2ui.WidgetGroup
|
quests [d2enum.ActsNumber]*d2ui.WidgetGroup
|
||||||
questStatus map[int]int
|
questStatus map[int]int
|
||||||
|
|
||||||
originX int
|
originX int
|
||||||
@ -243,7 +234,7 @@ func (s *QuestLog) Load() {
|
|||||||
|
|
||||||
s.loadTabs()
|
s.loadTabs()
|
||||||
|
|
||||||
for i := 0; i < 5; i++ {
|
for i := 0; i < d2enum.ActsNumber; i++ {
|
||||||
s.quests[i] = s.loadQuestIconsForAct(i + 1)
|
s.quests[i] = s.loadQuestIconsForAct(i + 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -251,30 +242,24 @@ func (s *QuestLog) Load() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (s *QuestLog) loadTabs() {
|
func (s *QuestLog) loadTabs() {
|
||||||
s.tab[questLogTab1].newTab(s.uiManager, d2ui.ButtonTypeTab1, questTab1X)
|
var buttonTypes = []struct {
|
||||||
s.tab[questLogTab1].invisibleButton.OnActivated(func() { s.setTab(questLogTab1) })
|
bt d2ui.ButtonType
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab1].button)
|
x int
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab1].invisibleButton)
|
}{
|
||||||
|
{d2ui.ButtonTypeTab1, questTab1X},
|
||||||
|
{d2ui.ButtonTypeTab2, questTab2X},
|
||||||
|
{d2ui.ButtonTypeTab3, questTab3X},
|
||||||
|
{d2ui.ButtonTypeTab4, questTab4X},
|
||||||
|
{d2ui.ButtonTypeTab5, questTab5X},
|
||||||
|
}
|
||||||
|
|
||||||
s.tab[questLogTab2].newTab(s.uiManager, d2ui.ButtonTypeTab2, questTab2X)
|
for i := 0; i < d2enum.ActsNumber; i++ {
|
||||||
s.tab[questLogTab2].invisibleButton.OnActivated(func() { s.setTab(questLogTab2) })
|
currentValue := i
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab2].button)
|
s.tab[i].newTab(s.uiManager, buttonTypes[i].bt, buttonTypes[i].x)
|
||||||
s.panelGroup.AddWidget(s.tab[questLogTab2].invisibleButton)
|
s.tab[i].invisibleButton.OnActivated(func() { s.setTab(currentValue) })
|
||||||
|
s.panelGroup.AddWidget(s.tab[i].button)
|
||||||
s.tab[questLogTab3].newTab(s.uiManager, d2ui.ButtonTypeTab3, questTab3X)
|
s.panelGroup.AddWidget(s.tab[i].invisibleButton)
|
||||||
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)
|
s.setTab(s.act - 1)
|
||||||
}
|
}
|
||||||
@ -310,31 +295,7 @@ func (s *QuestLog) loadQuestIconsForAct(act int) *d2ui.WidgetGroup {
|
|||||||
button.SetPosition(x+questOffsetX, y+questOffsetY)
|
button.SetPosition(x+questOffsetX, y+questOffsetY)
|
||||||
buttons = append(buttons, button)
|
buttons = append(buttons, button)
|
||||||
|
|
||||||
icon, err = s.uiManager.NewSprite(s.questIconsTable(act, n), d2resource.PaletteSky)
|
icon, err = s.makeQuestIconForAct(act, n)
|
||||||
if err != nil {
|
|
||||||
s.Error(err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
switch s.questStatus[s.cordsToQuestID(act, n)] {
|
|
||||||
case d2enum.QuestStatusCompleted:
|
|
||||||
err = icon.SetCurrentFrame(completedFrame)
|
|
||||||
case d2enum.QuestStatusCompleting:
|
|
||||||
// that's not complet now
|
|
||||||
err = icon.SetCurrentFrame(0)
|
|
||||||
if err != nil {
|
|
||||||
s.Error(err.Error())
|
|
||||||
}
|
|
||||||
|
|
||||||
icon.PlayForward()
|
|
||||||
icon.SetPlayLoop(false)
|
|
||||||
err = icon.SetCurrentFrame(completedFrame)
|
|
||||||
s.questStatus[s.cordsToQuestID(act, n)] = d2enum.QuestStatusCompleted
|
|
||||||
case d2enum.QuestStatusNotStarted:
|
|
||||||
err = icon.SetCurrentFrame(notStartedFrame)
|
|
||||||
default:
|
|
||||||
err = icon.SetCurrentFrame(inProgresFrame)
|
|
||||||
}
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
s.Error(err.Error())
|
s.Error(err.Error())
|
||||||
}
|
}
|
||||||
@ -376,6 +337,35 @@ func (s *QuestLog) loadQuestIconsForAct(act int) *d2ui.WidgetGroup {
|
|||||||
return wg
|
return wg
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (s *QuestLog) makeQuestIconForAct(act, n int) (*d2ui.Sprite, error) {
|
||||||
|
icon, err := s.uiManager.NewSprite(s.questIconsTable(act, n), d2resource.PaletteSky)
|
||||||
|
if err != nil {
|
||||||
|
s.Error(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
switch s.questStatus[s.cordsToQuestID(act, n)] {
|
||||||
|
case d2enum.QuestStatusCompleted:
|
||||||
|
err = icon.SetCurrentFrame(completedFrame)
|
||||||
|
case d2enum.QuestStatusCompleting:
|
||||||
|
// that's not complet now
|
||||||
|
err = icon.SetCurrentFrame(0)
|
||||||
|
if err != nil {
|
||||||
|
s.Error(err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
icon.PlayForward()
|
||||||
|
icon.SetPlayLoop(false)
|
||||||
|
err = icon.SetCurrentFrame(completedFrame)
|
||||||
|
s.questStatus[s.cordsToQuestID(act, n)] = d2enum.QuestStatusCompleted
|
||||||
|
case d2enum.QuestStatusNotStarted:
|
||||||
|
err = icon.SetCurrentFrame(notStartedFrame)
|
||||||
|
default:
|
||||||
|
err = icon.SetCurrentFrame(inProgresFrame)
|
||||||
|
}
|
||||||
|
|
||||||
|
return icon, err
|
||||||
|
}
|
||||||
|
|
||||||
func (s *QuestLog) setQuestLabel() {
|
func (s *QuestLog) setQuestLabel() {
|
||||||
if s.selectedQuest == 0 {
|
if s.selectedQuest == 0 {
|
||||||
s.questName.SetText("")
|
s.questName.SetText("")
|
||||||
@ -419,7 +409,7 @@ func (s *QuestLog) setTab(tab int) {
|
|||||||
s.quests[i].SetVisible(tab == i)
|
s.quests[i].SetVisible(tab == i)
|
||||||
}
|
}
|
||||||
|
|
||||||
for i := 0; i < questLogNumTabs; i++ {
|
for i := 0; i < d2enum.ActsNumber; i++ {
|
||||||
s.tab[i].button.SetEnabled(i == tab)
|
s.tab[i].button.SetEnabled(i == tab)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user