From 498bddc82302cf7e08e498753641b2bd869f480a Mon Sep 17 00:00:00 2001 From: Stepland <16676308+Stepland@users.noreply.github.com> Date: Sat, 2 May 2020 14:50:41 +0200 Subject: [PATCH] Sort out weirdness in marker display when hitting early and fix judge code --- CHANGELOG.md | 4 ++++ TODO.md | 7 ++++++- src/Screens/Gameplay/Gameplay.cpp | 2 +- src/Screens/Gameplay/GradedNote.cpp | 12 ++++-------- 4 files changed, 15 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 04b5d7c..d536a1f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -41,6 +41,10 @@ - Back - Start Button Action +## Gameplay +- Precise Input handling, the dirty way +- Sort out the wierdness when hitting early + ## Misc - Handling Resolution changes - reload preferences on change diff --git a/TODO.md b/TODO.md index f28b5ac..fcbcff8 100644 --- a/TODO.md +++ b/TODO.md @@ -2,7 +2,12 @@ ## Misc ## Gameplay Screen -- Precise Input handling, the dirty way +- Score + - compute + - display +- Combo + - compute + - display ## Results Screen diff --git a/src/Screens/Gameplay/Gameplay.cpp b/src/Screens/Gameplay/Gameplay.cpp index ca0fc91..9235a5f 100644 --- a/src/Screens/Gameplay/Gameplay.cpp +++ b/src/Screens/Gameplay/Gameplay.cpp @@ -79,7 +79,7 @@ namespace Gameplay { if (note.timed_judgment) { sprite = marker.get_sprite( judgement_to_animation(note.timed_judgment->judgement), - music_time-note.timing+note.timed_judgment->delta + music_time-note.timing-note.timed_judgment->delta ); } else { sprite = marker.get_sprite( diff --git a/src/Screens/Gameplay/GradedNote.cpp b/src/Screens/Gameplay/GradedNote.cpp index 0ef0995..d3801d7 100644 --- a/src/Screens/Gameplay/GradedNote.cpp +++ b/src/Screens/Gameplay/GradedNote.cpp @@ -25,18 +25,14 @@ namespace Gameplay { } // Numbers from http://544332133981.hatenablog.com/entry/bemani-rank_4 // which themselves are apparently from jubeat analyser's code. - // Here they are divided by 2 because we are checking against an absolute - // offset from the target time position - if (delta_abs < sf::milliseconds(21)) { + if (delta_abs < sf::milliseconds(42)) { return Judgement::Perfect; - } else if (delta_abs < sf::milliseconds(46)) { + } else if (delta_abs < sf::milliseconds(92)) { return Judgement::Great; - } else if (delta_abs < sf::milliseconds(83)) { + } else if (delta_abs < sf::milliseconds(166)) { return Judgement::Good; - } else if (delta_abs < sf::milliseconds(250)) { - return Judgement::Poor; } else { - return Judgement::Miss; + return Judgement::Poor; } }