KartenEditor.cpp 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716
  1. #include "KartenEditor.h"
  2. #include "../../../Global/Initialisierung.h"
  3. #include "../../../Global/Variablen.h"
  4. #include <KSGTDatei.h>
  5. #include <Globals.h>
  6. typedef EditorV *( *DllStart )( );
  7. // Inhalt der KartenEditor Klasse aus KartenEditor.h
  8. // Konstruktor
  9. KartenEditor::KartenEditor()
  10. {
  11. karteRelease = initKnopf( 10, 10, 100, 20, Knopf::Style::Sichtbar, "Karte Release" );
  12. shopSeite = initKnopf( 120, 10, 100, 20, Knopf::Style::Sichtbar, "Shop Seite" );
  13. beschreibung = initKnopf( 230, 10, 100, 20, Knopf::Style::Sichtbar, "Beschreibung" );
  14. teams = initKnopf( 340, 10, 100, 20, Knopf::Style::Sichtbar, "Teams" );
  15. dateien = initKnopf( 450, 10, 100, 20, Knopf::Style::Sichtbar, "Dateien" );
  16. editor = initKnopf( 560, 10, 100, 20, Knopf::Style::Sichtbar, "Editor" );
  17. kaufHistorie = initKnopf( 670, 10, 100, 20, Knopf::Style::Sichtbar, "Kauf Historie" );
  18. beenden = initKnopf( 790, 10, 100, 20, Knopf::Style::Sichtbar, "Beenden" );
  19. laden = (Animation2D *)ladeAnimation->dublizieren();
  20. laden->setPosition( 425, 275 );
  21. laden->setSichtbar( 0 );
  22. tickVal = 0;
  23. jetzt = 0;
  24. releaseF = 0;
  25. shopSeiteF = 0;
  26. beschreibungF = 0;
  27. teamsF = 0;
  28. dateienF = 0;
  29. kaufHF = 0;
  30. alpha = 0;
  31. alpha2 = 0;
  32. sichtbar = 0;
  33. editorDll = 0;
  34. editorF = 0;
  35. dllName = "";
  36. }
  37. // Destruktor
  38. KartenEditor::~KartenEditor()
  39. {
  40. karteRelease->release();
  41. shopSeite->release();
  42. beschreibung->release();
  43. teams->release();
  44. dateien->release();
  45. editor->release();
  46. kaufHistorie->release();
  47. beenden->release();
  48. laden->release();
  49. if( releaseF )
  50. {
  51. releaseF->warteAufThread( 10000 );
  52. releaseF->ende();
  53. releaseF->release();
  54. }
  55. if( shopSeiteF )
  56. {
  57. shopSeiteF->warteAufThread( 10000 );
  58. shopSeiteF->ende();
  59. shopSeiteF->release();
  60. }
  61. if( beschreibungF )
  62. {
  63. beschreibungF->warteAufThread( 10000 );
  64. beschreibungF->ende();
  65. beschreibungF->release();
  66. }
  67. if( teamsF )
  68. {
  69. teamsF->warteAufThread( 10000 );
  70. teamsF->ende();
  71. teamsF->release();
  72. }
  73. if( dateienF )
  74. {
  75. dateienF->warteAufThread( 10000 );
  76. dateienF->ende();
  77. dateienF->release();
  78. }
  79. if( kaufHF )
  80. {
  81. kaufHF->warteAufThread( 10000 );
  82. kaufHF->ende();
  83. kaufHF->release();
  84. }
  85. if( editorF )
  86. editorF->release();
  87. if( editorDll )
  88. Framework::getDLLRegister()->releaseDLL( dllName );
  89. }
  90. // nicht constant
  91. void KartenEditor::thread()
  92. {
  93. laden->setSichtbar( 1 );
  94. if( !editorClient->initEditor() )
  95. {
  96. editor->setAlphaFeldFarbe( 0x5500FF00 );
  97. editor->removeStyle( Knopf::Style::Erlaubt );
  98. nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( editorClient->getLetzterFehler() ), new Text( "Ok" ) );
  99. laden->setSichtbar( 0 );
  100. run = 0;
  101. return;
  102. }
  103. nachLogin->setEditor( dynamic_cast<EditorV *>( editorF->getThis() ) );
  104. aktion = 9;
  105. laden->setSichtbar( 0 );
  106. editorF->setSichtbar();
  107. }
  108. void KartenEditor::setKarte( int id )
  109. {
  110. jetzt = 0;
  111. uiFactory.initParam.bildschirm->lock();
  112. if( releaseF )
  113. {
  114. releaseF->warteAufThread( 10000 );
  115. releaseF->ende();
  116. releaseF->release();
  117. }
  118. if( shopSeiteF )
  119. {
  120. shopSeiteF->warteAufThread( 10000 );
  121. shopSeiteF->ende();
  122. shopSeiteF->release();
  123. }
  124. if( beschreibungF )
  125. {
  126. beschreibungF->warteAufThread( 10000 );
  127. beschreibungF->ende();
  128. beschreibungF->release();
  129. }
  130. if( teamsF )
  131. {
  132. teamsF->warteAufThread( 10000 );
  133. teamsF->ende();
  134. teamsF->release();
  135. }
  136. if( dateienF )
  137. {
  138. dateienF->warteAufThread( 10000 );
  139. dateienF->ende();
  140. dateienF->release();
  141. }
  142. if( kaufHF )
  143. {
  144. kaufHF->warteAufThread( 10000 );
  145. kaufHF->ende();
  146. kaufHF->release();
  147. }
  148. if( editorF )
  149. editorF->release();
  150. if( editorDll )
  151. Framework::getDLLRegister()->releaseDLL( dllName );
  152. releaseF = new KERelease( id );
  153. releaseF->setSichtbar( 1, 0 );
  154. karteRelease->setAlphaFeldFarbe( 0x0000FF00 );
  155. shopSeite->setAlphaFeldFarbe( 0x5500FF00 );
  156. beschreibung->setAlphaFeldFarbe( 0x5500FF00 );
  157. teams->setAlphaFeldFarbe( 0x5500FF00 );
  158. dateien->setAlphaFeldFarbe( 0x5500FF00 );
  159. editor->setAlphaFeldFarbe( 0x5500FF00 );
  160. kaufHistorie->setAlphaFeldFarbe( 0x5500FF00 );
  161. jetzt = 1;
  162. shopSeiteF = new KEShopSeite( id );
  163. beschreibungF = new KEBeschreibung( id );
  164. teamsF = new KETeams( id );
  165. dateienF = new KEDateien( id );
  166. kaufHF = new KEKaufHistorie( id );
  167. // Editor laden
  168. int spielArt = infoClient->getSpielId( id );
  169. KSGTDatei *dgt = new KSGTDatei( "data/dg.ksgt" );
  170. dgt->laden();
  171. bool sak = 0;
  172. int dgSId = infoClient->getDateiGruppeIdVonSpiel( spielArt );
  173. bool sgf = 0;
  174. for( int i = 0; i < dgt->getZeilenAnzahl(); i++ )
  175. {
  176. if( dgt->zFeld( i, 0 ) && TextZuInt( dgt->zFeld( i, 0 )->getText(), 10 ) == dgSId )
  177. {
  178. sgf = 1;
  179. int lv = dgt->zFeld( i, 2 ) ? TextZuInt( dgt->zFeld( i, 2 )->getText(), 10 ) : 0;
  180. int ov = infoClient->getSpielVersion( spielArt );
  181. if( lv == ov )
  182. {
  183. sak = 1;
  184. break;
  185. }
  186. }
  187. }
  188. dgt->release();
  189. if( !sak )
  190. {
  191. nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), new Text( "Deine Spiel Version ist nicht aktuell. Sie wird beim nächsten Spielstart aktualisiert. Bis dahin sind nicht alle Editorfunktionen verfügbar." ), new Text( "Ok" ), 0 );
  192. if( !sgf )
  193. {
  194. Text *pfad = infoClient->getDateiGruppePfad( dgSId );
  195. Text *idT = new Text();
  196. idT->append( dgSId );
  197. if( pfad )
  198. {
  199. KSGTDatei *dg = new KSGTDatei( "data/dg.ksgt" );
  200. dg->laden();
  201. RCArray< Text > *zeile = new RCArray< Text >();
  202. zeile->add( idT );
  203. zeile->add( pfad );
  204. zeile->add( new Text( "0" ) );
  205. zeile->add( new Text( "0" ) );
  206. dg->addZeile( 4, zeile );
  207. zeile->release();
  208. dg->speichern();
  209. dg->release();
  210. }
  211. else
  212. idT->release();
  213. }
  214. }
  215. else
  216. {
  217. Text pfad = "data/spiele/";
  218. dllName = "";
  219. dllName.append( infoClient->getSpielName( spielArt ) );
  220. pfad.append( dllName.getText() );
  221. pfad.append( "/bin/" );
  222. dllName.append( ".dll" );
  223. pfad.append( dllName.getText() );
  224. editorDll = Framework::getDLLRegister()->ladeDLL( dllName, pfad );
  225. if( !editorDll )
  226. {
  227. editor->removeStyle( Knopf::Style::Erlaubt );
  228. Text *err = new Text( "Fehler beim laden der Dll Datei '" );
  229. err->append( pfad.getText() );
  230. err->append( "'. Es stehen nicht alle Editorfunktionen zur verfügung." );
  231. nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), err, new Text( "Ok" ), 0 );
  232. }
  233. else
  234. {
  235. DllStart getEditorKlasse = (DllStart)GetProcAddress( editorDll, "getEditor" );
  236. if( !getEditorKlasse )
  237. {
  238. editor->removeStyle( Knopf::Style::Erlaubt );
  239. Text *err = new Text( "Der Einstiegspunkt 'getEditor' wurde in der Dll Datei '" );
  240. err->append( pfad.getText() );
  241. err->append( "' nicht gefunden. Es stehen nicht alle Editorfunktionen zur verfügung." );
  242. nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), err, new Text( "Ok" ), 0 );
  243. }
  244. else
  245. {
  246. editorF = getEditorKlasse();
  247. if( editorF )
  248. {
  249. editor->addStyle( Knopf::Style::Erlaubt );
  250. editorF->setUIFactory( uiFactory );
  251. editorF->setKlient( dynamic_cast<KSGClient::EditorServerClient *>( editorClient->getThis() ) );
  252. editorF->setLadeAnimation( (Animation2D *)ladeAnimation->dublizieren() );
  253. editor->addStyle( Knopf::Style::Sichtbar );
  254. }
  255. else
  256. {
  257. editor->removeStyle( Knopf::Style::Erlaubt );
  258. Text *err = new Text( "Der Editor wird von dieser Spielart noch nicht unterstützt. " );
  259. err->append( "Es stehen daher nicht alle Editorfunktionen zur verfügung." );
  260. nachLogin->zNachrichtenListe()->addNachricht( new Text( "Fehler" ), err, new Text( "Ok" ), 0 );
  261. }
  262. }
  263. }
  264. }
  265. uiFactory.initParam.bildschirm->unlock();
  266. }
  267. void KartenEditor::setSichtbar( bool s )
  268. {
  269. sichtbar = s;
  270. }
  271. void KartenEditor::doPublicMausEreignis( MausEreignis &me )
  272. {
  273. if( run )
  274. return;
  275. int aktion = 0;
  276. bool vera = me.verarbeitet;
  277. karteRelease->doPublicMausEreignis( me );
  278. if( !vera && me.verarbeitet )
  279. aktion = 1;
  280. vera = me.verarbeitet;
  281. shopSeite->doPublicMausEreignis( me );
  282. if( !vera && me.verarbeitet )
  283. aktion = 2;
  284. vera = me.verarbeitet;
  285. beschreibung->doPublicMausEreignis( me );
  286. if( !vera && me.verarbeitet )
  287. aktion = 3;
  288. vera = me.verarbeitet;
  289. teams->doPublicMausEreignis( me );
  290. if( !vera && me.verarbeitet )
  291. aktion = 4;
  292. vera = me.verarbeitet;
  293. dateien->doPublicMausEreignis( me );
  294. if( !vera && me.verarbeitet )
  295. aktion = 5;
  296. vera = me.verarbeitet;
  297. editor->doPublicMausEreignis( me );
  298. if( !vera && me.verarbeitet )
  299. aktion = 6;
  300. vera = me.verarbeitet;
  301. kaufHistorie->doPublicMausEreignis( me );
  302. if( !vera && me.verarbeitet )
  303. aktion = 7;
  304. vera = me.verarbeitet;
  305. beenden->doPublicMausEreignis( me );
  306. if( !vera && me.verarbeitet )
  307. aktion = 8;
  308. if( me.id == ME_RLinks && aktion )
  309. {
  310. switch( aktion )
  311. {
  312. case 1: // Release
  313. if( releaseF && !releaseF->istSichtbar() )
  314. {
  315. if( shopSeiteF && shopSeiteF->istSichtbar() )
  316. {
  317. shopSeite->setAlphaFeldFarbe( 0x5500FF00 );
  318. releaseF->setSichtbar( 1, 0 );
  319. shopSeiteF->setSichtbar( 0, 0 );
  320. }
  321. if( beschreibungF && beschreibungF->istSichtbar() )
  322. {
  323. beschreibung->setAlphaFeldFarbe( 0x5500FF00 );
  324. releaseF->setSichtbar( 1, 0 );
  325. beschreibungF->setSichtbar( 0, 0 );
  326. }
  327. if( teamsF && teamsF->istSichtbar() )
  328. {
  329. teams->setAlphaFeldFarbe( 0x5500FF00 );
  330. releaseF->setSichtbar( 1, 0 );
  331. teamsF->setSichtbar( 0, 0 );
  332. }
  333. if( dateienF && dateienF->istSichtbar() )
  334. {
  335. dateien->setAlphaFeldFarbe( 0x5500FF00 );
  336. releaseF->setSichtbar( 1, 0 );
  337. dateienF->setSichtbar( 0, 0 );
  338. }
  339. if( kaufHF && kaufHF->istSichtbar() )
  340. {
  341. kaufHistorie->setAlphaFeldFarbe( 0x5500FF00 );
  342. releaseF->setSichtbar( 1, 0 );
  343. kaufHF->setSichtbar( 0, 0 );
  344. }
  345. karteRelease->setAlphaFeldFarbe( 0x0000FF00 );
  346. jetzt = 1;
  347. }
  348. break;
  349. case 2: // Shop Seite
  350. if( shopSeiteF && !shopSeiteF->istSichtbar() )
  351. {
  352. if( releaseF && releaseF->istSichtbar() )
  353. {
  354. karteRelease->setAlphaFeldFarbe( 0x5500FF00 );
  355. shopSeiteF->setSichtbar( 1, 1 );
  356. releaseF->setSichtbar( 0, 1 );
  357. }
  358. if( beschreibungF && beschreibungF->istSichtbar() )
  359. {
  360. beschreibung->setAlphaFeldFarbe( 0x5500FF00 );
  361. shopSeiteF->setSichtbar( 1, 0 );
  362. beschreibungF->setSichtbar( 0, 0 );
  363. }
  364. if( teamsF && teamsF->istSichtbar() )
  365. {
  366. teams->setAlphaFeldFarbe( 0x5500FF00 );
  367. shopSeiteF->setSichtbar( 1, 0 );
  368. teamsF->setSichtbar( 0, 0 );
  369. }
  370. if( dateienF && dateienF->istSichtbar() )
  371. {
  372. dateien->setAlphaFeldFarbe( 0x5500FF00 );
  373. shopSeiteF->setSichtbar( 1, 0 );
  374. dateienF->setSichtbar( 0, 0 );
  375. }
  376. if( kaufHF && kaufHF->istSichtbar() )
  377. {
  378. kaufHistorie->setAlphaFeldFarbe( 0x5500FF00 );
  379. shopSeiteF->setSichtbar( 1, 0 );
  380. kaufHF->setSichtbar( 0, 0 );
  381. }
  382. shopSeite->setAlphaFeldFarbe( 0x0000FF00 );
  383. jetzt = 2;
  384. }
  385. break;
  386. case 3: // Beschreibung
  387. if( beschreibungF && !beschreibungF->istSichtbar() )
  388. {
  389. if( releaseF && releaseF->istSichtbar() )
  390. {
  391. karteRelease->setAlphaFeldFarbe( 0x5500FF00 );
  392. beschreibungF->setSichtbar( 1, 1 );
  393. releaseF->setSichtbar( 0, 1 );
  394. }
  395. if( shopSeiteF && shopSeiteF->istSichtbar() )
  396. {
  397. shopSeite->setAlphaFeldFarbe( 0x5500FF00 );
  398. beschreibungF->setSichtbar( 1, 1 );
  399. shopSeiteF->setSichtbar( 0, 1 );
  400. }
  401. if( teamsF && teamsF->istSichtbar() )
  402. {
  403. teams->setAlphaFeldFarbe( 0x5500FF00 );
  404. beschreibungF->setSichtbar( 1, 0 );
  405. teamsF->setSichtbar( 0, 0 );
  406. }
  407. if( dateienF && dateienF->istSichtbar() )
  408. {
  409. dateien->setAlphaFeldFarbe( 0x5500FF00 );
  410. beschreibungF->setSichtbar( 1, 0 );
  411. dateienF->setSichtbar( 0, 0 );
  412. }
  413. if( kaufHF && kaufHF->istSichtbar() )
  414. {
  415. kaufHistorie->setAlphaFeldFarbe( 0x5500FF00 );
  416. beschreibungF->setSichtbar( 1, 0 );
  417. kaufHF->setSichtbar( 0, 0 );
  418. }
  419. beschreibung->setAlphaFeldFarbe( 0x0000FF00 );
  420. jetzt = 3;
  421. }
  422. break;
  423. case 4: // Teams
  424. if( teamsF && !teamsF->istSichtbar() )
  425. {
  426. if( releaseF && releaseF->istSichtbar() )
  427. {
  428. karteRelease->setAlphaFeldFarbe( 0x5500FF00 );
  429. teamsF->setSichtbar( 1, 1 );
  430. releaseF->setSichtbar( 0, 1 );
  431. }
  432. if( shopSeiteF && shopSeiteF->istSichtbar() )
  433. {
  434. shopSeite->setAlphaFeldFarbe( 0x5500FF00 );
  435. teamsF->setSichtbar( 1, 1 );
  436. shopSeiteF->setSichtbar( 0, 1 );
  437. }
  438. if( beschreibungF && beschreibungF->istSichtbar() )
  439. {
  440. beschreibung->setAlphaFeldFarbe( 0x5500FF00 );
  441. teamsF->setSichtbar( 1, 1 );
  442. beschreibungF->setSichtbar( 0, 1 );
  443. }
  444. if( dateienF && dateienF->istSichtbar() )
  445. {
  446. dateien->setAlphaFeldFarbe( 0x5500FF00 );
  447. teamsF->setSichtbar( 1, 0 );
  448. dateienF->setSichtbar( 0, 0 );
  449. }
  450. if( kaufHF && kaufHF->istSichtbar() )
  451. {
  452. kaufHistorie->setAlphaFeldFarbe( 0x5500FF00 );
  453. teamsF->setSichtbar( 1, 0 );
  454. kaufHF->setSichtbar( 0, 0 );
  455. }
  456. teams->setAlphaFeldFarbe( 0x0000FF00 );
  457. jetzt = 4;
  458. }
  459. break;
  460. case 5: // Dateien
  461. if( dateienF && !dateienF->istSichtbar() )
  462. {
  463. if( releaseF && releaseF->istSichtbar() )
  464. {
  465. karteRelease->setAlphaFeldFarbe( 0x5500FF00 );
  466. dateienF->setSichtbar( 1, 1 );
  467. releaseF->setSichtbar( 0, 1 );
  468. }
  469. if( shopSeiteF && shopSeiteF->istSichtbar() )
  470. {
  471. shopSeite->setAlphaFeldFarbe( 0x5500FF00 );
  472. dateienF->setSichtbar( 1, 1 );
  473. shopSeiteF->setSichtbar( 0, 1 );
  474. }
  475. if( beschreibungF && beschreibungF->istSichtbar() )
  476. {
  477. beschreibung->setAlphaFeldFarbe( 0x5500FF00 );
  478. dateienF->setSichtbar( 1, 1 );
  479. beschreibungF->setSichtbar( 0, 1 );
  480. }
  481. if( teamsF && teamsF->istSichtbar() )
  482. {
  483. teams->setAlphaFeldFarbe( 0x5500FF00 );
  484. dateienF->setSichtbar( 1, 1 );
  485. teamsF->setSichtbar( 0, 1 );
  486. }
  487. if( kaufHF && kaufHF->istSichtbar() )
  488. {
  489. kaufHistorie->setAlphaFeldFarbe( 0x5500FF00 );
  490. dateienF->setSichtbar( 1, 0 );
  491. kaufHF->setSichtbar( 0, 0 );
  492. }
  493. dateien->setAlphaFeldFarbe( 0x0000FF00 );
  494. jetzt = 5;
  495. }
  496. break;
  497. case 6: // Editor
  498. if( editor )
  499. start();
  500. break;
  501. case 7:
  502. if( kaufHF && !kaufHF->istSichtbar() )
  503. {
  504. if( releaseF && releaseF->istSichtbar() )
  505. {
  506. karteRelease->setAlphaFeldFarbe( 0x5500FF00 );
  507. kaufHF->setSichtbar( 1, 1 );
  508. releaseF->setSichtbar( 0, 1 );
  509. }
  510. if( shopSeiteF && shopSeiteF->istSichtbar() )
  511. {
  512. shopSeite->setAlphaFeldFarbe( 0x5500FF00 );
  513. kaufHF->setSichtbar( 1, 1 );
  514. shopSeiteF->setSichtbar( 0, 1 );
  515. }
  516. if( beschreibungF && beschreibungF->istSichtbar() )
  517. {
  518. beschreibung->setAlphaFeldFarbe( 0x5500FF00 );
  519. kaufHF->setSichtbar( 1, 1 );
  520. beschreibungF->setSichtbar( 0, 1 );
  521. }
  522. if( teamsF && teamsF->istSichtbar() )
  523. {
  524. teams->setAlphaFeldFarbe( 0x5500FF00 );
  525. kaufHF->setSichtbar( 1, 1 );
  526. teamsF->setSichtbar( 0, 1 );
  527. }
  528. if( dateienF && dateienF->istSichtbar() )
  529. {
  530. dateien->setAlphaFeldFarbe( 0x5500FF00 );
  531. kaufHF->setSichtbar( 1, 1 );
  532. dateienF->setSichtbar( 0, 1 );
  533. }
  534. kaufHistorie->setAlphaFeldFarbe( 0x0000FF00 );
  535. jetzt = 7;
  536. }
  537. break;
  538. case 8:
  539. setSichtbar( 0 );
  540. break;
  541. }
  542. }
  543. switch( jetzt )
  544. {
  545. case 1:
  546. releaseF->doPublicMausEreignis( me );
  547. break;
  548. case 2:
  549. shopSeiteF->doPublicMausEreignis( me );
  550. break;
  551. case 3:
  552. beschreibungF->doPublicMausEreignis( me );
  553. break;
  554. case 4:
  555. teamsF->doPublicMausEreignis( me );
  556. break;
  557. case 5:
  558. dateienF->doPublicMausEreignis( me );
  559. break;
  560. case 7:
  561. kaufHF->doPublicMausEreignis( me );
  562. break;
  563. }
  564. }
  565. void KartenEditor::doTastaturEreignis( TastaturEreignis &te )
  566. {
  567. if( run )
  568. return;
  569. switch( jetzt )
  570. {
  571. case 1:
  572. releaseF->doTastaturEreignis( te );
  573. break;
  574. case 2:
  575. shopSeiteF->doTastaturEreignis( te );
  576. break;
  577. case 3:
  578. beschreibungF->doTastaturEreignis( te );
  579. break;
  580. case 4:
  581. teamsF->doTastaturEreignis( te );
  582. break;
  583. case 5:
  584. dateienF->doTastaturEreignis( te );
  585. break;
  586. case 7:
  587. kaufHF->doTastaturEreignis( te );
  588. break;
  589. }
  590. }
  591. bool KartenEditor::tick( double zeit )
  592. {
  593. bool ret = karteRelease->tick( zeit );
  594. ret |= laden->tick( zeit );
  595. ret |= shopSeite->tick( zeit );
  596. ret |= beschreibung->tick( zeit );
  597. ret |= teams->tick( zeit );
  598. ret |= dateien->tick( zeit );
  599. ret |= editor->tick( zeit );
  600. ret |= kaufHistorie->tick( zeit );
  601. ret |= beenden->tick( zeit );
  602. if( releaseF && releaseF->istSichtbar() )
  603. ret |= releaseF->tick( zeit );
  604. if( shopSeiteF && shopSeiteF->istSichtbar() )
  605. ret |= shopSeiteF->tick( zeit );
  606. if( beschreibungF && beschreibungF->istSichtbar() )
  607. ret |= beschreibungF->tick( zeit );
  608. if( teamsF && teamsF->istSichtbar() )
  609. ret |= teamsF->tick( zeit );
  610. if( dateienF && dateienF->istSichtbar() )
  611. ret |= dateienF->tick( zeit );
  612. if( kaufHF && kaufHF->istSichtbar() )
  613. ret |= kaufHF->tick( zeit );
  614. tickVal += zeit * 150;
  615. int val = (int)tickVal;
  616. if( val < 1 )
  617. return ret;
  618. if( sichtbar && run )
  619. {
  620. if( alpha != 100 )
  621. {
  622. if( alpha > 100 )
  623. {
  624. if( alpha - val <= 100 )
  625. alpha = 100;
  626. else
  627. alpha -= val;
  628. }
  629. if( alpha < 100 )
  630. {
  631. if( alpha + val >= 100 )
  632. alpha = 100;
  633. else
  634. alpha += val;
  635. }
  636. }
  637. if( alpha2 != 255 )
  638. {
  639. if( alpha2 + val >= 255 )
  640. alpha2 = 255;
  641. else
  642. alpha2 += val;
  643. }
  644. }
  645. else
  646. {
  647. if( sichtbar && alpha != 255 )
  648. {
  649. if( alpha + val >= 255 )
  650. alpha = 255;
  651. else
  652. alpha += val;
  653. }
  654. if( !sichtbar && alpha )
  655. {
  656. if( alpha - val <= 0 )
  657. alpha = 0;
  658. else
  659. alpha -= val;
  660. }
  661. if( alpha2 )
  662. {
  663. if( alpha2 - val <= 0 )
  664. alpha2 = 0;
  665. else
  666. alpha2 -= val;
  667. }
  668. }
  669. return ret;
  670. }
  671. void KartenEditor::render( Bild &zRObj )
  672. {
  673. if( !alpha )
  674. return;
  675. zRObj.setAlpha( alpha2 );
  676. laden->render( zRObj );
  677. zRObj.releaseAlpha();
  678. zRObj.setAlpha( alpha );
  679. karteRelease->render( zRObj );
  680. shopSeite->render( zRObj );
  681. beschreibung->render( zRObj );
  682. teams->render( zRObj );
  683. dateien->render( zRObj );
  684. editor->render( zRObj );
  685. kaufHistorie->render( zRObj );
  686. beenden->render( zRObj );
  687. if( releaseF )
  688. releaseF->render( zRObj );
  689. if( shopSeiteF )
  690. shopSeiteF->render( zRObj );
  691. if( beschreibungF )
  692. beschreibungF->render( zRObj );
  693. if( teamsF )
  694. teamsF->render( zRObj );
  695. if( dateienF )
  696. dateienF->render( zRObj );
  697. if( kaufHF )
  698. kaufHF->render( zRObj );
  699. zRObj.releaseAlpha();
  700. }
  701. // constant
  702. bool KartenEditor::istSichtbar() const
  703. {
  704. return sichtbar;
  705. }