Files
DP_S/src/dispatch.h
2022-09-21 16:28:11 +08:00

62 lines
1.5 KiB
C++

#pragma once
#ifndef __DISPATCH_H__
#define __DISPATCH_H__
#include "import.h"
#include "inline_hook.h"
#include "Singleton.h"
#include "./sdk/sdk_class.h"
#include "utils.h"
#include "GameDataManager.h"
enum NOTI_PACKETMESSAGE_TYPE : int
{
NOTI_SYSTEM = 0,
};
struct USER_DATA
{
int abnormal_data_count; //异常数据计次 要使用map进行用户数据存储
};
class CDispatch
{
public:
SINGLETON_DEFINE_S(CDispatch);
CDispatch();
~CDispatch();
public:
ENUM_PACK_RET_TYPE UseEquipmentMoveItem(CUser* user, PacketBuf* pBuf);
ENUM_PACK_RET_TYPE Dispatcher_ModItemAttr_dispatch_sig(Dispatcher_ModItemAttr* dis_mod, CUser* user, PacketBuf* pBuf);
ENUM_PACK_RET_TYPE UseJewel_dispatch_sig(void* pDispatcher_UseJewel, CUser* user, PacketBuf* pBuf);
ENUM_PACK_RET_TYPE MoveMap_dispatch_sig(void* a1, CUser* user, PacketBuf* pBuf);
ENUM_PACK_RET_TYPE Inter_LoadEtc_dispatch_sig(void* a1, CUser* user, char* a3);
ENUM_PACK_RET_TYPE DisPatcher_ReturnToSelectCharacter_dispatch_sig(void* a1, CUser* user, char* a3);
ENUM_PACK_RET_TYPE ProcessIPG_ResultOutput(CUser* user, int Goods_No, int item_id, int Cera_Type, InterfacePacketBuf* pbuf);
ENUM_PACK_RET_TYPE Init_done(int argc, const char** argv);
ENUM_PACK_RET_TYPE importCashShopItemList(const std::string* str);
void SendMsg(CUser* user, int pack_id, int status, const std::string& str);
void SendNoti(CUser* user, const std::string& str, NOTI_PACKETMESSAGE_TYPE type = NOTI_SYSTEM);
protected:
private:
int last_move_map_tickcount;
Utils::TMap<CUser*, USER_DATA> user_map;
};
#endif // __DISPATCH_H__