132 lines
3.3 KiB
C++
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; // 回调
|
|
};
|