Toter Code und ungenutzte APIs in CORE/INPUT #9
Labels
No labels
accessibility
bug
cleanup
consistency
crash
critical
game-feel
gameplay
high
input
level-generation
low
maintainability
medium
pause
physics
responsive
security
spec-gap
ui
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
gilli/pulse-sprint#9
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Toter Code und ungenutzte APIs in CORE/INPUT #9"
By gilli — Closed
cleanup
low
maintainability
1 comments
Erledigt in
8738b91(main, gepusht).Was jetzt anders ist
nextEdgeAftergroundAt()/groundEdgeAfter().pauseEdge/restartEdge/muteEdgehooks-Callbacks.focusEdge9cd8ba8(#8) schon weg – der zweite Listener inboot()existiert nicht mehr, Fokus läuft über dieKEYMAP→hooks.onFocus. Jetzt zusätzlich geprüft: kein*Edge-Flag ohne Leser im Dokument.pointerHook/hookGrabTargetpointerdownsetztINPUT.state.pointerHook = h,consume()gibt es alscmd.hookGrabTargetweiter und löscht es nach genau einem Schritt,playerCmd()meldet die Verfügbarkeit vor dem Verbrauch,stepBody()löst über das neueCORE.grabTarget()auf.hook.disabledhook.grabs). Die Alternative „nachgrabs > Nsperren“ wäre ein Balancing-Eingriff gewesen, kein Cleanup – und ohne Bedarf."KeyW Jump"KeyWhängt unverändert an der Haspel.makeBody().spin#countdown/#countdown .overlay#countdownBgleistet alles.Neu in
CORE:grabTarget(b, world, target)undgrabbable(b, h). Genommen wirddas Ziel nur, wenn es in derselben Welt liegt und dieselbe Schwelle erfüllt wie die
freie Auswahl (Seilkühlzeit,
GRAB_RADIUS,d ≥ 8); sonst Rückfall auffindGrab()–ein Klick darf nie schlechter stehen als vorher. Tastatur, Autopilot und Solver bleiben
ungerichtet (
target= null). Hilfe-Text sagt jetzt, was stimmt: „Haken direkt anklicken =genau diesen greifen“.
Abdeckung
tests/issue9.mjs– tote Stellen in Quelle und Laufzeit (Exporte,makeBody-Form,KEYMAP-Schlüssel gegen die
code/key-Form, jeder CSS-#id-Selektor gegen die ids desDokuments) plus die neue Kette über den echten Pointer-Listener (per Klammerzähler
extrahiertes
INPUTundGAME.playerCmd, Technik wie #4): Ziel gewinnt gegen die freieAuswahl, Rückfall bei fremdem / kaltgestelltem / unerreichbarem Ziel, Ziel wird genau
einmal verbraucht, Tastaturgriff bleibt ungerichtet.
tests/browser_issue9.py– echter Mausklick im echten Dokument, zwei erreichbare Haken(A 215 px, B 164 px,
GRAB_RADIUS225; freie Auswahl nimmt B): Klick auf A → hängt an A,Klick auf B → hängt an B, Klick weit neben beide → kein Griff, Leertaste → ungerichtet.
Dazu die Wache, dass die gestrichenen CSS-Regeln nichts getragen haben (Countdown
zentriert,
#countdownBgzeigdurchlässig) und kein Konsolenfehler.Rot → Grün
Gegen
git show HEAD:index.html:tests/issue9.mjs14 Prüfungen rot (u. a.grabTargetfehlt,pauseEdge-Trio,disabled,grabs,spin,KeyW Jump,#countdown),tests/browser_issue9.py3 rot – Kernbefund: Klick auf A hängt die Figuran B. Nach dem Fix beide Suiten grün, controls grün in beiden Fassungen.
./tests/run-all.sh 1: alle Suiten grün (inkl. Soak).Die Test-Fixtures, die
disabled: false, grabs: 0undb.spin = 0nachbauten, sindebenfalls bereinigt (
issue3,issue4,issue14,browser_smoke).grabbable()gerade verweigert #26grabbable()gerade verweigert #26