EditorClient.h 17 KB

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