home *** CD-ROM | disk | FTP | other *** search
/ Chip 2001 February / Chip_2001-02_cd1.bin / bonus / demos / CS / exp / SOURCES / DEMO / DEMO.CPP next >
C/C++ Source or Header  |  2000-08-20  |  3KB  |  105 lines

  1. #define KONIEC_DEMA 218.0
  2.  
  3. #include <iostream>
  4. #include "api3ds.h"
  5. #include "efekt.h"
  6. #include "efekt_03.h"
  7. #include "efekt_04.h"
  8. #include "efekt_05.h"
  9. #include "efekt_06.h"
  10. #include "efekt_07.h"
  11. #include "efekt_08.h"
  12. #include "efekt_09.h"
  13. #include "efekt_10.h"
  14. #include "efekt_11.h"
  15. #include "efekt_12.h"
  16. #include "efekt_13.h"
  17. #include "efekt_14.h"
  18. #include "efekt_15.h"
  19. #include "efekt_16.h"
  20. #include "efekt_17.h"
  21. #include "efekt_18.h"
  22. #include "sync.h" //synchronizacne znacky
  23. #include "bass.h"
  24.  
  25. efekt_03 e3;      //Efekty
  26. efekt_04 e4;      //Efekty
  27. efekt_05 e5;      //Efekty
  28. efekt_06 e6;      //Efekty
  29. efekt_07 e7;      //Efekty
  30. efekt_08 e8;      //Efekty
  31. efekt_09 e9;      //Efekty
  32. efekt_10 e10;     //Efekty
  33. efekt_11 e11;     //Efekty
  34. efekt_12 e12;     //Efekty
  35. efekt_13 e13;     //Efekty
  36. efekt_14 e14;     //Efekty
  37. efekt_15 e15;     //Efekty
  38. efekt_16 e16;     //Efekty
  39. efekt_17 e17;     //Efekty
  40. efekt_18 e18;     //Efekty
  41.  
  42. struct {          //zoznam Efektov 
  43.     EFEKT *fx;    // poradie urcuje prioritu:
  44. } Efekty[] = {    // kreslia sa v poradi, v akom su zoradene (FIFO)
  45.     {&e3},   // waving tunel
  46.     {&e12},  //tesly na zaciatku
  47.     {&e4},   // 3ds steny
  48.     {&e5},   // 3ds chodby a reaktor
  49.     {&e7},   // vlaciky
  50.     {&e8},   // 2nd tesla
  51.     {&e9},   // valce
  52.     {&e6},   // fullscreen layere - ide skoro ako posledne
  53. //    {&e17},  // twirl
  54.     {&e10},  // deform
  55.     {&e11},  // layere (small)
  56.     {&e13},  // rayobjekt
  57.     {&e14},  // greetsy
  58.     {&e15},  // gula
  59.     {&e18},  // endpic
  60.     {&e16}   // layere (small)
  61.     };
  62.  
  63. extern HSTREAM str;
  64. extern Textures3DS *texture_library;
  65. int n_of_ef=sizeof(Efekty)/sizeof(Efekty[0]);  //pocet Efektov
  66.  
  67. int sync_num=-1;   //cislo aktualnej synchronizacnej znacky
  68. int sync_id=0;
  69.  
  70. int demo_init()
  71. {
  72. for (int i=0;i<n_of_ef;i++) 
  73.   {
  74.   if (!(Efekty[i].fx)->load()) return 0;
  75.   }
  76. cout << "Textures ... ";
  77. EFEKT::texture_library->GL();
  78. cout << "ok!"<<endl;
  79. return 1;
  80. }
  81.  
  82. int demo_go(double a)
  83. {
  84.   if (a>=KONIEC_DEMA) return 0;      //demo skoncilo, tak sa vypne
  85.  
  86.   int old_sync_num = sync_num;       //zisti aktualny sync, a jeho ID
  87.   sync_num = GetSyncNum(a);
  88.   sync_id = Sync[sync_num].id;
  89.  
  90.   if(old_sync_num!=sync_num)         // ak sa zmenil sync tak vypis info
  91.     {
  92.     SyncInfo(sync_num);
  93.     cout <<  "  mzx pos: " << BASS_ChannelGetPosition((unsigned int)str) <<endl;
  94.     cout <<  "  timer:   " << a << endl;
  95.     }
  96.  
  97.   int retval = 1;
  98.   for (int i=0; i<n_of_ef; i++) {    //pustia sa vsetky Efekty,
  99.     retval = (Efekty[i].fx)->go(a);  //tu sa demo vypne iba ak doslo k chybe
  100.     if(!retval)
  101.       break;
  102.   }
  103.   return retval;
  104. }
  105.