Просмотр исходного кода

Abstrakte SpielServerClient Klasse hinzugefügt

Kolja Strohm 6 лет назад
Родитель
Сommit
c4f1d604ad
1 измененных файлов с 119 добавлено и 13 удалено
  1. 119 13
      Include/KSGNetwork.h

+ 119 - 13
Include/KSGNetwork.h

@@ -151,6 +151,53 @@ namespace KSGClient
         virtual ChatServerNachricht *release() = 0;
     };
 
+    // Enthält alle Daten zur Team - Spieler Konstalation einer Karte
+    struct SpielerTeamStruktur
+    {
+    protected:
+        int ref; // Reference Counter
+
+    public:
+        int spielerAnzahl; // Die Anzahl der Spieler
+        int teamAnzahl; // Die Anzahl der Teams
+        Framework::Array< int > *spielerFarbe; // Eine Liste mit den Farben für jeden Spieler
+        Framework::Array< int > *teamFarbe; // Eine Liste mit Farben für jedes Team
+        Framework::RCArray< Framework::Text > *teamName; // Eine Liste mit namen für jedes Team
+        Framework::Array< int > *teamGröße; // Eine Liste Mit Spieleranzahlen für jedes Team
+        // Erhöht den Reference Counter um 1 un gibt this zurück
+        virtual SpielerTeamStruktur *getThis() = 0;
+        // Verringert den Reference Counter um 1 und gibt 0 zurück.
+        //  Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst 
+        virtual SpielerTeamStruktur *release() = 0;
+    };
+
+    // Enthält eine Nachricht von dem Spiel Server
+    struct SpielServerNachricht
+    {
+    protected:
+        int ref; // Reference Counter
+
+    public:
+        char type; // Typ der Nachricht
+        char sekunden; // Mit der Nachricht zusammenhängende Sekunden
+        char minuten; // Mit der Nachricht zusammenhängende Minuten
+        char stunden; // Mit der Nachricht zusammenhängende Stunden
+        Framework::Text *message; // Text der Nachricht
+        SpielerTeamStruktur *sts; // Die Spieler Team Struktur eines Spiels
+        int accountId; // Id des Accounts
+        int spielerNummer; // Die Spielernummer des Accounts
+        int karteId; // Die Id der Karte
+        int prozent; // Der Prozentuale Ladefortschritt
+        int ping; // Der Ping des Accounts (1000 = 1 Sekunde)
+        short län; // Länge der gesendeten Daten
+        char *data; // Die gesendeten Daten
+        // Erhöht den Reference Counter um 1 un gibt this zurück
+        virtual SpielServerNachricht *getThis() = 0;
+        // Verringert den Reference Counter um 1 und gibt 0 zurück.
+        //  Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst 
+        virtual SpielServerNachricht *release() = 0;
+    };
+
     // Wird benutzt, um die Verbindung mit den Servern aufrecht zu erhalten. Bei einem Verbindungsabbruch wird der Client automatisch abgemeldet
     class ErhaltungServerClient
     {
@@ -782,52 +829,111 @@ namespace KSGClient
     public:
         // verbindet sich mit dem zugewiesenen Karten Server
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
-        bool verbinde();
+        virtual bool verbinde() = 0;
         // lädt eine Karte herunter und speichert sie unter data/tmp/Karten/{id}/spiel
         //  id: Die Id der Karte
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
-        bool downloadKarte( int id );
+        virtual bool downloadKarte( int id ) = 0;
         // lädt das Titelbild Karte herunter und speichert es unter data/tmp/Karten/{id}/titel.ltdb
         //  id: Die Id der Karte
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
-        bool downloadKarteTitel( int id );
+        virtual bool downloadKarteTitel( int id ) = 0;
         // lädt die Beschreibung Karte herunter und speichert sie unter data/tmp/Karten/{id}/beschreibung.ksgs
         //  id: Die Id der Karte
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
-        bool downloadKarteBeschreibung( int id );
+        virtual bool downloadKarteBeschreibung( int id ) = 0;
         // lädt die Minimap Karte herunter und speichert es unter data/tmp/Karten/{id}/minimap.ltdb
         //  id: Die Id der Karte
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
-        bool downloadKarteMinimap( int id );
+        virtual bool downloadKarteMinimap( int id ) = 0;
         // lädt das Ladebild Karte herunter und speichert es unter data/tmp/Karten/{id}/ladebild.ltdb
         //  id: Die Id der Karte
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
-        bool downloadKarteLadebild( int id );
+        virtual bool downloadKarteLadebild( int id ) = 0;
         // Erhält die Verbindung aufrecht
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
         //  Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
-        bool keepAlive();
+        virtual bool keepAlive() = 0;
         // Trennt die Verbindung zum Server
         //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
         //  Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
-        bool trenne();
+        virtual bool trenne() = 0;
         // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
-        bool istVerbunden() const;
+        virtual bool istVerbunden() const = 0;
         // gibt den Letzten Fehlertext zuück
         //  sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
-        char *getLetzterFehler() const;
+        virtual char *getLetzterFehler() const = 0;
         // Erhöht den Reference Counter um 1 un gibt this zurück
-        KartenServerClient *getThis();
+        virtual KartenServerClient *getThis() = 0;
         // Verringert den Reference Counter um 1 und gibt 0 zurück.
         //  Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst 
-        KartenServerClient *release();
+        virtual KartenServerClient *release() = 0;
     };
 
     // Wird zum Online Spielen verwendet
     //  Kann nur von eingeloggten Clients verwendet werden
     class SpielServerClient
     {
-
+    public:
+        // verbindet sich mit dem zugewiesenen Karten Server
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool verbinde() = 0;
+        // Betritt das Vorgeschlagene Spiel
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool spielErstelltAnnehmen() = 0;
+        // Lehnt das Vorgeschlagene Spiel ab
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool spielErstelltAblehnen() = 0;
+        // Wechselt zu einem bestimmten Team
+        //  team: Die Id des teams
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool spielErstelltTeamWechseln( int team ) = 0;
+        // Bestätigt die Teamauswahl so dass das Spiel früher beginnen kann
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool spielErstelltTeamFertig() = 0;
+        // sendet eine Chat Nachricht an die mitglieder des erstellten Spiels
+        //  nachricht: Die Nachricht
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool spielErstelltChatNachricht( char *nachricht ) = 0;
+        // Teilt dem Server mit, dass der Client bereit ist das Spiel zu laden
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool bereitZumLaden() = 0;
+        // Teilt dem Server mit, zu wie viel Prozent der Client das Spiel geladen hat
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool setLadenProzent( int prozent ) = 0;
+        // Teilt dem Server mit, dass das Spiel fertig geladen wurde
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool bereitZumSpiel() = 0;
+        // Sendet während des Spiels eine Nachricht an den Server
+        //  län: Die Länge der Nachricht
+        //  bytes: Ein Zeiger auf die Nachricht
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool spielNachricht( short län, char *bytes ) = 0;
+        // Sendet während der Statistik eine Nachricht an den Server
+        //  län: Die Länge der Nachricht
+        //  bytes: Ein Zeiger auf die Nachricht
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        virtual bool statistikNachricht( short län, char *bytes ) = 0;
+        // Wartet auf eine Nachricht vom Spiel Servers und gibt diese zurück.
+        virtual SpielServerNachricht *getNextMessage() = 0;
+        // Erhält die Verbindung aufrecht
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        //  Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
+        virtual bool keepAlive() = 0;
+        // Trennt die Verbindung zum Server
+        //  Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
+        //  Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
+        virtual bool trenne() = 0;
+        // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
+        virtual bool istVerbunden() const = 0;
+        // gibt den Letzten Fehlertext zuück
+        //  sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
+        virtual char *getLetzterFehler() const = 0;
+        // Erhöht den Reference Counter um 1 un gibt this zurück
+        virtual SpielServerClient *getThis() = 0;
+        // Verringert den Reference Counter um 1 und gibt 0 zurück.
+        //  Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst 
+        virtual SpielServerClient *release() = 0;
     };
 
     // Wird verwendet um Statistiken und Aufzeichnungen von vergangenen Spielen abzufragen