mirror of
https://github.com/OpenDiablo2/OpenDiablo2
synced 2025-02-05 08:07:51 -05:00
* camera offset for ui panels : added maprenderer viewport to be aligned left or right calling alignement on keyPress in game_controls * check if already aligned * fix bugs -forgot to assign alignement -defaultScreenRect instead of screenRect because of issue mentionned in original comment * remove config.json and replace go.mod line * update with new renderer and escape menu
This commit is contained in:
parent
95621a8262
commit
711cae2d69
@ -352,3 +352,15 @@ func loadPaletteForAct(levelType d2enum.RegionIdType) (*d2dat.DATPalette, error)
|
||||
|
||||
return d2asset.LoadPalette(palettePath)
|
||||
}
|
||||
|
||||
func (mr *MapRenderer) ViewportToLeft() {
|
||||
mr.viewport.toLeft()
|
||||
}
|
||||
|
||||
func (mr *MapRenderer) ViewportToRight() {
|
||||
mr.viewport.toRight()
|
||||
}
|
||||
|
||||
func (mr *MapRenderer) ViewportDefault() {
|
||||
mr.viewport.resetAlign()
|
||||
}
|
||||
|
@ -100,6 +100,7 @@ func (g *GameControls) OnKeyDown(event d2input.KeyEvent) bool {
|
||||
if g.inventory.IsOpen() || g.heroStats.IsOpen() {
|
||||
g.inventory.Close()
|
||||
g.heroStats.Close()
|
||||
g.updateLayout()
|
||||
break
|
||||
}
|
||||
g.escapeMenu.Toggle()
|
||||
@ -111,8 +112,10 @@ func (g *GameControls) OnKeyDown(event d2input.KeyEvent) bool {
|
||||
g.escapeMenu.OnEnterKey()
|
||||
case d2input.KeyI:
|
||||
g.inventory.Toggle()
|
||||
g.updateLayout()
|
||||
case d2input.KeyC:
|
||||
g.heroStats.Toggle()
|
||||
g.updateLayout()
|
||||
default:
|
||||
return false
|
||||
}
|
||||
@ -190,6 +193,23 @@ func (g *GameControls) Advance(elapsed float64) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
func (g *GameControls) updateLayout() {
|
||||
isRightPanelOpen := false
|
||||
isLeftPanelOpen := false
|
||||
|
||||
// todo : add same logic when adding quest log and skill tree
|
||||
isRightPanelOpen = g.inventory.isOpen || isRightPanelOpen
|
||||
isLeftPanelOpen = g.heroStats.isOpen || isLeftPanelOpen
|
||||
|
||||
if isRightPanelOpen == isLeftPanelOpen {
|
||||
g.mapRenderer.ViewportDefault()
|
||||
} else if isRightPanelOpen == true {
|
||||
g.mapRenderer.ViewportToLeft()
|
||||
} else {
|
||||
g.mapRenderer.ViewportToRight()
|
||||
}
|
||||
}
|
||||
|
||||
// TODO: consider caching the panels to single image that is reused.
|
||||
func (g *GameControls) Render(target d2render.Surface) {
|
||||
g.inventory.Render(target)
|
||||
|
Loading…
Reference in New Issue
Block a user