diff --git a/d2core/d2term/terminal.go b/d2core/d2term/terminal.go index 2e9f80c0..c013dd21 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 && event.Key == d2input.KeyGraveAccent { + t.show() + return true + } - if t.visState == termVisHiding || t.visState == termVisHidden { - if 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 7e1035a7..8ffdd343 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) } })