Files
wnmj-normal/Classes/Games/13S/13S_GameScene.h

411 lines
12 KiB
C
Raw Normal View History

2026-03-03 13:56:44 +08:00
#pragma once
#include "cocos2d.h"
#include "cocostudio/CocoStudio.h"
#include "cocostudio/CCArmature.h"
#include "ui/CocosGUI.h"
#include "GameFrameBase.h"
#include "PlatformHeader.h"
#include "13S_CMD.h"
#include "13S_GamePlayer.h"
#include "13S_GameLogic.h"
#include "13S_OperateCardPanel.h"
#include "13S_OpenResultScene.h"
#include "13S_GameOverAni.h"
USING_NS_CC;
using namespace cocostudio;
using namespace std;
using namespace ui;
namespace SSS_SPACE {
enum SSS_OPERATE_STATUS
{
SSS_OS_NULL = 0, // <20>޲<EFBFBD><DEB2><EFBFBD>;
SSS_OS_CALLBANK, // <20><><EFBFBD><EFBFBD><EFBFBD>˽<EFBFBD>ׯ;
SSS_OS_ADDSCORE0, // <20><><EFBFBD><EFBFBD><EFBFBD>˼<EFBFBD>ע;
SSS_OS_ADDSCORE1, // <20>Լ<EFBFBD><D4BC><EFBFBD>ע;
};
class SSSGameScene : public GameFrameBase
{
public:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
CREATE_FUNC(SSSGameScene);
static std::string getGameRule(uint32 dwGameRule);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>;
virtual bool init();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɻص<C9BB>;
virtual void onEnterTransitionDidFinish();
//<2F><><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD>;
virtual void onExit();
public:
//<2F><><EFBFBD>Ӻ<EFBFBD><D3BA><EFBFBD>ͼת<CDBC><D7AA>;
virtual WORD SwitchViewChairID(WORD wChairID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
virtual void upSelfPlayerInfo();
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void initScene();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
void initNet();
//<2F><><EFBFBD>ó<EFBFBD><C3B3><EFBFBD>;
void resetScene(bool bAll=false);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void resetData();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void ResetAllData();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><EFBFBD><E0B5B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>뿪);
virtual void ResetTable();
//<2F><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD>·<EFBFBD><C2B7>;
virtual const std::string getShortChatSoundPath(uint8 cbGender, int nIndex);
private:
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
virtual bool OnEventSceneMessage(uint8 cbGameStatus, bool bLookonUser, void* pData, int nDataSize);
//<2F>ָ<EFBFBD><D6B8>ձճ<D5B1><D5B3><EFBFBD>;
bool onGameSceneFree(void* pData, int nDataSize);
//<2F><>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD>;
bool onGameSceneRobBanker(void* pData, int nDataSize);
//<2F><>ע<EFBFBD><D7A2><EFBFBD><EFBFBD>;
bool onGameSceneUserChip(void* pData, int nDataSize);
//<2F><><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>;
bool onGameSceneSendCard(void* pData, int nDataSize);
//<2F><><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>;
bool onGameSceneOpenCard(void* pData, int nDataSize);
//<2F><><EFBFBD>Ƴ<EFBFBD><C6B3><EFBFBD>;
bool onGameSceneCompareCard(void* pData, int nDataSize);
//<2F><>Ϸ<EFBFBD><CFB7>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD>;
//<2F><>Ϸ<EFBFBD><CFB7>ʼ;
void onSubGameStart(const void * pBuffer, uint16 wDataSize);
//<2F><>ʼ<EFBFBD><CABC>ׯ;
void onSubStartRob(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ׯ;
void onSubUserRob(const void * pBuffer, uint16 wDataSize);
//<2F><>ʼ<EFBFBD><CABC>ע;
void onSubStartChip(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ע;
void onSubUserChip(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD>ʣ<EFBFBD>µ<EFBFBD><C2B5><EFBFBD>;
void onSubSendLeftCard(const void * pBuffer, uint16 wDataSize);
//<2F><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
void onSubStartOpen(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD>;
void onSubOpenCard(const void * pBuffer, uint16 wDataSize);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E6B7A8><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
void onSubClassicCompareCard(const void * pBuffer, uint16 wDataSize);
//<2F><>ׯ<EFBFBD>ұ<EFBFBD><D2B1>ƽ<EFBFBD><C6BD><EFBFBD>;
void onSubBankerCompareCard(const void * pBuffer, uint16 wDataSize);
//<2F><>Ϸ<EFBFBD><CFB7><EFBFBD><EFBFBD>;
void onSubGameEnd(const void * pBuffer, uint16 wDataSize);
//<2F>û<EFBFBD><C3BB><EFBFBD><EFBFBD><EFBFBD>;
virtual void OnEventUserEnter(GamePlayer * pPlayer);
//<2F><><EFBFBD><EFBFBD>״̬<D7B4>ı<EFBFBD>;
virtual void OnEventUserStatus(GamePlayer * pPlayer);
//<2F><><EFBFBD>ҽ<EFBFBD><D2BD>Ҹı<D2B8>;
virtual void OnUserScore(GamePlayer* pPlayer);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
virtual Vec2 GetPlayerPosByUserID(uint32 dwUserID);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
virtual GamePlayer* CreatePlayer(IClientUserItem * pIClientUserItem);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD>ť;
void onCompareButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD>ť;
void onRandomButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ð<EFBFBD>ť;
void onResetButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>밴ť;
void onInviteButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ť;
void onRechooseButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><E5B4A5><EFBFBD>¼<EFBFBD>;
void onPanelTouchEvent(Ref* pSender, Widget::TouchEventType iEventType);
//<2F><>ע<EFBFBD><D7A2>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>;
void onRobYesButtonClick(Ref* pSender);
//<2F><>ע<EFBFBD><D7A2>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>;
void onRobNoButtonClick(Ref* pSender);
//ѹע<D1B9><D7A2>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>;
void onYaZhuButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>;
void onRefuseCardsButtonClick(Ref* pSender);
//ȷ<><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ư<EFBFBD>ť<EFBFBD><C5A5><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD>;
void onCommitSpecialButtonClick(Ref* pSender);
//һ<><D2BB>;
void onDuiZiButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD>;
void onLiangDuiButtonClick(Ref* pSender);
//<2F><><EFBFBD><EFBFBD>;
void onSanTiaoButtonClick(Ref* pSender);
//˳<><CBB3>;
void onShunZiButtonClick(Ref* pSender);
//ͬ<><CDAC>;
void onTongHuaButtonClick(Ref* pSender);
//<2F><>«;
void onHuLuButtonClick(Ref* pSender);
//<2F><>֧;
void onTieZhiButtonClick(Ref* pSender);
//ͬ<><CDAC>˳;
void onTongHuaShunButtonClick(Ref* pSender);
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
void startSendCardAni();
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
void startCompareCardAni();
// <20><><EFBFBD><EFBFBD><EFBFBD>ص<EFBFBD>;
void movementEventCallFunc(cocostudio::Armature *armature, cocostudio::MovementEventType movementType, const std::string& movementID);
// <20><>ʱ<EFBFBD><CAB1>;
void openClock(Sprite* sprClock, int iLeftTime, const std::function<void()>& callFunc=nullptr);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
void closeClock(Sprite* sprClock);
//ѡ<>ƻص<C6BB>;
void selectCardCallback(uint8* pCardData, uint8 cbCardCount);
// <20><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void showAllPlayersCard();
// <20><><EFBFBD>Ž<EFBFBD><C5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD>;
void playResultScoreAni(int nIndex, SCORE lScore, SCORE lXinScore);
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void showOperatePanel(bool bShow);
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void showSpecialPanel(bool bShow);
void addTricksCard(int nIndex, uint8 aryCardData[SSS_MAX_ITEM_COUNT], uint8 cbCardCount);
//<2F><><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
bool inTricksCardPanel(int nIndex, uint8 cbCardData);
//ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void onChooseFinished();
//һ<><D2BB><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void oneGroupFinished();
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD>;
void checkSpecialTypeAni();
//<2F><><EFBFBD><EFBFBD><EFBFBD>ƶ<EFBFBD><C6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void specialTypeAniFinished();
//<2F><><EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><C7B7><EFBFBD>ȫ<EFBFBD>ݴ򶯻<DDB4>;
void checkKillAllAni();
//ȫ<>ݴ򶯻<DDB4><F2B6AFBB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void killAllAniFinished();
void oneShootFinished(tagSSSTwoGunInfos* pGunInfos);
//<2F><>ǹ<EFBFBD>ӷֶ<D3B7><D6B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void shootScoreAniFinished();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>ť״̬;
void updateCardTypeButtons();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ͱ<EFBFBD>ť״̬;
void disableCardTypeButtons();
// <20><><EFBFBD><EFBFBD><EFBFBD>Ա<EFBFBD><D4B1>ַ<EFBFBD><D6B7><EFBFBD>;
std::string getUserGender(int cbGender);
// <20><><EFBFBD>ŷ<EFBFBD><C5B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void playSendCardEffect();
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void playSpecialTypeEffect(uint8 cbGender, uint8 cbCardType);
// <20><><EFBFBD>ſ<EFBFBD><C5BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void playFastVoice(int cbGender, int voiceIndex);
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ч;
void playEffect(std::string strPath);
// <20><><EFBFBD>ŵ<EFBFBD><C5B5><EFBFBD><EFBFBD><EFBFBD>Ч;
void playBtnClickEffect();
//<2F><><EFBFBD>ƽ<EFBFBD><C6BD><EFBFBD>;
void sendSendCardOverMsg();
//<2F><><EFBFBD>Ʋ<EFBFBD><C6B2><EFBFBD>;
void sendOpenCardMsg();
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
void sendCompareOverMsg();
//<2F><>ʾ<EFBFBD><CABE>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD>;
void showCurHandCard(uint8 cbCardCount);
//<2F><>ʾׯ<CABE><D7AF>ͼ<EFBFBD><CDBC>;
void showBankerIcon();
// <20><><EFBFBD><EFBFBD>״̬;
void setOperateStatus(SSS_OPERATE_STATUS ops);
//<2F><><EFBFBD><EFBFBD>A32ת32A;
bool cardTypeTo32A(const uint8 arySrcCardData[SSS_MAX_ITEM_COUNT], const uint8 cbCardCount, uint8* aryTargetCardData, const uint8 cbTargetCardCount);
//<2F><><EFBFBD><EFBFBD><EFBFBD>˿<EFBFBD><CBBF>ưڷŹ<DAB7><C5B9><EFBFBD>;
bool checkCardPutRule();
// <20><>ȡ<EFBFBD><C8A1>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 getCurPlayerCount();
//˽<>˳<EFBFBD>;
public:
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ;
virtual void OnSocketSubPrivateRoomInfo(CMD_GF_Private_Room_Info* pNetInfo);
//˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>;
virtual void OnSocketSubPrivateEnd(void* data, int dataSize);
//˽<>˳<EFBFBD><CBB3><EFBFBD>ɢ<EFBFBD><C9A2>Ϣ;
virtual void OnSocketSubPrivateDismissInfo(CMD_GF_Private_Dismiss_Info* pNetInfo);
//˽<>˳<EFBFBD><CBB3><EFBFBD>ɢ<EFBFBD><C9A2><EFBFBD><EFBFBD>;
virtual void OnSocketSubPrivateDismissResult(CMD_GF_Private_Dismiss_Result* pNetInfo);
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
virtual void OnSocketSubPrivateAutoUserStatus(tagAutoUserStatus* pNetInfo){}
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
virtual void OnSocketSubPrivateAutoUserReady(CMD_GR_Private_ReadyInfo* pNetInfo){}
//<2F><>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ;
void onEventShowPrivate(cocos2d::EventCustom *event);
//<2F><>ס<EFBFBD><D7A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ť;
void OnButtonVoiceTouched(Ref*, Widget::TouchEventType);
void ShowGameRule(CMD_GF_Private_Room_Info* pNetInfo);
//¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
public:
virtual void StartGameRecord();
virtual void NextRecordAction(float dt);
private:
//˽<>˳<EFBFBD><CBB3><EFBFBD>Ϣ;
CMD_GF_Private_Room_Info m_PrivateRoomInfo;
uint32 m_dwRoomID; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint32 m_dwPlayCout; //<2F><><EFBFBD><EFBFBD>;
Node* m_pVoiceNode; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>־;
bool m_bClassicRule; //<2F>Ƿ<EFBFBD><C7B7>Ǿ<EFBFBD><C7BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 _cbGameStatus; //<2F><>Ϸ״̬;
uint16 _wBuildCardTime; //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>;
uint16 _wRobBankerTime; //<2F><>ׯʱ<D7AF><CAB1>;
uint16 _wUserChipTime; //<2F><>עʱ<D7A2><CAB1>;
SCORE _iBaseScore; //<2F><>ע;
uint8 _cbSendCardCount; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 _wBankerUser; //ׯ<><D7AF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint8 _cbCurOpenCardAniIndex; //<2F><>ǰ<EFBFBD><C7B0><EFBFBD>Ŷ<EFBFBD><C5B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 _wSelfSpecialType; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 _wKillAllUserChairID; //ȫ<>ݴ<EFBFBD><DDB4>û<EFBFBD><C3BB><EFBFBD><EFBFBD>Ӻ<EFBFBD>;
uint8 _aryActiveStatus[SSS_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>״̬;
uint8 _aryHandCardData[SSS_HAND_CARD_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
uint16 _arySpecialType[SSS_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
int _arySpecialCompareResult[SSS_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͱȽϽ<C8BD><CFBD><EFBFBD>;
int _aryThreeKillResult[SSS_GAME_PLAYER]; //ȫ<>ݴ<EFBFBD><DDB4>Ӽ<EFBFBD><D3BC><EFBFBD>;
uint8 _aryTricksFrontCard[SSS_MIN_ITEM_COUNT];
uint8 _aryTricksMidCard[SSS_MAX_ITEM_COUNT];
uint8 _aryTricksBackCard[SSS_MAX_ITEM_COUNT];
uint8 _aryFrontCard[SSS_GAME_PLAYER][SSS_MIN_ITEM_COUNT]; //<2F><><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0>;
uint8 _aryMidCard[SSS_GAME_PLAYER][SSS_MAX_ITEM_COUNT]; //<2F><><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>;
uint8 _aryBackCard[SSS_GAME_PLAYER][SSS_MAX_ITEM_COUNT]; //<2F><><EFBFBD>Һ<EFBFBD><D2BA><EFBFBD>;
//<2F><><EFBFBD><EFBFBD>;
Node* m_rootNode; //<2F><><EFBFBD><EFBFBD>;
Layout* _MainPanel;
ImageView* _imgRoomInfo;
Layout* _RoundPanel;
Text* _txtRoomID;
Text* _txtRoomRule;
Text* _txtJushu;
Layout* _ButtonPanel;
Layout* _SendCardPanel;
Button* _btnInvite;
Button* _btnDismiss;
Button* _btnLeave; // <20><EFBFBD><EBBFAA>ť;
Button* _btnVoice;
Button* _btnChat;
Button* _btnStartGame;
Layout* _RobPanel; // <20><>ׯ<EFBFBD><D7AF><EFBFBD><EFBFBD>;
Layout* _YaZhuPanel; // ѹע<D1B9><D7A2><EFBFBD><EFBFBD>;
Button* _btnRobYes; // <20><>ׯ;
Button* _btnRobNo; // <20><><EFBFBD><EFBFBD>ׯ;
Button* _aryButtonScore[3]; // ѹע<D1B9><D7A2>ť;
Layout* _SpecialPanel;
Layout* _OperatePanel;
SSSOperateCardPanel* _OperateCardPanel;
SSSOpenResultScene* _OpenResultScene;
Layout* _aryTricksCardPanel[SSS_GROUP_COUNT];
Button* _aryButtonRechoose[SSS_GROUP_COUNT];
Sprite* _arySprCardType[SSS_GROUP_COUNT];
Sprite* _arySprCardShadow[SSS_GROUP_COUNT];
Sprite* _sprSpecialType;
Button* _btnRefuseCards;
Button* _btnCommitSpecial;
Button* _btnCompare;
Button* _btnReset;
Button* _btnRandomCard;
Button* _btnDuiZi;
Button* _btnLiangDui;
Button* _btnSanTiao;
Button* _btnShunZi;
Button* _btnTongHua;
Button* _btnHuLu;
Button* _btnTieZhi;
Button* _btnTongHuaShun;
Text* _txtTip;
Sprite* _imgOperClock;
Sprite* _imgGameClock;
Sprite* _imgQualifiedTips; // ͷ<><CDB7>С<EFBFBD><D0A1><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ʾ;
Sprite* _sprOtherCallBanker;
Sprite* _sprOtherAddScore;
Sprite* _sprSelfAddScore;
Layout* _ResultPanel;
Button* _btnReady;
Button* _btnPrivateEnd;
Armature* _pArmatureStart; // <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>;
Armature* _pArmatureResult; // ʤ<><CAA4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
Armature* _pArmaAllKillEffect; // ȫ<>ݴ򶯻<DDB4>;
TextAtlas* _pTxtResultScore[SSS_GAME_PLAYER];
//TextAtlas* _pTxtXinScore[SSS_GAME_PLAYER];
SSS_GamePlayer* m_aryPlayer[SSS_GAME_PLAYER]; //<2F><><EFBFBD><EFBFBD>;
SSS_GamePlayer* m_pLocalPlayer;
std::string m_strGameRuleInfo;
std::string m_strGameTitle;
Vec2 _ptSendCardPos; // <20><><EFBFBD><EFBFBD>λ<EFBFBD><CEBB>;
std::vector<tagSSSOpenResultItem> _aryResultItem;
//std::vector<tagSSSOpenScore> _aryOpenScoreList;
CGameOverAni* m_GameOverAni;
tag13SAnalyseType m_AnalyseType;
C13SGameLogic m_GameLogic;
SSS_CMD_S_GameEnd m_GameEnd;
// localZOrder <20>㼶;
enum ZOrder
{
ZO_DEFAULT = 0, // Ĭ<><C4AC>;
ZO_CARDMANAGER, // <20><EFBFBD><E9BDAB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
ZO_UPDOWN, // <20><><EFBFBD>·<EFBFBD>;
ZO_ANI, // <20><><EFBFBD><EFBFBD>;
ZO_TRUSTEE, // <20>й<EFBFBD>;
ZO_END, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>;
ZO_PRIVATE, // ˽<>˳<EFBFBD><CBB3><EFBFBD><EFBFBD><EFBFBD>;
};
};
}