From 3c4087a35c1229619304627d64775da46c499a0c Mon Sep 17 00:00:00 2001 From: Tau Date: Thu, 4 Apr 2019 15:53:11 -0400 Subject: [PATCH] do attract sequence bullshit --- src/idz/decoder/index.ts | 5 +++++ src/idz/decoder/loadTeamRanking.ts | 22 ++++++++++++++++++++++ src/idz/decoder/loadTopTen.ts | 11 +++++++++++ src/idz/encoder/index.ts | 8 ++++++++ src/idz/encoder/loadTeamRanking.ts | 10 ++++++++++ src/idz/encoder/loadTopTen.ts | 10 ++++++++++ src/idz/handler/index.ts | 8 ++++++++ src/idz/handler/loadTeamRanking.ts | 12 ++++++++++++ src/idz/handler/loadTopTen.ts | 12 ++++++++++++ src/idz/request/index.ts | 4 ++++ src/idz/request/loadTeamRanking.ts | 3 +++ src/idz/request/loadTopTen.ts | 3 +++ src/idz/response/index.ts | 4 ++++ src/idz/response/loadTeamRanking.ts | 4 ++++ src/idz/response/loadTopTen.ts | 3 +++ 15 files changed, 119 insertions(+) create mode 100644 src/idz/decoder/loadTeamRanking.ts create mode 100644 src/idz/decoder/loadTopTen.ts create mode 100644 src/idz/encoder/loadTeamRanking.ts create mode 100644 src/idz/encoder/loadTopTen.ts create mode 100644 src/idz/handler/loadTeamRanking.ts create mode 100644 src/idz/handler/loadTopTen.ts create mode 100644 src/idz/request/loadTeamRanking.ts create mode 100644 src/idz/request/loadTopTen.ts create mode 100644 src/idz/response/loadTeamRanking.ts create mode 100644 src/idz/response/loadTopTen.ts diff --git a/src/idz/decoder/index.ts b/src/idz/decoder/index.ts index 21bfa0b..ddaa065 100644 --- a/src/idz/decoder/index.ts +++ b/src/idz/decoder/index.ts @@ -12,6 +12,7 @@ import { loadRewardTable } from "./loadRewardTable"; import { loadServerList } from "./loadServerList"; import { loadStocker } from "./loadStocker"; import { loadTeam } from "./loadTeam"; +import { loadTeamRanking, loadTeamRanking2 } from "./loadTeamRanking"; import { lockProfile } from "./lockProfile"; import { saveExpedition } from "./saveExpedition"; import { saveProfile } from "./saveProfile"; @@ -22,6 +23,7 @@ import { updateProvisionalStoreRank } from "./updateProvisionalStoreRank"; import { updateStoryClearNum } from "./updateStoryClearNum"; import { RequestCode } from "../defs"; import { Request } from "../request"; +import { loadTopTen } from "./loadTopTen"; export type ReaderFn = ((buf: Buffer) => Request) & { msgCode: RequestCode; @@ -42,6 +44,9 @@ const funcList: ReaderFn[] = [ loadServerList, loadStocker, loadTeam, + loadTeamRanking, + loadTeamRanking2, + loadTopTen, lockProfile, saveExpedition, saveProfile, diff --git a/src/idz/decoder/loadTeamRanking.ts b/src/idz/decoder/loadTeamRanking.ts new file mode 100644 index 0000000..3b08b8b --- /dev/null +++ b/src/idz/decoder/loadTeamRanking.ts @@ -0,0 +1,22 @@ +import { RequestCode } from "../defs"; +import { LoadTeamRankingRequest } from "../request/loadTeamRanking"; + +loadTeamRanking.msgCode = 0x00b9 as RequestCode; +loadTeamRanking.msgLen = 0x0010; + +export function loadTeamRanking(buf: Buffer): LoadTeamRankingRequest { + return { + type: "load_team_ranking_req", + }; +} + +// not sure what the difference is... + +loadTeamRanking2.msgCode = 0x00bb as RequestCode; +loadTeamRanking2.msgLen = 0x0010; + +export function loadTeamRanking2(buf: Buffer): LoadTeamRankingRequest { + return { + type: "load_team_ranking_req", + }; +} diff --git a/src/idz/decoder/loadTopTen.ts b/src/idz/decoder/loadTopTen.ts new file mode 100644 index 0000000..a7df435 --- /dev/null +++ b/src/idz/decoder/loadTopTen.ts @@ -0,0 +1,11 @@ +import { RequestCode } from "../defs"; +import { LoadTopTenRequest } from "../request/loadTopTen"; + +loadTopTen.msgCode = 0x00b5 as RequestCode; +loadTopTen.msgLen = 0x00e0; + +export function loadTopTen(buf: Buffer): LoadTopTenRequest { + return { + type: "load_top_ten", + }; +} diff --git a/src/idz/encoder/index.ts b/src/idz/encoder/index.ts index 4aef61d..5a8e98d 100644 --- a/src/idz/encoder/index.ts +++ b/src/idz/encoder/index.ts @@ -14,11 +14,13 @@ import { loadProfile2 } from "./loadProfile2"; import { loadRewardTable } from "./loadRewardTable"; import { loadServerList } from "./loadServerList"; import { loadStocker } from "./loadStocker"; +import { loadTeamRanking } from "./loadTeamRanking"; import { saveExpedition } from "./saveExpedition"; import { saveTopic } from "./saveTopic"; import { updateProvisionalStoreRank } from "./updateProvisionalStoreRank"; import { updateStoryClearNum } from "./updateStoryClearNum"; import { Response } from "../response"; +import { loadTopTen } from "./loadTopTen"; function encode(res: Response): Buffer { switch (res.type) { @@ -61,6 +63,12 @@ function encode(res: Response): Buffer { case "load_team_res": return _team(res); + case "load_team_ranking_res": + return loadTeamRanking(res); + + case "load_top_ten_res": + return loadTopTen(res); + case "lock_profile_res": return lockProfile(res); diff --git a/src/idz/encoder/loadTeamRanking.ts b/src/idz/encoder/loadTeamRanking.ts new file mode 100644 index 0000000..fb646e7 --- /dev/null +++ b/src/idz/encoder/loadTeamRanking.ts @@ -0,0 +1,10 @@ +import { LoadTeamRankingResponse } from "../response/loadTeamRanking"; + +export function loadTeamRanking(res: LoadTeamRankingResponse): Buffer { + const buf = Buffer.alloc(0x0ba0); + + buf.writeUInt16LE(0x00ba, 0x0000); + // Row stride is 0x94 + + return buf; +} diff --git a/src/idz/encoder/loadTopTen.ts b/src/idz/encoder/loadTopTen.ts new file mode 100644 index 0000000..a13b35e --- /dev/null +++ b/src/idz/encoder/loadTopTen.ts @@ -0,0 +1,10 @@ +import { LoadTopTenResponse } from "../response/loadTopTen"; + +export function loadTopTen(res: LoadTopTenResponse): Buffer { + const buf = Buffer.alloc(0x1720); + + buf.writeUInt16LE(0x00b6, 0x0000); + // in awe of the size of this lad too + + return buf; +} diff --git a/src/idz/handler/index.ts b/src/idz/handler/index.ts index 87abc3d..057b1d0 100644 --- a/src/idz/handler/index.ts +++ b/src/idz/handler/index.ts @@ -9,6 +9,8 @@ import { loadProfile } from "./loadProfile"; import { loadReward as loadRewardTable } from "./loadRewardTable"; import { loadServerList } from "./loadServerList"; import { loadStocker } from "./loadStocker"; +import { loadTeamRanking } from "./loadTeamRanking"; +import { loadTopTen } from "./loadTopTen"; import { lockProfile } from "./lockProfile"; import { saveExpedition } from "./saveExpedition"; import { saveProfile } from "./saveProfile"; @@ -59,9 +61,15 @@ export function dispatch(w: World, req: Request): Response { case "load_team_req": return _team(w, req); + case "load_top_ten_req": + return loadTopTen(w, req); + case "lock_profile_req": return lockProfile(w, req); + case "load_team_ranking_req": + return loadTeamRanking(w, req); + case "save_expedition_req": return saveExpedition(w, req); diff --git a/src/idz/handler/loadTeamRanking.ts b/src/idz/handler/loadTeamRanking.ts new file mode 100644 index 0000000..cc450e5 --- /dev/null +++ b/src/idz/handler/loadTeamRanking.ts @@ -0,0 +1,12 @@ +import { LoadTeamRankingRequest } from "../request/loadTeamRanking"; +import { LoadTeamRankingResponse } from "../response/loadTeamRanking"; +import { World } from "../world"; + +export function loadTeamRanking( + w: World, + req: LoadTeamRankingRequest +): LoadTeamRankingResponse { + return { + type: "load_team_ranking_res", + }; +} diff --git a/src/idz/handler/loadTopTen.ts b/src/idz/handler/loadTopTen.ts new file mode 100644 index 0000000..1ce830e --- /dev/null +++ b/src/idz/handler/loadTopTen.ts @@ -0,0 +1,12 @@ +import { LoadTopTenRequest } from "../request/loadTopTen"; +import { LoadTopTenResponse } from "../response/loadTopTen"; +import { World } from "../world"; + +export function loadTopTen( + w: World, + req: LoadTopTenRequest +): LoadTopTenResponse { + return { + type: "load_top_ten_res", + }; +} diff --git a/src/idz/request/index.ts b/src/idz/request/index.ts index 5bf6e70..a9f27ca 100644 --- a/src/idz/request/index.ts +++ b/src/idz/request/index.ts @@ -11,6 +11,8 @@ import { LoadRewardTableRequest } from "./loadRewardTable"; import { LoadServerListRequest } from "./loadServerList"; import { LoadStockerRequest } from "./loadStocker"; import { LoadTeamRequest } from "./loadTeam"; +import { LoadTeamRankingRequest } from "./loadTeamRanking"; +import { LoadTopTenRequest } from "./loadTopTen"; import { LockAccountRequest } from "./lockProfile"; import { SaveExpeditionRequest } from "./saveExpedition"; import { UpdateProvisionalStoreRankRequest } from "./updateProvisionalStoreRank"; @@ -32,6 +34,8 @@ export type Request = | LoadServerListRequest | LoadStockerRequest | LoadTeamRequest + | LoadTeamRankingRequest + | LoadTopTenRequest | LockAccountRequest | SaveExpeditionRequest | SaveProfileRequest diff --git a/src/idz/request/loadTeamRanking.ts b/src/idz/request/loadTeamRanking.ts new file mode 100644 index 0000000..3baa877 --- /dev/null +++ b/src/idz/request/loadTeamRanking.ts @@ -0,0 +1,3 @@ +export interface LoadTeamRankingRequest { + type: "load_team_ranking_req"; +} diff --git a/src/idz/request/loadTopTen.ts b/src/idz/request/loadTopTen.ts new file mode 100644 index 0000000..e1ef029 --- /dev/null +++ b/src/idz/request/loadTopTen.ts @@ -0,0 +1,3 @@ +export interface LoadTopTenRequest { + type: "load_top_ten_req"; +} diff --git a/src/idz/response/index.ts b/src/idz/response/index.ts index b19ad36..dece624 100644 --- a/src/idz/response/index.ts +++ b/src/idz/response/index.ts @@ -11,6 +11,8 @@ import { LoadRewardTableResponse } from "./loadRewardTable"; import { LoadServerListResponse } from "./loadServerList"; import { LoadStockerResponse } from "./loadStocker"; import { LoadTeamResponse } from "./loadTeam"; +import { LoadTeamRankingResponse } from "./loadTeamRanking"; +import { LoadTopTenResponse } from "./loadTopTen"; import { LockProfileResponse } from "./lockProfile"; import { UpdateProvisionalStoreRankResponse } from "./updateProvisionalStoreRank"; import { UpdateStoryClearNumResponse } from "./updateStoryClearNum"; @@ -33,7 +35,9 @@ export type Response = | LoadServerListResponse | LoadStockerResponse | LoadTeamResponse + | LoadTeamRankingResponse | LockProfileResponse + | LoadTopTenResponse | UpdateProvisionalStoreRankResponse | UpdateStoryClearNumResponse | SaveExpeditionResponse diff --git a/src/idz/response/loadTeamRanking.ts b/src/idz/response/loadTeamRanking.ts new file mode 100644 index 0000000..8d35f9e --- /dev/null +++ b/src/idz/response/loadTeamRanking.ts @@ -0,0 +1,4 @@ +export interface LoadTeamRankingResponse { + type: "load_team_ranking_res"; + // TODO +} diff --git a/src/idz/response/loadTopTen.ts b/src/idz/response/loadTopTen.ts new file mode 100644 index 0000000..4dd910f --- /dev/null +++ b/src/idz/response/loadTopTen.ts @@ -0,0 +1,3 @@ +export interface LoadTopTenResponse { + type: "load_top_ten_res"; +}