|
@@ -60,7 +60,7 @@ Spiel::~Spiel()
|
|
teams->release();
|
|
teams->release();
|
|
stat->release();
|
|
stat->release();
|
|
spieler->release();
|
|
spieler->release();
|
|
- for( auto o = objekte->getIterator(); o; o++ )
|
|
|
|
|
|
+ for( auto o : *objekte )
|
|
o->setTeam( 0 );
|
|
o->setTeam( 0 );
|
|
objekte->release();
|
|
objekte->release();
|
|
welt->release();
|
|
welt->release();
|
|
@@ -81,7 +81,7 @@ int Spiel::getTeamVonSpieler( int sNum )
|
|
{
|
|
{
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->getSpielerNummer() == sNum )
|
|
if( tmp && tmp->getSpielerNummer() == sNum )
|
|
return tmp->zTeam() ? tmp->zTeam()->id : 0;
|
|
return tmp->zTeam() ? tmp->zTeam()->id : 0;
|
|
}
|
|
}
|
|
@@ -89,12 +89,12 @@ int Spiel::getTeamVonSpieler( int sNum )
|
|
}
|
|
}
|
|
|
|
|
|
// nicht constant
|
|
// nicht constant
|
|
-void Spiel::setPSQLK( SSDatenbankV *psqldb )
|
|
|
|
|
|
+void Spiel::setPSQLK( SSDatenbankV* psqldb )
|
|
{
|
|
{
|
|
if( this->psqldb )
|
|
if( this->psqldb )
|
|
this->psqldb->release();
|
|
this->psqldb->release();
|
|
this->psqldb = psqldb;
|
|
this->psqldb = psqldb;
|
|
- stat->setPSQLDB( dynamic_cast<SSDatenbankV *>( psqldb->getThis() ) );
|
|
|
|
|
|
+ stat->setPSQLDB( dynamic_cast<SSDatenbankV*>(psqldb->getThis()) );
|
|
}
|
|
}
|
|
|
|
|
|
void Spiel::setSpielId( int id )
|
|
void Spiel::setSpielId( int id )
|
|
@@ -109,29 +109,29 @@ void Spiel::setKarteId( int karteId )
|
|
stat->setKarteId( karteId );
|
|
stat->setKarteId( karteId );
|
|
}
|
|
}
|
|
|
|
|
|
-void Spiel::setTempPfad( char *pfad )
|
|
|
|
|
|
+void Spiel::setTempPfad( char* pfad )
|
|
{
|
|
{
|
|
mapPfad = pfad;
|
|
mapPfad = pfad;
|
|
mapPfad += "/";
|
|
mapPfad += "/";
|
|
}
|
|
}
|
|
|
|
|
|
-void Spiel::setAccounts( int anzahl, Array< int > *zAccounts )
|
|
|
|
|
|
+void Spiel::setAccounts( int anzahl, Array< int >* zAccounts )
|
|
{
|
|
{
|
|
- this->zAccounts = dynamic_cast<Array<int> *>( zAccounts->getThis() );
|
|
|
|
|
|
+ this->zAccounts = dynamic_cast<Array<int> *>(zAccounts->getThis());
|
|
spielerAnzahl = anzahl;
|
|
spielerAnzahl = anzahl;
|
|
}
|
|
}
|
|
|
|
|
|
-void Spiel::setKlients( int anzahl, RCArray< SSKlientV > *zKlients )
|
|
|
|
|
|
+void Spiel::setKlients( int anzahl, RCArray< SSKlientV >* zKlients )
|
|
{
|
|
{
|
|
- this->zKlients = dynamic_cast<RCArray<SSKlientV> *>( zKlients->getThis() );
|
|
|
|
|
|
+ this->zKlients = dynamic_cast<RCArray<SSKlientV> *>(zKlients->getThis());
|
|
}
|
|
}
|
|
|
|
|
|
-void Spiel::setSpielerNummern( int anzahl, Array< int > *spielerNummern )
|
|
|
|
|
|
+void Spiel::setSpielerNummern( int anzahl, Array< int >* spielerNummern )
|
|
{
|
|
{
|
|
if( !sts )
|
|
if( !sts )
|
|
{
|
|
{
|
|
sts = new SpielerTeamStruktur();
|
|
sts = new SpielerTeamStruktur();
|
|
- KartenLeser *reader = new KartenLeser( karteId, dynamic_cast<SSDatenbankV *>( psqldb->getThis() ), mapPfad );
|
|
|
|
|
|
+ KartenLeser* reader = new KartenLeser( karteId, dynamic_cast<SSDatenbankV*>(psqldb->getThis()), mapPfad );
|
|
reader->ladeSpielerTeamStruktur( sts );
|
|
reader->ladeSpielerTeamStruktur( sts );
|
|
if( karte )
|
|
if( karte )
|
|
karte->release();
|
|
karte->release();
|
|
@@ -139,12 +139,12 @@ void Spiel::setSpielerNummern( int anzahl, Array< int > *spielerNummern )
|
|
reader->release();
|
|
reader->release();
|
|
for( int i = 0; i < sts->teamAnzahl; i++ )
|
|
for( int i = 0; i < sts->teamAnzahl; i++ )
|
|
teams->set( karte->createTeam( i ), i );
|
|
teams->set( karte->createTeam( i ), i );
|
|
- stat->setTeamNamen( dynamic_cast<RCArray<Text> *>( sts->teamName->getThis() ) );
|
|
|
|
|
|
+ stat->setTeamNamen( dynamic_cast<RCArray<Text> *>(sts->teamName->getThis()) );
|
|
for( auto o = karte->getObjekte(); o; o++ )
|
|
for( auto o = karte->getObjekte(); o; o++ )
|
|
{
|
|
{
|
|
- SpielObjekt *obj = karte->createObjekt( o->id );
|
|
|
|
|
|
+ SpielObjekt* obj = karte->createObjekt( o->id );
|
|
obj->setTeam( teams->get( o->team - 1 ) );
|
|
obj->setTeam( teams->get( o->team - 1 ) );
|
|
- welt->addObject( dynamic_cast<SpielObjekt *>( obj->getThis() ) );
|
|
|
|
|
|
+ welt->addObject( dynamic_cast<SpielObjekt*>(obj->getThis()) );
|
|
objekte->add( obj );
|
|
objekte->add( obj );
|
|
}
|
|
}
|
|
welt->setSize( karte->getSize().x, karte->getSize().y );
|
|
welt->setSize( karte->getSize().x, karte->getSize().y );
|
|
@@ -152,7 +152,7 @@ void Spiel::setSpielerNummern( int anzahl, Array< int > *spielerNummern )
|
|
}
|
|
}
|
|
for( int i = 0; i < anzahl; i++ )
|
|
for( int i = 0; i < anzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = karte->createSpieler( spielerNummern->get( i ) );
|
|
|
|
|
|
+ Spieler* tmp = karte->createSpieler( spielerNummern->get( i ) );
|
|
if( tmp )
|
|
if( tmp )
|
|
{
|
|
{
|
|
int team = 0;
|
|
int team = 0;
|
|
@@ -160,7 +160,7 @@ void Spiel::setSpielerNummern( int anzahl, Array< int > *spielerNummern )
|
|
int bis = 0;
|
|
int bis = 0;
|
|
for( int j = 0; j < sts->teamAnzahl; j++ )
|
|
for( int j = 0; j < sts->teamAnzahl; j++ )
|
|
{
|
|
{
|
|
- bis = von + ( sts->teamSize->hat( j ) ? sts->teamSize->get( j ) : 0 );
|
|
|
|
|
|
+ bis = von + (sts->teamSize->hat( j ) ? sts->teamSize->get( j ) : 0);
|
|
if( spielerNummern->get( i ) >= von && spielerNummern->get( i ) < bis )
|
|
if( spielerNummern->get( i ) >= von && spielerNummern->get( i ) < bis )
|
|
{
|
|
{
|
|
team = j;
|
|
team = j;
|
|
@@ -171,7 +171,7 @@ void Spiel::setSpielerNummern( int anzahl, Array< int > *spielerNummern )
|
|
tmp->setTeam( teams->get( team ) );
|
|
tmp->setTeam( teams->get( team ) );
|
|
teams->z( team )->spieler->add( tmp );
|
|
teams->z( team )->spieler->add( tmp );
|
|
}
|
|
}
|
|
- welt->addObject( dynamic_cast<Spieler *>( tmp->getThis() ) );
|
|
|
|
|
|
+ welt->addObject( dynamic_cast<Spieler*>(tmp->getThis()) );
|
|
spieler->set( tmp, i );
|
|
spieler->set( tmp, i );
|
|
}
|
|
}
|
|
for( int i = 0; i < anzahl; i++ )
|
|
for( int i = 0; i < anzahl; i++ )
|
|
@@ -179,8 +179,8 @@ void Spiel::setSpielerNummern( int anzahl, Array< int > *spielerNummern )
|
|
for( int i = 0; i < anzahl; i++ )
|
|
for( int i = 0; i < anzahl; i++ )
|
|
spieler->z( i )->setKlient( new Klient( zKlients->get( i ) ) );
|
|
spieler->z( i )->setKlient( new Klient( zKlients->get( i ) ) );
|
|
stat->setSpieler( spielerAnzahl, spieler );
|
|
stat->setSpieler( spielerAnzahl, spieler );
|
|
- zAccounts = ( Array<int>* )zAccounts->release();
|
|
|
|
- zKlients = ( RCArray<SSKlientV>* )zKlients->release();
|
|
|
|
|
|
+ zAccounts = (Array<int>*)zAccounts->release();
|
|
|
|
+ zKlients = (RCArray<SSKlientV>*)zKlients->release();
|
|
teamAnzahl = 0;
|
|
teamAnzahl = 0;
|
|
for( int i = 0; i < sts->teamAnzahl; i++ )
|
|
for( int i = 0; i < sts->teamAnzahl; i++ )
|
|
if( teams->z( i )->spieler->getEintragAnzahl() )
|
|
if( teams->z( i )->spieler->getEintragAnzahl() )
|
|
@@ -196,16 +196,16 @@ void Spiel::klientOffline( int accountId )
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void Spiel::klientOnline( int accountId, SSKlientV *zKlient )
|
|
|
|
|
|
+void Spiel::klientOnline( int accountId, SSKlientV* zKlient )
|
|
{
|
|
{
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
if( spieler->z( i )->getAccountId() == accountId )
|
|
if( spieler->z( i )->getAccountId() == accountId )
|
|
{
|
|
{
|
|
EnterCriticalSection( &cs );
|
|
EnterCriticalSection( &cs );
|
|
- Spieler *s = spieler->z( i );
|
|
|
|
|
|
+ Spieler* s = spieler->z( i );
|
|
s->online( zKlient );
|
|
s->online( zKlient );
|
|
- Klient *tmp = spieler->z( i )->zKlient();
|
|
|
|
|
|
+ Klient* tmp = spieler->z( i )->zKlient();
|
|
tmp->sendeSpielerNummer( s->getSpielerNummer(), 0 );
|
|
tmp->sendeSpielerNummer( s->getSpielerNummer(), 0 );
|
|
//--------------------------
|
|
//--------------------------
|
|
LeaveCriticalSection( &cs );
|
|
LeaveCriticalSection( &cs );
|
|
@@ -213,7 +213,7 @@ void Spiel::klientOnline( int accountId, SSKlientV *zKlient )
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
|
|
|
|
+void Spiel::nachricht( int accountId, int len, char* bytes )
|
|
{
|
|
{
|
|
if( !isRunning || ende )
|
|
if( !isRunning || ende )
|
|
return;
|
|
return;
|
|
@@ -223,7 +223,7 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
LeaveCriticalSection( &cs );
|
|
LeaveCriticalSection( &cs );
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- char *msgBeg = bytes;
|
|
|
|
|
|
+ char* msgBeg = bytes;
|
|
int msgLen = len;
|
|
int msgLen = len;
|
|
int msgAccount = accountId;
|
|
int msgAccount = accountId;
|
|
bool saveMSG = 1;
|
|
bool saveMSG = 1;
|
|
@@ -240,12 +240,12 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
case 7:
|
|
case 7:
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->getAccountId() == accountId )
|
|
if( tmp && tmp->getAccountId() == accountId )
|
|
{
|
|
{
|
|
if( !tmp->istAmLeben() )
|
|
if( !tmp->istAmLeben() )
|
|
break;
|
|
break;
|
|
- if( !tmp->setTastataturStatus( (TastaturStatus)( (int)( *bytes ) / 2 ), ( (int)( *bytes ) % 2 ) == 0 ) )
|
|
|
|
|
|
+ if( !tmp->setTastataturStatus( (TastaturStatus)((int)(*bytes) / 2), ((int)(*bytes) % 2) == 0 ) )
|
|
{
|
|
{
|
|
saveMSG = 0;
|
|
saveMSG = 0;
|
|
break;
|
|
break;
|
|
@@ -254,9 +254,9 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
{
|
|
{
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( j );
|
|
|
|
|
|
+ Spieler* s = spieler->z( j );
|
|
if( s && s->zKlient() )
|
|
if( s && s->zKlient() )
|
|
- s->zKlient()->sendeTastaturStatus( tmp->getSpielerNummer(), (TastaturStatus)( (int)( *bytes ) / 2 ), ( (int)( *bytes ) % 2 ) == 0, spielZeit );
|
|
|
|
|
|
+ s->zKlient()->sendeTastaturStatus( tmp->getSpielerNummer(), (TastaturStatus)((int)(*bytes) / 2), ((int)(*bytes) % 2) == 0, spielZeit );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
@@ -267,12 +267,12 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
if( 1 )
|
|
if( 1 )
|
|
{
|
|
{
|
|
bytes++;
|
|
bytes++;
|
|
- Text *txt = psqldb->getAccountRufName( accountId );
|
|
|
|
|
|
+ Text* txt = psqldb->getAccountRufName( accountId );
|
|
txt->append( ": " );
|
|
txt->append( ": " );
|
|
txt->append( bytes, len );
|
|
txt->append( bytes, len );
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->zKlient() )
|
|
if( tmp && tmp->zKlient() )
|
|
tmp->zKlient()->sendeChatNachricht( txt->getText(), spielZeit );
|
|
tmp->zKlient()->sendeChatNachricht( txt->getText(), spielZeit );
|
|
}
|
|
}
|
|
@@ -287,7 +287,7 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
len--;
|
|
len--;
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->getAccountId() == accountId )
|
|
if( tmp && tmp->getAccountId() == accountId )
|
|
{
|
|
{
|
|
if( !tmp->istAmLeben() )
|
|
if( !tmp->istAmLeben() )
|
|
@@ -299,7 +299,7 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
}
|
|
}
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( j );
|
|
|
|
|
|
+ Spieler* s = spieler->z( j );
|
|
if( s && s->zKlient() )
|
|
if( s && s->zKlient() )
|
|
s->zKlient()->sendeSkillNachricht( tmp->getSpielerNummer(), art, spielZeit );
|
|
s->zKlient()->sendeSkillNachricht( tmp->getSpielerNummer(), art, spielZeit );
|
|
}
|
|
}
|
|
@@ -315,7 +315,7 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
len--;
|
|
len--;
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->getAccountId() == accountId )
|
|
if( tmp && tmp->getAccountId() == accountId )
|
|
{
|
|
{
|
|
if( !tmp->istAmLeben() )
|
|
if( !tmp->istAmLeben() )
|
|
@@ -323,7 +323,7 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
tmp->useSkill( id );
|
|
tmp->useSkill( id );
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( j );
|
|
|
|
|
|
+ Spieler* s = spieler->z( j );
|
|
if( s && s->zKlient() )
|
|
if( s && s->zKlient() )
|
|
s->zKlient()->sendeUseSkillNachricht( tmp->getSpielerNummer(), id, spielZeit );
|
|
s->zKlient()->sendeUseSkillNachricht( tmp->getSpielerNummer(), id, spielZeit );
|
|
}
|
|
}
|
|
@@ -346,16 +346,16 @@ void Spiel::nachricht( int accountId, int len, char *bytes )
|
|
int spielerNum = 0;
|
|
int spielerNum = 0;
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->getAccountId() == msgAccount )
|
|
if( tmp && tmp->getAccountId() == msgAccount )
|
|
{
|
|
{
|
|
spielerNum = tmp->getSpielerNummer();
|
|
spielerNum = tmp->getSpielerNummer();
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- log->schreibe( (char *)&spielerNum, 4 );
|
|
|
|
|
|
+ log->schreibe( (char*)&spielerNum, 4 );
|
|
short l = (short)msgLen;
|
|
short l = (short)msgLen;
|
|
- log->schreibe( (char *)&l, 2 );
|
|
|
|
|
|
+ log->schreibe( (char*)&l, 2 );
|
|
log->schreibe( msgBeg, l );
|
|
log->schreibe( msgBeg, l );
|
|
}
|
|
}
|
|
LeaveCriticalSection( &cs );
|
|
LeaveCriticalSection( &cs );
|
|
@@ -368,7 +368,7 @@ void Spiel::tick( double zeit )
|
|
// Spieler Updaten
|
|
// Spieler Updaten
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp )
|
|
if( tmp )
|
|
{
|
|
{
|
|
if( tmp->doNeedWiederbelebung() )
|
|
if( tmp->doNeedWiederbelebung() )
|
|
@@ -376,7 +376,7 @@ void Spiel::tick( double zeit )
|
|
tmp->wiederbeleben();
|
|
tmp->wiederbeleben();
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( j );
|
|
|
|
|
|
+ Spieler* s = spieler->z( j );
|
|
if( s )
|
|
if( s )
|
|
s->zKlient()->sendeWiederbelebung( tmp->getSpielerNummer(), spielZeit );
|
|
s->zKlient()->sendeWiederbelebung( tmp->getSpielerNummer(), spielZeit );
|
|
}
|
|
}
|
|
@@ -387,14 +387,14 @@ void Spiel::tick( double zeit )
|
|
int anz = shots->getEintragAnzahl();
|
|
int anz = shots->getEintragAnzahl();
|
|
for( int i = 0; i < anz; i++ )
|
|
for( int i = 0; i < anz; i++ )
|
|
{
|
|
{
|
|
- Laser *tmp = shots->z( i );
|
|
|
|
|
|
+ Laser* tmp = shots->z( i );
|
|
if( tmp )
|
|
if( tmp )
|
|
{
|
|
{
|
|
if( tmp->getIntensity() <= 0 )
|
|
if( tmp->getIntensity() <= 0 )
|
|
{ // Schuss existiert nicht mehr
|
|
{ // Schuss existiert nicht mehr
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( j );
|
|
|
|
|
|
+ Spieler* s = spieler->z( j );
|
|
if( s )
|
|
if( s )
|
|
s->zKlient()->sendeTreffer( tmp->getId(), -1, spielZeit, 0, 0 );
|
|
s->zKlient()->sendeTreffer( tmp->getId(), -1, spielZeit, 0, 0 );
|
|
}
|
|
}
|
|
@@ -408,17 +408,17 @@ void Spiel::tick( double zeit )
|
|
int team = getTeamVonSpieler( tmp->getSpieler() );
|
|
int team = getTeamVonSpieler( tmp->getSpieler() );
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
- Spieler *attacked = spieler->z( j );
|
|
|
|
|
|
+ Spieler* attacked = spieler->z( j );
|
|
if( attacked && attacked->zTeam() && attacked->zTeam()->id != team && attacked->istTreffer( tmp->getPosition() ) )
|
|
if( attacked && attacked->zTeam() && attacked->zTeam()->id != team && attacked->istTreffer( tmp->getPosition() ) )
|
|
{ // Treffer
|
|
{ // Treffer
|
|
- Spieler *attacker = 0;
|
|
|
|
|
|
+ Spieler* attacker = 0;
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *tmpS = spieler->z( k );
|
|
|
|
|
|
+ Spieler* tmpS = spieler->z( k );
|
|
if( tmpS && tmpS->getSpielerNummer() == tmp->getSpieler() )
|
|
if( tmpS && tmpS->getSpielerNummer() == tmp->getSpieler() )
|
|
attacker = tmpS;
|
|
attacker = tmpS;
|
|
}
|
|
}
|
|
- double intens = tmp->getIntensity() * ( ( tmp->getSpeed() - attacked->getSpeed() ).getLength() / 200 );
|
|
|
|
|
|
+ double intens = tmp->getIntensity() * ((tmp->getSpeed() - attacked->getSpeed()).getLength() / 200);
|
|
bool kill = attacked->nimmSchaden( intens, attacker ? attacker->getLevel() : 1 );
|
|
bool kill = attacked->nimmSchaden( intens, attacker ? attacker->getLevel() : 1 );
|
|
if( tmp->getSpeed().getLengthSq() > 0 )
|
|
if( tmp->getSpeed().getLengthSq() > 0 )
|
|
attacked->impuls( tmp->getPosition() - tmp->getSpeed(), tmp->getSpeed() * 0.3f );
|
|
attacked->impuls( tmp->getPosition() - tmp->getSpeed(), tmp->getSpeed() * 0.3f );
|
|
@@ -429,7 +429,7 @@ void Spiel::tick( double zeit )
|
|
attacker->addKill( attacked->getLevel() );
|
|
attacker->addKill( attacked->getLevel() );
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *sp = spieler->z( k );
|
|
|
|
|
|
+ Spieler* sp = spieler->z( k );
|
|
if( sp )
|
|
if( sp )
|
|
sp->zKlient()->sendeTreffer( tmp->getId(), attacked->getSpielerNummer(), spielZeit, erf, skillP );
|
|
sp->zKlient()->sendeTreffer( tmp->getId(), attacked->getSpielerNummer(), spielZeit, erf, skillP );
|
|
if( kill && sp )
|
|
if( kill && sp )
|
|
@@ -452,17 +452,17 @@ void Spiel::tick( double zeit )
|
|
int objektAnzahl = objekte->getEintragAnzahl();
|
|
int objektAnzahl = objekte->getEintragAnzahl();
|
|
for( int j = 0; j < objektAnzahl; j++ )
|
|
for( int j = 0; j < objektAnzahl; j++ )
|
|
{
|
|
{
|
|
- SpielObjekt *attacked = objekte->z( j );
|
|
|
|
- if( attacked && ( !attacked->zTeam() || attacked->zTeam()->id != team ) && attacked->doesCollideWithLaser() && attacked->istTreffer( tmp->getPosition() ) )
|
|
|
|
|
|
+ SpielObjekt* attacked = objekte->z( j );
|
|
|
|
+ if( attacked && (!attacked->zTeam() || attacked->zTeam()->id != team) && attacked->doesCollideWithLaser() && attacked->istTreffer( tmp->getPosition() ) )
|
|
{ // Treffer
|
|
{ // Treffer
|
|
- Spieler *attacker = 0;
|
|
|
|
|
|
+ Spieler* attacker = 0;
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *tmpS = spieler->z( k );
|
|
|
|
|
|
+ Spieler* tmpS = spieler->z( k );
|
|
if( tmpS && tmpS->getSpielerNummer() == tmp->getSpieler() )
|
|
if( tmpS && tmpS->getSpielerNummer() == tmp->getSpieler() )
|
|
attacker = tmpS;
|
|
attacker = tmpS;
|
|
}
|
|
}
|
|
- double intens = tmp->getIntensity() * ( ( tmp->getSpeed() - attacked->getSpeed() ).getLength() / 200 );
|
|
|
|
|
|
+ double intens = tmp->getIntensity() * ((tmp->getSpeed() - attacked->getSpeed()).getLength() / 200);
|
|
bool kill = attacked->nimmSchaden( intens, attacker ? attacker->getLevel() : 1 );
|
|
bool kill = attacked->nimmSchaden( intens, attacker ? attacker->getLevel() : 1 );
|
|
if( tmp->getSpeed().getLengthSq() > 0 )
|
|
if( tmp->getSpeed().getLengthSq() > 0 )
|
|
attacked->impuls( tmp->getPosition() - tmp->getSpeed(), tmp->getSpeed() * 0.3f );
|
|
attacked->impuls( tmp->getPosition() - tmp->getSpeed(), tmp->getSpeed() * 0.3f );
|
|
@@ -473,7 +473,7 @@ void Spiel::tick( double zeit )
|
|
attacker->addKill( attacked->getLevel(), attacked->doesShotAddEp() );
|
|
attacker->addKill( attacked->getLevel(), attacked->doesShotAddEp() );
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *sp = spieler->z( k );
|
|
|
|
|
|
+ Spieler* sp = spieler->z( k );
|
|
if( sp )
|
|
if( sp )
|
|
sp->zKlient()->sendeObjektTreffer( tmp->getId(), attacked->getObjektId(), spielZeit, erf, skillP );
|
|
sp->zKlient()->sendeObjektTreffer( tmp->getId(), attacked->getObjektId(), spielZeit, erf, skillP );
|
|
if( kill && sp )
|
|
if( kill && sp )
|
|
@@ -496,18 +496,18 @@ void Spiel::tick( double zeit )
|
|
int aAnz = asteroids->getEintragAnzahl();
|
|
int aAnz = asteroids->getEintragAnzahl();
|
|
for( int j = 0; j < aAnz; j++ )
|
|
for( int j = 0; j < aAnz; j++ )
|
|
{
|
|
{
|
|
- Asteroid *a = asteroids->z( j );
|
|
|
|
|
|
+ Asteroid* a = asteroids->z( j );
|
|
Vertex pos;
|
|
Vertex pos;
|
|
__int64 seed = randG.getSeed();
|
|
__int64 seed = randG.getSeed();
|
|
- double intens = tmp->getIntensity() * ( ( tmp->getSpeed() - a->getSpeed() ).getLength() / 200 );
|
|
|
|
- Asteroid *b = a->istTreffer( tmp, &randG, asteroidId, pos );
|
|
|
|
|
|
+ double intens = tmp->getIntensity() * ((tmp->getSpeed() - a->getSpeed()).getLength() / 200);
|
|
|
|
+ Asteroid* b = a->istTreffer( tmp, &randG, asteroidId, pos );
|
|
if( b )
|
|
if( b )
|
|
{
|
|
{
|
|
float erf = 0;
|
|
float erf = 0;
|
|
int skillP = 0;
|
|
int skillP = 0;
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( k );
|
|
|
|
|
|
+ Spieler* s = spieler->z( k );
|
|
if( s && s->getSpielerNummer() == tmp->getSpieler() )
|
|
if( s && s->getSpielerNummer() == tmp->getSpieler() )
|
|
{
|
|
{
|
|
s->addTreffer( (float)intens, 0 );
|
|
s->addTreffer( (float)intens, 0 );
|
|
@@ -517,7 +517,7 @@ void Spiel::tick( double zeit )
|
|
}
|
|
}
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( k );
|
|
|
|
|
|
+ Spieler* s = spieler->z( k );
|
|
if( s )
|
|
if( s )
|
|
s->zKlient()->sendeAsteroidTreffer( a->getId(), b->getId(), tmp->getId(), pos, seed, spielZeit, erf, skillP );
|
|
s->zKlient()->sendeAsteroidTreffer( a->getId(), b->getId(), tmp->getId(), pos, seed, spielZeit, erf, skillP );
|
|
}
|
|
}
|
|
@@ -525,17 +525,17 @@ void Spiel::tick( double zeit )
|
|
shots->remove( i );
|
|
shots->remove( i );
|
|
if( b->getMasse() > intens * 50 )
|
|
if( b->getMasse() > intens * 50 )
|
|
{
|
|
{
|
|
- asteroids->add( dynamic_cast<Asteroid *>( b->getThis() ) );
|
|
|
|
|
|
+ asteroids->add( dynamic_cast<Asteroid*>(b->getThis()) );
|
|
welt->addObject( b );
|
|
welt->addObject( b );
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- Pixel *p = new Pixel( b->getPosition(), b->getSpeed(), b->getMasse() / 50, pixelId++ );
|
|
|
|
- welt->addObject( dynamic_cast<Pixel *>( p->getThis() ) );
|
|
|
|
|
|
+ Pixel* p = new Pixel( b->getPosition(), b->getSpeed(), b->getMasse() / 50, pixelId++ );
|
|
|
|
+ welt->addObject( dynamic_cast<Pixel*>(p->getThis()) );
|
|
pixel->add( p );
|
|
pixel->add( p );
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( k );
|
|
|
|
|
|
+ Spieler* s = spieler->z( k );
|
|
if( s )
|
|
if( s )
|
|
s->zKlient()->sendePixel( b->getId(), p->getId(), spielZeit );
|
|
s->zKlient()->sendePixel( b->getId(), p->getId(), spielZeit );
|
|
}
|
|
}
|
|
@@ -543,12 +543,12 @@ void Spiel::tick( double zeit )
|
|
}
|
|
}
|
|
if( a->getMasse() < intens * 50 )
|
|
if( a->getMasse() < intens * 50 )
|
|
{
|
|
{
|
|
- Pixel *p = new Pixel( a->getPosition(), a->getSpeed(), a->getMasse() / 50, pixelId++ );
|
|
|
|
- welt->addObject( dynamic_cast<Pixel *>( p->getThis() ) );
|
|
|
|
|
|
+ Pixel* p = new Pixel( a->getPosition(), a->getSpeed(), a->getMasse() / 50, pixelId++ );
|
|
|
|
+ welt->addObject( dynamic_cast<Pixel*>(p->getThis()) );
|
|
pixel->add( p );
|
|
pixel->add( p );
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
for( int k = 0; k < spielerAnzahl; k++ )
|
|
{
|
|
{
|
|
- Spieler *s = spieler->z( k );
|
|
|
|
|
|
+ Spieler* s = spieler->z( k );
|
|
if( s )
|
|
if( s )
|
|
s->zKlient()->sendePixel( a->getId(), p->getId(), spielZeit );
|
|
s->zKlient()->sendePixel( a->getId(), p->getId(), spielZeit );
|
|
}
|
|
}
|
|
@@ -564,14 +564,14 @@ void Spiel::tick( double zeit )
|
|
// Neue Schüsse hinzufügen
|
|
// Neue Schüsse hinzufügen
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp )
|
|
if( tmp )
|
|
{
|
|
{
|
|
- Laser *nL = tmp->getLaser( nextSchussId );
|
|
|
|
|
|
+ Laser* nL = tmp->getLaser( nextSchussId );
|
|
if( nL )
|
|
if( nL )
|
|
{
|
|
{
|
|
nextSchussId++;
|
|
nextSchussId++;
|
|
- welt->addObject( dynamic_cast<Laser *>( nL->getThis() ) );
|
|
|
|
|
|
+ welt->addObject( dynamic_cast<Laser*>(nL->getThis()) );
|
|
shots->add( nL );
|
|
shots->add( nL );
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
@@ -592,10 +592,10 @@ void Spiel::tick( double zeit )
|
|
Vertex speed = Vertex( (float)randG.rand() * 100, (float)randG.rand() * 100 );
|
|
Vertex speed = Vertex( (float)randG.rand() * 100, (float)randG.rand() * 100 );
|
|
float rot = 2 * (float)PI * (float)randG.rand();
|
|
float rot = 2 * (float)PI * (float)randG.rand();
|
|
float rotS = (float)randG.rand();
|
|
float rotS = (float)randG.rand();
|
|
- int index = (int)( (float)asteroidModels->getEintragAnzahl() * (float)randG.rand() );
|
|
|
|
- Asteroid *astr = new Asteroid( asteroidId++, pos, speed, rot, rotS, asteroidModels->get( index ) );
|
|
|
|
|
|
+ int index = (int)((float)asteroidModels->getEintragAnzahl() * (float)randG.rand());
|
|
|
|
+ Asteroid* astr = new Asteroid( asteroidId++, pos, speed, rot, rotS, asteroidModels->get( index ) );
|
|
asteroids->add( astr );
|
|
asteroids->add( astr );
|
|
- welt->addObject( dynamic_cast<Asteroid *>( astr->getThis() ) );
|
|
|
|
|
|
+ welt->addObject( dynamic_cast<Asteroid*>(astr->getThis()) );
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
{
|
|
{
|
|
if( spieler->z( j ) && spieler->z( j )->zKlient() )
|
|
if( spieler->z( j ) && spieler->z( j )->zKlient() )
|
|
@@ -607,7 +607,7 @@ void Spiel::tick( double zeit )
|
|
int pixelAnz = pixel->getEintragAnzahl();
|
|
int pixelAnz = pixel->getEintragAnzahl();
|
|
for( int i = 0; i < pixelAnz; i++ )
|
|
for( int i = 0; i < pixelAnz; i++ )
|
|
{
|
|
{
|
|
- Pixel *p = pixel->z( i );
|
|
|
|
|
|
+ Pixel* p = pixel->z( i );
|
|
if( p->getEp() <= 0 )
|
|
if( p->getEp() <= 0 )
|
|
{
|
|
{
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
for( int j = 0; j < spielerAnzahl; j++ )
|
|
@@ -621,7 +621,7 @@ void Spiel::tick( double zeit )
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
- for( auto s = spieler->getIterator(); s; s++ )
|
|
|
|
|
|
+ for( auto s : *spieler )
|
|
{
|
|
{
|
|
if( s->istTreffer( p->getPosition() ) )
|
|
if( s->istTreffer( p->getPosition() ) )
|
|
{
|
|
{
|
|
@@ -643,11 +643,11 @@ void Spiel::tick( double zeit )
|
|
|
|
|
|
void Spiel::run()
|
|
void Spiel::run()
|
|
{
|
|
{
|
|
- Text *pfad = psqldb->getSpielPfad( karteId );
|
|
|
|
|
|
+ Text* pfad = psqldb->getSpielPfad( karteId );
|
|
if( pfad )
|
|
if( pfad )
|
|
pfad->append( "/" );
|
|
pfad->append( "/" );
|
|
pfad->append( "models/asteroids.m2" );
|
|
pfad->append( "models/asteroids.m2" );
|
|
- M2Datei *aDat = new M2Datei();
|
|
|
|
|
|
+ M2Datei* aDat = new M2Datei();
|
|
aDat->setPfadZ( pfad );
|
|
aDat->setPfadZ( pfad );
|
|
aDat->leseDaten();
|
|
aDat->leseDaten();
|
|
int anz = aDat->getModelAnzahl();
|
|
int anz = aDat->getModelAnzahl();
|
|
@@ -666,43 +666,43 @@ void Spiel::run()
|
|
time_t t;
|
|
time_t t;
|
|
time( &t );
|
|
time( &t );
|
|
srand( (unsigned int)t );
|
|
srand( (unsigned int)t );
|
|
- log->schreibe( (char *)&spielerAnzahl, 4 );
|
|
|
|
|
|
+ log->schreibe( (char*)&spielerAnzahl, 4 );
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->zKlient() )
|
|
if( tmp && tmp->zKlient() )
|
|
{
|
|
{
|
|
tmp->addSkill( new ShieldBoost() );
|
|
tmp->addSkill( new ShieldBoost() );
|
|
tmp->addSkill( new SpeedBoost() );
|
|
tmp->addSkill( new SpeedBoost() );
|
|
tmp->zKlient()->sendeInit( spieler, -1 );
|
|
tmp->zKlient()->sendeInit( spieler, -1 );
|
|
- log->schreibe( (char *)&i, 4 );
|
|
|
|
|
|
+ log->schreibe( (char*)&i, 4 );
|
|
int sNum = tmp->getSpielerNummer();
|
|
int sNum = tmp->getSpielerNummer();
|
|
- log->schreibe( (char *)&sNum, 4 );
|
|
|
|
|
|
+ log->schreibe( (char*)&sNum, 4 );
|
|
tmp->zKlient()->sendeSpielerNummer( sNum, -1 );
|
|
tmp->zKlient()->sendeSpielerNummer( sNum, -1 );
|
|
int team = tmp->zTeam()->id;
|
|
int team = tmp->zTeam()->id;
|
|
- log->schreibe( (char *)&team, 4 );
|
|
|
|
|
|
+ log->schreibe( (char*)&team, 4 );
|
|
int farbe = tmp->getSpielerFarbe();
|
|
int farbe = tmp->getSpielerFarbe();
|
|
- log->schreibe( (char *)&farbe, 4 );
|
|
|
|
|
|
+ log->schreibe( (char*)&farbe, 4 );
|
|
farbe = tmp->zTeam()->farbe;
|
|
farbe = tmp->zTeam()->farbe;
|
|
- log->schreibe( (char *)&farbe, 4 );
|
|
|
|
- Text *name = psqldb->getAccountRufName( tmp->getAccountId() );
|
|
|
|
- char len = (char)( name ? name->getLength() : 0 );
|
|
|
|
|
|
+ log->schreibe( (char*)&farbe, 4 );
|
|
|
|
+ Text* name = psqldb->getAccountRufName( tmp->getAccountId() );
|
|
|
|
+ char len = (char)(name ? name->getLength() : 0);
|
|
log->schreibe( &len, 1 );
|
|
log->schreibe( &len, 1 );
|
|
if( len )
|
|
if( len )
|
|
log->schreibe( name->getText(), len );
|
|
log->schreibe( name->getText(), len );
|
|
if( name )
|
|
if( name )
|
|
name->release();
|
|
name->release();
|
|
name = sts->teamName->z( team );
|
|
name = sts->teamName->z( team );
|
|
- len = (char)( name ? name->getLength() : 0 );
|
|
|
|
|
|
+ len = (char)(name ? name->getLength() : 0);
|
|
log->schreibe( &len, 1 );
|
|
log->schreibe( &len, 1 );
|
|
if( len )
|
|
if( len )
|
|
log->schreibe( name->getText(), len );
|
|
log->schreibe( name->getText(), len );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
__int64 randSeed = randG.getSeed();
|
|
__int64 randSeed = randG.getSeed();
|
|
- log->schreibe( (char *)&randSeed, 8 );
|
|
|
|
|
|
+ log->schreibe( (char*)&randSeed, 8 );
|
|
Array< char > spielerStatus;
|
|
Array< char > spielerStatus;
|
|
- ZeitMesser *zeit = new ZeitMesser();
|
|
|
|
|
|
+ ZeitMesser* zeit = new ZeitMesser();
|
|
zeit->messungStart();
|
|
zeit->messungStart();
|
|
isRunning = 1;
|
|
isRunning = 1;
|
|
ende = 0;
|
|
ende = 0;
|
|
@@ -711,7 +711,7 @@ void Spiel::run()
|
|
spielZeit = -1;
|
|
spielZeit = -1;
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp && tmp->zKlient() )
|
|
if( tmp && tmp->zKlient() )
|
|
tmp->zKlient()->sendeStart( spielZeit );
|
|
tmp->zKlient()->sendeStart( spielZeit );
|
|
}
|
|
}
|
|
@@ -723,7 +723,7 @@ void Spiel::run()
|
|
double z = zeit->getSekunden();
|
|
double z = zeit->getSekunden();
|
|
ausgleich += TICK - z;
|
|
ausgleich += TICK - z;
|
|
if( ausgleich > 0 )
|
|
if( ausgleich > 0 )
|
|
- Sleep( (int)( ausgleich * 1000 ) );
|
|
|
|
|
|
+ Sleep( (int)(ausgleich * 1000) );
|
|
rZeit += z;
|
|
rZeit += z;
|
|
while( sZ + TICK < rZeit && !ende )
|
|
while( sZ + TICK < rZeit && !ende )
|
|
{
|
|
{
|
|
@@ -753,7 +753,7 @@ void Spiel::run()
|
|
spieler->z( i )->zKlient()->sendeSpielEnde( 1, 0 );
|
|
spieler->z( i )->zKlient()->sendeSpielEnde( 1, 0 );
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- if( spieler->z( i ) && ( !spieler->z( i )->zKlient() || !spieler->z( i )->istOnline() ) )
|
|
|
|
|
|
+ if( spieler->z( i ) && (!spieler->z( i )->zKlient() || !spieler->z( i )->istOnline()) )
|
|
spielerStatus.set( 3, i );
|
|
spielerStatus.set( 3, i );
|
|
}
|
|
}
|
|
if( teamAnzahl == 1 )
|
|
if( teamAnzahl == 1 )
|
|
@@ -762,7 +762,7 @@ void Spiel::run()
|
|
psqldb->setSpielStatusBeendet( spielId, 5 );
|
|
psqldb->setSpielStatusBeendet( spielId, 5 );
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
for( int i = 0; i < spielerAnzahl; i++ )
|
|
{
|
|
{
|
|
- Spieler *tmp = spieler->z( i );
|
|
|
|
|
|
+ Spieler* tmp = spieler->z( i );
|
|
if( tmp )
|
|
if( tmp )
|
|
{
|
|
{
|
|
psqldb->setSpielSpielerStatus( spielId, tmp->getAccountId(), tmp->getPunkte(), spielerStatus.get( i ) );
|
|
psqldb->setSpielSpielerStatus( spielId, tmp->getAccountId(), tmp->getPunkte(), spielerStatus.get( i ) );
|
|
@@ -771,12 +771,12 @@ void Spiel::run()
|
|
}
|
|
}
|
|
}
|
|
}
|
|
log->close();
|
|
log->close();
|
|
- log = (Datei *)log->release();
|
|
|
|
|
|
+ log = (Datei*)log->release();
|
|
isRunning = 0;
|
|
isRunning = 0;
|
|
}
|
|
}
|
|
|
|
|
|
// constant
|
|
// constant
|
|
-StatistikV *Spiel::getStatistik() const
|
|
|
|
|
|
+StatistikV* Spiel::getStatistik() const
|
|
{
|
|
{
|
|
- return dynamic_cast<StatistikV *>( stat->getThis() );
|
|
|
|
|
|
+ return dynamic_cast<StatistikV*>(stat->getThis());
|
|
}
|
|
}
|