123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661 |
- #include "AccountAnsehen.h"
- #include "../../Global/Variablen.h"
- #include "../../Global/Initialisierung.h"
- #include <Punkt.h>
- #include <Rahmen.h>
- // inhalt der AccountAnsehen Klasse aus AccountAnsehen.h
- // Konstruktor
- AccountAnsehen::AccountAnsehen( Schrift *zSchrift, Fenster *zNachLoginFenster, int x )
- : Zeichnung(),
- laden( (Animation2D*)ladeAnimation->dublizieren() ),
- bildschirmGröße( BildschirmGröße() ),
- rahmen( new LRahmen() ),
- aktivitätK( initKnopf( 145, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spieler Aktivität" ) ),
- historieK( initKnopf( 665, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spiel Historie" ) ),
- spieleUndKartenK( initKnopf( 275, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spiele / Karten" ) ),
- spielPartnerK( initKnopf( 405, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spielpartner" ) ),
- statistikK( initKnopf( 535, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spiel Statistik" ) ),
- suchenK( initKnopf( 15, 10, 120, 20, zSchrift, Knopf::Style::Sichtbar, "Spieler suchen" ) ),
- suche( new AccountSuchen( zSchrift->getThis() ) ),
- aktivität( new AccountAktivität( zSchrift ) ),
- spieleUndKarten( new AccountSpieleUndKarten( zSchrift ) ),
- partner( new AccountSpielPartner( zSchrift ) ),
- statistik( new AccountStatistik( zSchrift ) ),
- historie( new AccountHistorie( zSchrift ) ),
- account( 0 ),
- alpha( 0 ),
- alpha2( 255 ),
- sichtbar( 0 ),
- jetzt( 0 ),
- nachher( 0 ),
- prozent1( 0 ),
- prozent2( 0 ),
- tickVal( 0 ),
- animation( 0 ),
- knopfX( 810 ),
- rend( 0 ),
- ref( 1 )
- {
- laden->setSichtbar( 0 );
- rahmen->setFarbe( 0xFFFFFFFF );
- rahmen->setSize( 102, 32 );
- begPos = Punkt( x, 67 );
- begGröße = Punkt( 102, 32 );
- pos = Punkt( x, 67 );
- gr = Punkt( 102, 32 );
- pos1 = begPos;
- größe1 = begGröße;
- größe2 = Punkt( 800, 500 );
- pos2 = bildschirmGröße / 2 - größe2 / 2;
- laden->setPosition( 375, 225 );
- zNachLoginFenster->addMember( this );
- }
- // Destruktor
- AccountAnsehen::~AccountAnsehen()
- {
- laden->release();
- rahmen->release();
- aktivitätK->release();
- historieK->release();
- spieleUndKartenK->release();
- spielPartnerK->release();
- statistikK->release();
- suchenK->release();
- suche->release();
- aktivität->release();
- spieleUndKarten->release();
- partner->release();
- statistik->release();
- historie->release();
- }
- // nicht constant
- void AccountAnsehen::setSichtbar( bool sicht )
- {
- begPos = pos;
- begGröße = gr;
- animation |= ( sicht ? 0x1 : 0x2 );
- rend = 1;
- }
- bool AccountAnsehen::setSpielerDetails( int account, int nachher )
- {
- if( laden->istSichtbar() )
- return 0;
- laden->setSichtbar( 1 );
- if( nachher == 2 )
- aktivität->ladeStatistik( account );
- if( nachher == 3 )
- spieleUndKarten->ladeStatistik( account );
- if( nachher == 4 )
- partner->ladeStatistik( account );
- if( nachher == 5 )
- statistik->ladeStatistik( account );
- if( nachher == 6 )
- historie->ladeStatistik( account );
- this->nachher = nachher;
- this->account = account;
- return 1;
- }
- bool AccountAnsehen::tick( double tickVal )
- {
- if( !knopfX )
- {
- rend |= aktivitätK->tick( tickVal );
- rend |= historieK->tick( tickVal );
- rend |= spieleUndKartenK->tick( tickVal );
- rend |= spielPartnerK->tick( tickVal );
- rend |= statistikK->tick( tickVal );
- rend |= suchenK->tick( tickVal );
- }
- rend |= laden->tick( tickVal );
- rend |= suche->tick( tickVal );
- rend |= aktivität->tick( tickVal );
- rend |= spieleUndKarten->tick( tickVal );
- rend |= partner->tick( tickVal );
- rend |= statistik->tick( tickVal );
- rend |= historie->tick( tickVal );
- this->tickVal += tickVal;
- int val = (int)( this->tickVal * 150 );
- int val2 = (int)( this->tickVal * 500 );
- this->tickVal -= val / 150.0;
- if( val )
- {
- if( ( animation | 0x1 ) == animation ) // Einblenden
- {
- if( prozent1 != 100 )
- {
- prozent1 += val;
- if( prozent1 >= 100 )
- {
- prozent1 = 100;
- if( !jetzt && !nachher )
- setSpielerDetails( loginKlient->getAccountId(), 2 );
- }
- pos = begPos + (Punkt)( ( ( Vec2< double > )( pos2 - begPos ) / 100.0 ) * prozent1 );
- gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe2 - begGröße ) / 100.0 ) * prozent1 );
- }
- else if( alpha != 255 )
- {
- alpha += val * 2;
- if( alpha >= 255 || ( animation | 0x2 ) == animation )
- {
- alpha = 255;
- animation &= ~0x1;
- sichtbar = 1;
- prozent1 = 0;
- }
- }
- rend = 1;
- }
- if( ( animation | 0x2 ) == animation ) // ausblenden
- {
- if( alpha != 0 )
- {
- alpha -= val * 2;
- if( alpha < 0 )
- alpha = 0;
- }
- else
- {
- prozent2 += val;
- if( prozent2 > 100 )
- prozent2 = 100;
- pos = begPos + (Punkt)( ( ( Vec2< double > )( pos1 - begPos ) / 100.0 ) * prozent2 );
- gr = begGröße + (Punkt)( ( ( Vec2< double > )( größe1 - begGröße ) / 100.0 ) * prozent2 );
- if( prozent2 == 100 )
- {
- prozent2 = 0;
- animation &= ~0x2;
- sichtbar = 0;
- }
- }
- rend = 1;
- }
- if( laden->istSichtbar() && alpha2 != 100 )
- {
- if( alpha2 - val <= 100 )
- alpha2 = 100;
- else
- alpha2 -= val;
- rend = 1;
- }
- if( !laden->istSichtbar() && alpha2 != 255 )
- {
- if( alpha2 + val >= 255 )
- alpha2 = 255;
- else
- alpha2 += val;
- rend = 1;
- }
- }
- if( val2 )
- {
- if( jetzt > 1 && !laden->istSichtbar() && knopfX != 0 )
- {
- if( knopfX - val2 < 0 )
- knopfX = 0;
- else
- knopfX -= val2;
- rend = 1;
- }
- if( jetzt < 2 && !laden->istSichtbar() && knopfX != 810 )
- {
- if( knopfX + val2 > 810 )
- knopfX = 810;
- else
- knopfX += val2;
- rend = 1;
- }
- }
- switch( nachher )
- {
- case 2:
- if( aktivität->getStatus() == 2 )
- {
- switch( jetzt )
- {
- case 0:
- aktivität->setSichtbar( 1, 0 );
- break;
- case 1:
- suchenK->setAlphaFeldStrength( -5 );
- suchenK->setAlphaFeldFarbe( 0x5500FF00 );
- suche->setSichtbar( 0 );
- aktivität->setSichtbar( 1, 0 );
- break;
- case 3:
- spieleUndKartenK->setAlphaFeldStrength( -5 );
- spieleUndKartenK->setAlphaFeldFarbe( 0x5500FF00 );
- spieleUndKarten->setSichtbar( 0, 1 );
- aktivität->setSichtbar( 1, 1 );
- break;
- case 4:
- spielPartnerK->setAlphaFeldStrength( -5 );
- spielPartnerK->setAlphaFeldFarbe( 0x5500FF00 );
- partner->setSichtbar( 0, 1 );
- aktivität->setSichtbar( 1, 1 );
- break;
- case 5:
- statistikK->setAlphaFeldStrength( -5 );
- statistikK->setAlphaFeldFarbe( 0x5500FF00 );
- statistik->setSichtbar( 0, 1 );
- aktivität->setSichtbar( 1, 1 );
- break;
- case 6:
- historieK->setAlphaFeldStrength( -5 );
- historieK->setAlphaFeldFarbe( 0x5500FF00 );
- historie->setSichtbar( 0, 1 );
- aktivität->setSichtbar( 1, 1 );
- break;
- }
- aktivitätK->setAlphaFeldStrength( -2 );
- aktivitätK->setAlphaFeldFarbe( 0x3000FF00 );
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- if( !aktivität->getStatus() )
- {
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- break;
- case 3:
- if( spieleUndKarten->getStatus() == 2 )
- {
- switch( jetzt )
- {
- case 0:
- spieleUndKarten->setSichtbar( 1, 0 );
- break;
- case 1:
- suchenK->setAlphaFeldStrength( -5 );
- suchenK->setAlphaFeldFarbe( 0x5500FF00 );
- suche->setSichtbar( 0 );
- spieleUndKarten->setSichtbar( 1, 0 );
- break;
- case 2:
- aktivitätK->setAlphaFeldStrength( -5 );
- aktivitätK->setAlphaFeldFarbe( 0x5500FF00 );
- aktivität->setSichtbar( 0, 0 );
- spieleUndKarten->setSichtbar( 1, 0 );
- break;
- case 4:
- spielPartnerK->setAlphaFeldStrength( -5 );
- spielPartnerK->setAlphaFeldFarbe( 0x5500FF00 );
- partner->setSichtbar( 0, 1 );
- spieleUndKarten->setSichtbar( 1, 1 );
- break;
- case 5:
- statistikK->setAlphaFeldStrength( -5 );
- statistikK->setAlphaFeldFarbe( 0x5500FF00 );
- statistik->setSichtbar( 0, 1 );
- spieleUndKarten->setSichtbar( 1, 1 );
- break;
- case 6:
- historieK->setAlphaFeldStrength( -5 );
- historieK->setAlphaFeldFarbe( 0x5500FF00 );
- historie->setSichtbar( 0, 1 );
- spieleUndKarten->setSichtbar( 1, 1 );
- break;
- }
- spieleUndKartenK->setAlphaFeldStrength( -2 );
- spieleUndKartenK->setAlphaFeldFarbe( 0x3000FF00 );
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- if( !spieleUndKarten->getStatus() )
- {
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- break;
- case 4:
- if( partner->getStatus() == 2 )
- {
- switch( jetzt )
- {
- case 0:
- partner->setSichtbar( 1, 0 );
- break;
- case 1:
- suchenK->setAlphaFeldStrength( -5 );
- suchenK->setAlphaFeldFarbe( 0x5500FF00 );
- suche->setSichtbar( 0 );
- partner->setSichtbar( 1, 0 );
- break;
- case 2:
- aktivitätK->setAlphaFeldStrength( -5 );
- aktivitätK->setAlphaFeldFarbe( 0x5500FF00 );
- aktivität->setSichtbar( 0, 0 );
- partner->setSichtbar( 1, 0 );
- break;
- case 3:
- spieleUndKartenK->setAlphaFeldStrength( -5 );
- spieleUndKartenK->setAlphaFeldFarbe( 0x5500FF00 );
- spieleUndKarten->setSichtbar( 0, 0 );
- partner->setSichtbar( 1, 0 );
- break;
- case 5:
- statistikK->setAlphaFeldStrength( -5 );
- statistikK->setAlphaFeldFarbe( 0x5500FF00 );
- statistik->setSichtbar( 0, 1 );
- partner->setSichtbar( 1, 1 );
- break;
- case 6:
- historieK->setAlphaFeldStrength( -5 );
- historieK->setAlphaFeldFarbe( 0x5500FF00 );
- historie->setSichtbar( 0, 1 );
- partner->setSichtbar( 1, 1 );
- break;
- }
- spielPartnerK->setAlphaFeldStrength( -2 );
- spielPartnerK->setAlphaFeldFarbe( 0x3000FF00 );
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- if( !partner->getStatus() )
- {
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- break;
- case 5:
- if( statistik->getStatus() == 2 )
- {
- switch( jetzt )
- {
- case 0:
- statistik->setSichtbar( 1, 0 );
- break;
- case 1:
- suchenK->setAlphaFeldStrength( -5 );
- suchenK->setAlphaFeldFarbe( 0x5500FF00 );
- suche->setSichtbar( 0 );
- statistik->setSichtbar( 1, 0 );
- break;
- case 2:
- aktivitätK->setAlphaFeldStrength( -5 );
- aktivitätK->setAlphaFeldFarbe( 0x5500FF00 );
- aktivität->setSichtbar( 0, 0 );
- statistik->setSichtbar( 1, 0 );
- break;
- case 3:
- spieleUndKartenK->setAlphaFeldStrength( -5 );
- spieleUndKartenK->setAlphaFeldFarbe( 0x5500FF00 );
- spieleUndKarten->setSichtbar( 0, 0 );
- statistik->setSichtbar( 1, 0 );
- break;
- case 4:
- spielPartnerK->setAlphaFeldStrength( -5 );
- spielPartnerK->setAlphaFeldFarbe( 0x5500FF00 );
- partner->setSichtbar( 0, 0 );
- statistik->setSichtbar( 1, 0 );
- break;
- case 6:
- historieK->setAlphaFeldStrength( -5 );
- historieK->setAlphaFeldFarbe( 0x5500FF00 );
- historie->setSichtbar( 0, 1 );
- statistik->setSichtbar( 1, 1 );
- break;
- }
- statistikK->setAlphaFeldStrength( -2 );
- statistikK->setAlphaFeldFarbe( 0x3000FF00 );
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- if( !statistik->getStatus() )
- {
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- break;
- case 6:
- if( historie->getStatus() == 2 )
- {
- switch( jetzt )
- {
- case 0:
- historie->setSichtbar( 1, 0 );
- break;
- case 1:
- suchenK->setAlphaFeldStrength( -5 );
- suchenK->setAlphaFeldFarbe( 0x5500FF00 );
- suche->setSichtbar( 0 );
- historie->setSichtbar( 1, 0 );
- break;
- case 2:
- aktivitätK->setAlphaFeldStrength( -5 );
- aktivitätK->setAlphaFeldFarbe( 0x5500FF00 );
- aktivität->setSichtbar( 0, 0 );
- historie->setSichtbar( 1, 0 );
- break;
- case 3:
- spieleUndKartenK->setAlphaFeldStrength( -5 );
- spieleUndKartenK->setAlphaFeldFarbe( 0x5500FF00 );
- spieleUndKarten->setSichtbar( 0, 0 );
- historie->setSichtbar( 1, 0 );
- break;
- case 4:
- spielPartnerK->setAlphaFeldStrength( -5 );
- spielPartnerK->setAlphaFeldFarbe( 0x5500FF00 );
- partner->setSichtbar( 0, 0 );
- historie->setSichtbar( 1, 0 );
- break;
- case 5:
- statistikK->setAlphaFeldStrength( -5 );
- statistikK->setAlphaFeldFarbe( 0x5500FF00 );
- statistik->setSichtbar( 0, 0 );
- historie->setSichtbar( 1, 0 );
- break;
- }
- historieK->setAlphaFeldStrength( -2 );
- historieK->setAlphaFeldFarbe( 0x3000FF00 );
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- if( !historie->getStatus() )
- {
- laden->setSichtbar( 0 );
- jetzt = nachher;
- nachher = 0;
- }
- break;
- }
- int tmp = suche->getAuswahlAccountId();
- if( tmp )
- setSpielerDetails( tmp, 2 );
- bool ret = rend;
- rend = 0;
- return ret;
- }
- void AccountAnsehen::doMausEreignis( MausEreignis &me )
- {
- if( !sichtbar || animation || laden->istSichtbar() )
- return;
- int mx = me.mx;
- int my = me.my;
- me.mx -= pos.x;
- me.my -= pos.y;
- if( jetzt > 1 )
- {
- int ak = 0;
- bool tmp = me.verarbeitet;
- suchenK->doMausEreignis( me );
- ak = me.verarbeitet ? 1 : 0;
- aktivitätK->doMausEreignis( me );
- ak = me.verarbeitet && !ak ? 2 : ak;
- spieleUndKartenK->doMausEreignis( me );
- ak = me.verarbeitet && !ak ? 3 : ak;
- spielPartnerK->doMausEreignis( me );
- ak = me.verarbeitet && !ak ? 4 : ak;
- statistikK->doMausEreignis( me );
- ak = me.verarbeitet && !ak ? 5 : ak;
- historieK->doMausEreignis( me );
- ak = me.verarbeitet && !ak ? 6 : ak;
- if( tmp )
- ak = 0;
- if( me.id == ME_RLinks )
- {
- switch( ak )
- {
- case 1: // Suchen Klick
- if( jetzt == 1 )
- break;
- switch( jetzt )
- {
- case 2:
- aktivitätK->setAlphaFeldStrength( -5 );
- aktivitätK->setAlphaFeldFarbe( 0x5500FF00 );
- aktivität->setSichtbar( 0, 1 );
- break;
- case 3:
- spieleUndKartenK->setAlphaFeldStrength( -5 );
- spieleUndKartenK->setAlphaFeldFarbe( 0x5500FF00 );
- spieleUndKarten->setSichtbar( 0, 1 );
- break;
- case 4:
- spielPartnerK->setAlphaFeldStrength( -5 );
- spielPartnerK->setAlphaFeldFarbe( 0x5500FF00 );
- partner->setSichtbar( 0, 1 );
- break;
- case 5:
- statistikK->setAlphaFeldStrength( -5 );
- statistikK->setAlphaFeldFarbe( 0x5500FF00 );
- statistik->setSichtbar( 0, 1 );
- break;
- case 6:
- historieK->setAlphaFeldStrength( -5 );
- historieK->setAlphaFeldFarbe( 0x5500FF00 );
- historie->setSichtbar( 0, 1 );
- break;
- }
- suchenK->setAlphaFeldStrength( -2 );
- suchenK->setAlphaFeldFarbe( 0x3000FF00 );
- this->suche->setSichtbar( 1 );
- jetzt = 1;
- break;
- case 2: // Aktivität Klick
- setSpielerDetails( account, 2 );
- break;
- case 3: // SpieleUndKarten Klick
- setSpielerDetails( account, 3 );
- break;
- case 4: // SpielPartner Klick
- setSpielerDetails( account, 4 );
- break;
- case 5: // Statistik Klick
- setSpielerDetails( account, 5 );
- break;
- case 6: // Historie Klick
- setSpielerDetails( account, 6 );
- break;
- }
- }
- }
- switch( jetzt )
- {
- case 1: // Suchen
- suche->doMausEreignis( me );
- break;
- case 3: // SpieleUndKarten
- spieleUndKarten->doMausEreignis( me );
- break;
- case 4: // SpielPartner
- partner->doMausEreignis( me );
- break;
- case 5: // Statistik
- statistik->doMausEreignis( me );
- break;
- case 6: // Historie
- historie->doMausEreignis( me );
- break;
- }
- me.mx = mx;
- me.my = my;
- }
- void AccountAnsehen::doTastaturEreignis( TastaturEreignis &te )
- {
- if( !sichtbar || animation || laden->istSichtbar() )
- return;
- switch( jetzt )
- {
- case 1: // Suchen
- suche->doTastaturEreignis( te );
- break;
- case 6: // Historie
- historie->doTastaturEreignis( te );
- break;
- }
- }
- void AccountAnsehen::render( Bild &zRObj )
- {
- if( pos == pos1 )
- return;
- if( !zRObj.setDrawOptions( pos, gr ) )
- return;
- rahmen->setSize( gr );
- rahmen->render( zRObj );
- int rbr = rahmen->getRBreite();
- zRObj.setAlpha( (unsigned char)alpha );
- zRObj.setAlpha( (unsigned char)alpha2 );
- zRObj.addScrollOffset( -knopfX, 0 );
- aktivitätK->render(zRObj );
- historieK->render( zRObj );
- spieleUndKartenK->render( zRObj );
- spielPartnerK->render( zRObj );
- statistikK->render( zRObj );
- suchenK->render( zRObj );
- zRObj.addScrollOffset( knopfX, 0 );
- suche->render( zRObj );
- aktivität->render( zRObj );
- spieleUndKarten->render( zRObj );
- partner->render( zRObj );
- statistik->render( zRObj );
- historie->render( zRObj );
- zRObj.releaseAlpha();
- laden->render( zRObj );
- zRObj.releaseAlpha();
- zRObj.releaseDrawOptions();
- }
- // constant
- bool AccountAnsehen::istAnimiert() const
- {
- return animation != 0;
- }
- bool AccountAnsehen::istSichtbar() const
- {
- return sichtbar || prozent1 != 0;
- }
- // Reference Counting
- AccountAnsehen *AccountAnsehen::getThis()
- {
- ref++;
- return this;
- }
- AccountAnsehen *AccountAnsehen::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
|