Browse Source

framework changes

Kolja Strohm 2 years ago
parent
commit
cd8a59c4d3

+ 61 - 61
Linie/GesamtSpielerStatistik.cpp

@@ -3,126 +3,126 @@
 // Inhalt der GesamtSpielerStatistik Klasse aus GesamtSpielerStatistik.h
 // Konstruktor
 GesamtSpielerStatistik::GesamtSpielerStatistik()
-    : ReferenceCounter()
-{
-    spielerNummer = 0;
-    spielerName = new Text();
-    teamName = new Text();
-    spielerFarbe = 0;
-    teamFarbe = 0;
-    gewonneneRunden = 0;
-    punkte = 0;
-    linienLength = 0;
-    zeitAmLeben = 0;
-    zeitTod = 0;
-    kills = 0;
-    tode = 0;
+	: ReferenceCounter()
+{
+	spielerNummer = 0;
+	spielerName = new Text();
+	teamName = new Text();
+	spielerFarbe = 0;
+	teamFarbe = 0;
+	gewonneneRunden = 0;
+	punkte = 0;
+	linienLength = 0;
+	zeitAmLeben = 0;
+	zeitTod = 0;
+	kills = 0;
+	tode = 0;
 }
 
 // Destruktor
 GesamtSpielerStatistik::~GesamtSpielerStatistik()
 {
-    spielerName->release();
-    teamName->release();
+	spielerName->release();
+	teamName->release();
 }
 
 // nicht constant
-void GesamtSpielerStatistik::initValues( InitDatei *dat )
-{
-    if( dat->wertExistiert( "SpielerNummer" ) )
-        spielerNummer = *dat->zWert( "SpielerNummer" );
-    if( dat->wertExistiert( "SpielerName" ) )
-        *spielerName = dat->zWert( "SpielerName" )->getText();
-    if( dat->wertExistiert( "TeamName" ) )
-        *teamName = dat->zWert( "TeamName" )->getText();
-    if( dat->wertExistiert( "SpielerFarbe" ) )
-        spielerFarbe = *dat->zWert( "SpielerFarbe" );
-    if( dat->wertExistiert( "TeamFarbe" ) )
-        teamFarbe = *dat->zWert( "TeamFarbe" );
-    if( dat->wertExistiert( "GewonneneRunden" ) )
-        gewonneneRunden = *dat->zWert( "GewonneneRunden" );
-    if( dat->wertExistiert( "Punkte" ) )
-        punkte = *dat->zWert( "Punkte" );
-    if( dat->wertExistiert( "LinienLänge" ) )
-        linienLength = *dat->zWert( "LinienLänge" );
-    if( dat->wertExistiert( "ZeitAmLeben" ) )
-        zeitAmLeben = *dat->zWert( "ZeitAmLeben" );
-    if( dat->wertExistiert( "ZeitTod" ) )
-        zeitTod = *dat->zWert( "ZeitTod" );
-    if( dat->wertExistiert( "Kills" ) )
-        kills = *dat->zWert( "Kills" );
-    if( dat->wertExistiert( "Tode" ) )
-        tode = *dat->zWert( "Tode" );
-    dat->release();
+void GesamtSpielerStatistik::initValues(InitDatei* dat)
+{
+	if (dat->wertExistiert("SpielerNummer"))
+		spielerNummer = (int)*dat->zWert("SpielerNummer");
+	if (dat->wertExistiert("SpielerName"))
+		*spielerName = dat->zWert("SpielerName")->getText();
+	if (dat->wertExistiert("TeamName"))
+		*teamName = dat->zWert("TeamName")->getText();
+	if (dat->wertExistiert("SpielerFarbe"))
+		spielerFarbe = (int)*dat->zWert("SpielerFarbe");
+	if (dat->wertExistiert("TeamFarbe"))
+		teamFarbe = (int)*dat->zWert("TeamFarbe");
+	if (dat->wertExistiert("GewonneneRunden"))
+		gewonneneRunden = (int)*dat->zWert("GewonneneRunden");
+	if (dat->wertExistiert("Punkte"))
+		punkte = (int)*dat->zWert("Punkte");
+	if (dat->wertExistiert("LinienLänge"))
+		linienLength = (int)*dat->zWert("LinienLänge");
+	if (dat->wertExistiert("ZeitAmLeben"))
+		zeitAmLeben = (int)*dat->zWert("ZeitAmLeben");
+	if (dat->wertExistiert("ZeitTod"))
+		zeitTod = (int)*dat->zWert("ZeitTod");
+	if (dat->wertExistiert("Kills"))
+		kills = (int)*dat->zWert("Kills");
+	if (dat->wertExistiert("Tode"))
+		tode = (int)*dat->zWert("Tode");
+	dat->release();
 }
 
 // constant
 int GesamtSpielerStatistik::getSpielerNummer() const
 {
-    return spielerNummer;
+	return spielerNummer;
 }
 
-Text *GesamtSpielerStatistik::getSpielerName() const
+Text* GesamtSpielerStatistik::getSpielerName() const
 {
-    return spielerName ? dynamic_cast<Text *>( spielerName->getThis() ) : 0;
+	return spielerName ? dynamic_cast<Text*>(spielerName->getThis()) : 0;
 }
 
-Text *GesamtSpielerStatistik::zSpielerName() const
+Text* GesamtSpielerStatistik::zSpielerName() const
 {
-    return spielerName;
+	return spielerName;
 }
 
-Text *GesamtSpielerStatistik::getTeamName() const
+Text* GesamtSpielerStatistik::getTeamName() const
 {
-    return teamName ? dynamic_cast<Text *>( teamName->getThis() ) : 0;
+	return teamName ? dynamic_cast<Text*>(teamName->getThis()) : 0;
 }
 
-Text *GesamtSpielerStatistik::zTeamName() const
+Text* GesamtSpielerStatistik::zTeamName() const
 {
-    return teamName;
+	return teamName;
 }
 
 int GesamtSpielerStatistik::getSpielerFarbe() const
 {
-    return spielerFarbe;
+	return spielerFarbe;
 }
 
 int GesamtSpielerStatistik::getTeamFarbe() const
 {
-    return teamFarbe;
+	return teamFarbe;
 }
 
 int GesamtSpielerStatistik::getGewonneneRunden() const
 {
-    return gewonneneRunden;
+	return gewonneneRunden;
 }
 
 int GesamtSpielerStatistik::getPunkte() const
 {
-    return punkte;
+	return punkte;
 }
 
 int GesamtSpielerStatistik::getLinienLength() const
 {
-    return linienLength;
+	return linienLength;
 }
 
 int GesamtSpielerStatistik::getZeitAmLeben() const
 {
-    return zeitAmLeben;
+	return zeitAmLeben;
 }
 
 int GesamtSpielerStatistik::getZeitTod() const
 {
-    return zeitTod;
+	return zeitTod;
 }
 
 int GesamtSpielerStatistik::getKills() const
 {
-    return kills;
+	return kills;
 }
 
 int GesamtSpielerStatistik::getTode() const
 {
-    return tode;
+	return tode;
 }

+ 39 - 39
Linie/GesamtTeamStatistik.cpp

@@ -3,88 +3,88 @@
 // Inhalt der GesamtTeamStatistik Klasse aus GesamtTeamStatistik.h
 // Konstruktor
 GesamtTeamStatistik::GesamtTeamStatistik()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    teamNummer = 0;
-    teamName = new Text();
-    teamFarbe = 0;
-    gewonneneRunden = 0;
-    punkte = 0;
-    linienLength = 0;
-    kills = 0;
-    tode = 0;
+	teamNummer = 0;
+	teamName = new Text();
+	teamFarbe = 0;
+	gewonneneRunden = 0;
+	punkte = 0;
+	linienLength = 0;
+	kills = 0;
+	tode = 0;
 }
 
 // Destruktor
 GesamtTeamStatistik::~GesamtTeamStatistik()
 {
-    teamName->release();
+	teamName->release();
 }
 
 // nicht constant
-void GesamtTeamStatistik::initValues( InitDatei *dat )
+void GesamtTeamStatistik::initValues(InitDatei* dat)
 {
-    if( dat->wertExistiert( "TeamNummer" ) )
-        teamNummer = *dat->zWert( "TeamNummer" );
-    if( dat->wertExistiert( "TeamName" ) )
-        *teamName = dat->zWert( "TeamName" )->getText();
-    if( dat->wertExistiert( "TeamFarbe" ) )
-        teamFarbe = *dat->zWert( "TeamFarbe" );
-    if( dat->wertExistiert( "GewonneneRunden" ) )
-        gewonneneRunden = *dat->zWert( "GewonneneRunden" );
-    if( dat->wertExistiert( "Punkte" ) )
-        punkte = *dat->zWert( "Punkte" );
-    if( dat->wertExistiert( "LinienLänge" ) )
-        linienLength = *dat->zWert( "LinienLänge" );
-    if( dat->wertExistiert( "Kills" ) )
-        kills = *dat->zWert( "Kills" );
-    if( dat->wertExistiert( "Tode" ) )
-        tode = *dat->zWert( "Tode" );
-    dat->release();
+	if (dat->wertExistiert("TeamNummer"))
+		teamNummer = (int)*dat->zWert("TeamNummer");
+	if (dat->wertExistiert("TeamName"))
+		*teamName = dat->zWert("TeamName")->getText();
+	if (dat->wertExistiert("TeamFarbe"))
+		teamFarbe = (int)*dat->zWert("TeamFarbe");
+	if (dat->wertExistiert("GewonneneRunden"))
+		gewonneneRunden = (int)*dat->zWert("GewonneneRunden");
+	if (dat->wertExistiert("Punkte"))
+		punkte = (int)*dat->zWert("Punkte");
+	if (dat->wertExistiert("LinienLänge"))
+		linienLength = (int)*dat->zWert("LinienLänge");
+	if (dat->wertExistiert("Kills"))
+		kills = (int)*dat->zWert("Kills");
+	if (dat->wertExistiert("Tode"))
+		tode = (int)*dat->zWert("Tode");
+	dat->release();
 }
 
 // constant
 int GesamtTeamStatistik::getTeamNummer() const
 {
-    return teamNummer;
+	return teamNummer;
 }
 
-Text *GesamtTeamStatistik::getTeamName() const
+Text* GesamtTeamStatistik::getTeamName() const
 {
-    return teamName ? dynamic_cast<Text *>( teamName->getThis() ) : 0;
+	return teamName ? dynamic_cast<Text*>(teamName->getThis()) : 0;
 }
 
-Text *GesamtTeamStatistik::zTeamName() const
+Text* GesamtTeamStatistik::zTeamName() const
 {
-    return teamName;
+	return teamName;
 }
 
 int GesamtTeamStatistik::getTeamFarbe() const
 {
-    return teamFarbe;
+	return teamFarbe;
 }
 
 int GesamtTeamStatistik::getGewonneneRunden() const
 {
-    return gewonneneRunden;
+	return gewonneneRunden;
 }
 
 int GesamtTeamStatistik::getPunkte() const
 {
-    return punkte;
+	return punkte;
 }
 
 int GesamtTeamStatistik::getLinienLength() const
 {
-    return linienLength;
+	return linienLength;
 }
 
 int GesamtTeamStatistik::getKills() const
 {
-    return kills;
+	return kills;
 }
 
 int GesamtTeamStatistik::getTode() const
 {
-    return tode;
+	return tode;
 }

+ 72 - 72
Linie/KartenLeser.cpp

@@ -3,97 +3,97 @@
 
 // Inhalt der KartenLeser Klasse aus KartenLeser.h
 // Kontruktor
-KartenLeser::KartenLeser( int karteId, SSDatenbankV *db, char *mapPfad )
-    : ReferenceCounter()
+KartenLeser::KartenLeser(int karteId, SSDatenbankV* db, const char* mapPfad)
+	: ReferenceCounter()
 {
-    this->karteId = karteId;
-    this->db = db;
-    pfad = new Text( mapPfad );
+	this->karteId = karteId;
+	this->db = db;
+	pfad = new Text(mapPfad);
 }
 
 // Destruktor
 KartenLeser::~KartenLeser()
 {
-    db->release();
-    if( pfad )
-        pfad->release();
+	db->release();
+	if (pfad)
+		pfad->release();
 }
 
 // nicht constant
-bool KartenLeser::ladeSpielerTeamStruktur( SpielerTeamStruktur *zSts )
+bool KartenLeser::ladeSpielerTeamStruktur(SpielerTeamStruktur* zSts)
 {
-    if( !pfad )
-        return 0;
-    Text *pf = new Text( pfad->getText() );
-    pf->append( "sts.ltgd" );
-    Datei *datei = new Datei();
-    datei->setDatei( pf );
-    if( !datei->existiert() || datei->istOrdner() )
-    {
-        datei->release();
-        return 0;
-    }
-    datei->open( Datei::Style::lesen );
-    datei->lese( (char *)&zSts->spielerAnzahl, 4 );
-    datei->lese( (char *)&zSts->teamAnzahl, 4 );
-    if( zSts->spielerFarbe )
-        zSts->spielerFarbe->release();
-    zSts->spielerFarbe = new Array< int >();
-    for( int i = 0; i < zSts->spielerAnzahl; i++ )
-    {
-        int farbe = 0;
-        datei->lese( (char *)&farbe, 4 );
-        zSts->spielerFarbe->set( farbe, i );
-    }
-    if( zSts->teamFarbe )
-        zSts->teamFarbe->release();
-    zSts->teamFarbe = new Array< int >();
-    for( int i = 0; i < zSts->teamAnzahl; i++ )
-    {
-        int farbe = 0;
-        datei->lese( (char *)&farbe, 4 );
-        zSts->teamFarbe->set( farbe, i );
-    }
-    if( zSts->teamName )
-        zSts->teamName->release();
-    zSts->teamName = new RCArray< Text >();
-    for( int i = 0; i < zSts->teamAnzahl; i++ )
-    {
-        char len = 0;
-        datei->lese( &len, 1 );
-        char *txt = new char[ len + 1 ];
-        txt[ (int)len ] = 0;
-        datei->lese( txt, len );
-        Text *name = new Text( txt );
-        delete[] txt;
-        zSts->teamName->set( name, i );
-    }
-    if( zSts->teamSize )
-        zSts->teamSize->release();
-    zSts->teamSize = new Array< int >();
-    for( int i = 0; i < zSts->teamAnzahl; i++ )
-    {
-        int size = 0;
-        datei->lese( (char *)&size, 4 );
-        zSts->teamSize->set( size, i );
-    }
-    datei->close();
-    datei->release();
-    return 1;
+	if (!pfad)
+		return 0;
+	Text* pf = new Text(pfad->getText());
+	pf->append("sts.ltgd");
+	Datei* datei = new Datei();
+	datei->setDatei(pf);
+	if (!datei->existiert() || datei->istOrdner())
+	{
+		datei->release();
+		return 0;
+	}
+	datei->open(Datei::Style::lesen);
+	datei->lese((char*)&zSts->spielerAnzahl, 4);
+	datei->lese((char*)&zSts->teamAnzahl, 4);
+	if (zSts->spielerFarbe)
+		zSts->spielerFarbe->release();
+	zSts->spielerFarbe = new Array< int >();
+	for (int i = 0; i < zSts->spielerAnzahl; i++)
+	{
+		int farbe = 0;
+		datei->lese((char*)&farbe, 4);
+		zSts->spielerFarbe->set(farbe, i);
+	}
+	if (zSts->teamFarbe)
+		zSts->teamFarbe->release();
+	zSts->teamFarbe = new Array< int >();
+	for (int i = 0; i < zSts->teamAnzahl; i++)
+	{
+		int farbe = 0;
+		datei->lese((char*)&farbe, 4);
+		zSts->teamFarbe->set(farbe, i);
+	}
+	if (zSts->teamName)
+		zSts->teamName->release();
+	zSts->teamName = new RCArray< Text >();
+	for (int i = 0; i < zSts->teamAnzahl; i++)
+	{
+		char len = 0;
+		datei->lese(&len, 1);
+		char* txt = new char[len + 1];
+		txt[(int)len] = 0;
+		datei->lese(txt, len);
+		Text* name = new Text(txt);
+		delete[] txt;
+		zSts->teamName->set(name, i);
+	}
+	if (zSts->teamSize)
+		zSts->teamSize->release();
+	zSts->teamSize = new Array< int >();
+	for (int i = 0; i < zSts->teamAnzahl; i++)
+	{
+		int size = 0;
+		datei->lese((char*)&size, 4);
+		zSts->teamSize->set(size, i);
+	}
+	datei->close();
+	datei->release();
+	return 1;
 }
 
 // constant
 int KartenLeser::getKarteId() const
 {
-    return karteId;
+	return karteId;
 }
 
-Text *KartenLeser::getPfad() const
+Text* KartenLeser::getPfad() const
 {
-    return pfad ? dynamic_cast<Text *>( pfad->getThis() ) : 0;
+	return pfad ? dynamic_cast<Text*>(pfad->getThis()) : 0;
 }
 
-Text *KartenLeser::zPfad() const
+Text* KartenLeser::zPfad() const
 {
-    return pfad;
+	return pfad;
 }

+ 13 - 13
Linie/KartenLeser.h

@@ -7,21 +7,21 @@
 class KartenLeser : public virtual ReferenceCounter
 {
 private:
-    SSDatenbankV *db;
-    Text *pfad;
-    int karteId;
+	SSDatenbankV* db;
+	Text* pfad;
+	int karteId;
 
 public:
-    // Kontruktor
-    KartenLeser( int karteId, SSDatenbankV *db, char *mapPfad );
-    // Destruktor
-    ~KartenLeser();
-    // nicht constant
-    bool ladeSpielerTeamStruktur( SpielerTeamStruktur *zSts );
-    // constant
-    int getKarteId() const;
-    Text *getPfad() const;
-    Text *zPfad() const;
+	// Kontruktor
+	KartenLeser(int karteId, SSDatenbankV* db, const char* mapPfad);
+	// Destruktor
+	~KartenLeser();
+	// nicht constant
+	bool ladeSpielerTeamStruktur(SpielerTeamStruktur* zSts);
+	// constant
+	int getKarteId() const;
+	Text* getPfad() const;
+	Text* zPfad() const;
 };
 
 #endif

+ 454 - 454
Linie/Klient.cpp

@@ -4,479 +4,479 @@
 
 // Inhalt der Klient Klasse aus Klient.h
 // Konstruktor
-Klient::Klient( SSKlientV *klient )
-    : ReferenceCounter()
+Klient::Klient(SSKlientV* klient)
+	: ReferenceCounter()
 {
-    this->klient = klient;
+	this->klient = klient;
 }
 
 // Destruktor
 Klient::~Klient()
 {
-    if( klient )
-        klient->release();
+	if (klient)
+		klient->release();
 }
 
 // nicht constant
 void Klient::offline()
 {
-    klient = (SSKlientV *)klient->release();
+	klient = (SSKlientV*)klient->release();
 }
-
-void Klient::online( SSKlientV *zKlient )
-{
-    if( klient )
-        klient = (SSKlientV *)klient->release();
-    klient = dynamic_cast<SSKlientV *>( zKlient->getThis() );
-}
-
-void Klient::sendeSpielerNummer( int sNum, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 13;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0;
-    *(int *)( bytes + 9 ) = sNum;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeInitSpieler( int anzahl, RCArray< Spieler > *zSpieler, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = (short)( 13 + 20 * anzahl );
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 1;
-    *(int *)( bytes + 9 ) = anzahl;
-    for( int i = 0; i < anzahl; i++ )
-    {
-        *(int *)( bytes + i * 20 + 13 ) = zSpieler->z( i )->getSpielerNummer();
-        *(int *)( bytes + i * 20 + 17 ) = zSpieler->z( i )->getSpielerTeam();
-        *(int *)( bytes + i * 20 + 21 ) = zSpieler->z( i )->getSpielerFarbe();
-        *(int *)( bytes + i * 20 + 25 ) = zSpieler->z( i )->getTeamFarbe();
-        *(int *)( bytes + i * 20 + 29 ) = zSpieler->z( i )->getAccountId();
-    }
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeSpielerPosition( Spieler *zSpieler, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 29;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 2;
-    *(int *)( bytes + 9 ) = zSpieler->getSpielerNummer();
-    *(double *)( bytes + 13 ) = zSpieler->getX();
-    *(double *)( bytes + 21 ) = zSpieler->getY();
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeKammeraSize( int br, int hi, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 17;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 3;
-    *(int *)( bytes + 9 ) = br;
-    *(int *)( bytes + 13 ) = hi;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeStart( double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 9;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 4;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeSpielerTod( Spieler *zSpieler, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 13;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 5;
-    *(int *)( bytes + 9 ) = zSpieler->getSpielerNummer();
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeSpielEnde( char gewonnen, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 10;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 6;
-    *(char *)( bytes + 9 ) = gewonnen;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeSpielerGeschwindigkeit( Spieler *zSpieler, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 29;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 7;
-    *(int *)( bytes + 9 ) = zSpieler->getSpielerNummer();
-    *(double *)( bytes + 13 ) = zSpieler->getSpeedX();
-    *(double *)( bytes + 21 ) = zSpieler->getSpeedY();
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeSpielerWendigkeit( Spieler *zSpieler, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 21;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 8;
-    *(int *)( bytes + 9 ) = zSpieler->getSpielerNummer();
-    *(double *)( bytes + 13 ) = zSpieler->getKurve();
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeSpielerKurve( int sNum, char kurve, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 14;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 9;
-    *(int *)( bytes + 9 ) = sNum;
-    bytes[ 13 ] = kurve;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeKartenSize( int br, int hi, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = 17;
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0xA;
-    *(int *)( bytes + 9 ) = br;
-    *(int *)( bytes + 13 ) = hi;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeChatNachricht( char *txt, double spielZeit )
-{
-    if( !klient )
-        return;
-    short len = (short)( 9 + textLength( txt ) );
-    char *bytes = new char[ len ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0xB;
-    for( int i = 9; i < len; i++ )
-        bytes[ i ] = txt[ i - 9 ];
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeLinienUnterbrechung( int sNum, bool unterbrochen, double spielZeit )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 14 ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0xC;
-    *(int *)( bytes + 9 ) = sNum;
-    *( bytes + 13 ) = (char)unterbrochen;
-    klient->spielNachricht( 14, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeTeamMaxPunkte( int team, int mP, double spielZeit )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 17 ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0xD;
-    *(int *)( bytes + 9 ) = team;
-    *(int *)( bytes + 13 ) = mP;
-    klient->spielNachricht( 17, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeTeamPunkte( int team, int p, double spielZeit )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 17 ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0xE;
-    *(int *)( bytes + 9 ) = team;
-    *(int *)( bytes + 13 ) = p;
-    klient->spielNachricht( 17, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeSpielerPunkte( int sNum, int p, double spielZeit )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 17 ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0xF;
-    *(int *)( bytes + 9 ) = sNum;
-    *(int *)( bytes + 13 ) = p;
-    klient->spielNachricht( 17, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeTeamTod( int team, double spielZeit )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 13 ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0x10;
-    *(int *)( bytes + 9 ) = team;
-    klient->spielNachricht( 13, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeTeamName( int team, char *name )
-{
-    if( !klient )
-        return;
-    int nL = textLength( name );
-    char *bytes = new char[ 13 + nL ];
-    *(double *)bytes = 0;
-    *(char *)( bytes + 8 ) = 0x13;
-    *(int *)( bytes + 9 ) = team;
-    memcpy( bytes + 13, name, nL );
-    klient->spielNachricht( (short)( 13 + nL ), bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeRundenEnde( int winTeam, double spielZeit )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 13 ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0x11;
-    *(int *)( bytes + 9 ) = winTeam;
-    klient->spielNachricht( 13, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeZeitVerbleibend( int sekunden, double spielZeit )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 13 ];
-    *(double *)bytes = spielZeit;
-    *(char *)( bytes + 8 ) = 0x12;
-    *(int *)( bytes + 9 ) = sekunden;
-    klient->spielNachricht( 13, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeStatistikChatNachricht( int vonAccount, char *txt )
-{
-    if( !klient )
-        return;
-    short len = (short)( 5 + textLength( txt ) );
-    char *bytes = new char[ len ];
-    *(char *)( bytes ) = 8;
-    *(int *)( bytes + 1 ) = vonAccount;
-    for( int i = 5; i < len; i++ )
-        bytes[ i ] = txt[ i - 5 ];
-    klient->statistikNachricht( len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeStatistikSpielerOffline( int account )
-{
-    if( !klient )
-        return;
-    char *bytes = new char[ 5 ];
-    *(char *)( bytes ) = 9;
-    *(int *)( bytes + 1 ) = account;
-    klient->statistikNachricht( 5, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeGesamtSpielerStatistik( GesamtSpielerStatistik *zS )
-{
-    if( !zS || !klient )
-        return;
-    char snl = (char)zS->zSpielerName()->getLength();
-    char tnl = (char)zS->zTeamName()->getLength();
-    int len = 43 + snl + tnl;
-    char *bytes = new char[ len ];
-    bytes[ 0 ] = 2;
-    *(int *)( bytes + 1 ) = zS->getSpielerNummer();
-    *(char *)( bytes + 5 ) = (char)zS->zSpielerName()->getLength();
-    for( int i = 0; i < snl; i++ )
-        bytes[ i + 6 ] = zS->zSpielerName()->getText()[ i ];
-    *(char *)( bytes + 6 + snl ) = tnl;
-    for( int i = 0; i < tnl; i++ )
-        bytes[ i + 7 + snl ] = zS->zTeamName()->getText()[ i ];
-    *(int *)( bytes + 7 + snl + tnl ) = zS->getSpielerFarbe();
-    *(int *)( bytes + 11 + snl + tnl ) = zS->getTeamFarbe();
-    *(int *)( bytes + 15 + snl + tnl ) = zS->getGewonneneRunden();
-    *(int *)( bytes + 19 + snl + tnl ) = zS->getPunkte();
-    *(int *)( bytes + 23 + snl + tnl ) = zS->getLinienLength();
-    *(int *)( bytes + 27 + snl + tnl ) = zS->getZeitAmLeben();
-    *(int *)( bytes + 31 + snl + tnl ) = zS->getZeitTod();
-    *(int *)( bytes + 35 + snl + tnl ) = zS->getKills();
-    *(int *)( bytes + 39 + snl + tnl ) = zS->getTode();
-    klient->statistikNachricht( (short)len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeGesamtTeamStatistik( GesamtTeamStatistik *zS )
-{
-    if( !zS || !klient )
-        return;
-    char tnl = (char)zS->zTeamName()->getLength();
-    int len = 30 + tnl;
-    char *bytes = new char[ len ];
-    bytes[ 0 ] = 3;
-    *(int *)( bytes + 1 ) = zS->getTeamNummer();
-    *(char *)( bytes + 5 ) = tnl;
-    for( int i = 0; i < tnl; i++ )
-        bytes[ i + 6 ] = zS->zTeamName()->getText()[ i ];
-    *(int *)( bytes + 6 + tnl ) = zS->getTeamFarbe();
-    *(int *)( bytes + 10 + tnl ) = zS->getGewonneneRunden();
-    *(int *)( bytes + 14 + tnl ) = zS->getPunkte();
-    *(int *)( bytes + 18 + tnl ) = zS->getLinienLength();
-    *(int *)( bytes + 22 + tnl ) = zS->getKills();
-    *(int *)( bytes + 26 + tnl ) = zS->getTode();
-    klient->statistikNachricht( (short)len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeRundeStatistik( RundenRundenStatistik *zS )
-{
-    if( !zS || !klient )
-        return;
-    char *bytes = new char[ 25 ];
-    bytes[ 0 ] = 4;
-    *(int *)( bytes + 1 ) = zS->getRundenNummer();
-    *(int *)( bytes + 5 ) = zS->getRundenDauer();
-    *(int *)( bytes + 9 ) = zS->getSiegerTeam();
-    *(int *)( bytes + 13 ) = zS->getSpielFeldNutzung();
-    *(int *)( bytes + 17 ) = zS->zRundenBild()->getBreite();
-    *(int *)( bytes + 21 ) = zS->zRundenBild()->getHeight();
-    klient->statistikNachricht( 25, bytes );
-    delete[] bytes;
-    Bild *zB = zS->zRundenBild();
-    int pixel = zB->getBreite() * zB->getHeight();
-    while( pixel )
-    {
-        int pStart = zB->getBreite() * zB->getHeight() - pixel;
-        int pLen = pixel > 200 ? 200 : pixel;
-        char *bytes = new char[ 13 + pLen * 4 ];
-        bytes[ 0 ] = 5;
-        *(int *)( bytes + 1 ) = zS->getRundenNummer();
-        *(int *)( bytes + 5 ) = pStart;
-        *(int *)( bytes + 9 ) = pLen;
-        for( int i = 0; i < pLen; i++ )
-            *(int *)( bytes + 13 + i * 4 ) = zB->getBuffer()[ pStart + i ];
-        klient->statistikNachricht( (short)( 13 + pLen * 4 ), bytes );
-        delete[] bytes;
-        pixel -= pLen;
-    }
-    int anz = zS->getSpielerAnzahl();
-    for( int i = 0; i < anz; i++ )
-        sendeRundeSpielerStatistik( zS->zSpielerStatistik( i ), zS->getRundenNummer() );
-    anz = zS->getTeamAnzahl();
-    for( int i = 0; i < anz; i++ )
-        sendeRundeTeamStatistik( zS->zTeamStatistik( i ), zS->getRundenNummer() );
-}
-
-void Klient::sendeRundeSpielerStatistik( RundenSpielerStatistik *zS, int runde )
-{
-    if( !zS || !klient )
-        return;
-    char snl = (char)zS->zSpielerName()->getLength();
-    char tnl = (char)zS->zTeamName()->getLength();
-    int len = 31 + snl + tnl;
-    char *bytes = new char[ len ];
-    bytes[ 0 ] = 6;
-    *(int *)( bytes + 1 ) = runde;
-    *(int *)( bytes + 5 ) = zS->getSpielerNummer();
-    *(char *)( bytes + 9 ) = snl;
-    for( int i = 0; i < snl; i++ )
-        bytes[ i + 10 ] = zS->zSpielerName()->getText()[ i ];
-    *(char *)( bytes + 10 + snl ) = tnl;
-    for( int i = 0; i < tnl; i++ )
-        bytes[ i + 11 + snl ] = zS->zTeamName()->getText()[ i ];
-    *(int *)( bytes + 11 + snl + tnl ) = zS->getSpielerFarbe();
-    *(int *)( bytes + 15 + snl + tnl ) = zS->getTeamFarbe();
-    *(int *)( bytes + 19 + snl + tnl ) = zS->getLinienLength();
-    *(int *)( bytes + 23 + snl + tnl ) = zS->getKills();
-    *(int *)( bytes + 27 + snl + tnl ) = zS->getTodesZeit();
-    klient->statistikNachricht( (short)len, bytes );
-    delete[] bytes;
-}
-
-void Klient::sendeRundeTeamStatistik( RundenTeamStatistik *zS, int runde )
-{
-    if( !zS || !klient )
-        return;
-    char tnl = (char)zS->zTeamName()->getLength();
-    int len = 27 + tnl;
-    char *bytes = new char[ len ];
-    bytes[ 0 ] = 7;
-    *(int *)( bytes + 1 ) = runde;
-    *(int *)( bytes + 5 ) = zS->getTeamNummer();
-    *(char *)( bytes + 9 ) = tnl;
-    for( int i = 0; i < tnl; i++ )
-        bytes[ i + 10 ] = zS->zTeamName()->getText()[ i ];
-    *(int *)( bytes + 10 + tnl ) = zS->getTeamFarbe();
-    *(char *)( bytes + 14 + tnl ) = (char)zS->getErgebnis();
-    *(int *)( bytes + 15 + tnl ) = zS->getLinienLength();
-    *(int *)( bytes + 19 + tnl ) = zS->getKills();
-    *(int *)( bytes + 23 + tnl ) = zS->getTode();
-    klient->statistikNachricht( (short)len, bytes );
-    delete[] bytes;
+
+void Klient::online(SSKlientV* zKlient)
+{
+	if (klient)
+		klient = (SSKlientV*)klient->release();
+	klient = dynamic_cast<SSKlientV*>(zKlient->getThis());
+}
+
+void Klient::sendeSpielerNummer(int sNum, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 13;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0;
+	*(int*)(bytes + 9) = sNum;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeInitSpieler(int anzahl, RCArray< Spieler >* zSpieler, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = (short)(13 + 20 * anzahl);
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 1;
+	*(int*)(bytes + 9) = anzahl;
+	for (int i = 0; i < anzahl; i++)
+	{
+		*(int*)(bytes + i * 20 + 13) = zSpieler->z(i)->getSpielerNummer();
+		*(int*)(bytes + i * 20 + 17) = zSpieler->z(i)->getSpielerTeam();
+		*(int*)(bytes + i * 20 + 21) = zSpieler->z(i)->getSpielerFarbe();
+		*(int*)(bytes + i * 20 + 25) = zSpieler->z(i)->getTeamFarbe();
+		*(int*)(bytes + i * 20 + 29) = zSpieler->z(i)->getAccountId();
+	}
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeSpielerPosition(Spieler* zSpieler, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 29;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 2;
+	*(int*)(bytes + 9) = zSpieler->getSpielerNummer();
+	*(double*)(bytes + 13) = zSpieler->getX();
+	*(double*)(bytes + 21) = zSpieler->getY();
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeKammeraSize(int br, int hi, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 17;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 3;
+	*(int*)(bytes + 9) = br;
+	*(int*)(bytes + 13) = hi;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeStart(double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 9;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 4;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeSpielerTod(Spieler* zSpieler, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 13;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 5;
+	*(int*)(bytes + 9) = zSpieler->getSpielerNummer();
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeSpielEnde(char gewonnen, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 10;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 6;
+	*(char*)(bytes + 9) = gewonnen;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeSpielerGeschwindigkeit(Spieler* zSpieler, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 29;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 7;
+	*(int*)(bytes + 9) = zSpieler->getSpielerNummer();
+	*(double*)(bytes + 13) = zSpieler->getSpeedX();
+	*(double*)(bytes + 21) = zSpieler->getSpeedY();
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeSpielerWendigkeit(Spieler* zSpieler, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 21;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 8;
+	*(int*)(bytes + 9) = zSpieler->getSpielerNummer();
+	*(double*)(bytes + 13) = zSpieler->getKurve();
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeSpielerKurve(int sNum, char kurve, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 14;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 9;
+	*(int*)(bytes + 9) = sNum;
+	bytes[13] = kurve;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeKartenSize(int br, int hi, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = 17;
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0xA;
+	*(int*)(bytes + 9) = br;
+	*(int*)(bytes + 13) = hi;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeChatNachricht(const char* txt, double spielZeit)
+{
+	if (!klient)
+		return;
+	short len = (short)(9 + textLength(txt));
+	char* bytes = new char[len];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0xB;
+	for (int i = 9; i < len; i++)
+		bytes[i] = txt[i - 9];
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeLinienUnterbrechung(int sNum, bool unterbrochen, double spielZeit)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[14];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0xC;
+	*(int*)(bytes + 9) = sNum;
+	*(bytes + 13) = (char)unterbrochen;
+	klient->spielNachricht(14, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeTeamMaxPunkte(int team, int mP, double spielZeit)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[17];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0xD;
+	*(int*)(bytes + 9) = team;
+	*(int*)(bytes + 13) = mP;
+	klient->spielNachricht(17, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeTeamPunkte(int team, int p, double spielZeit)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[17];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0xE;
+	*(int*)(bytes + 9) = team;
+	*(int*)(bytes + 13) = p;
+	klient->spielNachricht(17, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeSpielerPunkte(int sNum, int p, double spielZeit)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[17];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0xF;
+	*(int*)(bytes + 9) = sNum;
+	*(int*)(bytes + 13) = p;
+	klient->spielNachricht(17, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeTeamTod(int team, double spielZeit)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[13];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0x10;
+	*(int*)(bytes + 9) = team;
+	klient->spielNachricht(13, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeTeamName(int team, const char* name)
+{
+	if (!klient)
+		return;
+	int nL = textLength(name);
+	char* bytes = new char[13 + nL];
+	*(double*)bytes = 0;
+	*(char*)(bytes + 8) = 0x13;
+	*(int*)(bytes + 9) = team;
+	memcpy(bytes + 13, name, nL);
+	klient->spielNachricht((short)(13 + nL), bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeRundenEnde(int winTeam, double spielZeit)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[13];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0x11;
+	*(int*)(bytes + 9) = winTeam;
+	klient->spielNachricht(13, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeZeitVerbleibend(int sekunden, double spielZeit)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[13];
+	*(double*)bytes = spielZeit;
+	*(char*)(bytes + 8) = 0x12;
+	*(int*)(bytes + 9) = sekunden;
+	klient->spielNachricht(13, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeStatistikChatNachricht(int vonAccount, const char* txt)
+{
+	if (!klient)
+		return;
+	short len = (short)(5 + textLength(txt));
+	char* bytes = new char[len];
+	*(char*)(bytes) = 8;
+	*(int*)(bytes + 1) = vonAccount;
+	for (int i = 5; i < len; i++)
+		bytes[i] = txt[i - 5];
+	klient->statistikNachricht(len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeStatistikSpielerOffline(int account)
+{
+	if (!klient)
+		return;
+	char* bytes = new char[5];
+	*(char*)(bytes) = 9;
+	*(int*)(bytes + 1) = account;
+	klient->statistikNachricht(5, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeGesamtSpielerStatistik(GesamtSpielerStatistik* zS)
+{
+	if (!zS || !klient)
+		return;
+	char snl = (char)zS->zSpielerName()->getLength();
+	char tnl = (char)zS->zTeamName()->getLength();
+	int len = 43 + snl + tnl;
+	char* bytes = new char[len];
+	bytes[0] = 2;
+	*(int*)(bytes + 1) = zS->getSpielerNummer();
+	*(char*)(bytes + 5) = (char)zS->zSpielerName()->getLength();
+	for (int i = 0; i < snl; i++)
+		bytes[i + 6] = zS->zSpielerName()->getText()[i];
+	*(char*)(bytes + 6 + snl) = tnl;
+	for (int i = 0; i < tnl; i++)
+		bytes[i + 7 + snl] = zS->zTeamName()->getText()[i];
+	*(int*)(bytes + 7 + snl + tnl) = zS->getSpielerFarbe();
+	*(int*)(bytes + 11 + snl + tnl) = zS->getTeamFarbe();
+	*(int*)(bytes + 15 + snl + tnl) = zS->getGewonneneRunden();
+	*(int*)(bytes + 19 + snl + tnl) = zS->getPunkte();
+	*(int*)(bytes + 23 + snl + tnl) = zS->getLinienLength();
+	*(int*)(bytes + 27 + snl + tnl) = zS->getZeitAmLeben();
+	*(int*)(bytes + 31 + snl + tnl) = zS->getZeitTod();
+	*(int*)(bytes + 35 + snl + tnl) = zS->getKills();
+	*(int*)(bytes + 39 + snl + tnl) = zS->getTode();
+	klient->statistikNachricht((short)len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeGesamtTeamStatistik(GesamtTeamStatistik* zS)
+{
+	if (!zS || !klient)
+		return;
+	char tnl = (char)zS->zTeamName()->getLength();
+	int len = 30 + tnl;
+	char* bytes = new char[len];
+	bytes[0] = 3;
+	*(int*)(bytes + 1) = zS->getTeamNummer();
+	*(char*)(bytes + 5) = tnl;
+	for (int i = 0; i < tnl; i++)
+		bytes[i + 6] = zS->zTeamName()->getText()[i];
+	*(int*)(bytes + 6 + tnl) = zS->getTeamFarbe();
+	*(int*)(bytes + 10 + tnl) = zS->getGewonneneRunden();
+	*(int*)(bytes + 14 + tnl) = zS->getPunkte();
+	*(int*)(bytes + 18 + tnl) = zS->getLinienLength();
+	*(int*)(bytes + 22 + tnl) = zS->getKills();
+	*(int*)(bytes + 26 + tnl) = zS->getTode();
+	klient->statistikNachricht((short)len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeRundeStatistik(RundenRundenStatistik* zS)
+{
+	if (!zS || !klient)
+		return;
+	char* bytes = new char[25];
+	bytes[0] = 4;
+	*(int*)(bytes + 1) = zS->getRundenNummer();
+	*(int*)(bytes + 5) = zS->getRundenDauer();
+	*(int*)(bytes + 9) = zS->getSiegerTeam();
+	*(int*)(bytes + 13) = zS->getSpielFeldNutzung();
+	*(int*)(bytes + 17) = zS->zRundenBild()->getBreite();
+	*(int*)(bytes + 21) = zS->zRundenBild()->getHeight();
+	klient->statistikNachricht(25, bytes);
+	delete[] bytes;
+	Bild* zB = zS->zRundenBild();
+	int pixel = zB->getBreite() * zB->getHeight();
+	while (pixel)
+	{
+		int pStart = zB->getBreite() * zB->getHeight() - pixel;
+		int pLen = pixel > 200 ? 200 : pixel;
+		char* bytes = new char[13 + pLen * 4];
+		bytes[0] = 5;
+		*(int*)(bytes + 1) = zS->getRundenNummer();
+		*(int*)(bytes + 5) = pStart;
+		*(int*)(bytes + 9) = pLen;
+		for (int i = 0; i < pLen; i++)
+			*(int*)(bytes + 13 + i * 4) = zB->getBuffer()[pStart + i];
+		klient->statistikNachricht((short)(13 + pLen * 4), bytes);
+		delete[] bytes;
+		pixel -= pLen;
+	}
+	int anz = zS->getSpielerAnzahl();
+	for (int i = 0; i < anz; i++)
+		sendeRundeSpielerStatistik(zS->zSpielerStatistik(i), zS->getRundenNummer());
+	anz = zS->getTeamAnzahl();
+	for (int i = 0; i < anz; i++)
+		sendeRundeTeamStatistik(zS->zTeamStatistik(i), zS->getRundenNummer());
+}
+
+void Klient::sendeRundeSpielerStatistik(RundenSpielerStatistik* zS, int runde)
+{
+	if (!zS || !klient)
+		return;
+	char snl = (char)zS->zSpielerName()->getLength();
+	char tnl = (char)zS->zTeamName()->getLength();
+	int len = 31 + snl + tnl;
+	char* bytes = new char[len];
+	bytes[0] = 6;
+	*(int*)(bytes + 1) = runde;
+	*(int*)(bytes + 5) = zS->getSpielerNummer();
+	*(char*)(bytes + 9) = snl;
+	for (int i = 0; i < snl; i++)
+		bytes[i + 10] = zS->zSpielerName()->getText()[i];
+	*(char*)(bytes + 10 + snl) = tnl;
+	for (int i = 0; i < tnl; i++)
+		bytes[i + 11 + snl] = zS->zTeamName()->getText()[i];
+	*(int*)(bytes + 11 + snl + tnl) = zS->getSpielerFarbe();
+	*(int*)(bytes + 15 + snl + tnl) = zS->getTeamFarbe();
+	*(int*)(bytes + 19 + snl + tnl) = zS->getLinienLength();
+	*(int*)(bytes + 23 + snl + tnl) = zS->getKills();
+	*(int*)(bytes + 27 + snl + tnl) = zS->getTodesZeit();
+	klient->statistikNachricht((short)len, bytes);
+	delete[] bytes;
+}
+
+void Klient::sendeRundeTeamStatistik(RundenTeamStatistik* zS, int runde)
+{
+	if (!zS || !klient)
+		return;
+	char tnl = (char)zS->zTeamName()->getLength();
+	int len = 27 + tnl;
+	char* bytes = new char[len];
+	bytes[0] = 7;
+	*(int*)(bytes + 1) = runde;
+	*(int*)(bytes + 5) = zS->getTeamNummer();
+	*(char*)(bytes + 9) = tnl;
+	for (int i = 0; i < tnl; i++)
+		bytes[i + 10] = zS->zTeamName()->getText()[i];
+	*(int*)(bytes + 10 + tnl) = zS->getTeamFarbe();
+	*(char*)(bytes + 14 + tnl) = (char)zS->getErgebnis();
+	*(int*)(bytes + 15 + tnl) = zS->getLinienLength();
+	*(int*)(bytes + 19 + tnl) = zS->getKills();
+	*(int*)(bytes + 23 + tnl) = zS->getTode();
+	klient->statistikNachricht((short)len, bytes);
+	delete[] bytes;
 }
 
 void Klient::sendeStatistikLadenFertig()
 {
-    if( !klient )
-        return;
-    char byte = 1;
-    klient->statistikNachricht( 1, &byte );
+	if (!klient)
+		return;
+	char byte = 1;
+	klient->statistikNachricht(1, &byte);
 }
 
 // constant
 bool Klient::istOnline() const
 {
-    return klient != 0;
+	return klient != 0;
 }

+ 38 - 38
Linie/Klient.h

@@ -14,46 +14,46 @@ class Spieler;
 class Klient : public virtual ReferenceCounter
 {
 private:
-    SSKlientV *klient;
+	SSKlientV* klient;
 
 public:
-    // Konstruktor
-    Klient( SSKlientV *klient );
-    // Destruktor
-    ~Klient();
-    // nicht constant
-    void offline();
-    void online( SSKlientV *zKlient );
-    void sendeSpielerNummer( int sNum, double spielZeit );
-    void sendeInitSpieler( int anzahl, RCArray< Spieler > *zSpieler, double spielZeit );
-    void sendeSpielerPosition( Spieler *zSpieler, double spielZeit );
-    void sendeKammeraSize( int br, int hi, double spielZeit );
-    void sendeStart( double spielZeit );
-    void sendeSpielerTod( Spieler *zSpieler, double spielZeit );
-    void sendeSpielEnde( char gewonnen, double spielZeit );
-    void sendeSpielerGeschwindigkeit( Spieler *zSpieler, double spielZeit );
-    void sendeSpielerWendigkeit( Spieler *zSpieler, double spielZeit );
-    void sendeSpielerKurve( int sNum, char kurve, double spielZeit );
-    void sendeKartenSize( int br, int hi, double spielZeit );
-    void sendeChatNachricht( char *txt, double spielZeit );
-    void sendeLinienUnterbrechung( int sNum, bool unterbrochen, double spielZeit );
-    void sendeTeamMaxPunkte( int team, int mP, double spielZeit );
-    void sendeTeamPunkte( int team, int p, double spielZeit );
-    void sendeSpielerPunkte( int sNum, int mP, double spielZeit );
-    void sendeTeamTod( int team, double spielZeit );
-    void sendeTeamName( int team, char *name );
-    void sendeRundenEnde( int winTeam, double spielZeit );
-    void sendeZeitVerbleibend( int sekunden, double spielZeit );
-    void sendeStatistikChatNachricht( int vonAccount, char *txt );
-    void sendeStatistikSpielerOffline( int account );
-    void sendeGesamtSpielerStatistik( GesamtSpielerStatistik *zS );
-    void sendeGesamtTeamStatistik( GesamtTeamStatistik *zS );
-    void sendeRundeStatistik( RundenRundenStatistik *zS );
-    void sendeRundeSpielerStatistik( RundenSpielerStatistik *zS, int runde );
-    void sendeRundeTeamStatistik( RundenTeamStatistik *zS, int runde );
-    void sendeStatistikLadenFertig();
-    // constant
-    bool istOnline() const;
+	// Konstruktor
+	Klient(SSKlientV* klient);
+	// Destruktor
+	~Klient();
+	// nicht constant
+	void offline();
+	void online(SSKlientV* zKlient);
+	void sendeSpielerNummer(int sNum, double spielZeit);
+	void sendeInitSpieler(int anzahl, RCArray< Spieler >* zSpieler, double spielZeit);
+	void sendeSpielerPosition(Spieler* zSpieler, double spielZeit);
+	void sendeKammeraSize(int br, int hi, double spielZeit);
+	void sendeStart(double spielZeit);
+	void sendeSpielerTod(Spieler* zSpieler, double spielZeit);
+	void sendeSpielEnde(char gewonnen, double spielZeit);
+	void sendeSpielerGeschwindigkeit(Spieler* zSpieler, double spielZeit);
+	void sendeSpielerWendigkeit(Spieler* zSpieler, double spielZeit);
+	void sendeSpielerKurve(int sNum, char kurve, double spielZeit);
+	void sendeKartenSize(int br, int hi, double spielZeit);
+	void sendeChatNachricht(const char* txt, double spielZeit);
+	void sendeLinienUnterbrechung(int sNum, bool unterbrochen, double spielZeit);
+	void sendeTeamMaxPunkte(int team, int mP, double spielZeit);
+	void sendeTeamPunkte(int team, int p, double spielZeit);
+	void sendeSpielerPunkte(int sNum, int mP, double spielZeit);
+	void sendeTeamTod(int team, double spielZeit);
+	void sendeTeamName(int team, const char* name);
+	void sendeRundenEnde(int winTeam, double spielZeit);
+	void sendeZeitVerbleibend(int sekunden, double spielZeit);
+	void sendeStatistikChatNachricht(int vonAccount, const char* txt);
+	void sendeStatistikSpielerOffline(int account);
+	void sendeGesamtSpielerStatistik(GesamtSpielerStatistik* zS);
+	void sendeGesamtTeamStatistik(GesamtTeamStatistik* zS);
+	void sendeRundeStatistik(RundenRundenStatistik* zS);
+	void sendeRundeSpielerStatistik(RundenSpielerStatistik* zS, int runde);
+	void sendeRundeTeamStatistik(RundenTeamStatistik* zS, int runde);
+	void sendeStatistikLadenFertig();
+	// constant
+	bool istOnline() const;
 };
 
 #endif

+ 65 - 65
Linie/RundenRundenStatistik.cpp

@@ -4,133 +4,133 @@
 // Inhalt der RundenRundenStatistik Klasse aus RundenRundenStatistik.h
 // Konstruktor
 RundenRundenStatistik::RundenRundenStatistik()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    rundenNummer = 0;
-    rundenDauer = 0;
-    siegerTeam = 0;
-    spielFeldNutzung = 0;
-    rundenBild = 0;
-    rss = new RCArray< RundenSpielerStatistik >();
-    rts = new RCArray< RundenTeamStatistik >();
+	rundenNummer = 0;
+	rundenDauer = 0;
+	siegerTeam = 0;
+	spielFeldNutzung = 0;
+	rundenBild = 0;
+	rss = new RCArray< RundenSpielerStatistik >();
+	rts = new RCArray< RundenTeamStatistik >();
 }
 
 // Destruktor
 RundenRundenStatistik::~RundenRundenStatistik()
 {
-    if( rundenBild )
-        rundenBild->release();
-    rss->release();
-    rts->release();
+	if (rundenBild)
+		rundenBild->release();
+	rss->release();
+	rts->release();
 }
 
 // nciht constant
-void RundenRundenStatistik::addSpielerStatistik( RundenSpielerStatistik *rss )
+void RundenRundenStatistik::addSpielerStatistik(RundenSpielerStatistik* rss)
 {
-    this->rss->add( rss );
+	this->rss->add(rss);
 }
 
-void RundenRundenStatistik::addTeamStatistik( RundenTeamStatistik *rts )
+void RundenRundenStatistik::addTeamStatistik(RundenTeamStatistik* rts)
 {
-    this->rts->add( rts );
+	this->rts->add(rts);
 }
 
-void RundenRundenStatistik::setBild( Bild *b )
+void RundenRundenStatistik::setBild(Bild* b)
 {
-    if( rundenBild )
-        rundenBild->release();
-    rundenBild = b;
+	if (rundenBild)
+		rundenBild->release();
+	rundenBild = b;
 }
 
-void RundenRundenStatistik::initValues( InitDatei *dat )
+void RundenRundenStatistik::initValues(InitDatei* dat)
 {
-    if( dat->wertExistiert( "RundenNummer" ) )
-        rundenNummer = *dat->zWert( "RundenNummer" );
-    if( dat->wertExistiert( "RundenDauer" ) )
-        rundenDauer = *dat->zWert( "RundenDauer" );
-    if( dat->wertExistiert( "SiegerTeam" ) )
-        siegerTeam = *dat->zWert( "SiegerTeam" );
-    if( dat->wertExistiert( "SpielFeldNutzung" ) )
-        spielFeldNutzung = *dat->zWert( "SpielFeldNutzung" );
-    dat->release();
+	if (dat->wertExistiert("RundenNummer"))
+		rundenNummer = (int)*dat->zWert("RundenNummer");
+	if (dat->wertExistiert("RundenDauer"))
+		rundenDauer = (int)*dat->zWert("RundenDauer");
+	if (dat->wertExistiert("SiegerTeam"))
+		siegerTeam = (int)*dat->zWert("SiegerTeam");
+	if (dat->wertExistiert("SpielFeldNutzung"))
+		spielFeldNutzung = (int)*dat->zWert("SpielFeldNutzung");
+	dat->release();
 }
 
 // constant
-InitDatei *RundenRundenStatistik::getValues() const
-{
-    InitDatei *ret = new InitDatei();
-    Text w;
-    w = rundenNummer;
-    if( w.getLength() )
-        ret->addWert( "RundenNummer", w.getText() );
-    w = rundenDauer;
-    if( w.getLength() )
-        ret->addWert( "RundenDauer", w.getText() );
-    w = siegerTeam;
-    if( w.getLength() )
-        ret->addWert( "SiegerTeam", w.getText() );
-    w = spielFeldNutzung;
-    if( w.getLength() )
-        ret->addWert( "SpielFeldNutzung", w.getText() );
-    return ret;
+InitDatei* RundenRundenStatistik::getValues() const
+{
+	InitDatei* ret = new InitDatei();
+	Text w;
+	w = rundenNummer;
+	if (w.getLength())
+		ret->addWert("RundenNummer", w.getText());
+	w = rundenDauer;
+	if (w.getLength())
+		ret->addWert("RundenDauer", w.getText());
+	w = siegerTeam;
+	if (w.getLength())
+		ret->addWert("SiegerTeam", w.getText());
+	w = spielFeldNutzung;
+	if (w.getLength())
+		ret->addWert("SpielFeldNutzung", w.getText());
+	return ret;
 }
 
 int RundenRundenStatistik::getRundenNummer() const
 {
-    return rundenNummer;
+	return rundenNummer;
 }
 
-Bild *RundenRundenStatistik::getRundenBild() const
+Bild* RundenRundenStatistik::getRundenBild() const
 {
-    return rundenBild ? dynamic_cast<Bild *>( rundenBild->getThis() ) : 0;
+	return rundenBild ? dynamic_cast<Bild*>(rundenBild->getThis()) : 0;
 }
 
-Bild *RundenRundenStatistik::zRundenBild() const
+Bild* RundenRundenStatistik::zRundenBild() const
 {
-    return rundenBild;
+	return rundenBild;
 }
 
 int RundenRundenStatistik::getRundenDauer() const
 {
-    return rundenDauer;
+	return rundenDauer;
 }
 
 int RundenRundenStatistik::getSiegerTeam() const
 {
-    return siegerTeam;
+	return siegerTeam;
 }
 
 int RundenRundenStatistik::getSpielFeldNutzung() const
 {
-    return spielFeldNutzung;
+	return spielFeldNutzung;
 }
 
-RundenSpielerStatistik *RundenRundenStatistik::getSpielerStatistik( int index ) const
+RundenSpielerStatistik* RundenRundenStatistik::getSpielerStatistik(int index) const
 {
-    return rss->get( index );
+	return rss->get(index);
 }
 
-RundenSpielerStatistik *RundenRundenStatistik::zSpielerStatistik( int index ) const
+RundenSpielerStatistik* RundenRundenStatistik::zSpielerStatistik(int index) const
 {
-    return rss->z( index );
+	return rss->z(index);
 }
 
-RundenTeamStatistik *RundenRundenStatistik::getTeamStatistik( int index ) const
+RundenTeamStatistik* RundenRundenStatistik::getTeamStatistik(int index) const
 {
-    return rts->get( index );
+	return rts->get(index);
 }
 
-RundenTeamStatistik *RundenRundenStatistik::zTeamStatistik( int index ) const
+RundenTeamStatistik* RundenRundenStatistik::zTeamStatistik(int index) const
 {
-    return rts->z( index );
+	return rts->z(index);
 }
 
 int RundenRundenStatistik::getSpielerAnzahl() const
 {
-    return rss->getEintragAnzahl();
+	return rss->getEintragAnzahl();
 }
 
 int RundenRundenStatistik::getTeamAnzahl() const
 {
-    return rts->getEintragAnzahl();
+	return rts->getEintragAnzahl();
 }

+ 43 - 43
Linie/RundenSpielerStatistik.cpp

@@ -3,94 +3,94 @@
 // Inhalt der RundenSpielerStatistik Klasse aus RundenSpielerStatistik.h
 // Konstruktor
 RundenSpielerStatistik::RundenSpielerStatistik()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    spielerNummer = 0;
-    spielerName = new Text();
-    teamName = new Text();
-    spielerFarbe = 0;
-    teamFarbe = 0;
-    linienLength = 0;
-    kills = 0;
-    todeszeit = 0;
+	spielerNummer = 0;
+	spielerName = new Text();
+	teamName = new Text();
+	spielerFarbe = 0;
+	teamFarbe = 0;
+	linienLength = 0;
+	kills = 0;
+	todeszeit = 0;
 }
 
 // Destruktor
 RundenSpielerStatistik::~RundenSpielerStatistik()
 {
-    spielerName->release();
-    teamName->release();
+	spielerName->release();
+	teamName->release();
 }
 
 // nicht constant
-void RundenSpielerStatistik::initValues( InitDatei *dat )
+void RundenSpielerStatistik::initValues(InitDatei* dat)
 {
-    if( dat->wertExistiert( "SpielerNummer" ) )
-        spielerNummer = *dat->zWert( "SpielerNummer" );
-    if( dat->wertExistiert( "SpielerName" ) )
-        *spielerName = dat->zWert( "SpielerName" )->getText();
-    if( dat->wertExistiert( "TeamName" ) )
-        *teamName = dat->zWert( "TeamName" )->getText();
-    if( dat->wertExistiert( "SpielerFarbe" ) )
-        spielerFarbe = *dat->zWert( "SpielerFarbe" );
-    if( dat->wertExistiert( "TeamFarbe" ) )
-        teamFarbe = *dat->zWert( "TeamFarbe" );
-    if( dat->wertExistiert( "LinienLänge" ) )
-        linienLength = *dat->zWert( "LinienLänge" );
-    if( dat->wertExistiert( "Kills" ) )
-        kills = *dat->zWert( "Kills" );
-    if( dat->wertExistiert( "Todeszeit" ) )
-        todeszeit = *dat->zWert( "Todeszeit" );
-    dat->release();
+	if (dat->wertExistiert("SpielerNummer"))
+		spielerNummer = (int)*dat->zWert("SpielerNummer");
+	if (dat->wertExistiert("SpielerName"))
+		*spielerName = dat->zWert("SpielerName")->getText();
+	if (dat->wertExistiert("TeamName"))
+		*teamName = dat->zWert("TeamName")->getText();
+	if (dat->wertExistiert("SpielerFarbe"))
+		spielerFarbe = (int)*dat->zWert("SpielerFarbe");
+	if (dat->wertExistiert("TeamFarbe"))
+		teamFarbe = (int)*dat->zWert("TeamFarbe");
+	if (dat->wertExistiert("LinienLänge"))
+		linienLength = (int)*dat->zWert("LinienLänge");
+	if (dat->wertExistiert("Kills"))
+		kills = (int)*dat->zWert("Kills");
+	if (dat->wertExistiert("Todeszeit"))
+		todeszeit = (int)*dat->zWert("Todeszeit");
+	dat->release();
 }
 
 // constant
 int RundenSpielerStatistik::getSpielerNummer() const
 {
-    return spielerNummer;
+	return spielerNummer;
 }
 
-Text *RundenSpielerStatistik::getSpielerName() const
+Text* RundenSpielerStatistik::getSpielerName() const
 {
-    return spielerName ? dynamic_cast<Text *>( spielerName->getThis() ) : 0;
+	return spielerName ? dynamic_cast<Text*>(spielerName->getThis()) : 0;
 }
 
-Text *RundenSpielerStatistik::zSpielerName() const
+Text* RundenSpielerStatistik::zSpielerName() const
 {
-    return spielerName;
+	return spielerName;
 }
 
-Text *RundenSpielerStatistik::getTeamName() const
+Text* RundenSpielerStatistik::getTeamName() const
 {
-    return teamName ? dynamic_cast<Text *>( teamName->getThis() ) : 0;
+	return teamName ? dynamic_cast<Text*>(teamName->getThis()) : 0;
 }
 
-Text *RundenSpielerStatistik::zTeamName() const
+Text* RundenSpielerStatistik::zTeamName() const
 {
-    return teamName;
+	return teamName;
 }
 
 int RundenSpielerStatistik::getSpielerFarbe() const
 {
-    return spielerFarbe;
+	return spielerFarbe;
 }
 
 int RundenSpielerStatistik::getTeamFarbe() const
 {
-    return teamFarbe;
+	return teamFarbe;
 }
 
 int RundenSpielerStatistik::getLinienLength() const
 {
-    return linienLength;
+	return linienLength;
 }
 
 int RundenSpielerStatistik::getKills() const
 {
-    return kills;
+	return kills;
 }
 
 int RundenSpielerStatistik::getTodesZeit() const
 {
-    return todeszeit;
+	return todeszeit;
 }

+ 35 - 35
Linie/RundenTeamStatistik.cpp

@@ -3,80 +3,80 @@
 // Inhalt der RundenTeamStatistik Klasse aus RundenTeamStatistik.h
 // Konstruktor
 RundenTeamStatistik::RundenTeamStatistik()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    teamNummer = 0;
-    teamName = new Text();
-    teamFarbe = 0;
-    ergebnis = 0;
-    linienLength = 0;
-    kills = 0;
-    tode = 0;
+	teamNummer = 0;
+	teamName = new Text();
+	teamFarbe = 0;
+	ergebnis = 0;
+	linienLength = 0;
+	kills = 0;
+	tode = 0;
 }
 
 // Destruktor
 RundenTeamStatistik::~RundenTeamStatistik()
 {
-    teamName->release();
+	teamName->release();
 }
 
 // nicht constant
-void RundenTeamStatistik::initValues( InitDatei *dat )
+void RundenTeamStatistik::initValues(InitDatei* dat)
 {
-    if( dat->wertExistiert( "TeamNummer" ) )
-        teamNummer = *dat->zWert( "TeamNummer" );
-    if( dat->wertExistiert( "TeamName" ) )
-        *teamName = dat->zWert( "TeamName" )->getText();
-    if( dat->wertExistiert( "TeamFarbe" ) )
-        teamFarbe = *dat->zWert( "TeamFarbe" );
-    if( dat->wertExistiert( "Ergebnis" ) )
-        ergebnis = *dat->zWert( "Ergebnis" );
-    if( dat->wertExistiert( "LinienLänge" ) )
-        linienLength = *dat->zWert( "LinienLänge" );
-    if( dat->wertExistiert( "Kills" ) )
-        kills = *dat->zWert( "Kills" );
-    if( dat->wertExistiert( "Tode" ) )
-        tode = *dat->zWert( "Tode" );
-    dat->release();
+	if (dat->wertExistiert("TeamNummer"))
+		teamNummer = (int)*dat->zWert("TeamNummer");
+	if (dat->wertExistiert("TeamName"))
+		*teamName = dat->zWert("TeamName")->getText();
+	if (dat->wertExistiert("TeamFarbe"))
+		teamFarbe = (int)*dat->zWert("TeamFarbe");
+	if (dat->wertExistiert("Ergebnis"))
+		ergebnis = (int)*dat->zWert("Ergebnis");
+	if (dat->wertExistiert("LinienLänge"))
+		linienLength = (int)*dat->zWert("LinienLänge");
+	if (dat->wertExistiert("Kills"))
+		kills = (int)*dat->zWert("Kills");
+	if (dat->wertExistiert("Tode"))
+		tode = (int)*dat->zWert("Tode");
+	dat->release();
 }
 
 // constant
 int RundenTeamStatistik::getTeamNummer() const
 {
-    return teamNummer;
+	return teamNummer;
 }
 
-Text *RundenTeamStatistik::getTeamName() const
+Text* RundenTeamStatistik::getTeamName() const
 {
-    return teamName ? dynamic_cast<Text *>( teamName->getThis() ) : 0;
+	return teamName ? dynamic_cast<Text*>(teamName->getThis()) : 0;
 }
 
-Text *RundenTeamStatistik::zTeamName() const
+Text* RundenTeamStatistik::zTeamName() const
 {
-    return teamName;
+	return teamName;
 }
 
 int RundenTeamStatistik::getTeamFarbe() const
 {
-    return teamFarbe;
+	return teamFarbe;
 }
 
 int RundenTeamStatistik::getErgebnis() const
 {
-    return ergebnis;
+	return ergebnis;
 }
 
 int RundenTeamStatistik::getLinienLength() const
 {
-    return linienLength;
+	return linienLength;
 }
 
 int RundenTeamStatistik::getKills() const
 {
-    return kills;
+	return kills;
 }
 
 int RundenTeamStatistik::getTode() const
 {
-    return tode;
+	return tode;
 }