Exemplo n.º 1
0
	HsGame::HsGame() : HawkAppFrame(XID(HSO_MANAGER, HMI_APP))
	{
		HawkAssert(g_Game == 0);
		g_Game = this;

		#include "ProtocolReg.inl"
	}
Exemplo n.º 2
0
	Bool HsGame::DispatchMsg(const XID& sXid, HawkMsg* pMsg)
	{
		if (sXid == XID(HSO_MANAGER, HMI_APP))
			return OnMessage(*pMsg);

		return HawkAppFrame::DispatchMsg(sXid, pMsg);
	}
Exemplo n.º 3
0
	XID CApp::GetXidBySid(SID iSid)
	{
		AutoSpinLock(lock, m_pSidXidLock);
		SidXidMap::iterator it = m_mSidXid.find(iSid);
		if (it != m_mSidXid.end())
			return it->second;
		
		return XID(0,0);
	}
Exemplo n.º 4
0
	Bool HsGame::PostProtocol(SID iSid, Protocol* pProto)
	{
		XID sXid;
		ProtoType iType = pProto->GetType();
		if (iType == ProtocolId::LOGIN_GAME)
		{
			UString sName = ((LoginGame*)pProto)->m_sName;

			HawkStringUtil::Trim<UString>(sName);
			UInt32 iPlayerId = HawkStringUtil::HashString<UString>(sName);

			SafeObj user_obj(XID(HSO_PLAYER, iPlayerId));
			if(!user_obj.IsObjValid())
				CreateObj(XID(HSO_PLAYER, iPlayerId));

			sXid = XID(HSO_PLAYER, iPlayerId);
		}
		else
		{
			sXid = GetXidBySid(iSid);
		}

		return HawkAppFrame::PostProtocol(sXid, iSid, pProto);
	}
Exemplo n.º 5
0
	Bool HsPlayer::OnInnerTick()
	{
		//删除定时器
		if (m_sDelTimer.IncCounter(HS_OBJ_TICK_PERIOD))
		{
			m_sDelTimer.Reset();
			m_sDelTimer.SetPause(true);

			//通知APP删除自己
			HawkMsg* pMsg = P_MsgManager->GetMsg(HSM_DELOBJ);
			if (pMsg)
			{			
				pMsg->Params.Push<XID>(m_sXid);
				g_Game->PostMsg(XID(HSO_MANAGER, HMI_APP), pMsg);
			}			
		}

		return true;
	}
Exemplo n.º 6
0
		CApp_TickTask(const XID& sXid = XID(0,0)) : m_sXid(sXid)
		{			
		};
Exemplo n.º 7
0
		CApp_MsgTask(const XID& sXid = XID(0,0), CMsg* pMsg = 0) : m_sXid(sXid), m_pMsg(pMsg)
		{
		};		
Exemplo n.º 8
0
		CApp_ProtoTask(const XID& sXid = XID(0,0), SID iSid = 0, Protocol* pProto = 0) : m_sXid(sXid), m_iSid(iSid), m_pProto(pProto)
		{
		};