Variablen.cpp 4.6 KB

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