From 1e809f59a3c1ddd77edc39136f3cd2457d44b0cb Mon Sep 17 00:00:00 2001 From: Tau Date: Wed, 8 May 2019 20:17:09 -0400 Subject: [PATCH] idz: Implement new req code for TA save..? --- src/idz/decoder/index.ts | 5 +++-- src/idz/decoder/saveTimeAttack.ts | 23 +++++++++++++++++++---- 2 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/idz/decoder/index.ts b/src/idz/decoder/index.ts index f7372d5..76d755b 100644 --- a/src/idz/decoder/index.ts +++ b/src/idz/decoder/index.ts @@ -29,7 +29,7 @@ import { saveProfile2 } from "./saveProfile2"; import { saveProfile3 } from "./saveProfile3"; import { saveSettings } from "./saveSettings"; import { saveStocker } from "./saveStocker"; -import { saveTimeAttack } from "./saveTimeAttack"; +import { saveTimeAttack1, saveTimeAttack2 } from "./saveTimeAttack"; import { saveTopic } from "./saveTopic"; import { unlockProfile } from "./unlockProfile"; import { updateProvisionalStoreRank } from "./updateProvisionalStoreRank"; @@ -83,7 +83,8 @@ const funcList: ReaderFn[] = [ saveProfile3, saveSettings, saveStocker, - saveTimeAttack, + saveTimeAttack1, + saveTimeAttack2, saveTopic, unlockProfile, updateProvisionalStoreRank, diff --git a/src/idz/decoder/saveTimeAttack.ts b/src/idz/decoder/saveTimeAttack.ts index 3dc7c83..fcdbeaa 100644 --- a/src/idz/decoder/saveTimeAttack.ts +++ b/src/idz/decoder/saveTimeAttack.ts @@ -4,10 +4,7 @@ import { CarSelector } from "../model/car"; import { Profile } from "../model/profile"; import { SaveTimeAttackRequest } from "../request/saveTimeAttack"; -saveTimeAttack.msgCode = 0x00cd as RequestCode; -saveTimeAttack.msgLen = 0x0080; - -export function saveTimeAttack(buf: Buffer): SaveTimeAttackRequest { +function saveTimeAttack(buf: Buffer): SaveTimeAttackRequest { return { type: "save_time_attack_req", profileId: buf.readUInt32LE(0x0004) as ExtId, @@ -34,3 +31,21 @@ export function saveTimeAttack(buf: Buffer): SaveTimeAttackRequest { field_0060: buf.readUInt16LE(0x0060), }; } + +// There is ... literally no difference between these messages other than their +// request code..? Even the response uses the same response code, despite +// the request codes differing. + +saveTimeAttack1.msgCode = 0x00cd as RequestCode; +saveTimeAttack1.msgLen = 0x0080; + +export function saveTimeAttack1(buf: Buffer): SaveTimeAttackRequest { + return saveTimeAttack(buf); +} + +saveTimeAttack2.msgCode = 0x0136 as RequestCode; +saveTimeAttack2.msgLen = 0x0080; + +export function saveTimeAttack2(buf: Buffer): SaveTimeAttackRequest { + return saveTimeAttack(buf); +}