Skip to content

Commit 73bb94e

Browse files
committed
feat(engine): Updated unpack process to use different dir
Also optimized pdata/gdata in Packet And removed the old dump folder cleanup, which existed for when bz2 would dump temp files there There's a few more controls exposed in .env now
1 parent 91bc959 commit 73bb94e

File tree

11 files changed

+331
-179
lines changed

11 files changed

+331
-179
lines changed

.env.example

+3
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ GAME_PORT=43594
2323

2424
# SKIP_CRC=false
2525
# JAVA_PATH="C:\Program Files\Eclipse Adoptium\jdk-17.0.11.9-hotspot\bin\java"
26+
# DATA_SRC_DIR=data/src
27+
# VALIDATE_PACK=true
28+
# STRICT_FOLDERS=true
2629

2730
# JMODS=player1,player2,player3
2831

src/jagex2/io/FileStream.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,7 @@ export default class FileStream {
189189
available = 512;
190190
}
191191

192-
this.dat.pdata(data.slice(written, written + available));
192+
this.dat.pdata(data.subarray(written, written + available));
193193
written += available;
194194
sector = nextSector;
195195
}

src/jagex2/io/Packet.ts

+4-8
Original file line numberDiff line numberDiff line change
@@ -224,10 +224,8 @@ export default class Packet extends Hashable {
224224
}
225225

226226
pdata(src: Uint8Array, offset: number, length: number): void {
227-
const total: number = offset + length;
228-
for (let i: number = offset; i < total; i++) {
229-
this.#view.setUint8(this.pos++, src[i]);
230-
}
227+
this.data.set(src.subarray(offset, offset + length), this.pos);
228+
this.pos += length - offset;
231229
}
232230

233231
psize4(size: number): void {
@@ -323,10 +321,8 @@ export default class Packet extends Hashable {
323321
}
324322

325323
gdata(dest: Uint8Array, offset: number, length: number): void {
326-
const total: number = offset + length;
327-
for (let i: number = offset; i < total; i++) {
328-
dest[i] = this.#view.getUint8(this.pos++);
329-
}
324+
dest.set(this.data.subarray(this.pos, this.pos + length), offset);
325+
this.pos += length;
330326
}
331327

332328
gsmarts(): number {

src/lostcity/app.ts

-5
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,6 @@ if (!fs.existsSync('.env')) {
1818

1919
fs.mkdirSync('data/players', { recursive: true });
2020

21-
if (fs.existsSync('dump')) {
22-
fs.rmSync('dump', { recursive: true, force: true });
23-
fs.mkdirSync('dump', { recursive: true });
24-
}
25-
2621
await World.start();
2722

2823
startWeb();

src/lostcity/login.ts

-5
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,5 @@ if (!fs.existsSync('data/config/login.json')) {
1616

1717
fs.mkdirSync('data/players', { recursive: true });
1818

19-
if (fs.existsSync('dump')) {
20-
fs.rmSync('dump', { recursive: true, force: true });
21-
fs.mkdirSync('dump', { recursive: true });
22-
}
23-
2419
const login = new LoginServer();
2520
login.start();

src/lostcity/tools/pack/symbols.ts

-2
Original file line numberDiff line numberDiff line change
@@ -179,9 +179,7 @@ export function generateServerSymbols() {
179179
}
180180
fs.writeFileSync('data/symbols/vars.sym', varsSymbols);
181181

182-
console.time('Loading param.dat');
183182
ParamType.load('data/pack');
184-
console.timeEnd('Loading param.dat');
185183

186184
let paramSymbols = '';
187185
const params = loadPack('data/src/pack/param.pack');

src/lostcity/tools/packconfig/PackShared.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ export class PackedData {
5050
marker: number;
5151

5252
constructor(size: number) {
53-
this.dat = Packet.alloc(4);
54-
this.idx = Packet.alloc(2);
53+
this.dat = Packet.alloc(5);
54+
this.idx = Packet.alloc(3);
5555
this.size = size;
5656

5757
this.dat.p2(size);
@@ -194,8 +194,8 @@ export type ConfigDatIdx = { client: PackedData, server: PackedData };
194194
export type ConfigPackCallback = (configs: Map<string, ConfigLine[]>) => ConfigDatIdx;
195195
export type ConfigSaveCallback = (dat: Packet, idx: Packet) => void;
196196

197-
export function readConfigs(extension: string, requiredProperties: string[], parse: ConfigParseCallback, pack: ConfigPackCallback, saveClient: ConfigSaveCallback, saveServer: ConfigSaveCallback) {
198-
const files = readFiles(findFiles('data/src/scripts', extension));
197+
export function readConfigs(extension: string, requiredProperties: string[], parse: ConfigParseCallback, pack: ConfigPackCallback, saveClient: ConfigSaveCallback, saveServer: ConfigSaveCallback, srcDir: string = 'data/src/scripts') {
198+
const files = readFiles(findFiles(srcDir, extension));
199199

200200
const configs = new Map<string, ConfigLine[]>();
201201
files.forEach((value, file) => {

0 commit comments

Comments
 (0)