diff --git a/config-serializer/UhkBuffer.ts b/config-serializer/UhkBuffer.ts index fb29dcb3..e1356af6 100644 --- a/config-serializer/UhkBuffer.ts +++ b/config-serializer/UhkBuffer.ts @@ -143,6 +143,14 @@ class UhkBuffer { this.offset += stringByteLength; } + readBoolean(): boolean { + return this.readUInt8() !== 0; + } + + writeBoolean(bool: boolean) { + this.writeUInt8(bool ? 1 : 0); + } + backtrack(): void { this.offset -= this.bytesToBacktrack; this.bytesToBacktrack = 0; diff --git a/config-serializer/config-items/KeyMap.ts b/config-serializer/config-items/KeyMap.ts index d1ed5d53..1a9d4ccf 100644 --- a/config-serializer/config-items/KeyMap.ts +++ b/config-serializer/config-items/KeyMap.ts @@ -1,7 +1,5 @@ class KeyMap extends Serializable { - static defaultFlag = 0x80; - // @assertUInt8 id: number; @@ -23,10 +21,8 @@ class KeyMap extends Serializable { } _fromBinary(buffer: UhkBuffer): KeyMap { - let map = buffer.readUInt8(); - /* saves almost a byte but limits number of keymaps... */ - this.isDefault = (map & KeyMap.defaultFlag) !== 0; - this.id = map & ~KeyMap.defaultFlag; // Clear isDefault bit.; + this.id = buffer.readUInt8(); + this.isDefault = buffer.readBoolean(); this.abbreviation = buffer.readString(); this.name = buffer.readString(); this.layers = new Layers().fromBinary(buffer); @@ -44,7 +40,8 @@ class KeyMap extends Serializable { } _toBinary(buffer: UhkBuffer): void { - buffer.writeUInt8(this.id | this.getDefaultFlag()); + buffer.writeUInt8(this.id); + buffer.writeBoolean(this.isDefault); buffer.writeString(this.abbreviation); buffer.writeString(this.name); this.layers.toBinary(buffer); @@ -53,8 +50,4 @@ class KeyMap extends Serializable { toString(): string { return ``; } - - private getDefaultFlag() { - return this.isDefault ? KeyMap.defaultFlag : 0; - } } diff --git a/config-serializer/config-items/Macro.ts b/config-serializer/config-items/Macro.ts index 11a08a32..b31713d1 100644 --- a/config-serializer/config-items/Macro.ts +++ b/config-serializer/config-items/Macro.ts @@ -1,8 +1,5 @@ class Macro extends Serializable { - static loopedFlag = 0x80; - static privateFlag = 0x08; - // @assertUInt8 id: number; @@ -25,10 +22,8 @@ class Macro extends Serializable { _fromBinary(buffer: UhkBuffer): Macro { this.id = buffer.readUInt8(); - let bools = buffer.readUInt8(); - /* saves almost a byte but limits number of keymaps... */ - this.isLooped = (bools & Macro.loopedFlag) !== 0; - this.isPrivate = (bools & Macro.privateFlag) !== 0; + this.isLooped = buffer.readBoolean(); + this.isPrivate = buffer.readBoolean(); this.name = buffer.readString(); this.macroActions = new MacroActions().fromBinary(buffer); return this; @@ -46,7 +41,8 @@ class Macro extends Serializable { _toBinary(buffer: UhkBuffer): void { buffer.writeUInt8(this.id); - buffer.writeUInt8(this.getLoopedFlag() | this.getPrivateFlag()); + buffer.writeBoolean(this.isLooped); + buffer.writeBoolean(this.isPrivate); buffer.writeString(this.name); this.macroActions.toBinary(buffer); } @@ -54,12 +50,4 @@ class Macro extends Serializable { toString(): string { return ``; } - - private getLoopedFlag() { - return this.isLooped ? Macro.loopedFlag : 0; - } - - private getPrivateFlag() { - return this.isPrivate ? Macro.privateFlag : 0; - } } diff --git a/config-serializer/config-items/SwitchLayerAction.ts b/config-serializer/config-items/SwitchLayerAction.ts index 7ef48187..1ec30f20 100644 --- a/config-serializer/config-items/SwitchLayerAction.ts +++ b/config-serializer/config-items/SwitchLayerAction.ts @@ -6,8 +6,6 @@ enum LayerName { class SwitchLayerAction extends KeyAction { - static toggleFlag = 0x80; - isLayerToggleable: boolean; // @assertEnum(LayerName) @@ -22,9 +20,8 @@ class SwitchLayerAction extends KeyAction { _fromBinary(buffer: UhkBuffer): SwitchLayerAction { this.readAndAssertKeyActionId(buffer); - let layer = buffer.readUInt8(); - this.isLayerToggleable = (layer & SwitchLayerAction.toggleFlag) !== 0; - this.layer = layer & ~SwitchLayerAction.toggleFlag; // Clear toggle bit. + this.layer = buffer.readUInt8(); + this.isLayerToggleable = buffer.readBoolean(); return this; } @@ -38,14 +35,11 @@ class SwitchLayerAction extends KeyAction { _toBinary(buffer: UhkBuffer) { buffer.writeUInt8(KeyActionId.SwitchLayerAction); - buffer.writeUInt8(this.layer | this.getToggleFlag()); + buffer.writeUInt8(this.layer); + buffer.writeBoolean(this.isLayerToggleable); } toString(): string { return ``; } - - private getToggleFlag() { - return this.isLayerToggleable ? SwitchLayerAction.toggleFlag : 0; - } }