#pragma once #include "../Include/KSGNetwork.h" #include namespace KSGClient { // Wird verwendet um die aktuellen versionen der Karten vor dem Spiel herunterzuladen // Kann nur von eingeloggten Clients verwendet werden class KartenClient : public KartenServerClient { private: Framework::Text ip; unsigned short port; int cId; Network::Klient* k; char* key; unsigned char keyLen; Framework::Critical cs; Framework::Text err; public: // Konstruktor KartenClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen); // Destruktor ~KartenClient(); // verbindet sich mit dem zugewiesenen Karten Server // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst bool verbinde() override; // 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) override; // 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) override; // 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) override; // 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) override; // 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) override; // 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() override; // 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(bool abmelden) override; // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst bool istVerbunden() const override; // gibt den Letzten Fehlertext zuück // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist const char* getLetzterFehler() const override; }; }