KSGKlient.h 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500
  1. #ifndef KSGKlient_H
  2. #define KSGKlient_H
  3. #include "KSGKlientV.h"
  4. #include "../Strukturen/Strukturen.h"
  5. #include <Bild.h>
  6. #include <GSLSoundV.h>
  7. using namespace Network;
  8. using namespace Framework;
  9. #define LOCK( cs ) EnterCriticalSection( cs )
  10. #define UNLOCK( cs ) LeaveCriticalSection( cs )
  11. struct AHDaten;
  12. class LoginKlient
  13. {
  14. private:
  15. Klient *klient;
  16. bool verbunden;
  17. char *fehler;
  18. bool brauchKick;
  19. int klientId;
  20. int accountId;
  21. int ref;
  22. CRITICAL_SECTION cs;
  23. public:
  24. // Konstruktor
  25. LoginKlient();
  26. // Destruktor
  27. ~LoginKlient(); // wenn verbunden, dann trennen
  28. // nicht constant
  29. bool verbinde(); // verbindet sich mit dem Login Server
  30. int login( const char *name, const char *pass ); // gibt bei Erfolg 1 zurück
  31. bool kick( const char *geheim );
  32. bool logout(); // logt den Account aus
  33. bool keepAlive(); // Erhält die Verbindung aufrecht
  34. bool trenne(); // trennt sich von dem Login Server
  35. void setLetzterFehler( char *err ); // setzt den letzten Fehler
  36. // constant
  37. bool istVerbunden() const; // prüft, ob mit Login Server verbunden
  38. int getAccountId() const; // gibt die AccountId zurück
  39. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  40. // Reference Counting
  41. LoginKlient *getThis();
  42. LoginKlient *release();
  43. };
  44. class RegisterKlient
  45. {
  46. private:
  47. Klient *klient;
  48. bool verbunden;
  49. char *fehler;
  50. bool brauchSchlüssel;
  51. int klientId;
  52. int ref;
  53. CRITICAL_SECTION cs;
  54. public:
  55. // Konstruktor
  56. RegisterKlient();
  57. // Destruktor
  58. ~RegisterKlient(); // wenn verbunden, dann trennen
  59. // nicht constant
  60. bool verbinde(); // verbindet ich mit dem Register Server
  61. bool accountErstellen( const char *name, const char *pass, const char *geheim, const char *eMail, unsigned short jahr, char monat, char tag ); // erstellt den Account
  62. bool accountLöschen( const char *name, const char *pass, const char *geheim ); // löscht den Account
  63. int accountBestätigen( const char *name, const char *pass ); // account Bestätigung fortsetzen
  64. bool bestätigen( const char *schlüssel ); // bestätigt den Vorgang mit Schüssel
  65. void eMailErneutSenden(); // E-Mail nochmal senden
  66. void später(); // bestätigung später abschließen
  67. void abbrechen(); // bricht den Vorgang ab
  68. bool passwortÄndern( const char *name, const char *pass, const char *geheim, const char *nPass ); // ändert das Passwort
  69. bool eMailÄndern( const char *name, const char *pass, const char *geheim, const char *nEMail ); // ändert die E-Mail Addresse
  70. bool geheimnisÄndern( const char *name, const char *pass, const char *geheim, const char *nGeheim ); // ändert das Geheimnis
  71. bool nameVergessen( const char *pass, const char *geheim ); // schickt den Account Namen an die Bekannte E-Mail Addresse
  72. bool passwortVergessen( const char *name, const char *geheim ); // schickt das Account Passwort an die Bekannte E-Mail Addresse
  73. bool geheimnisVergessen( const char *name, const char *pass ); // schickt das Account Geheimnis an die Bekannte E-Mail Addresse
  74. bool eMailVergessen( const char *name, const char *pass, const char *geheim, char **eMail ); // gibt die E-Mail Addresse des Accounts zurück
  75. bool keepAlive(); // Erhält die Verbindung aufrecht
  76. bool trenne(); // trennt sich von dem Register Server
  77. // constant
  78. bool istVerbunden() const; // prüft, ob mit Register Server verbunden
  79. bool vorgangBrauchBestätigung() const; // prüft, ob eine Bestätigung notwendig ist
  80. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  81. // Reference Counting
  82. RegisterKlient *getThis();
  83. RegisterKlient *release();
  84. };
  85. class InformationKlient : public InformationKlientV
  86. {
  87. private:
  88. Klient *klient;
  89. bool verbunden;
  90. Text *fehler;
  91. int klientId;
  92. int ref;
  93. CRITICAL_SECTION cs;
  94. public:
  95. // Konstruktor
  96. InformationKlient();
  97. // Destruktor
  98. ~InformationKlient(); // wenn verbunden, dann trennen
  99. // nicht constant
  100. virtual bool verbinde() override; // verbindet ich mit dem Informaion Server
  101. virtual bool getInformationText( Text *txt, int *typ ) override; // fragt nach Informationstext
  102. virtual bool istSpielErlaubt( int spielId ) override; // fragt, ob das entsprechende Spiel vom Server gesperrt wurde
  103. virtual bool istKarteErlaubt( int karteId ) override; // fragt, ob die entsprechende Karte vom Server gesperrt wurde
  104. virtual int getKarteId( char *name ) override; // fragt nach der Id einer Karte
  105. virtual int getSpielId( char *name ) override; // fragt nach der id eines Spiels
  106. virtual Text *getSpielerName( int accountId ); // fragt nach dem Namen eines Accounts
  107. virtual bool getSpielStatistik( int accountId, int spielId, Array< int > *werte ) override; // fragt nach der Spiel Statistik eines Accounts
  108. virtual Text *getKarteName( int karteId ) override; // fragt nach dem Namen einer Karte
  109. virtual Text *getSpielName( int spielId ) override; // fragt nach dem Namen einer Spielart
  110. virtual Text *getChatroomName( int chatroomId ) override; // fragt nach dem Namen eines Chatrooms
  111. virtual int getSpielId( int karteId ) override; // fragt zu welcher Spielart die Karte gehört
  112. virtual int getAccountId( char *name ) override; // gibt die Id des Accounts zurück
  113. virtual int getChatroomId( char *name ) override; // gibt die Id des Chatrooms zurück
  114. virtual int getGruppenKarteId( int gruppenId ) override; // gibt die karten Id der gruppe zurück
  115. virtual bool getGruppeSpielerHinzufügen( int gruppeId ) override; // gibt die Spieler hinzufügen Funktion der Gruppe zurück
  116. virtual int getGruppeAdminId( int gruppeId ) override; // gibt den Gruppen Administrator zurück
  117. virtual int getSpielerPunkte( int accountId, int spielId ) override; // gibt die Punkte eines Spielers zurück
  118. virtual Array< int > *getAccountSpielArtListe() override; // gibt eine Liste mit gekauften Spielen zurück
  119. virtual int getSpielVersion( int spielId ) override; // gibt die neuste Version eines Spiels zurück
  120. virtual int getKupfer() override; // gibt das Kupfer des Accounts zurück
  121. virtual int getDateiGruppeIdVonSpiel( int spielId ) override; // Gibt die Dateigruppe eines Spieles zurück
  122. virtual Text *getDateiGruppePfad( int dgId ) override; // Gibt den Dateigruppen Pfad zurück
  123. virtual Array< int > *getAccountKarteListe( int spielId ) override; // gibt eine Liste mit gekauften Karten zurück
  124. virtual int getDateiGruppeIdVonPfad( char *pfad ) override; // Gibt die Dateigruppe eines Pfades zurück
  125. virtual int getDateiGruppeVersion( int dg ) override; // gibt die neuste Version einer Dateigruppe zurück
  126. virtual int getSpielerListe( char *suche, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  127. Array< int > *accounts, RCArray< Text > *name, RCArray< Text > *zuletztOnline,
  128. RCArray< Text > *letztesSpiel, RCArray< Text > *letzteKarte, RCArray< Text > *punkte ) override; // sucht nach Spielern
  129. virtual bool getSpielerAktivität( int accId, RCArray< Text > *datum, Array< double > *stOnline, Array< double > *stGespielt,
  130. Array< int > *anzSpiele, Array< int > *anzGewonnen ) override; // ermittelt die aktivität eines Spielers
  131. virtual int getAccountKarteSpiele( int account, int karte ) override; // Gibt zurück, wie oft ein Spieler eine Karte schon gespielt hat
  132. virtual int getAccountKarteSpieleGewonnen( int account, int karte ) override; // Gibt zurück, wie oft ein Spieler eine Karte schon gewonnen hat
  133. virtual bool hatAccountKarte( int account, int karte ) override; // Gibt zurück, ob ein Spieler die Karte im Besitz hat
  134. virtual bool hatAccountSpiel( int account, int spiel ) override; // Gibt zurück, ob ein Spieler ein Spiel im Besitz hat
  135. virtual Array< int > *getAccountKarteGespieltListe( int account, int spielId ) override; // gibt eine Liste mit Karten zurück, die von einem Spieler bereits gespielt wurden
  136. virtual Array< int > *getAccountSpielGespieltListe( int account ) override; // gibt eine Liste mit Spielen zurück, die von einem Spieler bereits gespielt wurden
  137. virtual bool getSpielPartnerListe( int account, Array< int > *spieler, Array< int > *karten, Array< int > *anzahl ) override; // Gibt eine Liste von Spiel Partnern eines Spielers zurück
  138. virtual bool getStatistikListe( int account, int *seite, int *maxSeite, char sortSpalte, char rückwärts,
  139. RCArray< Array< int > > *werte, RCArray< Text > *namen ) override; // Gibt eine Liste mit Spiel Statistiken zurück
  140. virtual AHDaten *getSpielHistorieDaten( int account ) override; // Gibt eine Liste mit den letzten 20 Spielen zurück
  141. virtual bool getHistorieServer( int spielId, int *port, Text *ip ) override; // sucht nach dem Historie Server von einem Spiel
  142. virtual bool keepAlive() override; // Erhält die Verbindung aufrecht
  143. virtual bool hatRecht( int recht ) override; // Prüft ob Berechtigung vorhanden
  144. virtual int getKartenListe( char *filter, char sortSpalte, char absteigend, Array< int > *kId, RCArray< Text > *kName, RCArray< Text > *sName,
  145. Array< int > *kupfer, Array< int > *verkauft, Array< int > *maxSpieler ) override; // Gibt eine Liste mit Karten zurück
  146. virtual bool getEditorServer( int karteId, int *port, Text *ip ) override; // sucht nach dem Editor Server von einer Karte
  147. virtual bool getKartenServer( int karteId, int *port, Text *ip ) override; // sucht nach dem Karten Server von einer Karte
  148. virtual bool trenne() override; // trennt sich von dem Informaion Server
  149. // constant
  150. virtual bool istVerbunden() const override; // prüft, ob mit Informaion Server verbunden
  151. virtual char *getLetzterFehler() const override; // gibt den Letzten Fehlertext zuück
  152. // Reference Counting
  153. virtual InformationKlientV *getThis() override;
  154. virtual InformationKlientV *release() override;
  155. };
  156. class ChatKlient : private Thread
  157. {
  158. private:
  159. Klient *senden;
  160. Klient *empfangen;
  161. bool verbunden;
  162. Text *fehler;
  163. int klientId;
  164. int ref;
  165. CRITICAL_SECTION cs;
  166. public:
  167. // Konstruktor
  168. ChatKlient();
  169. // Destruktor
  170. ~ChatKlient();
  171. // nicht constant
  172. bool verbinde(); // verbindet ich mit dem Chat Server
  173. bool chatNachricht( int zuAccount, const char *nachricht ); // sendet eine Nachricht zu einem Account
  174. bool accountNameÄndern( const char *name ); // ändert den Account Namen
  175. bool freundschaftBeenden( int accountId ); // beendet die Freundschaft mit einem Account
  176. bool freundesAnfrage( int accountId ); // sendet eine Freundesanfragezu einem Account
  177. bool freundesAnfrageBeantworten( int accountId, bool ja ); // beantwortet eine Freundesanfrage
  178. int chatroomErstellen( const char *name ); // erstellt ein chatroom
  179. bool chatroomEinladung( int accountId, int chatroomId ); // verschickt eine Einladung zu einem Chatroom
  180. bool chatroomEinladungAblehnen( int accountId, int chatroomId ); // Einladung zum Chatroom wird abgelehnt
  181. bool chatroomBetreten( int chatroomId ); // betritt ein chatroom
  182. bool chatroomNachricht( int chatroomId, const char *nachricht ); // chatroom Nachricht senden
  183. bool chatroomVerlassen( int chatroomId ); // verlässt chatroom
  184. bool chatroomKick( int chatroomId, int accountId ); // kickt Spieler aus Chatroom( nur wenn admin )
  185. bool freundesListeAnfragen(); // fragt nach allen freunden
  186. bool chatNachrichtAnfrage(); // fragt nach chat nachrichten in abwesenheit
  187. bool keepAlive(); // Erhält die Verbindung aufrecht
  188. bool trenne(); // trennt sich von dem Chat Server
  189. virtual void thread(); // empfangen von Nachrichten
  190. // constant
  191. bool istVerbunden() const; // prüft, ob mit Chat Server verbunden
  192. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  193. // Reference Counting
  194. ChatKlient *getThis();
  195. ChatKlient *release();
  196. };
  197. class AnmeldungKlient
  198. {
  199. private:
  200. Klient *klient;
  201. bool verbunden;
  202. Text *fehler;
  203. int klientId;
  204. bool spielHistorie;
  205. int ref;
  206. CRITICAL_SECTION cs;
  207. public:
  208. // Konstruktor
  209. AnmeldungKlient();
  210. // Destruktor
  211. ~AnmeldungKlient();
  212. // nicht constant
  213. bool verbinde(); // verbindet ich mit dem Chat Server
  214. int gruppeErstellen( int karteId ); // erstellt eine gruppe
  215. bool gruppeBetreten( int gruppeId, Array< int > *mitglieder, int *anzahl ); // betritt Gruppe
  216. bool gruppeVerlassen( int gruppeId ); // Verlässt die gruppe
  217. bool gruppeAnmelden( int gruppeId ); // meldet gruppe an
  218. bool gruppeAbmelden( int gruppeId ); // meldet gruppe ab
  219. bool gruppeSpielerEinladen( int accountId, int gruppeId ); // läht Spieler ein die Gruppe zu betreten
  220. bool gruppeEinladungAbbrechen( int accountId, int gruppeId ); // bricht einladung ab
  221. bool gruppeEinladungAblehnen( int gruppeId ); // Einladung zur Gruppe ablehnen
  222. bool kickSpielerAusGruppe( int accountId, int gruppeId ); // wirft Spieler aus Gruppe
  223. bool gruppeSpielStarten( int gruppeId, bool spielStarten ); // startet das Spiel der Gruppe
  224. bool gruppeNachricht( int gruppeId, char *nachricht ); // nachricht an gruppe senden
  225. bool anmelden( int karteId ); // betritt warteschlange
  226. bool abmelden(); // verlässt warteschlange
  227. bool keepAlive(); // Erhält die Verbindung aufrecht
  228. bool trenne(); // trennt sich von dem Chat Server
  229. // constant
  230. bool istVerbunden() const; // prüft, ob mit Chat Server verbunden
  231. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  232. // Reference Counting
  233. AnmeldungKlient *getThis();
  234. AnmeldungKlient *release();
  235. };
  236. class SpielKlient : public SpielKlientV
  237. {
  238. private:
  239. Klient *senden;
  240. Klient *empfangen;
  241. bool verbunden;
  242. Text *fehler;
  243. int klientId;
  244. int ref;
  245. CRITICAL_SECTION cs;
  246. public:
  247. // Konstruktor
  248. SpielKlient();
  249. // Destruktor
  250. ~SpielKlient();
  251. // nicht constant
  252. virtual bool verbinde( unsigned short port, char *ip ); // verbindet ich mit dem Chat Server
  253. virtual bool spielErstelltAnnehmen(); // klient ist bereit dem erstellten Spiel beizutreten
  254. virtual bool spielErstelltAblehnen(); // klient ist nicht bereit dem erstellten Spiel beizutreten
  255. virtual bool spielErstelltTeamWechseln( int team ); // wechselt das Team
  256. virtual bool spielErstelltTeamFertig(); // bestetigt die Team Auswahl
  257. virtual bool spielErstelltChatNachricht( char *nachricht ); // sendet eine Chat Nachricht an die mitglieder des erstellten Spiels
  258. virtual bool bereitZumLaden(); // Klient ist bereit zum Laden
  259. virtual bool setLadenProzent( int prozent ); // Setzt den Fortschritt des Klients
  260. virtual bool bereitZumSpiel(); // Klient ist bereit zum Spiel
  261. virtual bool spielNachricht( short län, char *bytes ); // Nachricht während des Spiels
  262. virtual bool statistikNachricht( short län, char *bytes ); // Nachricht während der Statistik
  263. virtual bool keepAlive(); // Erhält die Verbindung aufrecht
  264. virtual bool trenne(); // trennt sich von dem Chat Server
  265. virtual void thread(); // empfangen von Nachrichten
  266. // constant
  267. virtual bool istVerbunden() const; // prüft, ob mit Chat Server verbunden
  268. virtual char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  269. // Reference Counting
  270. virtual SpielKlientV *getThis();
  271. virtual SpielKlientV *release();
  272. };
  273. class ShopKlient
  274. {
  275. private:
  276. Klient *klient;
  277. bool verbunden;
  278. Text *fehler;
  279. int klientId;
  280. int ref;
  281. CRITICAL_SECTION cs;
  282. bool verbinde( int port, char *ip ); // verbindet sich mit vorgegebenem Server
  283. public:
  284. // Konstruktor
  285. ShopKlient();
  286. // Destruktor
  287. ~ShopKlient();
  288. // nicht constant
  289. bool verbinde(); // verbindet sich mit dem Shop Server
  290. Array< int > *suchSpiele( const char *suche ); // sucht nach Spielen
  291. bool ladeSpielTitel( int id ); // läd Titelbild des Spieles herunter
  292. bool ladeSpielSeite( int id ); // läd Seite des Spieles herunter
  293. int getSpielBesitzStatus( int id ); // 0 = nicht im Besitz, 1 = Testversion, 2 = gekauft
  294. int getSpielTestversion( int id ); // gibt die Anzahl der verbleibenden Spiele zurück
  295. int istSpielErwerbbar( int id ); // 0 = nichts, 1 = nur Testversion, 2 = nur Vollversion, 3 = beides
  296. int getSpielPreis( int id, bool testVersion ); // gibt den Preis eines Spieles zurück
  297. bool spielErwerben( int spielId, bool testVersion ); // Spiel kaufen
  298. Array< int > *suchKarten( const char *suche, int spielId ); // sucht nach Karten
  299. bool ladeKarteTitel( int id ); // läd Titelbild der Karte herunter
  300. bool ladeKarteSeite( int id ); // läd Seite der Karte herunter
  301. int getKarteBesitzStatus( int id ); // 0 = nicht im Besitz, 1 = Testversion, 2 = gekauft
  302. int getKarteTestversion( int id ); // gibt die Anzahl der verbleibenden Spiele zurück
  303. int istKarteErwerbbar( int id ); // prüft, ob die Karte erworben werden kann
  304. int getKartePreis( int id, bool testVersion ); // gibt den Preis einer Karte zurück
  305. bool karteErwerben( int karteId, bool testVersion ); // Karte kaufen
  306. bool keepAlive(); // Erhält die Verbindung aufrecht
  307. bool trenne(); // trennt sich von dem Shop Server
  308. // constant
  309. bool istVerbunden() const; // prüft, ob mit Shop Server verbunden
  310. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  311. // Reference Counting
  312. ShopKlient *getThis();
  313. ShopKlient *release();
  314. };
  315. class HistorieKlient
  316. {
  317. private:
  318. Klient *klient;
  319. Text *fehler;
  320. int klientId;
  321. int ref;
  322. CRITICAL_SECTION cs;
  323. // privat
  324. bool verbinde( char *ip, int port ); // verbindet ich mit dem Historie Server
  325. bool trenne(); // trennt sich von dem Historie Server
  326. public:
  327. // Konstruktor
  328. HistorieKlient();
  329. // Destruktor
  330. ~HistorieKlient();
  331. // nicht constant
  332. bool downloadSpielHistorie( int spielId ); // läd Spiel Historie herunter
  333. // constant
  334. bool istVerbunden() const; // prüft, ob mit Historie Server verbunden
  335. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  336. // Reference Counting
  337. HistorieKlient *getThis();
  338. HistorieKlient *release();
  339. };
  340. class NewsKlient
  341. {
  342. private:
  343. Klient *klient;
  344. bool verbunden;
  345. Text *fehler;
  346. int klientId;
  347. int ref;
  348. CRITICAL_SECTION cs;
  349. public:
  350. // Konstruktor
  351. NewsKlient();
  352. // Destruktor
  353. ~NewsKlient();
  354. // nicht constant
  355. bool verbinde(); // verbindet ich mit dem News Server
  356. bool ladeSeite( char *name );
  357. bool keepAlive(); // Erhält die Verbindung aufrecht
  358. bool trenne(); // trennt sich von dem News Server
  359. // constant
  360. bool istVerbunden() const; // prüft, ob mit News Server verbunden
  361. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  362. // Reference Counting
  363. NewsKlient *getThis();
  364. NewsKlient *release();
  365. };
  366. class EditorKlient : public EditorKlientV
  367. {
  368. private:
  369. Klient *klient;
  370. bool verbunden;
  371. Text *fehler;
  372. int klientId;
  373. int ref;
  374. CRITICAL_SECTION cs;
  375. public:
  376. // Konstruktor
  377. EditorKlient();
  378. // Destruktor
  379. ~EditorKlient();
  380. // nicht constant
  381. bool verbinde( unsigned short port, char *ip ) override; // verbindet ich mit dem Editor Server
  382. bool karteErstellen( Text *zName, int spielArt ) override; // Erstellt eine neue Karte
  383. bool ladeKarte( int id ) override; // lädt eine bestimmte Karte
  384. int getAbbildListe( RCArray< Text > *name, RCArray< Zeit > *datum ) override; // gibt eine Liste mit Abbildern der geladenen Karte zurück
  385. bool abbildErstellen( char *name ) override; // Erstellt ein neues Abbild der Karte
  386. bool abbildLöschen( char *name ) override; // Löscht ein altes Abbild der Karte
  387. bool abbildHerstellen( char *name ) override; // Stellt ein altes Abbild der Karte wieder her
  388. bool veröffentlichen() override; // Veröffentlicht die Karte
  389. bool shopSeiteVeröffentlichen() override; // Veröffentlicht die Shop Seite
  390. bool ladeShopSeiteVorschau() override; // Läht die Vorschau der Shop Seite herrunter
  391. bool ssDateiErstellen( char *name, int typ ) override; // Erstellt eine neue Shop Seiten Datei (typ:0=Ordner,1=Bild,2=Text)
  392. bool ssOrdnerÖffnen( char *name ) override; // Öffnet einen Ordner der Shop Seite
  393. Bild *ssBildLaden( char *datei, char *bild ) override; // Läht das ein Bild der Shop Seite
  394. bool ssDateiLöschen( char *name ) override; // Löscht eine Datei der Shop Seite
  395. Text *ssTextLaden( char *datei ) override; // Läd eine KSGS Datei der Shop Seite
  396. bool ssTextSpeichern( char *datei, Text *zText ) override; // Spechert eine KSGS Datei der Shop Seite
  397. bool ssBildLöschen( char *datei, char *bild ) override; // Löscht ein Bild der Shop Seite
  398. bool ssBildSpeichern( char *datei, char *name, Bild *zBild ) override; // Speichert ein Bild einer ShopSeite
  399. int ssGetDateiListe( RCArray< Text > *zList ) override; // Läd die Datei Liste der Shop Seite
  400. int ssGetBildListe( char *name, RCArray< Text > *zList ) override; // Läd die Bild Liste einer Bild Datei der Shop Seite
  401. bool getShopDaten( int &es, int &tp, int &vp ) override; // Läht die Shop Daten
  402. bool setShopDaten( int es, int tp, int vp ) override; // Setzt die Shop Daten
  403. Text *beschreibungLaden() override; // läht die Kartenbeschreibung
  404. Bild *titelbildLaden() override; // läht das Titelbild
  405. Bild *minimapLaden() override; // läht das Minimapbild
  406. Bild *ladebildLaden() override; // läht das Ladebild
  407. bool beschreibungSpeichern( Text *zText ) override; // speichert die Kartenbeschreibung
  408. bool titelbildSpeichern( Bild *zBild ) override; // speichert das Titelbild
  409. bool minimapSpeichern( Bild *zBild ) override; // speichert das Minimapbild
  410. bool ladebildSpeichern( Bild *zBild ) override; // speichert das Ladebild
  411. bool ladeTeamDaten( SpielerTeamStruktur *sts ) override; // läht die Team Daten
  412. bool speicherTeamDaten( SpielerTeamStruktur *sts ) override; // speichert die Team Daten
  413. bool deNeueDatei( char typ, Text *zName ) override; // DateienEditor: Erstellt neue Datei (typ: 0=ordner 1=bild 2=modell2d 3=sound
  414. bool deOrdnerÖffnen( Text *zName ) override; // DateienEditor: Öffnet Ordner
  415. Bild *deBildLaden( Text *zDatei, Text *zBild, FBalken *zF ) override; // DateienEditor: Bild laden
  416. bool deDateiLöschen( Text *zName ) override; // DateienEditor: Löscht Datei
  417. bool deBildLöschen( Text *zDatei, Text *zBild ) override; // DateienEditor: Löscht Bild aus Datei
  418. bool deBildSpeichern( Text *zDatei, Text *zName, Bild *zBild, FBalken *zF ) override; // DateienEditor: Speichert Bild
  419. int deGetDateiListe( RCArray< Text > *zNamen ) override; // DateienEditor: Datei Liste herunterladen
  420. int deGetBildListe( Text *zDatei, RCArray< Text > *zNamen ) override; // DateienEditor: Liste mit in der Datei gespeicherten Bildern
  421. int deGetModelListe( Text *zDatei, RCArray< Text > *zNamen ) override; // DateienEditor Liste mit in der Datei gespeicherten Modellen
  422. int deGetSoundListe( Text *zDatei, RCArray< Text > *zNamen ) override; // DateienEditor: Liste mit in der Datei gespeicherten Tönen
  423. bool deModelLöschen( Text *zDatei, Text *zModel ) override; // DateienEditor: Löscht Modell
  424. bool deSoundLöschen( Text *zDatei, Text *zSound ) override; // DateienEditor: Löscht Ton
  425. Model2DData *deModelLaden( Text *zDatei, Text *zModel, FBalken *zF ) override; // DateienEditor: läd ein Model herunter
  426. GSL::GSLSoundV *deSoundLaden( Text *zDatei, Text *zSound, FBalken *zF ) override; // DateienEditor: läd Sound herunter
  427. bool deModelSpeichern( Text *zDatei, Text *zModel, Model2DData *zData, FBalken *zF ) override; // DateienEditor: Speichert Modell
  428. bool deSoundSpeichern( Text *zDatei, Text *zSound, GSL::GSLSoundV *zData, FBalken *zF ) override; // DateienEditor: Speichert Sound
  429. bool initEditor() override; // Initialisiert den Editor auf Serverseite
  430. bool keepAlive() override; // Erhält die Verbindung aufrecht
  431. bool trenne() override; // trennt sich von dem Editor Server
  432. void lock() override;
  433. void unlock() override;
  434. Klient *zKlient() override; // gibt den Klient zurück
  435. // constant
  436. bool istVerbunden() const override; // prüft, ob mit Editor Server verbunden
  437. char *getLetzterFehler() const override; // gibt den Letzten Fehlertext zuück
  438. // Reference Counting
  439. EditorKlientV *getThis() override;
  440. EditorKlientV *release() override;
  441. };
  442. class KartenKlient
  443. {
  444. private:
  445. Klient *klient;
  446. bool verbunden;
  447. Text *fehler;
  448. int klientId;
  449. int ref;
  450. CRITICAL_SECTION cs;
  451. public:
  452. // Konstruktor
  453. KartenKlient();
  454. // Destruktor
  455. ~KartenKlient();
  456. // nicht constant
  457. bool verbinde( unsigned short port, char *ip ); // verbindet ich mit dem Karten Server
  458. bool downloadKarte( int id ); // läd die Karte herunter
  459. bool downloadKarteTitel( int id ); // läd das Titelbild einer Karte herunter
  460. bool downloadKarteBeschreibung( int id ); // läd die Beschreibung einer Karte herunter
  461. bool downloadKarteMinimap( int id ); // läd die Minimap einer Karte herunter
  462. bool downloadKarteLadebild( int id ); // läd das Ladebild einer Karte herunter
  463. bool keepAlive(); // Erhält die Verbindung aufrecht
  464. bool trenne(); // trennt sich von dem Editor Server
  465. // constant
  466. bool istVerbunden() const; // prüft, ob mit Editor Server verbunden
  467. char *getLetzterFehler() const; // gibt den Letzten Fehlertext zuück
  468. // Reference Counting
  469. KartenKlient *getThis();
  470. KartenKlient *release();
  471. };
  472. #endif