Variablen.cpp 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  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. uiFactory = Framework::defaultUI( zSchrift, zBildschirm );
  24. vorLogin = new VorLogin();
  25. nachLogin = new NachLogin();
  26. Animation2DData *lad = new Animation2DData();
  27. LTDBDatei *ladd = new LTDBDatei();
  28. ladd->setDatei( new Text( "data/bilder/ladeanimation.ltdb" ) );
  29. lad->ladeAnimation( ladd );
  30. lad->setFPS( 30 );
  31. lad->setWiederhohlend( 1 );
  32. ladeAnimation = new Animation2D();
  33. ladeAnimation->setPosition( zBildschirm->getBackBufferSize() / 2 - Punkt( 25, 25 ) );
  34. ladeAnimation->setSize( 50, 50 );
  35. ladeAnimation->setAPS( 450 );
  36. ladeAnimation->setAnimationDataZ( lad );
  37. ladeAnimation->setRahmen( 1 );
  38. ladeAnimation->setRahmenBreite( 1 );
  39. ladeAnimation->setRahmenFarbe( 0xFFFFFFFF );
  40. zBildschirm->setOnTopZeichnung( dynamic_cast<Zeichnung *>( ladeAnimation->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 *)vorLogin->release();
  82. if( nachLogin )
  83. nachLogin = (NachLogin *)nachLogin->release();
  84. if( loginClient )
  85. loginClient = (KSGClient::LoginServerClient *)loginClient->release();
  86. if( registerClient )
  87. registerClient = (KSGClient::RegisterServerClient *)registerClient->release();
  88. if( infoClient )
  89. infoClient = (KSGClient::InformationServerClient *)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 = (KSGClient::ChatServerClient *)chatClient->release();
  100. if( anmeldungClient )
  101. anmeldungClient = (KSGClient::AnmeldungServerClient *)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 = (KSGClient::SpielServerClient *)spielClient->release();
  112. if( shopClient )
  113. shopClient = (KSGClient::ShopServerClient *)shopClient->release();
  114. if( newsClient )
  115. newsClient = (KSGClient::NewsServerClient *)newsClient->release();
  116. if( editorClient )
  117. editorClient = (KSGClient::EditorServerClient *)editorClient->release();
  118. if( minigameClient )
  119. minigameClient = (KSGClient::MinigameServerClient *)minigameClient->release();
  120. if( ladeAnimation )
  121. ladeAnimation = (Animation2D *)ladeAnimation->release();
  122. if( mainClient )
  123. mainClient = (KSGClient::MainServerClient *)mainClient->release();
  124. KartenLeser::cleanUp();
  125. if( bilder )
  126. {
  127. bilder->release();
  128. bilder = 0;
  129. }
  130. if( updateH )
  131. updateH->release();
  132. if( userOptions )
  133. userOptions->release();
  134. }