Browse Source

Benutzt nun die neue Netzwerk Bibliothek

Kolja Strohm 7 years ago
parent
commit
bec5d215ec

+ 3 - 3
Asteroids/Asteroids.vcxproj

@@ -72,17 +72,17 @@
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
     <LinkIncremental>true</LinkIncremental>
-    <IncludePath>..\..\..\..\..\Allgemein\Framework;..\..\..\..\Klient\Include;..\..\..\..\..\Allgemein\Network\Network;..\..\..\..\..\Allgemein\GSL\GSL\Include;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\Klient\KSGNetwork\Include;..\..\..\..\..\Allgemein\Framework;..\..\..\..\Klient\Include;..\..\..\..\..\Allgemein\Network\Network;..\..\..\..\..\Allgemein\GSL\GSL\Include;$(IncludePath)</IncludePath>
     <LibraryPath>..\..\..\..\..\Allgemein\Framework\x64\Debug;..\..\..\..\..\Allgemein\Network\x64\Debug;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <LinkIncremental>false</LinkIncremental>
-    <IncludePath>..\..\..\..\..\Allgemein\Framework;..\..\..\..\Klient\Include;..\..\..\..\..\Allgemein\Network\Network;..\..\..\..\..\Allgemein\GSL\GSL\Include;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\..\Allgemein\Framework;..\..\..\..\Klient\Include;..\..\..\..\..\Allgemein\Network\Network;..\..\..\..\..\Allgemein\GSL\GSL\Include;..\..\..\..\Klient\KSGNetwork\Include;$(IncludePath)</IncludePath>
     <LibraryPath>..\..\..\..\..\Allgemein\Framework\Release;..\..\..\..\..\Allgemein\Network\Release;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
     <LinkIncremental>false</LinkIncremental>
-    <IncludePath>..\..\..\..\..\Allgemein\Framework;..\..\..\..\Klient\Include;..\..\..\..\..\Allgemein\Network\Network;..\..\..\..\..\Allgemein\GSL\GSL\Include;$(IncludePath)</IncludePath>
+    <IncludePath>..\..\..\..\Klient\KSGNetwork\Include;..\..\..\..\..\Allgemein\Framework;..\..\..\..\Klient\Include;..\..\..\..\..\Allgemein\Network\Network;..\..\..\..\..\Allgemein\GSL\GSL\Include;$(IncludePath)</IncludePath>
     <LibraryPath>..\..\..\..\..\Allgemein\Framework\x64\Release;..\..\..\..\..\Allgemein\Network\x64\Release;$(LibraryPath)</LibraryPath>
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">

+ 1 - 1
Asteroids/Editor/Editor.cpp

@@ -50,7 +50,7 @@ void Editor::setSchrift( Schrift *schrift )
         i = new Interface( schrift );
 }
 
-void Editor::setKlient( EditorKlientV *ekv )
+void Editor::setKlient( KSGClient::EditorServerClient *ekv )
 {
     if( klient )
         klient->release();

+ 1 - 1
Asteroids/Editor/Editor.h

@@ -37,7 +37,7 @@ public:
 	// nicht constant
     void addDialog( Dialog *d );
 	void setSchrift( Schrift *schrift ) override;
-	void setKlient( EditorKlientV *ekv ) override;
+	void setKlient( KSGClient::EditorServerClient *ekv ) override;
     void setLadeAnimation( Animation2D *la ) override;
 	void setSichtbar() override;
 	void doMausEreignis( MausEreignis &me ) override;

+ 7 - 5
Asteroids/Editor/Netzwerk/EditorKlient.cpp

@@ -6,7 +6,7 @@ using namespace Network;
 // Inhalt der EditorKlient Klasse aus EditorKlient.h
 // Konstruktor
 //  k: Der zu verwendende Klient
-EditorKlient::EditorKlient( EditorKlientV *k )
+EditorKlient::EditorKlient( KSGClient::EditorServerClient *k )
 {
     klient = k;
     ref = 1;
@@ -23,7 +23,7 @@ EditorKlient::~EditorKlient()
 //          2, falls bereits eine Sitzung existiert
 //          0, sonnst
 int EditorKlient::init()
-{
+{/*
     klient->lock();
     error = "";
     Klient *k = klient->zKlient();
@@ -57,12 +57,13 @@ int EditorKlient::init()
         ret = 0;
     }
     klient->unlock();
-    return ret;
+    return ret;*/
+    return 0;
 }
 
 // Verwirft die vorhandene Sitzung und erstellt eine neue
 bool EditorKlient::sitzungVerwerfen()
-{
+{/*
     klient->lock();
     error = "";
     Klient *k = klient->zKlient();
@@ -91,7 +92,8 @@ bool EditorKlient::sitzungVerwerfen()
         ret = 0;
     }
     klient->unlock();
-    return ret == 1;
+    return ret == 1;*/
+    return 0;
 }
 
 // Gibt den Letzten Fehler zurück

+ 3 - 3
Asteroids/Editor/Netzwerk/EditorKlient.h

@@ -1,18 +1,18 @@
 #pragma once
 
-#include "../../../../../../Klient/Include/KSGKlientV.h"
+#include <KSGNetwork.h>
 
 class EditorKlient
 {
 private:
-    EditorKlientV *klient;
+    KSGClient::EditorServerClient *klient;
     Text error;
     int ref;
 
 public:
     // Konstruktor
     //  k: Der zu verwendende Klient
-    EditorKlient( EditorKlientV *k );
+    EditorKlient( KSGClient::EditorServerClient *k );
     // Destruktor
     ~EditorKlient();
     // Initialisiert den Server

+ 3 - 2
Asteroids/Editor/Prozess.cpp

@@ -5,7 +5,7 @@ using namespace Network;
 
 // Inhalt der Klasse Prozess aus Prozess.h
 // Konstruktor
-Prozess::Prozess( EditorKlientV *klient, int aktion, Array< void* > *args, ProzessReturn *r )
+Prozess::Prozess( KSGClient::EditorServerClient *klient, int aktion, Array< void* > *args, ProzessReturn *r )
     : Thread()
 {
     this->k = klient;
@@ -26,6 +26,7 @@ Prozess::~Prozess()
 // nicht constant
 void Prozess::thread()
 {
+    /*
     k->lock();
     Klient *c = k->zKlient();
     c->sendeEncrypted( "\x7", 1 );
@@ -67,7 +68,7 @@ void Prozess::thread()
             this->ret->prozessEnd( ak, 0, args );
     }
     k->unlock();
-    run = 0;
+    run = 0;*/
 }
 
 // Reference Counting

+ 3 - 3
Asteroids/Editor/Prozess.h

@@ -1,6 +1,6 @@
 #pragma once
 
-#include "../../../../../Klient/Include/KSGKlientV.h"
+#include <KSGNetwork.h>
 #include <Thread.h>
 
 using namespace Framework;
@@ -14,7 +14,7 @@ public:
 class Prozess : public Thread
 {
 private:
-    EditorKlientV *k;
+    KSGClient::EditorServerClient *k;
     int ak;
     Array< void* > *args;
     ProzessReturn *ret;
@@ -22,7 +22,7 @@ private:
 
 public:
     // Konstruktor
-    Prozess( EditorKlientV *klient, int aktion, Array< void* > *args, ProzessReturn *r );
+    Prozess( KSGClient::EditorServerClient *klient, int aktion, Array< void* > *args, ProzessReturn *r );
     // Destruktor
     ~Prozess();
     // nicht constant

+ 1 - 1
Asteroids/Spiel/Chat/Chat.cpp

@@ -85,7 +85,7 @@ void SpielChat::doMausEreignis( MausEreignis &me )
 	}
 }
 
-void SpielChat::doTastaturEreignis( TastaturEreignis &te, SpielKlientV *zKlient )
+void SpielChat::doTastaturEreignis( TastaturEreignis &te, KSGClient::SpielServerClient *zKlient )
 {
 	if( te.taste == T_Esc )
 		nachricht->removeStyle( TextFeld::Style::Fokus );

+ 2 - 2
Asteroids/Spiel/Chat/Chat.h

@@ -1,7 +1,7 @@
 #ifndef Chat_H
 #define Chat_H
 
-#include <KSGKlientV.h>
+#include <KSGNetwork.h>
 #include <TextFeld.h>
 
 using namespace Framework;
@@ -24,7 +24,7 @@ public:
 	void addNachricht( char *nachricht );
 	void addNachricht( char *nachricht, int farbe );
 	void doMausEreignis( MausEreignis &me );
-	void doTastaturEreignis( TastaturEreignis &te, SpielKlientV *zKlient );
+	void doTastaturEreignis( TastaturEreignis &te, KSGClient::SpielServerClient *zKlient );
 	void tick( double z );
 	void render( Bild &zRObj );
 	// constant

+ 4 - 4
Asteroids/Spiel/Karte/Karte.cpp

@@ -13,7 +13,7 @@ Karte::Karte()
 	teamName = new RCArray< Text >();
 	teamGröße = new Array< int >();
 	ressources = new RCArray< RessourceStr >();
-	objekte = new RCArray< ZeichnungStr >();
+	objekte = new RCArray< ObjektStr >();
 	spieler = new RCArray< SpielerStr >();
 	teams = new RCArray< TeamStr >();
 	ref = 1;
@@ -72,7 +72,7 @@ void Karte::ladeSts( Datei *zDatei )
 	}
 }
 
-void Karte::ladeMap( Datei *zDatei, int mapId, SpielKlientV *zSpielKlient, Text *zGamePath )
+void Karte::ladeMap( Datei *zDatei, int mapId, KSGClient::SpielServerClient *zSpielKlient, Text *zGamePath )
 {
 	int ressourceAnz = 0;
 	zDatei->lese( (char*)&ressourceAnz, 4 );
@@ -87,7 +87,7 @@ void Karte::ladeMap( Datei *zDatei, int mapId, SpielKlientV *zSpielKlient, Text
 	zDatei->lese( (char*)&objektAnzahl, 4 );
 	for( int i = 0; i < objektAnzahl; i++ )
 	{
-		objekte->add( new ZeichnungStr( zDatei ) );
+		objekte->add( new ObjektStr( zDatei ) );
 		zSpielKlient->setLadenProzent( 70 + (int)( 10 * ( (double)( i + 1 ) / objektAnzahl ) + 0.5 ) );
 	}
 	for( int i = 0; i < spielerAnzahl; i++ )
@@ -108,7 +108,7 @@ Vec2< int > Karte::getSize() const
 	return größe;
 }
 
-Spieler *Karte::createSpieler( int sNum, Schrift *zSchrift, InformationKlientV *zInfoK, Animation2DData *zFStart, Animation2DData *zFBurn ) const
+Spieler *Karte::createSpieler( int sNum, Schrift *zSchrift, KSGClient::InformationServerClient *zInfoK, Animation2DData *zFStart, Animation2DData *zFBurn ) const
 {
 	if( sNum < 0 || sNum >= spielerAnzahl )
 		return 0;

+ 4 - 4
Asteroids/Spiel/Karte/Karte.h

@@ -6,7 +6,7 @@
 #include "../Team/Team.h"
 #include "../Spieler/Spieler.h"
 #include "../Objekt/SpielObjekt.h"
-#include "../../../../../../Klient/Include/KSGKlientV.h"
+#include "KSGNetwork.h"
 #include "Strukturen.h"
 
 using namespace Framework;
@@ -22,7 +22,7 @@ private:
 	RCArray< Text > *teamName;
 	Array< int > *teamGröße;
 	RCArray< RessourceStr > *ressources;
-	RCArray< ZeichnungStr > *objekte;
+	RCArray< ObjektStr > *objekte;
 	RCArray< SpielerStr > *spieler;
 	RCArray< TeamStr > *teams;
 	int ref;
@@ -34,10 +34,10 @@ public:
 	~Karte();
 	// nicht constant
 	void ladeSts( Datei *zDatei ); // call 1
-	void ladeMap( Datei *zDatei, int mapId, SpielKlientV *zSpielKlient, Text *zGamePath ); // call 2
+	void ladeMap( Datei *zDatei, int mapId, KSGClient::SpielServerClient *zSpielKlient, Text *zGamePath ); // call 2
 	// constant
 	Vec2< int > getSize() const;
-	Spieler *createSpieler( int sNum, Schrift *zSchrift, InformationKlientV *zInfoK, Animation2DData *zFStart, Animation2DData *zFBurn ) const;
+	Spieler *createSpieler( int sNum, Schrift *zSchrift, KSGClient::InformationServerClient *zInfoK, Animation2DData *zFStart, Animation2DData *zFBurn ) const;
 	Team *createTeam( int tNum ) const;
 	SpielObjekt *createZeichnung( int oNum, Schrift *zSchrift ) const;
 	int getMaxTeamAnzahl() const;

+ 5 - 3
Asteroids/Spiel/Karte/Strukturen.cpp

@@ -94,7 +94,7 @@ RessourceStr *RessourceStr::release()
 
 // Inhalt der ZeichnungStr Klasse aus Strukturen.h
 // Konstruktor
-ZeichnungStr::ZeichnungStr( Datei *zDatei )
+ObjektStr::ObjektStr( Datei *zDatei )
 {
 	zDatei->lese( (char*)&pos.x, 4 );
 	zDatei->lese( (char*)&pos.y, 4 );
@@ -112,13 +112,13 @@ ZeichnungStr::ZeichnungStr( Datei *zDatei )
 }
 
 // Reference Counting
-ZeichnungStr *ZeichnungStr::getThis()
+ObjektStr *ObjektStr::getThis()
 {
 	ref++;
 	return this;
 }
 
-ZeichnungStr *ZeichnungStr::release()
+ObjektStr *ObjektStr::release()
 {
 	ref--;
 	if( !ref )
@@ -144,6 +144,7 @@ SpielerStr::SpielerStr( Datei *zDatei )
 	zDatei->lese( (char*)&laserEffizienz, 4 );
 	zDatei->lese( (char*)&laserTempo, 4 );
 	zDatei->lese( (char*)&wendigkeit, 8 );
+    zDatei->lese( (char*)&antriebEffizienz, 8 );
 	zDatei->lese( (char*)&netzwerk, 4 );
 	zDatei->lese( (char*)&skillPunkte, 4 );
 	zDatei->lese( (char*)&m2d, 4 );
@@ -181,6 +182,7 @@ TeamStr::TeamStr( Datei *zDatei )
 	zDatei->lese( (char*)&laserEffizienz, 4 );
 	zDatei->lese( (char*)&laserTempo, 4 );
 	zDatei->lese( (char*)&wendigkeit, 8 );
+    zDatei->lese( (char*)&antriebEffizienz, 8 );
 	zDatei->lese( (char*)&punkte, 4 );
 	ref = 1;
 }

+ 7 - 5
Asteroids/Spiel/Karte/Strukturen.h

@@ -1,7 +1,7 @@
 #ifndef Strukturen_H
 #define Strukturen_H
 
-#include "../../../../../../Klient/Include/KSGKlientV.h"
+#include "KSGNetwork.h"
 #include <Model2D.h>
 #include <Bild.h>
 #include <Datei.h>
@@ -31,7 +31,7 @@ public:
 	RessourceStr *release();
 };
 
-class ZeichnungStr
+class ObjektStr
 {
 private:
 	int ref;
@@ -50,10 +50,10 @@ public:
 	char team;
 
 	// Konstruktor
-	ZeichnungStr( Datei *zDatei );
+	ObjektStr( Datei *zDatei );
 	// Reference Counting
-	ZeichnungStr *getThis();
-	ZeichnungStr *release();
+    ObjektStr *getThis();
+    ObjektStr *release();
 };
 
 class SpielerStr
@@ -74,6 +74,7 @@ public:
 	int laserEffizienz;
 	int laserTempo;
 	double wendigkeit;
+    double antriebEffizienz;
 	int netzwerk;
 	int skillPunkte;
 	int m2d;
@@ -103,6 +104,7 @@ public:
 	int laserEffizienz;
 	int laserTempo;
 	double wendigkeit;
+    double antriebEffizienz;
 	int punkte;
 
 	// Konstruktor

+ 1 - 1
Asteroids/Spiel/Objekt/SpielObjekt.cpp

@@ -5,7 +5,7 @@
 
 // Inhalt der SpielObjekt Klasse aus SpielObjekt.h
 // Konstruktor
-SpielObjekt::SpielObjekt( ZeichnungStr *zStr, Schrift *zSchrift )
+SpielObjekt::SpielObjekt( ObjektStr *zStr, Schrift *zSchrift )
 {
 	pos = zStr->pos;
 	id = zStr->id;

+ 1 - 1
Asteroids/Spiel/Objekt/SpielObjekt.h

@@ -31,7 +31,7 @@ private:
 
 public:
 	// Konstruktor
-	SpielObjekt( ZeichnungStr *zStr, Schrift *zSchrift );
+	SpielObjekt( ObjektStr *zStr, Schrift *zSchrift );
 	// Destruktor
 	~SpielObjekt();
 	// nicht constant

+ 2 - 2
Asteroids/Spiel/Schuss/Laser.cpp

@@ -164,9 +164,9 @@ int Laser::getSpieler() const
 	return sNum;
 }
 
-double Laser::getIntensität() const
+double Laser::getIntensität( Vec2< double > targetSpeed ) const
 {
-	return intensität + speed.getLength() / 10;
+	return intensität + (speed - targetSpeed).getLength() / 10;
 }
 
 // Reference Counting

+ 1 - 1
Asteroids/Spiel/Schuss/Laser.h

@@ -32,7 +32,7 @@ public:
 	// constant
 	int getId() const;
 	int getSpieler() const;
-	double getIntensität() const;
+	double getIntensität( Vec2< double > targetSpeed ) const;
 	// Reference Counting
 	Laser *getThis();
 	Laser *release();

+ 15 - 8
Asteroids/Spiel/SpielKlasse.cpp

@@ -137,7 +137,7 @@ void SpielKlasse::nachricht( int l
 	unlock();
 }
 
-void SpielKlasse::setKlients( InformationKlientV *infoKlient, SpielKlientV *spielKlient )
+void SpielKlasse::setKlients( KSGClient::InformationServerClient *infoKlient, KSGClient::SpielServerClient *spielKlient )
 {
 	if( this->infoKlient )
 		this->infoKlient->release();
@@ -648,23 +648,30 @@ void SpielKlasse::stknVerarbeitung()
 						tmp->tick( zeit - spielZeit, map );
 						if( sNum >= 0 )
 						{
+                            double intens = 0;
 							for( int j = 0; j < spielerAnzahl; j++ )
 							{
 								if( spieler->z( j )->getSpielerNummer() == sNum )
 								{
                                     spieler->z( j )->resetToSaveTime( zeit, map );
-									spieler->z( j )->nimmSchaden( tmp->getIntensität() );
+                                    intens = tmp->getIntensität( spieler->z( j )->getSpeed() );
+									spieler->z( j )->nimmSchaden( intens );
                                     spieler->z( j )->resetToGameTime( spielZeit, map );
 									bestenliste->updateSpieler( spieler->z( j ) );
+                                    break;
 								}
-								if( spieler->z( j )->getSpielerNummer() == tmp->getSpieler() )
-								{
+							}
+                            for( int j = 0; j < spielerAnzahl; j++ )
+                            {
+                                if( spieler->z( j )->getSpielerNummer() == tmp->getSpieler() )
+                                {
                                     spieler->z( j )->resetToSaveTime( zeit, map );
-									spieler->z( j )->machSchaden( tmp->getIntensität() );
+                                    spieler->z( j )->machSchaden( intens );
                                     spieler->z( j )->resetToGameTime( spielZeit, map );
-									bestenliste->updateSpieler( spieler->z( j ) );
-								}
-							}
+                                    bestenliste->updateSpieler( spieler->z( j ) );
+                                    break;
+                                }
+                            }
 						}
 						schüsse->remove( i );
 						break;

+ 3 - 3
Asteroids/Spiel/SpielKlasse.h

@@ -19,8 +19,8 @@ private:
 	int stkna;
 	Bestenliste *bestenliste;
 	Schrift *schrift;
-	InformationKlientV *infoKlient;
-	SpielKlientV *spielKlient;
+    KSGClient::InformationServerClient *infoKlient;
+    KSGClient::SpielServerClient *spielKlient;
 	RCArray< Spieler > *spieler;
 	RCArray< Team > *teams;
 	RCArray< SpielObjekt > *objekte;
@@ -58,7 +58,7 @@ public:
 	void setSchrift( Schrift *schrift ) override; // call 4
 	void setBildschirm( Bildschirm *screen ) override; // call 3
 	void nachricht( int län, char *bytes ) override;
-	void setKlients( InformationKlientV *infoKlient, SpielKlientV *spielKlient ) override; // call 2
+	void setKlients( KSGClient::InformationServerClient *infoKlient, KSGClient::SpielServerClient *spielKlient ) override; // call 2
 	void setKarteId( int karteId ) override; // call 1
 	void ladeDaten() override; // call 5
 	void doMausEreignis( MausEreignis &me ) override;

+ 52 - 8
Asteroids/Spiel/Spieler/Spieler.cpp

@@ -6,7 +6,7 @@
 
 // Inhalt der Spieler Klasse aus Spieler.h
 // Konstruktor
-Spieler::Spieler( InformationKlientV *zInfoK, Schrift *zSchrift, SpielerStr *zStr )
+Spieler::Spieler( KSGClient::InformationServerClient *zInfoK, Schrift *zSchrift, SpielerStr *zStr )
 {
     accountId = 0;
     sNum = zStr->id;
@@ -20,6 +20,7 @@ Spieler::Spieler( InformationKlientV *zInfoK, Schrift *zSchrift, SpielerStr *zSt
         tastatur[ i ] = 0;
     current.amLeben = 1;
     current.schussAbk = 0;
+    current.energieAbk = 0;
     current.repAbk = 0;
     current.reinkAbk = 0;
     current.maxReinkAbk = 5;
@@ -29,17 +30,21 @@ Spieler::Spieler( InformationKlientV *zInfoK, Schrift *zSchrift, SpielerStr *zSt
     current.speed = Vec2< double >( 0, 0 );
     current.rotation = zStr->rot;
     current.beschleunigung = zStr->beschleunigung;
+    beschleunigungStart = zStr->beschleunigung;
     current.energie = zStr->maxEnergie;
     current.stabilität = zStr->maxStabilität;
     current.reparatur = zStr->reparatur;
     current.laserIntensität = zStr->laserIntensität;
     current.laserEffizienz = zStr->laserEffizienz;
     current.akkuLeistung = zStr->akkuLeistung;
+    akkuLeistungStart = zStr->akkuLeistung;
     current.maxEnergie = zStr->maxEnergie;
     current.maxStabilität = zStr->maxStabilität;
     current.laserTempo = zStr->laserTempo;
     current.netzwerk = zStr->netzwerk;
     current.wendigkeit = zStr->wendigkeit;
+    wendigkeitStart = current.wendigkeit;
+    current.antriebEffizienz = zStr->antriebEffizienz;
     skillPunkte = zStr->skillPunkte;
     current.schadenBekommen = 0;
     current.schadenGemacht = 0;
@@ -262,8 +267,11 @@ bool Spieler::tick( int time, Karte *zMap )
         if( current.amLeben )
         {
             current.schussAbk -= tv;
+            current.energieAbk -= tv;
             if( current.schussAbk < 0 )
                 current.schussAbk = 0;
+            if( current.energieAbk < 0 )
+                current.energieAbk = 0;
             current.repAbk -= tv;
             if( current.repAbk < 0 )
                 current.repAbk = 0;
@@ -273,11 +281,17 @@ bool Spieler::tick( int time, Karte *zMap )
                 Vertex hp;
                 Vertex mv;
                 float r;
-                current.treibstoffVerbraucht += TICK;
+                double treibstoff = ( ( current.beschleunigung + team->beschleunigung) / beschleunigungStart ) 
+                    * akkuLeistungStart * tv * ( 100 / ( current.antriebEffizienz + team->antriebEffizienz ) );
+                current.treibstoffVerbraucht += treibstoff;
+                double factor = 1;
+                if( treibstoff > current.energie )
+                    factor = current.energie / treibstoff;
                 if( ship->zModel()->calcHitPoint( stM, kM * (float)( current.beschleunigung + team->beschleunigung ), "ship", hp, mv, r ) )
                 {
-                    current.speed += ( Vec2<double> )mv.rotation( (float)current.rotation ) * (float)TICK;
+                    current.speed += ( Vec2<double> )mv.rotation( (float)current.rotation ) * (float)TICK * factor;
                 }
+                current.energie -= treibstoff * factor;
             }
             else
             {
@@ -312,22 +326,36 @@ bool Spieler::tick( int time, Karte *zMap )
                 Vertex hp;
                 Vertex mv;
                 float r;
+                double treibstoff = 0.5 * ( ( current.wendigkeit + team->wendigkeit ) / wendigkeitStart )
+                    * akkuLeistungStart * tv * ( 100 / ( current.antriebEffizienz + team->antriebEffizienz ) );
+                current.treibstoffVerbraucht += treibstoff;
+                double factor = 1;
+                if( treibstoff > current.energie )
+                    factor = current.energie / treibstoff;
                 if( ship->zModel()->calcHitPoint( stL, kL * (float)( current.wendigkeit + team->wendigkeit ), "ship", hp, mv, r ) )
                 {
-                    current.rSpeed += r * (float)TICK;
-                    current.speed += ( Vec2<double> )mv.rotation( (float)current.rotation ) * (float)TICK;
+                    current.rSpeed += r * (float)TICK * (float)factor;
+                    current.speed += ( Vec2<double> )mv.rotation( (float)current.rotation ) * (float)TICK * factor;
                 }
+                current.energie -= treibstoff * factor;
             }
             if( tastatur[ T_ROT_L ] )
             {
                 Vertex hp;
                 Vertex mv;
                 float r;
+                double treibstoff = 0.5 * ( ( current.wendigkeit + team->wendigkeit ) / wendigkeitStart )
+                    * akkuLeistungStart * tv * ( 100 / ( current.antriebEffizienz + team->antriebEffizienz ) );
+                current.treibstoffVerbraucht += treibstoff;
+                double factor = 1;
+                if( treibstoff > current.energie )
+                    factor = current.energie / treibstoff;
                 if( ship->zModel()->calcHitPoint( stR, kR * (float)( current.wendigkeit + team->wendigkeit ), "ship", hp, mv, r ) )
                 {
-                    current.rSpeed += r * (float)TICK;
-                    current.speed += ( Vec2<double> )mv.rotation( (float)current.rotation ) * (float)TICK;
+                    current.rSpeed += r * (float)TICK * (float)factor;
+                    current.speed += ( Vec2<double> )mv.rotation( (float)current.rotation ) * (float)TICK * factor;
                 }
+                current.energie -= treibstoff * factor;
             }
             current.rotation += current.rSpeed * (float)TICK;
             ship->setDrehung( (float)current.rotation );
@@ -343,7 +371,7 @@ bool Spieler::tick( int time, Karte *zMap )
             while( current.pos.y >= gr.y )
                 current.pos.y -= gr.y;
             ship->setPosition( current.pos );
-            if( !current.schussAbk )
+            if( !current.energieAbk )
             {
                 if( current.energie != ( current.maxEnergie + team->maxEnergie ) )
                     ret = 1;
@@ -466,6 +494,10 @@ void Spieler::setSkill( int art )
         current.akkuLeistung += 0.4;
         team->akkuLeistung = team->getAkkuLeistungBonus();
         break;
+    case 10: // Antrieb Effizienz
+        current.antriebEffizienz += 10;
+        team->antriebEffizienz = team->getAntriebEffizienzBonus();
+        break;
     }
 }
 
@@ -509,6 +541,7 @@ void Spieler::wiederbelebung()
     current.energie = current.maxEnergie + team->maxEnergie;
     current.stabilität = current.maxStabilität + team->maxStabilität;
     current.schussAbk = 0;
+    current.energieAbk = 0;
     current.repAbk = 0;
     current.speed = Vec2< double >( 0, 0 );
     current.rotation = 0;
@@ -541,10 +574,16 @@ void Spieler::hatGeschossen()
 {
     current.energie -= calculateLaserCost();
     current.schussAbk = 1;
+    current.energieAbk = 1.5;
     current.schüsse++;
 }
 
 // constant
+Vec2< double > Spieler::getSpeed() const
+{
+    return current.speed;
+}
+
 int Spieler::getAccountId() const
 {
     return accountId;
@@ -686,6 +725,11 @@ double Spieler::getTeamWendigkeitBonus() const
     return current.wendigkeit / 100 * current.netzwerk;
 }
 
+double Spieler::getTeamAntriebEffizienzBonus() const
+{
+    return current.antriebEffizienz / 100 * current.netzwerk;
+}
+
 // Reference Counting
 Spieler *Spieler::getThis()
 {

+ 10 - 3
Asteroids/Spiel/Spieler/Spieler.h

@@ -1,7 +1,7 @@
 #ifndef Spieler_H
 #define Spieler_H
 
-#include <KSGKlientV.h>
+#include <KSGNetwork.h>
 #include <Model2D.h>
 #include <TextFeld.h>
 #include <Animation.h>
@@ -32,7 +32,7 @@ private:
     bool tastatur[ T_MAX ];
     Model2D *ship;
     Team *team;
-    InformationKlientV *info;
+    KSGClient::InformationServerClient *info;
     Text *name;
     Vertex stL;
     Vertex kL;
@@ -40,12 +40,16 @@ private:
     Vertex kR;
     Vertex stM;
     Vertex kM;
+    double akkuLeistungStart;
+    double beschleunigungStart;
+    double wendigkeitStart;
     struct SpielerDataSave
     {
         float rSpeed;
         int farbe;
         bool amLeben;
         double schussAbk;
+        double energieAbk;
         double repAbk;
         double reinkAbk;
         int maxReinkAbk;
@@ -66,6 +70,7 @@ private:
         double laserTempo;
         double netzwerk;
         double wendigkeit;
+        double antriebEffizienz;
         double zeitAmLeben;
         double zeitTod;
         double schadenBekommen;
@@ -90,7 +95,7 @@ private:
 
 public:
 	// Konstruktor
-	Spieler( InformationKlientV *zInfoK, Schrift *zSchrift, SpielerStr *zStr );
+	Spieler( KSGClient::InformationServerClient *zInfoK, Schrift *zSchrift, SpielerStr *zStr );
 	// Destruktor
 	~Spieler();
 	// nicht constant
@@ -115,6 +120,7 @@ public:
     void resetToGameTime( int t, Karte *zMap );
 	void hatGeschossen();
 	// constant
+    Vec2< double > getSpeed() const;
 	int getAccountId() const;
 	Text *getName() const;
 	Text *zName() const;
@@ -144,6 +150,7 @@ public:
 	double getTeamLaserTempoBonus() const;
 	double getTeamBeschleunigungBonus() const;
 	double getTeamWendigkeitBonus() const;
+    double getTeamAntriebEffizienzBonus() const;
 	// Reference Counting
 	Spieler *getThis();
 	Spieler *release();

+ 35 - 16
Asteroids/Spiel/SpielerGUI/SpielerGUI.cpp

@@ -19,7 +19,7 @@ int getStellen( double d )
 SpielerGUI::SpielerGUI( Schrift *zSchrift )
 {
 	ram = new LRahmen();
-	ram->setSize( 200, 307 );
+	ram->setSize( 200, 332 );
 	ram->setPosition( Punkt( BildschirmGröße().x - 210, 10 ) );
 	ram->setFarbe( 0xFFFFFFFF );
 	spieler = initTextFeld( 5, 5, 190, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::Center, "" );
@@ -49,20 +49,22 @@ SpielerGUI::SpielerGUI( Schrift *zSchrift )
 	akkuLeistung = initTextFeld( 5, 105, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
 	wendigkeit = initTextFeld( 5, 130, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
 	beschleunigung = initTextFeld( 5, 155, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
-	laserIntensität = initTextFeld( 5, 180, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
-	laserEffizienz = initTextFeld( 5, 205, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
-	laserTempo = initTextFeld( 5, 230, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
-	netzwerk = initTextFeld( 5, 255, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
+    antriebEffizienz = initTextFeld( 5, 180, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
+    laserIntensität = initTextFeld( 5, 205, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
+	laserEffizienz = initTextFeld( 5, 230, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
+	laserTempo = initTextFeld( 5, 255, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
+	netzwerk = initTextFeld( 5, 280, 165, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::Mehrfarbig | TextFeld::Style::VCenter, "" );
 	stabilitätSkill = initKnopf( 172, 30, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
 	energieSkill = initKnopf( 172, 55, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
 	reparaturSkill = initKnopf( 172, 80, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
 	akkuLeistungSkill = initKnopf( 172, 105, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
 	wendigkeitSkill = initKnopf( 172, 130, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
 	beschleunigungSkill = initKnopf( 172, 155, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
-	laserIntensitätSkill = initKnopf( 172, 180, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
-	laserEffizienzSkill = initKnopf( 172, 205, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
-	laserTempoSkill = initKnopf( 172, 230, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
-	netzwerkSkill = initKnopf( 172, 255, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
+    antriebEffizienzSkill = initKnopf( 172, 180, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
+    laserIntensitätSkill = initKnopf( 172, 205, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
+	laserEffizienzSkill = initKnopf( 172, 230, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
+	laserTempoSkill = initKnopf( 172, 255, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
+	netzwerkSkill = initKnopf( 172, 280, 20, 20, zSchrift, Knopf::Style::Sichtbar, "+" );
 	stabilitätSkill->removeStyle( Knopf::Style::Erlaubt );
 	energieSkill->removeStyle( Knopf::Style::Erlaubt );
 	reparaturSkill->removeStyle( Knopf::Style::Erlaubt );
@@ -73,7 +75,7 @@ SpielerGUI::SpielerGUI( Schrift *zSchrift )
 	laserEffizienzSkill->removeStyle( Knopf::Style::Erlaubt );
 	laserTempoSkill->removeStyle( Knopf::Style::Erlaubt );
 	netzwerkSkill->removeStyle( Knopf::Style::Erlaubt );
-    skillPoints = initTextFeld( 5, 280, 180, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::VCenter, "" );
+    skillPoints = initTextFeld( 5, 305, 180, 20, zSchrift, TextFeld::Style::Sichtbar | TextFeld::Style::VCenter, "" );
 	ref = 1;
 }
 
@@ -90,6 +92,7 @@ SpielerGUI::~SpielerGUI()
 	akkuLeistung->release();
 	wendigkeit->release();
 	beschleunigung->release();
+    antriebEffizienz->release();
 	laserIntensität->release();
 	laserEffizienz->release();
 	laserTempo->release();
@@ -100,6 +103,7 @@ SpielerGUI::~SpielerGUI()
 	akkuLeistungSkill->release();
 	wendigkeitSkill->release();
 	beschleunigungSkill->release();
+    antriebEffizienzSkill->release();
 	laserIntensitätSkill->release();
 	laserEffizienzSkill->release();
 	laserTempoSkill->release();
@@ -171,13 +175,21 @@ void SpielerGUI::update( Spieler *zSpieler )
 	txt += zSpieler->team->beschleunigung;
 	txt += ")";
 	beschleunigung->setText( txt );
-	txt = "Laser intensität:";
-	txt.setPrecision( getStellen( zSpieler->current.laserIntensität ) + 2 );
-	txt += zSpieler->current.laserIntensität;
+	txt = "Antrieb effizienz:";
+	txt.setPrecision( getStellen( zSpieler->current.antriebEffizienz ) + 2 );
+	txt += zSpieler->current.antriebEffizienz;
 	txt += "\r0xFF00FF00(+";
-	txt.setPrecision( getStellen( zSpieler->team->laserIntensität ) + 2 );
-	txt += zSpieler->team->laserIntensität;
+	txt.setPrecision( getStellen( zSpieler->team->antriebEffizienz ) + 2 );
+	txt += zSpieler->team->antriebEffizienz;
 	txt += ")";
+    antriebEffizienz->setText( txt );
+    txt = "Laser intensität:";
+    txt.setPrecision( getStellen( zSpieler->current.laserIntensität ) + 2 );
+    txt += zSpieler->current.laserIntensität;
+    txt += "\r0xFF00FF00(+";
+    txt.setPrecision( getStellen( zSpieler->team->laserIntensität ) + 2 );
+    txt += zSpieler->team->laserIntensität;
+    txt += ")";
 	laserIntensität->setText( txt );
 	txt = "Laser effizienz:";
 	txt.setPrecision( getStellen( zSpieler->current.laserEffizienz ) + 2 );
@@ -205,7 +217,8 @@ void SpielerGUI::update( Spieler *zSpieler )
 	akkuLeistungSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
 	wendigkeitSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
 	beschleunigungSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
-	laserIntensitätSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
+    antriebEffizienzSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
+    laserIntensitätSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
 	laserEffizienzSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
 	laserTempoSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
 	netzwerkSkill->setStyle( Knopf::Style::Erlaubt, zSpieler->hatSkill() );
@@ -228,6 +241,9 @@ int SpielerGUI::doMausEreignis( MausEreignis &me )
 	reparaturSkill->doMausEreignis( me );
 	if( !aktion && me.verarbeitet && me.id == ME_RLinks )
 		aktion = 4;
+    antriebEffizienzSkill->doMausEreignis( me );
+    if( !aktion && me.verarbeitet && me.id == ME_RLinks )
+        aktion = 12;
 	laserIntensitätSkill->doMausEreignis( me );
 	if( !aktion && me.verarbeitet && me.id == ME_RLinks )
 		aktion = 5;
@@ -264,6 +280,7 @@ bool SpielerGUI::tick( double tickVal )
 	ret |= akkuLeistungSkill->tick( tickVal );
 	ret |= wendigkeitSkill->tick( tickVal );
 	ret |= beschleunigungSkill->tick( tickVal );
+    ret |= antriebEffizienzSkill->tick( tickVal );
 	ret |= laserIntensitätSkill->tick( tickVal );
 	ret |= laserEffizienzSkill->tick( tickVal );
 	ret |= laserTempoSkill->tick( tickVal );
@@ -292,6 +309,8 @@ void SpielerGUI::render( Bild &zRObj )
 	wendigkeitSkill->render( zRObj );
 	beschleunigung->render( zRObj );
 	beschleunigungSkill->render( zRObj );
+    antriebEffizienz->render( zRObj );
+    antriebEffizienzSkill->render( zRObj );
 	laserIntensität->render( zRObj );
 	laserIntensitätSkill->render( zRObj );
 	laserEffizienz->render( zRObj );

+ 2 - 0
Asteroids/Spiel/SpielerGUI/SpielerGUI.h

@@ -20,6 +20,7 @@ private:
 	TextFeld *akkuLeistung;
 	TextFeld *wendigkeit;
 	TextFeld *beschleunigung;
+    TextFeld *antriebEffizienz;
 	TextFeld *laserIntensität;
 	TextFeld *laserEffizienz;
 	TextFeld *laserTempo;
@@ -29,6 +30,7 @@ private:
 	Knopf *reparaturSkill;
 	Knopf *akkuLeistungSkill;
 	Knopf *wendigkeitSkill;
+    Knopf *antriebEffizienzSkill;
 	Knopf *beschleunigungSkill;
 	Knopf *laserIntensitätSkill;
 	Knopf *laserEffizienzSkill;

+ 10 - 0
Asteroids/Spiel/Team/Team.cpp

@@ -20,6 +20,7 @@ Team::Team( int f, char *n, TeamStr *zStr )
 	laserTempoS = zStr->laserTempo;
 	beschleunigungS = zStr->beschleunigung;
 	wendigkeitS = zStr->wendigkeit;
+    antriebEffizienzS = zStr->antriebEffizienz;
 	reset();
 	ref = 1;
 }
@@ -43,6 +44,7 @@ void Team::reset()
 	laserTempo = laserTempoS;
 	beschleunigung = beschleunigungS;
 	wendigkeit = wendigkeitS;
+    antriebEffizienz = antriebEffizienzS;
 }
 
 // constant
@@ -118,6 +120,14 @@ double Team::getWendigkeitBonus() const
 	return ret;
 }
 
+double Team::getAntriebEffizienzBonus() const
+{
+    double ret = antriebEffizienzS;
+    for( auto *i = &spieler->getArray(); i && i->set; i = i->next )
+        ret += i->var->getTeamAntriebEffizienzBonus();
+    return ret;
+}
+
 // Reference Counting
 Team *Team::getThis()
 {

+ 3 - 0
Asteroids/Spiel/Team/Team.h

@@ -20,6 +20,7 @@ private:
 	double laserTempoS;
 	double beschleunigungS;
 	double wendigkeitS;
+    double antriebEffizienzS;
 	int ref;
 
 public:
@@ -38,6 +39,7 @@ public:
 	double akkuLeistung;
 	double laserTempo;
 	double beschleunigung;
+    double antriebEffizienz;
 	double wendigkeit;
 	// Konstruktor
 	Team( int f, char *n, TeamStr *zStr );
@@ -54,6 +56,7 @@ public:
 	double getAkkuLeistungBonus() const;
 	double getLaserTempoBonus() const;
 	double getBeschleunigungBonus() const;
+    double getAntriebEffizienzBonus() const;
 	double getWendigkeitBonus() const;
 	// Reference Counting
 	Team *getThis();

+ 3 - 3
Asteroids/SpielStatistik/Chat/StatistikChat.cpp

@@ -10,7 +10,7 @@
 
 // Inhalt der ChatListeSpieler Klasse aus StatistikChat.h
 // Konstruktor
-ChatListeSpieler::ChatListeSpieler( int accountId, int eigeneId, Schrift *zSchrift, BilderV *bilder, InformationKlientV *zInfoc,
+ChatListeSpieler::ChatListeSpieler( int accountId, int eigeneId, Schrift *zSchrift, BilderV *bilder, KSGClient::InformationServerClient *zInfoc,
 									bool istFreund, void( *addChatF )( void*, int ), void( *addFreundF )( void*, int ),
 									void( *accountAnsehenF )( void *, int ), void *param )
 									: addChatF( addChatF ),
@@ -218,7 +218,7 @@ ChatListeSpieler *ChatListeSpieler::release()
 
 // Inhalt der ChatListe Klasse aus StatistikChat.h
 // Konstruktor
-ChatListe::ChatListe( int eigeneId, InformationKlientV *infoc, Schrift *schrift, BilderV *bilder,
+ChatListe::ChatListe( int eigeneId, KSGClient::InformationServerClient *infoc, Schrift *schrift, BilderV *bilder,
 					  void( *addChat )( void*, int ), void( *addFreund )( void*, int ),
 					  void( *accountAnsehen )( void *, int ), void *param )
 					  : addChat( addChat ),
@@ -349,7 +349,7 @@ ChatListe *ChatListe::release()
 
 // Inhalt der StatistikChat Klasse aus StatistikChat.h
 // Konstruktor
-StatistikChat::StatistikChat( int eigeneId, SpielKlientV *spielc, InformationKlientV *infoc, Schrift *schrift, BilderV *bilder,
+StatistikChat::StatistikChat( int eigeneId, KSGClient::SpielServerClient *spielc, KSGClient::InformationServerClient *infoc, Schrift *schrift, BilderV *bilder,
 							  void( *addNachricht )( void *, Text *, Text *, Text *, Text *, char, void * ),
 							  void( *addChat )( void*, int ), void( *addFreund )( void*, int ),
 							  void( *accountAnsehen )( void *, int ), void *param )

+ 7 - 7
Asteroids/SpielStatistik/Chat/StatistikChat.h

@@ -3,7 +3,7 @@
 
 #include <Fenster.h>
 #include <Knopf.h>
-#include <KSGKlientV.h>
+#include <KSGNetwork.h>
 #include <BilderV.h>
 
 using namespace Framework;
@@ -33,7 +33,7 @@ private:
 
 public:
 	// Konstruktor
-	ChatListeSpieler( int accountId, int eigeneId, Schrift *zSchrift, BilderV *bilder, InformationKlientV *zInfoc,
+	ChatListeSpieler( int accountId, int eigeneId, Schrift *zSchrift, BilderV *bilder, KSGClient::InformationServerClient *zInfoc,
 											  bool istFreund, void( *addChatF )( void*, int ), void( *addFreundF )( void*, int ),
 											  void( *accountAnsehenF )( void *, int ), void *param );
 	// Destruktor
@@ -63,7 +63,7 @@ private:
 	VScrollBar *vScroll;
 	Punkt pos;
 	Punkt gr;
-	InformationKlientV *infoc;
+    KSGClient::InformationServerClient *infoc;
 	Schrift *schrift;
 	BilderV *bilder;
 	LRahmen *ram;
@@ -72,7 +72,7 @@ private:
 
 public:
 	// Konstruktor
-	ChatListe( int eigeneId, InformationKlientV *infoc, Schrift *schrift, BilderV *bilder,
+	ChatListe( int eigeneId, KSGClient::InformationServerClient *infoc, Schrift *schrift, BilderV *bilder,
 									   void( *addChat )( void*, int ), void( *addFreund )( void*, int ),
 									   void( *accountAnsehen )( void *, int ), void *param );
 	// Destruktor
@@ -95,8 +95,8 @@ class StatistikChat
 private:
 	void( *addNachricht )( void *, Text *, Text *, Text *, Text *, char, void * );
 	void *nachrichtParam;
-	SpielKlientV *spielc;
-	InformationKlientV *infoc;
+    KSGClient::SpielServerClient *spielc;
+    KSGClient::InformationServerClient *infoc;
 	TextFeld *verlauf;
 	TextFeld *nachricht;
 	Knopf *senden;
@@ -107,7 +107,7 @@ private:
 
 public:
 	// Konstruktor
-	StatistikChat( int eigeneId, SpielKlientV *spielc, InformationKlientV *infoc, Schrift *schrift, BilderV *bilder,
+	StatistikChat( int eigeneId, KSGClient::SpielServerClient *spielc, KSGClient::InformationServerClient *infoc, Schrift *schrift, BilderV *bilder,
 										   void( *addNachricht )( void *, Text *, Text *, Text *, Text *, char, void * ),
 										   void( *addChat )( void*, int ), void( *addFreund )( void*, int ),
 										   void( *accountAnsehen )( void *, int ), void *param );

+ 1 - 1
Asteroids/SpielStatistik/SpielStatistik.cpp

@@ -114,7 +114,7 @@ void SpielStatistik::setBildschirm( Bildschirm *screen )
 	this->screen = screen;
 }
 
-void SpielStatistik::setKlients( InformationKlientV *infoc, SpielKlientV *spielc )
+void SpielStatistik::setKlients( KSGClient::InformationServerClient *infoc, KSGClient::SpielServerClient *spielc )
 {
 	if( this->infoc )
 		this->infoc->release();

+ 3 - 3
Asteroids/SpielStatistik/SpielStatistik.h

@@ -18,8 +18,8 @@ private:
 	BilderV *bilder;
 	Schrift *schrift;
 	Bildschirm *screen;
-	InformationKlientV *infoc;
-	SpielKlientV *spielc;
+    KSGClient::InformationServerClient *infoc;
+    KSGClient::SpielServerClient *spielc;
 	CRITICAL_SECTION cs;
 	Array< SSDSpieler* > *gss;
 	Array< SSDTeam* > *gts;
@@ -46,7 +46,7 @@ public:
 															   void( *accountAnsehenF )( void *, int ), bool( *istFreundF )( void *, int ), void *nachrichtParam );
 	virtual void setSchrift( Schrift *schrift );
 	virtual void setBildschirm( Bildschirm *screen );
-	virtual void setKlients( InformationKlientV *infoc, SpielKlientV *spielc );
+	virtual void setKlients( KSGClient::InformationServerClient *infoc, KSGClient::SpielServerClient *spielc );
 	virtual void nachricht( int län, char *bytes );
 	virtual void doMausEreignis( MausEreignis &me );
 	virtual void doTastaturEreignis( TastaturEreignis &te );