idz: Use string I/O helpers

This commit is contained in:
Tau
2021-02-03 23:43:37 +00:00
committed by Tau
parent 8291994c93
commit 3d0bdf25d4
13 changed files with 36 additions and 45 deletions
+3 -7
View File
@@ -1,9 +1,8 @@
import iconv from "iconv-lite";
import { car } from "./_car";
import { chara } from "./_chara";
import { CreateProfileRequest } from "../request/createProfile";
import { AimeId } from "../../../model";
import { readAsciiStr, readSjisStr } from "../../util/bin";
createProfile.msgCode = 0x0066;
createProfile.msgLen = 0x00c0;
@@ -12,11 +11,8 @@ export function createProfile(buf: Buffer): CreateProfileRequest {
return {
type: "create_profile_req",
aimeId: buf.readInt32LE(0x0004) as AimeId,
luid: buf.slice(0x0008, buf.indexOf("\0", 0x0008)).toString("ascii"),
name: iconv.decode(
buf.slice(0x001e, buf.indexOf("\0", 0x001e)),
"shift_jis"
),
luid: readAsciiStr(buf, 0x0008, 0x001e),
name: readSjisStr(buf, 0x001e, 0x0034),
field_0034: buf.readUInt32LE(0x0034),
car: car(buf.slice(0x0040, 0x00a0)),
chara: chara(buf.slice(0x00a0, 0x00b4)),
+3 -7
View File
@@ -1,7 +1,6 @@
import iconv from "iconv-lite";
import { CreateTeamRequest } from "../request/createTeam";
import { AimeId } from "../../../model";
import { readAsciiStr, readSjisStr } from "../../util/bin";
createTeam.msgCode = 0x0071;
createTeam.msgLen = 0x0050;
@@ -10,15 +9,12 @@ export function createTeam(buf: Buffer): CreateTeamRequest {
return {
type: "create_team_req",
aimeId: buf.readUInt32LE(0x0004) as AimeId,
teamName: iconv.decode(
buf.slice(0x0008, buf.indexOf("\0", 0x0008)),
"shift_jis"
),
teamName: readSjisStr(buf, 0x0008, 0x0028),
field_0028: buf.readUInt16LE(0x0028),
field_002C: buf.readUInt32LE(0x002c),
nameBg: buf.readUInt8(0x0030),
field_0032: buf.readUInt16LE(0x0032),
prevTeamId: buf.readUInt32LE(0x0034),
pcbId: buf.slice(0x0038, buf.indexOf("\0", 0x0038)).toString("ascii"),
pcbId: readAsciiStr(buf, 0x0038, 0x0050),
};
}
+3 -2
View File
@@ -3,6 +3,7 @@ import {
LoadProfileRequest3,
} from "../request/loadProfile";
import { AimeId } from "../../../model";
import { readAsciiStr } from "../../util/bin";
loadProfile2.msgCode = 0x0067;
loadProfile2.msgLen = 0x0020;
@@ -12,7 +13,7 @@ export function loadProfile2(buf: Buffer): LoadProfileRequest2 {
type: "load_profile_req",
format: 2,
aimeId: buf.readUInt32LE(0x0004) as AimeId,
luid: buf.slice(0x0008, buf.indexOf("\0", 0x0008)).toString("ascii"),
luid: readAsciiStr(buf, 0x0008, 0x0020),
};
}
@@ -24,6 +25,6 @@ export function loadProfile3(buf: Buffer): LoadProfileRequest3 {
type: "load_profile_req",
format: 3,
aimeId: buf.readUInt32LE(0x0004) as AimeId,
luid: buf.slice(0x0008, buf.indexOf("\0", 0x0008)).toString("ascii"),
luid: readAsciiStr(buf, 0x0008, 0x0020),
};
}
+2 -1
View File
@@ -1,3 +1,4 @@
import { readAsciiStr } from "../../util/bin";
import { LockProfileRequest } from "../request/lockProfile";
lockProfile.msgCode = 0x0069;
@@ -7,7 +8,7 @@ export function lockProfile(buf: Buffer): LockProfileRequest {
return {
type: "lock_profile_req",
aimeId: buf.readUInt32LE(0x0004),
pcbId: buf.slice(0x0008, buf.indexOf("\0", 0x0008)).toString("ascii"),
pcbId: readAsciiStr(buf, 0x0008, 0x0018),
field_0018: buf.readUInt16LE(0x0018),
};
}
+2 -1
View File
@@ -1,5 +1,6 @@
import { LockProfileExtendRequest } from "../request/lockProfileExtend";
import { AimeId } from "../../../model";
import { readAsciiStr } from "../../util/bin";
lockProfileExtend.msgCode = 0x006d;
lockProfileExtend.msgLen = 0x0020;
@@ -8,6 +9,6 @@ export function lockProfileExtend(buf: Buffer): LockProfileExtendRequest {
return {
type: "lock_profile_extend_req",
aimeId: buf.readUInt32LE(0x0004) as AimeId,
luid: buf.slice(0x0008, buf.indexOf("\0")).toString("ascii"),
luid: readAsciiStr(buf, 0x0008, 0x0020),
};
}
+2 -1
View File
@@ -1,5 +1,6 @@
import { car } from "./_car";
import { SaveNewCarRequest } from "../request/saveNewCar";
import { readAsciiStr } from "../../util/bin";
import { AimeId } from "../../../model";
saveNewCar.msgCode = 0x0079;
@@ -9,7 +10,7 @@ export function saveNewCar(buf: Buffer): SaveNewCarRequest {
return {
type: "save_new_car_req",
aimeId: buf.readUInt32LE(0x0004) as AimeId,
luid: buf.slice(0x0008, buf.indexOf(0, 0x0008)).toString("ascii"),
luid: readAsciiStr(buf, 0x0008, 0x001e),
car: car(buf.slice(0x0020, 0x0080)),
field_0080: buf.readUInt32LE(0x0080),
};
+2 -1
View File
@@ -2,6 +2,7 @@ import { ExtId } from "../model/base";
import { Team } from "../model/team";
import { UpdateTeamLeaderRequest } from "../request/updateTeamLeader";
import { AimeId } from "../../../model";
import { readAsciiStr } from "../../util/bin";
updateTeamLeader.msgCode = 0x008a;
updateTeamLeader.msgLen = 0x0020;
@@ -11,6 +12,6 @@ export function updateTeamLeader(buf: Buffer): UpdateTeamLeaderRequest {
type: "update_team_leader_req",
aimeId: buf.readUInt32LE(0x0004) as AimeId,
teamExtId: buf.readUInt32LE(0x0008) as ExtId<Team>,
field_000C: buf.slice(0x000c, buf.indexOf("\0", 0x000c)).toString("ascii"),
field_000C: readAsciiStr(buf, 0x000c, 0x0020),
};
}