|
@@ -15,16 +15,16 @@
|
|
|
|
|
|
// Inhalt der MenüVerloren Klasse aus Menü.h
|
|
// Inhalt der MenüVerloren Klasse aus Menü.h
|
|
// Kontruktor
|
|
// Kontruktor
|
|
-MenüVerloren::MenüVerloren( Schrift *zSchrift )
|
|
|
|
|
|
+MenüVerloren::MenüVerloren( UIInit &uiFactory )
|
|
|
|
+ : ReferenceCounter()
|
|
{
|
|
{
|
|
ram = new LRahmen();
|
|
ram = new LRahmen();
|
|
ram->setSize( 160, 100 );
|
|
ram->setSize( 160, 100 );
|
|
ram->setPosition( 320, 200 );
|
|
ram->setPosition( 320, 200 );
|
|
ram->setFarbe( 0xFFFFFFFF );
|
|
ram->setFarbe( 0xFFFFFFFF );
|
|
- verloren = initTextFeld( 325, 210, 150, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::Center, "Du hast verloren." );
|
|
|
|
- neu = initKnopf( 350, 240, 100, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::Center, "Neues Spiel" );
|
|
|
|
- beenden = initKnopf( 350, 270, 100, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::Center, "Zurück" );
|
|
|
|
- ref = 1;
|
|
|
|
|
|
+ verloren = initTextFeld( 325, 210, 150, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::Center, "Du hast verloren." );
|
|
|
|
+ neu = initKnopf( 350, 240, 100, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::Center, "Neues Spiel" );
|
|
|
|
+ beenden = initKnopf( 350, 270, 100, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::Center, "Zurück" );
|
|
}
|
|
}
|
|
|
|
|
|
// Destruktor
|
|
// Destruktor
|
|
@@ -67,33 +67,18 @@ void Men
|
|
ram->render( zRObj );
|
|
ram->render( zRObj );
|
|
}
|
|
}
|
|
|
|
|
|
-// Reference Counting
|
|
|
|
-MenüVerloren *MenüVerloren::getThis()
|
|
|
|
-{
|
|
|
|
- ref++;
|
|
|
|
- return this;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-MenüVerloren *MenüVerloren::release()
|
|
|
|
-{
|
|
|
|
- ref--;
|
|
|
|
- if( !ref )
|
|
|
|
- delete this;
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
|
|
|
|
// Inhalt der MenüSpiel Klasse aus Menü.h
|
|
// Inhalt der MenüSpiel Klasse aus Menü.h
|
|
// Konstruktor
|
|
// Konstruktor
|
|
-MenüSpiel::MenüSpiel( Schrift *zSchrift, Bildschirm *zScreen, KSGClient::MinigameServerClient *klient )
|
|
|
|
|
|
+MenüSpiel::MenüSpiel( UIInit &uiFactory, KSGClient::MinigameServerClient *klient )
|
|
|
|
+ : ReferenceCounter()
|
|
{
|
|
{
|
|
- scoreT = initTextFeld( 690, 10, 100, 20, zSchrift, TextFeld::Style::Text, "Score: 0" );
|
|
|
|
- beenden = initKnopf( 690, 40, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Beenden" );
|
|
|
|
|
|
+ scoreT = initTextFeld( 690, 10, 100, 20, uiFactory, TextFeld::Style::Text, "Score: 0" );
|
|
|
|
+ beenden = initKnopf( 690, 40, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Beenden" );
|
|
map = new Map( klient );
|
|
map = new Map( klient );
|
|
- verloren = new MenüVerloren( zSchrift );
|
|
|
|
|
|
+ verloren = new MenüVerloren( uiFactory );
|
|
beendet = 0;
|
|
beendet = 0;
|
|
timePuffer = 0;
|
|
timePuffer = 0;
|
|
- ref = 1;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// Destruktor
|
|
// Destruktor
|
|
@@ -241,33 +226,19 @@ bool Men
|
|
return beendet;
|
|
return beendet;
|
|
}
|
|
}
|
|
|
|
|
|
-// Reference Counting
|
|
|
|
-MenüSpiel *MenüSpiel::getThis()
|
|
|
|
-{
|
|
|
|
- ref++;
|
|
|
|
- return this;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-MenüSpiel *MenüSpiel::release()
|
|
|
|
-{
|
|
|
|
- ref--;
|
|
|
|
- if( !ref )
|
|
|
|
- delete this;
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
|
|
|
|
// Inhalt der MenüWiederhohlung Klasse
|
|
// Inhalt der MenüWiederhohlung Klasse
|
|
// Konstruktor
|
|
// Konstruktor
|
|
-MenüWiederhohlung::MenüWiederhohlung( Schrift *zSchrift, Bildschirm *zScreen, Datei *datei, Text *zOptionen )
|
|
|
|
|
|
+MenüWiederhohlung::MenüWiederhohlung( UIInit &uiFactory, Datei *datei, Text *zOptionen )
|
|
|
|
+ : ReferenceCounter()
|
|
{
|
|
{
|
|
- scoreT = initTextFeld( 690, 10, 100, 20, zSchrift, TextFeld::Style::Text, "Score: 0" );
|
|
|
|
- beenden = initKnopf( 690, 40, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Beenden" );
|
|
|
|
|
|
+ scoreT = initTextFeld( 690, 10, 100, 20, uiFactory, TextFeld::Style::Text, "Score: 0" );
|
|
|
|
+ beenden = initKnopf( 690, 40, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Beenden" );
|
|
this->datei = datei;
|
|
this->datei = datei;
|
|
if( !datei->istOffen() )
|
|
if( !datei->istOffen() )
|
|
datei->open( Datei::Style::lesen );
|
|
datei->open( Datei::Style::lesen );
|
|
__int64 seed;
|
|
__int64 seed;
|
|
- datei->lese( (char*)&seed, 8 );
|
|
|
|
|
|
+ datei->lese( (char *)&seed, 8 );
|
|
zOptionen->append( ",Fortsetzen=0,AutoKam=0,Seed=" );
|
|
zOptionen->append( ",Fortsetzen=0,AutoKam=0,Seed=" );
|
|
zOptionen->append( seed );
|
|
zOptionen->append( seed );
|
|
map = new Map( 0 );
|
|
map = new Map( 0 );
|
|
@@ -276,9 +247,8 @@ Men
|
|
nowTime = 0;
|
|
nowTime = 0;
|
|
nextTime = 0;
|
|
nextTime = 0;
|
|
tastenStände = 0;
|
|
tastenStände = 0;
|
|
- datei->lese( (char*)&nextTime, 8 );
|
|
|
|
|
|
+ datei->lese( (char *)&nextTime, 8 );
|
|
timePuffer = 0;
|
|
timePuffer = 0;
|
|
- ref = 1;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// Destruktor
|
|
// Destruktor
|
|
@@ -322,7 +292,7 @@ bool Men
|
|
if( datei->istEnde() )
|
|
if( datei->istEnde() )
|
|
nextTime = -1;
|
|
nextTime = -1;
|
|
else
|
|
else
|
|
- datei->lese( (char*)&nextTime, 8 );
|
|
|
|
|
|
+ datei->lese( (char *)&nextTime, 8 );
|
|
TastaturEreignis te;
|
|
TastaturEreignis te;
|
|
te.verarbeitet = 0;
|
|
te.verarbeitet = 0;
|
|
if( ( aktion | 16 ) == aktion )
|
|
if( ( aktion | 16 ) == aktion )
|
|
@@ -381,40 +351,25 @@ bool Men
|
|
return beendet;
|
|
return beendet;
|
|
}
|
|
}
|
|
|
|
|
|
-// Reference Counting
|
|
|
|
-MenüWiederhohlung *MenüWiederhohlung::getThis()
|
|
|
|
-{
|
|
|
|
- ref++;
|
|
|
|
- return this;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-MenüWiederhohlung *MenüWiederhohlung::release()
|
|
|
|
-{
|
|
|
|
- if( !--ref )
|
|
|
|
- delete this;
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
|
|
|
|
// Inhalt der MenüStatistik Klasse aus Menü.h
|
|
// Inhalt der MenüStatistik Klasse aus Menü.h
|
|
// Konstruktor
|
|
// Konstruktor
|
|
-MenüStatistik::MenüStatistik( Schrift *zSchrift, Bildschirm *zScreen, KSGClient::MinigameServerClient *klient )
|
|
|
|
|
|
+MenüStatistik::MenüStatistik( UIInit &uiFactory, KSGClient::MinigameServerClient *klient )
|
|
{
|
|
{
|
|
this->klient = klient;
|
|
this->klient = klient;
|
|
wiederH = 0;
|
|
wiederH = 0;
|
|
- ansichtT = initTextFeld( 245, 10, 50, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Ansicht:" );
|
|
|
|
- ansicht = initAuswahlBox( 295, 10, 120, 20, zSchrift, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, { "Tabelle", "Diagramm" } );
|
|
|
|
- optionen = initKontrollKnopf( 425, 10, 130, 20, zSchrift, KontrollKnopf::Style::Normal, "Optionen beachten" );
|
|
|
|
- worldBestT = initObjTabelle( 115, 40, 570, 120, zSchrift, ObjTabelle::Style::normal | ObjTabelle::Style::VScroll, { { "Score", 60, 0, 0 }, { "Spieler", 100, 0, 0 }, {"Ansehen", 55, 0, 0 }, { "Breite", 60, 0, 0 }, { "Höhe", 60, 0, 0 }, { "Größe", 70, 0, 0 }, { "Timer", 70, 0, 0 }, { "Ship", 70, 0, 0 } }, 20 );
|
|
|
|
- gesammtT = initObjTabelle( 115, 170, 570, 290, zSchrift, ObjTabelle::Style::normal | ObjTabelle::Style::VScroll, { { "Score", 70, 0, 0 }, { "Datum", 145, 0, 0 }, { "Breite", 60, 0, 0 }, { "Höhe", 60, 0, 0 }, { "Größe", 70, 0, 0 }, { "Timer", 70, 0, 0 }, { "Ship", 70, 0, 0 } }, 20 );
|
|
|
|
- optionenT = initObjTabelle( 115, 170, 570, 290, zSchrift, ObjTabelle::Style::normal | ObjTabelle::Style::VScroll, { { "Score", 70, 0, 0 }, { "Datum", 145, 0, 0 }, { "Breite", 60, 0, 0 }, { "Höhe", 60, 0, 0 }, { "Größe", 70, 0, 0 }, { "Timer", 70, 0, 0 }, { "Ship", 70, 0, 0 } }, 20 );
|
|
|
|
- gesammtD = initLinienDiagramm( 100, 170, 600, 290, zSchrift, LDiag::Style::DatenRahmen, 0 );
|
|
|
|
- optionenD = initLinienDiagramm( 100, 170, 600, 290, zSchrift, LDiag::Style::DatenRahmen, 0 );
|
|
|
|
- remove = initKnopf( 10, 470, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Zurücksetzen" );
|
|
|
|
- zurück = initKnopf( 350, 470, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Zurück" );
|
|
|
|
- screen = zScreen->getThis();
|
|
|
|
- schrift = zSchrift->getThis();
|
|
|
|
- tr = new TextRenderer( schrift->getThis() );
|
|
|
|
|
|
+ ansichtT = initTextFeld( 245, 10, 50, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, "Ansicht:" );
|
|
|
|
+ ansicht = initAuswahlBox( 295, 10, 120, 20, uiFactory, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, { "Tabelle", "Diagramm" } );
|
|
|
|
+ optionen = initKontrollKnopf( 425, 10, 130, 20, uiFactory, KontrollKnopf::Style::Normal, "Optionen beachten" );
|
|
|
|
+ worldBestT = initObjTabelle( 115, 40, 570, 120, uiFactory, ObjTabelle::Style::normal | ObjTabelle::Style::VScroll, { { "Score", 60, 0, 0 }, { "Spieler", 100, 0, 0 }, {"Ansehen", 55, 0, 0 }, { "Breite", 60, 0, 0 }, { "Höhe", 60, 0, 0 }, { "Größe", 70, 0, 0 }, { "Timer", 70, 0, 0 }, { "Ship", 70, 0, 0 } }, 20 );
|
|
|
|
+ gesammtT = initObjTabelle( 115, 170, 570, 290, uiFactory, ObjTabelle::Style::normal | ObjTabelle::Style::VScroll, { { "Score", 70, 0, 0 }, { "Datum", 145, 0, 0 }, { "Breite", 60, 0, 0 }, { "Höhe", 60, 0, 0 }, { "Größe", 70, 0, 0 }, { "Timer", 70, 0, 0 }, { "Ship", 70, 0, 0 } }, 20 );
|
|
|
|
+ optionenT = initObjTabelle( 115, 170, 570, 290, uiFactory, ObjTabelle::Style::normal | ObjTabelle::Style::VScroll, { { "Score", 70, 0, 0 }, { "Datum", 145, 0, 0 }, { "Breite", 60, 0, 0 }, { "Höhe", 60, 0, 0 }, { "Größe", 70, 0, 0 }, { "Timer", 70, 0, 0 }, { "Ship", 70, 0, 0 } }, 20 );
|
|
|
|
+ gesammtD = initLinienDiagramm( 100, 170, 600, 290, uiFactory, LDiag::Style::DatenRahmen, 0 );
|
|
|
|
+ optionenD = initLinienDiagramm( 100, 170, 600, 290, uiFactory, LDiag::Style::DatenRahmen, 0 );
|
|
|
|
+ remove = initKnopf( 10, 470, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Zurücksetzen" );
|
|
|
|
+ zurück = initKnopf( 350, 470, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Zurück" );
|
|
|
|
+ this->uiFactory = uiFactory;
|
|
|
|
+ tr = new TextRenderer( dynamic_cast<Schrift *>( uiFactory.initParam.schrift->getThis() ) );
|
|
asyncFinished = 1;
|
|
asyncFinished = 1;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -434,23 +389,20 @@ Men
|
|
optionenD->release();
|
|
optionenD->release();
|
|
remove->release();
|
|
remove->release();
|
|
zurück->release();
|
|
zurück->release();
|
|
- schrift->release();
|
|
|
|
klient->release();
|
|
klient->release();
|
|
if( wiederH )
|
|
if( wiederH )
|
|
wiederH->release();
|
|
wiederH->release();
|
|
- screen->release();
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// nicht constant
|
|
// nicht constant
|
|
void MenüStatistik::reset()
|
|
void MenüStatistik::reset()
|
|
{
|
|
{
|
|
if( wiederH )
|
|
if( wiederH )
|
|
- wiederH = wiederH->release();
|
|
|
|
- ObjTabelle *tmpWBT = (ObjTabelle*)worldBestT->getThis();
|
|
|
|
- KSGClient::MinigameServerClient *tmpKlient = klient->getThis();
|
|
|
|
- Schrift *tmpSchrift = schrift->getThis();
|
|
|
|
|
|
+ wiederH = (MenüWiederhohlung *)wiederH->release();
|
|
|
|
+ ObjTabelle *tmpWBT = dynamic_cast<ObjTabelle *>( worldBestT->getThis() );
|
|
|
|
+ KSGClient::MinigameServerClient *tmpKlient = dynamic_cast<KSGClient::MinigameServerClient *>( klient->getThis() );
|
|
asyncFinished = 0;
|
|
asyncFinished = 0;
|
|
- new AsynchronCall( [ this, tmpWBT, tmpKlient, tmpSchrift ]()
|
|
|
|
|
|
+ new AsynchronCall( [this, tmpWBT, tmpKlient]()
|
|
{
|
|
{
|
|
Array< int > score;
|
|
Array< int > score;
|
|
RCArray< Text > player;
|
|
RCArray< Text > player;
|
|
@@ -458,8 +410,8 @@ void Men
|
|
int anz = tmpKlient->getMinigameBestscoreList( "Asteroids", &score, &player, &option );
|
|
int anz = tmpKlient->getMinigameBestscoreList( "Asteroids", &score, &player, &option );
|
|
for( int i = 0; i < anz; i++ )
|
|
for( int i = 0; i < anz; i++ )
|
|
{
|
|
{
|
|
- TextFeld *scoreT = initTextFeld( 0, 0, 0, 0, tmpSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, Text( score.get( i ) ) );
|
|
|
|
- TextFeld *spielerT = initTextFeld( 0, 0, 0, 0, tmpSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, player.z( i )->getText() );
|
|
|
|
|
|
+ TextFeld *scoreT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, Text( score.get( i ) ) );
|
|
|
|
+ TextFeld *spielerT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, player.z( i )->getText() );
|
|
Text optionen = option.z( i )->getText();
|
|
Text optionen = option.z( i )->getText();
|
|
Text *breite = optionen.getTeilText( optionen.positionVon( '=' ) + 1, optionen.positionVon( ',' ) );
|
|
Text *breite = optionen.getTeilText( optionen.positionVon( '=' ) + 1, optionen.positionVon( ',' ) );
|
|
Text *höhe = optionen.getTeilText( optionen.positionVon( '=', 1 ) + 1, optionen.positionVon( ',', 1 ) );
|
|
Text *höhe = optionen.getTeilText( optionen.positionVon( '=', 1 ) + 1, optionen.positionVon( ',', 1 ) );
|
|
@@ -475,31 +427,31 @@ void Men
|
|
ship->setText( "Enterprise" );
|
|
ship->setText( "Enterprise" );
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- TextFeld *breiteT = initTextFeld( 0, 0, 0, 0, tmpSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, breite->getText() );
|
|
|
|
|
|
+ TextFeld *breiteT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, breite->getText() );
|
|
breite->release();
|
|
breite->release();
|
|
- TextFeld *höheT = initTextFeld( 0, 0, 0, 0, tmpSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, höhe->getText() );
|
|
|
|
|
|
+ TextFeld *höheT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, höhe->getText() );
|
|
höhe->release();
|
|
höhe->release();
|
|
- TextFeld *größeT = initTextFeld( 0, 0, 0, 0, tmpSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, größe->getText() );
|
|
|
|
|
|
+ TextFeld *größeT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, größe->getText() );
|
|
größe->release();
|
|
größe->release();
|
|
- TextFeld *timerT = initTextFeld( 0, 0, 0, 0, tmpSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, timer->getText() );
|
|
|
|
|
|
+ TextFeld *timerT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, timer->getText() );
|
|
timer->release();
|
|
timer->release();
|
|
- TextFeld *shipT = initTextFeld( 0, 0, 0, 0, tmpSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, ship->getText() );
|
|
|
|
|
|
+ TextFeld *shipT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, ship->getText() );
|
|
ship->release();
|
|
ship->release();
|
|
- Knopf *ansehenK = initKnopf( 0, 0, 0, 0, tmpSchrift, Knopf::Style::Normal, "Ansehen" );
|
|
|
|
- ansehenK->setMausEreignis( [ this, optionen ]( void *p, void *obj, MausEreignis me ) -> bool
|
|
|
|
|
|
+ Knopf *ansehenK = initKnopf( 0, 0, 0, 0, uiFactory, Knopf::Style::Normal, "Ansehen" );
|
|
|
|
+ ansehenK->setMausEreignis( [this, optionen]( void *p, void *obj, MausEreignis me ) -> bool
|
|
{
|
|
{
|
|
if( me.id == ME_RLinks && !me.verarbeitet )
|
|
if( me.id == ME_RLinks && !me.verarbeitet )
|
|
{
|
|
{
|
|
- ( (Knopf*)obj )->removeStyle( Knopf::Style::Erlaubt );
|
|
|
|
|
|
+ ( (Knopf *)obj )->removeStyle( Knopf::Style::Erlaubt );
|
|
getThis();
|
|
getThis();
|
|
- new AsynchronCall( [ this, optionen, obj ]()
|
|
|
|
|
|
+ new AsynchronCall( [this, optionen, obj]()
|
|
{
|
|
{
|
|
Datei *d = klient->downloadGameCapture( "Asteroids", optionen );
|
|
Datei *d = klient->downloadGameCapture( "Asteroids", optionen );
|
|
- ( (Knopf*)obj )->addStyle( Knopf::Style::Erlaubt );
|
|
|
|
|
|
+ ( (Knopf *)obj )->addStyle( Knopf::Style::Erlaubt );
|
|
if( wiederH )
|
|
if( wiederH )
|
|
- wiederH = wiederH->release();
|
|
|
|
|
|
+ wiederH = (MenüWiederhohlung *)wiederH->release();
|
|
Text options = optionen.getText();
|
|
Text options = optionen.getText();
|
|
- wiederH = new MenüWiederhohlung( schrift, screen, d, &options );
|
|
|
|
|
|
+ wiederH = new MenüWiederhohlung( uiFactory, d, &options );
|
|
release();
|
|
release();
|
|
} );
|
|
} );
|
|
}
|
|
}
|
|
@@ -517,7 +469,6 @@ void Men
|
|
}
|
|
}
|
|
tmpKlient->release();
|
|
tmpKlient->release();
|
|
tmpWBT->release();
|
|
tmpWBT->release();
|
|
- tmpSchrift->release();
|
|
|
|
}, &asyncFinished );
|
|
}, &asyncFinished );
|
|
InitDatei *opd = new InitDatei( "data/Minigames/Asteroids/data/optionen.ini" );
|
|
InitDatei *opd = new InitDatei( "data/Minigames/Asteroids/data/optionen.ini" );
|
|
opd->laden();
|
|
opd->laden();
|
|
@@ -559,13 +510,13 @@ void Men
|
|
if( p >= 0 )
|
|
if( p >= 0 )
|
|
{
|
|
{
|
|
fertig[ p ] = 1;
|
|
fertig[ p ] = 1;
|
|
- TextFeld *scoreT = initTextFeld( 0, 0, 0, 0, schrift, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 1 )->getText() );
|
|
|
|
- TextFeld *datumT = initTextFeld( 0, 0, 0, 0, schrift, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 0 )->getText() );
|
|
|
|
- TextFeld *breiteT = initTextFeld( 0, 0, 0, 0, schrift, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 2 )->getText() );
|
|
|
|
- TextFeld *höheT = initTextFeld( 0, 0, 0, 0, schrift, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 3 )->getText() );
|
|
|
|
- TextFeld *größeT = initTextFeld( 0, 0, 0, 0, schrift, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 5 )->getText() );
|
|
|
|
- TextFeld *timerT = initTextFeld( 0, 0, 0, 0, schrift, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 4 )->getText() );
|
|
|
|
- TextFeld *shipT = initTextFeld( 0, 0, 0, 0, schrift, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 6 )->getText() );
|
|
|
|
|
|
+ TextFeld *scoreT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 1 )->getText() );
|
|
|
|
+ TextFeld *datumT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 0 )->getText() );
|
|
|
|
+ TextFeld *breiteT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 2 )->getText() );
|
|
|
|
+ TextFeld *höheT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 3 )->getText() );
|
|
|
|
+ TextFeld *größeT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 5 )->getText() );
|
|
|
|
+ TextFeld *timerT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 4 )->getText() );
|
|
|
|
+ TextFeld *shipT = initTextFeld( 0, 0, 0, 0, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, stb->zFeld( p, 6 )->getText() );
|
|
int ship = *stb->zFeld( p, 6 );
|
|
int ship = *stb->zFeld( p, 6 );
|
|
switch( ship )
|
|
switch( ship )
|
|
{
|
|
{
|
|
@@ -592,13 +543,13 @@ void Men
|
|
{
|
|
{
|
|
optionenT->addZeile( Text() += p );
|
|
optionenT->addZeile( Text() += p );
|
|
int n = optionenT->getZeilenNummer( Text() += p );
|
|
int n = optionenT->getZeilenNummer( Text() += p );
|
|
- optionenT->setZeichnungZ( 0, n, scoreT->getThis() );
|
|
|
|
- optionenT->setZeichnungZ( 1, n, datumT->getThis() );
|
|
|
|
- optionenT->setZeichnungZ( 2, n, breiteT->getThis() );
|
|
|
|
- optionenT->setZeichnungZ( 3, n, höheT->getThis() );
|
|
|
|
- optionenT->setZeichnungZ( 4, n, größeT->getThis() );
|
|
|
|
- optionenT->setZeichnungZ( 5, n, timerT->getThis() );
|
|
|
|
- optionenT->setZeichnungZ( 6, n, shipT->getThis() );
|
|
|
|
|
|
+ optionenT->setZeichnungZ( 0, n, dynamic_cast<Zeichnung *>( scoreT->getThis() ) );
|
|
|
|
+ optionenT->setZeichnungZ( 1, n, dynamic_cast<Zeichnung *>( datumT->getThis() ) );
|
|
|
|
+ optionenT->setZeichnungZ( 2, n, dynamic_cast<Zeichnung *>( breiteT->getThis() ) );
|
|
|
|
+ optionenT->setZeichnungZ( 3, n, dynamic_cast<Zeichnung *>( höheT->getThis() ) );
|
|
|
|
+ optionenT->setZeichnungZ( 4, n, dynamic_cast<Zeichnung *>( größeT->getThis() ) );
|
|
|
|
+ optionenT->setZeichnungZ( 5, n, dynamic_cast<Zeichnung *>( timerT->getThis() ) );
|
|
|
|
+ optionenT->setZeichnungZ( 6, n, dynamic_cast<Zeichnung *>( shipT->getThis() ) );
|
|
if( !omS )
|
|
if( !omS )
|
|
omS = maxScore;
|
|
omS = maxScore;
|
|
oAnz++;
|
|
oAnz++;
|
|
@@ -719,7 +670,7 @@ bool Men
|
|
{
|
|
{
|
|
bool ret = wiederH->tick( tickVal );
|
|
bool ret = wiederH->tick( tickVal );
|
|
if( wiederH->istBeendet() )
|
|
if( wiederH->istBeendet() )
|
|
- wiederH = wiederH->release();
|
|
|
|
|
|
+ wiederH = (MenüWiederhohlung *)wiederH->release();
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
bool ret = ansicht->tick( tickVal );
|
|
bool ret = ansicht->tick( tickVal );
|
|
@@ -779,46 +730,31 @@ bool Men
|
|
return wiederH != 0;
|
|
return wiederH != 0;
|
|
}
|
|
}
|
|
|
|
|
|
-// Reference Counting
|
|
|
|
-MenüStatistik *MenüStatistik::getThis()
|
|
|
|
-{
|
|
|
|
- ref++;
|
|
|
|
- return this;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-MenüStatistik *MenüStatistik::release()
|
|
|
|
-{
|
|
|
|
- ref--;
|
|
|
|
- if( !ref )
|
|
|
|
- delete this;
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
|
|
|
|
// Inhalt der MenüOptionen aus Menü.h
|
|
// Inhalt der MenüOptionen aus Menü.h
|
|
// Konstruktor
|
|
// Konstruktor
|
|
-MenüOptionen::MenüOptionen( Schrift *zSchrift, Bildschirm *zScreen )
|
|
|
|
|
|
+MenüOptionen::MenüOptionen( UIInit &uiFactory )
|
|
|
|
+ : ReferenceCounter()
|
|
{
|
|
{
|
|
- breiteT = initTextFeld( 310, 120, 130, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Spielfeld Breite:" );
|
|
|
|
- breite = initTextFeld( 440, 120, 50, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
|
|
|
+ breiteT = initTextFeld( 310, 120, 130, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, "Spielfeld Breite:" );
|
|
|
|
+ breite = initTextFeld( 440, 120, 50, 20, uiFactory, TextFeld::Style::TextFeld, "" );
|
|
breite->setTastaturEreignis( _nurNummernTE );
|
|
breite->setTastaturEreignis( _nurNummernTE );
|
|
- höheT = initTextFeld( 310, 160, 130, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Spielfeld Höhe:" );
|
|
|
|
- höhe = initTextFeld( 440, 160, 50, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
|
|
|
+ höheT = initTextFeld( 310, 160, 130, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, "Spielfeld Höhe:" );
|
|
|
|
+ höhe = initTextFeld( 440, 160, 50, 20, uiFactory, TextFeld::Style::TextFeld, "" );
|
|
höhe->setTastaturEreignis( _nurNummernTE );
|
|
höhe->setTastaturEreignis( _nurNummernTE );
|
|
- aGrößeT = initTextFeld( 310, 200, 130, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Asteroiden Größe:" );
|
|
|
|
- aGröße = initTextFeld( 440, 200, 50, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
|
|
|
+ aGrößeT = initTextFeld( 310, 200, 130, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, "Asteroiden Größe:" );
|
|
|
|
+ aGröße = initTextFeld( 440, 200, 50, 20, uiFactory, TextFeld::Style::TextFeld, "" );
|
|
aGröße->setTastaturEreignis( _nurNummernTE );
|
|
aGröße->setTastaturEreignis( _nurNummernTE );
|
|
- timerT = initTextFeld( 310, 240, 130, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Zeit Abstände:" );
|
|
|
|
- timer = initTextFeld( 440, 240, 50, 20, zSchrift, TextFeld::Style::TextFeld, "" );
|
|
|
|
|
|
+ timerT = initTextFeld( 310, 240, 130, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, "Zeit Abstände:" );
|
|
|
|
+ timer = initTextFeld( 440, 240, 50, 20, uiFactory, TextFeld::Style::TextFeld, "" );
|
|
timer->setTastaturEreignis( _nurNummernTE );
|
|
timer->setTastaturEreignis( _nurNummernTE );
|
|
- shipT = initTextFeld( 310, 280, 80, 20, zSchrift, TextFeld::Style::Text | TextFeld::Style::VCenter, "Raumschiff:" );
|
|
|
|
- ship = initAuswahlBox( 390, 280, 100, 20, zSchrift, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, { "Normal", "Enterprise" } );
|
|
|
|
- autoKam = initKontrollKnopf( 310, 320, 180, 25, zSchrift, KontrollKnopf::Style::Normal, "Kamera drehen" );
|
|
|
|
- fortsetzen = initKontrollKnopf( 310, 360, 180, 25, zSchrift, KontrollKnopf::Style::Normal, "Letztes Spiel fortsetzen" );
|
|
|
|
- abbrechen = initKnopf( 310, 400, 85, 20, zSchrift, Knopf::Style::Sichtbar, "Abbrechen" );
|
|
|
|
- ok = initKnopf( 405, 400, 85, 20, zSchrift, Knopf::Style::Sichtbar, "Ok" );
|
|
|
|
|
|
+ shipT = initTextFeld( 310, 280, 80, 20, uiFactory, TextFeld::Style::Text | TextFeld::Style::VCenter, "Raumschiff:" );
|
|
|
|
+ ship = initAuswahlBox( 390, 280, 100, 20, uiFactory, AuswahlBox::Style::Normal | AuswahlBox::Style::Hintergrund, { "Normal", "Enterprise" } );
|
|
|
|
+ autoKam = initKontrollKnopf( 310, 320, 180, 25, uiFactory, KontrollKnopf::Style::Normal, "Kamera drehen" );
|
|
|
|
+ fortsetzen = initKontrollKnopf( 310, 360, 180, 25, uiFactory, KontrollKnopf::Style::Normal, "Letztes Spiel fortsetzen" );
|
|
|
|
+ abbrechen = initKnopf( 310, 400, 85, 20, uiFactory, Knopf::Style::Sichtbar, "Abbrechen" );
|
|
|
|
+ ok = initKnopf( 405, 400, 85, 20, uiFactory, Knopf::Style::Sichtbar, "Ok" );
|
|
beendet = 0;
|
|
beendet = 0;
|
|
- ref = 1;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// Destruktor
|
|
// Destruktor
|
|
@@ -1000,33 +936,19 @@ bool Men
|
|
return beendet;
|
|
return beendet;
|
|
}
|
|
}
|
|
|
|
|
|
-// Reference Counting
|
|
|
|
-MenüOptionen *MenüOptionen::getThis()
|
|
|
|
-{
|
|
|
|
- ref++;
|
|
|
|
- return this;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-MenüOptionen *MenüOptionen::release()
|
|
|
|
-{
|
|
|
|
- ref--;
|
|
|
|
- if( !ref )
|
|
|
|
- delete this;
|
|
|
|
- return 0;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
|
|
|
|
// Inhalt der Menü Klasse aus Menü.h
|
|
// Inhalt der Menü Klasse aus Menü.h
|
|
// Konstruktor
|
|
// Konstruktor
|
|
-Menü::Menü( Schrift *zSchrift, Bildschirm *zScreen, KSGClient::MinigameServerClient *klient )
|
|
|
|
|
|
+Menü::Menü( UIInit &uiFactory, KSGClient::MinigameServerClient *klient )
|
|
|
|
+ : ReferenceCounter()
|
|
{
|
|
{
|
|
- spielen = initKnopf( 350, 180, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Spielen" );
|
|
|
|
- spielenF = new MenüSpiel( zSchrift, zScreen, klient->getThis() );
|
|
|
|
- optionen = initKnopf( 350, 220, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Optionen" );
|
|
|
|
- optionenF = new MenüOptionen( zSchrift, zScreen );
|
|
|
|
- statistik = initKnopf( 350, 260, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Statistik" );
|
|
|
|
- statistikF = new MenüStatistik( zSchrift, zScreen, klient );
|
|
|
|
- beenden = initKnopf( 350, 300, 100, 20, zSchrift, Knopf::Style::Sichtbar, "Beenden" );
|
|
|
|
|
|
+ spielen = initKnopf( 350, 180, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Spielen" );
|
|
|
|
+ spielenF = new MenüSpiel( uiFactory, dynamic_cast<KSGClient::MinigameServerClient *>( klient->getThis() ) );
|
|
|
|
+ optionen = initKnopf( 350, 220, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Optionen" );
|
|
|
|
+ optionenF = new MenüOptionen( uiFactory );
|
|
|
|
+ statistik = initKnopf( 350, 260, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Statistik" );
|
|
|
|
+ statistikF = new MenüStatistik( uiFactory, klient );
|
|
|
|
+ beenden = initKnopf( 350, 300, 100, 20, uiFactory, Knopf::Style::Sichtbar, "Beenden" );
|
|
ram = new LRahmen();
|
|
ram = new LRahmen();
|
|
ram->setFarbe( 0xFFFFFFFF );
|
|
ram->setFarbe( 0xFFFFFFFF );
|
|
beendet = 0;
|
|
beendet = 0;
|
|
@@ -1036,7 +958,6 @@ Men
|
|
bgd->leseDaten( 0 );
|
|
bgd->leseDaten( 0 );
|
|
hintergrund = bgd->laden( 0, new Text( "bg.jpg" ) );
|
|
hintergrund = bgd->laden( 0, new Text( "bg.jpg" ) );
|
|
bgd->release();
|
|
bgd->release();
|
|
- ref = 1;
|
|
|
|
}
|
|
}
|
|
|
|
|
|
// Destruktor
|
|
// Destruktor
|
|
@@ -1189,19 +1110,4 @@ void Men
|
|
bool Menü::istBeendet() const
|
|
bool Menü::istBeendet() const
|
|
{
|
|
{
|
|
return beendet;
|
|
return beendet;
|
|
-}
|
|
|
|
-
|
|
|
|
-// Reference Counting
|
|
|
|
-Menü *Menü::getThis()
|
|
|
|
-{
|
|
|
|
- ref++;
|
|
|
|
- return this;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-Menü *Menü::release()
|
|
|
|
-{
|
|
|
|
- ref--;
|
|
|
|
- if( !ref )
|
|
|
|
- delete this;
|
|
|
|
- return 0;
|
|
|
|
}
|
|
}
|