|
@@ -0,0 +1,529 @@
|
|
|
+#include "Aktionen.h"
|
|
|
+#include "Trigger.h"
|
|
|
+#include "Spiel.h"
|
|
|
+
|
|
|
+Aktion::Aktion( AktionTyp typ )
|
|
|
+ : Variable( AKTION )
|
|
|
+{
|
|
|
+ this->typ = typ;
|
|
|
+}
|
|
|
+
|
|
|
+Aktion::~Aktion()
|
|
|
+{}
|
|
|
+
|
|
|
+
|
|
|
+KonstantNichts::KonstantNichts()
|
|
|
+ : Aktion( KONSTANT_NICHTS )
|
|
|
+{}
|
|
|
+
|
|
|
+bool KonstantNichts::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zMemory->setVar( "__return__", new Variable( NICHTS ) );
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+KonstantInteger::KonstantInteger( int val )
|
|
|
+ : Aktion( KONSTANT_INTEGER )
|
|
|
+{
|
|
|
+ this->value = val;
|
|
|
+}
|
|
|
+
|
|
|
+bool KonstantInteger::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zMemory->setVar( "__return__", new Integer( value ) );
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+KonstantBoolean::KonstantBoolean( bool val )
|
|
|
+ : Aktion( KONSTANT_BOOLEAN )
|
|
|
+{
|
|
|
+ value = val;
|
|
|
+}
|
|
|
+
|
|
|
+bool KonstantBoolean::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zMemory->setVar( "__return__", new Boolean( value ) );
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+KonstantString::KonstantString( Text val )
|
|
|
+ : Aktion( KONSTANT_STRING )
|
|
|
+{
|
|
|
+ value = val;
|
|
|
+}
|
|
|
+
|
|
|
+bool KonstantString::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zMemory->setVar( "__return__", new String( value ) );
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+KonstantFloat::KonstantFloat( float val )
|
|
|
+ : Aktion( KONSTANT_FLOAT )
|
|
|
+{
|
|
|
+ value = val;
|
|
|
+}
|
|
|
+
|
|
|
+bool KonstantFloat::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zMemory->setVar( "__return__", new Float( value ) );
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+KonstantVariable::KonstantVariable( Text name )
|
|
|
+ : Aktion( KONSTANT_VARIABLE )
|
|
|
+{
|
|
|
+ this->name = name;
|
|
|
+}
|
|
|
+
|
|
|
+bool KonstantVariable::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ if( zMemory->zVariable( name ) )
|
|
|
+ zMemory->setVar( "__return__", zMemory->getVariable( name ) );
|
|
|
+ else if( zEreignis->zParameter( name ) )
|
|
|
+ zMemory->setVar( "__return__", zEreignis->zParameter( name ) );
|
|
|
+ else if( zSpiel->zVariable( name ) )
|
|
|
+ zMemory->setVar( "__return__", zSpiel->getVariable( name ) );
|
|
|
+ else
|
|
|
+ zMemory->setVar( "__return__", new Variable( NICHTS ) );
|
|
|
+ return 1;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+Warten::Warten( Aktion *seconds )
|
|
|
+ : Aktion( WARTEN )
|
|
|
+{
|
|
|
+ this->seconds = seconds;
|
|
|
+}
|
|
|
+
|
|
|
+Warten::~Warten()
|
|
|
+{
|
|
|
+ seconds->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool Warten::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ bool finished = seconds->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount );
|
|
|
+ if( finished )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != FLOAT )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ waitCount += ( (Float *)t )->getValue();
|
|
|
+ }
|
|
|
+ return finished;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+WennDannSonst::WennDannSonst( Aktion *wenn, Aktion *dann, Aktion *sonst )
|
|
|
+ : Aktion( WENN_DANN_SONST )
|
|
|
+{
|
|
|
+ this->wenn = wenn;
|
|
|
+ this->dann = dann;
|
|
|
+ this->sonst = sonst;
|
|
|
+}
|
|
|
+
|
|
|
+WennDannSonst::~WennDannSonst()
|
|
|
+{
|
|
|
+ wenn->release();
|
|
|
+ if( dann )
|
|
|
+ dann->release();
|
|
|
+ if( sonst )
|
|
|
+ sonst->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool WennDannSonst::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zPC->stepIn();
|
|
|
+ if( zPC->currentPosition() == 0 )
|
|
|
+ {
|
|
|
+ bool finished = wenn->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount );
|
|
|
+ if( finished )
|
|
|
+ {
|
|
|
+ Variable *ret = zMemory->zVariable( "__return__" );
|
|
|
+ zPC->count();
|
|
|
+ if( !isTrue( ret ) )
|
|
|
+ {
|
|
|
+ zPC->count();
|
|
|
+ if( !sonst )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ if( !dann )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 1 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ bool finished = dann->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount );
|
|
|
+ if( finished )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 2 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ bool finished = sonst->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount );
|
|
|
+ if( finished )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ zPC->stepOut();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+SetVariable::SetVariable( Text name, Aktion *value )
|
|
|
+ : Aktion( SET_VARIABLE )
|
|
|
+{
|
|
|
+ this->name = name;
|
|
|
+ this->value = value;
|
|
|
+}
|
|
|
+
|
|
|
+SetVariable::~SetVariable()
|
|
|
+{
|
|
|
+ value->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool SetVariable::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ bool finished = value->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount );
|
|
|
+ if( finished )
|
|
|
+ {
|
|
|
+ if( zMemory->zVariable( name ) || zEreignis->zParameter( name ) || !zSpiel->zVariable( name ) )
|
|
|
+ zMemory->setVar( name, zMemory->getVariable( "__return__" ) );
|
|
|
+ else
|
|
|
+ zSpiel->setVariable( name, zMemory->getVariable( "__return__" ) );
|
|
|
+ }
|
|
|
+ return finished;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+TriggerAktion::TriggerAktion( Aktion *number, Aktion *triggerName )
|
|
|
+ : Aktion( TRIGGER_AKTION )
|
|
|
+{
|
|
|
+ this->number = number;
|
|
|
+ trigger = triggerName;
|
|
|
+}
|
|
|
+
|
|
|
+TriggerAktion::~TriggerAktion()
|
|
|
+{
|
|
|
+ number->release();
|
|
|
+ trigger->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool TriggerAktion::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zPC->stepIn();
|
|
|
+ if( zPC->currentPosition() == 0 )
|
|
|
+ {
|
|
|
+ if( number->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != INTEGER )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R0__", t->getThis() );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 1 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( trigger->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != TRIGGER )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ int id = ( (Integer *)zMemory->zVariable( zPC->getUniqueString() + "R0__" ) )->getValue();
|
|
|
+ if( id >= ( (Trigger *)t )->getAktionAnzahl() )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R0__", ( (Trigger *)t )->getAktion( id ) );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 2 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( ( (Aktion *)zMemory->zVariable( zPC->getUniqueString() + "R0__" ) )->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ zPC->stepOut();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+SpielerNachricht::SpielerNachricht( Aktion *spieler, Aktion *nachricht )
|
|
|
+ : Aktion( SPIELER_NACHRICHT )
|
|
|
+{
|
|
|
+ this->spieler = spieler;
|
|
|
+ this->nachricht = nachricht;
|
|
|
+}
|
|
|
+
|
|
|
+SpielerNachricht::~SpielerNachricht()
|
|
|
+{
|
|
|
+ spieler->release();
|
|
|
+ nachricht->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool SpielerNachricht::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zPC->stepIn();
|
|
|
+ if( zPC->currentPosition() == 0 )
|
|
|
+ {
|
|
|
+ if( spieler->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != SPIELER )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R0__", t->getThis() );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 1 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( nachricht->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( t->getVariableTyp() != STRING )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ // this is handeld on client side directly (no need to send the message to the player)
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ zPC->stepOut();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+DisplayText::DisplayText( Aktion *x, Aktion *y, Aktion *f, Aktion *dauer, Aktion *nachricht )
|
|
|
+ : Aktion( DISPLAY_TEXT )
|
|
|
+{
|
|
|
+ this->x = x;
|
|
|
+ this->y = y;
|
|
|
+ this->color = f;
|
|
|
+ this->dauer = dauer;
|
|
|
+ this->nachricht = nachricht;
|
|
|
+}
|
|
|
+
|
|
|
+DisplayText::~DisplayText()
|
|
|
+{
|
|
|
+ x->release();
|
|
|
+ y->release();
|
|
|
+ color->release();
|
|
|
+ dauer->release();
|
|
|
+ nachricht->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool DisplayText::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zPC->stepIn();
|
|
|
+ if( zPC->currentPosition() == 0 )
|
|
|
+ {
|
|
|
+ if( x->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != FLOAT )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R0__", t->getThis() );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 1 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( y->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != FLOAT )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R1__", t->getThis() );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 2 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( dauer->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != FLOAT )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R2__", t->getThis() );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 3 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( color->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || ( t->getVariableTyp() != INTEGER ) )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R3__", t->getThis() );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 4 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( color->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || ( t->getVariableTyp() != STRING ) )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ Float *xv = (Float *)zMemory->zVariable( zPC->getUniqueString() + "R0__" );
|
|
|
+ Float *yv = (Float *)zMemory->zVariable( zPC->getUniqueString() + "R1__" );
|
|
|
+ Float *dauerv = (Float *)zMemory->zVariable( zPC->getUniqueString() + "R2__" );
|
|
|
+ Integer *farbev = (Integer *)zMemory->zVariable( zPC->getUniqueString() + "R3__" );
|
|
|
+ // do nothing because the server does not need to show text
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ zPC->stepOut();
|
|
|
+ return 0;
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+SpielPause::SpielPause( Aktion *paused )
|
|
|
+ : Aktion( SPIEL_PAUSE )
|
|
|
+{
|
|
|
+ this->paused = paused;
|
|
|
+}
|
|
|
+
|
|
|
+SpielPause::~SpielPause()
|
|
|
+{
|
|
|
+ paused->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool SpielPause::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ if( paused->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || ( t->getVariableTyp() != BOOLEAN ) )
|
|
|
+ return 1;
|
|
|
+ zSpiel->setPausiert( ( (Boolean *)t )->getValue() );
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+SpielEnde::SpielEnde( Aktion *gewinnerTeam )
|
|
|
+ : Aktion( SPIEL_ENDE )
|
|
|
+{
|
|
|
+ this->gewinnerTeam = gewinnerTeam;
|
|
|
+}
|
|
|
+
|
|
|
+SpielEnde::~SpielEnde()
|
|
|
+{
|
|
|
+ gewinnerTeam->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool SpielEnde::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ if( gewinnerTeam->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || ( t->getVariableTyp() != TEAM && t->getVariableTyp() != NICHTS ) )
|
|
|
+ return 1;
|
|
|
+ zSpiel->setEnde( t->getVariableTyp() == NICHTS ? 0 : (Team*)t );
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+SpielerSetLevel::SpielerSetLevel( Aktion *level, Aktion *spieler )
|
|
|
+ : Aktion( SPIELER_SET_LEVEL )
|
|
|
+{
|
|
|
+ this->level = level;
|
|
|
+ this->spieler = spieler;
|
|
|
+}
|
|
|
+
|
|
|
+SpielerSetLevel::~SpielerSetLevel()
|
|
|
+{
|
|
|
+ level->release();
|
|
|
+ spieler->release();
|
|
|
+}
|
|
|
+
|
|
|
+bool SpielerSetLevel::runNext( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
|
|
|
+{
|
|
|
+ zPC->stepIn();
|
|
|
+ if( zPC->currentPosition() == 0 )
|
|
|
+ {
|
|
|
+ if( level->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != INTEGER )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ zMemory->setVar( zPC->getUniqueString() + "R0__", t->getThis() );
|
|
|
+ zPC->count();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if( zPC->currentPosition() == 1 && waitCount <= 0 )
|
|
|
+ {
|
|
|
+ if( spieler->runNext( zSpiel, zEreignis, zMemory, zPC, waitCount ) )
|
|
|
+ {
|
|
|
+ Variable *t = zMemory->zVariable( "__return__" );
|
|
|
+ if( !t || t->getVariableTyp() != SPIELER )
|
|
|
+ {
|
|
|
+ zPC->stepOut();
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ ( (Spieler *)t )->setLevel( ( (Integer *)zMemory->zVariable( zPC->getUniqueString() + "R0__" ) )->getValue() );
|
|
|
+ }
|
|
|
+ }
|
|
|
+ zPC->stepOut();
|
|
|
+ return 0;
|
|
|
+}
|