Commit 95f31368 authored by Chunchi Che's avatar Chunchi Che

migrate bufferWriter

parent 68bd1aee
Pipeline #20742 failed with stages
in 9 minutes and 44 seconds
......@@ -3,10 +3,6 @@ import { numberToCardPosition, numberToCardZone } from "./util";
// @ts-ignore
import { BufferReader } from "rust-src";
const OFFSET_UINT8 = 1;
const OFFSET_INT8 = 1;
const OFFSET_UINT32 = 4;
const OFFSET_INT32 = 4;
const LOCATION_OVERLAY = 0x80;
export class BufferReaderExt {
......@@ -54,35 +50,3 @@ export class BufferReaderExt {
}
}
}
export class BufferWriter {
dataView: DataView;
littleEndian: boolean;
offset: number;
constructor(data: Uint8Array, littleEndian: boolean) {
this.dataView = new DataView(data.buffer);
this.littleEndian = littleEndian;
this.offset = 0;
}
writeUint8(value: number) {
this.dataView.setUint8(this.offset, value);
this.offset += OFFSET_UINT8;
}
writeInt8(value: number) {
this.dataView.setInt8(this.offset, value);
this.offset += OFFSET_INT8;
}
writeUint32(value: number) {
this.dataView.setUint32(this.offset, value, this.littleEndian);
this.offset += OFFSET_UINT32;
}
writeInt32(value: number) {
this.dataView.setInt32(this.offset, value, this.littleEndian);
this.offset += OFFSET_INT32;
}
}
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
response: ygopro.CtosGameMsgResponse.SelectBattleCmdResponse
) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
writer.writeUint32(response.selected_cmd);
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectCardResponse) => {
const array = new Uint8Array(1 + response.selected_ptrs.length);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
writer.writeUint8(response.selected_ptrs.length);
for (const ptr of response.selected_ptrs) {
writer.writeUint8(ptr);
}
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectChainResponse) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
writer.writeInt32(response.selected_ptr);
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
response: ygopro.CtosGameMsgResponse.SelectEffectYnResponse
) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
writer.writeUint32(response.selected ? 1 : 0);
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectIdleCmdResponse) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
writer.writeUint32(response.code);
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (response: ygopro.CtosGameMsgResponse.SelectOptionResponse) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
writer.writeUint32(response.code);
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
import { cardZoneToNumber } from "../../util";
export default (response: ygopro.CtosGameMsgResponse.SelectPlaceResponse) => {
const array = new Uint8Array(3);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
writer.writeUint8(response.player);
writer.writeUint8(cardZoneToNumber(response.zone));
writer.writeUint8(response.sequence);
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
response: ygopro.CtosGameMsgResponse.SelectPositionResponse
) => {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
const writer = new BufferWriter();
switch (response.position) {
case ygopro.CardPosition.FACEUP_ATTACK: {
......@@ -33,5 +33,5 @@ export default (
}
}
return array;
return writer.toArray();
};
import { ygopro } from "../../../idl/ocgcore";
import { BufferWriter } from "../../bufferIO";
// @ts-ignore
import { BufferWriter } from "rust-src";
export default (
response: ygopro.CtosGameMsgResponse.SelectUnselectCardResponse
) => {
const writer = new BufferWriter();
if (response.cancel_or_finish) {
const array = new Uint8Array(4);
const writer = new BufferWriter(array, true);
writer.writeInt32(-1);
return array;
} else {
const array = new Uint8Array(2);
const writer = new BufferWriter(array, true);
writer.writeUint8(1);
writer.writeUint8(response.selected_ptr);
return array;
}
return writer.toArray();
};
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment