KSGSCompile.cpp 36 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558
  1. #include "KSGSCompile.h"
  2. #include "../Klassen/KSGSTyp.h"
  3. using namespace KSGScript;
  4. // Compile Strukturen
  5. KSGSCompileVariable::KSGSCompileVariable( int t, int s )
  6. {
  7. typ = t;
  8. sichtbar = s;
  9. }
  10. KSGSCompileFunktion::KSGSCompileFunktion( int t, int s, std::initializer_list< int > pt )
  11. {
  12. typ = t;
  13. sichtbar = s;
  14. for( auto p = pt.begin(); p != pt.end(); p++ )
  15. parameterTyp.add( *p );
  16. }
  17. // Inhalt der KSGSCompVarTable Klasse aus KSGSCompile.h
  18. // Konstruktor
  19. KSGSCompVarTable::KSGSCompVarTable()
  20. : ReferenceCounter()
  21. {
  22. namen = new RCArray< Text >();
  23. vars = new Array< KSGSCompileVariable * >();
  24. }
  25. // Destruktor
  26. KSGSCompVarTable::~KSGSCompVarTable()
  27. {
  28. namen->release();
  29. int anz = vars->getEintragAnzahl();
  30. for( int i = 0; i < anz; i++ )
  31. delete vars->get( i );
  32. vars->release();
  33. }
  34. // nicht constant
  35. bool KSGSCompVarTable::addVariable( const char *name, KSGSCompileVariable *var ) // fügt namen der Tabelle hinzu
  36. {
  37. if( !hat( name ) )
  38. {
  39. var->id = namen->getEintragAnzahl();
  40. namen->set( new Text( name ), var->id );
  41. vars->set( var, var->id );
  42. }
  43. else
  44. {
  45. delete var;
  46. return 0;
  47. }
  48. return 1;
  49. }
  50. // constant
  51. KSGSCompileVariable *KSGSCompVarTable::get( const char *name ) const // gibt die KSGSCompVarTableariable eines Namens zurück
  52. {
  53. int anz = namen->getEintragAnzahl();
  54. for( int i = 0; i < anz; i++ )
  55. {
  56. if( namen->z( i )->istGleich( name ) )
  57. return vars->get( i );
  58. }
  59. return 0;
  60. }
  61. bool KSGSCompVarTable::hat( const char *name ) const // prüft, ob name vorhanden ist
  62. {
  63. int anz = namen->getEintragAnzahl();
  64. for( int i = 0; i < anz; i++ )
  65. {
  66. if( namen->z( i )->istGleich( name ) )
  67. return 1;
  68. }
  69. return 0;
  70. }
  71. // Inhalt der KSGSCompFuncTable Klasse aus KSGSCompile.h
  72. // Konstruktor
  73. KSGSCompFuncTable::KSGSCompFuncTable()
  74. : ReferenceCounter()
  75. {
  76. namen = new RCArray< Text >();
  77. funks = new Array< KSGSCompileFunktion * >();
  78. }
  79. // Destruktor
  80. KSGSCompFuncTable::~KSGSCompFuncTable()
  81. {
  82. namen->release();
  83. int anz = funks->getEintragAnzahl();
  84. for( int i = 0; i < anz; i++ )
  85. delete funks->get( i );
  86. funks->release();
  87. }
  88. // nicht constant
  89. bool KSGSCompFuncTable::addFunktion( const char *name, KSGSCompileFunktion *func ) // fügt namen der Tabelle hinzu
  90. {
  91. if( !hat( name ) )
  92. {
  93. func->id = namen->getEintragAnzahl();
  94. namen->set( new Text( name ), func->id );
  95. funks->set( func, func->id );
  96. }
  97. else
  98. {
  99. delete func;
  100. return 0;
  101. }
  102. return 1;
  103. }
  104. // constant
  105. KSGSCompileFunktion *KSGSCompFuncTable::get( const char *name ) const // gibt die KSGSCompVarTableariable eines Namens zurück
  106. {
  107. int anz = namen->getEintragAnzahl();
  108. for( int i = 0; i < anz; i++ )
  109. {
  110. if( namen->z( i )->istGleich( name ) )
  111. return funks->get( i );
  112. }
  113. return 0;
  114. }
  115. bool KSGSCompFuncTable::hat( const char *name ) const // prüft, ob name vorhanden ist
  116. {
  117. int anz = namen->getEintragAnzahl();
  118. for( int i = 0; i < anz; i++ )
  119. {
  120. if( namen->z( i )->istGleich( name ) )
  121. return 1;
  122. }
  123. return 0;
  124. }
  125. // Inhalt der KSGSCompKlassTable Klasse aus KSGSCompile.h
  126. // Konstruktor
  127. KSGSCompKlassTable::KSGSCompKlassTable()
  128. : ReferenceCounter()
  129. {
  130. namen = new RCArray< Text >();
  131. klassen = new Array< KSGSCompileKlasse * >();
  132. // Standart klassen
  133. // Void Standart
  134. addKlasse( "void", new KSGSCompileKlasse() );
  135. // bool Standart
  136. addKlasse( "bool", new KSGSCompileKlasse() );
  137. // int Standart
  138. addKlasse( "int", new KSGSCompileKlasse() );
  139. // double Standart
  140. addKlasse( "double", new KSGSCompileKlasse() );
  141. // Array Standart
  142. KSGSCompileKlasse *_array = new KSGSCompileKlasse();
  143. addKlasse( "Array", _array );
  144. _array->funcs.addFunktion( "anhängen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_VOID } ) );
  145. _array->funcs.addFunktion( "einfügen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_VOID } ) );
  146. _array->funcs.addFunktion( "set", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_VOID } ) );
  147. _array->funcs.addFunktion( "setPosition", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  148. _array->funcs.addFunktion( "lösche", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  149. _array->funcs.addFunktion( "tausche", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  150. _array->funcs.addFunktion( "leeren", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  151. _array->funcs.addFunktion( "getEintragAnzahl", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  152. _array->funcs.addFunktion( "get", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  153. _array->funcs.addFunktion( "hat", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT } ) );
  154. // Thread Standart
  155. KSGSCompileKlasse *_thread = new KSGSCompileKlasse();
  156. addKlasse( "Thread", _thread );
  157. _thread->funcs.addFunktion( "pause", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  158. _thread->funcs.addFunktion( "fortsetzen", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  159. _thread->funcs.addFunktion( "ende", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  160. _thread->funcs.addFunktion( "läuft", new KSGSCompileFunktion( KSGS_BOOL, 1, {} ) );
  161. _thread->funcs.addFunktion( "warteAufThread", new KSGSCompileFunktion( KSGS_INT, 1, { KSGS_INT } ) );
  162. // Text Standart
  163. KSGSCompileKlasse *_Text = new KSGSCompileKlasse();
  164. addKlasse( "Text", _Text );
  165. _Text->funcs.addFunktion( "setSuchGrenzen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  166. _Text->funcs.addFunktion( "setText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  167. _Text->funcs.addFunktion( "anhängen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  168. _Text->funcs.addFunktion( "einfügen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_TEXT } ) );
  169. _Text->funcs.addFunktion( "ersetzen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_TEXT } ) );
  170. _Text->funcs.addFunktion( "löschen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  171. _Text->funcs.addFunktion( "getLänge", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  172. _Text->funcs.addFunktion( "hat", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_TEXT } ) );
  173. _Text->funcs.addFunktion( "istGleich", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_TEXT } ) );
  174. _Text->funcs.addFunktion( "anzahlVon", new KSGSCompileFunktion( KSGS_INT, 1, { KSGS_TEXT } ) );
  175. _Text->funcs.addFunktion( "positionVon", new KSGSCompileFunktion( KSGS_INT, 1, { KSGS_TEXT, KSGS_INT } ) );
  176. _Text->funcs.addFunktion( "getTeilText", new KSGSCompileFunktion( KSGS_TEXT, 1, { KSGS_INT, KSGS_INT } ) );
  177. // Bild Standart
  178. KSGSCompileKlasse *_Bild = new KSGSCompileKlasse();
  179. addKlasse( "Bild", _Bild );
  180. _Bild->funcs.addFunktion( "neuBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT } ) );
  181. _Bild->funcs.addFunktion( "setAlpha", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  182. _Bild->funcs.addFunktion( "releaseAlpha", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  183. _Bild->funcs.addFunktion( "alphaPixel", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT } ) );
  184. _Bild->funcs.addFunktion( "setPixel", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT } ) );
  185. _Bild->funcs.addFunktion( "alphaRegion", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT } ) );
  186. _Bild->funcs.addFunktion( "füllRegion", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT } ) );
  187. _Bild->funcs.addFunktion( "drawLinieAlpha", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT } ) );
  188. _Bild->funcs.addFunktion( "drawLinie", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT } ) );
  189. _Bild->funcs.addFunktion( "alphaBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  190. _Bild->funcs.addFunktion( "drawBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  191. _Bild->funcs.addFunktion( "alphaBild90", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  192. _Bild->funcs.addFunktion( "drawBild90", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  193. _Bild->funcs.addFunktion( "alphaBild180", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  194. _Bild->funcs.addFunktion( "drawBild180", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  195. _Bild->funcs.addFunktion( "alphaBild270", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  196. _Bild->funcs.addFunktion( "drawBild270", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT, KSGS_BILD } ) );
  197. _Bild->funcs.addFunktion( "setDrawOptions", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT } ) );
  198. _Bild->funcs.addFunktion( "setDrawOptionsErzwingen", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT, KSGS_INT, KSGS_INT, KSGS_INT } ) );
  199. _Bild->funcs.addFunktion( "releaseDrawOptions", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  200. _Bild->funcs.addFunktion( "getBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  201. _Bild->funcs.addFunktion( "getHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  202. _Bild->funcs.addFunktion( "getPixel", new KSGSCompileFunktion( KSGS_INT, 1, { KSGS_INT, KSGS_INT } ) );
  203. _Bild->funcs.addFunktion( "addScrollOffset", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT, KSGS_INT } ) );
  204. // MausEreignis Standart
  205. KSGSCompileKlasse *_MausEreignis = new KSGSCompileKlasse();
  206. addKlasse( "MausEreignis", _MausEreignis );
  207. _MausEreignis->vars.addVariable( "id", new KSGSCompileVariable( KSGS_INT, 1 ) );
  208. _MausEreignis->vars.addVariable( "mx", new KSGSCompileVariable( KSGS_INT, 1 ) );
  209. _MausEreignis->vars.addVariable( "my", new KSGSCompileVariable( KSGS_INT, 1 ) );
  210. _MausEreignis->vars.addVariable( "verarbeitet", new KSGSCompileVariable( KSGS_BOOL, 1 ) );
  211. _MausEreignis->vars.addVariable( "insideParent", new KSGSCompileVariable( KSGS_BOOL, 1 ) );
  212. _MausEreignis->vars.addVariable( "originalX", new KSGSCompileVariable( KSGS_INT, 1 ) );
  213. _MausEreignis->vars.addVariable( "originalY", new KSGSCompileVariable( KSGS_INT, 1 ) );
  214. _MausEreignis->funcs.addFunktion( "setId", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  215. _MausEreignis->funcs.addFunktion( "setMx", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  216. _MausEreignis->funcs.addFunktion( "setMy", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  217. _MausEreignis->funcs.addFunktion( "setVerarbeitet", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BOOL } ) );
  218. _MausEreignis->funcs.addFunktion( "setInsideParent", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BOOL } ) );
  219. // TastaturEreignis Standart
  220. KSGSCompileKlasse *_TastaturEreignis = new KSGSCompileKlasse();
  221. addKlasse( "TastaturEreignis", _TastaturEreignis );
  222. _TastaturEreignis->vars.addVariable( "id", new KSGSCompileVariable( KSGS_INT, 1 ) );
  223. _TastaturEreignis->vars.addVariable( "taste", new KSGSCompileVariable( KSGS_INT, 1 ) );
  224. _TastaturEreignis->vars.addVariable( "verarbeitet", new KSGSCompileVariable( KSGS_BOOL, 1 ) );
  225. _TastaturEreignis->funcs.addFunktion( "setId", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  226. _TastaturEreignis->funcs.addFunktion( "setTaste", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  227. _TastaturEreignis->funcs.addFunktion( "setVerarbeitet", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BOOL } ) );
  228. // TextFeld Standart
  229. KSGSCompileKlasse *_TextFeld = new KSGSCompileKlasse();
  230. addKlasse( "TextFeld", _TextFeld );
  231. _TextFeld->funcs.addFunktion( "setText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  232. _TextFeld->funcs.addFunktion( "addZeile", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  233. _TextFeld->funcs.addFunktion( "setAuswahl", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  234. _TextFeld->funcs.addFunktion( "setHintergrundBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  235. _TextFeld->funcs.addFunktion( "setHintergrundFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  236. _TextFeld->funcs.addFunktion( "setSchriftGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  237. _TextFeld->funcs.addFunktion( "setSchriftFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  238. _TextFeld->funcs.addFunktion( "setAFStärke", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  239. _TextFeld->funcs.addFunktion( "setAFFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  240. _TextFeld->funcs.addFunktion( "setLRBreite", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  241. _TextFeld->funcs.addFunktion( "setLRFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  242. _TextFeld->funcs.addFunktion( "setShowChar", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  243. _TextFeld->funcs.addFunktion( "setVKlickScroll", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  244. _TextFeld->funcs.addFunktion( "setVScrollPos", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  245. _TextFeld->funcs.addFunktion( "setVScrollZuZeile", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  246. _TextFeld->funcs.addFunktion( "updateVScroll", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  247. _TextFeld->funcs.addFunktion( "setStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  248. _TextFeld->funcs.addFunktion( "addStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  249. _TextFeld->funcs.addFunktion( "löscheStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  250. _TextFeld->funcs.addFunktion( "tick", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_DOUBLE } ) );
  251. _TextFeld->funcs.addFunktion( "setMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  252. _TextFeld->funcs.addFunktion( "setTastaturEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  253. _TextFeld->funcs.addFunktion( "doMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_MAUSEREIGNIS } ) );
  254. _TextFeld->funcs.addFunktion( "doTastaturEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TASTATUREREIGNIS } ) );
  255. _TextFeld->funcs.addFunktion( "render", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  256. _TextFeld->funcs.addFunktion( "getText", new KSGSCompileFunktion( KSGS_TEXT, 1, {} ) );
  257. _TextFeld->funcs.addFunktion( "getHintergrundBild", new KSGSCompileFunktion( KSGS_BILD, 1, {} ) );
  258. _TextFeld->funcs.addFunktion( "getHintergrundFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  259. _TextFeld->funcs.addFunktion( "getSchriftGröße", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  260. _TextFeld->funcs.addFunktion( "getSchriftFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  261. _TextFeld->funcs.addFunktion( "getAFStärke", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  262. _TextFeld->funcs.addFunktion( "getAFFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  263. _TextFeld->funcs.addFunktion( "getLRBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  264. _TextFeld->funcs.addFunktion( "getLRFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  265. _TextFeld->funcs.addFunktion( "getShowChar", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  266. _TextFeld->funcs.addFunktion( "hatStyle", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT } ) );
  267. _TextFeld->funcs.addFunktion( "hatStyleNicht", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT } ) );
  268. _TextFeld->funcs.addFunktion( "dublizieren", new KSGSCompileFunktion( KSGS_TEXTFELD, 1, {} ) );
  269. _TextFeld->funcs.addFunktion( "setToolTipText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  270. _TextFeld->funcs.addFunktion( "setPosition", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  271. _TextFeld->funcs.addFunktion( "setGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  272. _TextFeld->funcs.addFunktion( "getBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  273. _TextFeld->funcs.addFunktion( "getHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  274. _TextFeld->funcs.addFunktion( "getX", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  275. _TextFeld->funcs.addFunktion( "getY", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  276. _TextFeld->funcs.addFunktion( "setGrößeNachText", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  277. _TextFeld->funcs.addFunktion( "setTextNachGröße", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  278. // Knopf Standart
  279. KSGSCompileKlasse *_Knopf = new KSGSCompileKlasse();
  280. addKlasse( "Knopf", _Knopf );
  281. _Knopf->funcs.addFunktion( "setText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  282. _Knopf->funcs.addFunktion( "setHintergrundBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  283. _Knopf->funcs.addFunktion( "setHintergrundFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  284. _Knopf->funcs.addFunktion( "setSchriftGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  285. _Knopf->funcs.addFunktion( "setSchriftFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  286. _Knopf->funcs.addFunktion( "setAFStärke", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  287. _Knopf->funcs.addFunktion( "setAFFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  288. _Knopf->funcs.addFunktion( "setLRBreite", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  289. _Knopf->funcs.addFunktion( "setLRFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  290. _Knopf->funcs.addFunktion( "setKlickFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  291. _Knopf->funcs.addFunktion( "setKlickBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  292. _Knopf->funcs.addFunktion( "setKBStärke", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  293. _Knopf->funcs.addFunktion( "setKBFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  294. _Knopf->funcs.addFunktion( "setStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  295. _Knopf->funcs.addFunktion( "addStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  296. _Knopf->funcs.addFunktion( "löscheStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  297. _Knopf->funcs.addFunktion( "tick", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_DOUBLE } ) );
  298. _Knopf->funcs.addFunktion( "setMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  299. _Knopf->funcs.addFunktion( "doMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_MAUSEREIGNIS } ) );
  300. _Knopf->funcs.addFunktion( "render", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  301. _Knopf->funcs.addFunktion( "getText", new KSGSCompileFunktion( KSGS_TEXT, 1, {} ) );
  302. _Knopf->funcs.addFunktion( "getHintergrundBild", new KSGSCompileFunktion( KSGS_BILD, 1, {} ) );
  303. _Knopf->funcs.addFunktion( "getHintergrundFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  304. _Knopf->funcs.addFunktion( "getSchriftGröße", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  305. _Knopf->funcs.addFunktion( "getSchriftFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  306. _Knopf->funcs.addFunktion( "getAFStärke", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  307. _Knopf->funcs.addFunktion( "getAFFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  308. _Knopf->funcs.addFunktion( "getLRBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  309. _Knopf->funcs.addFunktion( "getLRFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  310. _Knopf->funcs.addFunktion( "getKlickFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  311. _Knopf->funcs.addFunktion( "getKlickBild", new KSGSCompileFunktion( KSGS_BILD, 1, {} ) );
  312. _Knopf->funcs.addFunktion( "getKBFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  313. _Knopf->funcs.addFunktion( "getKBStärke", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  314. _Knopf->funcs.addFunktion( "hatStyle", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT } ) );
  315. _Knopf->funcs.addFunktion( "hatStyleNicht", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_INT } ) );
  316. _Knopf->funcs.addFunktion( "dublizieren", new KSGSCompileFunktion( KSGS_KNOPF, 1, {} ) );
  317. _Knopf->funcs.addFunktion( "setToolTipText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  318. _Knopf->funcs.addFunktion( "setPosition", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  319. _Knopf->funcs.addFunktion( "setGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  320. _Knopf->funcs.addFunktion( "getBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  321. _Knopf->funcs.addFunktion( "getHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  322. _Knopf->funcs.addFunktion( "getX", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  323. _Knopf->funcs.addFunktion( "getY", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  324. // Fenster Standart
  325. KSGSCompileKlasse *_Fenster = new KSGSCompileKlasse();
  326. addKlasse( "Fenster", _Fenster );
  327. _Fenster->funcs.addFunktion( "setRFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  328. _Fenster->funcs.addFunktion( "setRBreite", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  329. _Fenster->funcs.addFunktion( "setTitel", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  330. _Fenster->funcs.addFunktion( "setTSFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  331. _Fenster->funcs.addFunktion( "setTSGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  332. _Fenster->funcs.addFunktion( "setTBgFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  333. _Fenster->funcs.addFunktion( "setTAfFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  334. _Fenster->funcs.addFunktion( "setTAfStärke", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  335. _Fenster->funcs.addFunktion( "setTBgBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  336. _Fenster->funcs.addFunktion( "setTRFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  337. _Fenster->funcs.addFunktion( "setTRBreite", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  338. _Fenster->funcs.addFunktion( "setKBgFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  339. _Fenster->funcs.addFunktion( "setKBgBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  340. _Fenster->funcs.addFunktion( "setKAfFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  341. _Fenster->funcs.addFunktion( "setKAfStärke", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  342. _Fenster->funcs.addFunktion( "setSBgFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  343. _Fenster->funcs.addFunktion( "setSBgBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  344. _Fenster->funcs.addFunktion( "setSAfFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  345. _Fenster->funcs.addFunktion( "setSAfStärke", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  346. _Fenster->funcs.addFunktion( "setSKAfFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  347. _Fenster->funcs.addFunktion( "setSKAfStärke", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  348. _Fenster->funcs.addFunktion( "setMin", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  349. _Fenster->funcs.addFunktion( "setMax", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  350. _Fenster->funcs.addFunktion( "setKMin", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  351. _Fenster->funcs.addFunktion( "setKMax", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  352. _Fenster->funcs.addFunktion( "setHSBMax", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  353. _Fenster->funcs.addFunktion( "setVSBMax", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  354. _Fenster->funcs.addFunktion( "setHSBScroll", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  355. _Fenster->funcs.addFunktion( "setVSBScroll", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  356. _Fenster->funcs.addFunktion( "setStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  357. _Fenster->funcs.addFunktion( "addStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  358. _Fenster->funcs.addFunktion( "removeStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  359. _Fenster->funcs.addFunktion( "addMember", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_VOID } ) );
  360. _Fenster->funcs.addFunktion( "removeMember", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_VOID } ) );
  361. _Fenster->funcs.addFunktion( "tick", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_DOUBLE } ) );
  362. _Fenster->funcs.addFunktion( "setMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  363. _Fenster->funcs.addFunktion( "setTastaturEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  364. _Fenster->funcs.addFunktion( "doMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_MAUSEREIGNIS } ) );
  365. _Fenster->funcs.addFunktion( "doTastaturEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TASTATUREREIGNIS } ) );
  366. _Fenster->funcs.addFunktion( "render", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  367. _Fenster->funcs.addFunktion( "getRFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  368. _Fenster->funcs.addFunktion( "getRBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  369. _Fenster->funcs.addFunktion( "getTitel", new KSGSCompileFunktion( KSGS_TEXT, 1, {} ) );
  370. _Fenster->funcs.addFunktion( "getTSFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  371. _Fenster->funcs.addFunktion( "getTSGröße", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  372. _Fenster->funcs.addFunktion( "getTBgFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  373. _Fenster->funcs.addFunktion( "getTAfFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  374. _Fenster->funcs.addFunktion( "getTAfStärke", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  375. _Fenster->funcs.addFunktion( "getTBgBild", new KSGSCompileFunktion( KSGS_BILD, 1, {} ) );
  376. _Fenster->funcs.addFunktion( "getTRFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  377. _Fenster->funcs.addFunktion( "getTRBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  378. _Fenster->funcs.addFunktion( "getKBgFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  379. _Fenster->funcs.addFunktion( "getKBgBild", new KSGSCompileFunktion( KSGS_BILD, 1, {} ) );
  380. _Fenster->funcs.addFunktion( "getKAfFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  381. _Fenster->funcs.addFunktion( "getKAfStärke", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  382. _Fenster->funcs.addFunktion( "getSBgFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  383. _Fenster->funcs.addFunktion( "getSBgBild", new KSGSCompileFunktion( KSGS_BILD, 1, {} ) );
  384. _Fenster->funcs.addFunktion( "getSAfFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  385. _Fenster->funcs.addFunktion( "getSAfStärke", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  386. _Fenster->funcs.addFunktion( "getSKAfFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  387. _Fenster->funcs.addFunktion( "getSKAfStärke", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  388. _Fenster->funcs.addFunktion( "getMinBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  389. _Fenster->funcs.addFunktion( "getMinHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  390. _Fenster->funcs.addFunktion( "getMaxBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  391. _Fenster->funcs.addFunktion( "getMaxHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  392. _Fenster->funcs.addFunktion( "getKMinBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  393. _Fenster->funcs.addFunktion( "getKMinHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  394. _Fenster->funcs.addFunktion( "getKMaxBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  395. _Fenster->funcs.addFunktion( "getKMaxHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  396. _Fenster->funcs.addFunktion( "hatStyle", new KSGSCompileFunktion( KSGS_INT, 1, { KSGS_INT } ) );
  397. _Fenster->funcs.addFunktion( "hatStyleNicht", new KSGSCompileFunktion( KSGS_INT, 1, { KSGS_INT } ) );
  398. _Fenster->funcs.addFunktion( "dublizieren", new KSGSCompileFunktion( KSGS_FENSTER, 1, {} ) );
  399. _Fenster->funcs.addFunktion( "setToolTipText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  400. _Fenster->funcs.addFunktion( "setPosition", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  401. _Fenster->funcs.addFunktion( "setGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  402. _Fenster->funcs.addFunktion( "getBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  403. _Fenster->funcs.addFunktion( "getHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  404. _Fenster->funcs.addFunktion( "getX", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  405. _Fenster->funcs.addFunktion( "getY", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  406. // BildZ Standart
  407. KSGSCompileKlasse *_BildZ = new KSGSCompileKlasse();
  408. addKlasse( "BildZ", _BildZ );
  409. _BildZ->funcs.addFunktion( "setBild", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  410. _BildZ->funcs.addFunktion( "setRFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  411. _BildZ->funcs.addFunktion( "setRBreite", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  412. _BildZ->funcs.addFunktion( "setStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  413. _BildZ->funcs.addFunktion( "addStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  414. _BildZ->funcs.addFunktion( "löscheStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  415. _BildZ->funcs.addFunktion( "tick", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_DOUBLE } ) );
  416. _BildZ->funcs.addFunktion( "setMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  417. _BildZ->funcs.addFunktion( "doMausEreignis", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_MAUSEREIGNIS } ) );
  418. _BildZ->funcs.addFunktion( "render", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  419. _BildZ->funcs.addFunktion( "getBild", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  420. _BildZ->funcs.addFunktion( "hatStyle", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  421. _BildZ->funcs.addFunktion( "hatStyleNicht", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  422. _BildZ->funcs.addFunktion( "dublizieren", new KSGSCompileFunktion( KSGS_BILDO, 1, {} ) );
  423. _BildZ->funcs.addFunktion( "setToolTipText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  424. _BildZ->funcs.addFunktion( "setPosition", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  425. _BildZ->funcs.addFunktion( "setGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  426. _BildZ->funcs.addFunktion( "getBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  427. _BildZ->funcs.addFunktion( "getHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  428. _BildZ->funcs.addFunktion( "getX", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  429. _BildZ->funcs.addFunktion( "getY", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  430. // Animation2DData Standart
  431. KSGSCompileKlasse *_Animation2DData = new KSGSCompileKlasse();
  432. addKlasse( "Animation2DData", _Animation2DData );
  433. _Animation2DData->funcs.addFunktion( "ladeAnimation", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  434. _Animation2DData->funcs.addFunktion( "setFPS", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  435. _Animation2DData->funcs.addFunktion( "setWiederhohlend", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BOOL } ) );
  436. _Animation2DData->funcs.addFunktion( "setTransparent", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BOOL } ) );
  437. _Animation2DData->funcs.addFunktion( "reset", new KSGSCompileFunktion( KSGS_VOID, 1, {} ) );
  438. _Animation2DData->funcs.addFunktion( "getBild", new KSGSCompileFunktion( KSGS_BILD, 1, { KSGS_INT } ) );
  439. _Animation2DData->funcs.addFunktion( "getBildAnzahl", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  440. _Animation2DData->funcs.addFunktion( "getFPS", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  441. _Animation2DData->funcs.addFunktion( "istWiederhohlend", new KSGSCompileFunktion( KSGS_BOOL, 1, {} ) );
  442. _Animation2DData->funcs.addFunktion( "istTransparent", new KSGSCompileFunktion( KSGS_BOOL, 1, {} ) );
  443. // Animation2DData Standart
  444. KSGSCompileKlasse *_Animation2D = new KSGSCompileKlasse();
  445. addKlasse( "Animation2D", _Animation2D );
  446. _Animation2D->funcs.addFunktion( "setRahmen", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BOOL } ) );
  447. _Animation2D->funcs.addFunktion( "setRahmenBreite", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  448. _Animation2D->funcs.addFunktion( "setRahmenFarbe", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  449. _Animation2D->funcs.addFunktion( "setAnimationData", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_ANIMATION2DDATA } ) );
  450. _Animation2D->funcs.addFunktion( "setAlphaMaske", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  451. _Animation2D->funcs.addFunktion( "setAPS", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT } ) );
  452. _Animation2D->funcs.addFunktion( "setSichtbar", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BOOL } ) );
  453. _Animation2D->funcs.addFunktion( "tick", new KSGSCompileFunktion( KSGS_BOOL, 1, { KSGS_DOUBLE } ) );
  454. _Animation2D->funcs.addFunktion( "render", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_BILD } ) );
  455. _Animation2D->funcs.addFunktion( "getAnimationData", new KSGSCompileFunktion( KSGS_ANIMATION2DDATA, 1, {} ) );
  456. _Animation2D->funcs.addFunktion( "istSichtbar", new KSGSCompileFunktion( KSGS_BOOL, 1, {} ) );
  457. _Animation2D->funcs.addFunktion( "getJetzt", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  458. _Animation2D->funcs.addFunktion( "getAlphaMaske", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  459. _Animation2D->funcs.addFunktion( "hatRahmen", new KSGSCompileFunktion( KSGS_BOOL, 1, {} ) );
  460. _Animation2D->funcs.addFunktion( "getRahmenBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  461. _Animation2D->funcs.addFunktion( "getRahmenFarbe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  462. _Animation2D->funcs.addFunktion( "setToolTipText", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_TEXT } ) );
  463. _Animation2D->funcs.addFunktion( "setPosition", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  464. _Animation2D->funcs.addFunktion( "setGröße", new KSGSCompileFunktion( KSGS_VOID, 1, { KSGS_INT, KSGS_INT } ) );
  465. _Animation2D->funcs.addFunktion( "getBreite", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  466. _Animation2D->funcs.addFunktion( "getHöhe", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  467. _Animation2D->funcs.addFunktion( "getX", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  468. _Animation2D->funcs.addFunktion( "getY", new KSGSCompileFunktion( KSGS_INT, 1, {} ) );
  469. }
  470. // Destruktor
  471. KSGSCompKlassTable::~KSGSCompKlassTable()
  472. {
  473. namen->release();
  474. int anz = klassen->getEintragAnzahl();
  475. for( int i = 0; i < anz; i++ )
  476. delete klassen->get( i );
  477. klassen->release();
  478. }
  479. // nicht constant
  480. bool KSGSCompKlassTable::addKlasse( const char *name, KSGSCompileKlasse *klasse ) // fügt namen der Tabelle hinzu
  481. {
  482. if( !hat( name ) )
  483. {
  484. klasse->id = namen->getEintragAnzahl();
  485. namen->set( new Text( name ), klasse->id );
  486. klassen->set( klasse, klasse->id );
  487. }
  488. else
  489. {
  490. delete klasse;
  491. return 0;
  492. }
  493. return 1;
  494. }
  495. // constant
  496. KSGSCompileKlasse *KSGSCompKlassTable::get( const char *name ) const // gibt die KSGSCompVarTableariable eines Namens zurück
  497. {
  498. int anz = namen->getEintragAnzahl();
  499. for( int i = 0; i < anz; i++ )
  500. {
  501. if( namen->z( i )->istGleich( name ) )
  502. return klassen->get( i );
  503. }
  504. return 0;
  505. }
  506. KSGSCompileKlasse *KSGSCompKlassTable::get( int id ) const // gibt die Klasse einer id zurück
  507. {
  508. int anz = klassen->getEintragAnzahl();
  509. for( int i = 0; i < anz; i++ )
  510. {
  511. if( klassen->get( i )->id == id )
  512. return klassen->get( i );
  513. }
  514. return 0;
  515. }
  516. bool KSGSCompKlassTable::hat( const char *name ) const // prüft, ob name vorhanden ist
  517. {
  518. int anz = namen->getEintragAnzahl();
  519. for( int i = 0; i < anz; i++ )
  520. {
  521. if( namen->z( i )->istGleich( name ) )
  522. return 1;
  523. }
  524. return 0;
  525. }
  526. bool KSGSCompKlassTable::hat( int id ) const // prüft, ob id vorhanden ist
  527. {
  528. int anz = klassen->getEintragAnzahl();
  529. for( int i = 0; i < anz; i++ )
  530. {
  531. if( klassen->get( i )->id == id )
  532. return 1;
  533. }
  534. return 0;
  535. }