KSGScriptObj.h 3.0 KB

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