Team Fortress 2 Source Code as on 22/4/2020
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================
#include "DialogAddServer.h"
#include "INetAPI.h"
#include "IGameList.h"
#include "Server.h"
#include <VGUI_MessageBox.h>
#include <VGUI_KeyValues.h>
using namespace vgui;
//-----------------------------------------------------------------------------
// Purpose: Constructor
// Input : *gameList - game list to add specified server to
//-----------------------------------------------------------------------------
CDialogAddServer::CDialogAddServer(IGameList *gameList) : Frame(NULL, "DialogAddServer") { MakePopup();
m_pGameList = gameList;
SetTitle("Add Server - Servers", true);
LoadControlSettings("Admin\\DialogAddServer.res"); }
//-----------------------------------------------------------------------------
// Purpose: Destructor
//-----------------------------------------------------------------------------
CDialogAddServer::~CDialogAddServer() { }
//-----------------------------------------------------------------------------
// Purpose: Activates this dialog
//-----------------------------------------------------------------------------
void CDialogAddServer::Open() { MoveToFront(); RequestFocus(); }
//-----------------------------------------------------------------------------
// Purpose:
// Input : *command -
//-----------------------------------------------------------------------------
void CDialogAddServer::OnCommand(const char *command) { if (!stricmp(command, "OK")) { OnOK(); } else { BaseClass::OnCommand(command); } }
//-----------------------------------------------------------------------------
// Purpose: Handles the OK button being pressed; adds the server to the game list
//-----------------------------------------------------------------------------
void CDialogAddServer::OnOK() { // try and parse out IP address
const char *address = GetControlString("ServerNameText", ""); netadr_t netaddr; if (net->StringToAdr(address, &netaddr)) { // net address successfully parsed, add the server to the game list
serveritem_t server; memset(&server, 0, sizeof(server)); for (int i = 0; i < 4; i++) { server.ip[i] = netaddr.ip[i]; } server.port = (netaddr.port & 0xff) << 8 | (netaddr.port & 0xff00) >> 8;; if (!server.port) { // use the default port since it was not entered
server.port = 27015; } m_pGameList->AddNewServer(server); m_pGameList->StartRefresh(); } else { // could not parse the ip address, popup an error
MessageBox *dlg = new MessageBox("Add Server - Error", "The server IP address you entered is invalid."); dlg->DoModal(); }
// mark ourselves to be closed
PostMessage(this, new KeyValues("Close")); }
//-----------------------------------------------------------------------------
// Purpose: Deletes dialog on close
//-----------------------------------------------------------------------------
void CDialogAddServer::OnClose() { BaseClass::OnClose(); MarkForDeletion(); }
|