From 3ee33391bc6eb5426399b8dc66d726eb131ad859 Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Tue, 9 Jul 2024 10:51:33 +0200 Subject: [PATCH] fix message reader --- frontend/app/player/web/MessageLoader.ts | 7 ++----- .../app/player/web/messages/MFileReader.ts | 19 +++++++++---------- 2 files changed, 11 insertions(+), 15 deletions(-) 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