SpielClient.h 4.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // Wird zum Online Spielen verwendet
  7. // Kann nur von eingeloggten Clients verwendet werden
  8. class SpielClient : public SpielServerClient
  9. {
  10. private:
  11. int ref;
  12. Framework::Text ip;
  13. unsigned short port;
  14. int cId;
  15. Network::Klient *senden;
  16. Network::Klient *empfangen;
  17. char *key;
  18. unsigned char keyLen;
  19. Framework::Critical cs;
  20. Framework::Text err;
  21. public:
  22. // Konstruktor
  23. SpielClient( int klientId, unsigned short port, char *ip, char *key, unsigned char keyLen );
  24. // Destruktor
  25. ~SpielClient();
  26. // verbindet sich mit dem zugewiesenen Karten Server
  27. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  28. bool verbinde() override;
  29. // Betritt das Vorgeschlagene Spiel
  30. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  31. bool spielErstelltAnnehmen() override;
  32. // Lehnt das Vorgeschlagene Spiel ab
  33. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  34. bool spielErstelltAblehnen() override;
  35. // Wechselt zu einem bestimmten Team
  36. // team: Die Id des teams
  37. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  38. bool spielErstelltTeamWechseln( int team ) override;
  39. // Bestätigt die Teamauswahl so dass das Spiel früher beginnen kann
  40. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  41. bool spielErstelltTeamFertig() override;
  42. // sendet eine Chat Nachricht an die mitglieder des erstellten Spiels
  43. // nachricht: Die Nachricht
  44. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  45. bool spielErstelltChatNachricht( char *nachricht ) override;
  46. // Teilt dem Server mit, dass der Client bereit ist das Spiel zu laden
  47. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  48. bool bereitZumLaden() override;
  49. // Teilt dem Server mit, zu wie viel Prozent der Client das Spiel geladen hat
  50. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  51. bool setLadenProzent( int prozent ) override;
  52. // Teilt dem Server mit, dass das Spiel fertig geladen wurde
  53. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  54. bool bereitZumSpiel() override;
  55. // Sendet während des Spiels eine Nachricht an den Server
  56. // län: Die Länge der Nachricht
  57. // bytes: Ein Zeiger auf die Nachricht
  58. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  59. bool spielNachricht( short län, char *bytes ) override;
  60. // Sendet während der Statistik eine Nachricht an den Server
  61. // län: Die Länge der Nachricht
  62. // bytes: Ein Zeiger auf die Nachricht
  63. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  64. bool statistikNachricht( short län, char *bytes ) override;
  65. // Wartet auf eine Nachricht vom Spiel Server.
  66. // Gibt bei Erfolg 1 zurück, 0 sonnst
  67. // nachricht: Eine Referenz auf die Struktur, in der die Nachricht gespeichert werden soll
  68. bool getNextMessage( SpielServerNachricht &nachricht ) override;
  69. // Erhält die Verbindung aufrecht
  70. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  71. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  72. bool keepAlive() override;
  73. // Trennt die Verbindung zum Server
  74. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  75. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  76. bool trenne() override;
  77. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  78. bool istVerbunden() const override;
  79. // gibt den Letzten Fehlertext zuück
  80. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  81. char *getLetzterFehler() const override;
  82. // Erhöht den Reference Counter um 1 un gibt this zurück
  83. SpielServerClient *getThis() override;
  84. // Verringert den Reference Counter um 1 und gibt 0 zurück.
  85. // Falls der Reference Counter nach dem Aufruf auf 0 ist löscht sich das Objekt selbst
  86. SpielServerClient *release() override;
  87. };
  88. }