Forráskód Böngészése

Einiege Fehlende Aktionen hinzugefügt

Kolja Strohm 5 éve
szülő
commit
92b3ed3937

+ 52 - 0
StickmanWorldOnline/Aktionen.cpp

@@ -2893,4 +2893,56 @@ BestenlisteGetWert::BestenlisteGetWert( RCArray<Aktion> *subActions )
 void BestenlisteGetWert::run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
 {
     setReturn( new String( ( (Bestenliste *)zParam( 2 ) )->getWert( ( (String *)zParam( 0 ) )->getValue(), ( (String *)zParam( 1 ) )->getValue() ) ) );
+}
+
+
+SchalterMitNummer::SchalterMitNummer( RCArray<Aktion> *subActions )
+    : Aktion( SCHALTER_MIT_NUMMER, subActions )
+{
+    erlaubteTypen.add( INTEGER );
+}
+
+void SchalterMitNummer::run( Spiel * zSpiel, Ereignis * zEreignis, LocalMemory * zMemory, ProgramCounter * zPC, double &waitCount )
+{
+    setReturn( zSpiel->getSchalter( ( (Integer *)zParam( 0 ) )->getValue() ) );
+}
+
+
+BaseMitNummer::BaseMitNummer( RCArray<Aktion> *subActions )
+    : Aktion( BASE_MIT_NUMMER, subActions )
+{
+    erlaubteTypen.add( INTEGER );
+}
+
+void BaseMitNummer::run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
+{
+    setReturn( zSpiel->getBase( ( (Integer *)zParam( 0 ) )->getValue() ) );
+}
+
+
+TeamMitNummer::TeamMitNummer( RCArray<Aktion> *subActions )
+    : Aktion( TEAM_MIT_NUMMER, subActions )
+{
+    erlaubteTypen.add( INTEGER );
+}
+
+void TeamMitNummer::run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
+{
+    setReturn( zSpiel->getTeam( ( (Integer *)zParam( 0 ) )->getValue() ) );
+}
+
+
+TeamVonBase::TeamVonBase( RCArray<Aktion> *subActions )
+    : Aktion( TEAM_VON_BASE, subActions )
+{
+    erlaubteTypen.add( BASE );
+}
+
+void TeamVonBase::run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount )
+{
+    Team *t = ( (Base *)zParam( 0 ) )->getTeam();
+    if( t )
+        setReturn( t );
+    else
+        setReturn( new Variable( VariableTyp::NICHTS ) );
 }

+ 37 - 1
StickmanWorldOnline/Aktionen.h

@@ -213,7 +213,11 @@ enum AktionTyp
     BESTENLISTE_ADD_SPALTE,
     BESTENLISTE_ADD_ZEILE,
     BESTENLISTE_SET_WERT,
-    BESTENLISTE_GET_WERT
+    BESTENLISTE_GET_WERT,
+    SCHALTER_MIT_NUMMER,
+    BASE_MIT_NUMMER,
+    TEAM_MIT_NUMMER,
+    TEAM_VON_BASE
 };
 
 enum Operator
@@ -1880,4 +1884,36 @@ public:
     // f
     BestenlisteGetWert( RCArray< Aktion > *subActions );
     void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
+};
+
+class SchalterMitNummer : public Aktion
+{
+public:
+    // f
+    SchalterMitNummer( RCArray< Aktion > *subActions );
+    void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
+};
+
+class BaseMitNummer : public Aktion
+{
+public:
+    // f
+    BaseMitNummer( RCArray< Aktion > *subActions );
+    void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
+};
+
+class TeamMitNummer : public Aktion
+{
+public:
+    // f
+    TeamMitNummer( RCArray< Aktion > *subActions );
+    void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
+};
+
+class TeamVonBase : public Aktion
+{
+public:
+    // f
+    TeamVonBase( RCArray< Aktion > *subActions );
+    void run( Spiel *zSpiel, Ereignis *zEreignis, LocalMemory *zMemory, ProgramCounter *zPC, double &waitCount ) override;
 };

+ 8 - 0
StickmanWorldOnline/Reader.cpp

@@ -621,6 +621,14 @@ Aktion *MapReader::readAktion( Datei &dat )
         return new BestenlisteSetWert( params );
     case BESTENLISTE_GET_WERT:
         return new BestenlisteGetWert( params );
+    case SCHALTER_MIT_NUMMER:
+        return new SchalterMitNummer( params );
+    case BASE_MIT_NUMMER:
+        return new BaseMitNummer( params );
+    case TEAM_MIT_NUMMER:
+        return new TeamMitNummer( params );
+    case TEAM_VON_BASE:
+        return new TeamVonBase( params );
     }
     params->release();
     return new KonstantNichts();