|
@@ -9,7 +9,7 @@
|
|
|
|
|
|
// Inhalt der Map Klasse aus Map.h
|
|
|
// Konstruktor
|
|
|
-Map::Map( KSGClient::MinigameServerClient *klient )
|
|
|
+Map::Map( KSGClient::MinigameServerClient* klient )
|
|
|
: ReferenceCounter()
|
|
|
{
|
|
|
this->klient = klient;
|
|
@@ -48,21 +48,21 @@ Map::~Map()
|
|
|
}
|
|
|
|
|
|
// nicht constant
|
|
|
-void Map::reset( Text *zOptionen )
|
|
|
+void Map::reset( Text* zOptionen )
|
|
|
{
|
|
|
gameTime = 0;
|
|
|
tastenStände = 0;
|
|
|
if( rGen )
|
|
|
- rGen = (RandomGenerator *)rGen->release();
|
|
|
+ rGen = (RandomGenerator*)rGen->release();
|
|
|
beendet = 0;
|
|
|
score = 0;
|
|
|
scoreCheck = score * 11197;
|
|
|
gegner->leeren();
|
|
|
ziele->leeren();
|
|
|
if( spieler )
|
|
|
- spieler = (Spieler *)spieler->release();
|
|
|
+ spieler = (Spieler*)spieler->release();
|
|
|
ziele->leeren();
|
|
|
- Text *tmp = zOptionen->getTeilText( zOptionen->positionVon( '=' ) + 1, zOptionen->positionVon( ',' ) );
|
|
|
+ Text* tmp = zOptionen->getTeilText( zOptionen->positionVon( '=' ) + 1, zOptionen->positionVon( ',' ) );
|
|
|
breite = *tmp;
|
|
|
tmp->release();
|
|
|
tmp = zOptionen->getTeilText( zOptionen->positionVon( '=', 1 ) + 1, zOptionen->positionVon( ',', 1 ) );
|
|
@@ -92,28 +92,28 @@ void Map::reset( Text *zOptionen )
|
|
|
capture.close();
|
|
|
capture.setDatei( "data/Minigames/Fangen/data/game.mgc" );
|
|
|
capture.open( Datei::Style::schreiben | Datei::Style::ende | Datei::Style::lesen );
|
|
|
- Datei *save = new Datei();
|
|
|
+ Datei* save = new Datei();
|
|
|
save->setDatei( "data/Minigames/Fangen/data/game.save" );
|
|
|
save->open( Datei::Style::lesen );
|
|
|
int br = 0;
|
|
|
int hö = 0;
|
|
|
__int64 seed;
|
|
|
- save->lese( (char *)&seed, 8 );
|
|
|
+ save->lese( (char*)&seed, 8 );
|
|
|
rGen = new RandomGenerator();
|
|
|
rGen->setSeed( seed );
|
|
|
- save->lese( (char *)&gameTime, 8 );
|
|
|
- save->lese( (char *)&br, 4 );
|
|
|
- save->lese( (char *)&hö, 4 );
|
|
|
+ save->lese( (char*)&gameTime, 8 );
|
|
|
+ save->lese( (char*)&br, 4 );
|
|
|
+ save->lese( (char*)&hö, 4 );
|
|
|
if( br == breite && hö == höhe )
|
|
|
{
|
|
|
- save->lese( (char *)&score, 4 );
|
|
|
+ save->lese( (char*)&score, 4 );
|
|
|
scoreCheck = score * 11197;
|
|
|
spieler = new Spieler( SPIELER, save );
|
|
|
int anz = 0;
|
|
|
- save->lese( (char *)&anz, 4 );
|
|
|
+ save->lese( (char*)&anz, 4 );
|
|
|
for( int i = 0; i < anz; i++ )
|
|
|
gegner->add( new Spieler( GEGNER, save ) );
|
|
|
- save->lese( (char *)&anz, 4 );
|
|
|
+ save->lese( (char*)&anz, 4 );
|
|
|
for( int i = 0; i < anz; i++ )
|
|
|
ziele->add( new Spieler( ZIEL, save ) );
|
|
|
}
|
|
@@ -132,7 +132,7 @@ void Map::reset( Text *zOptionen )
|
|
|
capture.erstellen();
|
|
|
capture.open( Datei::Style::schreiben );
|
|
|
__int64 seed = rGen->getSeed();
|
|
|
- capture.schreibe( (char *)&seed, 8 );
|
|
|
+ capture.schreibe( (char*)&seed, 8 );
|
|
|
}
|
|
|
else
|
|
|
{
|
|
@@ -155,12 +155,12 @@ void Map::reset( Text *zOptionen )
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-void Map::doPublicMausEreignis( MausEreignis &me )
|
|
|
+void Map::doPublicMausEreignis( MausEreignis& me )
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
-void Map::doTastaturEreignis( TastaturEreignis &te )
|
|
|
+void Map::doTastaturEreignis( TastaturEreignis& te )
|
|
|
{
|
|
|
cs.lock();
|
|
|
bool ok = 1;
|
|
@@ -199,7 +199,7 @@ void Map::doTastaturEreignis( TastaturEreignis &te )
|
|
|
{
|
|
|
if( klient )
|
|
|
{
|
|
|
- capture.schreibe( (char *)&gameTime, 8 );
|
|
|
+ capture.schreibe( (char*)&gameTime, 8 );
|
|
|
capture.schreibe( &tastenStände, 1 );
|
|
|
}
|
|
|
}
|
|
@@ -265,10 +265,9 @@ bool Map::tick( double tickVal )
|
|
|
DateiRemove( "data/Minigames/Fangen/data/upload.mgc" );
|
|
|
DateiUmbenennen( "data/Minigames/Fangen/data/game.mgc", "data/Minigames/Fangen/data/upload.mgc" );
|
|
|
int tmpScore = score;
|
|
|
- KSGClient::MinigameServerClient *tmpKlient = dynamic_cast<KSGClient::MinigameServerClient *>( klient->getThis() );
|
|
|
- new AsynchronCall( [tmpScore, tmpKlient]()
|
|
|
- {
|
|
|
- InitDatei *opd = new InitDatei( "data/Minigames/Fangen/data/optionen.ini" );
|
|
|
+ KSGClient::MinigameServerClient* tmpKlient = dynamic_cast<KSGClient::MinigameServerClient*>(klient->getThis());
|
|
|
+ new AsynchronCall( [tmpScore, tmpKlient]() {
|
|
|
+ InitDatei* opd = new InitDatei( "data/Minigames/Fangen/data/optionen.ini" );
|
|
|
opd->laden();
|
|
|
Text optionen = "Width=";
|
|
|
optionen += opd->zWert( "Breite" )->getText();
|
|
@@ -287,29 +286,29 @@ bool Map::tick( double tickVal )
|
|
|
DateiRemove( "data/Minigames/Fangen/data/upload.mgc" );
|
|
|
tmpKlient->release();
|
|
|
} );
|
|
|
- KSGTDatei *stb = new KSGTDatei( "data/Minigames/Fangen/data/score.ksgt" );
|
|
|
+ KSGTDatei* stb = new KSGTDatei( "data/Minigames/Fangen/data/score.ksgt" );
|
|
|
if( !stb->laden() )
|
|
|
DateiPfadErstellen( "data/Minigames/Fangen/data/score.ksgt" );
|
|
|
- RCArray< Text > *zeile = new RCArray< Text >();
|
|
|
- Zeit *zeit = getZeit();
|
|
|
+ RCArray< Text >* zeile = new RCArray< Text >();
|
|
|
+ Zeit* zeit = getZeit();
|
|
|
zeile->add( zeit->getZeit( "y-m-d h:i:s" ) );
|
|
|
zeit->release();
|
|
|
- Text *scoreT = new Text();
|
|
|
+ Text* scoreT = new Text();
|
|
|
scoreT->append( score );
|
|
|
zeile->add( scoreT );
|
|
|
- Text *breiteT = new Text();
|
|
|
+ Text* breiteT = new Text();
|
|
|
breiteT->append( breite );
|
|
|
zeile->add( breiteT );
|
|
|
- Text *höheT = new Text();
|
|
|
+ Text* höheT = new Text();
|
|
|
höheT->append( höhe );
|
|
|
zeile->add( höheT );
|
|
|
- Text *geschwindigkeitT = new Text();
|
|
|
+ Text* geschwindigkeitT = new Text();
|
|
|
geschwindigkeitT->append( geschwindigkeit );
|
|
|
zeile->add( geschwindigkeitT );
|
|
|
- Text *zAnzahlT = new Text();
|
|
|
+ Text* zAnzahlT = new Text();
|
|
|
zAnzahlT->append( zAnzahl );
|
|
|
zeile->add( zAnzahlT );
|
|
|
- Text *nAnzahlT = new Text();
|
|
|
+ Text* nAnzahlT = new Text();
|
|
|
nAnzahlT->append( neuGegner );
|
|
|
zeile->add( nAnzahlT );
|
|
|
stb->addZeile( 7, zeile );
|
|
@@ -322,7 +321,7 @@ bool Map::tick( double tickVal )
|
|
|
return 1;
|
|
|
}
|
|
|
|
|
|
-void Map::render( Bild &zRObj )
|
|
|
+void Map::render( Bild& zRObj )
|
|
|
{
|
|
|
if( !spieler )
|
|
|
return;
|
|
@@ -351,15 +350,15 @@ void Map::render( Bild &zRObj )
|
|
|
zRObj.addScrollOffset( xStart, yStart );
|
|
|
if( rMap )
|
|
|
{
|
|
|
- const Punkt &dOff = zRObj.getDrawOff();
|
|
|
+ const Punkt& dOff = zRObj.getDrawOff();
|
|
|
map->render( zRObj );
|
|
|
- zRObj.setPixelDP( 10 + ( 200 * spieler->getX() ) / breite + dOff.x, 10 + ( 200 * spieler->getY() ) / höhe + dOff.y, 0xFF00FF00 );
|
|
|
+ zRObj.setPixelDP( 10 + (200 * spieler->getX()) / breite + dOff.x, 10 + (200 * spieler->getY()) / höhe + dOff.y, 0xFF00FF00 );
|
|
|
for( int i = 0; i < gAnz; i++ )
|
|
|
- zRObj.setPixelDP( 10 + ( 200 * gegner->z( i )->getX() ) / breite + dOff.x, 10 + ( 200 * gegner->z( i )->getY() ) / höhe + dOff.y, 0xFFFF0000 );
|
|
|
+ zRObj.setPixelDP( 10 + (200 * gegner->z( i )->getX()) / breite + dOff.x, 10 + (200 * gegner->z( i )->getY()) / höhe + dOff.y, 0xFFFF0000 );
|
|
|
for( int i = 0; i < zAnz; i++ )
|
|
|
- zRObj.setPixelDP( 10 + ( 200 * ziele->z( i )->getX() ) / breite + dOff.x, 10 + ( 200 * ziele->z( i )->getY() ) / höhe + dOff.y, 0xFF00FFFF );
|
|
|
- kam->setPosition( 10 + ( 200 * kamX ) / breite, 10 + ( 200 * kamY ) / höhe );
|
|
|
- kam->setSize( ( 200 * 800 ) / breite, ( 200 * 500 ) / höhe );
|
|
|
+ zRObj.setPixelDP( 10 + (200 * ziele->z( i )->getX()) / breite + dOff.x, 10 + (200 * ziele->z( i )->getY()) / höhe + dOff.y, 0xFF00FFFF );
|
|
|
+ kam->setPosition( 10 + (200 * kamX) / breite, 10 + (200 * kamY) / höhe );
|
|
|
+ kam->setSize( (200 * 800) / breite, (200 * 500) / höhe );
|
|
|
if( kam->getBreite() > 200 )
|
|
|
kam->setSize( 200, kam->getHeight() );
|
|
|
if( kam->getHeight() > 200 )
|
|
@@ -374,23 +373,23 @@ void Map::speichern()
|
|
|
{
|
|
|
if( capture.istOffen() )
|
|
|
capture.close();
|
|
|
- Datei *d = new Datei();
|
|
|
+ Datei* d = new Datei();
|
|
|
d->setDatei( "data/Minigames/Fangen/data/game.save" );
|
|
|
d->erstellen();
|
|
|
d->open( Datei::Style::schreiben );
|
|
|
__int64 seed = rGen->getSeed();
|
|
|
- d->schreibe( (char *)&seed, 8 );
|
|
|
- d->schreibe( (char *)&gameTime, 8 );
|
|
|
- d->schreibe( (char *)&breite, 4 );
|
|
|
- d->schreibe( (char *)&höhe, 4 );
|
|
|
- d->schreibe( (char *)&score, 4 );
|
|
|
+ d->schreibe( (char*)&seed, 8 );
|
|
|
+ d->schreibe( (char*)&gameTime, 8 );
|
|
|
+ d->schreibe( (char*)&breite, 4 );
|
|
|
+ d->schreibe( (char*)&höhe, 4 );
|
|
|
+ d->schreibe( (char*)&score, 4 );
|
|
|
spieler->save( d );
|
|
|
int anz = gegner->getEintragAnzahl();
|
|
|
- d->schreibe( (char *)&anz, 4 );
|
|
|
+ d->schreibe( (char*)&anz, 4 );
|
|
|
for( int i = 0; i < anz; i++ )
|
|
|
gegner->z( i )->save( d );
|
|
|
anz = ziele->getEintragAnzahl();
|
|
|
- d->schreibe( (char *)&anz, 4 );
|
|
|
+ d->schreibe( (char*)&anz, 4 );
|
|
|
for( int i = 0; i < anz; i++ )
|
|
|
ziele->z( i )->save( d );
|
|
|
d->close();
|
|
@@ -400,37 +399,37 @@ void Map::speichern()
|
|
|
DateiRemove( "data/Minigames/Fangen/data/game.save" );
|
|
|
}
|
|
|
|
|
|
-Map::Save *Map::saveState()
|
|
|
+Map::Save* Map::saveState()
|
|
|
{
|
|
|
- Save *s = new Save();
|
|
|
+ Save* s = new Save();
|
|
|
s->beendet = beendet;
|
|
|
s->gameTime = gameTime;
|
|
|
s->score = score;
|
|
|
s->scoreCheck = scoreCheck;
|
|
|
s->gegner = new RCArray<Spieler>();
|
|
|
- for( auto g = gegner->getIterator(); g; g++ )
|
|
|
+ for( auto g : *gegner )
|
|
|
s->gegner->add( g->copy() );
|
|
|
s->ziele = new RCArray<Spieler>();
|
|
|
- for( auto z = ziele->getIterator(); z; z++ )
|
|
|
+ for( auto z : *ziele )
|
|
|
s->ziele->add( z->copy() );
|
|
|
s->spieler = spieler->copy();
|
|
|
return s;
|
|
|
}
|
|
|
|
|
|
-void Map::reloadState( Map::Save *s )
|
|
|
+void Map::reloadState( Map::Save* s )
|
|
|
{
|
|
|
beendet = s->beendet;
|
|
|
gameTime = s->gameTime;
|
|
|
score = s->score;
|
|
|
scoreCheck = s->scoreCheck;
|
|
|
gegner->leeren();
|
|
|
- for( auto g = s->gegner->getIterator(); g; g++ )
|
|
|
- gegner->add( dynamic_cast<Spieler *>( g->getThis() ) );
|
|
|
+ for( auto g : *s->gegner )
|
|
|
+ gegner->add( dynamic_cast<Spieler*>(g->getThis()) );
|
|
|
ziele->leeren();
|
|
|
- for( auto z = s->ziele->getIterator(); z; z++ )
|
|
|
- ziele->add( dynamic_cast<Spieler *>( z->getThis() ) );
|
|
|
+ for( auto z : *s->ziele )
|
|
|
+ ziele->add( dynamic_cast<Spieler*>(z->getThis()) );
|
|
|
spieler->release();
|
|
|
- spieler = dynamic_cast<Spieler *>( s->spieler->getThis() );
|
|
|
+ spieler = dynamic_cast<Spieler*>(s->spieler->getThis());
|
|
|
s->ziele->release();
|
|
|
s->gegner->release();
|
|
|
s->spieler->release();
|
|
@@ -458,7 +457,7 @@ bool Map::canGoDown() const
|
|
|
}
|
|
|
|
|
|
|
|
|
-int Map::getBestOption( bool *left, bool *up, bool *right, bool *down, int maxSteps )
|
|
|
+int Map::getBestOption( bool* left, bool* up, bool* right, bool* down, int maxSteps )
|
|
|
{
|
|
|
if( !maxSteps && !beendet )
|
|
|
return score;
|
|
@@ -471,30 +470,30 @@ int Map::getBestOption( bool *left, bool *up, bool *right, bool *down, int maxSt
|
|
|
for( int x = 0; x < orderCount; x++ )
|
|
|
{
|
|
|
int i = order[ x ];
|
|
|
- Save *save = saveState();
|
|
|
+ Save* save = saveState();
|
|
|
TastaturEreignis te;
|
|
|
te.taste = T_Links;
|
|
|
te.verarbeitet = 0;
|
|
|
- te.id = ( i | 0x1 ) == i ? TE_Press : TE_Release;
|
|
|
+ te.id = (i | 0x1) == i ? TE_Press : TE_Release;
|
|
|
doTastaturEreignis( te );
|
|
|
te.taste = T_Oben;
|
|
|
te.verarbeitet = 0;
|
|
|
- te.id = ( i | 0x2 ) == i ? TE_Press : TE_Release;
|
|
|
+ te.id = (i | 0x2) == i ? TE_Press : TE_Release;
|
|
|
doTastaturEreignis( te );
|
|
|
te.taste = T_Rechts;
|
|
|
te.verarbeitet = 0;
|
|
|
- te.id = ( i | 0x4 ) == i ? TE_Press : TE_Release;
|
|
|
+ te.id = (i | 0x4) == i ? TE_Press : TE_Release;
|
|
|
doTastaturEreignis( te );
|
|
|
te.taste = T_Unten;
|
|
|
te.verarbeitet = 0;
|
|
|
- te.id = ( i | 0x8 ) == i ? TE_Press : TE_Release;
|
|
|
+ te.id = (i | 0x8) == i ? TE_Press : TE_Release;
|
|
|
doTastaturEreignis( te );
|
|
|
tick( 0.05 );
|
|
|
tick( 0.05 );
|
|
|
tick( 0.05 );
|
|
|
tick( 0.05 );
|
|
|
tick( 0.05 );
|
|
|
- Save *save2 = saveState();
|
|
|
+ Save* save2 = saveState();
|
|
|
tick( 0.05 );
|
|
|
tick( 0.05 );
|
|
|
tick( 0.05 );
|
|
@@ -517,10 +516,10 @@ int Map::getBestOption( bool *left, bool *up, bool *right, bool *down, int maxSt
|
|
|
reloadState( save2 );
|
|
|
reloadState( save );
|
|
|
}
|
|
|
- *left = ( best | 0x1 ) == best;
|
|
|
- *up = ( best | 0x2 ) == best;
|
|
|
- *right = ( best | 0x4 ) == best;
|
|
|
- *down = ( best | 0x8 ) == best;
|
|
|
+ *left = (best | 0x1) == best;
|
|
|
+ *up = (best | 0x2) == best;
|
|
|
+ *right = (best | 0x4) == best;
|
|
|
+ *down = (best | 0x8) == best;
|
|
|
return maxScore;
|
|
|
}
|
|
|
|