1
1
mirror of https://github.com/OpenDiablo2/OpenDiablo2 synced 2024-09-27 13:46:00 -04:00

Merge pull request #966 from gucio321/hotfix

hotfix: helpOverlay hotkeys
This commit is contained in:
Tim Sarbin 2020-12-12 13:31:56 -05:00 committed by GitHub
commit 469e4fa735
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 68 additions and 42 deletions

View File

@ -943,9 +943,14 @@ func (a *App) ToCreateGame(filePath string, connType d2clientconnectiontype.Clie
fmt.Println(errorMessage) fmt.Println(errorMessage)
a.ToMainMenu(errorMessage) a.ToMainMenu(errorMessage)
} else { } else {
a.screen.SetNextScreen(d2gamescreen.CreateGame( game, err := d2gamescreen.CreateGame(
a, a.asset, a.ui, a.renderer, a.inputManager, a.audio, gameClient, a.terminal, a.config.LogLevel, a.guiManager, a, a.asset, a.ui, a.renderer, a.inputManager, a.audio, gameClient, a.terminal, a.config.LogLevel, a.guiManager,
)) )
if err != nil {
a.Error(err.Error())
}
a.screen.SetNextScreen(game)
} }
} }

View File

@ -419,9 +419,17 @@ var testAssetManager *d2asset.AssetManager
var testItemFactory *ItemFactory var testItemFactory *ItemFactory
func TestSetup(t *testing.T) { func TestSetup(t *testing.T) {
var err error
testAssetManager = &d2asset.AssetManager{} testAssetManager = &d2asset.AssetManager{}
testAssetManager.Records = &d2records.RecordManager{} testAssetManager.Records = &d2records.RecordManager{}
testItemFactory, _ = NewItemFactory(testAssetManager)
testItemFactory, err = NewItemFactory(testAssetManager)
if err != nil {
t.Error(err)
return
}
testAssetManager.Records.Item.Stats = itemStatCosts testAssetManager.Records.Item.Stats = itemStatCosts
testAssetManager.Records.Character.Stats = charStats testAssetManager.Records.Character.Stats = charStats
testAssetManager.Records.Skill.Details = skillDetails testAssetManager.Records.Skill.Details = skillDetails

View File

@ -1,6 +1,7 @@
package d2gamescreen package d2gamescreen
import ( import (
"errors"
"fmt" "fmt"
"image/color" "image/color"
@ -47,7 +48,7 @@ func CreateGame(
term d2interface.Terminal, term d2interface.Terminal,
l d2util.LogLevel, l d2util.LogLevel,
guiManager *d2gui.GuiManager, guiManager *d2gui.GuiManager,
) *Game { ) (*Game, error) {
// find the local player and its initial location // find the local player and its initial location
var startX, startY float64 var startX, startY float64
@ -93,10 +94,10 @@ func CreateGame(
game.escapeMenu.OnLoad() game.escapeMenu.OnLoad()
if err := inputManager.BindHandler(game.escapeMenu); err != nil { if err := inputManager.BindHandler(game.escapeMenu); err != nil {
game.Error("failed to add gameplay screen as event handler") return nil, errors.New("failed to add gameplay screen as event handler")
} }
return game return game, nil
} }
// Game represents the Gameplay screen // Game represents the Gameplay screen
@ -303,7 +304,7 @@ func (v *Game) bindGameControls() error {
var err error var err error
v.gameControls, err = d2player.NewGameControls(v.asset, v.renderer, player, v.gameClient.MapEngine, v.gameControls, err = d2player.NewGameControls(v.asset, v.renderer, player, v.gameClient.MapEngine,
v.escapeMenu, v.mapRenderer, v, v.terminal, v.uiManager, v.guiManager, v.keyMap, v.logLevel, v.gameClient.IsSinglePlayer()) v.escapeMenu, v.mapRenderer, v, v.terminal, v.uiManager, v.keyMap, v.logLevel, v.gameClient.IsSinglePlayer())
if err != nil { if err != nil {
return err return err

View File

@ -10,7 +10,6 @@ import (
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum" "github.com/OpenDiablo2/OpenDiablo2/d2common/d2enum"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2math/d2vector" "github.com/OpenDiablo2/OpenDiablo2/d2common/d2math/d2vector"
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2gui"
"github.com/OpenDiablo2/OpenDiablo2/d2core/d2hero" "github.com/OpenDiablo2/OpenDiablo2/d2core/d2hero"
"github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface" "github.com/OpenDiablo2/OpenDiablo2/d2common/d2interface"
@ -124,7 +123,6 @@ func NewGameControls(
inputListener inputCallbackListener, inputListener inputCallbackListener,
term d2interface.Terminal, term d2interface.Terminal,
ui *d2ui.UIManager, ui *d2ui.UIManager,
guiManager *d2gui.GuiManager,
keyMap *KeyMap, keyMap *KeyMap,
l d2util.LogLevel, l d2util.LogLevel,
isSinglePlayer bool, isSinglePlayer bool,
@ -210,7 +208,12 @@ func NewGameControls(
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, hero.Act) questLog := NewQuestLog(asset, ui, l, hero.Act)
inventory := NewInventory(asset, ui, l, hero.Gold, inventoryRecord)
inventory, err := NewInventory(asset, ui, l, hero.Gold, inventoryRecord)
if err != nil {
return nil, err
}
skilltree := newSkillTree(hero.Skills, hero.Class, asset, l, ui) skilltree := newSkillTree(hero.Skills, hero.Class, asset, l, ui)
miniPanel := newMiniPanel(asset, ui, l, isSinglePlayer) miniPanel := newMiniPanel(asset, ui, l, isSinglePlayer)
@ -405,10 +408,7 @@ func (g *GameControls) OnKeyDown(event d2interface.KeyEvent) bool {
case d2enum.HoldRun: case d2enum.HoldRun:
g.hud.onToggleRunButton(true) g.hud.onToggleRunButton(true)
case d2enum.ToggleHelpScreen: case d2enum.ToggleHelpScreen:
g.hud.miniPanel.openDisabled() g.toggleHelpOverlay()
g.HelpOverlay.Toggle()
g.updateLayout()
default: default:
return false return false
} }
@ -474,7 +474,7 @@ func (g *GameControls) onEscKey() {
} }
if g.HelpOverlay.IsOpen() { if g.HelpOverlay.IsOpen() {
g.HelpOverlay.Toggle() g.HelpOverlay.Close()
escHandled = true escHandled = true
} }
@ -630,10 +630,12 @@ func (g *GameControls) OnMouseButtonDown(event d2interface.MouseEvent) bool {
} }
func (g *GameControls) toggleHeroStatsPanel() { func (g *GameControls) toggleHeroStatsPanel() {
g.questLog.Close() if !g.HelpOverlay.IsOpen() {
g.heroStatsPanel.Toggle() g.questLog.Close()
g.hud.miniPanel.SetMovedRight(g.heroStatsPanel.IsOpen()) g.heroStatsPanel.Toggle()
g.updateLayout() g.hud.miniPanel.SetMovedRight(g.heroStatsPanel.IsOpen())
g.updateLayout()
}
} }
func (g *GameControls) onCloseHeroStatsPanel() { func (g *GameControls) onCloseHeroStatsPanel() {
@ -642,10 +644,12 @@ func (g *GameControls) onCloseHeroStatsPanel() {
} }
func (g *GameControls) toggleQuestLog() { func (g *GameControls) toggleQuestLog() {
g.heroStatsPanel.Close() if !g.HelpOverlay.IsOpen() {
g.questLog.Toggle() g.heroStatsPanel.Close()
g.hud.miniPanel.SetMovedRight(g.questLog.IsOpen()) g.questLog.Toggle()
g.updateLayout() g.hud.miniPanel.SetMovedRight(g.questLog.IsOpen())
g.updateLayout()
}
} }
func (g *GameControls) onCloseQuestLog() { func (g *GameControls) onCloseQuestLog() {
@ -653,11 +657,21 @@ func (g *GameControls) onCloseQuestLog() {
g.updateLayout() g.updateLayout()
} }
func (g *GameControls) toggleHelpOverlay() {
if !g.inventory.IsOpen() && !g.skilltree.IsOpen() && !g.heroStatsPanel.IsOpen() && !g.questLog.IsOpen() {
g.hud.miniPanel.openDisabled()
g.HelpOverlay.Toggle()
g.updateLayout()
}
}
func (g *GameControls) toggleInventoryPanel() { func (g *GameControls) toggleInventoryPanel() {
g.skilltree.Close() if !g.HelpOverlay.IsOpen() {
g.inventory.Toggle() g.skilltree.Close()
g.hud.miniPanel.SetMovedLeft(g.inventory.IsOpen()) g.inventory.Toggle()
g.updateLayout() g.hud.miniPanel.SetMovedLeft(g.inventory.IsOpen())
g.updateLayout()
}
} }
func (g *GameControls) onCloseInventory() { func (g *GameControls) onCloseInventory() {
@ -666,10 +680,12 @@ func (g *GameControls) onCloseInventory() {
} }
func (g *GameControls) toggleSkilltreePanel() { func (g *GameControls) toggleSkilltreePanel() {
g.inventory.Close() if !g.HelpOverlay.IsOpen() {
g.skilltree.Toggle() g.inventory.Close()
g.hud.miniPanel.SetMovedLeft(g.skilltree.IsOpen()) g.skilltree.Toggle()
g.updateLayout() g.hud.miniPanel.SetMovedLeft(g.skilltree.IsOpen())
g.updateLayout()
}
} }
func (g *GameControls) onCloseSkilltree() { func (g *GameControls) onCloseSkilltree() {

View File

@ -32,13 +32,15 @@ func NewInventory(asset *d2asset.AssetManager,
ui *d2ui.UIManager, ui *d2ui.UIManager,
l d2util.LogLevel, l d2util.LogLevel,
gold int, gold int,
record *d2records.InventoryRecord) *Inventory { record *d2records.InventoryRecord) (*Inventory, error) {
itemTooltip := ui.NewTooltip(d2resource.FontFormal11, d2resource.PaletteStatic, d2ui.TooltipXCenter, d2ui.TooltipYBottom) itemTooltip := ui.NewTooltip(d2resource.FontFormal11, d2resource.PaletteStatic, d2ui.TooltipXCenter, d2ui.TooltipYBottom)
mgp := NewMoveGoldPanel(asset, ui, gold, l) itemFactory, err := diablo2item.NewItemFactory(asset)
if err != nil {
return nil, fmt.Errorf("during creating new item factory: %s", err)
}
// https://github.com/OpenDiablo2/OpenDiablo2/issues/797 mgp := NewMoveGoldPanel(asset, ui, gold, l)
itemFactory, _ := diablo2item.NewItemFactory(asset)
inventory := &Inventory{ inventory := &Inventory{
asset: asset, asset: asset,
@ -59,7 +61,7 @@ func NewInventory(asset *d2asset.AssetManager,
inventory.Logger.SetLevel(l) inventory.Logger.SetLevel(l)
inventory.Logger.SetPrefix(logPrefix) inventory.Logger.SetPrefix(logPrefix)
return inventory return inventory, nil
} }
// Inventory represents the inventory // Inventory represents the inventory

View File

@ -105,12 +105,6 @@ func NewQuestLog(asset *d2asset.AssetManager,
24: 0, 24: 0,
25: 0, 25: 0,
26: 0, 26: 0,
27: 0,
28: 0,
29: 0,
30: 0,
31: 0,
32: 1,
} }
var quests [d2enum.ActsNumber]*d2ui.WidgetGroup var quests [d2enum.ActsNumber]*d2ui.WidgetGroup