302 lines
7.7 KiB
C++
302 lines
7.7 KiB
C++
|
|
#include "WN_CNotifyDlg.h"
|
|||
|
|
|
|||
|
|
#include "cocos2d.h"
|
|||
|
|
#include "ui/CocosGUI.h"
|
|||
|
|
#include "cocostudio/CocoStudio.h"
|
|||
|
|
|
|||
|
|
#include "YSAudioEngine.h"
|
|||
|
|
#include "PopScene.h"
|
|||
|
|
|
|||
|
|
using namespace WNMJ_SPACE;
|
|||
|
|
|
|||
|
|
WN_NotifyDlg::WN_NotifyDlg()
|
|||
|
|
{
|
|||
|
|
zeromemory(m_pGangCardItem, sizeof(m_pGangCardItem));
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
WN_NotifyDlg::~WN_NotifyDlg()
|
|||
|
|
{
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
bool WN_NotifyDlg::init()
|
|||
|
|
{
|
|||
|
|
if (!Node::init()) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
auto rool = CSLoader::createNode("Games/WNMJ/NoticeLayer.csb");
|
|||
|
|
this->addChild(rool);
|
|||
|
|
|
|||
|
|
m_pNoticelayer = (Layout*)rool->getChildByName("Panel_bg");
|
|||
|
|
ASSERT(m_pNoticelayer != nullptr);
|
|||
|
|
|
|||
|
|
m_btnGuo = (Button*)m_pNoticelayer->getChildByName("btnGuo");
|
|||
|
|
m_btnGuo->addClickEventListener(CC_CALLBACK_1(WN_NotifyDlg::onEventGuo, this));
|
|||
|
|
m_btnGuo->setVisible(false);
|
|||
|
|
|
|||
|
|
m_btnHu = (Button*)m_pNoticelayer->getChildByName("btnHu");
|
|||
|
|
m_btnHu->addClickEventListener(CC_CALLBACK_1(WN_NotifyDlg::onEventHu, this));
|
|||
|
|
m_btnHu->setVisible(false);
|
|||
|
|
|
|||
|
|
m_btnPeng = (Button*)m_pNoticelayer->getChildByName("btnPeng");
|
|||
|
|
m_btnPeng->addClickEventListener(CC_CALLBACK_1(WN_NotifyDlg::onEventPeng, this));
|
|||
|
|
m_btnPeng->setVisible(false);
|
|||
|
|
|
|||
|
|
m_btnGang = (Button*)m_pNoticelayer->getChildByName("btnGang");
|
|||
|
|
m_btnGang->addClickEventListener(CC_CALLBACK_1(WN_NotifyDlg::onEventGang, this));
|
|||
|
|
m_btnGang->setVisible(false);
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void WN_NotifyDlg::onEnter()
|
|||
|
|
{
|
|||
|
|
Node::onEnter();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void WN_NotifyDlg::onEnterTransitionDidFinish()
|
|||
|
|
{
|
|||
|
|
Node::onEnterTransitionDidFinish();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void WN_NotifyDlg::onExit()
|
|||
|
|
{
|
|||
|
|
Node::onExit();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
void WN_NotifyDlg::onEventHu(cocos2d::Ref *pSender) // ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
|
|||
|
|
if (pSender == nullptr) return;
|
|||
|
|
|
|||
|
|
if ((m_OperateNotify.dwActionMask&WIK_WN_CHI_HU) != 0)
|
|||
|
|
{
|
|||
|
|
CMD_C_OperateCard OperateCard;
|
|||
|
|
OperateCard.dwOperateCode = WIK_WN_CHI_HU;
|
|||
|
|
OperateCard.cbOperateCard = m_OperateNotify.cbActionCard;
|
|||
|
|
|
|||
|
|
EventCustom event(CUSTOM_EVENT_OPER_CARD);
|
|||
|
|
event.setUserData(&OperateCard);
|
|||
|
|
Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<D8B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_wCurrentUser
|
|||
|
|
CCLOG("WN_NotifyDlg click btnHu hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void WN_NotifyDlg::onEventPeng(cocos2d::Ref *pSender) // ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
|
|||
|
|
if (pSender == nullptr) return;
|
|||
|
|
|
|||
|
|
if ((m_OperateNotify.dwActionMask&WIK_WN_PENG) != 0)
|
|||
|
|
{
|
|||
|
|
CMD_C_OperateCard OperateCard;
|
|||
|
|
OperateCard.dwOperateCode = WIK_WN_PENG;
|
|||
|
|
OperateCard.cbOperateCard = m_OperateNotify.cbActionCard;
|
|||
|
|
|
|||
|
|
EventCustom event(CUSTOM_EVENT_OPER_CARD);
|
|||
|
|
event.setUserData(&OperateCard);
|
|||
|
|
Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<D8B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
CCLOG("WN_NotifyDlg click btnPeng hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><>
|
|||
|
|
void WN_NotifyDlg::onEventGang(cocos2d::Ref *pSender) // ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
|
|||
|
|
if (pSender == nullptr) return;
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8 cbCardCount = m_OperateNotify.GangPaiResult.cbCardCount;
|
|||
|
|
|
|||
|
|
CMD_C_OperateCard OperateCard;
|
|||
|
|
zeromemory(&OperateCard, sizeof(OperateCard));
|
|||
|
|
OperateCard.dwOperateCode = WIK_WN_GANG;
|
|||
|
|
|
|||
|
|
// ֻ<><D6BB>һ<EFBFBD><D2BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
if (cbCardCount == 1)
|
|||
|
|
{
|
|||
|
|
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
uint8 cbCardData = m_OperateNotify.GangPaiResult.cbCardData[cbCardCount - 1];
|
|||
|
|
OperateCard.cbOperateCard = cbCardData;
|
|||
|
|
|
|||
|
|
EventCustom event(CUSTOM_EVENT_OPER_CARD);
|
|||
|
|
event.setUserData(&OperateCard);
|
|||
|
|
Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
|
|||
|
|
|
|||
|
|
cocos2d::log("dwOperateCode = 0x%0x, cbOperateCard = 0x%0x", WIK_WN_GANG, cbCardData);
|
|||
|
|
|
|||
|
|
CCLOG("WN_NotifyDlg click one btnGang hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}
|
|||
|
|
else if (cbCardCount > 1)
|
|||
|
|
{
|
|||
|
|
m_btnGang->setVisible(false);
|
|||
|
|
|
|||
|
|
// <20><>ʾ<EFBFBD><CABE><EFBFBD>Ըܵ<D4B8><DCB5>ƣ<EFBFBD><C6A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD>ѡ<EFBFBD><D1A1>;
|
|||
|
|
for (int i = 0; i < cbCardCount; i++)
|
|||
|
|
{
|
|||
|
|
uint8 cbCardValue = m_OperateNotify.GangPaiResult.cbCardData[i];
|
|||
|
|
|
|||
|
|
if (WN_CGameLogic::IsValidCard(cbCardValue))
|
|||
|
|
{
|
|||
|
|
m_pGangCardItem[i] = WN_SparrowCard::createWithDirection(cbCardValue, SP_SELFSTAND);
|
|||
|
|
|
|||
|
|
if (m_pGangCardItem[i] != nullptr)
|
|||
|
|
{
|
|||
|
|
m_pGangCardItem[i]->setPosition(Vec2(m_btnGang->getPositionX() - (NCMJ_SELF_HAND_CARD_WIDHT + 25)*i, 10));
|
|||
|
|
m_pNoticelayer->addChild(m_pGangCardItem[i]);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ӵ<EFBFBD><D3B5><EFBFBD><EFBFBD>¼<EFBFBD>;
|
|||
|
|
m_pGangCardItem[i]->addClickEventListener([cbCardValue, this](cocos2d::Ref *, Vec2 pos)->bool{
|
|||
|
|
|
|||
|
|
CMD_C_OperateCard OperateCard;
|
|||
|
|
OperateCard.dwOperateCode = WIK_WN_GANG;
|
|||
|
|
OperateCard.cbOperateCard = cbCardValue;
|
|||
|
|
|
|||
|
|
EventCustom event(CUSTOM_EVENT_OPER_CARD);
|
|||
|
|
event.setUserData(&OperateCard);
|
|||
|
|
Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<D8B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_wCurrentUser
|
|||
|
|
CCLOG("WN_NotifyDlg click move btnGang hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
m_wCurrentUser = INVALID_CHAIR;
|
|||
|
|
|
|||
|
|
return true;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
void WN_NotifyDlg::onEventGuo(cocos2d::Ref *pSender) // ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
{
|
|||
|
|
YSAudioEngine::Instance().playBtnClickEffect();
|
|||
|
|
|
|||
|
|
if (m_OperateNotify.dwActionMask != WIK_WN_NULL)
|
|||
|
|
{
|
|||
|
|
|
|||
|
|
|
|||
|
|
// <20><>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>Ϊ<EFBFBD>Լ<EFBFBD><D4BC><EFBFBD>ֱ<EFBFBD><D6B1><EFBFBD><EFBFBD><EFBFBD>ز<EFBFBD><D8B2><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD>ȴ<EFBFBD><C8B4><EFBFBD><EFBFBD>ҳ<EFBFBD><D2B3><EFBFBD>
|
|||
|
|
if (m_wCurrentUser == SELF_VIEW_CHAIRID)
|
|||
|
|
{
|
|||
|
|
CCLOG("WN_NotifyDlg click btnGuo hide...m_wCurrentUser = 0x%0x", m_wCurrentUser);
|
|||
|
|
this->setVisible(false);
|
|||
|
|
return;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
|
|||
|
|
if ((m_OperateNotify.dwActionMask&WIK_WN_CHI_HU) != 0)
|
|||
|
|
{
|
|||
|
|
PopScene::Instance().show(utility::a_u8("<EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), [=](){
|
|||
|
|
|
|||
|
|
CMD_C_OperateCard OperateCard;
|
|||
|
|
OperateCard.dwOperateCode = WIK_WN_NULL;
|
|||
|
|
OperateCard.cbOperateCard = m_OperateNotify.cbActionCard;
|
|||
|
|
|
|||
|
|
EventCustom event(CUSTOM_EVENT_OPER_CARD);
|
|||
|
|
event.setUserData(&OperateCard);
|
|||
|
|
Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<D8B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_wCurrentUser
|
|||
|
|
CCLOG("WN_NotifyDlg click btnGuo hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}, [=](){
|
|||
|
|
// <20><><EFBFBD><EFBFBD>ʲô<CAB2><C3B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>DZ<EFBFBD><C7B1><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD><EFBFBD><EFBFBD>ʾȡ<CABE><C8A1><EFBFBD><EFBFBD>ť;
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ܣ<EFBFBD><DCA3><EFBFBD>
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
CMD_C_OperateCard OperateCard;
|
|||
|
|
OperateCard.dwOperateCode = WIK_WN_NULL;
|
|||
|
|
OperateCard.cbOperateCard = m_OperateNotify.cbActionCard;
|
|||
|
|
EventCustom event(CUSTOM_EVENT_OPER_CARD);
|
|||
|
|
event.setUserData(&OperateCard);
|
|||
|
|
Director::getInstance()->getEventDispatcher()->dispatchEvent(&event);
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<D8B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_wCurrentUser
|
|||
|
|
CCLOG("WN_NotifyDlg click btnGuo hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
else
|
|||
|
|
{
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϻ<EFBFBD><CFBA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ظ<D8B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>棬<EFBFBD><E6A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>m_wCurrentUser
|
|||
|
|
CCLOG("WN_NotifyDlg click btnGuo hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD>ø<C3B8><DFBC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
void WN_NotifyDlg::SetNoticeData(CMD_S_OperateNotify * pOperateNotify)
|
|||
|
|
{
|
|||
|
|
if (m_pNoticelayer)
|
|||
|
|
{
|
|||
|
|
// <20>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
memcpy(&m_OperateNotify, pOperateNotify, sizeof(m_OperateNotify));
|
|||
|
|
|
|||
|
|
WORD dwActionMask = pOperateNotify->dwActionMask;
|
|||
|
|
|
|||
|
|
//<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|||
|
|
m_btnPeng->setVisible((dwActionMask&WIK_WN_PENG) != 0 ? true : false);
|
|||
|
|
m_btnGang->setVisible((dwActionMask&WIK_WN_GANG) != 0 ? true : false);
|
|||
|
|
m_btnHu->setVisible((dwActionMask&WIK_WN_CHI_HU) != 0 ? true : false);
|
|||
|
|
m_btnGuo->setVisible((dwActionMask != WIK_WN_NULL) ? true : false);
|
|||
|
|
|
|||
|
|
// ɾ<><C9BE><EFBFBD>ܽڵ<DCBD>;
|
|||
|
|
for (int i = 0; i < MAX_WEAVE; i++)
|
|||
|
|
{
|
|||
|
|
if (m_pGangCardItem[i] != nullptr)
|
|||
|
|
{
|
|||
|
|
m_pGangCardItem[i]->removeFromParent();
|
|||
|
|
m_pGangCardItem[i] = nullptr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CCLOG("WN_NotifyDlg show...");
|
|||
|
|
this->setVisible(true);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
|
|||
|
|
void WN_NotifyDlg::HideNotifyDlg(bool isTimeOver/* = false*/)
|
|||
|
|
{
|
|||
|
|
if (m_pNoticelayer)
|
|||
|
|
{
|
|||
|
|
// <20>жϲ<D0B6><CFB2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|||
|
|
memset(&m_OperateNotify, 0x0, sizeof(m_OperateNotify));
|
|||
|
|
|
|||
|
|
//<2F><>ť<EFBFBD><C5A5><EFBFBD><EFBFBD>
|
|||
|
|
m_btnPeng->setVisible(false);
|
|||
|
|
m_btnGang->setVisible(false);
|
|||
|
|
m_btnHu->setVisible(false);
|
|||
|
|
m_btnGuo->setVisible(false);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// ɾ<><C9BE><EFBFBD>ܽڵ<DCBD>;
|
|||
|
|
for (int i = 0; i < MAX_WEAVE; i++)
|
|||
|
|
{
|
|||
|
|
if (m_pGangCardItem[i] != nullptr)
|
|||
|
|
{
|
|||
|
|
m_pGangCardItem[i]->removeFromParent();
|
|||
|
|
m_pGangCardItem[i] = nullptr;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
CCLOG("WN_NotifyDlg hide...");
|
|||
|
|
this->setVisible(false);
|
|||
|
|
}
|