Beispiel #1
0
			void run()
			{ 
				while(1)
				{
					int fd_client;
					get_sockfd(fd_client);
					handle_chat(fd_client);
				}
			}
Beispiel #2
0
// static
void LLToolBar::onClickChat(void* user_data)
{
    handle_chat(NULL);
}
Beispiel #3
0
//���������������������������������������������������������������������������
// TurnerClassic - handle_sysmsg
//���������������������������������������������������������������������������
void TurnerClassic::handle_sysmsg (DPID to, DPMSG_GENERIC *pmsg, DWORD size)
{
    assertMyth("TurnerClassic::handle_sysmsg needs valid input", pmsg != 0);

    switch (pmsg->dwType)
    {
        case DPSYS_SETSESSIONDESC:
            {
                DPMSG_SETSESSIONDESC *msg = (DPMSG_SETSESSIONDESC*)pmsg;

                if (!(flags & TURNER_FLAGS_HOST))
                {
                    session.dwFlags = msg->dpDesc.dwFlags;
                    session.guidInstance = msg->dpDesc.guidInstance;
                    session.guidApplication = msg->dpDesc.guidApplication;
                    session.dwMaxPlayers = msg->dpDesc.dwMaxPlayers;
                    session.dwCurrentPlayers = msg->dpDesc.dwCurrentPlayers;
                    if (msg->dpDesc.lpszSessionNameA)
                    {
                        session.lpszSessionNameA = sessionName;
                        strncpy(sessionName,msg->dpDesc.lpszSessionNameA,
                                sizeof(sessionName));
                    }
                    if (msg->dpDesc.lpszPasswordA)
                    {
                        session.lpszPasswordA = password;
                        strncpy(password,msg->dpDesc.lpszPasswordA,
                                sizeof(password));
                    }
                    session.dwUser1 = msg->dpDesc.dwUser1;
                    session.dwUser2 = msg->dpDesc.dwUser2;
                    session.dwUser3 = msg->dpDesc.dwUser3;
                    session.dwUser4 = msg->dpDesc.dwUser4;
                }

                sys_set_session_desc(msg->dpDesc);
            }
            break;

        case DPSYS_HOST:
            flags |= TURNER_FLAGS_HOST;
            sys_host ();
            break;

        case DPSYS_SESSIONLOST:
            sys_no_session ();
            break;

        case DPSYS_CREATEPLAYERORGROUP:
            {
                DPMSG_CREATEPLAYERORGROUP *msg = (DPMSG_CREATEPLAYERORGROUP *)pmsg;
                switch (msg->dwPlayerType)
                {
                    case DPPLAYERTYPE_PLAYER:
                        sys_newplayer (msg->dpId,
                                       msg->dpnName.lpszShortNameA,
                                       msg->dpnName.lpszLongNameA,
                                       msg->lpData, msg->dwDataSize,
                                       msg->dpIdParent, msg->dwFlags);
                        break;
                }
            }
            break;

        case DPSYS_DESTROYPLAYERORGROUP:
            {
                DPMSG_DESTROYPLAYERORGROUP *msg = (DPMSG_DESTROYPLAYERORGROUP *)pmsg;

                switch (msg->dwPlayerType)
                {
                    case DPPLAYERTYPE_PLAYER:
                        sys_delplayer (msg->dpId,msg->dwFlags);
                        break;
                }
            }
            break;

        case DPSYS_SETPLAYERORGROUPNAME:
            {
                DPMSG_SETPLAYERORGROUPNAME *msg = (DPMSG_SETPLAYERORGROUPNAME *)pmsg;
                switch (msg->dwPlayerType)
                {
                    case DPPLAYERTYPE_PLAYER:
                        sys_set_player_name(msg->dpId,
                                            msg->dpnName.lpszShortNameA,
                                            msg->dpnName.lpszLongNameA);
                        break;
                }
            }
            break;

        case DPSYS_SETPLAYERORGROUPDATA:
            {
                DPMSG_SETPLAYERORGROUPDATA *msg = (DPMSG_SETPLAYERORGROUPDATA *)pmsg;
                switch (msg->dwPlayerType)
                {
                    case DPPLAYERTYPE_PLAYER:
                        sys_set_player_data(msg->dpId,
                                            msg->lpData, msg->dwDataSize);
                        break;
                }
            }
            break;

        case DPSYS_CHAT:
            {
                DPMSG_CHAT *msg = (DPMSG_CHAT*)pmsg;
                handle_chat(msg->idFromPlayer, msg->idToPlayer,
                            msg->idToGroup, msg->lpChat->lpszMessageA);
                break;
            }
            break;
    }
}