Browse Source

framework changes

Kolja Strohm 2 years ago
parent
commit
580c2611ee

+ 8 - 8
Asteroids/ESEditorV.h

@@ -11,12 +11,12 @@ class ESEditorV : public virtual ReferenceCounter
 private:
 
 public:
-    virtual ~ESEditorV()
-    {}
-    // nicht constant
-    virtual void setPfad( char *pfad ) = 0;
-    virtual void open() = 0;
-    virtual bool nachricht( SKlient *k ) = 0;
-    // constant
-    virtual char *getLetzterFehler() const = 0;
+	virtual ~ESEditorV()
+	{}
+	// nicht constant
+	virtual void setPfad(const char* pfad) = 0;
+	virtual void open() = 0;
+	virtual bool nachricht(SKlient* k) = 0;
+	// constant
+	virtual const char* getLetzterFehler() const = 0;
 };

+ 810 - 810
Asteroids/Editor.cpp

@@ -7,7 +7,7 @@
 // Inhalt der Editor Klasse aus Editor.h
 // Konstruktor
 Editor::Editor()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {}
 
 // Destruktor
@@ -15,10 +15,10 @@ Editor::~Editor()
 {}
 
 // nicht constant
-void Editor::setPfad( char* pfad )
+void Editor::setPfad(const char* pfad)
 {
-    this->pfad = pfad;
-    this->pfad += "/editor";
+	this->pfad = pfad;
+	this->pfad += "/editor";
 }
 
 void Editor::open()
@@ -26,824 +26,824 @@ void Editor::open()
 
 }
 
-bool Editor::nachricht( SKlient* k )
+bool Editor::nachricht(SKlient* k)
 {
-    err = "";
-    char n = 0;
-    k->getNachrichtEncrypted( &n, 1 );
-    switch( n )
-    {
-    case 0: // Initialisierung
-        k->sendeEncrypted( "\1", 1 );
-        if( DateiExistiert( pfad ) )
-            k->sendeEncrypted( "\2", 1 );
-        else
-        {
-            if( createSitzung() )
-                k->sendeEncrypted( "\1", 1 );
-            else
-                return 0;
-        }
-        return 1;
-    case 1: // Sitzung verwerfen
-        if( createSitzung() )
-            k->sendeEncrypted( "\1", 1 );
-        else
-            return 0;
-        return 1;
-    case 2: // Sitzung speichern unt beenden
-        if( saveSitzung() )
-            k->sendeEncrypted( "\1", 1 );
-        else
-            return 0;
-        return 1;
-    case 3: // Lade Spieler Daten
-    {
-        Text tmpPf = pfad.getText();
-        tmpPf += "/player";
-        Datei d;
-        d.setDatei( tmpPf );
-        RCArray< Text >* files = d.getDateiListe();
-        if( files )
-        {
-            k->sendeEncrypted( "\1", 1 );
-            int anz = files->getEintragAnzahl();
-            k->sendeEncrypted( (char*)&anz, 4 );
-            for( int i = 0; i < anz; i++ )
-            {
-                Text pf = tmpPf;
-                pf += "/";
-                pf += files->z( i )->getText();
-                Datei player;
-                player.setDatei( pf );
-                player.open( Datei::Style::lesen );
-                SpielerStr p( dynamic_cast<Datei*>(player.getThis()) );
-                player.close();
-                k->sendeEncrypted( (char*)&p.id, 4 );
-                k->sendeEncrypted( (char*)&p.pos.x, 4 );
-                k->sendeEncrypted( (char*)&p.pos.y, 4 );
-                k->sendeEncrypted( (char*)&p.rot, 8 );
-                k->sendeEncrypted( (char*)&p.beschleunigung, 8 );
-                k->sendeEncrypted( (char*)&p.maxStability, 4 );
-                k->sendeEncrypted( (char*)&p.maxEnergie, 4 );
-                k->sendeEncrypted( (char*)&p.reparatur, 8 );
-                k->sendeEncrypted( (char*)&p.akkuLeistung, 8 );
-                k->sendeEncrypted( (char*)&p.laserIntensity, 4 );
-                k->sendeEncrypted( (char*)&p.laserEffizienz, 4 );
-                k->sendeEncrypted( (char*)&p.laserTempo, 4 );
-                k->sendeEncrypted( (char*)&p.wendigkeit, 8 );
-                k->sendeEncrypted( (char*)&p.antriebEffizienz, 8 );
-                k->sendeEncrypted( (char*)&p.energieSchild, 8 );
-                k->sendeEncrypted( (char*)&p.energieSchildEffizienz, 8 );
-                k->sendeEncrypted( (char*)&p.netzwerk, 4 );
-                k->sendeEncrypted( (char*)&p.skillPunkte, 4 );
-                k->sendeEncrypted( (char*)&p.m2d, 4 );
-                k->sendeEncrypted( (char*)&p.bild, 4 );
-            }
-        }
-        else
-        {
-            err = "Fehler beim laden von ";
-            err += tmpPf.getText();
-            return 0;
-        }
-        return 1;
-    }
-    case 4: // Lade Team Daten
-    {
-        Text tmpPf = pfad.getText();
-        tmpPf += "/team";
-        Datei d;
-        d.setDatei( tmpPf );
-        RCArray< Text >* files = d.getDateiListe();
-        if( files )
-        {
-            k->sendeEncrypted( "\1", 1 );
-            int anz = files->getEintragAnzahl();
-            k->sendeEncrypted( (char*)&anz, 4 );
-            for( int i = 0; i < anz; i++ )
-            {
-                Text pf = tmpPf;
-                pf += "/";
-                pf += files->z( i )->getText();
-                Datei team;
-                team.setDatei( pf );
-                team.open( Datei::Style::lesen );
-                TeamStr t( dynamic_cast<Datei*>(team.getThis()) );
-                team.close();
-                k->sendeEncrypted( (char*)&t.id, 4 );
-                k->sendeEncrypted( (char*)&t.maxPunkte, 4 );
-                k->sendeEncrypted( (char*)&t.beschleunigung, 8 );
-                k->sendeEncrypted( (char*)&t.maxStability, 4 );
-                k->sendeEncrypted( (char*)&t.maxEnergie, 4 );
-                k->sendeEncrypted( (char*)&t.reparatur, 8 );
-                k->sendeEncrypted( (char*)&t.akkuLeistung, 8 );
-                k->sendeEncrypted( (char*)&t.laserIntensity, 4 );
-                k->sendeEncrypted( (char*)&t.laserEffizienz, 4 );
-                k->sendeEncrypted( (char*)&t.laserTempo, 4 );
-                k->sendeEncrypted( (char*)&t.wendigkeit, 8 );
-                k->sendeEncrypted( (char*)&t.antriebEffizienz, 8 );
-                k->sendeEncrypted( (char*)&t.energieSchild, 8 );
-                k->sendeEncrypted( (char*)&t.energieSchildEffizienz, 8 );
-                k->sendeEncrypted( (char*)&t.punkte, 4 );
-            }
-        }
-        else
-        {
-            err = "Fehler beim laden von ";
-            err += tmpPf.getText();
-            return 0;
-        }
-        return 1;
-    }
-    case 5: // Lade Objekt Daten
-    {
-        Text tmpPf = pfad.getText();
-        tmpPf += "/objekt";
-        Datei d;
-        d.setDatei( tmpPf );
-        RCArray< Text >* files = d.getDateiListe();
-        if( files )
-        {
-            k->sendeEncrypted( "\1", 1 );
-            int anz = files->getEintragAnzahl();
-            k->sendeEncrypted( (char*)&anz, 4 );
-            for( int i = 0; i < anz; i++ )
-            {
-                Text pf = tmpPf;
-                pf += "/";
-                pf += files->z( i )->getText();
-                Datei object;
-                object.setDatei( pf );
-                object.open( Datei::Style::lesen );
-                ObjektStr o( dynamic_cast<Datei*>(object.getThis()) );
-                object.close();
-                k->sendeEncrypted( (char*)&o.pos.x, 4 );
-                k->sendeEncrypted( (char*)&o.pos.y, 4 );
-                k->sendeEncrypted( (char*)&o.rot, 4 );
-                k->sendeEncrypted( (char*)&o.scale, 4 );
-                k->sendeEncrypted( (char*)&o.id, 4 );
-                k->sendeEncrypted( (char*)&o.m2d, 4 );
-                k->sendeEncrypted( (char*)&o.bild, 4 );
-                k->sendeEncrypted( (char*)&o.style, 4 );
-                k->sendeEncrypted( (char*)&o.maxStability, 4 );
-                k->sendeEncrypted( (char*)&o.maxEnergie, 4 );
-                k->sendeEncrypted( (char*)&o.energieRadius, 4 );
-                k->sendeEncrypted( (char*)&o.reparatur, 8 );
-                k->sendeEncrypted( (char*)&o.akkuLeistung, 8 );
-                k->sendeEncrypted( (char*)&o.team, 1 );
-            }
-        }
-        else
-        {
-            err = "Fehler beim laden von ";
-            err += tmpPf.getText();
-            return 0;
-        }
-        return 1;
-    }
-    case 6: // Save Player
-    {
-        k->sendeEncrypted( "\1", 1 );
-        SpielerStr p( 0 );
-        k->getNachrichtEncrypted( (char*)&p.id, 4 );
-        k->getNachrichtEncrypted( (char*)&p.pos.x, 4 );
-        k->getNachrichtEncrypted( (char*)&p.pos.y, 4 );
-        k->getNachrichtEncrypted( (char*)&p.rot, 8 );
-        k->getNachrichtEncrypted( (char*)&p.beschleunigung, 8 );
-        k->getNachrichtEncrypted( (char*)&p.maxStability, 4 );
-        k->getNachrichtEncrypted( (char*)&p.maxEnergie, 4 );
-        k->getNachrichtEncrypted( (char*)&p.reparatur, 8 );
-        k->getNachrichtEncrypted( (char*)&p.akkuLeistung, 8 );
-        k->getNachrichtEncrypted( (char*)&p.laserIntensity, 4 );
-        k->getNachrichtEncrypted( (char*)&p.laserEffizienz, 4 );
-        k->getNachrichtEncrypted( (char*)&p.laserTempo, 4 );
-        k->getNachrichtEncrypted( (char*)&p.wendigkeit, 8 );
-        k->getNachrichtEncrypted( (char*)&p.antriebEffizienz, 8 );
-        k->getNachrichtEncrypted( (char*)&p.energieSchild, 8 );
-        k->getNachrichtEncrypted( (char*)&p.energieSchildEffizienz, 8 );
-        k->getNachrichtEncrypted( (char*)&p.netzwerk, 4 );
-        k->getNachrichtEncrypted( (char*)&p.skillPunkte, 4 );
-        k->getNachrichtEncrypted( (char*)&p.m2d, 4 );
-        k->getNachrichtEncrypted( (char*)&p.bild, 4 );
-        Text pf = pfad.getText();
-        pf += "/player/";
-        pf += p.id;
-        pf += ".p";
-        Datei player;
-        player.setDatei( pf );
-        if( player.open( Datei::Style::schreiben ) )
-        {
-            p.save( dynamic_cast<Datei*>(player.getThis()) );
-            player.close();
-            k->sendeEncrypted( "\1", 1 );
-            return 1;
-        }
-        err = "Fehler beim Schreiben von ";
-        err += pf.getText();
-        return 0;
-    }
-    case 7: // Save Team
-    {
-        k->sendeEncrypted( "\1", 1 );
-        TeamStr t( 0 );
-        k->getNachrichtEncrypted( (char*)&t.id, 4 );
-        k->getNachrichtEncrypted( (char*)&t.maxPunkte, 4 );
-        k->getNachrichtEncrypted( (char*)&t.beschleunigung, 8 );
-        k->getNachrichtEncrypted( (char*)&t.maxStability, 4 );
-        k->getNachrichtEncrypted( (char*)&t.maxEnergie, 4 );
-        k->getNachrichtEncrypted( (char*)&t.reparatur, 8 );
-        k->getNachrichtEncrypted( (char*)&t.akkuLeistung, 8 );
-        k->getNachrichtEncrypted( (char*)&t.laserIntensity, 4 );
-        k->getNachrichtEncrypted( (char*)&t.laserEffizienz, 4 );
-        k->getNachrichtEncrypted( (char*)&t.laserTempo, 4 );
-        k->getNachrichtEncrypted( (char*)&t.wendigkeit, 8 );
-        k->getNachrichtEncrypted( (char*)&t.antriebEffizienz, 8 );
-        k->getNachrichtEncrypted( (char*)&t.energieSchild, 8 );
-        k->getNachrichtEncrypted( (char*)&t.energieSchildEffizienz, 8 );
-        k->getNachrichtEncrypted( (char*)&t.punkte, 4 );
-        Text pf = pfad.getText();
-        pf += "/player/";
-        pf += t.id;
-        pf += ".t";
-        Datei team;
-        team.setDatei( pf );
-        if( team.open( Datei::Style::schreiben ) )
-        {
-            t.save( dynamic_cast<Datei*>(team.getThis()) );
-            team.close();
-            k->sendeEncrypted( "\1", 1 );
-            return 1;
-        }
-        err = "Fehler beim Schreiben von ";
-        err += pf.getText();
-        return 0;
-    }
-    case 8: // Save Objekt
-    {
-        k->sendeEncrypted( "\1", 1 );
-        ObjektStr o( 0 );
-        k->getNachrichtEncrypted( (char*)&o.pos.x, 4 );
-        k->getNachrichtEncrypted( (char*)&o.pos.y, 4 );
-        k->getNachrichtEncrypted( (char*)&o.rot, 4 );
-        k->getNachrichtEncrypted( (char*)&o.scale, 4 );
-        k->getNachrichtEncrypted( (char*)&o.id, 4 );
-        k->getNachrichtEncrypted( (char*)&o.m2d, 4 );
-        k->getNachrichtEncrypted( (char*)&o.bild, 4 );
-        k->getNachrichtEncrypted( (char*)&o.style, 4 );
-        k->getNachrichtEncrypted( (char*)&o.maxStability, 4 );
-        k->getNachrichtEncrypted( (char*)&o.maxEnergie, 4 );
-        k->getNachrichtEncrypted( (char*)&o.energieRadius, 4 );
-        k->getNachrichtEncrypted( (char*)&o.reparatur, 8 );
-        k->getNachrichtEncrypted( (char*)&o.akkuLeistung, 8 );
-        k->getNachrichtEncrypted( (char*)&o.team, 1 );
-        Text pf = pfad.getText();
-        pf += "/objekt/";
-        pf += o.id;
-        pf += ".o";
-        Datei objekt;
-        objekt.setDatei( pf );
-        if( objekt.erstellen() && objekt.open( Datei::Style::schreiben ) )
-        {
-            o.save( dynamic_cast<Datei*>(objekt.getThis()) );
-            objekt.close();
-            k->sendeEncrypted( "\1", 1 );
-            return 1;
-        }
-        err = "Fehler beim Schreiben von ";
-        err += pf.getText();
-        return 0;
-    }
-    case 9: // Delete Objekt
-    {
-        k->sendeEncrypted( "\1", 1 );
-        int id;
-        k->getNachrichtEncrypted( (char*)&id, 4 );
-        Text pf = pfad.getText();
-        pf += "/objekt/";
-        pf += id;
-        pf += ".o";
-        if( DateiRemove( pf ) )
-        {
-            k->sendeEncrypted( "\1", 1 );
-            return 1;
-        }
-        err = "Fehler beim löschen der Datei ";
-        err += pf;
-        return 0;
-    }
-    case 0xA: // Lade Resourcen
-    {
-        Text tmpPf = pfad.getText();
-        tmpPf += "/resource";
-        Datei d;
-        d.setDatei( tmpPf );
-        RCArray< Text >* files = d.getDateiListe();
-        if( files )
-        {
-            k->sendeEncrypted( "\1", 1 );
-            int anz = files->getEintragAnzahl();
-            k->sendeEncrypted( (char*)&anz, 4 );
-            for( int i = 0; i < anz; i++ )
-            {
-                Text pf = tmpPf;
-                pf += "/";
-                pf += files->z( i )->getText();
-                Datei resource;
-                resource.setDatei( pf );
-                resource.open( Datei::Style::lesen );
-                int id = *files->z( i );
-                k->sendeEncrypted( (char*)&id, 4 );
-                char len = 0;
-                resource.lese( &len, 1 );
-                char* path = new char[ len + 1 ];
-                path[ (int)len ] = 0;
-                resource.lese( path, len );
-                k->sendeEncrypted( &len, 1 );
-                k->sendeEncrypted( path, len );
-                delete[] path;
-                resource.close();
-            }
-        }
-        else
-        {
-            err = "Fehler beim laden von ";
-            err += tmpPf.getText();
-            return 0;
-        }
-        return 1;
-    }
-    case 0xB: // Map Size
-    {
-        Text tmpPf = pfad.getText();
-        tmpPf += "/size";
-        Datei d;
-        d.setDatei( tmpPf );
-        if( d.open( Datei::Style::lesen ) )
-        {
-            k->sendeEncrypted( "\1", 1 );
-            int size = 0;
-            d.lese( (char*)&size, 4 );
-            k->sendeEncrypted( (char*)&size, 4 );
-            d.lese( (char*)&size, 4 );
-            k->sendeEncrypted( (char*)&size, 4 );
-            d.close();
-        }
-        else
-        {
-            err = "Fehler beim laden von ";
-            err += tmpPf.getText();
-            return 0;
-        }
-        return 1;
-    }
-    case 0xC: // Add Resource
-    {
-        k->sendeEncrypted( "\1", 1 );
-        Datei d;
-        d.setDatei( Text( pfad.getText() ) + "/resource" );
-        RCArray<Text>* list = d.getDateiListe();
-        int nId = 0;
-        bool found = 0;
-        do
-        {
-            nId++;
-            found = 0;
-            for( auto t : *list )
-            {
-                if( t->istGleich( Text( nId ) + ".r" ) )
-                {
-                    found = 1;
-                    break;
-                }
-            }
-        } while( found );
-        list->release();
-        unsigned char len = 0;
-        k->getNachrichtEncrypted( (char*)&len, 1 );
-        char* path = new char[ len + 1 ];
-        path[ len ] = 0;
-        k->getNachrichtEncrypted( path, len );
-        d.setDatei( Text( pfad.getText() ) + "/resource/" + nId + ".r" );
-        if( d.open( Datei::Style::schreiben ) )
-        {
-            d.schreibe( (char*)&len, 1 );
-            d.schreibe( path, len );
-            d.close();
-            k->sendeEncrypted( "\1", 1 );
-            k->sendeEncrypted( (char*)&nId, 4 );
-            return 1;
-        }
-        err = "Fehler beim schreiben der Datei.";
-        return 0;
-    }
-    default:
-        err = "Unbekannte Nachricht. Error Code: " __FILE__ ":";
-        err += __LINE__;
-        return 0;
-    }
-    return 0;
+	err = "";
+	char n = 0;
+	k->getNachrichtEncrypted(&n, 1);
+	switch (n)
+	{
+	case 0: // Initialisierung
+		k->sendeEncrypted("\1", 1);
+		if (DateiExistiert(pfad))
+			k->sendeEncrypted("\2", 1);
+		else
+		{
+			if (createSitzung())
+				k->sendeEncrypted("\1", 1);
+			else
+				return 0;
+		}
+		return 1;
+	case 1: // Sitzung verwerfen
+		if (createSitzung())
+			k->sendeEncrypted("\1", 1);
+		else
+			return 0;
+		return 1;
+	case 2: // Sitzung speichern unt beenden
+		if (saveSitzung())
+			k->sendeEncrypted("\1", 1);
+		else
+			return 0;
+		return 1;
+	case 3: // Lade Spieler Daten
+	{
+		Text tmpPf = pfad.getText();
+		tmpPf += "/player";
+		Datei d;
+		d.setDatei(tmpPf);
+		RCArray< Text >* files = d.getDateiListe();
+		if (files)
+		{
+			k->sendeEncrypted("\1", 1);
+			int anz = files->getEintragAnzahl();
+			k->sendeEncrypted((char*)&anz, 4);
+			for (int i = 0; i < anz; i++)
+			{
+				Text pf = tmpPf;
+				pf += "/";
+				pf += files->z(i)->getText();
+				Datei player;
+				player.setDatei(pf);
+				player.open(Datei::Style::lesen);
+				SpielerStr p(dynamic_cast<Datei*>(player.getThis()));
+				player.close();
+				k->sendeEncrypted((char*)&p.id, 4);
+				k->sendeEncrypted((char*)&p.pos.x, 4);
+				k->sendeEncrypted((char*)&p.pos.y, 4);
+				k->sendeEncrypted((char*)&p.rot, 8);
+				k->sendeEncrypted((char*)&p.beschleunigung, 8);
+				k->sendeEncrypted((char*)&p.maxStability, 4);
+				k->sendeEncrypted((char*)&p.maxEnergie, 4);
+				k->sendeEncrypted((char*)&p.reparatur, 8);
+				k->sendeEncrypted((char*)&p.akkuLeistung, 8);
+				k->sendeEncrypted((char*)&p.laserIntensity, 4);
+				k->sendeEncrypted((char*)&p.laserEffizienz, 4);
+				k->sendeEncrypted((char*)&p.laserTempo, 4);
+				k->sendeEncrypted((char*)&p.wendigkeit, 8);
+				k->sendeEncrypted((char*)&p.antriebEffizienz, 8);
+				k->sendeEncrypted((char*)&p.energieSchild, 8);
+				k->sendeEncrypted((char*)&p.energieSchildEffizienz, 8);
+				k->sendeEncrypted((char*)&p.netzwerk, 4);
+				k->sendeEncrypted((char*)&p.skillPunkte, 4);
+				k->sendeEncrypted((char*)&p.m2d, 4);
+				k->sendeEncrypted((char*)&p.bild, 4);
+			}
+		}
+		else
+		{
+			err = "Fehler beim laden von ";
+			err += tmpPf.getText();
+			return 0;
+		}
+		return 1;
+	}
+	case 4: // Lade Team Daten
+	{
+		Text tmpPf = pfad.getText();
+		tmpPf += "/team";
+		Datei d;
+		d.setDatei(tmpPf);
+		RCArray< Text >* files = d.getDateiListe();
+		if (files)
+		{
+			k->sendeEncrypted("\1", 1);
+			int anz = files->getEintragAnzahl();
+			k->sendeEncrypted((char*)&anz, 4);
+			for (int i = 0; i < anz; i++)
+			{
+				Text pf = tmpPf;
+				pf += "/";
+				pf += files->z(i)->getText();
+				Datei team;
+				team.setDatei(pf);
+				team.open(Datei::Style::lesen);
+				TeamStr t(dynamic_cast<Datei*>(team.getThis()));
+				team.close();
+				k->sendeEncrypted((char*)&t.id, 4);
+				k->sendeEncrypted((char*)&t.maxPunkte, 4);
+				k->sendeEncrypted((char*)&t.beschleunigung, 8);
+				k->sendeEncrypted((char*)&t.maxStability, 4);
+				k->sendeEncrypted((char*)&t.maxEnergie, 4);
+				k->sendeEncrypted((char*)&t.reparatur, 8);
+				k->sendeEncrypted((char*)&t.akkuLeistung, 8);
+				k->sendeEncrypted((char*)&t.laserIntensity, 4);
+				k->sendeEncrypted((char*)&t.laserEffizienz, 4);
+				k->sendeEncrypted((char*)&t.laserTempo, 4);
+				k->sendeEncrypted((char*)&t.wendigkeit, 8);
+				k->sendeEncrypted((char*)&t.antriebEffizienz, 8);
+				k->sendeEncrypted((char*)&t.energieSchild, 8);
+				k->sendeEncrypted((char*)&t.energieSchildEffizienz, 8);
+				k->sendeEncrypted((char*)&t.punkte, 4);
+			}
+		}
+		else
+		{
+			err = "Fehler beim laden von ";
+			err += tmpPf.getText();
+			return 0;
+		}
+		return 1;
+	}
+	case 5: // Lade Objekt Daten
+	{
+		Text tmpPf = pfad.getText();
+		tmpPf += "/objekt";
+		Datei d;
+		d.setDatei(tmpPf);
+		RCArray< Text >* files = d.getDateiListe();
+		if (files)
+		{
+			k->sendeEncrypted("\1", 1);
+			int anz = files->getEintragAnzahl();
+			k->sendeEncrypted((char*)&anz, 4);
+			for (int i = 0; i < anz; i++)
+			{
+				Text pf = tmpPf;
+				pf += "/";
+				pf += files->z(i)->getText();
+				Datei object;
+				object.setDatei(pf);
+				object.open(Datei::Style::lesen);
+				ObjektStr o(dynamic_cast<Datei*>(object.getThis()));
+				object.close();
+				k->sendeEncrypted((char*)&o.pos.x, 4);
+				k->sendeEncrypted((char*)&o.pos.y, 4);
+				k->sendeEncrypted((char*)&o.rot, 4);
+				k->sendeEncrypted((char*)&o.scale, 4);
+				k->sendeEncrypted((char*)&o.id, 4);
+				k->sendeEncrypted((char*)&o.m2d, 4);
+				k->sendeEncrypted((char*)&o.bild, 4);
+				k->sendeEncrypted((char*)&o.style, 4);
+				k->sendeEncrypted((char*)&o.maxStability, 4);
+				k->sendeEncrypted((char*)&o.maxEnergie, 4);
+				k->sendeEncrypted((char*)&o.energieRadius, 4);
+				k->sendeEncrypted((char*)&o.reparatur, 8);
+				k->sendeEncrypted((char*)&o.akkuLeistung, 8);
+				k->sendeEncrypted((char*)&o.team, 1);
+			}
+		}
+		else
+		{
+			err = "Fehler beim laden von ";
+			err += tmpPf.getText();
+			return 0;
+		}
+		return 1;
+	}
+	case 6: // Save Player
+	{
+		k->sendeEncrypted("\1", 1);
+		SpielerStr p(0);
+		k->getNachrichtEncrypted((char*)&p.id, 4);
+		k->getNachrichtEncrypted((char*)&p.pos.x, 4);
+		k->getNachrichtEncrypted((char*)&p.pos.y, 4);
+		k->getNachrichtEncrypted((char*)&p.rot, 8);
+		k->getNachrichtEncrypted((char*)&p.beschleunigung, 8);
+		k->getNachrichtEncrypted((char*)&p.maxStability, 4);
+		k->getNachrichtEncrypted((char*)&p.maxEnergie, 4);
+		k->getNachrichtEncrypted((char*)&p.reparatur, 8);
+		k->getNachrichtEncrypted((char*)&p.akkuLeistung, 8);
+		k->getNachrichtEncrypted((char*)&p.laserIntensity, 4);
+		k->getNachrichtEncrypted((char*)&p.laserEffizienz, 4);
+		k->getNachrichtEncrypted((char*)&p.laserTempo, 4);
+		k->getNachrichtEncrypted((char*)&p.wendigkeit, 8);
+		k->getNachrichtEncrypted((char*)&p.antriebEffizienz, 8);
+		k->getNachrichtEncrypted((char*)&p.energieSchild, 8);
+		k->getNachrichtEncrypted((char*)&p.energieSchildEffizienz, 8);
+		k->getNachrichtEncrypted((char*)&p.netzwerk, 4);
+		k->getNachrichtEncrypted((char*)&p.skillPunkte, 4);
+		k->getNachrichtEncrypted((char*)&p.m2d, 4);
+		k->getNachrichtEncrypted((char*)&p.bild, 4);
+		Text pf = pfad.getText();
+		pf += "/player/";
+		pf += p.id;
+		pf += ".p";
+		Datei player;
+		player.setDatei(pf);
+		if (player.open(Datei::Style::schreiben))
+		{
+			p.save(dynamic_cast<Datei*>(player.getThis()));
+			player.close();
+			k->sendeEncrypted("\1", 1);
+			return 1;
+		}
+		err = "Fehler beim Schreiben von ";
+		err += pf.getText();
+		return 0;
+	}
+	case 7: // Save Team
+	{
+		k->sendeEncrypted("\1", 1);
+		TeamStr t(0);
+		k->getNachrichtEncrypted((char*)&t.id, 4);
+		k->getNachrichtEncrypted((char*)&t.maxPunkte, 4);
+		k->getNachrichtEncrypted((char*)&t.beschleunigung, 8);
+		k->getNachrichtEncrypted((char*)&t.maxStability, 4);
+		k->getNachrichtEncrypted((char*)&t.maxEnergie, 4);
+		k->getNachrichtEncrypted((char*)&t.reparatur, 8);
+		k->getNachrichtEncrypted((char*)&t.akkuLeistung, 8);
+		k->getNachrichtEncrypted((char*)&t.laserIntensity, 4);
+		k->getNachrichtEncrypted((char*)&t.laserEffizienz, 4);
+		k->getNachrichtEncrypted((char*)&t.laserTempo, 4);
+		k->getNachrichtEncrypted((char*)&t.wendigkeit, 8);
+		k->getNachrichtEncrypted((char*)&t.antriebEffizienz, 8);
+		k->getNachrichtEncrypted((char*)&t.energieSchild, 8);
+		k->getNachrichtEncrypted((char*)&t.energieSchildEffizienz, 8);
+		k->getNachrichtEncrypted((char*)&t.punkte, 4);
+		Text pf = pfad.getText();
+		pf += "/player/";
+		pf += t.id;
+		pf += ".t";
+		Datei team;
+		team.setDatei(pf);
+		if (team.open(Datei::Style::schreiben))
+		{
+			t.save(dynamic_cast<Datei*>(team.getThis()));
+			team.close();
+			k->sendeEncrypted("\1", 1);
+			return 1;
+		}
+		err = "Fehler beim Schreiben von ";
+		err += pf.getText();
+		return 0;
+	}
+	case 8: // Save Objekt
+	{
+		k->sendeEncrypted("\1", 1);
+		ObjektStr o(0);
+		k->getNachrichtEncrypted((char*)&o.pos.x, 4);
+		k->getNachrichtEncrypted((char*)&o.pos.y, 4);
+		k->getNachrichtEncrypted((char*)&o.rot, 4);
+		k->getNachrichtEncrypted((char*)&o.scale, 4);
+		k->getNachrichtEncrypted((char*)&o.id, 4);
+		k->getNachrichtEncrypted((char*)&o.m2d, 4);
+		k->getNachrichtEncrypted((char*)&o.bild, 4);
+		k->getNachrichtEncrypted((char*)&o.style, 4);
+		k->getNachrichtEncrypted((char*)&o.maxStability, 4);
+		k->getNachrichtEncrypted((char*)&o.maxEnergie, 4);
+		k->getNachrichtEncrypted((char*)&o.energieRadius, 4);
+		k->getNachrichtEncrypted((char*)&o.reparatur, 8);
+		k->getNachrichtEncrypted((char*)&o.akkuLeistung, 8);
+		k->getNachrichtEncrypted((char*)&o.team, 1);
+		Text pf = pfad.getText();
+		pf += "/objekt/";
+		pf += o.id;
+		pf += ".o";
+		Datei objekt;
+		objekt.setDatei(pf);
+		if (objekt.erstellen() && objekt.open(Datei::Style::schreiben))
+		{
+			o.save(dynamic_cast<Datei*>(objekt.getThis()));
+			objekt.close();
+			k->sendeEncrypted("\1", 1);
+			return 1;
+		}
+		err = "Fehler beim Schreiben von ";
+		err += pf.getText();
+		return 0;
+	}
+	case 9: // Delete Objekt
+	{
+		k->sendeEncrypted("\1", 1);
+		int id;
+		k->getNachrichtEncrypted((char*)&id, 4);
+		Text pf = pfad.getText();
+		pf += "/objekt/";
+		pf += id;
+		pf += ".o";
+		if (DateiRemove(pf))
+		{
+			k->sendeEncrypted("\1", 1);
+			return 1;
+		}
+		err = "Fehler beim löschen der Datei ";
+		err += pf;
+		return 0;
+	}
+	case 0xA: // Lade Resourcen
+	{
+		Text tmpPf = pfad.getText();
+		tmpPf += "/resource";
+		Datei d;
+		d.setDatei(tmpPf);
+		RCArray< Text >* files = d.getDateiListe();
+		if (files)
+		{
+			k->sendeEncrypted("\1", 1);
+			int anz = files->getEintragAnzahl();
+			k->sendeEncrypted((char*)&anz, 4);
+			for (int i = 0; i < anz; i++)
+			{
+				Text pf = tmpPf;
+				pf += "/";
+				pf += files->z(i)->getText();
+				Datei resource;
+				resource.setDatei(pf);
+				resource.open(Datei::Style::lesen);
+				int id = (int)*files->z(i);
+				k->sendeEncrypted((char*)&id, 4);
+				char len = 0;
+				resource.lese(&len, 1);
+				char* path = new char[len + 1];
+				path[(int)len] = 0;
+				resource.lese(path, len);
+				k->sendeEncrypted(&len, 1);
+				k->sendeEncrypted(path, len);
+				delete[] path;
+				resource.close();
+			}
+		}
+		else
+		{
+			err = "Fehler beim laden von ";
+			err += tmpPf.getText();
+			return 0;
+		}
+		return 1;
+	}
+	case 0xB: // Map Size
+	{
+		Text tmpPf = pfad.getText();
+		tmpPf += "/size";
+		Datei d;
+		d.setDatei(tmpPf);
+		if (d.open(Datei::Style::lesen))
+		{
+			k->sendeEncrypted("\1", 1);
+			int size = 0;
+			d.lese((char*)&size, 4);
+			k->sendeEncrypted((char*)&size, 4);
+			d.lese((char*)&size, 4);
+			k->sendeEncrypted((char*)&size, 4);
+			d.close();
+		}
+		else
+		{
+			err = "Fehler beim laden von ";
+			err += tmpPf.getText();
+			return 0;
+		}
+		return 1;
+	}
+	case 0xC: // Add Resource
+	{
+		k->sendeEncrypted("\1", 1);
+		Datei d;
+		d.setDatei(Text(pfad.getText()) + "/resource");
+		RCArray<Text>* list = d.getDateiListe();
+		int nId = 0;
+		bool found = 0;
+		do
+		{
+			nId++;
+			found = 0;
+			for (auto t : *list)
+			{
+				if (t->istGleich(Text(nId) + ".r"))
+				{
+					found = 1;
+					break;
+				}
+			}
+		} while (found);
+		list->release();
+		unsigned char len = 0;
+		k->getNachrichtEncrypted((char*)&len, 1);
+		char* path = new char[len + 1];
+		path[len] = 0;
+		k->getNachrichtEncrypted(path, len);
+		d.setDatei(Text(pfad.getText()) + "/resource/" + nId + ".r");
+		if (d.open(Datei::Style::schreiben))
+		{
+			d.schreibe((char*)&len, 1);
+			d.schreibe(path, len);
+			d.close();
+			k->sendeEncrypted("\1", 1);
+			k->sendeEncrypted((char*)&nId, 4);
+			return 1;
+		}
+		err = "Fehler beim schreiben der Datei.";
+		return 0;
+	}
+	default:
+		err = "Unbekannte Nachricht. Error Code: " __FILE__ ":";
+		err += __LINE__;
+		return 0;
+	}
+	return 0;
 }
 
 // constant
-char* Editor::getLetzterFehler() const
+const char* Editor::getLetzterFehler() const
 {
-    return err;
+	return err;
 }
 
 // privat
 bool Editor::createSitzung()
 {
-    DateiRemove( pfad );
-    Text pf = pfad.getText();
-    pf.remove( pf.getLength() - 6, pf.getLength() );
-    pf += "map/server/data.map";
-    Datei d;
-    d.setDatei( pf.getText() );
-    if( d.open( Datei::Style::lesen ) )
-    {
-        pf = pfad.getText();
-        pf += "/resource/";
-        int rAnz = 0;
-        d.lese( (char*)&rAnz, 4 );
-        for( int i = 0; i < rAnz; i++ )
-        {
-            int id = 0;
-            d.lese( (char*)&id, 4 );
-            Text tmpPf = pf.getText();
-            tmpPf += id;
-            tmpPf += ".r";
-            char len = 0;
-            d.lese( &len, 1 );
-            char* path = new char[ len + 1 ];
-            path[ (int)len ] = 0;
-            d.lese( path, len );
-            Datei r;
-            r.setDatei( tmpPf );
-            r.erstellen();
-            if( !r.open( Datei::Style::schreiben ) )
-            {
-                err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim lesen von ";
-                err += tmpPf;
-                err += ". Fehler Code: " __FILE__ ":";
-                err += __LINE__;
-                err += "\n";
-            }
-            r.schreibe( &len, 1 );
-            r.schreibe( path, len );
-            r.close();
-            delete[] path;
-        }
-        pf = pfad.getText();
-        pf += "/size";
-        Datei s;
-        s.setDatei( pf.getText() );
-        if( !s.open( Datei::Style::schreiben ) )
-        {
-            err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim lesen von ";
-            err += pf;
-            err += ". Fehler Code: " __FILE__ ":";
-            err += __LINE__;
-            err += "\n";
-        }
-        __int64 size = 0;
-        d.lese( (char*)&size, 8 );
-        s.schreibe( (char*)&size, 8 );
-        s.close();
-        int objAnz = 0;
-        d.lese( (char*)&objAnz, 4 );
-        for( int i = 0; i < objAnz; i++ )
-        {
-            ObjektStr objStr( &d );
-            Text tmpPf = pfad.getText();
-            tmpPf += "/objekt/";
-            tmpPf += objStr.id;
-            tmpPf += ".o";
-            Datei obj;
-            obj.setDatei( tmpPf.getText() );
-            obj.erstellen();
-            if( !obj.open( Datei::Style::schreiben ) )
-            {
-                err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim schreiben von ";
-                err += tmpPf;
-                err += ". Fehler Code: " __FILE__ ":";
-                err += __LINE__;
-                err += "\n";
-            }
-            objStr.save( &obj );
-            obj.close();
-        }
-        SpielerTeamStruktur* sts = new SpielerTeamStruktur();
-        Text tmp = pfad.getText();
-        pf.remove( pf.getLength() - 12, pf.getLength() );
-        tmp.remove( 0, tmp.positionVon( '/', tmp.anzahlVon( '/' ) ) );
-        int kartenId = tmp;
-        tmp = pfad.getText();
-        tmp.remove( tmp.getLength() - 6, tmp.getLength() );
-        tmp += "map/server/";
-        KartenLeser* stsReader = new KartenLeser( kartenId, 0, tmp );
-        stsReader->ladeSpielerTeamStruktur( sts );
-        stsReader->release();
-        for( int i = 0; i < sts->spielerAnzahl; i++ )
-        {
-            SpielerStr spStr( &d );
-            Text tmpPf = pfad.getText();
-            tmpPf += "/player/";
-            tmpPf += spStr.id;
-            tmpPf += ".p";
-            Datei pl;
-            pl.setDatei( tmpPf.getText() );
-            pl.erstellen();
-            if( !pl.open( Datei::Style::schreiben ) )
-            {
-                err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim schreiben von ";
-                err += tmpPf;
-                err += ". Fehler Code: " __FILE__ ":";
-                err += __LINE__;
-                err += "\n";
-            }
-            spStr.save( &pl );
-            pl.close();
-        }
-        for( int i = 0; i < sts->teamAnzahl; i++ )
-        {
-            TeamStr tStr( &d );
-            Text tmpPf = pfad.getText();
-            tmpPf += "/team/";
-            tmpPf += tStr.id;
-            tmpPf += ".t";
-            Datei pl;
-            pl.setDatei( tmpPf.getText() );
-            pl.erstellen();
-            if( !pl.open( Datei::Style::schreiben ) )
-            {
-                err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim schreiben von ";
-                err += tmpPf;
-                err += ". Fehler Code: " __FILE__ ":";
-                err += __LINE__;
-                err += "\n";
-            }
-            tStr.save( &pl );
-            pl.close();
-        }
-        sts->release();
-        d.close();
-    }
-    else
-    {
-        err = "Sitzung konnte nicht korrekt erstellt werden. Fehler beim lesen von ";
-        err += pf;
-        err += ". Fehler Code: " __FILE__ ":";
-        err += __LINE__;
-        pf = pfad.getText();
-        pf += "/empty.file";
-        DateiPfadErstellen( pf );
-        DateiRemove( pf );
-    }
-    if( !err.getLength() )
-        return 1;
-    else
-        return 0;
+	DateiRemove(pfad);
+	Text pf = pfad.getText();
+	pf.remove(pf.getLength() - 6, pf.getLength());
+	pf += "map/server/data.map";
+	Datei d;
+	d.setDatei(pf.getText());
+	if (d.open(Datei::Style::lesen))
+	{
+		pf = pfad.getText();
+		pf += "/resource/";
+		int rAnz = 0;
+		d.lese((char*)&rAnz, 4);
+		for (int i = 0; i < rAnz; i++)
+		{
+			int id = 0;
+			d.lese((char*)&id, 4);
+			Text tmpPf = pf.getText();
+			tmpPf += id;
+			tmpPf += ".r";
+			char len = 0;
+			d.lese(&len, 1);
+			char* path = new char[len + 1];
+			path[(int)len] = 0;
+			d.lese(path, len);
+			Datei r;
+			r.setDatei(tmpPf);
+			r.erstellen();
+			if (!r.open(Datei::Style::schreiben))
+			{
+				err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim lesen von ";
+				err += tmpPf;
+				err += ". Fehler Code: " __FILE__ ":";
+				err += __LINE__;
+				err += "\n";
+			}
+			r.schreibe(&len, 1);
+			r.schreibe(path, len);
+			r.close();
+			delete[] path;
+		}
+		pf = pfad.getText();
+		pf += "/size";
+		Datei s;
+		s.setDatei(pf.getText());
+		if (!s.open(Datei::Style::schreiben))
+		{
+			err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim lesen von ";
+			err += pf;
+			err += ". Fehler Code: " __FILE__ ":";
+			err += __LINE__;
+			err += "\n";
+		}
+		__int64 size = 0;
+		d.lese((char*)&size, 8);
+		s.schreibe((char*)&size, 8);
+		s.close();
+		int objAnz = 0;
+		d.lese((char*)&objAnz, 4);
+		for (int i = 0; i < objAnz; i++)
+		{
+			ObjektStr objStr(&d);
+			Text tmpPf = pfad.getText();
+			tmpPf += "/objekt/";
+			tmpPf += objStr.id;
+			tmpPf += ".o";
+			Datei obj;
+			obj.setDatei(tmpPf.getText());
+			obj.erstellen();
+			if (!obj.open(Datei::Style::schreiben))
+			{
+				err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim schreiben von ";
+				err += tmpPf;
+				err += ". Fehler Code: " __FILE__ ":";
+				err += __LINE__;
+				err += "\n";
+			}
+			objStr.save(&obj);
+			obj.close();
+		}
+		SpielerTeamStruktur* sts = new SpielerTeamStruktur();
+		Text tmp = pfad.getText();
+		pf.remove(pf.getLength() - 12, pf.getLength());
+		tmp.remove(0, tmp.positionVon('/', tmp.anzahlVon('/')));
+		int kartenId = (int)tmp;
+		tmp = pfad.getText();
+		tmp.remove(tmp.getLength() - 6, tmp.getLength());
+		tmp += "map/server/";
+		KartenLeser* stsReader = new KartenLeser(kartenId, 0, tmp);
+		stsReader->ladeSpielerTeamStruktur(sts);
+		stsReader->release();
+		for (int i = 0; i < sts->spielerAnzahl; i++)
+		{
+			SpielerStr spStr(&d);
+			Text tmpPf = pfad.getText();
+			tmpPf += "/player/";
+			tmpPf += spStr.id;
+			tmpPf += ".p";
+			Datei pl;
+			pl.setDatei(tmpPf.getText());
+			pl.erstellen();
+			if (!pl.open(Datei::Style::schreiben))
+			{
+				err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim schreiben von ";
+				err += tmpPf;
+				err += ". Fehler Code: " __FILE__ ":";
+				err += __LINE__;
+				err += "\n";
+			}
+			spStr.save(&pl);
+			pl.close();
+		}
+		for (int i = 0; i < sts->teamAnzahl; i++)
+		{
+			TeamStr tStr(&d);
+			Text tmpPf = pfad.getText();
+			tmpPf += "/team/";
+			tmpPf += tStr.id;
+			tmpPf += ".t";
+			Datei pl;
+			pl.setDatei(tmpPf.getText());
+			pl.erstellen();
+			if (!pl.open(Datei::Style::schreiben))
+			{
+				err += "Sitzung konnte nicht korrekt erstellt werden. Fehler beim schreiben von ";
+				err += tmpPf;
+				err += ". Fehler Code: " __FILE__ ":";
+				err += __LINE__;
+				err += "\n";
+			}
+			tStr.save(&pl);
+			pl.close();
+		}
+		sts->release();
+		d.close();
+	}
+	else
+	{
+		err = "Sitzung konnte nicht korrekt erstellt werden. Fehler beim lesen von ";
+		err += pf;
+		err += ". Fehler Code: " __FILE__ ":";
+		err += __LINE__;
+		pf = pfad.getText();
+		pf += "/empty.file";
+		DateiPfadErstellen(pf);
+		DateiRemove(pf);
+	}
+	if (!err.getLength())
+		return 1;
+	else
+		return 0;
 }
 
 bool Editor::saveSitzung()
 {
-    Text pf = pfad.getText();
-    pf.remove( pf.getLength() - 6, pf.getLength() );
-    pf += "map/server/data_tmp.map";
-    Datei d;
-    d.setDatei( pf.getText() );
-    if( d.open( Datei::Style::schreiben ) )
-    {
-        pf = pfad.getText();
-        pf += "/resource";
-        Datei res;
-        res.setDatei( pf );
-        RCArray<Text>* resList = res.getDateiListe();
-        if( resList )
-        {
-            int anz = resList->getEintragAnzahl();
-            d.schreibe( (char*)&anz, 4 );
-            for( auto resPf : *resList )
-            {
-                Text tmp = pf.getText();
-                tmp += "/";
-                tmp += resPf->getText();
-                Datei r;
-                r.setDatei( tmp );
-                if( r.open( Datei::Style::lesen ) )
-                {
-                    int id = (int)*resPf;
-                    d.schreibe( (char*)&id, 4 );
-                    char b = 0;
-                    r.lese( &b, 1 );
-                    char* buffer = new char[ b + 1 ];
-                    buffer[ (int)b ] = 0;
-                    r.lese( buffer, b );
-                    d.schreibe( &b, 1 );
-                    d.schreibe( buffer, b );
-                    r.close();
-                }
-                else
-                {
-                    err = "Fehler beim Lesen von ";
-                    err += tmp.getText();
-                    err += ". Fehler Code: " __FILE__ ":";
-                    err += __LINE__;
-                    d.close();
-                    d.remove();
-                    resList->release();
-                    return 0;
-                }
-            }
-            resList->release();
-        }
-        else
-            d.schreibe( "\0\0\0\0", 4 );
-        pf = pfad.getText();
-        pf += "/size";
-        Datei s;
-        s.setDatei( pf.getText() );
-        if( s.open( Datei::Style::lesen ) )
-        {
-            __int64 size = 0;
-            s.lese( (char*)&size, 8 );
-            d.schreibe( (char*)&size, 8 );
-            s.close();
-        }
-        else
-        {
-            err = "Fehler beim Lesen von ";
-            err += pf.getText();
-            err = ". Fehler Code: " __FILE__ ":";
-            err += __LINE__;
-            d.close();
-            d.remove();
-            return 0;
-        }
-        pf = pfad.getText();
-        pf += "/objekt";
-        Datei obj;
-        obj.setDatei( pf );
-        RCArray<Text>* objList = obj.getDateiListe();
-        if( objList )
-        {
-            int anz = objList->getEintragAnzahl();
-            d.schreibe( (char*)&anz, 4 );
-            for( auto objPf : *objList )
-            {
-                Text tmp = pf.getText();
-                tmp += "/";
-                tmp += objPf->getText();
-                Datei r;
-                r.setDatei( tmp );
-                if( r.open( Datei::Style::lesen ) )
-                {
-                    ObjektStr objStr( &r );
-                    objStr.save( &d );
-                    r.close();
-                }
-                else
-                {
-                    err = "Fehler beim Lesen von ";
-                    err += tmp.getText();
-                    err = ". Fehler Code: " __FILE__ ":";
-                    err += __LINE__;
-                    d.close();
-                    d.remove();
-                    objList->release();
-                    return 0;
-                }
-            }
-            objList->release();
-        }
-        else
-            d.schreibe( "\0\0\0\0", 4 );
-        pf = pfad.getText();
-        pf += "/player";
-        Datei pl;
-        pl.setDatei( pf );
-        RCArray<Text>* plList = pl.getDateiListe();
-        if( !plList )
-        {
-            err = "Fehler beim Lesen von ";
-            err += pf.getText();
-            err = ". Fehler Code: " __FILE__ ":";
-            err += __LINE__;
-            d.close();
-            d.remove();
-            return 0;
-        }
-        for( auto plPf : *plList )
-        {
-            Text tmp = pf.getText();
-            tmp += "/";
-            tmp += plPf->getText();
-            Datei r;
-            r.setDatei( tmp );
-            if( r.open( Datei::Style::lesen ) )
-            {
-                SpielerStr spStr( &r );
-                spStr.save( &d );
-                r.close();
-            }
-            else
-            {
-                err = "Fehler beim Lesen von ";
-                err += tmp.getText();
-                err = ". Fehler Code: " __FILE__ ":";
-                err += __LINE__;
-                d.close();
-                d.remove();
-                plList->release();
-                return 0;
-            }
-        }
-        plList->release();
-        pf = pfad.getText();
-        pf += "/team";
-        Datei tm;
-        tm.setDatei( pf );
-        RCArray<Text>* tmList = tm.getDateiListe();
-        if( !tmList )
-        {
-            err = "Fehler beim Lesen von ";
-            err += pf.getText();
-            err = ". Fehler Code: " __FILE__ ":";
-            err += __LINE__;
-            d.close();
-            d.remove();
-            return 0;
-        }
-        for( auto tmPf : *tmList )
-        {
-            Text tmp = pf.getText();
-            tmp += "/";
-            tmp += tmPf->getText();
-            Datei r;
-            r.setDatei( tmp );
-            if( r.open( Datei::Style::lesen ) )
-            {
-                TeamStr tStr( &r );
-                tStr.save( &d );
-                r.close();
-            }
-            else
-            {
-                err = "Fehler beim Lesen von ";
-                err += tmp.getText();
-                err = ". Fehler Code: " __FILE__ ":";
-                err += __LINE__;
-                d.close();
-                d.remove();
-                tmList->release();
-                return 0;
-            }
-        }
-        tmList->release();
-        pf = pfad.getText();
-        pf.remove( pf.getLength() - 6, pf.getLength() );
-        pf += "map/server/data.map";
-        d.close();
-        if( !DateiRemove( pf ) || !d.umbenennen( pf ) )
-        {
-            err = "Fehler beim Übernehmen der Änderungen. Fehler Code: " __FILE__ ":";
-            err += __LINE__;
-            return 0;
-        }
-    }
-    else
-    {
-        err = "Fehler beim Speichern der Änderungen (Server). Fehler Code: " __FILE__ ":";
-        err += __LINE__;
-        return 0;
-    }
-    pf = pfad.getText();
-    pf.remove( pf.getLength() - 6, pf.getLength() );
-    pf += "map/client/map/data/data.map";
-    Datei d2;
-    d2.setDatei( pf.getText() );
-    if( d2.open( Datei::Style::schreiben ) && d.open( Datei::Style::lesen ) )
-    {
-        __int64 size = d.getSize();
-        char* buffer = new char[ 2048 ];
-        while( size > 0 )
-        {
-            int len = (int)(size > 2048 ? 2048 : size);
-            d.lese( buffer, len );
-            d2.schreibe( buffer, len );
-            size -= len;
-        }
-        delete[] buffer;
-        d.close();
-        d2.close();
-    }
-    else
-    {
-        err = "Fehler beim Speichern der Änderungen (Client). Fehler Code: " __FILE__ ":";
-        err += __LINE__;
-        return 0;
-    }
-    DateiRemove( pfad.getText() );
-    return 1;
+	Text pf = pfad.getText();
+	pf.remove(pf.getLength() - 6, pf.getLength());
+	pf += "map/server/data_tmp.map";
+	Datei d;
+	d.setDatei(pf.getText());
+	if (d.open(Datei::Style::schreiben))
+	{
+		pf = pfad.getText();
+		pf += "/resource";
+		Datei res;
+		res.setDatei(pf);
+		RCArray<Text>* resList = res.getDateiListe();
+		if (resList)
+		{
+			int anz = resList->getEintragAnzahl();
+			d.schreibe((char*)&anz, 4);
+			for (auto resPf : *resList)
+			{
+				Text tmp = pf.getText();
+				tmp += "/";
+				tmp += resPf->getText();
+				Datei r;
+				r.setDatei(tmp);
+				if (r.open(Datei::Style::lesen))
+				{
+					int id = (int)*resPf;
+					d.schreibe((char*)&id, 4);
+					char b = 0;
+					r.lese(&b, 1);
+					char* buffer = new char[b + 1];
+					buffer[(int)b] = 0;
+					r.lese(buffer, b);
+					d.schreibe(&b, 1);
+					d.schreibe(buffer, b);
+					r.close();
+				}
+				else
+				{
+					err = "Fehler beim Lesen von ";
+					err += tmp.getText();
+					err += ". Fehler Code: " __FILE__ ":";
+					err += __LINE__;
+					d.close();
+					d.remove();
+					resList->release();
+					return 0;
+				}
+			}
+			resList->release();
+		}
+		else
+			d.schreibe("\0\0\0\0", 4);
+		pf = pfad.getText();
+		pf += "/size";
+		Datei s;
+		s.setDatei(pf.getText());
+		if (s.open(Datei::Style::lesen))
+		{
+			__int64 size = 0;
+			s.lese((char*)&size, 8);
+			d.schreibe((char*)&size, 8);
+			s.close();
+		}
+		else
+		{
+			err = "Fehler beim Lesen von ";
+			err += pf.getText();
+			err = ". Fehler Code: " __FILE__ ":";
+			err += __LINE__;
+			d.close();
+			d.remove();
+			return 0;
+		}
+		pf = pfad.getText();
+		pf += "/objekt";
+		Datei obj;
+		obj.setDatei(pf);
+		RCArray<Text>* objList = obj.getDateiListe();
+		if (objList)
+		{
+			int anz = objList->getEintragAnzahl();
+			d.schreibe((char*)&anz, 4);
+			for (auto objPf : *objList)
+			{
+				Text tmp = pf.getText();
+				tmp += "/";
+				tmp += objPf->getText();
+				Datei r;
+				r.setDatei(tmp);
+				if (r.open(Datei::Style::lesen))
+				{
+					ObjektStr objStr(&r);
+					objStr.save(&d);
+					r.close();
+				}
+				else
+				{
+					err = "Fehler beim Lesen von ";
+					err += tmp.getText();
+					err = ". Fehler Code: " __FILE__ ":";
+					err += __LINE__;
+					d.close();
+					d.remove();
+					objList->release();
+					return 0;
+				}
+			}
+			objList->release();
+		}
+		else
+			d.schreibe("\0\0\0\0", 4);
+		pf = pfad.getText();
+		pf += "/player";
+		Datei pl;
+		pl.setDatei(pf);
+		RCArray<Text>* plList = pl.getDateiListe();
+		if (!plList)
+		{
+			err = "Fehler beim Lesen von ";
+			err += pf.getText();
+			err = ". Fehler Code: " __FILE__ ":";
+			err += __LINE__;
+			d.close();
+			d.remove();
+			return 0;
+		}
+		for (auto plPf : *plList)
+		{
+			Text tmp = pf.getText();
+			tmp += "/";
+			tmp += plPf->getText();
+			Datei r;
+			r.setDatei(tmp);
+			if (r.open(Datei::Style::lesen))
+			{
+				SpielerStr spStr(&r);
+				spStr.save(&d);
+				r.close();
+			}
+			else
+			{
+				err = "Fehler beim Lesen von ";
+				err += tmp.getText();
+				err = ". Fehler Code: " __FILE__ ":";
+				err += __LINE__;
+				d.close();
+				d.remove();
+				plList->release();
+				return 0;
+			}
+		}
+		plList->release();
+		pf = pfad.getText();
+		pf += "/team";
+		Datei tm;
+		tm.setDatei(pf);
+		RCArray<Text>* tmList = tm.getDateiListe();
+		if (!tmList)
+		{
+			err = "Fehler beim Lesen von ";
+			err += pf.getText();
+			err = ". Fehler Code: " __FILE__ ":";
+			err += __LINE__;
+			d.close();
+			d.remove();
+			return 0;
+		}
+		for (auto tmPf : *tmList)
+		{
+			Text tmp = pf.getText();
+			tmp += "/";
+			tmp += tmPf->getText();
+			Datei r;
+			r.setDatei(tmp);
+			if (r.open(Datei::Style::lesen))
+			{
+				TeamStr tStr(&r);
+				tStr.save(&d);
+				r.close();
+			}
+			else
+			{
+				err = "Fehler beim Lesen von ";
+				err += tmp.getText();
+				err = ". Fehler Code: " __FILE__ ":";
+				err += __LINE__;
+				d.close();
+				d.remove();
+				tmList->release();
+				return 0;
+			}
+		}
+		tmList->release();
+		pf = pfad.getText();
+		pf.remove(pf.getLength() - 6, pf.getLength());
+		pf += "map/server/data.map";
+		d.close();
+		if (!DateiRemove(pf) || !d.umbenennen(pf))
+		{
+			err = "Fehler beim Übernehmen der Änderungen. Fehler Code: " __FILE__ ":";
+			err += __LINE__;
+			return 0;
+		}
+	}
+	else
+	{
+		err = "Fehler beim Speichern der Änderungen (Server). Fehler Code: " __FILE__ ":";
+		err += __LINE__;
+		return 0;
+	}
+	pf = pfad.getText();
+	pf.remove(pf.getLength() - 6, pf.getLength());
+	pf += "map/client/map/data/data.map";
+	Datei d2;
+	d2.setDatei(pf.getText());
+	if (d2.open(Datei::Style::schreiben) && d.open(Datei::Style::lesen))
+	{
+		__int64 size = d.getSize();
+		char* buffer = new char[2048];
+		while (size > 0)
+		{
+			int len = (int)(size > 2048 ? 2048 : size);
+			d.lese(buffer, len);
+			d2.schreibe(buffer, len);
+			size -= len;
+		}
+		delete[] buffer;
+		d.close();
+		d2.close();
+	}
+	else
+	{
+		err = "Fehler beim Speichern der Änderungen (Client). Fehler Code: " __FILE__ ":";
+		err += __LINE__;
+		return 0;
+	}
+	DateiRemove(pfad.getText());
+	return 1;
 }

+ 14 - 14
Asteroids/Editor.h

@@ -9,22 +9,22 @@ using namespace Framework;
 class Editor : public ESEditorV
 {
 private:
-    Text pfad;
-    Text err;
+	Text pfad;
+	Text err;
 
 public:
-    // Konstruktor
-    Editor();
-    // Destruktor
-    ~Editor();
-    // nicht constant
-    void setPfad( char *pfad ) override;
-    void open() override;
-    bool nachricht( SKlient *k ) override;
-    // constant
-    char *getLetzterFehler() const override;
+	// Konstruktor
+	Editor();
+	// Destruktor
+	~Editor();
+	// nicht constant
+	void setPfad(const char* pfad) override;
+	void open() override;
+	bool nachricht(SKlient* k) override;
+	// constant
+	const char* getLetzterFehler() const override;
 
 private:
-    bool createSitzung();
-    bool saveSitzung();
+	bool createSitzung();
+	bool saveSitzung();
 };

+ 77 - 77
Asteroids/Karte.cpp

@@ -3,121 +3,121 @@
 // Inhalt der Karte Klasse aus Karte.h
 // Konstruktor
 Karte::Karte()
-    : ReferenceCounter()
+	: ReferenceCounter()
 {
-    size = Vec2< int >( 0, 0 );
-    ressources = new RCArray< RessourceStr >();
-    objekte = new RCArray< ObjektStr >();
-    spieler = new RCArray< SpielerStr >();
-    teams = new RCArray< TeamStr >();
-    sts = 0;
+	size = Vec2< int >(0, 0);
+	ressources = new RCArray< RessourceStr >();
+	objekte = new RCArray< ObjektStr >();
+	spieler = new RCArray< SpielerStr >();
+	teams = new RCArray< TeamStr >();
+	sts = 0;
 }
 
 // Destruktor
 Karte::~Karte()
 {
-    ressources->release();
-    objekte->release();
-    spieler->release();
-    teams->release();
-    if( sts )
-        sts->release();
+	ressources->release();
+	objekte->release();
+	spieler->release();
+	teams->release();
+	if (sts)
+		sts->release();
 }
 
 // nicht constant
-void Karte::ladeDaten( Datei* zDatei, SSDatenbankV* zDb, SpielerTeamStruktur* zSts, char* tmpPfad, int kId )
+void Karte::ladeDaten(Datei* zDatei, SSDatenbankV* zDb, SpielerTeamStruktur* zSts, const char* tmpPfad, int kId)
 {
-    sts = zSts->getThis();
-    int ressourceAnz = 0;
-    zDatei->lese( (char*)&ressourceAnz, 4 );
-    for( int i = 0; i < ressourceAnz; i++ )
-        ressources->add( new RessourceStr( zDatei, zDb, tmpPfad, kId ) );
-    zDatei->lese( (char*)&size.x, 4 );
-    zDatei->lese( (char*)&size.y, 4 );
-    int objektAnzahl = 0;
-    zDatei->lese( (char*)&objektAnzahl, 4 );
-    for( int i = 0; i < objektAnzahl; i++ )
-        objekte->add( new ObjektStr( zDatei ) );
-    for( int i = 0; i < zSts->spielerAnzahl; i++ )
-        spieler->add( new SpielerStr( zDatei ) );
-    for( int i = 0; i < zSts->teamAnzahl; i++ )
-        teams->add( new TeamStr( zDatei ) );
+	sts = zSts->getThis();
+	int ressourceAnz = 0;
+	zDatei->lese((char*)&ressourceAnz, 4);
+	for (int i = 0; i < ressourceAnz; i++)
+		ressources->add(new RessourceStr(zDatei, zDb, tmpPfad, kId));
+	zDatei->lese((char*)&size.x, 4);
+	zDatei->lese((char*)&size.y, 4);
+	int objektAnzahl = 0;
+	zDatei->lese((char*)&objektAnzahl, 4);
+	for (int i = 0; i < objektAnzahl; i++)
+		objekte->add(new ObjektStr(zDatei));
+	for (int i = 0; i < zSts->spielerAnzahl; i++)
+		spieler->add(new SpielerStr(zDatei));
+	for (int i = 0; i < zSts->teamAnzahl; i++)
+		teams->add(new TeamStr(zDatei));
 }
 
 // constant
 Vec2< int > Karte::getSize() const
 {
-    return size;
+	return size;
 }
 
-Spieler* Karte::createSpieler( int sNum ) const
+Spieler* Karte::createSpieler(int sNum) const
 {
-    if( !sts || sNum < 0 || sNum >= sts->spielerAnzahl )
-        return 0;
-    for( auto s : *spieler )
-    {
-        if( s->id == sNum + 1 )
-        {
-            Spieler* ret = new Spieler( s );
-            for( auto i : *ressources )
-            {
-                if( i->getId() == s->m2d )
-                    ret->setModelData( dynamic_cast<Model2DData*>(i->zReccourceM2()->getThis()) );
-            }
-            ret->setSpielerFarbe( sts->spielerFarbe->hat( sNum ) ? sts->spielerFarbe->get( sNum ) : 0 );
-            return ret;
-        }
-    }
-    return 0;
+	if (!sts || sNum < 0 || sNum >= sts->spielerAnzahl)
+		return 0;
+	for (auto s : *spieler)
+	{
+		if (s->id == sNum + 1)
+		{
+			Spieler* ret = new Spieler(s);
+			for (auto i : *ressources)
+			{
+				if (i->getId() == s->m2d)
+					ret->setModelData(dynamic_cast<Model2DData*>(i->zReccourceM2()->getThis()));
+			}
+			ret->setSpielerFarbe(sts->spielerFarbe->hat(sNum) ? sts->spielerFarbe->get(sNum) : 0);
+			return ret;
+		}
+	}
+	return 0;
 }
 
-Team* Karte::createTeam( int tNum ) const
+Team* Karte::createTeam(int tNum) const
 {
-    if( !sts || tNum < 0 || tNum >= sts->teamAnzahl )
-        return 0;
-    Team* ret = 0;
-    for( auto t : *teams )
-        if( t->id == tNum + 1 )
-            ret = new Team( sts->teamFarbe->get( tNum ), sts->teamName->z( tNum )->getText(), t );
-    return ret;
+	if (!sts || tNum < 0 || tNum >= sts->teamAnzahl)
+		return 0;
+	Team* ret = 0;
+	for (auto t : *teams)
+		if (t->id == tNum + 1)
+			ret = new Team(sts->teamFarbe->get(tNum), sts->teamName->z(tNum)->getText(), t);
+	return ret;
 }
 
-SpielObjekt* Karte::createObjekt( int oNum ) const
+SpielObjekt* Karte::createObjekt(int oNum) const
 {
-    if( oNum <= 0 )
-        return 0;
-    for( auto o : *objekte )
-    {
-        if( o->id == oNum )
-        {
-            SpielObjekt* ret = new SpielObjekt( o );
-            for( auto i : *ressources )
-            {
-                if( i->getId() == o->m2d )
-                    ret->setModel( dynamic_cast<Model2DData*>(i->zReccourceM2()->getThis()) );
-            }
-            return ret;
-        }
-    }
-    return 0;
+	if (oNum <= 0)
+		return 0;
+	for (auto o : *objekte)
+	{
+		if (o->id == oNum)
+		{
+			SpielObjekt* ret = new SpielObjekt(o);
+			for (auto i : *ressources)
+			{
+				if (i->getId() == o->m2d)
+					ret->setModel(dynamic_cast<Model2DData*>(i->zReccourceM2()->getThis()));
+			}
+			return ret;
+		}
+	}
+	return 0;
 }
 
 Iterator< ObjektStr* > Karte::getObjekte() const
 {
-    return objekte->begin();
+	return objekte->begin();
 }
 
 int Karte::getMaxTeamAnzahl() const
 {
-    return sts ? sts->teamAnzahl : 0;
+	return sts ? sts->teamAnzahl : 0;
 }
 
 int Karte::getMaxSpielerAnzahl() const
 {
-    return sts ? sts->spielerAnzahl : 0;
+	return sts ? sts->spielerAnzahl : 0;
 }
 
 int Karte::getObjektAnzahl() const
 {
-    return objekte->getEintragAnzahl();
+	return objekte->getEintragAnzahl();
 }

+ 21 - 21
Asteroids/Karte.h

@@ -12,29 +12,29 @@ using namespace Framework;
 class Karte : public virtual ReferenceCounter
 {
 private:
-    Vec2< int > size;
-    RCArray< RessourceStr > *ressources;
-    RCArray< ObjektStr > *objekte;
-    RCArray< SpielerStr > *spieler;
-    RCArray< TeamStr > *teams;
-    SpielerTeamStruktur *sts;
+	Vec2< int > size;
+	RCArray< RessourceStr >* ressources;
+	RCArray< ObjektStr >* objekte;
+	RCArray< SpielerStr >* spieler;
+	RCArray< TeamStr >* teams;
+	SpielerTeamStruktur* sts;
 
 public:
-    // Konstruktor
-    Karte();
-    // Destruktor
-    ~Karte();
-    // nicht constant
-    void ladeDaten( Datei *zDatei, SSDatenbankV *zDb, SpielerTeamStruktur *zSts, char *tmpPfad, int kId );
-    // constant
-    Vec2< int > getSize() const;
-    Spieler *createSpieler( int sNum ) const;
-    Team *createTeam( int tNum ) const;
-    SpielObjekt *createObjekt( int oNum ) const;
-    Iterator< ObjektStr * > getObjekte() const;
-    int getMaxTeamAnzahl() const;
-    int getMaxSpielerAnzahl() const;
-    int getObjektAnzahl() const;
+	// Konstruktor
+	Karte();
+	// Destruktor
+	~Karte();
+	// nicht constant
+	void ladeDaten(Datei* zDatei, SSDatenbankV* zDb, SpielerTeamStruktur* zSts, const char* tmpPfad, int kId);
+	// constant
+	Vec2< int > getSize() const;
+	Spieler* createSpieler(int sNum) const;
+	Team* createTeam(int tNum) const;
+	SpielObjekt* createObjekt(int oNum) const;
+	Iterator< ObjektStr* > getObjekte() const;
+	int getMaxTeamAnzahl() const;
+	int getMaxSpielerAnzahl() const;
+	int getObjektAnzahl() const;
 };
 
 #endif

+ 99 - 99
Asteroids/KartenLeser.cpp

@@ -4,134 +4,134 @@
 
 // Inhalt der KartenLeser Klasse aus KartenLeser.h
 // Kontruktor
-KartenLeser::KartenLeser( int karteId, SSDatenbankV *db, char *tmpPfad )
+KartenLeser::KartenLeser(int karteId, SSDatenbankV* db, const char* tmpPfad)
 {
-    this->karteId = karteId;
-    this->db = db;
-    pfad = new Text( tmpPfad );
-    ref = 1;
+	this->karteId = karteId;
+	this->db = db;
+	pfad = new Text(tmpPfad);
+	ref = 1;
 }
 
 // Destruktor
 KartenLeser::~KartenLeser()
 {
-    if( db )
-        db->release();
-    if( pfad )
-        pfad->release();
+	if (db)
+		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;
 }
 
-Karte *KartenLeser::ladeKarte( SpielerTeamStruktur *zSts )
+Karte* KartenLeser::ladeKarte(SpielerTeamStruktur* zSts)
 {
-    if( !pfad )
-        return 0;
-    Text *pf = new Text( pfad->getText() );
-    pf->append( "data.map" );
-    Datei *datei = new Datei();
-    datei->setDatei( pf );
-    if( !datei->existiert() || datei->istOrdner() )
-    {
-        datei->release();
-        return 0;
-    }
-    datei->open( Datei::Style::lesen );
-    Karte *ret = new Karte();
-    ret->ladeDaten( datei, db, zSts, pfad->getText(), karteId );
-    datei->close();
-    datei->release();
-    return ret;
+	if (!pfad)
+		return 0;
+	Text* pf = new Text(pfad->getText());
+	pf->append("data.map");
+	Datei* datei = new Datei();
+	datei->setDatei(pf);
+	if (!datei->existiert() || datei->istOrdner())
+	{
+		datei->release();
+		return 0;
+	}
+	datei->open(Datei::Style::lesen);
+	Karte* ret = new Karte();
+	ret->ladeDaten(datei, db, zSts, pfad->getText(), karteId);
+	datei->close();
+	datei->release();
+	return ret;
 }
 
 // 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;
 }
 
 // Reference Counting
-KartenLeser *KartenLeser::getThis()
+KartenLeser* KartenLeser::getThis()
 {
-    ref++;
-    return this;
+	ref++;
+	return this;
 }
 
-KartenLeser *KartenLeser::release()
+KartenLeser* KartenLeser::release()
 {
-    ref--;
-    if( !ref )
-        delete this;
-    return 0;
+	ref--;
+	if (!ref)
+		delete this;
+	return 0;
 }

+ 9 - 9
Asteroids/KartenLeser.h

@@ -9,26 +9,26 @@ class Karte;
 class KartenLeser
 {
 private:
-	SSDatenbankV *db;
-	Text *pfad;
+	SSDatenbankV* db;
+	Text* pfad;
 	int karteId;
 	int ref;
 
 public:
 	// Kontruktor
-    KartenLeser( int karteId, SSDatenbankV *db, char *tmpPfad );
+	KartenLeser(int karteId, SSDatenbankV* db, const char* tmpPfad);
 	// Destruktor
 	~KartenLeser();
 	// nicht constant
-	bool ladeSpielerTeamStruktur( SpielerTeamStruktur *zSts );
-	Karte *ladeKarte( SpielerTeamStruktur *zSts );
+	bool ladeSpielerTeamStruktur(SpielerTeamStruktur* zSts);
+	Karte* ladeKarte(SpielerTeamStruktur* zSts);
 	// constant
 	int getKarteId() const;
-	Text *getPfad() const;
-	Text *zPfad() const;
+	Text* getPfad() const;
+	Text* zPfad() const;
 	// Reference Counting
-	KartenLeser *getThis();
-	KartenLeser *release();
+	KartenLeser* getThis();
+	KartenLeser* release();
 };
 
 #endif

+ 303 - 303
Asteroids/Klient.cpp

@@ -4,396 +4,396 @@
 
 // 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 )
+void Klient::online(SSKlientV* zKlient)
 {
-    if( klient )
-        klient = (SSKlientV *)klient->release();
-    klient = dynamic_cast<SSKlientV *>( zKlient->getThis() );
+	if (klient)
+		klient = (SSKlientV*)klient->release();
+	klient = dynamic_cast<SSKlientV*>(zKlient->getThis());
 }
 
-void Klient::sendeInit( RCArray< Spieler > *zSpieler, int spielZeit )
+void Klient::sendeInit(RCArray< Spieler >* zSpieler, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = (short)( 6 + zSpieler->getEintragAnzahl() * 8 );
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 6;
-    *(char *)( bytes + 5 ) = (char)zSpieler->getEintragAnzahl();
-    for( int i = 0; i < zSpieler->getEintragAnzahl(); i++ )
-    {
-        *(int *)( bytes + 6 + i * 8 ) = zSpieler->z( i )->getSpielerNummer();
-        *(int *)( bytes + 10 + i * 8 ) = zSpieler->z( i )->getAccountId();
-    }
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = (short)(6 + zSpieler->getEintragAnzahl() * 8);
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 6;
+	*(char*)(bytes + 5) = (char)zSpieler->getEintragAnzahl();
+	for (int i = 0; i < zSpieler->getEintragAnzahl(); i++)
+	{
+		*(int*)(bytes + 6 + i * 8) = zSpieler->z(i)->getSpielerNummer();
+		*(int*)(bytes + 10 + i * 8) = zSpieler->z(i)->getAccountId();
+	}
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeSpielerNummer( int sNum, int spielZeit )
+void Klient::sendeSpielerNummer(int sNum, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 9;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 9;
-    *(int *)( bytes + 5 ) = sNum;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 9;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 9;
+	*(int*)(bytes + 5) = sNum;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeStart( int spielZeit )
+void Klient::sendeStart(int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 5;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0xA;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 5;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0xA;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeTastaturStatus( int spielerId, TastaturStatus ts, bool aktiv, int spielZeit )
+void Klient::sendeTastaturStatus(int spielerId, TastaturStatus ts, bool aktiv, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 9;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = (char)( (char)ts * 2 + (char)!aktiv );
-    *(int *)( bytes + 5 ) = spielerId;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 9;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = (char)((char)ts * 2 + (char)!aktiv);
+	*(int*)(bytes + 5) = spielerId;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeSkillNachricht( int sNum, char art, int spielZeit )
+void Klient::sendeSkillNachricht(int sNum, char art, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 10;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0xC;
-    *(int *)( bytes + 5 ) = sNum;
-    *(char *)( bytes + 9 ) = art;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 10;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0xC;
+	*(int*)(bytes + 5) = sNum;
+	*(char*)(bytes + 9) = art;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeUseSkillNachricht( int sNum, char id, int spielZeit )
+void Klient::sendeUseSkillNachricht(int sNum, char id, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 10;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x15;
-    *(int *)( bytes + 5 ) = sNum;
-    *(char *)( bytes + 9 ) = id;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 10;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x15;
+	*(int*)(bytes + 5) = sNum;
+	*(char*)(bytes + 9) = id;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeAsteroid( int id, Vertex pos, Vertex speed, float rot, float rotS, int index, int spielZeit )
+void Klient::sendeAsteroid(int id, Vertex pos, Vertex speed, float rot, float rotS, int index, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 37;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x11;
-    *(int *)( bytes + 5 ) = id;
-    *(float *)( bytes + 9 ) = pos.x;
-    *(float *)( bytes + 13 ) = pos.y;
-    *(float *)( bytes + 17 ) = speed.x;
-    *(float *)( bytes + 21 ) = speed.y;
-    *(float *)( bytes + 25 ) = rot;
-    *(float *)( bytes + 29 ) = rotS;
-    *(int *)( bytes + 33 ) = index;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 37;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x11;
+	*(int*)(bytes + 5) = id;
+	*(float*)(bytes + 9) = pos.x;
+	*(float*)(bytes + 13) = pos.y;
+	*(float*)(bytes + 17) = speed.x;
+	*(float*)(bytes + 21) = speed.y;
+	*(float*)(bytes + 25) = rot;
+	*(float*)(bytes + 29) = rotS;
+	*(int*)(bytes + 33) = index;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeSchuss( int id, int sNum, Vertex pos, Vertex speed, double intensity, int spielZeit )
+void Klient::sendeSchuss(int id, int sNum, Vertex pos, Vertex speed, double intensity, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 37;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0xD;
-    *(int *)( bytes + 5 ) = id;
-    *(int *)( bytes + 9 ) = sNum;
-    *(float *)( bytes + 13 ) = pos.x;
-    *(float *)( bytes + 17 ) = pos.y;
-    *(float *)( bytes + 21 ) = speed.x;
-    *(float *)( bytes + 25 ) = speed.y;
-    *(double *)( bytes + 29 ) = intensity;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 37;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0xD;
+	*(int*)(bytes + 5) = id;
+	*(int*)(bytes + 9) = sNum;
+	*(float*)(bytes + 13) = pos.x;
+	*(float*)(bytes + 17) = pos.y;
+	*(float*)(bytes + 21) = speed.x;
+	*(float*)(bytes + 25) = speed.y;
+	*(double*)(bytes + 29) = intensity;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendePixel( int asteroid, int pixelId, int spielZeit )
+void Klient::sendePixel(int asteroid, int pixelId, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 13;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x13;
-    *(int *)( bytes + 5 ) = asteroid;
-    *(int *)( bytes + 9 ) = pixelId;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 13;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x13;
+	*(int*)(bytes + 5) = asteroid;
+	*(int*)(bytes + 9) = pixelId;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeEp( int pixelId, int spielerId, int spielZeit )
+void Klient::sendeEp(int pixelId, int spielerId, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 13;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x14;
-    *(int *)( bytes + 5 ) = pixelId;
-    *(int *)( bytes + 9 ) = spielerId;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 13;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x14;
+	*(int*)(bytes + 5) = pixelId;
+	*(int*)(bytes + 9) = spielerId;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeTreffer( int id, int sNum, int spielZeit, float ep, int skillP )
+void Klient::sendeTreffer(int id, int sNum, int spielZeit, float ep, int skillP)
 {
-    if( !klient )
-        return;
-    short len = 21;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0xE;
-    *(int *)( bytes + 5 ) = id;
-    *(int *)( bytes + 9 ) = sNum;
-    *(float *)( bytes + 13 ) = ep;
-    *(int *)( bytes + 17 ) = skillP;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 21;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0xE;
+	*(int*)(bytes + 5) = id;
+	*(int*)(bytes + 9) = sNum;
+	*(float*)(bytes + 13) = ep;
+	*(int*)(bytes + 17) = skillP;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeObjektTreffer( int id, int oId, int spielZeit, float ep, int skillP )
+void Klient::sendeObjektTreffer(int id, int oId, int spielZeit, float ep, int skillP)
 {
-    if( !klient )
-        return;
-    short len = 21;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x16;
-    *(int *)( bytes + 5 ) = id;
-    *(int *)( bytes + 9 ) = oId;
-    *(float *)( bytes + 13 ) = ep;
-    *(int *)( bytes + 17 ) = skillP;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 21;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x16;
+	*(int*)(bytes + 5) = id;
+	*(int*)(bytes + 9) = oId;
+	*(float*)(bytes + 13) = ep;
+	*(int*)(bytes + 17) = skillP;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeObjektTod( int oId, int killSNum, int spielZeit )
+void Klient::sendeObjektTod(int oId, int killSNum, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 13;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x17;
-    *(int *)( bytes + 5 ) = oId;
-    *(int *)( bytes + 9 ) = killSNum;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 13;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x17;
+	*(int*)(bytes + 5) = oId;
+	*(int*)(bytes + 9) = killSNum;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeAsteroidTreffer( int asteroidId, int newAsteroidId, int schussId, Vertex pos, __int64 seed, int spielZeit, float ep, int skillP )
+void Klient::sendeAsteroidTreffer(int asteroidId, int newAsteroidId, int schussId, Vertex pos, __int64 seed, int spielZeit, float ep, int skillP)
 {
-    if( !klient )
-        return;
-    short len = 41;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x12;
-    *(int *)( bytes + 5 ) = schussId;
-    *(int *)( bytes + 9 ) = asteroidId;
-    *(float *)( bytes + 13 ) = pos.x;
-    *(float *)( bytes + 17 ) = pos.y;
-    *(__int64 *)( bytes + 21 ) = seed;
-    *(int *)( bytes + 29 ) = newAsteroidId;
-    *(float *)( bytes + 33 ) = ep;
-    *(int *)( bytes + 37 ) = skillP;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 41;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x12;
+	*(int*)(bytes + 5) = schussId;
+	*(int*)(bytes + 9) = asteroidId;
+	*(float*)(bytes + 13) = pos.x;
+	*(float*)(bytes + 17) = pos.y;
+	*(__int64*)(bytes + 21) = seed;
+	*(int*)(bytes + 29) = newAsteroidId;
+	*(float*)(bytes + 33) = ep;
+	*(int*)(bytes + 37) = skillP;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeWiederbelebung( int sNum, int spielZeit )
+void Klient::sendeWiederbelebung(int sNum, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 9;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0xF;
-    *(int *)( bytes + 5 ) = sNum;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 9;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0xF;
+	*(int*)(bytes + 5) = sNum;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeTod( int sNum, int killSNum, int spielZeit )
+void Klient::sendeTod(int sNum, int killSNum, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 13;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x10;
-    *(int *)( bytes + 5 ) = sNum;
-    *(int *)( bytes + 9 ) = killSNum;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 13;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x10;
+	*(int*)(bytes + 5) = sNum;
+	*(int*)(bytes + 9) = killSNum;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeSpielEnde( char gewonnen, int spielZeit )
+void Klient::sendeSpielEnde(char gewonnen, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = 6;
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0xB;
-    *(char *)( bytes + 5 ) = gewonnen;
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = 6;
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0xB;
+	*(char*)(bytes + 5) = gewonnen;
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeChatNachricht( char *txt, int spielZeit )
+void Klient::sendeChatNachricht(const char* txt, int spielZeit)
 {
-    if( !klient )
-        return;
-    short len = (short)( 5 + textLength( txt ) );
-    char *bytes = new char[ len ];
-    *(int *)bytes = spielZeit;
-    *(char *)( bytes + 4 ) = 0x8;
-    for( int i = 5; i < len; i++ )
-        bytes[ i ] = txt[ i - 5 ];
-    klient->spielNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = (short)(5 + textLength(txt));
+	char* bytes = new char[len];
+	*(int*)bytes = spielZeit;
+	*(char*)(bytes + 4) = 0x8;
+	for (int i = 5; i < len; i++)
+		bytes[i] = txt[i - 5];
+	klient->spielNachricht(len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeStatistikChatNachricht( int vonAccount, char *txt )
+void Klient::sendeStatistikChatNachricht(int vonAccount, char* txt)
 {
-    if( !klient )
-        return;
-    short len = (short)( 5 + textLength( txt ) );
-    char *bytes = new char[ len ];
-    *(char *)( bytes ) = 3;
-    *(int *)( bytes + 1 ) = vonAccount;
-    for( int i = 5; i < len; i++ )
-        bytes[ i ] = txt[ i - 5 ];
-    klient->statistikNachricht( len, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	short len = (short)(5 + textLength(txt));
+	char* bytes = new char[len];
+	*(char*)(bytes) = 3;
+	*(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 )
+void Klient::sendeStatistikSpielerOffline(int account)
 {
-    if( !klient )
-        return;
-    char *bytes = new char[ 5 ];
-    *(char *)( bytes ) = 4;
-    *(int *)( bytes + 1 ) = account;
-    klient->statistikNachricht( 5, bytes );
-    delete[] bytes;
+	if (!klient)
+		return;
+	char* bytes = new char[5];
+	*(char*)(bytes) = 4;
+	*(int*)(bytes + 1) = account;
+	klient->statistikNachricht(5, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeSpielerStatistik( SpielerStatistik *zS )
+void Klient::sendeSpielerStatistik(SpielerStatistik* zS)
 {
-    if( !zS || !klient )
-        return;
-    char snl = (char)zS->zSpielerName()->getLength();
-    char tnl = (char)zS->zTeamName()->getLength();
-    int len = 55 + snl + tnl;
-    char *bytes = new char[ len ];
-    bytes[ 0 ] = 0;
-    *(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->getSchadenBekommen();
-    *(int *)( bytes + 19 + snl + tnl ) = zS->getSchadenGemacht();
-    *(int *)( bytes + 23 + snl + tnl ) = zS->getTreibstoffVerbraucht();
-    *(int *)( bytes + 27 + snl + tnl ) = zS->getShots();
-    *(int *)( bytes + 31 + snl + tnl ) = zS->getTreffer();
-    *(int *)( bytes + 35 + snl + tnl ) = zS->getPunkte();
-    *(int *)( bytes + 39 + snl + tnl ) = zS->getKills();
-    *(int *)( bytes + 43 + snl + tnl ) = zS->getTode();
-    *(int *)( bytes + 47 + snl + tnl ) = zS->getZeitAmLeben();
-    *(int *)( bytes + 51 + snl + tnl ) = zS->getZeitTod();
-    klient->statistikNachricht( (short)len, bytes );
-    delete[] bytes;
+	if (!zS || !klient)
+		return;
+	char snl = (char)zS->zSpielerName()->getLength();
+	char tnl = (char)zS->zTeamName()->getLength();
+	int len = 55 + snl + tnl;
+	char* bytes = new char[len];
+	bytes[0] = 0;
+	*(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->getSchadenBekommen();
+	*(int*)(bytes + 19 + snl + tnl) = zS->getSchadenGemacht();
+	*(int*)(bytes + 23 + snl + tnl) = zS->getTreibstoffVerbraucht();
+	*(int*)(bytes + 27 + snl + tnl) = zS->getShots();
+	*(int*)(bytes + 31 + snl + tnl) = zS->getTreffer();
+	*(int*)(bytes + 35 + snl + tnl) = zS->getPunkte();
+	*(int*)(bytes + 39 + snl + tnl) = zS->getKills();
+	*(int*)(bytes + 43 + snl + tnl) = zS->getTode();
+	*(int*)(bytes + 47 + snl + tnl) = zS->getZeitAmLeben();
+	*(int*)(bytes + 51 + snl + tnl) = zS->getZeitTod();
+	klient->statistikNachricht((short)len, bytes);
+	delete[] bytes;
 }
 
-void Klient::sendeTeamStatistik( TeamStatistik *zS )
+void Klient::sendeTeamStatistik(TeamStatistik* zS)
 {
-    if( !zS || !klient )
-        return;
-    char tnl = (char)zS->zTeamName()->getLength();
-    int len = 43 + tnl;
-    char *bytes = new char[ len ];
-    bytes[ 0 ] = 1;
-    *(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->getSchadenBekommen();
-    *(int *)( bytes + 14 + tnl ) = zS->getSchadenGemacht();
-    *(int *)( bytes + 18 + tnl ) = zS->getTreibstoffVerbraucht();
-    *(int *)( bytes + 22 + tnl ) = zS->getShots();
-    *(int *)( bytes + 26 + tnl ) = zS->getTreffer();
-    *(int *)( bytes + 30 + tnl ) = zS->getPunkte();
-    *(int *)( bytes + 34 + tnl ) = zS->getKills();
-    *(int *)( bytes + 38 + tnl ) = zS->getTode();
-    *( bytes + 42 + tnl ) = (char)zS->hatGewonnen();
-    klient->statistikNachricht( (short)len, bytes );
-    delete[] bytes;
+	if (!zS || !klient)
+		return;
+	char tnl = (char)zS->zTeamName()->getLength();
+	int len = 43 + tnl;
+	char* bytes = new char[len];
+	bytes[0] = 1;
+	*(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->getSchadenBekommen();
+	*(int*)(bytes + 14 + tnl) = zS->getSchadenGemacht();
+	*(int*)(bytes + 18 + tnl) = zS->getTreibstoffVerbraucht();
+	*(int*)(bytes + 22 + tnl) = zS->getShots();
+	*(int*)(bytes + 26 + tnl) = zS->getTreffer();
+	*(int*)(bytes + 30 + tnl) = zS->getPunkte();
+	*(int*)(bytes + 34 + tnl) = zS->getKills();
+	*(int*)(bytes + 38 + tnl) = zS->getTode();
+	*(bytes + 42 + tnl) = (char)zS->hatGewonnen();
+	klient->statistikNachricht((short)len, bytes);
+	delete[] bytes;
 }
 
 void Klient::sendeStatistikLadenFertig()
 {
-    if( !klient )
-        return;
-    char byte = 2;
-    klient->statistikNachricht( 1, &byte );
+	if (!klient)
+		return;
+	char byte = 2;
+	klient->statistikNachricht(1, &byte);
 }
 
 // constant
 bool Klient::istOnline() const
 {
-    return klient != 0;
+	return klient != 0;
 }

+ 33 - 33
Asteroids/SSKlient.h

@@ -15,41 +15,41 @@ 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 sendeInit( RCArray< Spieler > *zSpieler, int spielZeit );
-    void sendeSpielerNummer( int sNum, int spielZeit );
-    void sendeStart( int spielZeit );
-    void sendeTastaturStatus( int spielerId, TastaturStatus ts, bool aktiv, int spielZeit );
-    void sendeSkillNachricht( int sNum, char art, int spielZeit );
-    void sendeUseSkillNachricht( int sNum, char id, int spielZeit );
-    void sendeAsteroid( int id, Vertex pos, Vertex speed, float rot, float rotS, int index, int spielZeit );
-    void sendeSchuss( int id, int sNum, Vertex pos, Vertex speed, double intensity, int spielZeit );
-    void sendePixel( int asteroid, int pixelId, int spielZeit );
-    void sendeEp( int pixelId, int spielerId, int spielZeit );
-    void sendeTreffer( int id, int sNum, int spielZeit, float ep, int skillP );
-    void sendeObjektTreffer( int id, int oId, int spielZeit, float ep, int skillP );
-    void sendeObjektTod( int oId, int killSNum, int spielZeit );
-    void sendeAsteroidTreffer( int asteroidId, int newAsteroidId, int schussId, Vertex pos, __int64 seed, int spielZeit, float ep, int skillP );
-    void sendeWiederbelebung( int sNum, int spielZeit );
-    void sendeTod( int sNum, int killSNum, int spielZeit );
-    void sendeSpielEnde( char gewonnen, int spielZeit );
-    void sendeChatNachricht( char *txt, int spielZeit );
-    void sendeStatistikChatNachricht( int vonAccount, char *txt );
-    void sendeStatistikSpielerOffline( int account );
-    void sendeSpielerStatistik( SpielerStatistik *zS );
-    void sendeTeamStatistik( TeamStatistik *zS );
-    void sendeStatistikLadenFertig();
-    // constant
-    bool istOnline() const;
+	// Konstruktor
+	Klient(SSKlientV* klient);
+	// Destruktor
+	~Klient();
+	// nicht constant
+	void offline();
+	void online(SSKlientV* zKlient);
+	void sendeInit(RCArray< Spieler >* zSpieler, int spielZeit);
+	void sendeSpielerNummer(int sNum, int spielZeit);
+	void sendeStart(int spielZeit);
+	void sendeTastaturStatus(int spielerId, TastaturStatus ts, bool aktiv, int spielZeit);
+	void sendeSkillNachricht(int sNum, char art, int spielZeit);
+	void sendeUseSkillNachricht(int sNum, char id, int spielZeit);
+	void sendeAsteroid(int id, Vertex pos, Vertex speed, float rot, float rotS, int index, int spielZeit);
+	void sendeSchuss(int id, int sNum, Vertex pos, Vertex speed, double intensity, int spielZeit);
+	void sendePixel(int asteroid, int pixelId, int spielZeit);
+	void sendeEp(int pixelId, int spielerId, int spielZeit);
+	void sendeTreffer(int id, int sNum, int spielZeit, float ep, int skillP);
+	void sendeObjektTreffer(int id, int oId, int spielZeit, float ep, int skillP);
+	void sendeObjektTod(int oId, int killSNum, int spielZeit);
+	void sendeAsteroidTreffer(int asteroidId, int newAsteroidId, int schussId, Vertex pos, __int64 seed, int spielZeit, float ep, int skillP);
+	void sendeWiederbelebung(int sNum, int spielZeit);
+	void sendeTod(int sNum, int killSNum, int spielZeit);
+	void sendeSpielEnde(char gewonnen, int spielZeit);
+	void sendeChatNachricht(const char* txt, int spielZeit);
+	void sendeStatistikChatNachricht(int vonAccount, char* txt);
+	void sendeStatistikSpielerOffline(int account);
+	void sendeSpielerStatistik(SpielerStatistik* zS);
+	void sendeTeamStatistik(TeamStatistik* zS);
+	void sendeStatistikLadenFertig();
+	// constant
+	bool istOnline() const;
 };
 
 #endif

+ 73 - 73
Asteroids/SpielerStatistik.cpp

@@ -3,150 +3,150 @@
 // Inhalt der SpielerStatistik Klasse aus SpielerStatistik.h
 // Konstruktor
 SpielerStatistik::SpielerStatistik()
-    : ReferenceCounter()
-{
-    spielerNummer = 0;
-    spielerName = new Text();
-    teamName = new Text();
-    spielerFarbe = 0;
-    teamFarbe = 0;
-    schadenBekommen = 0;
-    schadenGemacht = 0;
-    treibstoffVerbraucht = 0;
-    shots = 0;
-    treffer = 0;
-    punkte = 0;
-    kills = 0;
-    tode = 0;
-    zeitAmLeben = 0;
-    zeitTod = 0;
+	: ReferenceCounter()
+{
+	spielerNummer = 0;
+	spielerName = new Text();
+	teamName = new Text();
+	spielerFarbe = 0;
+	teamFarbe = 0;
+	schadenBekommen = 0;
+	schadenGemacht = 0;
+	treibstoffVerbraucht = 0;
+	shots = 0;
+	treffer = 0;
+	punkte = 0;
+	kills = 0;
+	tode = 0;
+	zeitAmLeben = 0;
+	zeitTod = 0;
 }
 
 // Destruktor
 SpielerStatistik::~SpielerStatistik()
 {
-    spielerName->release();
-    teamName->release();
+	spielerName->release();
+	teamName->release();
 }
 
 // nicht constant
-void SpielerStatistik::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( "SchadenBekommen" ) )
-        schadenBekommen = *dat->zWert( "SchadenBekommen" );
-    if( dat->wertExistiert( "SchadenGemacht" ) )
-        schadenGemacht = *dat->zWert( "SchadenGemacht" );
-    if( dat->wertExistiert( "TreibstoffVerbraucht" ) )
-        treibstoffVerbraucht = *dat->zWert( "TreibstoffVerbraucht" );
-    if( dat->wertExistiert( "Schüsse" ) )
-        shots = *dat->zWert( "Schüsse" );
-    if( dat->wertExistiert( "Treffer" ) )
-        treffer = *dat->zWert( "Treffer" );
-    if( dat->wertExistiert( "Punkte" ) )
-        punkte = *dat->zWert( "Punkte" );
-    if( dat->wertExistiert( "Kills" ) )
-        kills = *dat->zWert( "Kills" );
-    if( dat->wertExistiert( "Tode" ) )
-        tode = *dat->zWert( "Tode" );
-    if( dat->wertExistiert( "ZeitAmLeben" ) )
-        zeitAmLeben = *dat->zWert( "ZeitAmLeben" );
-    if( dat->wertExistiert( "ZeitTod" ) )
-        zeitTod = *dat->zWert( "ZeitTod" );
-    dat->release();
+void SpielerStatistik::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("SchadenBekommen"))
+		schadenBekommen = (int)*dat->zWert("SchadenBekommen");
+	if (dat->wertExistiert("SchadenGemacht"))
+		schadenGemacht = (int)*dat->zWert("SchadenGemacht");
+	if (dat->wertExistiert("TreibstoffVerbraucht"))
+		treibstoffVerbraucht = (int)*dat->zWert("TreibstoffVerbraucht");
+	if (dat->wertExistiert("Schüsse"))
+		shots = (int)*dat->zWert("Schüsse");
+	if (dat->wertExistiert("Treffer"))
+		treffer = (int)*dat->zWert("Treffer");
+	if (dat->wertExistiert("Punkte"))
+		punkte = (int)*dat->zWert("Punkte");
+	if (dat->wertExistiert("Kills"))
+		kills = (int)*dat->zWert("Kills");
+	if (dat->wertExistiert("Tode"))
+		tode = (int)*dat->zWert("Tode");
+	if (dat->wertExistiert("ZeitAmLeben"))
+		zeitAmLeben = (int)*dat->zWert("ZeitAmLeben");
+	if (dat->wertExistiert("ZeitTod"))
+		zeitTod = (int)*dat->zWert("ZeitTod");
+	dat->release();
 }
 
 // constant
 int SpielerStatistik::getSpielerNummer() const
 {
-    return spielerNummer;
+	return spielerNummer;
 }
 
-Text *SpielerStatistik::getSpielerName() const
+Text* SpielerStatistik::getSpielerName() const
 {
-    return spielerName ? dynamic_cast<Text *>( spielerName->getThis() ) : 0;
+	return spielerName ? dynamic_cast<Text*>(spielerName->getThis()) : 0;
 }
 
-Text *SpielerStatistik::zSpielerName() const
+Text* SpielerStatistik::zSpielerName() const
 {
-    return spielerName;
+	return spielerName;
 }
 
-Text *SpielerStatistik::getTeamName() const
+Text* SpielerStatistik::getTeamName() const
 {
-    return teamName ? dynamic_cast<Text *>( teamName->getThis() ) : 0;
+	return teamName ? dynamic_cast<Text*>(teamName->getThis()) : 0;
 }
 
-Text *SpielerStatistik::zTeamName() const
+Text* SpielerStatistik::zTeamName() const
 {
-    return teamName;
+	return teamName;
 }
 
 int SpielerStatistik::getSpielerFarbe() const
 {
-    return spielerFarbe;
+	return spielerFarbe;
 }
 
 int SpielerStatistik::getTeamFarbe() const
 {
-    return teamFarbe;
+	return teamFarbe;
 }
 
 int SpielerStatistik::getSchadenBekommen() const
 {
-    return schadenBekommen;
+	return schadenBekommen;
 }
 
 int SpielerStatistik::getSchadenGemacht() const
 {
-    return schadenGemacht;
+	return schadenGemacht;
 }
 
 int SpielerStatistik::getTreibstoffVerbraucht() const
 {
-    return treibstoffVerbraucht;
+	return treibstoffVerbraucht;
 }
 
 int SpielerStatistik::getShots() const
 {
-    return shots;
+	return shots;
 }
 
 int SpielerStatistik::getTreffer() const
 {
-    return treffer;
+	return treffer;
 }
 
 int SpielerStatistik::getPunkte() const
 {
-    return punkte;
+	return punkte;
 }
 
 int SpielerStatistik::getZeitAmLeben() const
 {
-    return zeitAmLeben;
+	return zeitAmLeben;
 }
 
 int SpielerStatistik::getZeitTod() const
 {
-    return zeitTod;
+	return zeitTod;
 }
 
 int SpielerStatistik::getKills() const
 {
-    return kills;
+	return kills;
 }
 
 int SpielerStatistik::getTode() const
 {
-    return tode;
+	return tode;
 }

+ 158 - 159
Asteroids/Strukturen.cpp

@@ -5,206 +5,205 @@
 
 // Inhalt der RessourceStr Klasse aus Strukturen.h
 // Konstruktor
-RessourceStr::RessourceStr( Datei *zDatei, SSDatenbankV *zDb, char *tmpPfad, int kId )
-    : ReferenceCounter()
+RessourceStr::RessourceStr(Datei* zDatei, SSDatenbankV* zDb, const char* tmpPfad, int kId)
+	: ReferenceCounter()
 {
-    zDatei->lese( (char *)&id, 4 );
-    char len = 0;
-    zDatei->lese( &len, 1 );
-    Text txt;
-    txt.fillText( '0', len + 1 );
-    zDatei->lese( txt, len );
-    txt.getText()[ (int)len ] = 0;
-    pfad = 0;
-    if( txt.positionVon( "spiel:" ) == 0 )
-    {
-        pfad = zDb->getSpielPfad( kId );
-        if( pfad )
-            pfad->append( txt.getTeilText( 6 ) );
-    }
-    if( txt.positionVon( "map:" ) == 0 )
-    {
-        pfad = new Text( tmpPfad );
-        pfad->append( "map/files" );
-        pfad->append( txt.getTeilText( 4 ) );
-    }
-    m2d = 0;
-    bild = 0;
-    if( pfad && pfad->hat( ".m2/" ) )
-    {
-        int pos = pfad->positionVon( ".m2/", pfad->anzahlVon( ".m2/" ) - 1 );
-        M2Datei *datei = new M2Datei( pfad->getTeilText( 0, pos + 3 ) );
-        datei->leseDaten();
-        m2d = datei->ladeModel( pfad->getTeilText( pos + 4 ) );
-        datei->release();
-    }
+	zDatei->lese((char*)&id, 4);
+	char len = 0;
+	zDatei->lese(&len, 1);
+	Text txt;
+	txt.fillText('0', len + 1);
+	zDatei->lese((char*)txt.getText(), len);
+	pfad = 0;
+	if (txt.positionVon("spiel:") == 0)
+	{
+		pfad = zDb->getSpielPfad(kId);
+		if (pfad)
+			pfad->append(txt.getTeilText(6));
+	}
+	if (txt.positionVon("map:") == 0)
+	{
+		pfad = new Text(tmpPfad);
+		pfad->append("map/files");
+		pfad->append(txt.getTeilText(4));
+	}
+	m2d = 0;
+	bild = 0;
+	if (pfad && pfad->hat(".m2/"))
+	{
+		int pos = pfad->positionVon(".m2/", pfad->anzahlVon(".m2/") - 1);
+		M2Datei* datei = new M2Datei(pfad->getTeilText(0, pos + 3));
+		datei->leseDaten();
+		m2d = datei->ladeModel(pfad->getTeilText(pos + 4));
+		datei->release();
+	}
 }
 
 // Destruktor
 RessourceStr::~RessourceStr()
 {
-    if( pfad )
-        pfad->release();
-    if( m2d )
-        m2d->release();
-    if( bild )
-        bild->release();
+	if (pfad)
+		pfad->release();
+	if (m2d)
+		m2d->release();
+	if (bild)
+		bild->release();
 }
 
 // constant
 int RessourceStr::getId() const
 {
-    return id;
+	return id;
 }
 
-Model2DData *RessourceStr::zReccourceM2() const
+Model2DData* RessourceStr::zReccourceM2() const
 {
-    return m2d;
+	return m2d;
 }
 
-Bild *RessourceStr::zReccourceTxt() const
+Bild* RessourceStr::zReccourceTxt() const
 {
-    return bild;
+	return bild;
 }
 
 
 // Inhalt der ObjektStr Klasse aus Strukturen.h
 // Konstruktor
-ObjektStr::ObjektStr( Datei *zDatei )
-    : ReferenceCounter()
+ObjektStr::ObjektStr(Datei* zDatei)
+	: ReferenceCounter()
 {
-    if( zDatei )
-    {
-        zDatei->lese( (char *)&pos.x, 4 );
-        zDatei->lese( (char *)&pos.y, 4 );
-        zDatei->lese( (char *)&rot, 4 );
-        zDatei->lese( (char *)&scale, 4 );
-        zDatei->lese( (char *)&id, 4 );
-        zDatei->lese( (char *)&m2d, 4 );
-        zDatei->lese( (char *)&bild, 4 );
-        zDatei->lese( (char *)&style, 4 );
-        zDatei->lese( (char *)&maxStability, 4 );
-        zDatei->lese( (char *)&maxEnergie, 4 );
-        zDatei->lese( (char *)&energieRadius, 4 );
-        zDatei->lese( (char *)&reparatur, 8 );
-        zDatei->lese( (char *)&akkuLeistung, 8 );
-        zDatei->lese( &team, 1 );
-    }
+	if (zDatei)
+	{
+		zDatei->lese((char*)&pos.x, 4);
+		zDatei->lese((char*)&pos.y, 4);
+		zDatei->lese((char*)&rot, 4);
+		zDatei->lese((char*)&scale, 4);
+		zDatei->lese((char*)&id, 4);
+		zDatei->lese((char*)&m2d, 4);
+		zDatei->lese((char*)&bild, 4);
+		zDatei->lese((char*)&style, 4);
+		zDatei->lese((char*)&maxStability, 4);
+		zDatei->lese((char*)&maxEnergie, 4);
+		zDatei->lese((char*)&energieRadius, 4);
+		zDatei->lese((char*)&reparatur, 8);
+		zDatei->lese((char*)&akkuLeistung, 8);
+		zDatei->lese(&team, 1);
+	}
 }
 
-void ObjektStr::save( Datei *zDatei ) const
+void ObjektStr::save(Datei* zDatei) const
 {
-    zDatei->schreibe( (char *)&pos.x, 4 );
-    zDatei->schreibe( (char *)&pos.y, 4 );
-    zDatei->schreibe( (char *)&rot, 4 );
-    zDatei->schreibe( (char *)&scale, 4 );
-    zDatei->schreibe( (char *)&id, 4 );
-    zDatei->schreibe( (char *)&m2d, 4 );
-    zDatei->schreibe( (char *)&bild, 4 );
-    zDatei->schreibe( (char *)&style, 4 );
-    zDatei->schreibe( (char *)&maxStability, 4 );
-    zDatei->schreibe( (char *)&maxEnergie, 4 );
-    zDatei->schreibe( (char *)&energieRadius, 4 );
-    zDatei->schreibe( (char *)&reparatur, 8 );
-    zDatei->schreibe( (char *)&akkuLeistung, 8 );
-    zDatei->schreibe( (char *)&team, 1 );
+	zDatei->schreibe((char*)&pos.x, 4);
+	zDatei->schreibe((char*)&pos.y, 4);
+	zDatei->schreibe((char*)&rot, 4);
+	zDatei->schreibe((char*)&scale, 4);
+	zDatei->schreibe((char*)&id, 4);
+	zDatei->schreibe((char*)&m2d, 4);
+	zDatei->schreibe((char*)&bild, 4);
+	zDatei->schreibe((char*)&style, 4);
+	zDatei->schreibe((char*)&maxStability, 4);
+	zDatei->schreibe((char*)&maxEnergie, 4);
+	zDatei->schreibe((char*)&energieRadius, 4);
+	zDatei->schreibe((char*)&reparatur, 8);
+	zDatei->schreibe((char*)&akkuLeistung, 8);
+	zDatei->schreibe((char*)&team, 1);
 }
 
 
 // Inhalt der SpielerStr Klasse aus Strukturen.h
 // Konstruktor
-SpielerStr::SpielerStr( Datei *zDatei )
-    : ReferenceCounter()
+SpielerStr::SpielerStr(Datei* zDatei)
+	: ReferenceCounter()
 {
-    if( zDatei )
-    {
-        zDatei->lese( (char *)&id, 4 );
-        zDatei->lese( (char *)&pos.x, 4 );
-        zDatei->lese( (char *)&pos.y, 4 );
-        zDatei->lese( (char *)&rot, 8 );
-        zDatei->lese( (char *)&beschleunigung, 8 );
-        zDatei->lese( (char *)&maxStability, 4 );
-        zDatei->lese( (char *)&maxEnergie, 4 );
-        zDatei->lese( (char *)&reparatur, 8 );
-        zDatei->lese( (char *)&akkuLeistung, 8 );
-        zDatei->lese( (char *)&laserIntensity, 4 );
-        zDatei->lese( (char *)&laserEffizienz, 4 );
-        zDatei->lese( (char *)&laserTempo, 4 );
-        zDatei->lese( (char *)&wendigkeit, 8 );
-        zDatei->lese( (char *)&antriebEffizienz, 8 );
-        zDatei->lese( (char *)&energieSchild, 8 );
-        zDatei->lese( (char *)&energieSchildEffizienz, 8 );
-        zDatei->lese( (char *)&netzwerk, 4 );
-        zDatei->lese( (char *)&skillPunkte, 4 );
-        zDatei->lese( (char *)&m2d, 4 );
-        zDatei->lese( (char *)&bild, 4 );
-    }
+	if (zDatei)
+	{
+		zDatei->lese((char*)&id, 4);
+		zDatei->lese((char*)&pos.x, 4);
+		zDatei->lese((char*)&pos.y, 4);
+		zDatei->lese((char*)&rot, 8);
+		zDatei->lese((char*)&beschleunigung, 8);
+		zDatei->lese((char*)&maxStability, 4);
+		zDatei->lese((char*)&maxEnergie, 4);
+		zDatei->lese((char*)&reparatur, 8);
+		zDatei->lese((char*)&akkuLeistung, 8);
+		zDatei->lese((char*)&laserIntensity, 4);
+		zDatei->lese((char*)&laserEffizienz, 4);
+		zDatei->lese((char*)&laserTempo, 4);
+		zDatei->lese((char*)&wendigkeit, 8);
+		zDatei->lese((char*)&antriebEffizienz, 8);
+		zDatei->lese((char*)&energieSchild, 8);
+		zDatei->lese((char*)&energieSchildEffizienz, 8);
+		zDatei->lese((char*)&netzwerk, 4);
+		zDatei->lese((char*)&skillPunkte, 4);
+		zDatei->lese((char*)&m2d, 4);
+		zDatei->lese((char*)&bild, 4);
+	}
 }
 
-void SpielerStr::save( Datei *zDatei ) const
+void SpielerStr::save(Datei* zDatei) const
 {
-    zDatei->schreibe( (char *)&id, 4 );
-    zDatei->schreibe( (char *)&pos.x, 4 );
-    zDatei->schreibe( (char *)&pos.y, 4 );
-    zDatei->schreibe( (char *)&rot, 8 );
-    zDatei->schreibe( (char *)&beschleunigung, 8 );
-    zDatei->schreibe( (char *)&maxStability, 4 );
-    zDatei->schreibe( (char *)&maxEnergie, 4 );
-    zDatei->schreibe( (char *)&reparatur, 8 );
-    zDatei->schreibe( (char *)&akkuLeistung, 8 );
-    zDatei->schreibe( (char *)&laserIntensity, 4 );
-    zDatei->schreibe( (char *)&laserEffizienz, 4 );
-    zDatei->schreibe( (char *)&laserTempo, 4 );
-    zDatei->schreibe( (char *)&wendigkeit, 8 );
-    zDatei->schreibe( (char *)&antriebEffizienz, 8 );
-    zDatei->schreibe( (char *)&energieSchild, 8 );
-    zDatei->schreibe( (char *)&energieSchildEffizienz, 8 );
-    zDatei->schreibe( (char *)&netzwerk, 4 );
-    zDatei->schreibe( (char *)&skillPunkte, 4 );
-    zDatei->schreibe( (char *)&m2d, 4 );
-    zDatei->schreibe( (char *)&bild, 4 );
+	zDatei->schreibe((char*)&id, 4);
+	zDatei->schreibe((char*)&pos.x, 4);
+	zDatei->schreibe((char*)&pos.y, 4);
+	zDatei->schreibe((char*)&rot, 8);
+	zDatei->schreibe((char*)&beschleunigung, 8);
+	zDatei->schreibe((char*)&maxStability, 4);
+	zDatei->schreibe((char*)&maxEnergie, 4);
+	zDatei->schreibe((char*)&reparatur, 8);
+	zDatei->schreibe((char*)&akkuLeistung, 8);
+	zDatei->schreibe((char*)&laserIntensity, 4);
+	zDatei->schreibe((char*)&laserEffizienz, 4);
+	zDatei->schreibe((char*)&laserTempo, 4);
+	zDatei->schreibe((char*)&wendigkeit, 8);
+	zDatei->schreibe((char*)&antriebEffizienz, 8);
+	zDatei->schreibe((char*)&energieSchild, 8);
+	zDatei->schreibe((char*)&energieSchildEffizienz, 8);
+	zDatei->schreibe((char*)&netzwerk, 4);
+	zDatei->schreibe((char*)&skillPunkte, 4);
+	zDatei->schreibe((char*)&m2d, 4);
+	zDatei->schreibe((char*)&bild, 4);
 }
 
 // Inhalt der TeamStr Klasse aus Strukturen.h
 // Konstruktor
-TeamStr::TeamStr( Datei *zDatei )
-    : ReferenceCounter()
+TeamStr::TeamStr(Datei* zDatei)
+	: ReferenceCounter()
 {
-    if( zDatei )
-    {
-        zDatei->lese( (char *)&id, 4 );
-        zDatei->lese( (char *)&maxPunkte, 4 );
-        zDatei->lese( (char *)&beschleunigung, 8 );
-        zDatei->lese( (char *)&maxStability, 4 );
-        zDatei->lese( (char *)&maxEnergie, 4 );
-        zDatei->lese( (char *)&reparatur, 8 );
-        zDatei->lese( (char *)&akkuLeistung, 8 );
-        zDatei->lese( (char *)&laserIntensity, 4 );
-        zDatei->lese( (char *)&laserEffizienz, 4 );
-        zDatei->lese( (char *)&laserTempo, 4 );
-        zDatei->lese( (char *)&wendigkeit, 8 );
-        zDatei->lese( (char *)&antriebEffizienz, 8 );
-        zDatei->lese( (char *)&energieSchild, 8 );
-        zDatei->lese( (char *)&energieSchildEffizienz, 8 );
-        zDatei->lese( (char *)&punkte, 4 );
-    }
+	if (zDatei)
+	{
+		zDatei->lese((char*)&id, 4);
+		zDatei->lese((char*)&maxPunkte, 4);
+		zDatei->lese((char*)&beschleunigung, 8);
+		zDatei->lese((char*)&maxStability, 4);
+		zDatei->lese((char*)&maxEnergie, 4);
+		zDatei->lese((char*)&reparatur, 8);
+		zDatei->lese((char*)&akkuLeistung, 8);
+		zDatei->lese((char*)&laserIntensity, 4);
+		zDatei->lese((char*)&laserEffizienz, 4);
+		zDatei->lese((char*)&laserTempo, 4);
+		zDatei->lese((char*)&wendigkeit, 8);
+		zDatei->lese((char*)&antriebEffizienz, 8);
+		zDatei->lese((char*)&energieSchild, 8);
+		zDatei->lese((char*)&energieSchildEffizienz, 8);
+		zDatei->lese((char*)&punkte, 4);
+	}
 }
 
-void TeamStr::save( Datei *zDatei ) const
+void TeamStr::save(Datei* zDatei) const
 {
-    zDatei->schreibe( (char *)&id, 4 );
-    zDatei->schreibe( (char *)&maxPunkte, 4 );
-    zDatei->schreibe( (char *)&beschleunigung, 8 );
-    zDatei->schreibe( (char *)&maxStability, 4 );
-    zDatei->schreibe( (char *)&maxEnergie, 4 );
-    zDatei->schreibe( (char *)&reparatur, 8 );
-    zDatei->schreibe( (char *)&akkuLeistung, 8 );
-    zDatei->schreibe( (char *)&laserIntensity, 4 );
-    zDatei->schreibe( (char *)&laserEffizienz, 4 );
-    zDatei->schreibe( (char *)&laserTempo, 4 );
-    zDatei->schreibe( (char *)&wendigkeit, 8 );
-    zDatei->schreibe( (char *)&antriebEffizienz, 8 );
-    zDatei->schreibe( (char *)&energieSchild, 8 );
-    zDatei->schreibe( (char *)&energieSchildEffizienz, 8 );
-    zDatei->schreibe( (char *)&punkte, 4 );
+	zDatei->schreibe((char*)&id, 4);
+	zDatei->schreibe((char*)&maxPunkte, 4);
+	zDatei->schreibe((char*)&beschleunigung, 8);
+	zDatei->schreibe((char*)&maxStability, 4);
+	zDatei->schreibe((char*)&maxEnergie, 4);
+	zDatei->schreibe((char*)&reparatur, 8);
+	zDatei->schreibe((char*)&akkuLeistung, 8);
+	zDatei->schreibe((char*)&laserIntensity, 4);
+	zDatei->schreibe((char*)&laserEffizienz, 4);
+	zDatei->schreibe((char*)&laserTempo, 4);
+	zDatei->schreibe((char*)&wendigkeit, 8);
+	zDatei->schreibe((char*)&antriebEffizienz, 8);
+	zDatei->schreibe((char*)&energieSchild, 8);
+	zDatei->schreibe((char*)&energieSchildEffizienz, 8);
+	zDatei->schreibe((char*)&punkte, 4);
 }

+ 68 - 68
Asteroids/Strukturen.h

@@ -11,94 +11,94 @@ using namespace Framework;
 class RessourceStr : public virtual ReferenceCounter
 {
 private:
-    int id;
-    Model2DData *m2d;
-    Bild *bild;
-    Text *pfad;
+	int id;
+	Model2DData* m2d;
+	Bild* bild;
+	Text* pfad;
 
 public:
-    // Konstruktor
-    RessourceStr( Datei *zDatei, SSDatenbankV *zDb, char *tmpPfad, int kId );
-    // Destruktor
-    ~RessourceStr();
-    // constant
-    int getId() const;
-    Model2DData *zReccourceM2() const;
-    Bild *zReccourceTxt() const;
+	// Konstruktor
+	RessourceStr(Datei* zDatei, SSDatenbankV* zDb, const char* tmpPfad, int kId);
+	// Destruktor
+	~RessourceStr();
+	// constant
+	int getId() const;
+	Model2DData* zReccourceM2() const;
+	Bild* zReccourceTxt() const;
 };
 
 class ObjektStr : public virtual ReferenceCounter
 {
 public:
-    Punkt pos;
-    float rot;
-    float scale;
-    int id;
-    int m2d;
-    int bild;
-    int style;
-    int maxStability;
-    int maxEnergie;
-    int energieRadius;
-    double reparatur;
-    double akkuLeistung;
-    char team;
+	Punkt pos;
+	float rot;
+	float scale;
+	int id;
+	int m2d;
+	int bild;
+	int style;
+	int maxStability;
+	int maxEnergie;
+	int energieRadius;
+	double reparatur;
+	double akkuLeistung;
+	char team;
 
-    // Konstruktor
-    ObjektStr( Datei *zDatei );
-    void save( Datei *zDatei ) const;
+	// Konstruktor
+	ObjektStr(Datei* zDatei);
+	void save(Datei* zDatei) const;
 };
 
 class SpielerStr : public virtual ReferenceCounter
 {
 public:
-    int id;
-    Punkt pos;
-    double rot;
-    double beschleunigung;
-    int maxStability;
-    int maxEnergie;
-    double reparatur;
-    double akkuLeistung;
-    int laserIntensity;
-    int laserEffizienz;
-    int laserTempo;
-    double wendigkeit;
-    double antriebEffizienz;
-    double energieSchild;
-    double energieSchildEffizienz;
-    int netzwerk;
-    int skillPunkte;
-    int m2d;
-    int bild;
+	int id;
+	Punkt pos;
+	double rot;
+	double beschleunigung;
+	int maxStability;
+	int maxEnergie;
+	double reparatur;
+	double akkuLeistung;
+	int laserIntensity;
+	int laserEffizienz;
+	int laserTempo;
+	double wendigkeit;
+	double antriebEffizienz;
+	double energieSchild;
+	double energieSchildEffizienz;
+	int netzwerk;
+	int skillPunkte;
+	int m2d;
+	int bild;
 
-    // Konstruktor
-    SpielerStr( Datei *zDatei );
-    void save( Datei *zDatei ) const;
+	// Konstruktor
+	SpielerStr(Datei* zDatei);
+	void save(Datei* zDatei) const;
 };
 
 class TeamStr : public virtual ReferenceCounter
 {
 public:
-    int id;
-    int maxPunkte;
-    double beschleunigung;
-    int maxStability;
-    int maxEnergie;
-    double reparatur;
-    double akkuLeistung;
-    int laserIntensity;
-    int laserEffizienz;
-    int laserTempo;
-    double wendigkeit;
-    double antriebEffizienz;
-    double energieSchild;
-    double energieSchildEffizienz;
-    int punkte;
+	int id;
+	int maxPunkte;
+	double beschleunigung;
+	int maxStability;
+	int maxEnergie;
+	double reparatur;
+	double akkuLeistung;
+	int laserIntensity;
+	int laserEffizienz;
+	int laserTempo;
+	double wendigkeit;
+	double antriebEffizienz;
+	double energieSchild;
+	double energieSchildEffizienz;
+	int punkte;
 
-    // Konstruktor
-    TeamStr( Datei *zDatei );
-    void save( Datei *zDatei ) const;
+	// Konstruktor
+	TeamStr(Datei* zDatei);
+	void save(Datei* zDatei) const;
 };
 
 #endif

+ 83 - 83
Asteroids/Team.cpp

@@ -2,147 +2,147 @@
 
 // Inhalt der Team Klasse aus Team.h
 // Konstruktor
-Team::Team( int f, char* n, TeamStr* zStr )
-    : ReferenceCounter()
+Team::Team(int f, const char* n, TeamStr* zStr)
+	: ReferenceCounter()
 {
-    id = zStr->id;
-    farbe = f;
-    name = n;
-    spieler = new RCArray< Spieler >();
-    punkte = zStr->punkte;
-    maxPunkte = zStr->maxPunkte;
-    maxEnergieS = zStr->maxEnergie;
-    maxStabilityS = zStr->maxStability;
-    reparaturS = zStr->reparatur;
-    laserIntensityS = zStr->laserIntensity;
-    laserEffizienzS = zStr->laserEffizienz;
-    akkuLeistungS = zStr->akkuLeistung;
-    laserTempoS = zStr->laserTempo;
-    beschleunigungS = zStr->beschleunigung;
-    wendigkeitS = zStr->wendigkeit;
-    antriebEffizienzS = zStr->antriebEffizienz;
-    energieSchildS = zStr->energieSchild;
-    energieSchildEffizienzS = zStr->energieSchildEffizienz;
-    reset();
+	id = zStr->id;
+	farbe = f;
+	name = n;
+	spieler = new RCArray< Spieler >();
+	punkte = zStr->punkte;
+	maxPunkte = zStr->maxPunkte;
+	maxEnergieS = zStr->maxEnergie;
+	maxStabilityS = zStr->maxStability;
+	reparaturS = zStr->reparatur;
+	laserIntensityS = zStr->laserIntensity;
+	laserEffizienzS = zStr->laserEffizienz;
+	akkuLeistungS = zStr->akkuLeistung;
+	laserTempoS = zStr->laserTempo;
+	beschleunigungS = zStr->beschleunigung;
+	wendigkeitS = zStr->wendigkeit;
+	antriebEffizienzS = zStr->antriebEffizienz;
+	energieSchildS = zStr->energieSchild;
+	energieSchildEffizienzS = zStr->energieSchildEffizienz;
+	reset();
 }
 
 // Destruktor
 Team::~Team()
 {
-    spieler->release();
+	spieler->release();
 }
 
 // nicht constant
 void Team::reset()
 {
-    spieler->leeren();
-    maxEnergie = maxEnergieS;
-    maxStability = maxStabilityS;
-    reparatur = reparaturS;
-    laserIntensity = laserIntensityS;
-    laserEffizienz = laserEffizienzS;
-    akkuLeistung = akkuLeistungS;
-    laserTempo = laserTempoS;
-    beschleunigung = beschleunigungS;
-    wendigkeit = wendigkeitS;
-    antriebEffizienz = antriebEffizienzS;
-    energieSchild = energieSchildS;
-    energieSchildEffizienz = energieSchildEffizienzS;
+	spieler->leeren();
+	maxEnergie = maxEnergieS;
+	maxStability = maxStabilityS;
+	reparatur = reparaturS;
+	laserIntensity = laserIntensityS;
+	laserEffizienz = laserEffizienzS;
+	akkuLeistung = akkuLeistungS;
+	laserTempo = laserTempoS;
+	beschleunigung = beschleunigungS;
+	wendigkeit = wendigkeitS;
+	antriebEffizienz = antriebEffizienzS;
+	energieSchild = energieSchildS;
+	energieSchildEffizienz = energieSchildEffizienzS;
 }
 
 // constant
 double Team::getMaxEnergieBonus() const
 {
-    double ret = maxEnergieS;
-    for( auto i : *spieler )
-        ret += i->getTeamMaxEnergieBonus();
-    return ret;
+	double ret = maxEnergieS;
+	for (auto i : *spieler)
+		ret += i->getTeamMaxEnergieBonus();
+	return ret;
 }
 
 double Team::getMaxStabilityBonus() const
 {
-    double ret = maxStabilityS;
-    for( auto i : *spieler )
-        ret += i->getTeamMaxStabilityBonus();
-    return ret;
+	double ret = maxStabilityS;
+	for (auto i : *spieler)
+		ret += i->getTeamMaxStabilityBonus();
+	return ret;
 }
 
 double Team::getReperaturBonus() const
 {
-    double ret = reparaturS;
-    for( auto i : *spieler )
-        ret += i->getTeamReparaturBonus();
-    return ret;
+	double ret = reparaturS;
+	for (auto i : *spieler)
+		ret += i->getTeamReparaturBonus();
+	return ret;
 }
 
 double Team::getLaserIntensityBonus() const
 {
-    double ret = laserIntensityS;
-    for( auto i : *spieler )
-        ret += i->getTeamLaserIntensityBonus();
-    return ret;
+	double ret = laserIntensityS;
+	for (auto i : *spieler)
+		ret += i->getTeamLaserIntensityBonus();
+	return ret;
 }
 
 double Team::getLaserEffizienzBonus() const
 {
-    double ret = laserEffizienzS;
-    for( auto i : *spieler )
-        ret += i->getTeamLaserEffizienzBonus();
-    return ret;
+	double ret = laserEffizienzS;
+	for (auto i : *spieler)
+		ret += i->getTeamLaserEffizienzBonus();
+	return ret;
 }
 
 double Team::getAkkuLeistungBonus() const
 {
-    double ret = akkuLeistungS;
-    for( auto i : *spieler )
-        ret += i->getTeamAkkuLeistungBonus();
-    return ret;
+	double ret = akkuLeistungS;
+	for (auto i : *spieler)
+		ret += i->getTeamAkkuLeistungBonus();
+	return ret;
 }
 
 double Team::getLaserTempoBonus() const
 {
-    double ret = laserTempoS;
-    for( auto i : *spieler )
-        ret += i->getTeamLaserTempoBonus();
-    return ret;
+	double ret = laserTempoS;
+	for (auto i : *spieler)
+		ret += i->getTeamLaserTempoBonus();
+	return ret;
 }
 
 double Team::getBeschleunigungBonus() const
 {
-    double ret = beschleunigungS;
-    for( auto i : *spieler )
-        ret += i->getTeamBeschleunigungBonus();
-    return ret;
+	double ret = beschleunigungS;
+	for (auto i : *spieler)
+		ret += i->getTeamBeschleunigungBonus();
+	return ret;
 }
 
 double Team::getWendigkeitBonus() const
 {
-    double ret = wendigkeitS;
-    for( auto i : *spieler )
-        ret += i->getTeamWendigkeitBonus();
-    return ret;
+	double ret = wendigkeitS;
+	for (auto i : *spieler)
+		ret += i->getTeamWendigkeitBonus();
+	return ret;
 }
 
 double Team::getAntriebEffizienzBonus() const
 {
-    double ret = antriebEffizienzS;
-    for( auto i : *spieler )
-        ret += i->getTeamAntriebEffizienzBonus();
-    return ret;
+	double ret = antriebEffizienzS;
+	for (auto i : *spieler)
+		ret += i->getTeamAntriebEffizienzBonus();
+	return ret;
 }
 
 double Team::getEnergieSchildBonus() const
 {
-    double ret = energieSchildS;
-    for( auto i : *spieler )
-        ret += i->getTeamEnergieSchildBonus();
-    return ret;
+	double ret = energieSchildS;
+	for (auto i : *spieler)
+		ret += i->getTeamEnergieSchildBonus();
+	return ret;
 }
 
 double Team::getEnergieSchildEffizienzBonus() const
 {
-    double ret = energieSchildEffizienzS;
-    for( auto i : *spieler )
-        ret += i->getTeamEnergieSchildEffizienzBonus();
-    return ret;
+	double ret = energieSchildEffizienzS;
+	for (auto i : *spieler)
+		ret += i->getTeamEnergieSchildEffizienzBonus();
+	return ret;
 }

+ 50 - 50
Asteroids/Team.h

@@ -8,58 +8,58 @@
 class Team : public virtual ReferenceCounter
 {
 private:
-    double maxEnergieS;
-    double maxStabilityS;
-    double reparaturS;
-    double laserIntensityS;
-    double laserEffizienzS;
-    double akkuLeistungS;
-    double laserTempoS;
-    double beschleunigungS;
-    double wendigkeitS;
-    double antriebEffizienzS;
-    double energieSchildS;
-    double energieSchildEffizienzS;
+	double maxEnergieS;
+	double maxStabilityS;
+	double reparaturS;
+	double laserIntensityS;
+	double laserEffizienzS;
+	double akkuLeistungS;
+	double laserTempoS;
+	double beschleunigungS;
+	double wendigkeitS;
+	double antriebEffizienzS;
+	double energieSchildS;
+	double energieSchildEffizienzS;
 
 public:
-    // variablen
-    int id;
-    int farbe;
-    Text name;
-    RCArray< Spieler > *spieler;
-    int punkte;
-    int maxPunkte;
-    double maxEnergie;
-    double maxStability;
-    double reparatur;
-    double laserIntensity;
-    double laserEffizienz;
-    double akkuLeistung;
-    double laserTempo;
-    double beschleunigung;
-    double wendigkeit;
-    double antriebEffizienz;
-    double energieSchild;
-    double energieSchildEffizienz;
-    // Konstruktor
-    Team( int f, char *n, TeamStr *zStr );
-    // Destruktor
-    ~Team();
-    // nicht constant
-    void reset();
-    // constant
-    double getMaxEnergieBonus() const;
-    double getMaxStabilityBonus() const;
-    double getReperaturBonus() const;
-    double getLaserIntensityBonus() const;
-    double getLaserEffizienzBonus() const;
-    double getAkkuLeistungBonus() const;
-    double getLaserTempoBonus() const;
-    double getBeschleunigungBonus() const;
-    double getWendigkeitBonus() const;
-    double getAntriebEffizienzBonus() const;
-    double getEnergieSchildBonus() const;
-    double getEnergieSchildEffizienzBonus() const;
+	// variablen
+	int id;
+	int farbe;
+	Text name;
+	RCArray< Spieler >* spieler;
+	int punkte;
+	int maxPunkte;
+	double maxEnergie;
+	double maxStability;
+	double reparatur;
+	double laserIntensity;
+	double laserEffizienz;
+	double akkuLeistung;
+	double laserTempo;
+	double beschleunigung;
+	double wendigkeit;
+	double antriebEffizienz;
+	double energieSchild;
+	double energieSchildEffizienz;
+	// Konstruktor
+	Team(int f, const char* n, TeamStr* zStr);
+	// Destruktor
+	~Team();
+	// nicht constant
+	void reset();
+	// constant
+	double getMaxEnergieBonus() const;
+	double getMaxStabilityBonus() const;
+	double getReperaturBonus() const;
+	double getLaserIntensityBonus() const;
+	double getLaserEffizienzBonus() const;
+	double getAkkuLeistungBonus() const;
+	double getLaserTempoBonus() const;
+	double getBeschleunigungBonus() const;
+	double getWendigkeitBonus() const;
+	double getAntriebEffizienzBonus() const;
+	double getEnergieSchildBonus() const;
+	double getEnergieSchildEffizienzBonus() const;
 };
 
 #endif

+ 57 - 57
Asteroids/TeamStatistik.cpp

@@ -3,120 +3,120 @@
 // Inhalt der TeamStatistik Klasse aus TeamStatistik.h
 // Konstruktor
 TeamStatistik::TeamStatistik()
-    : ReferenceCounter()
-{
-    teamNummer = 0;
-    teamName = new Text();
-    teamFarbe = 0;
-    schadenBekommen = 0;
-    schadenGemacht = 0;
-    treibstoffVerbraucht = 0;
-    shots = 0;
-    treffer = 0;
-    punkte = 0;
-    kills = 0;
-    tode = 0;
-    gewonnen = 0;
+	: ReferenceCounter()
+{
+	teamNummer = 0;
+	teamName = new Text();
+	teamFarbe = 0;
+	schadenBekommen = 0;
+	schadenGemacht = 0;
+	treibstoffVerbraucht = 0;
+	shots = 0;
+	treffer = 0;
+	punkte = 0;
+	kills = 0;
+	tode = 0;
+	gewonnen = 0;
 }
 
 // Destruktor
 TeamStatistik::~TeamStatistik()
 {
-    teamName->release();
+	teamName->release();
 }
 
 // nicht constant
-void TeamStatistik::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( "SchadenBekommen" ) )
-        schadenBekommen = *dat->zWert( "SchadenBekommen" );
-    if( dat->wertExistiert( "SchadenGemacht" ) )
-        schadenGemacht = *dat->zWert( "SchadenGemacht" );
-    if( dat->wertExistiert( "TreibstoffVerbraucht" ) )
-        treibstoffVerbraucht = *dat->zWert( "TreibstoffVerbraucht" );
-    if( dat->wertExistiert( "Schüsse" ) )
-        shots = *dat->zWert( "Schüsse" );
-    if( dat->wertExistiert( "Treffer" ) )
-        treffer = *dat->zWert( "Treffer" );
-    if( dat->wertExistiert( "Punkte" ) )
-        punkte = *dat->zWert( "Punkte" );
-    if( dat->wertExistiert( "Kills" ) )
-        kills = *dat->zWert( "Kills" );
-    if( dat->wertExistiert( "Tode" ) )
-        tode = *dat->zWert( "Tode" );
-    if( dat->wertExistiert( "Gewonnen" ) )
-        gewonnen = (int)*dat->zWert( "Tode" ) != 0;
-    dat->release();
+void TeamStatistik::initValues(InitDatei* dat)
+{
+	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("SchadenBekommen"))
+		schadenBekommen = (int)*dat->zWert("SchadenBekommen");
+	if (dat->wertExistiert("SchadenGemacht"))
+		schadenGemacht = (int)*dat->zWert("SchadenGemacht");
+	if (dat->wertExistiert("TreibstoffVerbraucht"))
+		treibstoffVerbraucht = (int)*dat->zWert("TreibstoffVerbraucht");
+	if (dat->wertExistiert("Schüsse"))
+		shots = (int)*dat->zWert("Schüsse");
+	if (dat->wertExistiert("Treffer"))
+		treffer = (int)*dat->zWert("Treffer");
+	if (dat->wertExistiert("Punkte"))
+		punkte = (int)*dat->zWert("Punkte");
+	if (dat->wertExistiert("Kills"))
+		kills = (int)*dat->zWert("Kills");
+	if (dat->wertExistiert("Tode"))
+		tode = (int)*dat->zWert("Tode");
+	if (dat->wertExistiert("Gewonnen"))
+		gewonnen = (int)*dat->zWert("Tode") != 0;
+	dat->release();
 }
 
 // constant
 int TeamStatistik::getTeamNummer() const
 {
-    return teamNummer;
+	return teamNummer;
 }
 
-Text *TeamStatistik::getTeamName() const
+Text* TeamStatistik::getTeamName() const
 {
-    return teamName ? dynamic_cast<Text *>( teamName->getThis() ) : 0;
+	return teamName ? dynamic_cast<Text*>(teamName->getThis()) : 0;
 }
 
-Text *TeamStatistik::zTeamName() const
+Text* TeamStatistik::zTeamName() const
 {
-    return teamName;
+	return teamName;
 }
 
 int TeamStatistik::getTeamFarbe() const
 {
-    return teamFarbe;
+	return teamFarbe;
 }
 
 int TeamStatistik::getSchadenBekommen() const
 {
-    return schadenBekommen;
+	return schadenBekommen;
 }
 
 int TeamStatistik::getSchadenGemacht() const
 {
-    return schadenGemacht;
+	return schadenGemacht;
 }
 
 int TeamStatistik::getTreibstoffVerbraucht() const
 {
-    return treibstoffVerbraucht;
+	return treibstoffVerbraucht;
 }
 
 int TeamStatistik::getShots() const
 {
-    return shots;
+	return shots;
 }
 
 int TeamStatistik::getTreffer() const
 {
-    return treffer;
+	return treffer;
 }
 
 int TeamStatistik::getPunkte() const
 {
-    return punkte;
+	return punkte;
 }
 
 int TeamStatistik::getKills() const
 {
-    return kills;
+	return kills;
 }
 
 int TeamStatistik::getTode() const
 {
-    return tode;
+	return tode;
 }
 
 bool TeamStatistik::hatGewonnen() const
 {
-    return gewonnen;
+	return gewonnen;
 }