123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142 |
- #include "StatistikRunde.h"
- #include "../../Initialisierung/Initialisierung.h"
- #include <Punkt.h>
- // Inhalt der StatistikRunde Klasse aus StatistikRunde.h
- // Konstruktor
- StatistikRunde::StatistikRunde( Schrift *zSchrift, Array< SSDRunde* > *dat, bool historie )
- : rundenBild( initBildZ( 525, 40, 245, 245, BildZ::Style::normal, 0 ) ),
- rundenNummer( initTextFeld( 580, 295, 190, 20, zSchrift, TextFeld::Style::Text, "Runde: " ) ),
- rundenDauer( initTextFeld( 580, 325, 190, 20, zSchrift, TextFeld::Style::Text, "Dauer: " ) ),
- rundenSieger( initTextFeld( 580, 355, 190, 20, zSchrift, TextFeld::Style::Text, "Sieger: " ) ),
- spielfeldNutzung( initTextFeld( 580, 385, 190, 20, zSchrift, TextFeld::Style::Text, "Spielfeldnutzung: " ) ),
- verbleibend( initTextFeld( 580, 415, 190, 20, zSchrift, TextFeld::Style::Text, "Verbleibende Zeit: 300" ) ),
- daten( dat ),
- auswahl( -1 ),
- verb( 300 ),
- rend( 0 ),
- ref( 1 )
- {
- if( historie )
- {
- verbleibend->removeStyle( TextFeld::Style::Sichtbar );
- rundenBild->setPosition( 520, 10 );
- rundenBild->setSize( 250, 250 );
- rundenNummer->setPosition( 520, 270 );
- rundenDauer->setPosition( 520, 300 );
- rundenSieger->setPosition( 520, 330 );
- spielfeldNutzung->setPosition( 520, 360 );
- }
- }
- // Destruktor
- StatistikRunde::~StatistikRunde()
- {
- rundenBild;
- rundenNummer->release();
- rundenDauer->release();
- rundenSieger->release();
- spielfeldNutzung->release();
- verbleibend->release();
- daten->release();
- }
- // nicht constant
- void StatistikRunde::setRunde( int nummer )
- {
- if( nummer != auswahl )
- {
- Bild *b = new Bild();
- b->neuBild( 1, 1, 0 );
- rundenBild->setBildZ( b );
- rundenNummer->setText( "Runde: " );
- rundenDauer->setText( "Dauer: " );
- rundenSieger->setText( "Sieger: " );
- spielfeldNutzung->setText( "Spielfeldnutzung: " );
- int anz = daten->getEintragAnzahl();
- for( int i = 0; i < anz; i++ )
- {
- if( daten->hat( i ) && daten->get( i )->rundenNummer == nummer )
- {
- Bild *b = new Bild();
- b->neuBild( daten->get( i )->rundenBild.getBreite(), daten->get( i )->rundenBild.getHeight(), 0 );
- b->drawBild( 0, 0, b->getBreite(), b->getHeight(), daten->get( i )->rundenBild );
- rundenBild->setBildZ( b );
- *rundenNummer->zText() += nummer + 1;
- *rundenDauer->zText() += daten->get( i )->rundenDauer / 60;
- *rundenDauer->zText() += ":";
- *rundenDauer->zText() += daten->get( i )->rundenDauer % 60;
- int anz2 = daten->get( i )->teams.getEintragAnzahl();
- for( int j = 0; j < anz; j++ )
- {
- if( daten->get( i )->teams.hat( j ) && daten->get( i )->teams.get( j )->teamNummer == daten->get( i )->rundenSieger )
- {
- *rundenSieger->zText() += daten->get( i )->teams.get( j )->teamName.getText();
- break;
- }
- }
- *spielfeldNutzung->zText() += daten->get( i )->spielfeldNutzung;
- *spielfeldNutzung->zText() += "%";
- auswahl = nummer;
- rend = 1;
- return;
- }
- }
- auswahl = -1;
- rend = 1;
- }
- }
- void StatistikRunde::doMausEreignis( MausEreignis &me )
- {
- rundenBild->doMausEreignis( me );
- }
- bool StatistikRunde::tick( double tickVal )
- {
- int verbl = (int)verb;
- verb -= tickVal;
- if( verb < 0 )
- verb = 0;
- if( verbl != (int)verb )
- {
- verbleibend->setText( "Verbleibende Zeit: " );
- *verbleibend->zText() += (int)verb;
- rend = 1;
- }
- rend |= rundenBild->tick( tickVal );
- bool ret = rend;
- rend = 0;
- return ret;
- }
- void StatistikRunde::render( Bild &zRObj )
- {
- rundenBild->render( zRObj );
- rundenNummer->render( zRObj );
- rundenDauer->render( zRObj );
- rundenSieger->render( zRObj );
- spielfeldNutzung->render( zRObj );
- verbleibend->render( zRObj );
- }
- // constant
- bool StatistikRunde::mussVerlassen() const
- {
- return verb == 0;
- }
- // Reference Counting
- StatistikRunde *StatistikRunde::getThis()
- {
- ref++;
- return this;
- }
- StatistikRunde *StatistikRunde::release()
- {
- ref--;
- if( !ref )
- delete this;
- return 0;
- }
|