From 7fe50478a7dc78121916f500385e21650de7b6e7 Mon Sep 17 00:00:00 2001 From: Hajime Hoshi Date: Sat, 26 Oct 2024 16:52:17 +0900 Subject: [PATCH] Revert "inpututil: refactoring: use clear" This reverts commit d6427d63cab53b1fa88dae59d98c345fcea825fd. Reason: wrong clear usages --- inpututil/inpututil.go | 36 +++++++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/inpututil/inpututil.go b/inpututil/inpututil.go index 88005cb78..d1c1d7395 100644 --- a/inpututil/inpututil.go +++ b/inpututil/inpututil.go @@ -107,23 +107,31 @@ func (i *inputState) update() { // Gamepads // Copy the gamepad IDs. - clear(i.prevGamepadIDs) + for id := range i.prevGamepadIDs { + delete(i.prevGamepadIDs, id) + } for id := range i.gamepadIDs { i.prevGamepadIDs[id] = struct{}{} } // Copy the gamepad button durations. - clear(i.prevGamepadButtonDurations) + for id := range i.prevGamepadButtonDurations { + delete(i.prevGamepadButtonDurations, id) + } for id, ds := range i.gamepadButtonDurations { i.prevGamepadButtonDurations[id] = append([]int{}, ds...) } - clear(i.prevStandardGamepadButtonDurations) + for id := range i.prevStandardGamepadButtonDurations { + delete(i.prevStandardGamepadButtonDurations, id) + } for id, ds := range i.standardGamepadButtonDurations { i.prevStandardGamepadButtonDurations[id] = append([]int{}, ds...) } - clear(i.gamepadIDs) + for id := range i.gamepadIDs { + delete(i.gamepadIDs, id) + } i.gamepadIDsBuf = ebiten.AppendGamepadIDs(i.gamepadIDsBuf[:0]) for _, id := range i.gamepadIDsBuf { i.gamepadIDs[id] = struct{}{} @@ -151,25 +159,35 @@ func (i *inputState) update() { } } for id := range i.gamepadButtonDurations { - clear(i.gamepadButtonDurations[id]) + if _, ok := i.gamepadIDs[id]; !ok { + delete(i.gamepadButtonDurations, id) + } } for id := range i.standardGamepadButtonDurations { - clear(i.standardGamepadButtonDurations[id]) + if _, ok := i.gamepadIDs[id]; !ok { + delete(i.standardGamepadButtonDurations, id) + } } // Touches // Copy the touch durations and positions. - clear(i.prevTouchDurations) + for id := range i.prevTouchDurations { + delete(i.prevTouchDurations, id) + } for id := range i.touchDurations { i.prevTouchDurations[id] = i.touchDurations[id] } - clear(i.prevTouchPositions) + for id := range i.prevTouchPositions { + delete(i.prevTouchPositions, id) + } for id := range i.touchPositions { i.prevTouchPositions[id] = i.touchPositions[id] } - clear(i.touchIDs) + for id := range i.touchIDs { + delete(i.touchIDs, id) + } i.touchIDsBuf = ebiten.AppendTouchIDs(i.touchIDsBuf[:0]) for _, id := range i.touchIDsBuf { i.touchIDs[id] = struct{}{}