KESSVorschau.cpp 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666
  1. #include "KESSVorschau.h"
  2. #include "../../../../Global/Variablen.h"
  3. #include "../../../../Global/Initialisierung.h"
  4. #include <DateiSystem.h>
  5. #include <Globals.h>
  6. void kESSVorschauKSGSAktion(void* p, RCArray< KSGSVariable >* parameter, KSGSVariable** retVal)
  7. {
  8. if (!p)
  9. return;
  10. ((KESSVorschauKarteScript*)p)->ksgsAktion(parameter, retVal);
  11. }
  12. // Inhalt der KESSVorschauKarteScript Klasse aus KESSVorschau.h
  13. // Konstruktor
  14. KESSVorschauKarteScript::KESSVorschauKarteScript(TextFeld* zLog)
  15. : Thread()
  16. {
  17. ksgs = Framework::getDLLRegister()->ladeDLL("KSGScript.dll", "data/bin/KSGScript.dll");
  18. if (ksgs)
  19. {
  20. KSGSGetZeichnung getKSGScript = (KSGSGetZeichnung)GetProcAddress(ksgs, KSGS_START_FUNKTION);
  21. if (getKSGScript)
  22. {
  23. fenster = getKSGScript();
  24. fenster->setSchriftZ(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
  25. fenster->setSize(555, 380);
  26. fenster->setCallbackParam(this);
  27. fenster->setCallbackFunktion(kESSVorschauKSGSAktion);
  28. fenster->setLog(dynamic_cast<TextFeld*>(zLog->getThis()));
  29. }
  30. else
  31. {
  32. fenster = 0;
  33. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  34. new Text("Der Einstiegspunkt '" KSGS_START_FUNKTION "' in der DLL-Datei "
  35. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  36. new Text("Ok"), 0);
  37. }
  38. }
  39. else
  40. {
  41. fenster = 0;
  42. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  43. new Text("Die DLL-Datei 'data/bin/KSGScript.dll' konnte nicht geladen werden."),
  44. new Text("Ok"), 0);
  45. }
  46. ram = new LRahmen();
  47. ram->setSize(555, 380);
  48. ram->setFarbe(0xFFFFFFFF);
  49. pos = Punkt(220, 10);
  50. sichtbar = 0;
  51. besitztTestVersion = 0;
  52. verbleibend = 0;
  53. vollversionErwerbbar = 1;
  54. testversionErwerbbar = 1;
  55. vvPreis = 0;
  56. tvPreis = 0;
  57. kupfer = 0;
  58. alpha = 0;
  59. aktion = 0;
  60. ak = 0;
  61. }
  62. // Destruktor
  63. KESSVorschauKarteScript::~KESSVorschauKarteScript()
  64. {
  65. if (fenster)
  66. {
  67. fenster->reset();
  68. fenster->release();
  69. }
  70. ram->release();
  71. if (ksgs)
  72. Framework::getDLLRegister()->releaseDLL("KSGScript.dll");
  73. }
  74. // nicht constant
  75. void KESSVorschauKarteScript::thread()
  76. {
  77. sichtbar = 0;
  78. while (alpha)
  79. Sleep(100);
  80. if (ak == 1)
  81. {
  82. pfad += "/seite/seite.ksgs";
  83. if (fenster)
  84. fenster->setScriptDatei(pfad);
  85. }
  86. fenster->neuLaden();
  87. sichtbar = 1;
  88. ak = 0;
  89. run = 0;
  90. }
  91. void KESSVorschauKarteScript::setScriptParams(bool hatTV, int tvVerb, bool vvEn, bool tvEn, int vvK, int tvK, int k)
  92. {
  93. besitztTestVersion = hatTV;
  94. verbleibend = tvVerb;
  95. vollversionErwerbbar = vvEn;
  96. testversionErwerbbar = tvEn;
  97. vvPreis = vvK;
  98. tvPreis = tvK;
  99. kupfer = k;
  100. if (sichtbar)
  101. {
  102. ak = 2;
  103. start();
  104. }
  105. }
  106. void KESSVorschauKarteScript::ladeKarteSeite(const char* pfad)
  107. {
  108. if (run)
  109. warteAufThread(5000);
  110. if (run)
  111. ende();
  112. this->pfad = pfad;
  113. ak = 1;
  114. start();
  115. }
  116. void KESSVorschauKarteScript::ksgsAktion(RCArray< KSGSVariable >* parameter, KSGSVariable** retVal)
  117. {
  118. KSGSVariable* befehl = parameter->z(0);
  119. if (!befehl)
  120. return;
  121. Text* b = befehl->getText();
  122. if (!b)
  123. return;
  124. if (b->istGleich("GetBesitzStatus"))
  125. {
  126. int besitz = (int)besitztTestVersion;
  127. KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
  128. if (getKSGSVariable)
  129. {
  130. KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += besitz).getText() };
  131. *retVal = getKSGSVariable(fenster, &def);
  132. }
  133. else
  134. {
  135. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  136. new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
  137. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  138. new Text("Ok"), 0);
  139. }
  140. b->release();
  141. return;
  142. }
  143. if (b->istGleich("GetPreis"))
  144. {
  145. KSGSVariable* version = parameter->z(1);
  146. if (!version)
  147. {
  148. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  149. new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
  150. "Sie könnte eventuell nicht richtig funktionieren."),
  151. new Text("Ok"), 0);
  152. }
  153. else
  154. {
  155. bool testVersion = !version->getInt();
  156. int k = testVersion ? tvPreis : vvPreis;
  157. KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
  158. if (getKSGSVariable)
  159. {
  160. KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += k).getText() };
  161. *retVal = getKSGSVariable(fenster, &def);
  162. }
  163. else
  164. {
  165. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  166. new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
  167. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  168. new Text("Ok"), 0);
  169. }
  170. }
  171. b->release();
  172. return;
  173. }
  174. if (b->istGleich("GetTestVersionVerbleibend"))
  175. {
  176. KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
  177. if (getKSGSVariable)
  178. {
  179. KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += verbleibend).getText() };
  180. *retVal = getKSGSVariable(fenster, &def);
  181. }
  182. else
  183. {
  184. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  185. new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
  186. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  187. new Text("Ok"), 0);
  188. }
  189. b->release();
  190. return;
  191. }
  192. if (b->istGleich("GetErwerbbarStatus"))
  193. {
  194. int erwerbbar = ((int)testversionErwerbbar & 0x1) | (((int)vollversionErwerbbar << 1) & 0x2);
  195. KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
  196. if (getKSGSVariable)
  197. {
  198. KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += erwerbbar).getText() };
  199. *retVal = getKSGSVariable(fenster, &def);
  200. }
  201. else
  202. {
  203. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  204. new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
  205. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  206. new Text("Ok"), 0);
  207. }
  208. b->release();
  209. return;
  210. }
  211. if (b->istGleich("GetKupfer"))
  212. {
  213. KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
  214. if (getKSGSVariable)
  215. {
  216. KSGSVariableDef def = { KSGS_INT, 0, 3, (Text() += kupfer).getText() };
  217. *retVal = getKSGSVariable(fenster, &def);
  218. }
  219. else
  220. {
  221. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  222. new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
  223. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  224. new Text("Ok"), 0);
  225. }
  226. b->release();
  227. return;
  228. }
  229. if (b->istGleich("Kaufen"))
  230. {
  231. KSGSVariable* version = parameter->z(1);
  232. if (!version)
  233. {
  234. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  235. new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
  236. "Sie könnte eventuell nicht richtig funktionieren."),
  237. new Text("Ok"), 0);
  238. }
  239. b->release();
  240. return;
  241. }
  242. if (b->istGleich("GetBild"))
  243. {
  244. KSGSVariable* pfad = parameter->z(1);
  245. KSGSVariable* name = parameter->z(2);
  246. if (!pfad || !name)
  247. {
  248. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  249. new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
  250. "Sie könnte eventuell nicht richtig funktionieren."),
  251. new Text("Ok"), 0);
  252. }
  253. else
  254. {
  255. Text* pf = pfad->getText();
  256. Text* n = name->getText();
  257. if (!pf || !n)
  258. {
  259. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  260. new Text("Auf dieser Seite befindet sich ein Fehler im KSG-Script. "
  261. "Sie könnte eventuell nicht richtig funktionieren."),
  262. new Text("Ok"), 0);
  263. }
  264. else
  265. {
  266. KSGSGetVariable getKSGSVariable = (KSGSGetVariable)GetProcAddress(ksgs, KSGS_VARIABLE_FUNKTION);
  267. if (getKSGSVariable)
  268. {
  269. int p = n->positionVon(".ltdb/");
  270. if (p < 0)
  271. p = 0;
  272. else
  273. p += 6;
  274. Text nn = Text(pf->getText()) + "/" + (const char*)(n->getText() + p);
  275. Bild* b = bilder->get(nn);
  276. if (b)
  277. {
  278. KSGSVariableDef def = { KSGS_BILD, 0, 3, "" };
  279. KSGSVariable* ret = getKSGSVariable(fenster, &def);
  280. KSGSSetBild setKSGSBild = (KSGSSetBild)GetProcAddress(ksgs, KSGS_SET_BILD_FUNKTION);
  281. if (!setKSGSBild)
  282. {
  283. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  284. new Text("Der Einstiegspunkt '" KSGS_SET_BILD_FUNKTION "' in der DLL-Datei "
  285. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  286. new Text("Ok"), 0);
  287. b->release();
  288. }
  289. else
  290. setKSGSBild(ret, b);
  291. *retVal = ret;
  292. }
  293. }
  294. else
  295. {
  296. nachLogin->zNachrichtenListe()->addNachricht(new Text("Fehler"),
  297. new Text("Der Einstiegspunkt '" KSGS_VARIABLE_FUNKTION "' in der DLL-Datei "
  298. "'data/bin/KSGScript.dll' konnte nicht gefunden werden."),
  299. new Text("Ok"), 0);
  300. }
  301. }
  302. if (pf)
  303. pf->release();
  304. if (n)
  305. n->release();
  306. }
  307. b->release();
  308. return;
  309. }
  310. }
  311. void KESSVorschauKarteScript::doPublicMausEreignis(MausEreignis& me)
  312. {
  313. me.mx -= pos.x;
  314. me.my -= pos.y;
  315. if (fenster)
  316. fenster->doPublicMausEreignis(me);
  317. me.mx += pos.x;
  318. me.my += pos.y;
  319. }
  320. void KESSVorschauKarteScript::doTastaturEreignis(TastaturEreignis& te)
  321. {
  322. if (fenster)
  323. fenster->doTastaturEreignis(te);
  324. }
  325. bool KESSVorschauKarteScript::tick(double zeit)
  326. {
  327. bool rend = fenster ? fenster->tick(zeit) : 0;
  328. if (!sichtbar && alpha > 0)
  329. {
  330. if (alpha - zeit * 150 < 0)
  331. alpha = 0;
  332. else
  333. alpha -= (unsigned char)(zeit * 150);
  334. rend = 1;
  335. }
  336. if (sichtbar && alpha < 255)
  337. {
  338. if (alpha + zeit * 150 > 255)
  339. alpha = 255;
  340. else
  341. alpha += (unsigned char)(zeit * 150);
  342. rend = 1;
  343. }
  344. return rend;
  345. }
  346. void KESSVorschauKarteScript::render(Bild& zRObj)
  347. {
  348. if (!zRObj.setDrawOptions(pos.x, pos.y, ram->getBreite(), ram->getHeight()))
  349. return;
  350. zRObj.setAlpha(alpha);
  351. ram->render(zRObj);
  352. if (fenster)
  353. fenster->render(zRObj);
  354. zRObj.releaseAlpha();
  355. zRObj.releaseDrawOptions();
  356. }
  357. // Inhalt der KESSVorschauKarte Klasse aus KESSVorschau.h
  358. // Konstruktor
  359. KESSVorschauKarte::KESSVorschauKarte()
  360. : ReferenceCounter()
  361. {
  362. auswählen = initKnopf(173, 73, 22, 22, 0, "");
  363. auswählen->setStyle(Knopf::Style::Sichtbar | Knopf::Style::Erlaubt | Knopf::Style::Rahmen | Knopf::Style::Hintergrund | Knopf::Style::HBild | Knopf::Style::KlickBuffer);
  364. auswählen->setHintergrundBildZ(bilder->get("data/client/bilder/shop.ltdb/weiter.png"));
  365. initToolTip(auswählen, "Karte auswählen.");
  366. auswählen->setRahmenBreite(1);
  367. hintergrund = 0;
  368. ausgewählt = new AlphaFeld();
  369. ausgewählt->setPosition(1, 1);
  370. ausgewählt->setSize(198, 98);
  371. ausgewählt->setFarbe(0x0000FF00);
  372. ausgewählt->setStrength(10);
  373. ram = new LRahmen();
  374. ram->setPosition(10, 10);
  375. ram->setSize(200, 100);
  376. ram->setFarbe(0xFFFFFFFF);
  377. ausw = 0;
  378. rend = 0;
  379. }
  380. // Destruktor
  381. KESSVorschauKarte::~KESSVorschauKarte()
  382. {
  383. auswählen->release();
  384. if (hintergrund)
  385. hintergrund->release();
  386. ausgewählt->release();
  387. ram->release();
  388. }
  389. // nicht constant
  390. void KESSVorschauKarte::ladeKarte(char* pfad)
  391. {
  392. LTDBDatei* datei = new LTDBDatei();
  393. Text* bdpf = new Text(pfad);
  394. bdpf->append("/titelbg.ltdb");
  395. datei->setDatei(bdpf);
  396. hintergrund = datei->laden(0, new Text("auswbg.jpg"));
  397. datei->release();
  398. }
  399. bool KESSVorschauKarte::doPublicMausEreignis(MausEreignis& me)
  400. {
  401. bool vera = me.verarbeitet;
  402. auswählen->doPublicMausEreignis(me);
  403. if (!vera && me.verarbeitet && me.id == ME_RLinks)
  404. {
  405. ausw = 1;
  406. return 1;
  407. }
  408. return 0;
  409. }
  410. bool KESSVorschauKarte::tick(double zeit)
  411. {
  412. rend |= ausgewählt->tick(zeit);
  413. rend |= auswählen->tick(zeit);
  414. int a = (ausgewählt->getFarbe() >> 24) & 0xFF;
  415. if (ausw && a < 255)
  416. {
  417. if (a + 150 * zeit > 255)
  418. a = 255;
  419. else
  420. a += (int)(zeit * 150);
  421. ausgewählt->setFarbe(((a << 24) & 0xFF000000) | (ausgewählt->getFarbe() & 0xFFFFFF));
  422. rend = 1;
  423. }
  424. if (!ausw && a > 0)
  425. {
  426. if (a - 150 * zeit < 0)
  427. a = 0;
  428. else
  429. a += (int)(zeit * 150);
  430. ausgewählt->setFarbe(((a << 24) & 0xFF000000) | (ausgewählt->getFarbe() & 0xFFFFFF));
  431. rend = 1;
  432. }
  433. bool ret = rend;
  434. rend = 0;
  435. return ret;
  436. }
  437. void KESSVorschauKarte::render(Bild& zRObj)
  438. {
  439. ram->render(zRObj);
  440. if (!zRObj.setDrawOptions(ram->getX(), ram->getY(), 200, 100))
  441. return;
  442. if (hintergrund)
  443. zRObj.drawBild(1, 1, 198, 98, *hintergrund);
  444. ausgewählt->render(zRObj);
  445. auswählen->render(zRObj);
  446. zRObj.releaseDrawOptions();
  447. }
  448. // Inhalt der KESSVorschau Klasse aus KESSVorschau.h
  449. // Konstruktor
  450. KESSVorschau::KESSVorschau()
  451. : Zeichnung()
  452. {
  453. tr = new TextRenderer(dynamic_cast<Schrift*>(uiFactory.initParam.schrift->getThis()));
  454. log = initTextFeld(10, 400, 860, 90, TextFeld::Style::TextGebiet & ~TextFeld::Style::Erlaubt, "Log:\n");
  455. script = new KESSVorschauKarteScript(log);
  456. karte = new KESSVorschauKarte();
  457. beenden = initKnopf(10, 500, 100, 20, Knopf::Style::Sichtbar, "Zurück");
  458. besitztTestVersion = initAuswahlBox(10, 120, 200, 20, ABSTYLE, { "Besitzt Testversion nicht", "Besitzt Testversion" });
  459. spieleVerbleibend = initTextFeld(110, 150, 100, 20, TextFeld::Style::TextFeld, "0");
  460. spieleVerbleibend->setTastaturEreignis(_nurNummernTE);
  461. vvErwerbbar = initAuswahlBox(10, 180, 200, 20, ABSTYLE, { "Vollversion erwerbbar", "Vollversion nicht erwerbbar" });
  462. tvErwerbbar = initAuswahlBox(10, 210, 200, 20, ABSTYLE, { "Testversion erwerbbar", "Testversion nicht erwerbbar" });
  463. vvPreis = initTextFeld(110, 240, 100, 20, TextFeld::Style::TextFeld, "0");
  464. vvPreis->setTastaturEreignis(_nurNummernTE);
  465. tvPreis = initTextFeld(110, 270, 100, 20, TextFeld::Style::TextFeld, "0");
  466. tvPreis->setTastaturEreignis(_nurNummernTE);
  467. kupfer = initTextFeld(110, 300, 100, 20, TextFeld::Style::TextFeld, "0");
  468. pfad = "";
  469. alpha = 0;
  470. sichtbar = 0;
  471. tickVal = 0;
  472. aktion = 0;
  473. rend = 0;
  474. }
  475. // Destruktor
  476. KESSVorschau::~KESSVorschau()
  477. {
  478. tr->release();
  479. script->release();
  480. karte->release();
  481. beenden->release();
  482. besitztTestVersion->release();
  483. spieleVerbleibend->release();
  484. vvErwerbbar->release();
  485. tvErwerbbar->release();
  486. vvPreis->release();
  487. tvPreis->release();
  488. kupfer->release();
  489. log->release();
  490. }
  491. // nicht constant
  492. int KESSVorschau::getAktion()
  493. {
  494. int ret = aktion;
  495. aktion = 0;
  496. return ret;
  497. }
  498. void KESSVorschau::ladeKarte(char* pfad)
  499. {
  500. karte->ladeKarte(pfad);
  501. this->pfad = pfad;
  502. }
  503. void KESSVorschau::setSichtbar(bool sicht)
  504. {
  505. sichtbar = sicht;
  506. }
  507. void KESSVorschau::doPublicMausEreignis(MausEreignis& me)
  508. {
  509. if (!sichtbar)
  510. return;
  511. bool paramUpdate = 0;
  512. int ausw = vvErwerbbar->getAuswahl();
  513. vvErwerbbar->doPublicMausEreignis(me);
  514. if (ausw != vvErwerbbar->getAuswahl() && me.id == ME_RLinks)
  515. {
  516. vvErwerbbar->einklappen();
  517. paramUpdate = 1;
  518. }
  519. ausw = tvErwerbbar->getAuswahl();
  520. tvErwerbbar->doPublicMausEreignis(me);
  521. if (ausw != tvErwerbbar->getAuswahl() && me.id == ME_RLinks)
  522. {
  523. tvErwerbbar->einklappen();
  524. paramUpdate = 1;
  525. }
  526. ausw = besitztTestVersion->getAuswahl();
  527. besitztTestVersion->doPublicMausEreignis(me);
  528. if (ausw != besitztTestVersion->getAuswahl() && me.id == ME_RLinks)
  529. {
  530. besitztTestVersion->einklappen();
  531. paramUpdate = 1;
  532. }
  533. script->doPublicMausEreignis(me);
  534. if (karte->doPublicMausEreignis(me))
  535. script->ladeKarteSeite(pfad);
  536. bool vera = me.verarbeitet;
  537. beenden->doPublicMausEreignis(me);
  538. if (!vera && me.verarbeitet && me.id == ME_RLinks)
  539. aktion = 1;
  540. vvPreis->doPublicMausEreignis(me);
  541. tvPreis->doPublicMausEreignis(me);
  542. kupfer->doPublicMausEreignis(me);
  543. spieleVerbleibend->doPublicMausEreignis(me);
  544. log->doPublicMausEreignis(me);
  545. if (paramUpdate)
  546. {
  547. script->setScriptParams(besitztTestVersion->getAuswahl() == 1, (int)*spieleVerbleibend->zText(), vvErwerbbar->getAuswahl() == 0,
  548. tvErwerbbar->getAuswahl() == 0, (int)*vvPreis->zText(), (int)*tvPreis->zText(), (int)*kupfer->zText());
  549. }
  550. }
  551. void KESSVorschau::doTastaturEreignis(TastaturEreignis& te)
  552. {
  553. if (!sichtbar)
  554. return;
  555. if (!te.verarbeitet && te.id == TE_Release && te.taste == T_Enter)
  556. {
  557. if (spieleVerbleibend->hatStyle(TextFeld::Style::Fokus) || vvPreis->hatStyle(TextFeld::Style::Fokus) || tvPreis->hatStyle(TextFeld::Style::Fokus) || kupfer->hatStyle(TextFeld::Style::Fokus))
  558. {
  559. script->setScriptParams(besitztTestVersion->getAuswahl() == 1, (int)*spieleVerbleibend->zText(), vvErwerbbar->getAuswahl() == 0,
  560. tvErwerbbar->getAuswahl() == 0, (int)*vvPreis->zText(), (int)*tvPreis->zText(), (int)*kupfer->zText());
  561. }
  562. }
  563. script->doTastaturEreignis(te);
  564. spieleVerbleibend->doTastaturEreignis(te);
  565. vvPreis->doTastaturEreignis(te);
  566. tvPreis->doTastaturEreignis(te);
  567. kupfer->doTastaturEreignis(te);
  568. }
  569. bool KESSVorschau::tick(double zeit)
  570. {
  571. bool ret = script->tick(zeit);
  572. ret |= karte->tick(zeit);
  573. ret |= beenden->tick(zeit);
  574. ret |= spieleVerbleibend->tick(zeit);
  575. ret |= vvPreis->tick(zeit);
  576. ret |= tvPreis->tick(zeit);
  577. ret |= kupfer->tick(zeit);
  578. ret |= log->tick(zeit);
  579. ret |= tvErwerbbar->tick(zeit);
  580. ret |= vvErwerbbar->tick(zeit);
  581. ret |= besitztTestVersion->tick(zeit);
  582. tickVal += zeit * 150;
  583. int val = 0;
  584. if (tickVal > 1)
  585. val = (int)tickVal;
  586. else
  587. return ret;
  588. if (sichtbar && alpha != 255)
  589. {
  590. if (alpha + val > 255)
  591. alpha = 255;
  592. else
  593. alpha += val;
  594. ret = 1;
  595. }
  596. if (!sichtbar && alpha != 0)
  597. {
  598. if (alpha - val < 0)
  599. alpha = 0;
  600. else
  601. alpha -= val;
  602. ret = 1;
  603. }
  604. return ret;
  605. }
  606. void KESSVorschau::render(Bild& zRObj)
  607. {
  608. zRObj.setAlpha(alpha);
  609. script->render(zRObj);
  610. karte->render(zRObj);
  611. beenden->render(zRObj);
  612. spieleVerbleibend->render(zRObj);
  613. log->render(zRObj);
  614. vvPreis->render(zRObj);
  615. tvPreis->render(zRObj);
  616. kupfer->render(zRObj);
  617. tr->setSchriftSize(12);
  618. Text txt = "Test Spiele:";
  619. tr->renderText(10, 154, txt, zRObj, 0xFFFFFFFF);
  620. txt = "Voll Preis:";
  621. tr->renderText(10, 244, txt, zRObj, 0xFFFFFFFF);
  622. txt = "Test Preis:";
  623. tr->renderText(10, 274, txt, zRObj, 0xFFFFFFFF);
  624. txt = "Kupfer Besitz:";
  625. tr->renderText(10, 304, txt, zRObj, 0xFFFFFFFF);
  626. txt = "Diese Werte sind nur zum\nTesten und haben keinerlei\nEinfluss auf den Shop.";
  627. tr->renderText(10, 334, txt, zRObj, 0xFFFFFFFF);
  628. tvErwerbbar->render(zRObj);
  629. vvErwerbbar->render(zRObj);
  630. besitztTestVersion->render(zRObj);
  631. zRObj.releaseAlpha();
  632. }
  633. // constant
  634. bool KESSVorschau::istSichtbar() const
  635. {
  636. return sichtbar;
  637. }