File: LobbyConnection.cpp

package info (click to toggle)
spring 88.0%2Bdfsg1-1.1
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 41,524 kB
  • sloc: cpp: 343,114; ansic: 38,414; python: 12,257; java: 12,203; awk: 5,748; sh: 1,204; xml: 997; perl: 405; objc: 192; makefile: 181; php: 134; sed: 2
file content (95 lines) | stat: -rwxr-xr-x 2,047 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
/* This file is part of the Spring engine (GPL v2 or later), see LICENSE.html */

#include "LobbyConnection.h"
#include "System/Platform/Win/win32.h"

#include <boost/bind.hpp>

#include "UpdaterWindow.h"
#include "System/Config/ConfigHandler.h"
#include "Game/GameVersion.h"
#include "aGui/Gui.h"

CONFIG(std::string, LobbyServer).defaultValue("lobby.springrts.com");

LobbyConnection::LobbyConnection() : upwin(NULL)
{
	Connect(configHandler->GetString("LobbyServer"), 8200);
}

LobbyConnection::~LobbyConnection()
{
	if (upwin)
	{
		agui::gui->RmElement(upwin);
	}
}

void LobbyConnection::ConnectDialog(bool show)
{
	if (show && !upwin)
	{
		upwin = new UpdaterWindow(this);
		upwin->WantClose.connect(boost::bind(&LobbyConnection::ConnectDialog, this, false));
	}
	else if (!show)
	{
		agui::gui->RmElement(upwin);
		upwin = NULL;
	}
}

bool LobbyConnection::WantClose() const
{
	return upwin == NULL;
}

void LobbyConnection::DoneConnecting(bool success, const std::string& err)
{
	if (success)
	{
		upwin->ServerLabel("Connected to TASServer");
	}
	else
	{
		upwin->ServerLabel(err);
	}
}

void LobbyConnection::ServerGreeting(const std::string& serverVer, const std::string& springVer, int udpport, int mode)
{
	upwin->ServerLabel(std::string("Connected to TASServer v")+serverVer); // TODO change "TASServer" to something like "spring-lobby server"
	if (springVer != SpringVersion::GetSync())
	{
		upwin->Label(std::string("Server has new version: ")+springVer + " (Yours: "+ SpringVersion::GetSync() + ")");
	}
	else
	{
		upwin->Label("Your version is up-to-date");
	}
}

void LobbyConnection::Denied(const std::string& reason)
{
	upwin->ServerLabel(reason);
}

void LobbyConnection::Aggreement(const std::string& text)
{
	upwin->ShowAggreement(text);
}

void LobbyConnection::LoginEnd()
{
	upwin->ServerLabel("Logged in successfully");
}

void LobbyConnection::RegisterDenied(const std::string& reason)
{
	upwin->ServerLabel(reason);
}

void LobbyConnection::RegisterAccept()
{
	upwin->ServerLabel("Account registered successfully");
}