public void OnRecvMailBaseInfoList(IntPtr ptr, int nLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptr, nLen); GameLogic.gameview_mail_req_basedatalist infoListHead = helper.get <GameLogic.gameview_mail_req_basedatalist>(); m_MailBaseInfoList.Clear(); m_MailDetailInfoList.Clear(); m_PlusMailList.Clear(); m_MailCount = 0; for (int i = 0; i < infoListHead.nCount; ++i) { GameLogic.gameview_mail_baseinfo cmdNodeData = helper.get <GameLogic.gameview_mail_baseinfo>(); m_MailBaseInfoList.Add(cmdNodeData); if (cmdNodeData.nIsPlusData == 1 && (cmdNodeData.nType == (int)EMMailType.emMailType_Player || cmdNodeData.nType == (int)EMMailType.emMailType_System)) { m_PlusMailList.Add(cmdNodeData.nMailID); } if (cmdNodeData.nIsRead == 0) { m_MailCount++; } } sortMailBaseInfoList(); UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_MAIL_REQUESTMAILBASELIST, null); }
public void OnRecvMailDetailInfo(int cmdID, int nParam, string strParam, IntPtr ptrParam, int nPtrLen) { IntPtrVaArgParseHelper helper = new IntPtrVaArgParseHelper(ptrParam, nPtrLen); GameLogic.gameview_mail_rsp_detaildata cmdData = helper.get <GameLogic.gameview_mail_rsp_detaildata>(); if (m_MailDetailInfoList.ContainsKey(cmdData.nMailID)) { m_MailDetailInfoList[cmdData.nMailID] = cmdData; } else { m_MailDetailInfoList.Add(cmdData.nMailID, cmdData); } for (int i = 0; i < m_MailBaseInfoList.Count; ++i) { if (cmdData.nMailID == m_MailBaseInfoList[i].nMailID) { GameLogic.gameview_mail_baseinfo tmpBaseInfo = m_MailBaseInfoList[i]; if (tmpBaseInfo.nIsRead == 0) { m_MailCount--; tmpBaseInfo.nIsRead = 1; } tmpBaseInfo.nReadFlag = 1; m_MailBaseInfoList[i] = tmpBaseInfo; break; } } m_MailCount = m_MailCount < 0 ? 0 : m_MailCount; UIMsgCmdData uiMailDetailInfo = new UIMsgCmdData((int)WndMsgID.WND_MSG_MAIL_DETAILINFO, nParam, strParam, ptrParam, nPtrLen); UISystem.Instance.SendWndMessage(WndMsgID.WND_MSG_MAIL_DETAILINFO, uiMailDetailInfo); }