EditorClient.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. #pragma once
  2. #include "../Include/KSGNetwork.h"
  3. #include <Critical.h>
  4. namespace KSGClient
  5. {
  6. // Wird verwendet um Karten für Spiele zu erstellen
  7. // Kann nur von eingeloggten Clients verwendet werden
  8. class EditorClient : public EditorServerClient
  9. {
  10. private:
  11. Framework::Text ip;
  12. unsigned short port;
  13. int cId;
  14. Network::Klient* k;
  15. char* key;
  16. unsigned char keyLen;
  17. Framework::Critical cs;
  18. Framework::Text err;
  19. public:
  20. // Konstruktor
  21. EditorClient(int klientId, unsigned short port, const char* ip, const char* key, unsigned char keyLen);
  22. // Destruktor
  23. ~EditorClient();
  24. // verbindet sich mit dem zugewiesenen Editor Server
  25. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  26. bool verbinde() override;
  27. // Erstellt eine neue Karte
  28. // name: Der Name der Karte
  29. // spielArt: Die Id des Spiels
  30. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  31. bool karteErstellen(const char* name, int spielArt) override;
  32. // lädt eine bestimmte Karte
  33. // id: Die Id der Karte
  34. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  35. bool ladeKarte(int id) override;
  36. // gibt eine Liste mit Abbildern der geladenen Karte zurück
  37. // name: Enthält nach erfolgreichem Aufruf eine Liste mit Namen der Abbilder
  38. // datum: Enthält nach erfolgreichem Aufruf eine Liste mit dem Datum der Erstellung für jedes Abbild
  39. // Gibt die Anzahl der Abbilder zurück
  40. int getAbbildListe(Framework::RCArray< Framework::Text >* name, Framework::RCArray< Framework::Zeit >* datum) override;
  41. // Erstellt ein neues Abbild der geladenen Karte
  42. // name: Der Name des Abbildes
  43. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  44. bool abbildErstellen(const char* name) override;
  45. // Löscht ein altes Abbild der geladenen Karte
  46. // name: Der Name des Abbildes
  47. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  48. bool abbildLöschen(const char* name) override;
  49. // Stellt ein altes Abbild der geladenen Karte wieder her
  50. // name: Der Name des Abbildes
  51. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  52. bool abbildHerstellen(const char* name) override;
  53. // Verüffentlich eine neue Version der geladenen Karte
  54. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  55. bool veröffentlichen() override;
  56. // Veröffentlich eine neue Version der Shop Seite der geladenen Karte
  57. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  58. bool shopSeiteVeröffentlichen() override;
  59. // Läht die Vorschau der Shop Seite der geladenen Karte herrunter und speichert sie unter data/tmp/ke/ssv
  60. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  61. bool ladeShopSeiteVorschau() override;
  62. // Erstellt eine neue Shop Seiten Datei
  63. // name: Der Name der Datei
  64. // typ: 0=Ordner, 1=Bild, 2=Text
  65. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  66. bool ssDateiErstellen(const char* name, int typ) override;
  67. // Öffnet einen Ordner der Shop Seite
  68. // name: Der Name des Ordners
  69. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  70. bool ssOrdnerÖffnen(const char* name) override;
  71. // Lädt das ein Bild der Shop Seite und gibt es zurück
  72. // datei: Der Name der Bilddatei
  73. // bild: Der Name des Bildes
  74. // Gibt bei misserfolg 0 zurück
  75. Framework::Bild* ssBildLaden(const char* datei, const char* bild) override;
  76. // Löscht eine Datei der Shop Seite
  77. // name: Der Name der Datei
  78. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  79. bool ssDateiLöschen(const char* name) override;
  80. // Läd eine KSGS Datei der Shop Seite und gibt den Quellcode zurück
  81. // datei: Der Name der Datei
  82. // Gibt bei misserfolg 0 zurück
  83. Framework::Text* ssTextLaden(const char* datei) override;
  84. // Spechert eine KSGS Datei der Shop Seite
  85. // datei: Der Name der Datei
  86. // zText: Ein Zeiger auf den neuen Quellcode (ohne erhöhten Reference Counter)
  87. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  88. bool ssTextSpeichern(const char* datei, Framework::Text* zText) override;
  89. // Löscht ein Bild der Shop Seite
  90. // datei: Der Name der Bilddatei
  91. // bild: Der Name des Bildes
  92. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  93. bool ssBildLöschen(const char* datei, const char* bild) override;
  94. // Speichert ein Bild einer ShopSeite
  95. // datei: Der name der Bilddatei
  96. // name: Der Name des Bildes
  97. // zBild: Ein Zeiger auf das Bild (ohne erhöhten Reference Counter)
  98. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  99. bool ssBildSpeichern(const char* datei, const char* name, Framework::Bild* zBild) override;
  100. // Lädt eine Liste mit Dateien von der Shop Seite
  101. // zList: Enthält nach erfolgreichem Aufruf die Liste mit Dateinamen
  102. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  103. int ssGetDateiListe(Framework::RCArray< Framework::Text >* zList) override;
  104. // Lädt die Bild Liste einer Bild Datei der Shop Seite
  105. // name: Der Name der Bilddatei
  106. // zList: Enthält nach erfolgreichem Aufruf eine Liste mit Bildnamen
  107. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  108. int ssGetBildListe(const char* name, Framework::RCArray< Framework::Text >* zList) override;
  109. // Lädt die Shop Daten
  110. // es: Enthält nach erfolgreichem aufruf den Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  111. // tp: Enthält nach erfolgreichem Aufruf den Preis der Testversion in Kupfer
  112. // vp: Enthält nach erfolgreichem Aufruf den Preis der Vollversion in Kupfer
  113. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  114. bool getShopDaten(int& es, int& tp, int& vp) override;
  115. // Setzt die Shop Daten
  116. // es: der Erwerbbarkeits Status (0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides)
  117. // tp: der Preis der Testversion in Kupfer
  118. // vp: der Preis der Vollversion in Kupfer
  119. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  120. bool setShopDaten(int es, int tp, int vp) override;
  121. // gibt die Kartenbeschreibung als KSGScript Quellcode zurück
  122. // Gibt bei misserfolg 0 zurück
  123. Framework::Text* beschreibungLaden() override;
  124. // gibt das Titelbild der Karte zurück
  125. // Gibt bei misserfolg 0 zurück
  126. Framework::Bild* titelbildLaden() override;
  127. // gibt das Minimap Bild der Karte zurück
  128. // Gibt bei misserfolg 0 zurück
  129. Framework::Bild* minimapLaden() override;
  130. // gibt das Ladebild der Karte zurück
  131. // Gibt bei misserfolg 0 zurück
  132. Framework::Bild* ladebildLaden() override;
  133. // speichert den KSGScript Quellcode der Kartenbeschreibung
  134. // zText: Der KSGScript Quellcode (ohne erhöhten reference Counter)
  135. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  136. bool beschreibungSpeichern(Framework::Text* zText) override;
  137. // speichert das Titelbild der Karte
  138. // zBild: das neue Titelbild
  139. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  140. bool titelbildSpeichern(Framework::Bild* zBild) override;
  141. // speichert das Minimapbild der Karte
  142. // zBild: das neue Minimapbild
  143. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  144. bool minimapSpeichern(Framework::Bild* zBild) override;
  145. // speichert das Ladebild der Karte
  146. // zBild: das neue Ladebild
  147. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  148. bool ladebildSpeichern(Framework::Bild* zBild) override;
  149. // lädt die Spieler Team Daten der Karte
  150. // sts: Enthält nach erfolgreichem Aufruf die Spieler Team Daten
  151. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  152. bool ladeTeamDaten(SpielerTeamStrukturV* sts) override;
  153. // speichert die Team Daten
  154. // sts: die neuen Spieler Team Daten
  155. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  156. bool speicherTeamDaten(SpielerTeamStrukturV* sts) override;
  157. // Erstellt neue Datei im Datei Editor
  158. // typ: 0=ordner 1=bild 2=modell2d 3=sound
  159. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  160. bool deNeueDatei(char typ, Framework::Text* zName) override;
  161. // Öffnet Ordner im Datei Editor
  162. // zName: Der Name des Ordners
  163. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  164. bool deOrdnerÖffnen(Framework::Text* zName) override;
  165. // Gibt ein Bild aus dem Datei Editor zurück
  166. // zDatei: Der Name der Datei (ohne erhöhten Reference Counter)
  167. // zBild: Der Name des Bildes (ohne erhöhten Reference Counter)
  168. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  169. // Gibt bei misserfolg 0 zurück
  170. Framework::Bild* deBildLaden(Framework::Text* zDatei, Framework::Text* zBild, Framework::FBalken* zF) override;
  171. // Löscht eine Datei aus dem Datei Editor
  172. // zName: Der Name der Datei
  173. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  174. bool deDateiLöschen(Framework::Text* zName) override;
  175. // Löscht Bild aus Datei im Datei Editor
  176. // zDatei: Der Name der Bilddatei (ohne erhöhten Reference Counter)
  177. // zBild: Der Name des Bildes (ohne erhöhten Reference Counter)
  178. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  179. bool deBildLöschen(Framework::Text* zDatei, Framework::Text* zBild) override;
  180. // Speichert Bild in Datei im Datei Editor
  181. // zDatei: Der Name der Bilddatei (ohne erhöhten Reference Counter)
  182. // zName: Der Name des Bildes (ohne erhöhten Reference Counter)
  183. // zBild: Das neue Bild (ohne erhöhten Reference Counter)
  184. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  185. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  186. bool deBildSpeichern(Framework::Text* zDatei, Framework::Text* zName, Framework::Bild* zBild, Framework::FBalken* zF) override;
  187. // Lädt eine Liste mit Dateien im aktuellen Ordner des Datei Editors
  188. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit Dateinamen (ohne erhöhten Reference Counter)
  189. // Gibt die Anzahl der Dateien zurück
  190. int deGetDateiListe(Framework::RCArray< Framework::Text >* zNamen) override;
  191. // Lädt eine Liste mit Bildern aus einer Bilddatei des Datei Editors
  192. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Bildnamen (ohne erhöhten Reference Counter)
  193. // Gibt die Anzahl der Bilder zurück
  194. int deGetBildListe(Framework::Text* zDatei, Framework::RCArray< Framework::Text >* zNamen) override;
  195. // Lädt eine Liste mit 2D Modellen aus einer Modeldatei im Datei Editor
  196. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  197. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Modelnamen (ohne erhöhten Reference Counter)
  198. // Gibt die Anzahl der Modelle zurück
  199. int deGetModelListe(Framework::Text* zDatei, Framework::RCArray< Framework::Text >* zNamen) override;
  200. // Lädt eine Liste mit Sounds aus einer Sounddatei im Datei Editor
  201. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  202. // zNamen: Enthält nach erfolgreichem Aufruf eine Liste mit den Soundnamen (ohne erhöhten Reference Counter)
  203. // Gibt die Anzahl der Sounds zurück
  204. int deGetSoundListe(Framework::Text* zDatei, Framework::RCArray< Framework::Text >* zNamen) override;
  205. // Löscht ein Model aus einer Modeldatei des Datei Editors
  206. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  207. // zModel: Der Name des Models (ohne erhöhten Reference Counter)
  208. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  209. bool deModelLöschen(Framework::Text* zDatei, Framework::Text* zModel) override;
  210. // Löscht einen Sound aus einer Sounddatei des Datei Editors
  211. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  212. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  213. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  214. bool deSoundLöschen(Framework::Text* zDatei, Framework::Text* zSound) override;
  215. // Setzt das arbeitsverzeichnis auf den obersten ordner
  216. bool deResetPath() override;
  217. // Lädt ein Model aus einer Modeldatei des Datei Editors
  218. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  219. // zModel: Enthält nach erfolgreichem Aufruf das Model (ohne erhöhten Reference Counter)
  220. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  221. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  222. Framework::Model2DData* deModelLaden(Framework::Text* zDatei, Framework::Text* zModel, Framework::FBalken* zF) override;
  223. // Lädt einen Sound herunter und gibt ihn zurück
  224. // file: Ein Zeiger auf die GSLDatei, in der der Sound gespeichert werden soll
  225. // zDatei: Der Name der Sounddatei (ohne erhöhten Reference Counter)
  226. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  227. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  228. // Gibt bei misserfolg 0 zurück
  229. GSL::GSLSoundV* deSoundLaden(GSL::GSLDateiV* file, Framework::Text* zDatei, Framework::Text* zSound, Framework::FBalken* zF) override;
  230. // Speichert ein Model in eine Modeldatei des Datei Editors
  231. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  232. // zModel: Der Name des Models (ohne erhöhten Reference Counter)
  233. // zData: Die Daten des Models (ohne erhöhten Reference Counter)
  234. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  235. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  236. bool deModelSpeichern(Framework::Text* zDatei, Framework::Text* zModel, Framework::Model2DData* zData, Framework::FBalken* zF) override;
  237. // Speichert einen Sound in einer Sounddatei des Datei Editors
  238. // zDatei: Der Name der Modeldatei (ohne erhöhten Reference Counter)
  239. // zSound: Der Name des Sounds (ohne erhöhten Reference Counter)
  240. // zData: Die Daten des Sounts (ohne erhöhten Reference Counter)
  241. // zF: Ein Fortschrittsbalken, der automatisch aktualisiert wird (ohne erhöhten Reference Counter)
  242. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  243. bool deSoundSpeichern(Framework::Text* zDatei, Framework::Text* zSound, GSL::GSLSoundV* zData, Framework::FBalken* zF) override;
  244. // Lädt die Kauf Statistik der geladenen Karte
  245. // verkauft: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Käufe der Karte der letzten 30 Tage
  246. // einkommen: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der verdinten Kupfer in den letzten 30 Tagen
  247. // gespielt: Enthält nach erfolgreichem Aurfuf eine Liste mit den Anzahlen der Spielen der letzten 30 Tage
  248. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  249. int getVerkaufStatistik(Framework::Array< int >* verkauft, Framework::Array< int >* einkommen, Framework::Array< int >* gespielt) override;
  250. // Startet den Editor Modus, welcher für jedes Spiel unterschiedlich funktioniert
  251. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  252. bool initEditor() override;
  253. // Erhält die Verbindung aufrecht
  254. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  255. // Sollte während einer bestehenden Verbindung etwa einmal alle 60 Sekunden aufgerufen werden, da sonst der Router die Verbindung automatisch trennt
  256. bool keepAlive() override;
  257. // Trennt die Verbindung zum Server
  258. // Gibt 1 zurück, falls der Vorgang erfolgreich ist, 0 sonnst
  259. // Sollte erst nach einem erfolgreichen Aufruf von verbinde aufgerufen werden
  260. bool trenne(bool abmelden) override;
  261. // Beginnt eine individuelle Editor Nachricht
  262. // Gibt den Klient ohne reference Counting zurück, über den mit dem Server kommuniziert werden kann. Im Fehlerfall wird 0 zurückgegeben
  263. // Der Thread, der diese Methode aufgerufen hat, sollte nach dem Erfolgreichen Aufruf am Ende der Kommunikation mit dem Server endEditorMessage aufrufen
  264. Network::Klient* beginEditorMessage() override;
  265. // Beendet eine Editor Nachricht
  266. // sollte nur nach dem erfolgreichem Aufrufen von beginEditorMessage aufgerufen werden (vom selben Thread)
  267. void endEditorMessage() override;
  268. // Gibt 1 zurück, falls der Client verbunden ist, 0 sonst
  269. bool istVerbunden() const override;
  270. // gibt den Letzten Fehlertext zuück
  271. // sollte erst aufgerufen werden, nachdem eine andere aufgerufene Methode fehlgeschlagen ist
  272. const char* getLetzterFehler() const override;
  273. };
  274. }