From 5b836a4e0c84cf99fef9b1d0eed2a2847738d246 Mon Sep 17 00:00:00 2001 From: maze Date: Wed, 18 Mar 2026 17:09:49 +0100 Subject: [PATCH] Parse object as one segment --- src/frame.ts | 27 +++++++++++++++------------ 1 file changed, 15 insertions(+), 12 deletions(-) diff --git a/src/frame.ts b/src/frame.ts index 826e968..5f0c1af 100644 --- a/src/frame.ts +++ b/src/frame.ts @@ -1465,7 +1465,7 @@ export class Frame implements IFrame { const name = rawName.trimEnd(); if (withStructure) { segment.push({ - name: "object name", + name: "object", data: new TextEncoder().encode(rawName).buffer, isString: true, fields: [{ type: FieldType.STRING, name: "name", length: 9 }] @@ -1479,17 +1479,20 @@ export class Frame implements IFrame { } const alive = stateChar === "*"; if (withStructure) { - segment.push({ - name: "object state", - data: new TextEncoder().encode(stateChar).buffer, - isString: true, - fields: [ - { - type: FieldType.CHAR, - name: "State (* alive, _ killed)", - length: 1 - } - ] + let state: string = "invalid"; + if (stateChar === "*") { + state = "alive"; + } else if (stateChar === "_") { + state = "killed"; + } + segment[segment.length - 1].data = new TextEncoder().encode( + this.payload.substring(offset - 9, offset + 1) + ).buffer; + segment[segment.length - 1].fields.push({ + type: FieldType.CHAR, + name: "state", + length: 1, + value: state }); } offset += 1;