AktionsThread.cpp 30 KB

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