Files
wnmj/Classes/Mission/PrivateMission.h
2026-02-13 14:34:15 +08:00

132 lines
3.3 KiB
C++

#pragma once
#include "cocos2d.h"
#include "PlatformHeader.h"
#include "SocketMission.h"
enum Type_LinkAction
{
Type_Link_NULL,
Type_Link_Create,
Type_Link_Join,
Type_Link_Auto,
Type_Link_Del,
};
class IPrivateMissionSink
{
public:
virtual ~IPrivateMissionSink(){}
virtual void StartGameScene(CGameServerItem* pServer) = 0;
virtual void CreateAutoRoomInfoResulte(CMD_GR_AutoResulte* pAutoResulte) = 0;
};
class PrivateMission : public CSocketMission
{
public:
PrivateMission();
void setMissionSink(IPrivateMissionSink* pSink);
//网络回调接口重载
public:
//网络连接
virtual void onEventTCPSocketLink();
//网络关闭
virtual void onEventTCPSocketShut();
//网络错误
virtual void onEventTCPSocketError(int errorCode);
//网络消息读取
virtual bool onEventTCPSocketRead(int main, int sub, void* data, int dataSize);
//网络心跳包
virtual bool onEventTCPHeartTick();
//网络接口
public:
//发送函数
virtual bool SendSocketData(uint16 wMainCmdID, uint16 wSubCmdID);
//发送函数
virtual bool SendSocketData(uint16 wMainCmdID, uint16 wSubCmdID, void * data, uint16 dataSize);
//网络消处处理
public:
//////////////////////////////////////////////////////////////////////////
//登录消息
bool OnSocketMainLogon(int sub, void* data, int dataSize);
//////////////////////////////////////////////////////////////////////////
//用户信息
bool OnSocketMainUser(int sub, void* data, int dataSize);
//////////////////////////////////////////////////////////////////////////
//系统主消息
bool OnSocketMainSystem(int sub, void* data, int dataSize);
//系统子消息
bool OnSocketSubSystemMessage(void* data, int dataSize);
//////////////////////////////////////////////////////////////////////////
//私人场主消息
bool OnSocketMainPrivate(int sub, void* data, int dataSize);
//私人场信息
bool OnSocketSubPrivateInfo(void* data, int dataSize);
//私人场创建成功
bool OnSocketSubPrivateCreateSuceess(void* data, int dataSize);
//私人场房间信息
bool OnSocketSubPrivateRoomInfo(void* data, int dataSize);
//创建代开信息结果
bool OnSocketSubCreateAutoResulte(void* data, int dataSize);
//删除代开信息完成
bool OnSocketSubDelAutoResulte(void* data, int dataSize);
//自由人数开始状态;
bool OnSocketSubAutoUserReady(void* data, int dataSize);
//网络命令
public:
//发送登录
virtual bool SendLogonPacket();
//辅助函数
public:
//进入游戏场景
void EnterGameScene();
//设置创建私人场房间信息
void SetCreateInfo(CMD_GR_Create_Private* pInfo);
//设置创建代开房间信息
void SetCreateAutoInfo(CMD_GR_AutoRoomInfo* pInfo);
//设置删除代开房间信息
void SetDelAutoInfo(CMD_GP_DelAutoRoomInfo* pInfo);
//设置加入私人场房间信息
void SetJoinInfo(uint32 dwJoinRoomNum);
//连接服务器
//void ConnectServerByKind(uint16 wDataID);
//连接服务器
void ConnectServerByServerID(uint16 wServerID);
//连接服务器
void ConnectServer(CGameServerItem* pServerItem, bool bServerID=false);
private:
Type_LinkAction m_eLinkAction;
uint32 m_dwMeUserID;
uint16 m_wMeTableID; //桌子ID
uint16 m_wMeChairID; //椅子ID
uint16 m_wGameKindID; //游戏类型
uint32 m_dwJoinRoomNum; //要加入的房间号
CMD_GR_Create_Private m_kCreatePrivateNet;
CMD_GR_AutoRoomInfo m_kAutoRoomInfo;
CMD_GP_DelAutoRoomInfo m_kDelAutoRoomInfo;
CGameServerItem* m_pGameServerItem;
IPrivateMissionSink* m_pPrivateMissionSink; // 回调
};