floating point fixes (hopefully)
This commit is contained in:
@@ -203,7 +203,7 @@ final class Conductor
|
|||||||
var events:Array<ChartEvent> = [];
|
var events:Array<ChartEvent> = [];
|
||||||
for (e in song.events) if (e.params != null && (e.name == "BPM Change" || e.name == "Time Signature Change" || e.name == "Continuous BPM Change")) events.push(e);
|
for (e in song.events) if (e.params != null && (e.name == "BPM Change" || e.name == "Time Signature Change" || e.name == "Continuous BPM Change")) events.push(e);
|
||||||
events.sort(function(a, b) {
|
events.sort(function(a, b) {
|
||||||
if (a.time == b.time) {
|
if (MathUtil.equal(a.time, b.time)) {
|
||||||
if (a.name == "Continuous BPM Change") return 1;
|
if (a.name == "Continuous BPM Change") return 1;
|
||||||
if (b.name == "Continuous BPM Change") return -1;
|
if (b.name == "Continuous BPM Change") return -1;
|
||||||
}
|
}
|
||||||
@@ -217,7 +217,7 @@ final class Conductor
|
|||||||
|
|
||||||
private static function mapEvent(e:ChartEvent, curChange:BPMChangeEvent) {
|
private static function mapEvent(e:ChartEvent, curChange:BPMChangeEvent) {
|
||||||
var name = e.name, params = e.params, time = e.time;
|
var name = e.name, params = e.params, time = e.time;
|
||||||
if (curChange.continuous && time < curChange.endSongTime) { //ensure that you cannot place any conductor events during a continuous change
|
if (curChange.continuous && MathUtil.lessThan(time, curChange.endSongTime)) { //ensure that you cannot place any conductor events during a continuous change
|
||||||
invalidEvents.push(e);
|
invalidEvents.push(e);
|
||||||
Logs.trace('Invalid Conductor event "${e.name}" at ${e.time} (Intersecting continuous change!)', WARNING);
|
Logs.trace('Invalid Conductor event "${e.name}" at ${e.time} (Intersecting continuous change!)', WARNING);
|
||||||
return curChange;
|
return curChange;
|
||||||
@@ -268,7 +268,7 @@ final class Conductor
|
|||||||
|
|
||||||
for(event in Charter.instance.eventsGroup.members) {
|
for(event in Charter.instance.eventsGroup.members) {
|
||||||
event.events.sort(function(a, b) {
|
event.events.sort(function(a, b) {
|
||||||
if (a.time == b.time) {
|
if (MathUtil.equal(a.time, b.time)) {
|
||||||
if (a.name == "Continuous BPM Change") return 1;
|
if (a.name == "Continuous BPM Change") return 1;
|
||||||
if (b.name == "Continuous BPM Change") return -1;
|
if (b.name == "Continuous BPM Change") return -1;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -38,8 +38,8 @@ class CharterEventTypeSelection extends UISubstateWindow {
|
|||||||
var disableConductorEvents:Bool = false;
|
var disableConductorEvents:Bool = false;
|
||||||
var disableOnlyContinuousChanges:Bool = false;
|
var disableOnlyContinuousChanges:Bool = false;
|
||||||
for (change in Conductor.bpmChangeMap) {
|
for (change in Conductor.bpmChangeMap) {
|
||||||
if (change.continuous && eventStepTime >= change.stepTime && eventStepTime < change.endStepTime) {
|
if (change.continuous && MathUtil.greaterThanEqual(eventStepTime, change.stepTime) && MathUtil.lessThan(eventStepTime, change.endStepTime)) {
|
||||||
disableOnlyContinuousChanges = eventStepTime == change.stepTime; //allow time sig and instant bpm changes on the same event
|
disableOnlyContinuousChanges = MathUtil.equal(eventStepTime, change.stepTime); //allow time sig and instant bpm changes on the same event
|
||||||
disableConductorEvents = !disableOnlyContinuousChanges;
|
disableConductorEvents = !disableOnlyContinuousChanges;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user