diff --git a/src/itdelatrisu/opsu/GameData.java b/src/itdelatrisu/opsu/GameData.java index b5b355c0..121c1f64 100644 --- a/src/itdelatrisu/opsu/GameData.java +++ b/src/itdelatrisu/opsu/GameData.java @@ -1395,11 +1395,21 @@ public class GameData { * @param curve the slider curve (or null if not applicable) * @param sliderHeldToEnd whether or not the slider was held to the end (if applicable) */ + public void hitResult(int time, int result, float x, float y, Color color, + boolean end, HitObject hitObject, HitObjectType hitResultType, + boolean expand, int repeat, Curve curve, boolean sliderHeldToEnd) { + hitResult(time, result, x, y, color, end, hitObject, hitResultType, expand, repeat, curve, sliderHeldToEnd, true); + } public void hitResult(int time, int result, float x, float y, Color color, boolean end, HitObject hitObject, HitObjectType hitResultType, - boolean expand, int repeat, Curve curve, boolean sliderHeldToEnd) { - int hitResult = handleHitResult(time, result, x, y, color, end, hitObject, + boolean expand, int repeat, Curve curve, boolean sliderHeldToEnd, boolean handleResult) { + int hitResult; + if (handleResult) { + hitResult = handleHitResult(time, result, x, y, color, end, hitObject, hitResultType, repeat, (curve != null && !sliderHeldToEnd)); + } else { + hitResult = HIT_300; + } if (hitResult == HIT_MISS && (GameMod.RELAX.isActive() || GameMod.AUTOPILOT.isActive())) return; // "relax" and "autopilot" mods: hide misses diff --git a/src/itdelatrisu/opsu/objects/Circle.java b/src/itdelatrisu/opsu/objects/Circle.java index 28798501..1ac92180 100644 --- a/src/itdelatrisu/opsu/objects/Circle.java +++ b/src/itdelatrisu/opsu/objects/Circle.java @@ -191,7 +191,7 @@ public class Circle extends GameObject { data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false); if (Dancer.mirror) { float[] m = Utils.mirrorPoint(x, y); - data.hitResult(time, GameData.HIT_300, m[0], m[1], mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false); + data.hitResult(time, GameData.HIT_300, m[0], m[1], mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false, false); } } @@ -206,7 +206,7 @@ public class Circle extends GameObject { data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false); if (Dancer.mirror) { float[] m = Utils.mirrorPoint(x, y); - data.hitResult(time, GameData.HIT_300, m[0], m[1], mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false); + data.hitResult(time, GameData.HIT_300, m[0], m[1], mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false, false); } return true; } diff --git a/src/itdelatrisu/opsu/objects/Slider.java b/src/itdelatrisu/opsu/objects/Slider.java index 8608c5b1..23601b47 100644 --- a/src/itdelatrisu/opsu/objects/Slider.java +++ b/src/itdelatrisu/opsu/objects/Slider.java @@ -433,7 +433,7 @@ public class Slider extends GameObject { float[] m = Utils.mirrorPoint(cx, cy); data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result, m[0], m[1], mirrorColor, comboEnd, hitObject, type, sliderHeldToEnd, - currentRepeats + 1, curve, sliderHeldToEnd); + currentRepeats + 1, curve, sliderHeldToEnd, false); } return result;