diff --git a/src/idz/userdb/decoder/createAutoTeam.ts b/src/idz/userdb/decoder/createAutoTeam.ts index 578b90b..e1081cc 100644 --- a/src/idz/userdb/decoder/createAutoTeam.ts +++ b/src/idz/userdb/decoder/createAutoTeam.ts @@ -8,6 +8,7 @@ export function createAutoTeam(buf: Buffer): CreateAutoTeamRequest { return { type: "create_auto_team_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, field_0008: buf.readUInt32LE(0x0008), field_000C: buf.readUInt8(0x000c), }; diff --git a/src/idz/userdb/decoder/createProfile.ts b/src/idz/userdb/decoder/createProfile.ts index b7479c9..93939d6 100644 --- a/src/idz/userdb/decoder/createProfile.ts +++ b/src/idz/userdb/decoder/createProfile.ts @@ -11,6 +11,7 @@ export function createProfile(buf: Buffer): CreateProfileRequest { return { type: "create_profile_req", aimeId: buf.readInt32LE(0x0004) as AimeId, + version: 1, luid: readAsciiStr(buf, 0x0008, 0x001e), name: readSjisStr(buf, 0x001e, 0x0034), field_0034: buf.readUInt32LE(0x0034), diff --git a/src/idz/userdb/decoder/createTeam.ts b/src/idz/userdb/decoder/createTeam.ts index ef27ef3..cfd6093 100644 --- a/src/idz/userdb/decoder/createTeam.ts +++ b/src/idz/userdb/decoder/createTeam.ts @@ -9,6 +9,7 @@ export function createTeam(buf: Buffer): CreateTeamRequest { return { type: "create_team_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, teamName: readSjisStr(buf, 0x0008, 0x0028), field_0028: buf.readUInt16LE(0x0028), field_002C: buf.readUInt32LE(0x002c), diff --git a/src/idz/userdb/decoder/discoverProfile.ts b/src/idz/userdb/decoder/discoverProfile.ts index ce58a88..2f884d2 100644 --- a/src/idz/userdb/decoder/discoverProfile.ts +++ b/src/idz/userdb/decoder/discoverProfile.ts @@ -8,5 +8,6 @@ export function discoverProfile(buf: Buffer): DiscoverProfileRequest { return { type: "discover_profile_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, }; } diff --git a/src/idz/userdb/decoder/loadGarage.ts b/src/idz/userdb/decoder/loadGarage.ts index 80862f3..17d809e 100644 --- a/src/idz/userdb/decoder/loadGarage.ts +++ b/src/idz/userdb/decoder/loadGarage.ts @@ -8,6 +8,7 @@ export function loadGarage(buf: Buffer): LoadGarageRequest { return { type: "load_garage_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, fetchOffset: buf.readUInt8(0x0008), field_000A: buf.readUInt16LE(0x000a), }; diff --git a/src/idz/userdb/decoder/loadProfile.ts b/src/idz/userdb/decoder/loadProfile.ts index 741db65..6a65ac5 100644 --- a/src/idz/userdb/decoder/loadProfile.ts +++ b/src/idz/userdb/decoder/loadProfile.ts @@ -13,6 +13,7 @@ export function loadProfile2(buf: Buffer): LoadProfileRequest2 { type: "load_profile_req", format: 2, aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, luid: readAsciiStr(buf, 0x0008, 0x0020), }; } @@ -25,6 +26,7 @@ export function loadProfile3(buf: Buffer): LoadProfileRequest3 { type: "load_profile_req", format: 3, aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, luid: readAsciiStr(buf, 0x0008, 0x0020), }; } diff --git a/src/idz/userdb/decoder/loadStocker.ts b/src/idz/userdb/decoder/loadStocker.ts index c4067fa..0c789d4 100644 --- a/src/idz/userdb/decoder/loadStocker.ts +++ b/src/idz/userdb/decoder/loadStocker.ts @@ -8,5 +8,6 @@ export function loadStocker(buf: Buffer): LoadStockerRequest { return { type: "load_stocker_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, }; } diff --git a/src/idz/userdb/decoder/loadTeam.ts b/src/idz/userdb/decoder/loadTeam.ts index ba99a49..169eeb9 100644 --- a/src/idz/userdb/decoder/loadTeam.ts +++ b/src/idz/userdb/decoder/loadTeam.ts @@ -11,6 +11,7 @@ export function loadTeam(buf: Buffer): LoadTeamRequest { return { type: "load_team_req", aimeId: buf.readUInt32LE(0x0004), + version: 1, teamExtId: extId !== 0xffffffff ? (extId as ExtId) : undefined, }; } diff --git a/src/idz/userdb/decoder/saveNewCar.ts b/src/idz/userdb/decoder/saveNewCar.ts index 48cd570..8e0ce57 100644 --- a/src/idz/userdb/decoder/saveNewCar.ts +++ b/src/idz/userdb/decoder/saveNewCar.ts @@ -10,6 +10,7 @@ export function saveNewCar(buf: Buffer): SaveNewCarRequest { return { type: "save_new_car_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, luid: readAsciiStr(buf, 0x0008, 0x001e), car: car(buf.slice(0x0020, 0x0080)), field_0080: buf.readUInt32LE(0x0080), diff --git a/src/idz/userdb/decoder/saveProfile2.ts b/src/idz/userdb/decoder/saveProfile2.ts index 3e06d27..6161ad9 100644 --- a/src/idz/userdb/decoder/saveProfile2.ts +++ b/src/idz/userdb/decoder/saveProfile2.ts @@ -47,6 +47,7 @@ export function saveProfile2(buf: Buffer): SaveProfileRequest2 { type: "save_profile_req", format: 2, aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, lv: buf.readUInt16LE(0x0026), exp: buf.readUInt32LE(0x0028), fame: buf.readUInt32LE(0x0468), diff --git a/src/idz/userdb/decoder/saveProfile3.ts b/src/idz/userdb/decoder/saveProfile3.ts index ba85590..08c6b73 100644 --- a/src/idz/userdb/decoder/saveProfile3.ts +++ b/src/idz/userdb/decoder/saveProfile3.ts @@ -49,6 +49,7 @@ export function saveProfile3(buf: Buffer): SaveProfileRequest2 { type: "save_profile_req", format: 2, aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, lv: buf.readUInt16LE(0x0026), exp: buf.readUInt32LE(0x0028), fame: buf.readUInt32LE(0x04fc), diff --git a/src/idz/userdb/decoder/saveSettings.ts b/src/idz/userdb/decoder/saveSettings.ts index ad742be..e13a24d 100644 --- a/src/idz/userdb/decoder/saveSettings.ts +++ b/src/idz/userdb/decoder/saveSettings.ts @@ -8,6 +8,7 @@ export function saveSettings(buf: Buffer): SaveSettingsRequest { return { type: "save_settings_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, dpoint: buf.readUInt32LE(0x0008), settings: { music: buf.readUInt16LE(0x0002), diff --git a/src/idz/userdb/decoder/saveStocker.ts b/src/idz/userdb/decoder/saveStocker.ts index a8a9f5a..2228b85 100644 --- a/src/idz/userdb/decoder/saveStocker.ts +++ b/src/idz/userdb/decoder/saveStocker.ts @@ -11,7 +11,7 @@ export function saveStocker(buf: Buffer): SaveStockerRequest { return { type: "save_stocker_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, - + version: 1, backgrounds: bitmap(buf.slice(0x0008, 0x002c)), selectedCar: buf.readUInt16LE(0x009c) as CarSelector, chara: chara(buf.slice(0x009e, 0x00b2)), diff --git a/src/idz/userdb/decoder/saveTeamBanner.ts b/src/idz/userdb/decoder/saveTeamBanner.ts index 54afa4b..b023da4 100644 --- a/src/idz/userdb/decoder/saveTeamBanner.ts +++ b/src/idz/userdb/decoder/saveTeamBanner.ts @@ -9,6 +9,7 @@ export function saveTeamBanner(buf: Buffer): SaveTeamBannerRequest { return { type: "save_team_banner_req", teamExtId: buf.readUInt32LE(0x0004) as ExtId, + version: 1, nameBg: buf.readUInt32LE(0x0008), nameFx: buf.readUInt32LE(0x000c), }; diff --git a/src/idz/userdb/decoder/saveTimeAttack.ts b/src/idz/userdb/decoder/saveTimeAttack.ts index 515218f..40c0f49 100644 --- a/src/idz/userdb/decoder/saveTimeAttack.ts +++ b/src/idz/userdb/decoder/saveTimeAttack.ts @@ -7,6 +7,7 @@ function saveTimeAttack(buf: Buffer): SaveTimeAttackRequest { return { type: "save_time_attack_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, dayNight: buf.readUInt8(0x0054) & 1, payload: { routeNo: (buf.readUInt8(0x0054) >> 1) as RouteNo, diff --git a/src/idz/userdb/decoder/updateTeamLeader.ts b/src/idz/userdb/decoder/updateTeamLeader.ts index 2a88823..0129840 100644 --- a/src/idz/userdb/decoder/updateTeamLeader.ts +++ b/src/idz/userdb/decoder/updateTeamLeader.ts @@ -11,6 +11,7 @@ export function updateTeamLeader(buf: Buffer): UpdateTeamLeaderRequest { return { type: "update_team_leader_req", aimeId: buf.readUInt32LE(0x0004) as AimeId, + version: 1, teamExtId: buf.readUInt32LE(0x0008) as ExtId, field_000C: readAsciiStr(buf, 0x000c, 0x0020), }; diff --git a/src/idz/userdb/decoder/updateTeamMember.ts b/src/idz/userdb/decoder/updateTeamMember.ts index 3624978..d808b09 100644 --- a/src/idz/userdb/decoder/updateTeamMember.ts +++ b/src/idz/userdb/decoder/updateTeamMember.ts @@ -11,6 +11,7 @@ export function updateTeamMember(buf: Buffer): UpdateTeamMemberRequest { type: "update_team_member_req", action: buf.readUInt8(0x0004) === 0 ? "add" : "remove", aimeId: buf.readUInt32LE(0x0008) as AimeId, + version: 1, teamExtId: buf.readUInt32LE(0x000c) as ExtId, }; } diff --git a/src/idz/userdb/request/createAutoTeam.ts b/src/idz/userdb/request/createAutoTeam.ts index 1b15194..94b5d60 100644 --- a/src/idz/userdb/request/createAutoTeam.ts +++ b/src/idz/userdb/request/createAutoTeam.ts @@ -3,6 +3,7 @@ import { AimeId } from "../../../model"; export interface CreateAutoTeamRequest { type: "create_auto_team_req"; aimeId: AimeId; + version: number; field_0008: number; field_000C: number; } diff --git a/src/idz/userdb/request/createProfile.ts b/src/idz/userdb/request/createProfile.ts index 8645025..05de31a 100644 --- a/src/idz/userdb/request/createProfile.ts +++ b/src/idz/userdb/request/createProfile.ts @@ -5,6 +5,7 @@ import { AimeId } from "../../../model"; export interface CreateProfileRequest { type: "create_profile_req"; aimeId: AimeId; + version: number; luid: string; name: string; field_0034: number; diff --git a/src/idz/userdb/request/createTeam.ts b/src/idz/userdb/request/createTeam.ts index 786c23a..f206445 100644 --- a/src/idz/userdb/request/createTeam.ts +++ b/src/idz/userdb/request/createTeam.ts @@ -3,6 +3,7 @@ import { AimeId } from "../../../model"; export interface CreateTeamRequest { type: "create_team_req"; aimeId: AimeId; + version: number; teamName: string; // len 0x20 field_0028: number; // u16 field_002C: number; // u32 (but only holds a u8) diff --git a/src/idz/userdb/request/discoverProfile.ts b/src/idz/userdb/request/discoverProfile.ts index a1e4bb3..941153f 100644 --- a/src/idz/userdb/request/discoverProfile.ts +++ b/src/idz/userdb/request/discoverProfile.ts @@ -3,4 +3,5 @@ import { AimeId } from "../../../model"; export interface DiscoverProfileRequest { type: "discover_profile_req"; aimeId: AimeId; + version: number; } diff --git a/src/idz/userdb/request/loadGarage.ts b/src/idz/userdb/request/loadGarage.ts index d3c2f9d..8b72259 100644 --- a/src/idz/userdb/request/loadGarage.ts +++ b/src/idz/userdb/request/loadGarage.ts @@ -3,6 +3,7 @@ import { AimeId } from "../../../model"; export interface LoadGarageRequest { type: "load_garage_req"; aimeId: AimeId; + version: number; fetchOffset: number; field_000A: number; } diff --git a/src/idz/userdb/request/loadProfile.ts b/src/idz/userdb/request/loadProfile.ts index de42473..63119ee 100644 --- a/src/idz/userdb/request/loadProfile.ts +++ b/src/idz/userdb/request/loadProfile.ts @@ -3,6 +3,7 @@ import { AimeId } from "../../../model"; interface LoadProfileRequestBase { type: "load_profile_req"; aimeId: AimeId; + version: number; luid: string; } diff --git a/src/idz/userdb/request/loadStocker.ts b/src/idz/userdb/request/loadStocker.ts index 10d5774..78b9d2f 100644 --- a/src/idz/userdb/request/loadStocker.ts +++ b/src/idz/userdb/request/loadStocker.ts @@ -3,4 +3,5 @@ import { AimeId } from "../../../model"; export interface LoadStockerRequest { type: "load_stocker_req"; aimeId: AimeId; + version: number; } diff --git a/src/idz/userdb/request/loadTeam.ts b/src/idz/userdb/request/loadTeam.ts index 034ae70..79eed07 100644 --- a/src/idz/userdb/request/loadTeam.ts +++ b/src/idz/userdb/request/loadTeam.ts @@ -4,5 +4,6 @@ import { Team } from "../model/team"; export interface LoadTeamRequest { type: "load_team_req"; aimeId: number; + version: number; teamExtId?: ExtId; } diff --git a/src/idz/userdb/request/saveNewCar.ts b/src/idz/userdb/request/saveNewCar.ts index 792f7f2..a0692f6 100644 --- a/src/idz/userdb/request/saveNewCar.ts +++ b/src/idz/userdb/request/saveNewCar.ts @@ -4,6 +4,7 @@ import { AimeId } from "../../../model"; export interface SaveNewCarRequest { type: "save_new_car_req"; aimeId: AimeId; + version: number; luid: string; car: Car; field_0080: number; diff --git a/src/idz/userdb/request/saveProfile.ts b/src/idz/userdb/request/saveProfile.ts index f84541a..71aaf54 100644 --- a/src/idz/userdb/request/saveProfile.ts +++ b/src/idz/userdb/request/saveProfile.ts @@ -10,6 +10,7 @@ import { AimeId } from "../../../model"; interface SaveProfileRequestBase { type: "save_profile_req"; aimeId: AimeId; + version: number; lv: number; exp: number; fame: number; diff --git a/src/idz/userdb/request/saveSettings.ts b/src/idz/userdb/request/saveSettings.ts index 68418a6..8be911a 100644 --- a/src/idz/userdb/request/saveSettings.ts +++ b/src/idz/userdb/request/saveSettings.ts @@ -4,6 +4,7 @@ import { AimeId } from "../../../model"; export interface SaveSettingsRequest { type: "save_settings_req"; aimeId: AimeId; + version: number; dpoint: number; // ?? why settings: Settings; field_0010: number; diff --git a/src/idz/userdb/request/saveStocker.ts b/src/idz/userdb/request/saveStocker.ts index 32488d3..e957273 100644 --- a/src/idz/userdb/request/saveStocker.ts +++ b/src/idz/userdb/request/saveStocker.ts @@ -6,6 +6,7 @@ import { AimeId } from "../../../model"; export interface SaveStockerRequest { type: "save_stocker_req"; aimeId: AimeId; + version: number; selectedCar: CarSelector; backgrounds: Set; chara: Chara; diff --git a/src/idz/userdb/request/saveTeamBanner.ts b/src/idz/userdb/request/saveTeamBanner.ts index 0157e35..79d8cc5 100644 --- a/src/idz/userdb/request/saveTeamBanner.ts +++ b/src/idz/userdb/request/saveTeamBanner.ts @@ -4,6 +4,7 @@ import { Team } from "../model/team"; export interface SaveTeamBannerRequest { type: "save_team_banner_req"; teamExtId: ExtId; + version: number; nameBg: number; nameFx: number; } diff --git a/src/idz/userdb/request/saveTimeAttack.ts b/src/idz/userdb/request/saveTimeAttack.ts index ae79297..a4f888b 100644 --- a/src/idz/userdb/request/saveTimeAttack.ts +++ b/src/idz/userdb/request/saveTimeAttack.ts @@ -4,6 +4,7 @@ import { AimeId } from "../../../model"; export interface SaveTimeAttackRequest { type: "save_time_attack_req"; aimeId: AimeId; + version: number; dayNight: number; payload: TimeAttackScore; field_0002: number; // u16, always 1 diff --git a/src/idz/userdb/request/updateTeamLeader.ts b/src/idz/userdb/request/updateTeamLeader.ts index c5f8f42..6b3544b 100644 --- a/src/idz/userdb/request/updateTeamLeader.ts +++ b/src/idz/userdb/request/updateTeamLeader.ts @@ -5,6 +5,7 @@ import { AimeId } from "../../../model"; export interface UpdateTeamLeaderRequest { type: "update_team_leader_req"; aimeId: AimeId; + version: number; teamExtId: ExtId; field_000C: string; } diff --git a/src/idz/userdb/request/updateTeamMember.ts b/src/idz/userdb/request/updateTeamMember.ts index aa293e7..5f31027 100644 --- a/src/idz/userdb/request/updateTeamMember.ts +++ b/src/idz/userdb/request/updateTeamMember.ts @@ -6,5 +6,6 @@ export interface UpdateTeamMemberRequest { type: "update_team_member_req"; action: "add" | "remove"; aimeId: AimeId; + version: number; teamExtId: ExtId; }