mirror of
https://github.com/djhackersdev/minime.git
synced 2026-07-06 20:13:57 -05:00
Add team creation stubs
This commit is contained in:
parent
2da9276176
commit
cacf10816a
9
src/idz/decoder/checkTeamName.ts
Normal file
9
src/idz/decoder/checkTeamName.ts
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
import { RequestCode } from "./_defs";
|
||||
import { CheckTeamNameRequest } from "../request/checkTeamName";
|
||||
|
||||
checkTeamName.msgCode = 0x00a2 as RequestCode;
|
||||
checkTeamName.msgLen = 0x0040;
|
||||
|
||||
export function checkTeamName(buf: Buffer): CheckTeamNameRequest {
|
||||
return { type: "check_team_name_req" };
|
||||
}
|
||||
23
src/idz/decoder/createTeam.ts
Normal file
23
src/idz/decoder/createTeam.ts
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
import iconv = require("iconv-lite");
|
||||
|
||||
import { RequestCode } from "./_defs";
|
||||
import { Id } from "../model/base";
|
||||
import { Profile } from "../model/profile";
|
||||
import { CreateTeamRequest } from "../request/createTeam";
|
||||
|
||||
createTeam.msgCode = 0x0071 as RequestCode;
|
||||
createTeam.msgLen = 0x0050;
|
||||
|
||||
export function createTeam(buf: Buffer): CreateTeamRequest {
|
||||
return {
|
||||
type: "create_team_req",
|
||||
profileId: buf.readUInt32LE(0x0004) as Id<Profile>,
|
||||
teamName: iconv.decode(buf.slice(0x0008, 0x0028), "shift_jis"),
|
||||
field_0028: buf.readUInt16LE(0x0028),
|
||||
field_002C: buf.readUInt32LE(0x002c),
|
||||
field_0030: buf.readUInt8(0x0030),
|
||||
field_0032: buf.readUInt16LE(0x0032),
|
||||
prevTeamId: buf.readUInt32LE(0x0034),
|
||||
field_0038: buf.slice(0x0038, 0x0045),
|
||||
};
|
||||
}
|
||||
|
|
@ -1,7 +1,8 @@
|
|||
import { Transform } from "stream";
|
||||
|
||||
import { saveTimeAttack } from "./saveTimeAttack";
|
||||
import { checkTeamName } from "./checkTeamName";
|
||||
import { createProfile } from "./createProfile";
|
||||
import { createTeam } from "./createTeam";
|
||||
import { joinAutoTeam } from "./joinAutoTeam";
|
||||
import { discoverProfile } from "./discoverProfile";
|
||||
import { load2on2 } from "./load2on2";
|
||||
|
|
@ -23,6 +24,7 @@ import { saveGarage } from "./saveGarage";
|
|||
import { saveProfile } from "./saveProfile";
|
||||
import { saveSettings } from "./saveSettings";
|
||||
import { saveStocker } from "./saveStocker";
|
||||
import { saveTimeAttack } from "./saveTimeAttack";
|
||||
import { saveTopic } from "./saveTopic";
|
||||
import { unlockProfile } from "./unlockProfile";
|
||||
import { updateProvisionalStoreRank } from "./updateProvisionalStoreRank";
|
||||
|
|
@ -41,7 +43,9 @@ export type ReaderFn = ((buf: Buffer) => Request) & {
|
|||
};
|
||||
|
||||
const funcList: ReaderFn[] = [
|
||||
checkTeamName,
|
||||
createProfile,
|
||||
createTeam,
|
||||
joinAutoTeam,
|
||||
discoverProfile,
|
||||
load2on2,
|
||||
|
|
|
|||
10
src/idz/encoder/checkTeamName.ts
Normal file
10
src/idz/encoder/checkTeamName.ts
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
import { CheckTeamNameResponse } from "../response/checkTeamName";
|
||||
|
||||
export function checkTeamName(res: CheckTeamNameResponse): Buffer {
|
||||
const buf = Buffer.alloc(0x0010);
|
||||
|
||||
buf.writeUInt16LE(0x00a3, 0x0000);
|
||||
buf.writeUInt32LE(res.status, 0x0004);
|
||||
|
||||
return buf;
|
||||
}
|
||||
11
src/idz/encoder/createTeam.ts
Normal file
11
src/idz/encoder/createTeam.ts
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
import { CreateTeamResponse } from "../response/createTeam";
|
||||
|
||||
export function createTeam(res: CreateTeamResponse): Buffer {
|
||||
const buf = Buffer.alloc(0x0010);
|
||||
|
||||
buf.writeUInt16LE(0x0072, 0x0000);
|
||||
buf.writeUInt32LE(res.status, 0x0004);
|
||||
buf.writeUInt32LE(res.teamId, 0x0008);
|
||||
|
||||
return buf;
|
||||
}
|
||||
|
|
@ -1,6 +1,8 @@
|
|||
import { Transform } from "stream";
|
||||
|
||||
import { _team } from "./_team";
|
||||
import { checkTeamName } from "./checkTeamName";
|
||||
import { createTeam } from "./createTeam";
|
||||
import { discoverProfile } from "./discoverProfile";
|
||||
import { generic } from "./generic";
|
||||
import { lockProfile } from "./lockProfile";
|
||||
|
|
@ -27,6 +29,12 @@ import { Response } from "../response";
|
|||
|
||||
function encode(res: Response): Buffer {
|
||||
switch (res.type) {
|
||||
case "check_team_name_res":
|
||||
return checkTeamName(res);
|
||||
|
||||
case "create_team_res":
|
||||
return createTeam(res);
|
||||
|
||||
case "discover_profile_res":
|
||||
return discoverProfile(res);
|
||||
|
||||
|
|
|
|||
13
src/idz/handler/checkTeamName.ts
Normal file
13
src/idz/handler/checkTeamName.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
import { CheckTeamNameRequest } from "../request/checkTeamName";
|
||||
import { CheckTeamNameResponse } from "../response/checkTeamName";
|
||||
import { World } from "../world";
|
||||
|
||||
export function checkTeamName(
|
||||
w: World,
|
||||
req: CheckTeamNameRequest
|
||||
): CheckTeamNameResponse {
|
||||
return {
|
||||
type: "check_team_name_res",
|
||||
status: 0,
|
||||
};
|
||||
}
|
||||
16
src/idz/handler/createTeam.ts
Normal file
16
src/idz/handler/createTeam.ts
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
import { Id } from "../model/base";
|
||||
import { Team } from "../model/team";
|
||||
import { CreateTeamRequest } from "../request/createTeam";
|
||||
import { CreateTeamResponse } from "../response/createTeam";
|
||||
import { World } from "../world";
|
||||
|
||||
export function createTeam(
|
||||
w: World,
|
||||
req: CreateTeamRequest
|
||||
): CreateTeamResponse {
|
||||
return {
|
||||
type: "create_team_res",
|
||||
status: 0,
|
||||
teamId: 3 as Id<Team>,
|
||||
};
|
||||
}
|
||||
|
|
@ -1,6 +1,7 @@
|
|||
import { _team } from "./_team";
|
||||
import { saveTimeAttack } from "./saveTimeAttack";
|
||||
import { checkTeamName } from "./checkTeamName";
|
||||
import { createProfile } from "./createProfile";
|
||||
import { createTeam } from "./createTeam";
|
||||
import { discoverProfile } from "./discoverProfile";
|
||||
import { load2on2 } from "./load2on2";
|
||||
import { loadConfig } from "./loadConfig";
|
||||
|
|
@ -21,6 +22,7 @@ import { saveGarage } from "./saveGarage";
|
|||
import { saveProfile } from "./saveProfile";
|
||||
import { saveSettings } from "./saveSettings";
|
||||
import { saveStocker } from "./saveStocker";
|
||||
import { saveTimeAttack } from "./saveTimeAttack";
|
||||
import { saveTopic } from "./saveTopic";
|
||||
import { unlockProfile } from "./unlockProfile";
|
||||
import { updateProvisionalStoreRank } from "./updateProvisionalStoreRank";
|
||||
|
|
@ -35,9 +37,15 @@ import { World } from "../world";
|
|||
|
||||
export async function dispatch(w: World, req: Request): Promise<Response> {
|
||||
switch (req.type) {
|
||||
case "check_team_name_req":
|
||||
return checkTeamName(w, req);
|
||||
|
||||
case "create_profile_req":
|
||||
return createProfile(w, req);
|
||||
|
||||
case "create_team_req":
|
||||
return createTeam(w, req);
|
||||
|
||||
case "join_auto_team_req":
|
||||
return _team(w, req);
|
||||
|
||||
|
|
|
|||
3
src/idz/request/checkTeamName.ts
Normal file
3
src/idz/request/checkTeamName.ts
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
export interface CheckTeamNameRequest {
|
||||
type: "check_team_name_req";
|
||||
}
|
||||
14
src/idz/request/createTeam.ts
Normal file
14
src/idz/request/createTeam.ts
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
import { Id } from "../model/base";
|
||||
import { Profile } from "../model/profile";
|
||||
|
||||
export interface CreateTeamRequest {
|
||||
type: "create_team_req";
|
||||
profileId: Id<Profile>; // u32
|
||||
teamName: string; // len 0x20
|
||||
field_0028: number; // u16
|
||||
field_002C: number; // u32 (but only holds a u8)
|
||||
field_0030: number; // u8
|
||||
field_0032: number; // u16
|
||||
prevTeamId: number; // u32
|
||||
field_0038: Buffer; // len 0x0D ..? weird length
|
||||
}
|
||||
|
|
@ -1,4 +1,6 @@
|
|||
import { CheckTeamNameRequest } from "./checkTeamName";
|
||||
import { CreateProfileRequest } from "./createProfile";
|
||||
import { CreateTeamRequest } from "./createTeam";
|
||||
import { DiscoverProfileRequest } from "./discoverProfile";
|
||||
import { JoinAutoTeamRequest } from "./joinAutoTeam";
|
||||
import { Load2on2Request } from "./load2on2";
|
||||
|
|
@ -32,7 +34,9 @@ import { UpdateUiReportRequest } from "./updateUiReport";
|
|||
import { UpdateUserLogRequest } from "./updateUserLog";
|
||||
|
||||
export type Request =
|
||||
| CheckTeamNameRequest
|
||||
| CreateProfileRequest
|
||||
| CreateTeamRequest
|
||||
| DiscoverProfileRequest
|
||||
| JoinAutoTeamRequest
|
||||
| Load2on2Request
|
||||
|
|
|
|||
4
src/idz/response/checkTeamName.ts
Normal file
4
src/idz/response/checkTeamName.ts
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
export interface CheckTeamNameResponse {
|
||||
type: "check_team_name_res";
|
||||
status: number; // Anything other than 4 is success
|
||||
}
|
||||
8
src/idz/response/createTeam.ts
Normal file
8
src/idz/response/createTeam.ts
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
import { Id } from "../model/base";
|
||||
import { Team } from "../model/team";
|
||||
|
||||
export interface CreateTeamResponse {
|
||||
type: "create_team_res";
|
||||
status: number; // 0 is success, 1 is failure
|
||||
teamId: Id<Team>;
|
||||
}
|
||||
|
|
@ -1,3 +1,5 @@
|
|||
import { CheckTeamNameResponse } from "./checkTeamName";
|
||||
import { CreateTeamResponse } from "./createTeam";
|
||||
import { DiscoverProfileResponse } from "./discoverProfile";
|
||||
import { GenericResponse } from "./generic";
|
||||
import { JoinAutoTeamResponse } from "./joinAutoTeam";
|
||||
|
|
@ -24,6 +26,8 @@ import { UpdateStoryClearNumResponse } from "./updateStoryClearNum";
|
|||
import { UnlockProfileResponse } from "./unlockProfile";
|
||||
|
||||
export type Response =
|
||||
| CheckTeamNameResponse
|
||||
| CreateTeamResponse
|
||||
| DiscoverProfileResponse
|
||||
| GenericResponse
|
||||
| JoinAutoTeamResponse
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user