XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFESpaceNinjaServer

A simple server for a small space ninja game

公开
关注 0 Fork 0 Star 0
返回提交历史

XFEstudio/XFESpaceNinjaServer

fix: weapon seed's low dword being sign extended (#1914)

JavaScript's semantics here are incredibly stupid, but basically if the initial DWORD's high WORD's MSB is true, the number would become negative after the shift left by 16. Then when ORing it with the highDword, the initial DWORD would be sign-extended to a QWORD, meaning the high DWORD would become all 1s, basically cancelling out the entire OR operation. Reviewed-on: https://onlyg.it/OpenWF/SpaceNinjaServer/pulls/1914 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>

94687689
Sainan <63328889+Sainan@users.noreply.github.com>
提交于

代码差异

1 个文件 +1 -1
Modified src/services/serversideVendorsService.ts +1 -1
@@ -286,7 +286,7 @@ const generateVendorManifest = (vendorInfo: IGeneratableVendorInfo): IVendorMani
286 286 item.LocTagRandSeed = (rng.randomInt(0, 0xffff) << 16) | rng.randomInt(0, 0xffff);
287 287 if (vendorInfo.RandomSeedType == "VRST_WEAPON") {
288 288 const highDword = (rng.randomInt(0, 0xffff) << 16) | rng.randomInt(0, 0xffff);
289 item.LocTagRandSeed = (BigInt(highDword) << 32n) | BigInt(item.LocTagRandSeed);
289 item.LocTagRandSeed = (BigInt(highDword) << 32n) | (BigInt(item.LocTagRandSeed) & 0xffffffffn);
290 290 }
291 291 }
292 292 processed.ItemManifest.push(item);