123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472 |
- #include "NachLogin.h"
- #include <Bildschirm.h>
- #include <DateiSystem.h>
- #include <Schrift.h>
- #include <Text.h>
- #include "../Global/Variablen.h"
- NachLogin::NachLogin()
- : Zeichnung()
- {
- fenster = 0;
- titel = 0;
- freunde = 0;
- chatLeiste = 0;
- nachrichtenListe = 0;
- spielenFenster = 0;
- shopFenster = 0;
- accountAnsehenFenster = 0;
- mgFenster = 0;
- newsFenster = 0;
- editorFenster = 0;
- spielAufzeichnung = 0;
- editor = 0;
- op = 0;
- status = NLALogin;
- }
- NachLogin::~NachLogin()
- {
- if (fenster) setAnzeige(NLALogin);
- if (editor) editor->release();
- }
- void NachLogin::login()
- {
- lockZeichnung();
- if (fenster) logout();
- fenster = uiFactory.createFenster(uiFactory.initParam);
- fenster->setStyle(Fenster::Style::Erlaubt | Fenster::Style::Sichtbar);
- fenster->setSize(uiFactory.initParam.bildschirm->getBackBufferSize());
- leistenFenster = uiFactory.createFenster(uiFactory.initParam);
- leistenFenster->setStyle(Fenster::Style::Erlaubt | Fenster::Style::Sichtbar
- | Fenster::Style::METransparenz);
- leistenFenster->setSize(
- uiFactory.initParam.bildschirm->getBackBufferSize());
- titel = new TitelLeiste(leistenFenster);
- spielenFenster = new Spiele(fenster, titel->getSpielenX());
- shopFenster = new Shop(fenster, titel->getSpielenX() + 101);
- accountAnsehenFenster
- = new AccountAnsehen(fenster, titel->getSpielenX() + 202);
- mgFenster = new MiniGames(fenster, titel->getSpielenX() + 303);
- newsFenster = new Neuigkeiten(fenster, titel->getSpielenX() + 404);
- editorFenster = new Editor(fenster, titel->getSpielenX());
- nachrichtenListe = new NachrichtenListe(leistenFenster);
- freunde = new FreundesListe(leistenFenster);
- chatLeiste = new ChatLeiste(leistenFenster);
- op = new Einstellungen(leistenFenster);
- imSpiel = new ImSpiel();
- fenster->addMember(dynamic_cast<Zeichnung*>(leistenFenster->getThis()));
- uiFactory.initParam.bildschirm->addMember(
- dynamic_cast<Zeichnung*>(getThis()));
- MausEreignis me;
- me.id = ME_RLinks;
- uiFactory.initParam.bildschirm->lock();
- titel->druckSpielen(me);
- uiFactory.initParam.bildschirm->unlock();
- status = NLANormal;
- unlockZeichnung();
- }
- void NachLogin::logout()
- {
- lockZeichnung();
- status = NLALogin;
- uiFactory.initParam.bildschirm->removeMember(this);
- if (spielenFenster) spielenFenster = (Spiele*)spielenFenster->release();
- if (shopFenster) shopFenster = (Shop*)shopFenster->release();
- if (accountAnsehenFenster)
- accountAnsehenFenster
- = (AccountAnsehen*)accountAnsehenFenster->release();
- if (mgFenster) mgFenster = (MiniGames*)mgFenster->release();
- if (newsFenster) newsFenster = (Neuigkeiten*)newsFenster->release();
- if (editorFenster) editorFenster = (Editor*)editorFenster->release();
- if (titel)
- {
- titel->warteAufThread(10000);
- titel->ende();
- titel = (TitelLeiste*)titel->release();
- }
- if (freunde)
- {
- freunde->warteAufThread(10000);
- freunde->ende();
- freunde = (FreundesListe*)freunde->release();
- }
- if (chatLeiste) chatLeiste = (ChatLeiste*)chatLeiste->release();
- if (nachrichtenListe)
- nachrichtenListe = (NachrichtenListe*)nachrichtenListe->release();
- if (leistenFenster) leistenFenster = (Fenster*)leistenFenster->release();
- if (fenster) fenster = (Fenster*)fenster->release();
- if (imSpiel) imSpiel = (ImSpiel*)imSpiel->release();
- if (op) op->release();
- unlockZeichnung();
- }
- void NachLogin::setSpielAufzeichnung(
- AufzeichnungV* video)
- {
- spielAufzeichnung = video;
- }
- void NachLogin::setEditor(EditorV* editor)
- {
- if (this->editor) this->editor->release();
- this->editor = editor;
- }
- void NachLogin::setAnzeige(NachLoginAnzeige s)
- {
- lockZeichnung();
- if (s == NLAImSpiel)
- {
- imSpiel->setSichtbar(1);
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- leistenFenster->doPublicMausEreignis(me);
- leistenFenster->removeStyle(Fenster::Style::Sichtbar);
- fenster->removeMember(leistenFenster);
- uiFactory.initParam.bildschirm->addMember(
- dynamic_cast<Zeichnung*>(leistenFenster->getThis()));
- titel->setImSpiel(1);
- }
- else if (status == NLAImSpiel)
- {
- imSpiel->setSichtbar(0);
- fenster->addMember(dynamic_cast<Zeichnung*>(leistenFenster->getThis()));
- uiFactory.initParam.bildschirm->removeMember(leistenFenster);
- leistenFenster->addStyle(Fenster::Style::Sichtbar);
- titel->setImSpiel(0);
- }
- if (s == NLASpielVideo)
- {
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- leistenFenster->doPublicMausEreignis(me);
- leistenFenster->removeStyle(Fenster::Style::Sichtbar);
- fenster->removeMember(leistenFenster);
- uiFactory.initParam.bildschirm->addMember(
- dynamic_cast<Zeichnung*>(leistenFenster->getThis()));
- titel->setImVideo(1);
- }
- else if (status == NLASpielVideo)
- {
- fenster->addMember(dynamic_cast<Zeichnung*>(leistenFenster->getThis()));
- uiFactory.initParam.bildschirm->removeMember(leistenFenster);
- leistenFenster->addStyle(Fenster::Style::Sichtbar);
- spielAufzeichnung = (AufzeichnungV*)spielAufzeichnung->release();
- titel->setImVideo(0);
- }
- if (s == NLAEditor)
- {
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- leistenFenster->doPublicMausEreignis(me);
- leistenFenster->removeStyle(Fenster::Style::Sichtbar);
- fenster->removeMember(leistenFenster);
- uiFactory.initParam.bildschirm->addMember(
- dynamic_cast<Zeichnung*>(leistenFenster->getThis()));
- titel->setImSpiel(1);
- }
- else if (status == NLAEditor)
- {
- fenster->addMember(dynamic_cast<Zeichnung*>(leistenFenster->getThis()));
- uiFactory.initParam.bildschirm->removeMember(leistenFenster);
- leistenFenster->addStyle(Fenster::Style::Sichtbar);
- editor = (EditorV*)editor->release();
- titel->setImSpiel(0);
- }
- if (s == NLALogin)
- logout();
- else
- {
- if (!fenster)
- login();
- else
- status = s;
- }
- unlockZeichnung();
- }
- void NachLogin::hideBars()
- {
- leistenFenster->removeStyle(Fenster::Style::Sichtbar);
- }
- void NachLogin::showBars()
- {
- leistenFenster->addStyle(Fenster::Style::Sichtbar);
- }
- void NachLogin::doPublicMausEreignis(MausEreignis& me)
- {
- if (status == NLASpielVideo)
- {
- lockZeichnung();
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->doPublicMausEreignis(me);
- else
- {
- spielAufzeichnung->doPublicMausEreignis(me);
- if (spielAufzeichnung->hatVerlassen(1))
- {
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- spielAufzeichnung->doPublicMausEreignis(me);
- aktion = 8;
- }
- }
- unlockZeichnung();
- return;
- }
- if (status == NLAEditor)
- {
- lockZeichnung();
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->doPublicMausEreignis(me);
- else
- {
- editor->doPublicMausEreignis(me);
- if (editor->hatVerlassen(1))
- {
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- editor->doPublicMausEreignis(me);
- aktion = 8;
- }
- }
- unlockZeichnung();
- return;
- }
- if (status == NLAImSpiel)
- {
- lockZeichnung();
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->doPublicMausEreignis(me);
- else
- imSpiel->doPublicMausEreignis(me);
- unlockZeichnung();
- return;
- }
- if (status != NLANormal) return;
- lockZeichnung();
- if (fenster) fenster->doPublicMausEreignis(me);
- unlockZeichnung();
- }
- void NachLogin::doTastaturEreignis(TastaturEreignis& te)
- {
- if (status == NLASpielVideo)
- {
- lockZeichnung();
- if (te.virtualKey == T_F2 && te.id == TE_Release)
- {
- leistenFenster->setStyle(Fenster::Style::Sichtbar,
- !leistenFenster->hatStyle(Fenster::Style::Sichtbar));
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- leistenFenster->doPublicMausEreignis(me);
- }
- else
- {
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->doTastaturEreignis(te);
- else
- spielAufzeichnung->doTastaturEreignis(te);
- }
- unlockZeichnung();
- return;
- }
- if (status == NLAEditor)
- {
- lockZeichnung();
- if (te.virtualKey == T_F2 && te.id == TE_Release)
- {
- leistenFenster->setStyle(Fenster::Style::Sichtbar,
- !leistenFenster->hatStyle(Fenster::Style::Sichtbar));
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- leistenFenster->doPublicMausEreignis(me);
- }
- else
- {
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->doTastaturEreignis(te);
- else
- editor->doTastaturEreignis(te);
- }
- unlockZeichnung();
- return;
- }
- if (status == NLAImSpiel)
- {
- lockZeichnung();
- if (te.virtualKey == T_F2 && te.id == TE_Release)
- {
- leistenFenster->setStyle(Fenster::Style::Sichtbar,
- !leistenFenster->hatStyle(Fenster::Style::Sichtbar));
- MausEreignis me = {ME_Bewegung, -1, -1, 0, 0};
- leistenFenster->doPublicMausEreignis(me);
- }
- else
- {
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->doTastaturEreignis(te);
- else
- imSpiel->doTastaturEreignis(te);
- }
- unlockZeichnung();
- return;
- }
- if (status != NLANormal) return;
- if (te.virtualKey == T_F2 && te.id == TE_Release)
- {
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- hideBars();
- else
- showBars();
- }
- lockZeichnung();
- if (fenster) fenster->doTastaturEreignis(te);
- unlockZeichnung();
- }
- bool NachLogin::tick(double tickVal)
- {
- if (status == NLASpielVideo)
- {
- lockZeichnung();
- bool ret = 0;
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- ret |= leistenFenster->tick(tickVal);
- ret |= spielAufzeichnung->tick(tickVal);
- unlockZeichnung();
- return ret;
- }
- if (status == NLAEditor)
- {
- lockZeichnung();
- bool ret = 0;
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- ret |= leistenFenster->tick(tickVal);
- ret |= editor->tick(tickVal);
- unlockZeichnung();
- return ret;
- }
- if (status == NLAImSpiel)
- {
- lockZeichnung();
- bool ret = 0;
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- ret |= leistenFenster->tick(tickVal);
- ret |= imSpiel->tick(tickVal);
- unlockZeichnung();
- return ret;
- }
- if (status != NLANormal) return 0;
- lockZeichnung();
- bool ret = 0;
- if (titel) ret |= titel->tick();
- if (fenster) ret |= fenster->tick(tickVal);
- unlockZeichnung();
- return ret;
- }
- void NachLogin::render(Bild& zRObj)
- {
- if (status == NLASpielVideo)
- {
- lockZeichnung();
- spielAufzeichnung->render(zRObj);
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->render(zRObj);
- unlockZeichnung();
- return;
- }
- if (status == NLAEditor)
- {
- lockZeichnung();
- editor->render(zRObj);
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->render(zRObj);
- unlockZeichnung();
- return;
- }
- if (status == NLAImSpiel)
- {
- lockZeichnung();
- imSpiel->render(zRObj);
- if (leistenFenster->hatStyle(Fenster::Style::Sichtbar))
- leistenFenster->render(zRObj);
- unlockZeichnung();
- return;
- }
- if (status != NLANormal) return;
- lockZeichnung();
- if (fenster) fenster->render(zRObj);
- unlockZeichnung();
- }
- TitelLeiste* NachLogin::zTitelLeiste() const
- {
- return titel;
- }
- FreundesListe*
- NachLogin::zFreundesListe() const
- {
- return freunde;
- }
- ChatLeiste* NachLogin::zChatLeiste() const
- {
- return chatLeiste;
- }
- NachrichtenListe*
- NachLogin::zNachrichtenListe() const
- {
- return nachrichtenListe;
- }
- Spiele* NachLogin::zSpielenFenster() const
- {
- return spielenFenster;
- }
- Shop* NachLogin::zShopFenster() const
- {
- return shopFenster;
- }
- AccountAnsehen* NachLogin::zAccountAnsehenFenster()
- const
- {
- return accountAnsehenFenster;
- }
- MiniGames* NachLogin::zMGFenster() const
- {
- return mgFenster;
- }
- Neuigkeiten* NachLogin::zNewsFenster() const
- {
- return newsFenster;
- }
- Editor* NachLogin::zEditorFenster() const
- {
- return editorFenster;
- }
- ImSpiel* NachLogin::zImSpiel() const
- {
- return imSpiel;
- }
- Einstellungen*
- NachLogin::zEinstellungen() const
- {
- return op;
- }
|