KSGScriptObj.h 3.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #ifndef KSGScriptObj_H
  2. #define KSGScriptObj_H
  3. #include <Zeichnung.h>
  4. #include <Text.h>
  5. #include <Array.h>
  6. #include <Schrift.h>
  7. #include <TextFeld.h>
  8. using namespace Framework;
  9. namespace KSGScript
  10. {
  11. class KSGSFunktion; // ../Befehl/KSGSFunktion.h
  12. class KSGSFunktionInstanz; // ../Befehl/KSGSFunktion.h
  13. class KSGSKlasse; // ../Befehl/KSGSKlasse.h
  14. class KSGSKlasseInstanz; // ../Befehl/KSGSKlasse.h
  15. typedef KSGSKlasseInstanz KSGSVariable;
  16. class KSGScriptObj : public Zeichnung
  17. {
  18. private:
  19. Text *pfad;
  20. Text *wd;
  21. void *rParam;
  22. void( *rFunktion )( void *, RCArray< KSGSVariable > *, KSGSVariable ** );
  23. RCArray< KSGSVariable > *variablen;
  24. RCArray< KSGSFunktion > *funktionen;
  25. RCArray< KSGSKlasse > *klassen;
  26. Schrift *schrift;
  27. Bildschirm *screen;
  28. RCArray< KSGSVariable > *mausP;
  29. RCArray< KSGSVariable > *tastaturP;
  30. RCArray< KSGSVariable > *tickP;
  31. RCArray< KSGSVariable > *renderP;
  32. TextFeld *log;
  33. int mainId;
  34. int mausId;
  35. int tastaturId;
  36. int tickId;
  37. int renderId;
  38. int geladen;
  39. int scrId;
  40. Critical cs;
  41. int ref;
  42. public:
  43. // Konstruktor
  44. __declspec( dllexport ) KSGScriptObj();
  45. // Destruktor
  46. __declspec( dllexport ) ~KSGScriptObj();
  47. // nicht constant
  48. __declspec( dllexport ) virtual void lock();
  49. __declspec( dllexport ) virtual void unlock();
  50. __declspec( dllexport ) virtual void setScriptDatei( const char *pfad );
  51. __declspec( dllexport ) virtual void setScriptDatei( Text *pfad );
  52. __declspec( dllexport ) virtual bool neuLaden();
  53. __declspec( dllexport ) virtual void zurücksetzen();
  54. __declspec( dllexport ) virtual void setRückrufParam( void *p );
  55. __declspec( dllexport ) virtual void setRückrufFunktion( void( *funktion )( void *, RCArray< KSGSVariable > *, KSGSVariable ** ) );
  56. __declspec( dllexport ) virtual void setSchriftZ( Schrift *s );
  57. __declspec( dllexport ) virtual void setBildschirmZ( Bildschirm *s );
  58. __declspec( dllexport ) virtual void doMausEreignis( MausEreignis &me ) override;
  59. __declspec( dllexport ) virtual void doTastaturEreignis( TastaturEreignis &te ) override;
  60. __declspec( dllexport ) virtual bool tick( double zeit ) override;
  61. __declspec( dllexport ) virtual void render( Bild &zRObj ) override;
  62. __declspec( dllexport ) virtual KSGSVariable *startFunktion( int id, RCArray< KSGSVariable > *parameter );
  63. __declspec( dllexport ) virtual KSGSVariable *erstellKlassenInstanz( int id );
  64. __declspec( dllexport ) virtual void setVariable( int id, KSGSVariable *var );
  65. __declspec( dllexport ) virtual Text *convertPfad( char *pf );
  66. __declspec( dllexport ) virtual void setLog( TextFeld *log );
  67. __declspec( dllexport ) virtual void logNachricht( char *n );
  68. // constant
  69. __declspec( dllexport ) virtual KSGSVariable *rückruf( RCArray< KSGSVariable > *parameter ) const;
  70. __declspec( dllexport ) virtual Text *getScriptDateiPfad() const;
  71. __declspec( dllexport ) virtual Text *zScriptDateiPfad() const;
  72. __declspec( dllexport ) virtual Schrift *getSchrift() const;
  73. __declspec( dllexport ) virtual Schrift *zSchrift() const;
  74. __declspec( dllexport ) virtual Bildschirm *getBildschirm() const;
  75. __declspec( dllexport ) virtual Bildschirm *zBildschirm() const;
  76. __declspec( dllexport ) virtual int getScriptId() const;
  77. __declspec( dllexport ) virtual bool istBeendet( int scrId ) const;
  78. __declspec( dllexport ) virtual int getFunktionId( const char *name ) const;
  79. __declspec( dllexport ) virtual KSGSVariable *getVariable( int id ) const;
  80. // Reference Counting
  81. __declspec( dllexport ) virtual KSGScriptObj *getThis();
  82. __declspec( dllexport ) virtual KSGScriptObj *release();
  83. };
  84. }
  85. #endif