From a04d2389c3028866a76c55b9ad81c3f4cc5a4937 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Sun, 2 Feb 2020 18:26:08 -0800 Subject: [PATCH] Fix terminal taking input when not visible, fix timescale command (#294) --- d2core/d2term/terminal.go | 20 +++++++++++--------- d2game/d2game.go | 1 + 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/d2core/d2term/terminal.go b/d2core/d2term/terminal.go index 2e9f80c0a..c013dd212 100644 --- a/d2core/d2term/terminal.go +++ b/d2core/d2term/terminal.go @@ -130,15 +130,12 @@ func (t *terminal) advance(elapsed float64) error { } func (t *terminal) OnKeyDown(event d2input.KeyEvent) bool { - maxOutputIndex := d2common.MaxInt(0, len(t.outputHistory)-t.lineCount) - - if t.visState == termVisHiding || t.visState == termVisHidden { - if event.Key == d2input.KeyGraveAccent { - t.show() - return true - } + if t.visState == termVisHiding || t.visState == termVisHidden && event.Key == d2input.KeyGraveAccent { + t.show() + return true + } - // When terminal is not visible, only d2input.KeyGraveAccent is consumed. + if !t.isVisible() { return false } @@ -152,6 +149,8 @@ func (t *terminal) OnKeyDown(event d2input.KeyEvent) bool { return true } + maxOutputIndex := d2common.MaxInt(0, len(t.outputHistory)-t.lineCount) + if event.Key == d2input.KeyHome { t.outputIndex = maxOutputIndex return true @@ -224,11 +223,14 @@ func (t *terminal) OnKeyDown(event d2input.KeyEvent) bool { return true } - // When terminal is visible, all keys are consumed. return true } func (t *terminal) OnKeyChars(event d2input.KeyCharsEvent) bool { + if !t.isVisible() { + return false + } + var handled bool for _, c := range event.Chars { if c != '`' { diff --git a/d2game/d2game.go b/d2game/d2game.go index 7e1035a79..8ffdd3433 100644 --- a/d2game/d2game.go +++ b/d2game/d2game.go @@ -54,6 +54,7 @@ func Initialize(loadingSpr *d2ui.Sprite) error { if timeScale <= 0 { d2term.OutputError("invalid time scale value") } else { + singleton.timeScale = timeScale d2term.OutputInfo("timescale changed from %f to %f", singleton.timeScale, timeScale) } })