Main.cpp 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. #include <Bildschirm.h>
  2. #include <RenderThread.h>
  3. #include <KSGScript.h>
  4. #include <MausEreignis.h>
  5. #include <TastaturEreignis.h>
  6. #include <Schrift.h>
  7. #include <DateiSystem.h>
  8. #include <time.h>
  9. #include <Textfeld.h>
  10. #include <Datei.h>
  11. #include <M2Datei.h>
  12. #include <Model2D.h>
  13. #include <Bild.h>
  14. #include <Textur2D.h>
  15. #include <MiniGameV.h>
  16. #include "Minigames.h"
  17. #include <DateiSystem.h>
  18. #include "DLLDateien.h"
  19. #include <Network.h>
  20. #include <Globals.h>
  21. #include <iostream>
  22. #include <string>
  23. #include <XML.h>
  24. #include <Zeit.h>
  25. #include <WebSocket.h>
  26. #include <JSON.h>
  27. struct HINSTANCE__;
  28. using namespace Framework;
  29. void FClose( void *p, void *zF )
  30. {
  31. StopNachrichtenSchleife( ( (WFenster*)zF )->getFensterHandle() );
  32. }
  33. Bild *b1;
  34. Bild *b2;
  35. Bild *b3;
  36. class Alpha : public Zeichnung
  37. {
  38. public:
  39. void render( Bild &zRObj )
  40. {
  41. zRObj.setDrawOptions( getPosition(), Punkt( 1000, 1000 ) );
  42. Bild tmp;
  43. tmp.neuBild( 100, 100, 0 );
  44. tmp.drawBild( 0, 0, 100, 100, *b1 );
  45. tmp.alphaBildAssoz( 0, 0, 100, 100, *b2 );
  46. zRObj.drawBild( 0, 0, 100, 100, tmp );
  47. zRObj.drawBild( 0, 150, 100, 100, *b1 );
  48. zRObj.drawBild( 0, 250, 100, 100, *b2 );
  49. zRObj.releaseDrawOptions();
  50. }
  51. };
  52. class Alpha2 : public Zeichnung
  53. {
  54. public:
  55. void render( Bild &zRObj )
  56. {
  57. zRObj.setDrawOptions( getPosition(), Punkt( 1000, 1000 ) );
  58. Bild tmp;
  59. tmp.neuBild( 100, 100, 0 );
  60. tmp.drawBild( 0, 0, 100, 100, *b2 );
  61. tmp.alphaBildAssoz( 0, 0, 100, 100, *b1 );
  62. zRObj.drawBild( 0, 0, 100, 100, tmp );
  63. zRObj.drawBild( 0, 150, 100, 100, *b2 );
  64. zRObj.drawBild( 0, 250, 100, 100, *b1 );
  65. zRObj.releaseDrawOptions();
  66. }
  67. };
  68. void doStuff()
  69. {
  70. /*Text test( "{\"name\": \"LARS KELLNER\", \"internal_id\": 2, \"max_inventory_size\": 29118, \"skills\": {\"WELTZAUBER 190\": {\"type\": \"WELT\", \"target_shape\": \"- AOE (RW 2)\", \"is_active\": 1, \"affects_self\": null, \"min_range\": 1, \"max_range\": 3.7, \"given_by\": \"self\", \"given_by_modifier_id\": null, \"duration_remaining\": null, \"caused_by_skill_id\": null, \"caused_by_entity_id\": null, \"enabled\": 0}, \"BLUTZAUBER 191\": {\"type\": \"BLUT\", \"target_shape\": \"EINZELZIEL\", \"is_active\": 0, \"affects_self\": 0, \"min_range\": null, \"max_range\": null, \"given_by\": \"self\", \"given_by_modifier_id\": null, \"duration_remaining\": null, \"caused_by_skill_id\": null, \"caused_by_entity_id\": null, \"enabled\": 0}, \"LUFTZAUBER 195\": {\"type\": \"LUFT\", \"target_shape\": \"O AOE (RW 1)\", \"is_active\": 1, \"affects_self\": null, \"min_range\": 0, \"max_range\": 0, \"given_by\": \"self\", \"given_by_modifier_id\": null, \"duration_remaining\": null, \"caused_by_skill_id\": null, \"caused_by_entity_id\": null, \"enabled\": 0}}, \"stats\": {\"AUSDAUER\": {\"base_value\": 117, \"current_value\": 117, \"consumable_remaining\": 237, \"max_consumable_value\": 237}, \"BLITZMAGIE\": {\"base_value\": 90, \"current_value\": 90, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"BLITZPRÄZISION\": {\"base_value\": 103, \"current_value\": 103, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"BLITZRESISTENZ\": {\"base_value\": 105, \"current_value\": 105, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"BLUTMAGIE\": {\"base_value\": 104, \"current_value\": 104, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"BLUTPRÄZISION\": {\"base_value\": 96, \"current_value\": 96, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"BLUTRESISTENZ\": {\"base_value\": 106, \"current_value\": 106, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"ENERGIE\": {\"base_value\": 95, \"current_value\": 95, \"consumable_remaining\": 191, \"max_consumable_value\": 191}, \"FEUERMAGIE\": {\"base_value\": 113, \"current_value\": 113, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"FEUERPRÄZISION\": {\"base_value\": 96, \"current_value\": 96, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"FEUERRESISTENZ\": {\"base_value\": 99, \"current_value\": 99, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"FROSTMAGIE\": {\"base_value\": 106, \"current_value\": 106, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"FROSTPRÄZISION\": {\"base_value\": 100, \"current_value\": 100, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"FROSTRESISTENZ\": {\"base_value\": 111, \"current_value\": 111, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"GESCHICKLICHKEIT\": {\"base_value\": 89, \"current_value\": 89, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"GESCHLECHT\": {\"base_value\": 119, \"current_value\": 119, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"GESCHWINDIGKEIT\": {\"base_value\": 98, \"current_value\": 98, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"GESUNDHEIT\": {\"base_value\": 86, \"current_value\": 86, \"consumable_remaining\": 174, \"max_consumable_value\": 174}, \"GIFTMAGIE\": {\"base_value\": 86, \"current_value\": 86, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"GIFTPRÄZISION\": {\"base_value\": 97, \"current_value\": 97, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"GIFTRESISTENZ\": {\"base_value\": 101, \"current_value\": 101, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"GRÖ�SSE\": {\"base_value\": 97, \"current_value\": 97, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"HAARFARBE\": {\"base_value\": 88, \"current_value\": 88, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"HAUTFARBE\": {\"base_value\": 108, \"current_value\": 108, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"HOLZMAGIE\": {\"base_value\": 101, \"current_value\": 101, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"HOLZPR─ZISION\": {\"base_value\": 100, \"current_value\": 100, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"HOLZRESISTENZ\": {\"base_value\": 105, \"current_value\": 105, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"INTELLIGENZ\": {\"base_value\": 108, \"current_value\": 108, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"LICHTMAGIE\": {\"base_value\": 97, \"current_value\": 97, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"LICHTPRÄZISION\": {\"base_value\": 89, \"current_value\": 89, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"LICHTRESISTENZ\": {\"base_value\": 114, \"current_value\": 114, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"LUFTMAGIE\": {\"base_value\": 97, \"current_value\": 97, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"LUFTPRÄZISION\": {\"base_value\": 99, \"current_value\": 99, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"LUFTRESISTENZ\": {\"base_value\": 102, \"current_value\": 102, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"METALLMAGIE\": {\"base_value\": 113, \"current_value\": 113, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"METALLPRÄZISION\": {\"base_value\": 92, \"current_value\": 92, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"METALLRESISTENZ\": {\"base_value\": 112, \"current_value\": 112, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"MUT\": {\"base_value\": 111, \"current_value\": 111, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"SCHATTENMAGIE\": {\"base_value\": 97, \"current_value\": 97, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"SCHATTENPRÄZISION\": {\"base_value\": 100, \"current_value\": 100, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"SCHATTENRESISTENZ\": {\"base_value\": 98, \"current_value\": 98, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"STEINMAGIE\": {\"base_value\": 96, \"current_value\": 96, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"STEINPRÄZISION\": {\"base_value\": 90, \"current_value\": 90, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"STEINRESISTENZ\": {\"base_value\": 99, \"current_value\": 99, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"STÄRKE\": {\"base_value\": 85, \"current_value\": 85, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"VERSTANDMAGIE\": {\"base_value\": 101, \"current_value\": 101, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"VERSTANDPRÄZISION\": {\"base_value\": 73, \"current_value\": 73, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"VERSTANDRESISTENZ\": {\"base_value\": 92, \"current_value\": 92, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"WASSERMAGIE\": {\"base_value\": 90, \"current_value\": 90, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"WASSERPRÄZISION\": {\"base_value\": 101, \"current_value\": 101, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"WASSERRESISTENZ\": {\"base_value\": 92, \"current_value\": 92, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"WELTMAGIE\": {\"base_value\": 110, \"current_value\": 110, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"WELTPRÄZISION\": {\"base_value\": 98, \"current_value\": 98, \"consumable_remaining\": null, \"max_consumable_value\": null}, \"WELTRESISTENZ\": {\"base_value\": 101, \"current_value\": 101, \"consumable_remaining\": null, \"max_consumable_value\": null}}, \"estimated_hero_value\": 1795.6557198587986, \"recruit_price\": 1795, \"movement_range\": 4, \"type\": \"HERO\", \"modifiers\": []}|" );
  71. ZeitMesser zm;
  72. zm.messungStart();
  73. for( int i = 0; i < 10; i++ )
  74. {
  75. std::cout << test.getText() << "\n";
  76. JSON::JSONObject *obj = new JSON::JSONObject( test );
  77. obj->release();
  78. }
  79. zm.messungEnde();
  80. std::cout << "Time: " << zm.getSekunden() << "\n";
  81. getchar();*/
  82. /*Network::WebSocket::WebSocketClient client( "/test", "koljastrohm-games.com", 8083 );
  83. client.connect();
  84. Text test = "{\"data\":\"test\"}";
  85. client.send( test.getLength(), test, Network::WebSocket::TEXT );
  86. client.send( test.getLength(), test, Network::WebSocket::TEXT );
  87. client.warteAufThread( 2000 );*/
  88. WFenster *f = new WFenster();
  89. WNDCLASS fc = F_Normal( 0 );
  90. fc.lpszClassName = "Test";
  91. f->erstellen( WS_OVERLAPPEDWINDOW, fc );
  92. f->setSize( 800, 500 );
  93. f->setPosition( Punkt( 100, 100 ) );
  94. f->setVSchließAktion( FClose );
  95. f->setMausAktion( _ret1ME );
  96. f->setTastaturAktion( _ret1TE );
  97. f->setAnzeigeModus( 1 );
  98. Punkt bildschirmGröße = BildschirmGröße();
  99. bildschirmGröße.x++;
  100. bildschirmGröße.y++;
  101. f->setSize( bildschirmGröße );
  102. f->setPosition( Punkt( 0, 20 ) );
  103. Bildschirm *b = new Bildschirm3D( f->getThis() );
  104. f->setBildschirm( b->getThis() );
  105. b->setFillFarbe( 0xFF000000 );
  106. b->setTestRend( 0 );
  107. LTDSDatei sd;
  108. sd.setPfad( new Text( "normal.ltds" ) );
  109. sd.leseDaten();
  110. Schrift *schrift = sd.ladeSchrift();
  111. DLLDateien dlls;
  112. Bild tmp;
  113. tmp.neuBild( 500, 1000, 0x30FFFFFF );
  114. Bild tmp2;
  115. tmp2.neuBild( 1900, 1000, 0x80355768 );
  116. ZeitMesser m;
  117. //while( true )
  118. //{
  119. // m.messungStart();
  120. // for( int i = 0; i < 2000; i++ )
  121. // {
  122. // tmp2.alphaRegion( 0, 0, 500, 1000, 0x40468349 );
  123. // }
  124. // m.messungEnde();
  125. // std::cout << "time: " << m.getSekunden() << "\n";
  126. //}
  127. //API *api = new API( f );
  128. MiniGames *mGames = new MiniGames( schrift, dlls.getThis(), b, 0 );
  129. b->addMember( mGames->getThis() );
  130. //b1 = new Bild();
  131. //b1->neuBild( 100, 100, 0x7F0545FF );
  132. //b2 = new Bild();
  133. //b2->neuBild( 100, 100, 0x7F79FF45 );
  134. //b3 = new Bild();
  135. //b3->neuBild( 100, 100, 0x77FF2020 );
  136. //Alpha *a = new Alpha();
  137. //a->setPosition( 0, 0 );
  138. //a->setSize( 100, 100 );
  139. //b->addMember( a );
  140. //Alpha2 *a2 = new Alpha2();
  141. //a2->setPosition( 100, 0 );
  142. //a2->setSize( 100, 100 );
  143. //b->addMember( a2 );
  144. RenderTh *r = new RenderTh();
  145. r->setBildschirm( b->getThis() );
  146. r->setMaxFps( 400 );
  147. r->setTickFunktion( []( void*p, void*o, double t )
  148. {
  149. if( getTastenStand( T_F1 ) )
  150. std::cout << t << "\n";
  151. } );
  152. r->beginn();
  153. StartNachrichtenSchleife();
  154. r->beenden();
  155. r->release();
  156. mGames->release();
  157. f->setBildschirm( 0 );
  158. b->release();
  159. f->release();
  160. schrift->release();
  161. //delete api;
  162. }
  163. int main( int argc, char *argv[] )
  164. {
  165. #ifdef _DEBUG
  166. _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF );
  167. #endif
  168. initFramework();
  169. Network::Start( 1 );
  170. /*for( int i = 1; i < argc; i++ )
  171. {
  172. std::cout << argv[ i ] << " - Version: ";
  173. Datei d;
  174. d.setDatei( argv[ i ] );
  175. unsigned char version[4];
  176. for( int j = 0; j < 4; j++ )
  177. version[ j ] = 0;
  178. if( d.open( Datei::Style::lesen ) )
  179. {
  180. d.lese( (char*)version, 4 );
  181. d.close();
  182. }
  183. std::cout << (int)version[ 3 ] << "." << (int)version[ 2 ] << "." << (int)version[ 1 ] << "." << (int)version[ 0 ] << " --> ";
  184. if( version[ 0 ] == 255 )
  185. {
  186. version[ 0 ] = 0;
  187. if( version[ 1 ] == 255 )
  188. {
  189. version[ 1 ] = 0;
  190. if( version[ 2 ] == 255 )
  191. {
  192. version[ 2 ] = 0;
  193. version[ 3 ]++;
  194. }
  195. else
  196. version[ 2 ]++;
  197. }
  198. else
  199. version[ 1 ]++;
  200. }
  201. else
  202. version[ 0 ]++;
  203. if( d.open( Datei::Style::schreiben ) )
  204. {
  205. d.schreibe( (char *)version, 4 );
  206. d.close();
  207. }
  208. std::cout << (int)version[ 3 ] << "." << (int)version[ 2 ] << "." << (int)version[ 1 ] << "." << (int)version[ 0 ] << "\n";
  209. }*/
  210. doStuff();
  211. Network::Exit();
  212. releaseFramework();
  213. return 0;
  214. }