AktionsThread.cpp 28 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786
  1. #include "AktionsThread.h"
  2. #include "..\Global\Variablen.h"
  3. #include <Zeit.h>
  4. // Inhalt der AktionsThread Klasse aus AktionsThread.h
  5. // Konstruktor
  6. AktionsThread::AktionsThread( int aktion, void *arg1, void *arg2, void *arg3, void *arg4, void *arg5 )
  7. : Thread()
  8. {
  9. this->aktion = aktion;
  10. this->arg1 = arg1;
  11. this->arg2 = arg2;
  12. this->arg3 = arg3;
  13. this->arg4 = arg4;
  14. this->arg5 = arg5;
  15. ref = 1;
  16. start();
  17. }
  18. // nicht constant
  19. void AktionsThread::thread()
  20. {
  21. switch( aktion )
  22. {
  23. case 1: // Login
  24. // arg1 = char* -- Account Name
  25. // arg2 = char* -- Account Passwort
  26. if( 1 )
  27. {
  28. hauptScreen->setdeckFarbe( 0x00000000 );
  29. hauptScreen->setOnTop( 1 );
  30. ladeAnimation->setSichtbar( 1 );
  31. int ret = 0;
  32. if( !loginClient )
  33. loginClient = mainClient->createLoginServerClient();
  34. do
  35. {
  36. if( !loginClient )
  37. {
  38. lastError = mainClient->getLetzterFehler();
  39. continue;
  40. }
  41. if( !loginClient->verbinde() )
  42. {
  43. lastError = loginClient->getLetzterFehler();
  44. continue;
  45. }
  46. ret = loginClient->login( (const char*)arg1, (const char*)arg2 );
  47. if( ret != 1 )
  48. {
  49. lastError = loginClient->getLetzterFehler();
  50. continue;
  51. }
  52. if( !infoClient )
  53. infoClient = mainClient->createInformationServerClient();
  54. if( !infoClient )
  55. {
  56. ret = 0;
  57. lastError = mainClient->getLetzterFehler();
  58. loginClient->logout();
  59. continue;
  60. }
  61. if( !infoClient->verbinde() )
  62. {
  63. ret = 0;
  64. lastError = mainClient->getLetzterFehler();
  65. lastError = infoClient->getLetzterFehler();
  66. loginClient->logout();
  67. continue;
  68. }
  69. if( !chatClient )
  70. chatClient = mainClient->createChatServerClient();
  71. if( !chatClient )
  72. {
  73. ret = 0;
  74. lastError = mainClient->getLetzterFehler();
  75. loginClient->logout();
  76. continue;
  77. }
  78. if( !chatClient->verbinde() )
  79. {
  80. ret = 0;
  81. loginClient->logout();
  82. infoClient->trenne( 0 );
  83. lastError = chatClient->getLetzterFehler();
  84. continue;
  85. }
  86. if( cmProcessor )
  87. cmProcessor = cmProcessor->release();
  88. cmProcessor = new ChatMessageProcessor();
  89. loginClient->trenne( 0 );
  90. } while( 0 );
  91. ladeAnimation->setSichtbar( 0 );
  92. hauptScreen->setOnTop( 0 );
  93. vorLogin->zLogin()->setLoginReturn( ret );
  94. }
  95. break;
  96. case 2: // Login Erfolgreich
  97. hauptScreen->setdeckFarbe( 0x00000000 );
  98. hauptScreen->setOnTop( 1 );
  99. ladeAnimation->setSichtbar( 1 );
  100. for( unsigned char deckAlpha = 0; deckAlpha < 255; )
  101. {
  102. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  103. Sleep( 40 );
  104. deckAlpha += 15;
  105. }
  106. hauptScreen->setdeckFarbe( 255 << 24 );
  107. hauptScreen->setRenderZeichnungen( 0 );
  108. vorLogin->setSichtbar( 0 );
  109. nachLogin->setAnzeige( NLANormal );
  110. hauptScreen->setRenderZeichnungen( 1 );
  111. ladeAnimation->setSichtbar( 0 );
  112. for( unsigned char deckAlpha = 255; deckAlpha > 0; )
  113. {
  114. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  115. Sleep( 40 );
  116. deckAlpha -= 15;
  117. }
  118. hauptScreen->setdeckFarbe( 0 << 24 );
  119. hauptScreen->setOnTop( 0 );
  120. break;
  121. case 3: // Kick
  122. // arg1 = char* -- Account Name
  123. // arg2 = char* -- Account Passwort
  124. // arg3 = char* -- Account Geheimnis
  125. if( 1 )
  126. {
  127. hauptScreen->setdeckFarbe( 0x00000000 );
  128. hauptScreen->setOnTop( 1 );
  129. ladeAnimation->setSichtbar( 1 );
  130. int ret = 0;
  131. if( !loginClient )
  132. loginClient = mainClient->createLoginServerClient();
  133. do
  134. {
  135. if( !loginClient )
  136. {
  137. lastError = mainClient->getLetzterFehler();
  138. continue;
  139. }
  140. if( !loginClient->verbinde() )
  141. {
  142. lastError = loginClient->getLetzterFehler();
  143. continue;
  144. }
  145. ret = (int)loginClient->kick( (const char*)arg1, (const char*)arg2, (const char*)arg3 );
  146. if( !ret )
  147. {
  148. lastError = loginClient->getLetzterFehler();
  149. continue;
  150. }
  151. if( !infoClient )
  152. infoClient = mainClient->createInformationServerClient();
  153. if( !infoClient )
  154. {
  155. ret = 2;
  156. lastError = mainClient->getLetzterFehler();
  157. loginClient->logout();
  158. continue;
  159. }
  160. if( !infoClient->verbinde() )
  161. {
  162. ret = 2;
  163. lastError = infoClient->getLetzterFehler();
  164. loginClient->logout();
  165. continue;
  166. }
  167. if( !chatClient )
  168. chatClient = mainClient->createChatServerClient();
  169. if( !chatClient )
  170. {
  171. ret = 2;
  172. lastError = mainClient->getLetzterFehler();
  173. loginClient->logout();
  174. continue;
  175. }
  176. if( !chatClient->verbinde() )
  177. {
  178. ret = 2;
  179. loginClient->logout();
  180. infoClient->trenne( 0 );
  181. lastError = chatClient->getLetzterFehler();
  182. continue;
  183. }
  184. if( cmProcessor )
  185. cmProcessor = cmProcessor->release();
  186. cmProcessor = new ChatMessageProcessor();
  187. loginClient->trenne( 0 );
  188. } while( 0 );
  189. ladeAnimation->setSichtbar( 0 );
  190. hauptScreen->setOnTop( 0 );
  191. vorLogin->zLogin()->setKickReturn( ret );
  192. }
  193. break;
  194. case 4: // Logout
  195. if( 1 )
  196. {
  197. hauptScreen->setdeckFarbe( 0x00000000 );
  198. hauptScreen->setOnTop( 1 );
  199. ladeAnimation->setSichtbar( 1 );
  200. if( loginClient )
  201. {
  202. if( !loginClient->verbinde() )
  203. {
  204. nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Das Ausloggen konnte nicht erfolgreich abgeschlossen werden." ),
  205. new Text( "Ok" ), 0, NachrichtType::nachricht, 0 );
  206. ladeAnimation->setSichtbar( 0 );
  207. hauptScreen->setOnTop( 0 );
  208. break;
  209. }
  210. bool ret = loginClient->logout();
  211. if( ret )
  212. {
  213. hauptScreen->lock();
  214. nachLogin->zChatLeiste()->removeAll();
  215. nachLogin->zFreundesListe()->removeAll();
  216. nachLogin->zNachrichtenListe()->removeAll();
  217. hauptScreen->unlock();
  218. if( infoClient )
  219. infoClient->trenne( 0 );
  220. if( spielClient )
  221. spielClient->trenne();
  222. if( smProcessor )
  223. smProcessor = smProcessor->release();
  224. if( chatClient )
  225. chatClient->trenne( 0 );
  226. if( loginClient )
  227. loginClient->trenne( 0 );
  228. if( cmProcessor )
  229. cmProcessor = cmProcessor->release();
  230. }
  231. else
  232. {
  233. nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Das Ausloggen konnte nicht erfolgreich abgeschlossen werden." ),
  234. new Text( "Ok" ), 0, NachrichtType::nachricht, 0 );
  235. ladeAnimation->setSichtbar( 0 );
  236. hauptScreen->setOnTop( 0 );
  237. break;
  238. }
  239. }
  240. ladeAnimation->setSichtbar( 0 );
  241. hauptScreen->setOnTop( 0 );
  242. }
  243. case 5: // Logout Erfolgreich
  244. hauptScreen->setdeckFarbe( 0x00000000 );
  245. hauptScreen->setOnTop( 1 );
  246. ladeAnimation->setSichtbar( 1 );
  247. for( unsigned char deckAlpha = 0; deckAlpha < 255; )
  248. {
  249. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  250. Sleep( 40 );
  251. deckAlpha += 15;
  252. }
  253. hauptScreen->setdeckFarbe( 255 << 24 );
  254. _render = 0;
  255. hauptScreen->lock();
  256. nachLogin->setAnzeige( NLALogin );
  257. vorLogin->setSichtbar( 1 );
  258. hauptScreen->unlock();
  259. _render = 1;
  260. ladeAnimation->setSichtbar( 0 );
  261. for( unsigned char deckAlpha = 255; deckAlpha > 0; )
  262. {
  263. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  264. Sleep( 40 );
  265. deckAlpha -= 15;
  266. }
  267. hauptScreen->setdeckFarbe( 0 << 24 );
  268. hauptScreen->setOnTop( 0 );
  269. break;
  270. case 8: // Account E-Mail ändern
  271. // arg1 = char* -- Account Name
  272. // arg2 = char* -- Account Passwort
  273. // arg3 = char* -- Account Geheimnis
  274. // arg4 = char* -- Neue E-Mail
  275. if( 1 )
  276. {
  277. hauptScreen->setdeckFarbe( 0x00000000 );
  278. hauptScreen->setOnTop( 1 );
  279. ladeAnimation->setSichtbar( 1 );
  280. int ret = 0;
  281. if( !registerClient )
  282. registerClient = mainClient->createRegisterServerClient();
  283. do
  284. {
  285. if( !registerClient )
  286. {
  287. lastError = mainClient->getLetzterFehler();
  288. continue;
  289. }
  290. if( !registerClient->verbinde() )
  291. {
  292. lastError = registerClient->getLetzterFehler();
  293. continue;
  294. }
  295. ret = registerClient->eMailÄndern( (const char*)arg1, (const char*)arg2, (const char*)arg3, (const char*)arg4 );
  296. if( !ret )
  297. {
  298. lastError = registerClient->getLetzterFehler();
  299. continue;
  300. }
  301. } while( 0 );
  302. registerClient->trenne( 0 );
  303. ladeAnimation->setSichtbar( 0 );
  304. hauptScreen->setOnTop( 0 );
  305. vorLogin->zEMailÄndern()->setReturn( ret );
  306. }
  307. break;
  308. case 9: // Account E-Mail Vergessen
  309. // arg1 = char* -- Account Name
  310. // arg2 = char* -- Account Passwort
  311. // arg3 = char* -- Account Geheimnis
  312. if( 1 )
  313. {
  314. hauptScreen->setdeckFarbe( 0x00000000 );
  315. hauptScreen->setOnTop( 1 );
  316. ladeAnimation->setSichtbar( 1 );
  317. char *eMail = 0;
  318. char **pEMail = &eMail;
  319. int ret = 0;
  320. if( !registerClient )
  321. registerClient = mainClient->createRegisterServerClient();
  322. do
  323. {
  324. if( !registerClient )
  325. {
  326. lastError = mainClient->getLetzterFehler();
  327. continue;
  328. }
  329. if( !registerClient->verbinde() )
  330. {
  331. lastError = registerClient->getLetzterFehler();
  332. continue;
  333. }
  334. ret = registerClient->eMailVergessen( (const char*)arg1, (const char*)arg2, (const char*)arg3, pEMail );
  335. if( !ret )
  336. {
  337. lastError = registerClient->getLetzterFehler();
  338. continue;
  339. }
  340. } while( 0 );
  341. registerClient->trenne( 0 );
  342. ladeAnimation->setSichtbar( 0 );
  343. hauptScreen->setOnTop( 0 );
  344. vorLogin->zEMailVergessen()->setReturn( ret, *pEMail );
  345. }
  346. break;
  347. case 10: // Account Geheimnis Ändern
  348. // arg1 = char* -- Account Name
  349. // arg2 = char* -- Account Passwort
  350. // arg3 = char* -- Account Geheimnis
  351. // arg4 = char* -- Neues Geheimnis
  352. if( 1 )
  353. {
  354. hauptScreen->setdeckFarbe( 0x00000000 );
  355. hauptScreen->setOnTop( 1 );
  356. ladeAnimation->setSichtbar( 1 );
  357. int ret = 0;
  358. if( !registerClient )
  359. registerClient = mainClient->createRegisterServerClient();
  360. do
  361. {
  362. if( !registerClient )
  363. {
  364. lastError = mainClient->getLetzterFehler();
  365. continue;
  366. }
  367. if( !registerClient->verbinde() )
  368. {
  369. lastError = registerClient->getLetzterFehler();
  370. continue;
  371. }
  372. ret = registerClient->geheimnisÄndern( (const char*)arg1, (const char*)arg2, (const char*)arg3, (const char*)arg4 );
  373. if( !ret )
  374. {
  375. lastError = registerClient->getLetzterFehler();
  376. continue;
  377. }
  378. } while( 0 );
  379. registerClient->trenne( 0 );
  380. ladeAnimation->setSichtbar( 0 );
  381. hauptScreen->setOnTop( 0 );
  382. vorLogin->zGeheimnisÄndern()->setResult( ret );
  383. }
  384. break;
  385. case 11: // Account Geheimnis Vergessen
  386. // arg1 = char* -- Account Name
  387. // arg2 = char* -- Account Passwort
  388. if( 1 )
  389. {
  390. hauptScreen->setdeckFarbe( 0x00000000 );
  391. hauptScreen->setOnTop( 1 );
  392. ladeAnimation->setSichtbar( 1 );
  393. int ret = 0;
  394. if( !registerClient )
  395. registerClient = mainClient->createRegisterServerClient();
  396. do
  397. {
  398. if( !registerClient )
  399. {
  400. lastError = mainClient->getLetzterFehler();
  401. continue;
  402. }
  403. if( !registerClient->verbinde() )
  404. {
  405. lastError = registerClient->getLetzterFehler();
  406. continue;
  407. }
  408. ret = registerClient->geheimnisVergessen( (const char*)arg1, (const char*)arg2 );
  409. if( !ret )
  410. {
  411. lastError = registerClient->getLetzterFehler();
  412. continue;
  413. }
  414. } while( 0 );
  415. registerClient->trenne( 0 );
  416. ladeAnimation->setSichtbar( 0 );
  417. hauptScreen->setOnTop( 0 );
  418. vorLogin->zGeheimnisVergessen()->setResult( ret );
  419. }
  420. break;
  421. case 12: // Account Name Vergessen
  422. // arg1 = char* -- Account Passwort
  423. // arg2 = char* -- Account Geheimnis
  424. if( 1 )
  425. {
  426. hauptScreen->setdeckFarbe( 0x00000000 );
  427. hauptScreen->setOnTop( 1 );
  428. ladeAnimation->setSichtbar( 1 );
  429. int ret = 0;
  430. if( !registerClient )
  431. registerClient = mainClient->createRegisterServerClient();
  432. do
  433. {
  434. if( !registerClient )
  435. {
  436. lastError = mainClient->getLetzterFehler();
  437. continue;
  438. }
  439. if( !registerClient->verbinde() )
  440. {
  441. lastError = registerClient->getLetzterFehler();
  442. continue;
  443. }
  444. ret = registerClient->nameVergessen( (const char*)arg1, (const char*)arg2 );
  445. if( !ret )
  446. {
  447. lastError = registerClient->getLetzterFehler();
  448. continue;
  449. }
  450. } while( 0 );
  451. registerClient->trenne( 0 );
  452. ladeAnimation->setSichtbar( 0 );
  453. hauptScreen->setOnTop( 0 );
  454. vorLogin->zNameVergessen()->setResult( ret );
  455. }
  456. break;
  457. case 13: // Account Passwort Ändern
  458. // arg1 = char* -- Account Name
  459. // arg2 = char* -- Account Passwort
  460. // arg3 = char* -- Account Geheimnis
  461. // arg4 = char* -- Neues Passwort
  462. if( 1 )
  463. {
  464. hauptScreen->setdeckFarbe( 0x00000000 );
  465. hauptScreen->setOnTop( 1 );
  466. ladeAnimation->setSichtbar( 1 );
  467. int ret = 0;
  468. if( !registerClient )
  469. registerClient = mainClient->createRegisterServerClient();
  470. do
  471. {
  472. if( !registerClient )
  473. {
  474. lastError = mainClient->getLetzterFehler();
  475. continue;
  476. }
  477. if( !registerClient->verbinde() )
  478. {
  479. lastError = registerClient->getLetzterFehler();
  480. continue;
  481. }
  482. ret = registerClient->passwortÄndern( (const char*)arg1, (const char*)arg2, (const char*)arg3, (const char*)arg4 );
  483. if( !ret )
  484. {
  485. lastError = registerClient->getLetzterFehler();
  486. continue;
  487. }
  488. } while( 0 );
  489. registerClient->trenne( 0 );
  490. ladeAnimation->setSichtbar( 0 );
  491. hauptScreen->setOnTop( 0 );
  492. vorLogin->zPasswortÄndern()->setResult( ret );
  493. }
  494. break;
  495. case 14: // Account Passwort Vergessen
  496. // arg1 = char* -- Account Name
  497. // arg2 = char* -- Account Geheimnis
  498. if( 1 )
  499. {
  500. hauptScreen->setdeckFarbe( 0x00000000 );
  501. hauptScreen->setOnTop( 1 );
  502. ladeAnimation->setSichtbar( 1 );
  503. int ret = 0;
  504. if( !registerClient )
  505. registerClient = mainClient->createRegisterServerClient();
  506. do
  507. {
  508. if( !registerClient )
  509. {
  510. lastError = mainClient->getLetzterFehler();
  511. continue;
  512. }
  513. if( !registerClient->verbinde() )
  514. {
  515. lastError = registerClient->getLetzterFehler();
  516. continue;
  517. }
  518. ret = registerClient->passwortVergessen( (const char*)arg1, (const char*)arg2 );
  519. if( !ret )
  520. {
  521. lastError = registerClient->getLetzterFehler();
  522. continue;
  523. }
  524. } while( 0 );
  525. registerClient->trenne( 0 );
  526. ladeAnimation->setSichtbar( 0 );
  527. hauptScreen->setOnTop( 0 );
  528. vorLogin->zPasswortVergessen()->setResult( ret );
  529. }
  530. break;
  531. case 15: // Account Erstellen
  532. // arg1 = char* -- Account Name
  533. // arg2 = char* -- Account Passwort
  534. // arg3 = char* -- Account Geheimnis
  535. // arg4 = char* -- Account E-Mail
  536. // arg5 = Datum* -- Geburtsdatum
  537. if( 1 )
  538. {
  539. hauptScreen->setdeckFarbe( 0x00000000 );
  540. hauptScreen->setOnTop( 1 );
  541. ladeAnimation->setSichtbar( 1 );
  542. int ret = 0;
  543. if( !registerClient )
  544. registerClient = mainClient->createRegisterServerClient();
  545. do
  546. {
  547. if( !registerClient )
  548. {
  549. lastError = mainClient->getLetzterFehler();
  550. continue;
  551. }
  552. if( !registerClient->verbinde() )
  553. {
  554. lastError = registerClient->getLetzterFehler();
  555. continue;
  556. }
  557. ret = registerClient->accountErstellen( (const char*)arg1,
  558. (const char*)arg2,
  559. (const char*)arg3,
  560. (const char*)arg4,
  561. (unsigned short)( (Datum*)arg5 )->getJahr(),
  562. (char)( (Datum*)arg5 )->getMonat(),
  563. (char)( (Datum*)arg5 )->getTag() );
  564. if( !ret )
  565. {
  566. lastError = registerClient->getLetzterFehler();
  567. continue;
  568. }
  569. } while( 0 );
  570. registerClient->trenne( 0 );
  571. ladeAnimation->setSichtbar( 0 );
  572. hauptScreen->setOnTop( 0 );
  573. vorLogin->zRegistrierung()->setWeiterReturn( ret );
  574. ( (Datum*)arg5 )->release();
  575. }
  576. break;
  577. case 17: // account Löschen Fertig
  578. // arg1 = char* -- Account Name
  579. // arg2 = char* -- Account Passwort
  580. // arg3 = char* -- Account Geheimnis
  581. if( 1 )
  582. {
  583. hauptScreen->setdeckFarbe( 0x00000000 );
  584. hauptScreen->setOnTop( 1 );
  585. ladeAnimation->setSichtbar( 1 );
  586. int ret = 0;
  587. if( !registerClient )
  588. registerClient = mainClient->createRegisterServerClient();
  589. do
  590. {
  591. if( !registerClient )
  592. {
  593. lastError = mainClient->getLetzterFehler();
  594. continue;
  595. }
  596. if( !registerClient->verbinde() )
  597. {
  598. lastError = registerClient->getLetzterFehler();
  599. continue;
  600. }
  601. ret = registerClient->accountLöschen( (const char*)arg1, (const char*)arg2, (const char*)arg3 );
  602. if( !ret )
  603. {
  604. lastError = registerClient->getLetzterFehler();
  605. continue;
  606. }
  607. } while( 0 );
  608. registerClient->trenne( 0 );
  609. ladeAnimation->setSichtbar( 0 );
  610. hauptScreen->setOnTop( 0 );
  611. vorLogin->zUnregistrierung()->setWeiterReturn( ret );
  612. }
  613. break;
  614. case 19: // Spiel Laden
  615. if( 1 )
  616. {
  617. hauptScreen->setdeckFarbe( 0x00000000 );
  618. hauptScreen->setOnTop( 1 );
  619. ladeAnimation->setSichtbar( 1 );
  620. for( unsigned char deckAlpha = 0; deckAlpha < 255; )
  621. {
  622. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  623. Sleep( 40 );
  624. deckAlpha += 15;
  625. }
  626. hauptScreen->setdeckFarbe( 255 << 24 );
  627. _render = 0;
  628. hauptScreen->lock();
  629. int karteId = nachLogin->zSpielenFenster()->getKarteId();
  630. SpielerTeamStruktur *sts = nachLogin->zSpielenFenster()->getSTS();
  631. nachLogin->setAnzeige( NLAImSpiel );
  632. hauptScreen->unlock();
  633. _render = 1;
  634. nachLogin->zImSpiel()->beginnLaden( karteId, sts );
  635. ladeAnimation->setSichtbar( 0 );
  636. for( unsigned char deckAlpha = 255; deckAlpha > 0; )
  637. {
  638. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  639. Sleep( 40 );
  640. deckAlpha -= 15;
  641. }
  642. hauptScreen->setdeckFarbe( 0 << 24 );
  643. hauptScreen->setOnTop( 0 );
  644. }
  645. break;
  646. case 20: // Spiel Statistik laden
  647. if( 1 )
  648. {
  649. hauptScreen->setdeckFarbe( 0x00000000 );
  650. hauptScreen->setOnTop( 1 );
  651. ladeAnimation->setSichtbar( 1 );
  652. for( unsigned char deckAlpha = 0; deckAlpha < 255; )
  653. {
  654. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  655. Sleep( 40 );
  656. deckAlpha += 15;
  657. }
  658. hauptScreen->setdeckFarbe( 255 << 24 );
  659. _render = 0;
  660. hauptScreen->lock();
  661. int karteId = nachLogin->zImSpiel()->getKarteId();
  662. nachLogin->setAnzeige( NLANormal );
  663. hauptScreen->unlock();
  664. _render = 1;
  665. if( spielClient && spielClient->istVerbunden() )
  666. nachLogin->zSpielenFenster()->ladeSpielStatistik( karteId );
  667. ladeAnimation->setSichtbar( 0 );
  668. for( unsigned char deckAlpha = 255; deckAlpha > 0; )
  669. {
  670. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  671. Sleep( 40 );
  672. deckAlpha -= 15;
  673. }
  674. hauptScreen->setdeckFarbe( 0 << 24 );
  675. hauptScreen->setOnTop( 0 );
  676. }
  677. break;
  678. case 21: // Spiel Aufzeichnung betreten
  679. if( 1 )
  680. {
  681. hauptScreen->setdeckFarbe( 0x00000000 );
  682. hauptScreen->setOnTop( 1 );
  683. ladeAnimation->setSichtbar( 1 );
  684. for( unsigned char deckAlpha = 0; deckAlpha < 255; )
  685. {
  686. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  687. Sleep( 40 );
  688. deckAlpha += 15;
  689. }
  690. hauptScreen->setdeckFarbe( 255 << 24 );
  691. _render = 0;
  692. hauptScreen->lock();
  693. nachLogin->setAnzeige( NLASpielVideo );
  694. hauptScreen->unlock();
  695. _render = 1;
  696. ladeAnimation->setSichtbar( 0 );
  697. for( unsigned char deckAlpha = 255; deckAlpha > 0; )
  698. {
  699. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  700. Sleep( 40 );
  701. deckAlpha -= 15;
  702. }
  703. hauptScreen->setdeckFarbe( 0 << 24 );
  704. hauptScreen->setOnTop( 0 );
  705. }
  706. break;
  707. case 22: // Spiel Aufzeichnung / Editor verlassen
  708. if( 1 )
  709. {
  710. hauptScreen->setdeckFarbe( 0x00000000 );
  711. hauptScreen->setOnTop( 1 );
  712. ladeAnimation->setSichtbar( 1 );
  713. for( unsigned char deckAlpha = 0; deckAlpha < 255; )
  714. {
  715. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  716. Sleep( 40 );
  717. deckAlpha += 15;
  718. }
  719. hauptScreen->setdeckFarbe( 255 << 24 );
  720. _render = 0;
  721. hauptScreen->lock();
  722. nachLogin->setAnzeige( NLANormal );
  723. hauptScreen->unlock();
  724. _render = 1;
  725. ladeAnimation->setSichtbar( 0 );
  726. for( unsigned char deckAlpha = 255; deckAlpha > 0; )
  727. {
  728. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  729. Sleep( 40 );
  730. deckAlpha -= 15;
  731. }
  732. hauptScreen->setdeckFarbe( 0 << 24 );
  733. hauptScreen->setOnTop( 0 );
  734. }
  735. break;
  736. case 23: // Editor betreten
  737. if( 1 )
  738. {
  739. hauptScreen->setdeckFarbe( 0x00000000 );
  740. hauptScreen->setOnTop( 1 );
  741. ladeAnimation->setSichtbar( 1 );
  742. for( unsigned char deckAlpha = 0; deckAlpha < 255; )
  743. {
  744. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  745. Sleep( 40 );
  746. deckAlpha += 15;
  747. }
  748. hauptScreen->setdeckFarbe( 255 << 24 );
  749. _render = 0;
  750. hauptScreen->lock();
  751. nachLogin->setAnzeige( NLAEditor );
  752. hauptScreen->unlock();
  753. _render = 1;
  754. ladeAnimation->setSichtbar( 0 );
  755. for( unsigned char deckAlpha = 255; deckAlpha > 0; )
  756. {
  757. hauptScreen->setdeckFarbe( deckAlpha << 24 );
  758. Sleep( 40 );
  759. deckAlpha -= 15;
  760. }
  761. hauptScreen->setdeckFarbe( 0 << 24 );
  762. hauptScreen->setOnTop( 0 );
  763. }
  764. break;
  765. }
  766. release();
  767. }
  768. // constant
  769. // Reference Counting
  770. AktionsThread *AktionsThread::getThis()
  771. {
  772. ref++;
  773. return this;
  774. }
  775. AktionsThread *AktionsThread::release()
  776. {
  777. ref--;
  778. if( !ref )
  779. delete this;
  780. return 0;
  781. }