Variablen.cpp 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. #define variable
  2. #include "Variablen.h"
  3. #include <Punkt.h>
  4. #include <DateiSystem.h>
  5. #include <Globals.h>
  6. #include <InitDatei.h>
  7. #include <Datei.h>
  8. #include "../Netzwerk/KSGServer.h"
  9. #include "../Leser/KartenLeser.h"
  10. void initVariables( Schrift *zSchrift, Bildschirm *zBildschirm )
  11. {
  12. loginClient = 0;
  13. registerClient = 0;
  14. infoClient = 0;
  15. chatClient = 0;
  16. anmeldungClient = 0;
  17. spielClient = 0;
  18. shopClient = 0;
  19. newsClient = 0;
  20. editorClient = 0;
  21. minigameClient = 0;
  22. cmProcessor = 0;
  23. vorLogin = new VorLogin( zSchrift, zBildschirm );
  24. nachLogin = new NachLogin( zSchrift, zBildschirm );
  25. Animation2DData *lad = new Animation2DData();
  26. LTDBDatei *ladd = new LTDBDatei();
  27. ladd->setDatei( new Text( "data/bilder/ladeanimation.ltdb" ) );
  28. lad->ladeAnimation( ladd );
  29. lad->setFPS( 30 );
  30. lad->setWiederhohlend( 1 );
  31. ladeAnimation = new Animation2D();
  32. ladeAnimation->setPosition( BildschirmGröße() / 2 - Punkt( 25, 25 ) );
  33. ladeAnimation->setSize( 50, 50 );
  34. ladeAnimation->setAPS( 450 );
  35. ladeAnimation->setAnimationDataZ( lad );
  36. ladeAnimation->setRahmen( 1 );
  37. ladeAnimation->setRahmenBreite( 1 );
  38. ladeAnimation->setRahmenFarbe( 0xFFFFFFFF );
  39. zBildschirm->setOnTopZeichnung( ladeAnimation->getThis() );
  40. hauptScreen = zBildschirm->getThis();
  41. bilder = new Bilder();
  42. updateH = new UpdateHandler();
  43. keepAliveTh = new KeepAliveTh();
  44. // Laden des Main Clients
  45. HINSTANCE networkDLL = Framework::getDLLRegister()->ladeDLL( "KSGNetwork.dll", "data/bin/KSGNetwork.dll" );
  46. if( !networkDLL )
  47. {
  48. WMessageBox( 0, new Text( "Fehler" ), new Text( "Die DLL Datei 'data/bin/KSGNetwork.dll' konnte nicht geladen werden. Fallst diese Datei nicht existiert muss das Spiel neu Installiert werden." ), MB_ICONERROR );
  49. exit( 0 );
  50. }
  51. KSGClient::KSGNetworkCreateRegisterdMain getMainClient = ( KSGClient::KSGNetworkCreateRegisterdMain )GetProcAddress( networkDLL, KSGNETWORK_CREATE_REGISTERD_MAIN );
  52. if( !getMainClient )
  53. {
  54. WMessageBox( 0, new Text( "Fehler" ), new Text( "Der Einstiegspunkt '" KSGNETWORK_CREATE_REGISTERD_MAIN "' wurde in der DLL Datei 'data/bin/KSGNetwork.dll' nicht gefunden. Fallst dieses Problem weiterhin auftritt muss das Spiel neu Installiert werden." ), MB_ICONERROR );
  55. exit( 0 );
  56. }
  57. char *ip = getMainServerIp();
  58. char *key;
  59. unsigned char keyLen = getSchlüssel( &key );
  60. mainClient = getMainClient( ip, getMainServerPort(), getKlientId(), key, keyLen );
  61. delete[] key;
  62. delete[] ip;
  63. if( !mainClient )
  64. {
  65. WMessageBox( 0, new Text( "Fehler" ), new Text( "Die DLL Datei 'data/bin/KSGNetwork.dll' scheint fehlerhaft zu sein. Fallst dieses Problem weiterhin auftritt muss das Spiel neu Installiert werden." ), MB_ICONERROR );
  66. exit( 0 );
  67. }
  68. aktion = 2;
  69. _render = 1;
  70. }
  71. void releaseVariables()
  72. {
  73. _render = 0;
  74. keepAliveTh->doExit();
  75. keepAliveTh->warteAufThread( 1000 );
  76. if( keepAliveTh->isRunning() )
  77. keepAliveTh->ende();
  78. delete keepAliveTh;
  79. keepAliveTh = 0;
  80. if( vorLogin )
  81. vorLogin = vorLogin->release();
  82. if( nachLogin )
  83. nachLogin = (NachLogin *)nachLogin->release();
  84. if( loginClient )
  85. loginClient = loginClient->release();
  86. if( registerClient )
  87. registerClient = registerClient->release();
  88. if( infoClient )
  89. infoClient = infoClient->release();
  90. if( chatClient )
  91. chatClient->trenne( 1 );
  92. if( cmProcessor )
  93. {
  94. cmProcessor->warteAufThread( 200 );
  95. cmProcessor->ende();
  96. cmProcessor = (ChatMessageProcessor *)cmProcessor->release();
  97. }
  98. if( chatClient )
  99. chatClient = chatClient->release();
  100. if( anmeldungClient )
  101. anmeldungClient = anmeldungClient->release();
  102. if( spielClient )
  103. spielClient->trenne();
  104. if( smProcessor )
  105. {
  106. smProcessor->warteAufThread( 200 );
  107. smProcessor->ende();
  108. smProcessor = (SpielMessageProcessor *)smProcessor->release();
  109. }
  110. if( spielClient )
  111. spielClient = spielClient->release();
  112. if( shopClient )
  113. shopClient = shopClient->release();
  114. if( newsClient )
  115. newsClient = newsClient->release();
  116. if( editorClient )
  117. editorClient = editorClient->release();
  118. if( minigameClient )
  119. minigameClient = minigameClient->release();
  120. if( ladeAnimation )
  121. ladeAnimation = (Animation2D *)ladeAnimation->release();
  122. if( hauptScreen )
  123. hauptScreen = hauptScreen->release();
  124. if( mainClient )
  125. mainClient = mainClient->release();
  126. KartenLeser::cleanUp();
  127. if( bilder )
  128. {
  129. bilder->release();
  130. bilder = 0;
  131. }
  132. if( updateH )
  133. updateH->release();
  134. if( userOptions )
  135. userOptions->release();
  136. }