#ifndef Spiel_H #define Spiel_H #include "SpielKlasse.h" #include #include "STS.h" #include "Spieler.h" #include "Karte.h" #include "SpielObjekt.h" #include "Asteroid.h" #include #include #include "Pixel.h" class Statistik; class StatistikV; class Spiel : public SpielKlasse { private: RandomGenerator randG; RCArray< Asteroid > *asteroids; RCArray< Model2DData > *asteroidModels; Statistik *stat; RCArray< Team > *teams; int teamAnzahl; Array< int > *zAccounts; RCArray< SSKlientV > *zKlients; RCArray< Spieler > *spieler; RCArray< Laser > *shots; RCArray< SpielObjekt > *objekte; RCArray< Pixel > *pixel; Welt2D *welt; SSDatenbankV *psqldb; int spielId; int karteId; int spielerAnzahl; Karte *karte; CRITICAL_SECTION cs; SpielerTeamStruktur *sts; Datei *log; Text mapPfad; bool isRunning; int spielZeit; bool ende; int nextSchussId; double nextAsteroid; int asteroidId; int pixelId; int ref; // privat int getTeamVonSpieler( int sNum ); public: // Konstruktor Spiel(); // Destruktor ~Spiel(); // nicht constant virtual void setPSQLK( SSDatenbankV *psqldb ); // call 1 virtual void setSpielId( int id ); // call 2 virtual void setKarteId( int karteId ); // call 3 virtual void setTempPfad( char *pfad ); // call 3.5 virtual void setAccounts( int anzahl, Array< int > *zAccounts ); // call 4 virtual void setKlients( int anzahl, RCArray< SSKlientV > *zKlients ); // call 5 virtual void setSpielerNummern( int anzahl, Array< int > *spielerNummern ); // call 6 virtual void klientOffline( int accountId ); virtual void klientOnline( int accountId, SSKlientV *zKlient ); virtual void nachricht( int accountId, int len, char *bytes ); void tick( double zeit ); virtual void run(); // call 7 // constant virtual StatistikV *getStatistik() const; // Reference Counting virtual SpielKlasse *getThis(); virtual SpielKlasse *release(); }; #endif