CClient Class Reference

#include <Client.hpp>

Inherits BaseThread.

List of all members.

Public Member Functions

 CClient (CGame *pGame, unsigned int nRefreshInterval, unsigned int nSendInterval, unsigned int nMessageQueueLength)
void SetGameController (CPlayerCtrlMP *pGameController)
 Zeiger auf PlayerCtrlMP Objekt setzen.
int GetLocalPlayerID ()
 ID des lokalen Spielers zurueckgeben.
int GetCurrGameID ()
 ID des aktuellen Spiels zurueckgeben.
int GetPlayerStartPos ()
 Startposition des Spielers auf der aktuellen Map zurueck geben.
char * GetMapFile ()
 Gib den Dateinamen der vom Server empfangenen Map zurück.
bool connect (const char *szServer, int nPort)
vector< SGameInfo > & GetGames ()
SGameInfo * GetRunningGame ()
vector< SPlayer > & GetPlayer ()
map< int, SPlayerInfo * > & GetPlayerStats ()
map< int, SPlayerObj > * GetPlayerObj ()
void SetLocalPlayerObj (SPlayerObj *pPlayer)
SMapInfo * GetMaps (u16 *pnNumMaps)
u8 * GetMap ()
void AddMap (u8 nMapID)
 Fuegt eine Map zur "Playlist" des Servers hinzu.
void Chat (char *szMessage)
vector< string > & GetChatMessages ()
bool CreateGame (const char *szName, u8 nMaxPlayers, bool bAllowLateJoin, bool bAllowVisitors, const char *szPassword, vector< u8 > &vSelectedMaps)
bool JoinGame (u16 nID, const char *szPassword)
bool StartGame ()
bool VisitGame (u16 nID, char *szPassword)
bool LeaveGame ()
 Verlaesst das Spiel an dem der Client gerade beteiligt ist.
void PauseGame ()
 Pausiert das spiel an dem der Client gerade beteiligt ist.
void GoalReached ()
 Spieler hat das Ziel erreicht -> GAME_NEXT_LEVEL Nachricht schicken!
bool InGame ()
bool LevelRunning ()
int SecondsToStart ()
 Gib die Anzahl sekunden zurück bis zum start.
bool IsActive ()
char * LastError ()
int Run ()
 Endlosscheife in der regelmaessig Daten gesendet werden.
bool Update ()
void Die ()
 Aufgerufen wenn Spieler tot ist.

Static Public Member Functions

static bool SortPlayerStats (SPlayer p1, SPlayer p2)
 Sort-Callback fuer Sortierung der Spielerstats nach gew. Runden.


Detailed Description

Kommunikation mit einem Server fuer ein Netzwerkspiel Empfaengt regelmaessig Daten ueber Spielverlauf und aktualisiert PlayerCtrlMP-Objekt

Constructor & Destructor Documentation

CClient::CClient ( CGame pGame,
unsigned int  nRefreshInterval,
unsigned int  nSendInterval,
unsigned int  nMessageQueueLength 
)

Konstruktor

Parameters:
pLocalPlayer Lokaler player
pGame CGame-Instanz
nRefreshInterval Intervall in dem Informationen aktualisiert werden
nSendInterval Interval in dem der aktualle (in ms) Spielfortschritt abgerufen wird und der eigene Fortschritt gesendet wird (in ms)
nMessageQueueLength Anzahl von Chat-Nachrichten die gespeichert werden


Member Function Documentation

bool CClient::connect ( const char *  szServer,
int  nPort 
)

Verbindung zu einem Server herstellen

Parameters:
szServer Name des Servers
nPort Port auf dem Server
Returns:
true wenn eine Verbindung hergestellt werden konnte sonst false

vector< SGameInfo > & CClient::GetGames (  ) 

Gibt Informationen ueber alle auf dem Server verfuegbaren Spiele zurueck.

Returns:
SGameInfo-Vektor

SGameInfo * CClient::GetRunningGame (  ) 

Gibt Information ueber das Spiel zurueck an dem der Spieler beteiligt ist

Returns:
Spielinformationen

vector< SPlayer > & CClient::GetPlayer (  ) 

Gibt Informationen ueber im Spiel oder auf dem Server registrierte Spieler zurueck. Sind noch keine Infos vom Server empfangen worden, blockiert die Funktion und ruft diese ab.

Parameters:
pnNumPlayer Zeiger auf desses Ziel die Anzahl gelesener Spieler-Infos gespeichert wird
Returns:
Einen Zeiger auf ein SPlayerInfo-Array

map< int, SPlayerInfo* >& CClient::GetPlayerStats (  ) 

Generierte eine Msg, die neue Spielerstats anfordert und gib akt. Spielerstats zurueck als sortierte Map mit <Anzahl gew. Spiele, Spielerinfo>

map< int, SPlayerObj > * CClient::GetPlayerObj (  ) 

Gibt Informationen ueber im Spiel oder auf dem Server registrierte Spieler zurueck.

Returns:
Einen Pointer auf eine Map mit SPlayerObj-Strukturen

void CClient::SetLocalPlayerObj ( SPlayerObj pPlayer  ) 

Setzt die Referenz zum lokalen player

Parameters:
pPlayer 

SMapInfo* CClient::GetMaps ( u16 *  pnNumMaps  ) 

Gibt Informationen zu verfuegbaren Maps zurueck die auf dem Server sind und abgerufen werden koennen. Sind noch keine Infos vom Server empfangen worden, blockiert die Funktion und ruft diese ab.

Parameters:
pnNumMaps Zeiger auf desses Ziel die Anzahl gelesener Level-Infos gespeichert wird
Returns:
Einen Zeiger auf ein SMapInfo-Array

u8* CClient::GetMap (  ) 

Laedt Level-Daten fuer das aktuelle Level vom Server herunter und gibt einen Zeiger auf diese Daten zurueck

Parameters:
pnSize Zeiger auf dessen Ziel die Groesse der Karte gespeichert wird
Returns:
Zeiger auf Kartendaten

void CClient::Chat ( char *  szMessage  ) 

Sendet eine Chat-Nachricht

Parameters:
szMessage zu sendende Chat-Nachricht

vector<string>& CClient::GetChatMessages (  ) 

Gibt einen Vector mit eingegangenen Chat-Nachrichten zurueck

Returns:
Nachrichten-Vektor

bool CClient::CreateGame ( const char *  szName,
u8  nMaxPlayers,
bool  bAllowLateJoin,
bool  bAllowVisitors,
const char *  szPassword,
vector< u8 > &  vSelectedMaps 
)

Erstellt ein neues Spiel

Parameters:
szName Name des Spiels
nMaxPlayers Maximale Anzahl Spieler
bAllowLateJoin Erlaube das Beitreten von Spielern nachdem das Spiel gestartet wurde?
bAllowVisitors Zuschauer erlauben?
szPassword Das Passwort (NULL für kein Passwort)
Returns:
true wenn Spiel erstellt wurde sonst false

bool CClient::JoinGame ( u16  nID,
const char *  szPassword 
)

Tritt einem Spiel bei

Parameters:
nID ID des Spiels
szPassword Passwort (NULL fuer kein Passwort)
Returns:
true wenn beigetreten werden konnte sonst false

bool CClient::StartGame (  ) 

Setzt Spieler auf PLAYER_READY und startet Spiel sobald alle bereit sind

Returns:
true wenn gestartet werden konnte

bool CClient::VisitGame ( u16  nID,
char *  szPassword 
)

Tritt einem Spiel als Zuschauer bei

Parameters:
nID ID des Spiels
szPassword Passwort (NULL fuer kein Passwort)
Returns:
true wenn beigetreten werden konnte sonst false

bool CClient::InGame (  )  [inline]

Gibt true zurueck wenn Client gerade an einem Spiel beteiligt ist

Returns:
true|false

bool CClient::LevelRunning (  ) 

Gibt true zurück wenn ein level geladen ist und der counter zum levelstart abgelaufen ist

bool CClient::IsActive (  ) 

Prueft ob die Verbindung noch besteht und evtl. Fehler aufgetreten sind

Returns:
true wenn die Verbindung noch besteht, false wenn ein kritischer Fehler zum Verbindungsabbau gefuehrt hat

char* CClient::LastError (  ) 

Liefert den zuletzt aufgetretenen Fehler zurueck

Returns:
Fehler-String des letzten Fehlers oder NULL wenn kein Fehler aufgetreten ist

bool CClient::Update (  ) 

Daten empfangen und senden. Wird vom ClientThread in regelmaessigen Abstaenden aufgerufen


The documentation for this class was generated from the following files:

Generated on Sun Jul 27 21:05:50 2008 for Traxi by  doxygen 1.5.5