37 lines
1.2 KiB
TypeScript
37 lines
1.2 KiB
TypeScript
// TODO: Actually support campaigns
|
|
import {
|
|
CampaignClearInfoResponseStruct,
|
|
CampaignResponseStruct,
|
|
OldCampaignResponseStruct,
|
|
} from "../types/campaign";
|
|
import { PacketHeaderStruct } from "../types/header";
|
|
import { CommandId, ResultCodes } from "../../../lib/constants/aimedb";
|
|
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();
|
|
};
|