123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143 |
- #include "StatistikRunde.h"
- #include <Punkt.h>
- // Inhalt der StatistikRunde Klasse aus StatistikRunde.h
- // Konstruktor
- StatistikRunde::StatistikRunde( UIInit &uiFactory, Array< SSDRunde * > *dat, bool historie )
- : ReferenceCounter(),
- rundenBild( uiFactory.createBildZ( uiFactory.initParam ) ),
- rundenNummer( uiFactory.createTextFeld( uiFactory.initParam ) ),
- rundenDauer( uiFactory.createTextFeld( uiFactory.initParam ) ),
- rundenSieger( uiFactory.createTextFeld( uiFactory.initParam ) ),
- spielfeldNutzung( uiFactory.createTextFeld( uiFactory.initParam ) ),
- verbleibend( uiFactory.createTextFeld( uiFactory.initParam ) ),
- daten( dat ),
- auswahl( -1 ),
- verb( 300 ),
- rend( 0 )
- {
- rundenBild->setPosition( 525, 40 );
- rundenBild->setSize( 245, 245 );
- rundenNummer->setPosition( 580, 295 );
- rundenNummer->setSize( 190, 20 );
- rundenNummer->setText( "Runde: " );
- rundenDauer->setPosition( 580, 325 );
- rundenDauer->setSize( 190, 20 );
- rundenDauer->setText( "Dauer: " );
- rundenSieger->setPosition( 580, 355 );
- rundenSieger->setSize( 190, 20 );
- rundenSieger->setText( "Sieger: " );
- spielfeldNutzung->setPosition( 580, 385 );
- spielfeldNutzung->setSize( 190, 20 );
- spielfeldNutzung->setText( "Spielfeldnutzung: " );
- verbleibend->setPosition( 580, 415 );
- verbleibend->setSize( 190, 20 );
- verbleibend->setText( "Verbleibende Zeit: 300" );
- 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->release();
- 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::doPublicMausEreignis( MausEreignis &me )
- {
- rundenBild->doPublicMausEreignis( 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;
- }
|