sonolus-next-rush-plus-engine 1.8.14 → 1.8.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -241,20 +241,22 @@ export const extendedToLevelData = (data, offset = 0) => {
241
241
  const segmentHead = getNote(startRef) || head;
242
242
  const endRef = getField(e, 'end');
243
243
  let segmentTail = getNote(endRef);
244
- if (!segmentTail && startRef !== undefined) {
245
- let ultimateTailNote = undefined;
246
- for (const { e: otherConn } of ext.connectors) {
247
- if (getField(otherConn, 'start') === startRef) {
248
- const otherTailNote = getNote(getField(otherConn, 'tail'));
249
- if (otherTailNote) {
250
- if (!ultimateTailNote ||
251
- otherTailNote.getBeat() > ultimateTailNote.getBeat()) {
252
- ultimateTailNote = otherTailNote;
253
- }
254
- }
244
+ if (!segmentTail) {
245
+ let currentTailRef = getField(e, 'tail');
246
+ let ultimateTailRef = currentTailRef;
247
+ const visited = new Set();
248
+ while (ultimateTailRef !== undefined && !visited.has(ultimateTailRef)) {
249
+ visited.add(ultimateTailRef);
250
+ const nextConn = ext.connectors.find((c) => getField(c.e, 'head') === ultimateTailRef &&
251
+ getField(c.e, 'start') === startRef);
252
+ if (nextConn) {
253
+ ultimateTailRef = getField(nextConn.e, 'tail');
254
+ }
255
+ else {
256
+ break;
255
257
  }
256
258
  }
257
- segmentTail = ultimateTailNote;
259
+ segmentTail = getNote(ultimateTailRef);
258
260
  }
259
261
  if (!segmentTail) {
260
262
  segmentTail = tail;
package/dist/index.d.ts CHANGED
@@ -7,7 +7,7 @@ import { USC } from './usc/index.js';
7
7
  export * from './usc/index.js';
8
8
  export { type ExtendedEntityData, type ExtendedEntityDataField, extendedToLevelData, mmwsToUSC, susToUSC, ucmmwsToLevelData, uscToLevelData, };
9
9
  export declare const convertToLevelData: (input: string | Uint8Array | USC | LevelData, offset?: number) => LevelData;
10
- export declare const version = "1.8.14";
10
+ export declare const version = "1.8.15";
11
11
  export declare const databaseEngineItem: {
12
12
  readonly name: "next-rush-plus";
13
13
  readonly version: 13;
package/dist/index.js CHANGED
@@ -70,7 +70,7 @@ export const convertToLevelData = (input, offset = 0) => {
70
70
  }
71
71
  return uscToLevelData(usc, offset, true, true);
72
72
  };
73
- export const version = '1.8.14';
73
+ export const version = '1.8.15';
74
74
  export const databaseEngineItem = {
75
75
  name: 'next-rush-plus',
76
76
  version: 13,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "sonolus-next-rush-plus-engine",
3
- "version": "1.8.14",
3
+ "version": "1.8.15",
4
4
  "description": "A new Project Sekai inspired engine for Sonolus",
5
5
  "author": "Hyeon2",
6
6
  "repository": {