kozukata-toa/src/servers/aimedb/handlers/campaign.ts

37 lines
1.2 KiB
TypeScript

// TODO: Actually support campaigns
import { CommandId, ResultCodes } from "../../../lib/constants/aimedb";
import {
CampaignClearInfoResponseStruct,
CampaignResponseStruct,
OldCampaignResponseStruct,
} from "../types/campaign";
import { PacketHeaderStruct } from "../types/header";
import type { AimeDBHandlerFn } from "../types/handlers";
export const GetCampaignInfoHandler: AimeDBHandlerFn<"CampaignResponse" | "OldCampaignResponse"> = (
header,
_
) => {
header.commandId = CommandId.CAMPAIGN_INFO_RESPONSE;
header.result = ResultCodes.SUCCESS;
if (header.version < 0x3030) {
header.length = PacketHeaderStruct.baseSize + OldCampaignResponseStruct.baseSize;
return new OldCampaignResponseStruct();
}
header.length = PacketHeaderStruct.baseSize + CampaignResponseStruct.baseSize;
return new CampaignResponseStruct();
};
export const GetCampaignClearInfoHandler: AimeDBHandlerFn<"CampaignClearInfoResponse"> = (
header,
_
) => {
header.commandId = CommandId.CAMPAIGN_CLEAR_INFO_RESPONSE;
header.result = ResultCodes.SUCCESS;
header.length = PacketHeaderStruct.baseSize + CampaignClearInfoResponseStruct.baseSize;
return new CampaignClearInfoResponseStruct();
};