diff --git a/frontend/app/player/web/MessageLoader.ts b/frontend/app/player/web/MessageLoader.ts index 4b7487a44..9b8dd55aa 100644 --- a/frontend/app/player/web/MessageLoader.ts +++ b/frontend/app/player/web/MessageLoader.ts @@ -45,11 +45,8 @@ export default class MessageLoader { const mobBytes = await decrypt(b); const data = unpack(mobBytes); fileReader.append(data); - if (file?.endsWith('EFS')) { - fileReader.forceSkipIndexes() - } else { - fileReader.checkForIndexes(); - } + fileReader.checkForIndexes(); + const msgs: Array = []; let finished = false; while (!finished) { diff --git a/frontend/app/player/web/messages/MFileReader.ts b/frontend/app/player/web/messages/MFileReader.ts index f34b2dc84..eacc79295 100644 --- a/frontend/app/player/web/messages/MFileReader.ts +++ b/frontend/app/player/web/messages/MFileReader.ts @@ -12,7 +12,6 @@ export default class MFileReader extends RawMessageReader { private currentTime: number public error: boolean = false private noIndexes: boolean = false - private skipIndexes: boolean = false constructor(data: Uint8Array, private startTime?: number, private logger= console) { super(data) } @@ -30,10 +29,6 @@ export default class MFileReader extends RawMessageReader { } } - public forceSkipIndexes() { - this.skipIndexes = true - } - private needSkipMessage(): boolean { if (this.p === 0) return false for (let i = 7; i >= 0; i--) { @@ -60,14 +55,18 @@ export default class MFileReader extends RawMessageReader { * via super.append * */ private readRawMessage(): RawMessage | null { + if (!this.noIndexes) { + this.skip(8) + } try { - if (this.skipIndexes) { - this.skip(8) + const msg = super.readMessage() + if (!msg && !this.noIndexes) { + this.skip(-8) } - return super.readMessage() + return msg } catch (e) { - this.logger.error("Read message error:", e) this.error = true + this.logger.error("Read message error:", e) return null } } @@ -117,4 +116,4 @@ export default class MFileReader extends RawMessageReader { return msg } -} +} \ No newline at end of file