idz: Implement saveTeamBanner

This commit is contained in:
Tau
2019-11-06 17:28:30 -05:00
parent a3df4df277
commit 2bd9ce919a
6 changed files with 55 additions and 0 deletions
+2
View File
@@ -31,6 +31,7 @@ import { saveProfile2 } from "./saveProfile2";
import { saveProfile3 } from "./saveProfile3";
import { saveSettings } from "./saveSettings";
import { saveStocker } from "./saveStocker";
import { saveTeamBanner } from "./saveTeamBanner";
import { saveTimeAttack1, saveTimeAttack2 } from "./saveTimeAttack";
import { saveTopic } from "./saveTopic";
import { unlockProfile } from "./unlockProfile";
@@ -90,6 +91,7 @@ const funcList: ReaderFn[] = [
saveProfile3,
saveSettings,
saveStocker,
saveTeamBanner,
saveTimeAttack1,
saveTimeAttack2,
saveTopic,
+16
View File
@@ -0,0 +1,16 @@
import { RequestCode } from "./_defs";
import { SaveTeamBannerRequest } from "../request/saveTeamBanner";
import { ExtId } from "../model/base";
import { Team } from "../model/team";
saveTeamBanner.msgCode = 0x0089 as RequestCode;
saveTeamBanner.msgLen = 0x0010;
export function saveTeamBanner(buf: Buffer): SaveTeamBannerRequest {
return {
type: "save_team_banner_req",
teamExtId: buf.readUInt32LE(0x0004) as ExtId<Team>,
nameBg: buf.readUInt32LE(0x0008),
nameFx: buf.readUInt32LE(0x000c),
};
}
+4
View File
@@ -28,6 +28,7 @@ import { saveNewCar } from "./saveNewCar";
import { saveProfile } from "./saveProfile";
import { saveSettings } from "./saveSettings";
import { saveStocker } from "./saveStocker";
import { saveTeamBanner } from "./saveTeamBanner";
import { saveTimeAttack } from "./saveTimeAttack";
import { saveTopic } from "./saveTopic";
import { unlockProfile } from "./unlockProfile";
@@ -139,6 +140,9 @@ export async function dispatch(
case "save_stocker_req":
return saveStocker(w, req);
case "save_team_banner_req":
return saveTeamBanner(w, req);
case "save_time_attack_req":
return saveTimeAttack(w, req);
+22
View File
@@ -0,0 +1,22 @@
import { Repositories } from "../repo";
import { SaveTeamBannerRequest } from "../request/saveTeamBanner";
import { GenericResponse } from "../response/generic";
export async function saveTeamBanner(
w: Repositories,
req: SaveTeamBannerRequest
): Promise<GenericResponse> {
const teamId = await w.teams().find(req.teamExtId);
const orig = await w.teams().load(teamId);
await w.teams().save(teamId, {
...orig,
nameBg: req.nameBg,
nameFx: req.nameFx,
});
return {
type: "generic_res",
status: 0, // ignored
};
}
+2
View File
@@ -28,6 +28,7 @@ import { SaveNewCarRequest } from "./saveNewCar";
import { SaveProfileRequest } from "./saveProfile";
import { SaveSettingsRequest } from "./saveSettings";
import { SaveStockerRequest } from "./saveStocker";
import { SaveTeamBannerRequest } from "./saveTeamBanner";
import { SaveTimeAttackRequest } from "./saveTimeAttack";
import { SaveTopicRequest } from "./saveTopic";
import { UnlockProfileRequest } from "./unlockProfile";
@@ -69,6 +70,7 @@ export type Request =
| SaveProfileRequest
| SaveSettingsRequest
| SaveStockerRequest
| SaveTeamBannerRequest
| SaveTimeAttackRequest
| SaveTopicRequest
| UnlockProfileRequest
+9
View File
@@ -0,0 +1,9 @@
import { ExtId } from "../model/base";
import { Team } from "../model/team";
export interface SaveTeamBannerRequest {
type: "save_team_banner_req";
teamExtId: ExtId<Team>;
nameBg: number;
nameFx: number;
}