1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-06-09 17:30:43 +00:00

code clean up

This commit is contained in:
M. Sz 2020-12-07 19:07:20 +01:00
parent 5c9d4a80e2
commit 1d5516c374

View File

@ -29,12 +29,11 @@ const (
const (
iconOffsetY = 88
questOffsetX, questOffsetY = 4, 4
q1SocketX, q1SocketY = 100, 95
q2SocketX, q2SocketY = 200, 95
q3SocketX, q3SocketY = 300, 95
q4SocketX, q4SocketY = 100, 190
q5SocketX, q5SocketY = 200, 190
q6SocketX, q6SocketY = 300, 190
socket1X = 100
socket2X = 200
socket3X = 300
socketUpY = 95
socketDownY = 190
)
const (
@ -46,8 +45,9 @@ const (
const (
questTabY = 66
questTabBaseX = 85
questTabXOffset = 58
questTabYOffset = 31
questTabBaseX = 86
questTabXOffset = 61
)
func (s *QuestLog) getPositionForSocket(number int) (x, y int) {
@ -55,12 +55,12 @@ func (s *QuestLog) getPositionForSocket(number int) (x, y int) {
x int
y int
}{
{q1SocketX, q1SocketY},
{q2SocketX, q2SocketY},
{q3SocketX, q3SocketY},
{q4SocketX, q4SocketY},
{q5SocketX, q5SocketY},
{q6SocketX, q6SocketY},
{socket1X, socketUpY},
{socket2X, socketUpY},
{socket3X, socketUpY},
{socket1X, socketDownY},
{socket2X, socketDownY},
{socket3X, socketDownY},
}
return pos[number].x, pos[number].y
@ -103,6 +103,12 @@ func NewQuestLog(asset *d2asset.AssetManager,
24: 0,
25: 0,
26: 0,
27: 0,
28: 0,
29: 0,
30: 0,
31: 0,
32: 1,
}
var quests [d2enum.ActsNumber]*d2ui.WidgetGroup
@ -110,19 +116,18 @@ func NewQuestLog(asset *d2asset.AssetManager,
quests[i] = ui.NewWidgetGroup(d2ui.RenderPriorityQuestLog)
}
var tabs [d2enum.ActsNumber]questLogTab
for i := 0; i < d2enum.ActsNumber; i++ {
tabs[i] = questLogTab{}
}
ql := &QuestLog{
asset: asset,
uiManager: ui,
originX: originX,
originY: originY,
act: act,
tab: [d2enum.ActsNumber]*questLogTab{
{},
{},
{},
{},
{},
},
asset: asset,
uiManager: ui,
originX: originX,
originY: originY,
act: act,
tab: tabs,
quests: quests,
questStatus: qs,
}
@ -144,7 +149,7 @@ type QuestLog struct {
selectedTab int
selectedQuest int
act int
tab [d2enum.ActsNumber]*questLogTab
tab [d2enum.ActsNumber]questLogTab
questName *d2ui.Label
questDescr *d2ui.Label
@ -175,7 +180,7 @@ const (
const questDescriptionLenght = 30
type questLogTab struct {
button *d2ui.Button
sprite *d2ui.Sprite
invisibleButton *d2ui.Button
}
@ -231,25 +236,33 @@ func (s *QuestLog) Load() {
}
func (s *QuestLog) loadTabs() {
var buttonTypes = []d2ui.ButtonType{
d2ui.ButtonTypeTab1,
d2ui.ButtonTypeTab2,
d2ui.ButtonTypeTab3,
d2ui.ButtonTypeTab4,
d2ui.ButtonTypeTab5,
d2ui.ButtonTypeTab1,
}
var err error
tabsResource := d2resource.WPTabs
for i := 0; i < d2enum.ActsNumber; i++ {
currentValue := i
s.tab[i].button = s.uiManager.NewButton(buttonTypes[i], "")
s.tab[i].button.SetPosition(questTabBaseX+i*questTabXOffset, questTabY)
s.tab[i].sprite, err = s.uiManager.NewSprite(tabsResource, d2resource.PaletteSky)
if err != nil {
s.Error(err.Error())
}
// nolint:gomnd // it's constant
frame := 2 * currentValue
err := s.tab[i].sprite.SetCurrentFrame(frame)
if err != nil {
s.Errorf("Tabs sprite (%s) hasn't frame %d. %s", tabsResource, frame, err.Error())
}
s.tab[i].sprite.SetPosition(questTabBaseX+i*questTabXOffset, questTabY+questTabYOffset)
s.tab[i].invisibleButton = s.uiManager.NewButton(d2ui.ButtonTypeTabBlank, "")
s.tab[i].invisibleButton.SetPosition(questTabBaseX+i*questTabXOffset, questTabY)
s.tab[i].invisibleButton.OnActivated(func() { s.setTab(currentValue) })
s.panelGroup.AddWidget(s.tab[i].button)
s.panelGroup.AddWidget(s.tab[i].sprite)
s.panelGroup.AddWidget(s.tab[i].invisibleButton)
}
@ -289,7 +302,7 @@ func (s *QuestLog) loadQuestIconsForAct(act int) *d2ui.WidgetGroup {
icon, err = s.makeQuestIconForAct(act, n)
if err != nil {
s.Fatal(err.Error())
s.Error(err.Error())
}
icon.SetPosition(x+questOffsetX, y+questOffsetY+iconOffsetY)
@ -330,9 +343,11 @@ func (s *QuestLog) loadQuestIconsForAct(act int) *d2ui.WidgetGroup {
}
func (s *QuestLog) makeQuestIconForAct(act, n int) (*d2ui.Sprite, error) {
icon, err := s.uiManager.NewSprite(s.questIconsTable(act, n), d2resource.PaletteSky)
iconResource := s.questIconsTable(act, n)
icon, err := s.uiManager.NewSprite(iconResource, d2resource.PaletteSky)
if err != nil {
s.Fatalf("during creating new quest icons for act %d. %s", act, err.Error())
s.Fatalf("during creating new quest icons for act %d (icon sprite %s doesn't exist). %s", act, iconResource, err.Error())
}
switch s.questStatus[s.cordsToQuestID(act, n)] {
@ -393,6 +408,8 @@ func (s *QuestLog) setQuestLabel() {
}
func (s *QuestLog) setTab(tab int) {
var mod int
s.selectedTab = tab
s.selectedQuest = d2enum.QuestNone
s.setQuestLabel()
@ -402,7 +419,18 @@ func (s *QuestLog) setTab(tab int) {
}
for i := 0; i < d2enum.ActsNumber; i++ {
s.tab[i].button.SetEnabled(i == tab)
cv := i
if cv == s.selectedTab {
mod = 0
} else {
mod = 1
}
err := s.tab[cv].sprite.SetCurrentFrame(2*cv + mod)
if err != nil {
s.Error(err.Error())
}
}
}