#ifndef KSGScriptObj_H #define KSGScriptObj_H #include #include #include #include #include using namespace Framework; namespace KSGScript { class KSGSFunktion; // ../Befehl/KSGSFunktion.h class KSGSFunktionInstanz; // ../Befehl/KSGSFunktion.h class KSGSKlasse; // ../Befehl/KSGSKlasse.h class KSGSKlasseInstanz; // ../Befehl/KSGSKlasse.h typedef KSGSKlasseInstanz KSGSVariable; class KSGScriptObj : public Zeichnung { private: Text *pfad; Text *wd; void *rParam; void( *rFunktion )( void *, RCArray< KSGSVariable > *, KSGSVariable ** ); RCArray< KSGSVariable > *variablen; RCArray< KSGSFunktion > *funktionen; RCArray< KSGSKlasse > *klassen; Schrift *schrift; Bildschirm *screen; RCArray< KSGSVariable > *mausP; RCArray< KSGSVariable > *tastaturP; RCArray< KSGSVariable > *tickP; RCArray< KSGSVariable > *renderP; TextFeld *log; int mainId; int mausId; int tastaturId; int tickId; int renderId; int geladen; int scrId; Critical cs; int ref; public: // Konstruktor __declspec( dllexport ) KSGScriptObj(); // Destruktor __declspec( dllexport ) ~KSGScriptObj(); // nicht constant __declspec( dllexport ) virtual void lock(); __declspec( dllexport ) virtual void unlock(); __declspec( dllexport ) virtual void setScriptDatei( const char *pfad ); __declspec( dllexport ) virtual void setScriptDatei( Text *pfad ); __declspec( dllexport ) virtual bool neuLaden(); __declspec( dllexport ) virtual void zurücksetzen(); __declspec( dllexport ) virtual void setRückrufParam( void *p ); __declspec( dllexport ) virtual void setRückrufFunktion( void( *funktion )( void *, RCArray< KSGSVariable > *, KSGSVariable ** ) ); __declspec( dllexport ) virtual void setSchriftZ( Schrift *s ); __declspec( dllexport ) virtual void setBildschirmZ( Bildschirm *s ); __declspec( dllexport ) virtual void doMausEreignis( MausEreignis &me ) override; __declspec( dllexport ) virtual void doTastaturEreignis( TastaturEreignis &te ) override; __declspec( dllexport ) virtual bool tick( double zeit ) override; __declspec( dllexport ) virtual void render( Bild &zRObj ) override; __declspec( dllexport ) virtual KSGSVariable *startFunktion( int id, RCArray< KSGSVariable > *parameter ); __declspec( dllexport ) virtual KSGSVariable *erstellKlassenInstanz( int id ); __declspec( dllexport ) virtual void setVariable( int id, KSGSVariable *var ); __declspec( dllexport ) virtual Text *convertPfad( char *pf ); __declspec( dllexport ) virtual void setLog( TextFeld *log ); __declspec( dllexport ) virtual void logNachricht( char *n ); // constant __declspec( dllexport ) virtual KSGSVariable *rückruf( RCArray< KSGSVariable > *parameter ) const; __declspec( dllexport ) virtual Text *getScriptDateiPfad() const; __declspec( dllexport ) virtual Text *zScriptDateiPfad() const; __declspec( dllexport ) virtual Schrift *getSchrift() const; __declspec( dllexport ) virtual Schrift *zSchrift() const; __declspec( dllexport ) virtual Bildschirm *getBildschirm() const; __declspec( dllexport ) virtual Bildschirm *zBildschirm() const; __declspec( dllexport ) virtual int getScriptId() const; __declspec( dllexport ) virtual bool istBeendet( int scrId ) const; __declspec( dllexport ) virtual int getFunktionId( const char *name ) const; __declspec( dllexport ) virtual KSGSVariable *getVariable( int id ) const; // Reference Counting __declspec( dllexport ) virtual KSGScriptObj *getThis(); __declspec( dllexport ) virtual KSGScriptObj *release(); }; } #endif