コード例 #1
0
ファイル: PDFactory.cs プロジェクト: Unathi/opensudoku
        public static PD createPd(byte[] data)
        {
            int pdType = 0x000000FF & (int)data[0];

            E_PD_TYPE pdTypeEnum = (E_PD_TYPE)pdType;
            PD pd = null;

            MemoryStream ms = new MemoryStream(data);
            BinaryReader br = new BinaryReader(ms);

            switch (pdTypeEnum)
            {
                case E_PD_TYPE.AUTHENTIFICATION_RESP:
                    pd = new PDAuthentificationResp();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.AUTHENTIFICATION:
                    pd = new PDAuthentification();
                    pd.unmarshal(br);
                    break;

                case E_PD_TYPE.DELETEPLAYER:
                    pd = new PDDeletePlayer();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.DELETETABLE:
                    pd = new PDDeleteTable();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.INSERTPLAYER:
                    pd = new PDInsertPlayer();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.INSERTTABLE:
                    pd = new PDInsertTable();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.UPDATEPPLAYERSTATE:
                    pd = new PDUpdatePlayerState();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.UPDATETABLESTATE:
                    pd = new PDUpdateTableState();
                    pd.unmarshal(br);
                    break;

                case E_PD_TYPE.UPDATECELL:
                    pd = new PDUpdateCell();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.UPDATECELLREQUEST:
                    pd = new PDUpdateCellRequest();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.UPDATEPPLAYERTABLESTATE:
                    pd = new PDUpdatePlayerTableState();
                    pd.unmarshal(br);
                    break;

                case E_PD_TYPE.PUBLICCHAT:
                    pd = new PDPublicChat();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.PRIVATECHAT:
                    pd = new PDPrivateChat();
                    pd.unmarshal(br);
                    break;

                case E_PD_TYPE.NEWTABLE:
                    pd = new PDNewTable();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.JOINTABLE:
                    pd = new PDJoinTable();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.JOINTABLERESPONSE:
                    pd = new PDJoinTableResponse();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.EXITTABLE:
                    pd = new PDExitTable();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.STARTTABLEGAME:
                    pd = new PDStartTableGame();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.GAMEFINISH:
                    pd = new PDGameFinish();
                    pd.unmarshal(br);
                    break;

                case E_PD_TYPE.LISTOFPLAYERREQUEST:
                    pd = new PDListOfPlayerRequest();
                    pd.unmarshal(br);
                    break;
                case E_PD_TYPE.LISTOFTABLEREQUEST:
                    pd = new PDListOfPlayerRequest();
                    pd.unmarshal(br);
                    break;

                case E_PD_TYPE.ERROR:
                    pd = new PDError();
                    pd.unmarshal(br);
                    break;
            }
            br.Close();
            return pd;
        }
コード例 #2
0
ファイル: GameEventHandler.cs プロジェクト: Unathi/opensudoku
 public void gamePanel_ChatClicked(object sender, TableChatEvent arg)
 {
     PDPrivateChat pd = new PDPrivateChat(arg.tabaleID, (uint)MainForm.GetInstance().LocalPlayer.Id, MainForm.GetInstance().LocalPlayer.Login, arg.message);
     MainForm.GetInstance().SudokuClient.sendPacket(pd);
 }
コード例 #3
0
ファイル: SudokuTable.cs プロジェクト: Unathi/opensudoku
 void player_PlayerTableChatSendEvent(object sender, PlayerTableChatSendEventArgs arg)
 {
     if (arg.TableID == m_tableID)
     {
         if (m_players.ContainsKey(arg.ThisPlayer.PlayerID))
         {
             PDPrivateChat pd = new PDPrivateChat(m_tableID, arg.ThisPlayer.PlayerID, arg.ThisPlayer.Login, arg.Message);
             sendToAllTablePlayer(pd);
         }
     }
 }
コード例 #4
0
ファイル: PlayerObserver.cs プロジェクト: Unathi/opensudoku
 private void PlayerTableChatReceived(PDPrivateChat pdReceived)
 {
     #if DEBUG
     Console.WriteLine("PlayerTableChatReceived " + m_player.Login + ":" + pdReceived.Msg);
     #endif
     if (PlayerTableChatSendEvent != null)
     {
         PlayerTableChatSendEvent(this, new PlayerTableChatSendEventArgs(m_player, pdReceived.TableNum, pdReceived.Msg));
     }
 }