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;