put common stuff in utils
This commit is contained in:
parent
ad370fd8fb
commit
230dd6d98f
|
@ -1201,13 +1201,8 @@ public class GameData {
|
||||||
if (!Dancer.mirror) {
|
if (!Dancer.mirror) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
double dx = x - Options.width / 2d;
|
float[] m = Utils.mirrorPoint(x, y);
|
||||||
double dy = y - Options.height / 2d;
|
hitResultList.add(new HitObjectResult(time, HIT_SLIDER_INITIAL, m[0], m[1], mirrorcolor, null, null, true, false));
|
||||||
double ang = Math.atan2(dy, dx);
|
|
||||||
double d = -Math.sqrt(dx * dx + dy * dy);
|
|
||||||
x = (float) (Options.width / 2d + Math.cos(ang) * d);
|
|
||||||
y = (float) (Options.height / 2d + Math.sin(ang) * d);
|
|
||||||
hitResultList.add(new HitObjectResult(time, HIT_SLIDER_INITIAL, x, y, mirrorcolor, null, null, true, false));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -590,4 +590,15 @@ public class Utils {
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
public static float[] mirrorPoint(float x, float y) {
|
||||||
|
double dx = x - Options.width / 2d;
|
||||||
|
double dy = y - Options.height / 2d;
|
||||||
|
double ang = Math.atan2(dy, dx);
|
||||||
|
double d = -Math.sqrt(dx * dx + dy * dy);
|
||||||
|
return new float[]{
|
||||||
|
(float) (Options.width / 2d + Math.cos(ang) * d),
|
||||||
|
(float) (Options.height / 2d + Math.sin(ang) * d)
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -190,13 +190,8 @@ public class Circle extends GameObject {
|
||||||
if (isAutoMod) {// "auto" mod: catch any missed notes due to lag
|
if (isAutoMod) {// "auto" mod: catch any missed notes due to lag
|
||||||
data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
||||||
if (Dancer.mirror) {
|
if (Dancer.mirror) {
|
||||||
double dx = x - Options.width / 2d;
|
float[] m = Utils.mirrorPoint(x, y);
|
||||||
double dy = y - Options.height / 2d;
|
data.hitResult(time, GameData.HIT_300, m[0], m[1], mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
||||||
double ang = Math.atan2(dy, dx);
|
|
||||||
double d = -Math.sqrt(dx * dx + dy * dy);
|
|
||||||
float nx = (float) (Options.width / 2d + Math.cos(ang) * d);
|
|
||||||
float ny = (float) (Options.height / 2d + Math.sin(ang) * d);
|
|
||||||
data.hitResult(time, GameData.HIT_300, nx, ny, mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -210,13 +205,8 @@ public class Circle extends GameObject {
|
||||||
if (Math.abs(trackPosition - time) < hitResultOffset[GameData.HIT_300]) {
|
if (Math.abs(trackPosition - time) < hitResultOffset[GameData.HIT_300]) {
|
||||||
data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
data.hitResult(time, GameData.HIT_300, x, y, color, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
||||||
if (Dancer.mirror) {
|
if (Dancer.mirror) {
|
||||||
double dx = x - Options.width / 2d;
|
float[] m = Utils.mirrorPoint(x, y);
|
||||||
double dy = y - Options.height / 2d;
|
data.hitResult(time, GameData.HIT_300, m[0], m[1], mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
||||||
double ang = Math.atan2(dy, dx);
|
|
||||||
double d = -Math.sqrt(dx * dx + dy * dy);
|
|
||||||
float nx = (float) (Options.width / 2d + Math.cos(ang) * d);
|
|
||||||
float ny = (float) (Options.height / 2d + Math.sin(ang) * d);
|
|
||||||
data.hitResult(time, GameData.HIT_300, nx, ny, mirrorColor, comboEnd, hitObject, HitObjectType.CIRCLE, true, 0, null, false);
|
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -430,14 +430,9 @@ public class Slider extends GameObject {
|
||||||
cx, cy, color, comboEnd, hitObject, type, sliderHeldToEnd,
|
cx, cy, color, comboEnd, hitObject, type, sliderHeldToEnd,
|
||||||
currentRepeats + 1, curve, sliderHeldToEnd);
|
currentRepeats + 1, curve, sliderHeldToEnd);
|
||||||
if (Dancer.mirror) {
|
if (Dancer.mirror) {
|
||||||
double dx = cx - Options.width / 2d;
|
float[] m = Utils.mirrorPoint(cx, cy);
|
||||||
double dy = cy - Options.height / 2d;
|
|
||||||
double ang = Math.atan2(dy, dx);
|
|
||||||
double d = -Math.sqrt(dx * dx + dy * dy);
|
|
||||||
float nx = (float) (Options.width / 2d + Math.cos(ang) * d);
|
|
||||||
float ny = (float) (Options.height / 2d + Math.sin(ang) * d);
|
|
||||||
data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result,
|
data.hitResult(hitObject.getTime() + (int) sliderTimeTotal, result,
|
||||||
nx, ny, mirrorColor, comboEnd, hitObject, type, sliderHeldToEnd,
|
m[0], m[1], mirrorColor, comboEnd, hitObject, type, sliderHeldToEnd,
|
||||||
currentRepeats + 1, curve, sliderHeldToEnd);
|
currentRepeats + 1, curve, sliderHeldToEnd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user