avoid cloning when extending ticks for fruits
This commit is contained in:
+2
-2
@@ -127,7 +127,7 @@ pub fn stars(
|
|||||||
if *repeats <= 1 {
|
if *repeats <= 1 {
|
||||||
slider_objects.append(&mut ticks); // automatically empties buffer for next slider
|
slider_objects.append(&mut ticks); // automatically empties buffer for next slider
|
||||||
} else {
|
} else {
|
||||||
slider_objects.append(&mut ticks.clone());
|
slider_objects.extend(&ticks);
|
||||||
|
|
||||||
for repeat_id in 1..*repeats {
|
for repeat_id in 1..*repeats {
|
||||||
let dist = (repeat_id % 2) as f32 * *pixel_len;
|
let dist = (repeat_id % 2) as f32 * *pixel_len;
|
||||||
@@ -359,7 +359,7 @@ pub fn strains(map: &Beatmap, mods: impl Mods) -> Strains {
|
|||||||
if *repeats <= 1 {
|
if *repeats <= 1 {
|
||||||
slider_objects.append(&mut ticks); // automatically empties buffer for next slider
|
slider_objects.append(&mut ticks); // automatically empties buffer for next slider
|
||||||
} else {
|
} else {
|
||||||
slider_objects.append(&mut ticks.clone());
|
slider_objects.extend(&ticks);
|
||||||
|
|
||||||
for repeat_id in 1..*repeats {
|
for repeat_id in 1..*repeats {
|
||||||
let dist = (repeat_id % 2) as f32 * *pixel_len;
|
let dist = (repeat_id % 2) as f32 * *pixel_len;
|
||||||
|
|||||||
+2
-5
@@ -31,10 +31,6 @@ fn sort_unstable<T: PartialOrd>(slice: &mut [T]) {
|
|||||||
slice.sort_unstable_by(|p1, p2| p1.partial_cmp(p2).unwrap_or(Ordering::Equal));
|
slice.sort_unstable_by(|p1, p2| p1.partial_cmp(p2).unwrap_or(Ordering::Equal));
|
||||||
}
|
}
|
||||||
|
|
||||||
fn sort<T: PartialOrd>(slice: &mut [T]) {
|
|
||||||
slice.sort_by(|p1, p2| p1.partial_cmp(p2).unwrap_or(Ordering::Equal));
|
|
||||||
}
|
|
||||||
|
|
||||||
trait OptionExt<T> {
|
trait OptionExt<T> {
|
||||||
fn next_field(self, field: &'static str) -> Result<T, ParseError>;
|
fn next_field(self, field: &'static str) -> Result<T, ParseError>;
|
||||||
}
|
}
|
||||||
@@ -945,7 +941,8 @@ impl Beatmap {
|
|||||||
// won't be set yet so mania objects won't be sorted properly
|
// won't be set yet so mania objects won't be sorted properly
|
||||||
if self.mode == GameMode::MNA {
|
if self.mode == GameMode::MNA {
|
||||||
// First a _stable_ sort by time
|
// First a _stable_ sort by time
|
||||||
sort(&mut self.hit_objects);
|
self.hit_objects
|
||||||
|
.sort_by(|p1, p2| p1.partial_cmp(p2).unwrap_or(Ordering::Equal));
|
||||||
|
|
||||||
// Then the legacy sort for correct position order
|
// Then the legacy sort for correct position order
|
||||||
legacy_sort(&mut self.hit_objects);
|
legacy_sort(&mut self.hit_objects);
|
||||||
|
|||||||
Reference in New Issue
Block a user