Load.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "Load.h"
  2. #include "Initialisierung.h"
  3. #include <AsynchronCall.h>
  4. #include <Datei.h>
  5. #include <Array.h>
  6. #include <DateiSystem.h>
  7. #include <Text.h>
  8. #include "Globals.h"
  9. #include <Textur.h>
  10. LoadMenu::LoadMenu( Bildschirm* zScreen )
  11. : Menu( zScreen )
  12. {
  13. step = initFBalken( 10, 90, 200, 30, FBalken::Style::normal );
  14. stage = initFBalken( 10, 50, 200, 30, FBalken::Style::normal );
  15. all = initFBalken( 10, 10, 200, 30, FBalken::Style::normal );
  16. elements.add( step );
  17. elements.add( stage );
  18. elements.add( all );
  19. new AsynchronCall( [this, zScreen]() {
  20. Sleep( 1000 );
  21. all->setAktionAnzahl( 1 );
  22. all->reset();
  23. // loading textures
  24. Datei texturF;
  25. texturF.setDatei( "data/textures" );
  26. RCArray<Text>* files = texturF.getDateiListe();
  27. if( files )
  28. {
  29. int count = 0;
  30. for( Text* fileName : *files )
  31. {
  32. LTDBDatei dat;
  33. dat.setDatei( new Text( Text( "data/textures/" ) + *fileName ) );
  34. dat.leseDaten( 0 );
  35. count += dat.getBildAnzahl();
  36. }
  37. stage->setAktionAnzahl( count );
  38. stage->reset();
  39. for( Text* fileName : *files )
  40. {
  41. LTDBDatei dat;
  42. dat.setDatei( new Text( Text( "data/textures/" ) + *fileName ) );
  43. dat.leseDaten( 0 );
  44. for( Text* name : *dat.zBildListe() )
  45. {
  46. step->reset();
  47. Bild* b = dat.laden( step, new Text( *name ) );
  48. zScreen->zGraphicsApi()->createOrGetTextur( *fileName + "/" + *name, b )->release();
  49. stage->aktionPlus();
  50. }
  51. }
  52. files->release();
  53. }
  54. all->aktionPlus();
  55. zScreen->lock();
  56. hide();
  57. menuRegister->get( "login" )->show();
  58. zScreen->unlock();
  59. } );
  60. }