idz: Fix saveGarage processing

This commit is contained in:
b166fe48b91eb09f279b79a4ecf57b2f8f0d3705 2021-02-03 18:08:25 -05:00 committed by da5669c09fdb0a288ba01e259a609d7779ac7fc9
parent ea92e4e981
commit 0937c0fadf
4 changed files with 19 additions and 10 deletions

View File

@ -1,5 +1,6 @@
import { car } from "./_car";
import { SaveGarageRequest } from "../request/saveGarage";
import { AimeId } from "../../../model";
saveGarage1.msgCode = 0x008e;
saveGarage1.msgLen = 0x0090;
@ -13,8 +14,9 @@ export function saveGarage1(buf: Buffer): SaveGarageRequest {
return {
type: "save_garage_req",
aimeId: buf.readUInt32LE(0x0004),
payload: car(buf.slice(0x0008, 0x0068)),
version: 1,
aimeId: buf.readUInt32LE(0x0004) as AimeId,
car: car(buf.slice(0x0008, 0x0068)),
field_0068,
field_0080: buf.readUInt8(0x0080),
field_0081: buf.readUInt8(0x0081) !== 0,
@ -33,8 +35,9 @@ export function saveGarage2(buf: Buffer): SaveGarageRequest {
return {
type: "save_garage_req",
aimeId: buf.readUInt32LE(0x0004),
payload: car(buf.slice(0x0008, 0x0068)),
version: 2,
aimeId: buf.readUInt32LE(0x0004) as AimeId,
car: car(buf.slice(0x0008, 0x0068)),
field_0068,
field_0080: buf.readUInt8(0x0088),
field_0081: buf.readUInt8(0x0089) !== 0,

View File

@ -250,7 +250,7 @@ function encode130(res: Response): Buffer {
return saveExpedition2(res);
case "save_garage_res":
return saveGarage2(res);
return saveGarage1(res);
case "save_new_car_res":
return saveNewCar2(res);
@ -361,7 +361,7 @@ function encode210(res: Response): Buffer {
return saveExpedition2(res);
case "save_garage_res":
return saveGarage1(res);
return saveGarage2(res);
case "save_new_car_res":
return saveNewCar1(res);

View File

@ -2,10 +2,14 @@ import { SaveGarageRequest } from "../request/saveGarage";
import { SaveGarageResponse } from "../response/saveGarage";
import { Repositories } from "../repo";
export function saveGarage(
export async function saveGarage(
w: Repositories,
req: SaveGarageRequest
): SaveGarageResponse {
): Promise<SaveGarageResponse> {
const profileId = await w.profile().find(req.aimeId, req.version);
await w.car().saveCar(profileId, req.car);
return {
type: "save_garage_res",
status: 0, // Zero means success for this particular message -.-

View File

@ -1,9 +1,11 @@
import { Car } from "../model/car";
import { AimeId } from "../../../model";
export interface SaveGarageRequest {
type: "save_garage_req";
aimeId: number;
payload: Car;
version: number;
aimeId: AimeId;
car: Car;
field_0068: number[];
field_0080: number;
field_0081: boolean;