@rhyster/wow-casc-dbc 2.9.17 → 2.11.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dbd.d.ts.map +1 -1
- package/dist/index.cjs +27 -10
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +27 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/dbd.ts +30 -11
package/package.json
CHANGED
package/src/dbd.ts
CHANGED
|
@@ -281,23 +281,42 @@ export default class DBDParser {
|
|
|
281
281
|
const castBuffer = getCastBuffer(
|
|
282
282
|
typeof cell.data === 'number' ? BigInt(cell.data) : cell.data,
|
|
283
283
|
srcSize,
|
|
284
|
-
|
|
284
|
+
dstSize * column.arraySize,
|
|
285
285
|
);
|
|
286
286
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
287
|
+
if (dstSize > 6) {
|
|
288
|
+
assert(dstSize === 8, `Unexpected size ${dstSize.toString()} for column ${column.name}`);
|
|
289
|
+
|
|
290
|
+
const values: bigint[] = [];
|
|
291
|
+
if (column.isSigned) {
|
|
292
|
+
for (let i = 0; i < column.arraySize; i += 1) {
|
|
293
|
+
const value = castBuffer.readBigInt64LE(i * dstSize);
|
|
294
|
+
values.push(value);
|
|
295
|
+
}
|
|
296
|
+
} else {
|
|
297
|
+
for (let i = 0; i < column.arraySize; i += 1) {
|
|
298
|
+
const value = castBuffer.readBigUInt64LE(i * dstSize);
|
|
299
|
+
values.push(value);
|
|
300
|
+
}
|
|
292
301
|
}
|
|
302
|
+
|
|
303
|
+
data[column.name] = values;
|
|
293
304
|
} else {
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
305
|
+
const values: number[] = [];
|
|
306
|
+
if (column.isSigned) {
|
|
307
|
+
for (let i = 0; i < column.arraySize; i += 1) {
|
|
308
|
+
const value = castBuffer.readIntLE(i * dstSize, dstSize);
|
|
309
|
+
values.push(value);
|
|
310
|
+
}
|
|
311
|
+
} else {
|
|
312
|
+
for (let i = 0; i < column.arraySize; i += 1) {
|
|
313
|
+
const value = castBuffer.readUIntLE(i * dstSize, dstSize);
|
|
314
|
+
values.push(value);
|
|
315
|
+
}
|
|
297
316
|
}
|
|
298
|
-
}
|
|
299
317
|
|
|
300
|
-
|
|
318
|
+
data[column.name] = values;
|
|
319
|
+
}
|
|
301
320
|
} else if (typeof cell.data === 'number') {
|
|
302
321
|
data[column.name] = castIntegerBySize(
|
|
303
322
|
cell.data,
|