Advertisement
Caiwan

greetings.cpp

Mar 3rd, 2012
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 34.16 KB | None | 0 0
  1. #include "demo.h"
  2. #include "ng/csncAPI.h"
  3.  
  4. #include "fmodex/music.h"
  5.  
  6. // scene predefs
  7. int i_s01_city();
  8. int p_s01_city(float t);
  9. int d_s01_city();
  10.  
  11. int i_s01_text();
  12. int p_s01_text(float t);
  13. int d_s01_text();
  14.  
  15. int i_s02_nemtom();
  16. int p_s02_nemtom(float t);
  17. int d_s02_nemtom();
  18.  
  19. int i_s03_greet();
  20. int p_s03_greet(float t);
  21. int d_s03_greet();
  22.  
  23. int i_whtfade();
  24. int p_whtfade(float t);
  25. int d_whtfade();
  26.  
  27. int i_overlay();
  28. int p_overlay(float t);
  29. int d_overlay();
  30.  
  31. namespace {
  32.         FWutils::package* PKFile;
  33.  
  34.         void lameLoadingScreen(){
  35.                 FWtexture::bitmap *bmp = new FWtexture::bitmap ();
  36.                 array_t<unsigned char> data;
  37.                 FWstorage::texture tex;
  38.                 FWrender::sprite kacsa;
  39.  
  40.                 PKFile->getFile("textures/loader.png", data);
  41.                 bmp->loadMemImage(data.data, data.size);
  42.                 bmp->genOGLTexture(&tex);
  43.  
  44.                 kacsa.setTexID(tex.id);
  45.                 kacsa.setPosMode(0);
  46.                 kacsa.setSize(256, 256);
  47.                 kacsa.setPos(FWrender::getWidth()/2-128, FWrender::getHeight()/2-128);
  48.  
  49.                 for (int i=0; i<2; i++){
  50.                         FWrender::clearScene(0.0, 0.0, 0.0, 1.0);
  51.                         kacsa.draw();
  52.                         FWrender::flush();
  53.                 }
  54.  
  55.                 delete bmp;
  56.         }
  57.  
  58.         inline void showsprite(float t, float start, float xf_time, float sh_time, FWrender::sprite *__sprite__){
  59.                 if ((t>start-xf_time) && (t<start)){                            //in
  60.                         float tx = (t-(start-xf_time)) / (xf_time);
  61.                         float ax = tx*tx;
  62.  
  63.                         __sprite__->setAlpha(ax);
  64.                 } else if ((t>start+sh_time) && (t<start+sh_time+xf_time)){
  65.                         float tx = (t-(start+sh_time)) / (xf_time);
  66.                         float ax = tx*tx;
  67.  
  68.                         __sprite__->setAlpha(1.0-ax);
  69.                 } else {
  70.                         __sprite__->setAlpha(1.0);
  71.                 }
  72.                 if ((t>start-xf_time) && (t<start+sh_time+xf_time)){
  73.                         __sprite__->draw();
  74.                 }
  75.         }
  76. }
  77.  
  78. void demo_main(){
  79.         PKFile = new FWutils::package("mao.pak");
  80.  
  81. // SCENES
  82. // 01
  83. FWcore::C_ML->pushEvent(0,                      13.751,         i_s01_city,             p_s01_city,             d_s01_city);
  84. FWcore::C_ML->pushEvent(13.751,         120.0,          i_s02_nemtom,   p_s02_nemtom,   d_s02_nemtom);
  85. FWcore::C_ML->pushEvent(0,                      30.000,         i_s01_text,             p_s01_text,             d_s01_text);
  86. // 02
  87. FWcore::C_ML->pushEvent(81.000,         120.0,          i_s03_greet,    p_s03_greet,    d_s03_greet);
  88. // OTHER
  89. FWcore::C_ML->pushEvent(13.751,         120.0,          i_overlay,              p_overlay,              d_overlay);
  90. FWcore::C_ML->pushEvent(11.431,         120.0,          i_whtfade,              p_whtfade,              d_whtfade);
  91.  
  92.         // ..
  93.        
  94.         lameLoadingScreen();
  95.  
  96.         FWcore::C_ML->fetchInit();
  97.  
  98.         array_t<unsigned char> music_data = PKFile->getFile("sfx/mao.mp3");
  99.  
  100.         music musplay(music_data.data, music_data.size);
  101.         //musplay.play();
  102.  
  103.         FWcore::C_ML->startTimer();
  104.        
  105.         while (FWcore::C_ML->getEOP()){
  106.                 FWcore::C_ML->play();          
  107.                 FWrender::flush();
  108.         }
  109.        
  110.         musplay.stop();
  111.  
  112.         delete PKFile;
  113. }
  114.  
  115.  
  116.  
  117. ////////////////////////////////////////////////////////
  118. // Scenes
  119.  
  120. namespace data{ // add some data
  121. //#include "data/cbm64font.h"
  122. //#include "data/c64palette.h"
  123. }
  124.  
  125. #define SCREEN_CENTER 0.888888
  126.  
  127. namespace {
  128.         FWstorage::texture      *IRlogo,
  129.                                                 *IRpresents,
  130.                                                 *title,
  131.                                                 *IRcode,
  132.                                                 *IRgfx,
  133.                                                 *IRmus,
  134.                                                 *IRtitle,
  135.  
  136.                                                 *sky_1_top,
  137.                                                 *sky_1_bottom,
  138.                                                 *sky_1_left,
  139.                                                 *sky_1_right,
  140.                                                 *sky_1_front,
  141.                                                 *sky_1_back;
  142.  
  143.         FWrender::sprite        *IRlogo_sprite,
  144.                                                 *IRpresents_sprite,
  145.                                                 *title_s,
  146.                                                 *IRcode_s,
  147.                                                 *IRgfx_s,
  148.                                                 *IRmus_s,
  149.                                                 *IRtitle_s;
  150.  
  151.         FWrender::skybox                *skybox_1;
  152.         FWutils::bezierCamera   *bcam1;
  153.         FWrender::shader                *shader1;
  154.  
  155.         FWstorage::objectArray  *varos1;
  156.         FWstorage::light                *night;
  157.  
  158.         const float xfade_time = 0.25;
  159.         const float show_time = 1.5;
  160. }
  161.  
  162. int i_s01_city(){
  163.         try{
  164.                 FWtexture::bitmap *bmp = new FWtexture::bitmap ();
  165.  
  166.                 array_t<unsigned char> data;
  167.  
  168.                 //FWstorage::texture skytex;
  169.                
  170.                 //skytex.props.generateMipmap = false;
  171.                 //skytex.props.magFilter = FWrender::TF_LINEAR;
  172.                 //skytex.props.minFilter = FWrender::TF_LINEAR;
  173.  
  174.                 sky_1_top = new FWstorage::texture();
  175.                 sky_1_bottom  = new FWstorage::texture();
  176.                 sky_1_left  = new FWstorage::texture();
  177.                 sky_1_right  = new FWstorage::texture();
  178.                 sky_1_front  = new FWstorage::texture();
  179.                 sky_1_back  = new FWstorage::texture();
  180.  
  181.                 //sky_1_top = &skytex;
  182.                 //sky_1_bottom  = &skytex;
  183.                 //sky_1_left  = &skytex;
  184.                 //sky_1_right  = &skytex;
  185.                 //sky_1_front  = &skytex;
  186.                 //sky_1_back  = &skytex;
  187.                 {
  188.                         PKFile->getFile("textures/sky_01_top.jpg", data);
  189.                         bmp->loadMemImage(data.data, data.size);
  190.                         bmp->genOGLTexture(sky_1_top);
  191.  
  192.                         //bmp->saveImage("anyad.bmp", 1);
  193.  
  194.                         PKFile->getFile("textures/sky_01_bottom.jpg", data);
  195.                         bmp->loadMemImage(data.data, data.size);
  196.                         bmp->genOGLTexture(sky_1_bottom);
  197.  
  198.                         PKFile->getFile("textures/sky_01_left.jpg", data);
  199.                         bmp->loadMemImage(data.data, data.size);
  200.                         bmp->genOGLTexture(sky_1_left);
  201.  
  202.                         PKFile->getFile("textures/sky_01_right.jpg", data);
  203.                         bmp->loadMemImage(data.data, data.size);
  204.                         bmp->genOGLTexture(sky_1_right);
  205.  
  206.                         PKFile->getFile("textures/sky_01_front.jpg", data);
  207.                         bmp->loadMemImage(data.data, data.size);
  208.                         bmp->genOGLTexture(sky_1_front);
  209.  
  210.                         PKFile->getFile("textures/sky_01_back.jpg", data);
  211.                         bmp->loadMemImage(data.data, data.size);
  212.                         bmp->genOGLTexture(sky_1_back);
  213.  
  214.                         skybox_1 = new FWrender::skybox(
  215.                                 sky_1_top->id,
  216.                                 sky_1_bottom->id,
  217.                                 sky_1_left->id,
  218.                                 sky_1_right->id,
  219.                                 sky_1_front->id,
  220.                                 sky_1_back->id );
  221.                 }
  222.                 bcam1 = new FWutils::bezierCamera();
  223.                 //bcam1->setCenter(-9.0, .4, -5.0);
  224.                 bcam1->setUp(1, 0, 0);
  225.                 bcam1->setTimeInterval(0.0, 13.751);
  226.                
  227.                 bcam1->eyePath.addPoint(vec3float(-10.0, 1.0, -5.0));   // start
  228.                 bcam1->eyePath.addPoint(vec3float(5.0, 1.0, -5.0));    
  229.                 bcam1->eyePath.addPoint(vec3float(5.0, 1.0, -10.0));    
  230.                 bcam1->eyePath.addPoint(vec3float(5.0, 1.0, -10.0));    
  231.                 bcam1->eyePath.addPoint(vec3float(10.0, 6.0, -10.0));   //end
  232.  
  233.                 bcam1->setLockCenter(true);
  234.                
  235.                 //varos1 = new FWstorage::objectArray();
  236.                
  237.                 //PKFile->getFile("models/varos1.3ds", data);
  238.                 //FWmodel::model3ds model_load(data.data, data.size);
  239.                
  240.                 //model_load.setObjArrayP(varos1);
  241.                 //model_load.parse(); !!!!!!!!!!!!!!!!!!!
  242.  
  243.                 //varos1->build(); !!!!!!!!!!!!!!!!!!!!!!!!!!!!
  244.  
  245.                 delete bmp;
  246.        
  247.         } catch (int e){
  248.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  249.                 printf("%s", FWerror::translateMessage(e));
  250.                 return e;
  251.         }
  252.         return 0;
  253. }
  254. int p_s01_city(float t){
  255.         try{
  256.                 //FWrender::switchBlend(true);
  257.                 //FWrender::setBlend(FWrender::BC_DST_ALPHA, FWrender::BC_ONE_MINUS_SRC_ALPHA);
  258.  
  259.                 FWrender::clearScene(0.0, 0.0, 0.0, 1.0);
  260.                
  261.                 bcam1->renderCam(t, false);
  262.                 bcam1->lookAtScene();
  263.                
  264.                 skybox_1->draw();
  265.  
  266.                 //varos1->identity();
  267.                 //varos1->scale(.2, .2, .2);
  268.                 //varos1->rotate(90,0,1,0);
  269.                 //varos1->rotate(90,0,0,1);
  270.                 //varos1->draw();
  271.  
  272.         } catch (int e){
  273.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  274.                 printf("%s", FWerror::translateMessage(e));
  275.                 return e;
  276.         }
  277.         return 0;
  278. }
  279.  
  280. int d_s01_city(){
  281.         delete varos1;
  282.         delete skybox_1;
  283.  
  284.         return 0;
  285. }
  286.  
  287.  
  288. int i_s01_text () {
  289.         try {
  290.                 FWtexture::bitmap *bmp = new FWtexture::bitmap ();
  291.  
  292.                 array_t<unsigned char> data;
  293.                 PKFile->getFile("textures/ir_duck.png", data);
  294.                 bmp->loadMemImage(data.data, data.size);
  295.                
  296.                 FWstorage::texture alap;
  297.                 alap.props.generateMipmap = false;
  298.                 alap.props.magFilter = FWrender::TF_LINEAR;
  299.                 alap.props.minFilter = FWrender::TF_LINEAR;
  300.  
  301.                 IRlogo = new FWstorage::texture();
  302.                 IRlogo->set(&alap);
  303.  
  304.                 IRlogo_sprite = new FWrender::sprite();
  305.                 bmp->genOGLTexture(IRlogo);
  306.                 IRlogo_sprite->setTexID(IRlogo->id);
  307.                
  308.                 IRpresents = new FWstorage::texture();
  309.                 IRpresents->set(&alap);
  310.  
  311.                 PKFile->getFile("textures/ir_pres.png", data);
  312.                 bmp->loadMemImage(data.data, data.size);
  313.  
  314.                 IRpresents_sprite= new FWrender::sprite();
  315.                 bmp->genOGLTexture(IRpresents);
  316.                 IRpresents_sprite->setTexID(IRpresents->id);
  317.                
  318.                 IRcode = new FWstorage::texture();
  319.                 IRcode->set(&alap);
  320.                 PKFile->getFile("textures/cred_code.png", data);
  321.                 bmp->loadMemImage(data.data, data.size);
  322.                 bmp->genOGLTexture(IRcode);
  323.  
  324.                 IRgfx = new FWstorage::texture();
  325.                 IRgfx->set(&alap);
  326.                 PKFile->getFile("textures/cred_gfx.png", data);
  327.                 bmp->loadMemImage(data.data, data.size);
  328.                 bmp->genOGLTexture(IRgfx);
  329.  
  330.                 IRtitle = new FWstorage::texture();
  331.                 IRtitle->set(&alap);
  332.                 PKFile->getFile("textures/title.png", data);
  333.                 bmp->loadMemImage(data.data, data.size);
  334.                 bmp->genOGLTexture(IRtitle);
  335.  
  336.                 IRmus = new FWstorage::texture();
  337.                 IRmus->set(&alap);
  338.                 PKFile->getFile("textures/cred_music.png", data);
  339.                 bmp->loadMemImage(data.data, data.size);
  340.                 bmp->genOGLTexture(IRmus);
  341.  
  342.                 IRtitle_s = new FWrender::sprite();
  343.                 IRtitle_s->setTexID(IRtitle->id);
  344.                 IRtitle_s->setSize(.75, .75);
  345.                 IRtitle_s->setPos(SCREEN_CENTER-.1875, 0.175);
  346.  
  347.                 IRcode_s = new FWrender::sprite();
  348.                 IRcode_s->setTexID(IRcode->id);
  349.                 IRcode_s->setSize(.5, .5);
  350.                 IRcode_s->setPos(SCREEN_CENTER+.125, 1.0-.575);
  351.  
  352.                 IRgfx_s = new FWrender::sprite();
  353.                 IRgfx_s->setTexID(IRgfx->id);
  354.                 IRgfx_s->setSize(.5, .5);
  355.                 IRgfx_s->setPos(SCREEN_CENTER+.125, 1.0-.575);
  356.  
  357.                 IRmus_s = new FWrender::sprite();
  358.                 IRmus_s->setTexID(IRmus->id);
  359.                 IRmus_s->setSize(.5, .5);
  360.                 IRmus_s->setPos(SCREEN_CENTER+.125, 1.0-.575);
  361.                        
  362.                 delete bmp;
  363.  
  364.         } catch (int e){
  365.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  366.                 printf("%s", FWerror::translateMessage(e));
  367.                 return e;
  368.         }
  369.         return 0;
  370. }
  371.  
  372. int p_s01_text(float t){
  373.         try {
  374.                 //FWrender::setShadingModel(FWrender::SH_SMOOTH);
  375.                 //FWrender::clearScene();
  376.  
  377.                 FWrender::mat_LoadIdentity();
  378.                
  379.                 float scale = 1.0;
  380.                 if (t<0.5){
  381.                         float tx = t/(.5);
  382.                         IRlogo_sprite->setAlpha(tx*tx);
  383.                         scale = 1.0 + 1.5*((1.0-tx)*(1.0-tx));
  384.                         IRlogo_sprite->setSize(.75*scale, .75*scale);
  385.                         IRlogo_sprite->setPos(SCREEN_CENTER-(0.375*scale), .5+(-.375*scale));
  386.                
  387.                 } else if ((t>6.658) && (t<7.158)){
  388.                         float tx = (t-6.658)/(7.158-6.658);
  389.                         float ta = tx*tx;
  390.                         float tb = ta*ta;
  391.                         IRlogo_sprite->setAlpha(1-ta);
  392.                         IRlogo_sprite->setPos(SCREEN_CENTER-(0.375*scale)-.2*tb, .5+(-.375*scale));
  393.  
  394.                         IRpresents_sprite->setSize(.75, .75);
  395.                         IRpresents_sprite->setAlpha(ta);
  396.                         IRpresents_sprite->setPos(.5+SCREEN_CENTER-(0.375*scale)-.5*tb, .5+(-.375*scale));
  397.                 } else {
  398.                         IRlogo_sprite->setPos(SCREEN_CENTER-(0.375*scale), .5+(-.375*scale));
  399.                         IRlogo_sprite->setAlpha(1.0);
  400.                         IRlogo_sprite->setSize(.75, .75);
  401.                 }
  402.                
  403.                 if (t<7.158) IRlogo_sprite->draw();
  404.                 if ((t>6.658) && (t<13.761)) IRpresents_sprite->draw();
  405.  
  406.                 //title
  407.  
  408.                 showsprite (t, 13.770, .5, 12.431, IRtitle_s);
  409.                
  410.                 // credits
  411.                 showsprite (t, 16.740, .5, 2.485, IRcode_s);
  412.                 showsprite (t, 19.746, .5, 3.331, IRmus_s);
  413.                 showsprite (t, 23.598, .5, 2.461, IRgfx_s);
  414.  
  415.         } catch (FWerror::error_handler_t e){
  416.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  417.                 printf("%s", FWerror::translateMessage(e));
  418.                 return (int)e;
  419.         }
  420.         return 0;
  421. }
  422.  
  423. int d_s01_text() {
  424.         //try {
  425.                 delete IRlogo_sprite;
  426.                 delete IRlogo;
  427.  
  428.                 delete IRpresents_sprite;
  429.                 delete IRpresents;
  430.  
  431.                 delete IRcode_s;
  432.                 delete IRgfx_s;
  433.                 delete IRmus_s;
  434.                 delete IRcode;
  435.                 delete IRgfx;
  436.                 delete IRmus;
  437.  
  438.  
  439.         return 0;
  440. }
  441.  
  442. namespace {
  443.         FWstorage::texture              *sky_2_top,
  444.                                                         *sky_2_bottom,
  445.                                                         *sky_2_left,
  446.                                                         *sky_2_right,
  447.                                                         *sky_2_front,
  448.                                                         *sky_2_back;
  449.  
  450.         FWrender::skybox                *skybox_2;
  451.  
  452.         FWstorage::objectArray  *probakocka;
  453.  
  454.         FWutils::bezierCamera   *bcam2;
  455.         FWstorage::light                *l_global1;
  456.         FWrender::shader                *s_shader;
  457.  
  458.         FWstorage::material             *villog_mat;
  459.         FWstorage::material             *villog2;
  460.         int *villog_kocka_id, *villog_kocka_offs;
  461.         int *eye_offs, *cent_offs;
  462. }
  463.  
  464. namespace data{
  465. #include "data/ref.h"
  466. #include "data/camera.h"
  467. }
  468.  
  469. int i_s02_nemtom(){
  470.         try{
  471.                 FWtexture::bitmap *bmp = new FWtexture::bitmap ();
  472.  
  473.                 array_t<unsigned char> data, data2;
  474.  
  475.                 //FWstorage::texture skytex;
  476.  
  477.                 //sky_2_top = new FWstorage::texture();
  478.                 //sky_2_bottom  = new FWstorage::texture();
  479.                 //sky_2_left  = new FWstorage::texture();
  480.                 //sky_2_right  = new FWstorage::texture();
  481.                 //sky_2_front  = new FWstorage::texture();
  482.                 //sky_2_back  = new FWstorage::texture();
  483.  
  484.                 //{
  485.                 //      PKFile->getFile("textures/sky_02_top.jpg", data);
  486.                 //      bmp->loadMemImage(data.data, data.size);
  487.                 //      bmp->genOGLTexture(sky_2_top);                  
  488.  
  489.                 //      PKFile->getFile("textures/sky_02_bottom.jpg", data);
  490.                 //      bmp->loadMemImage(data.data, data.size);
  491.                 //      bmp->genOGLTexture(sky_2_bottom);
  492.  
  493.                 //      PKFile->getFile("textures/sky_02_left.jpg", data);
  494.                 //      bmp->loadMemImage(data.data, data.size);
  495.                 //      bmp->genOGLTexture(sky_2_left);
  496.                 //      
  497.                 //      PKFile->getFile("textures/sky_02_right.jpg", data);
  498.                 //      bmp->loadMemImage(data.data, data.size);
  499.                 //      bmp->genOGLTexture(sky_2_right);
  500.  
  501.                 //      PKFile->getFile("textures/sky_02_front.jpg", data);
  502.                 //      bmp->loadMemImage(data.data, data.size);
  503.                 //      bmp->genOGLTexture(sky_2_front);
  504.  
  505.                 //      PKFile->getFile("textures/sky_02_back.jpg", data);
  506.                 //      bmp->loadMemImage(data.data, data.size);
  507.                 //      bmp->genOGLTexture(sky_2_back);
  508.  
  509.                 //      skybox_2 = new FWrender::skybox(
  510.                 //              sky_2_top->id,
  511.                 //              sky_2_bottom->id,
  512.                 //              sky_2_left->id,
  513.                 //              sky_2_right->id,
  514.                 //              sky_2_front->id,
  515.                 //              sky_2_back->id );
  516.                 //}
  517.  
  518.                 bcam2 = new FWutils::bezierCamera();
  519.                 bcam2->setUp(0, 0, 1);
  520.  
  521.                 //bcam2->setCenter(vec3float(-21.104, 0, 71.881));
  522.                 //bcam2->setEye(vec3float(120.604, 100, 115.2));
  523.  
  524.                 probakocka = new FWstorage::objectArray();
  525.  
  526.                 PKFile->getFile("models/kocka.3ds", data);
  527.                 FWmodel::model3ds model_load(data.data, data.size);
  528.                
  529.                 model_load.setObjArrayP(probakocka);
  530.                 model_load.parse();
  531.  
  532.                 probakocka->build();
  533.  
  534.                 l_global1 = new FWstorage::light();
  535.                 l_global1->setColors(
  536.                         179.0/255.0, 212.0/256.0, 254.0/256.0,
  537.                         241.0/256.0, 247.0/256.0, 255.0/256.0,
  538.                         1.0, 1.0, 1.0
  539.                         );
  540.                 l_global1->setPosition(-50, 0, 0);
  541.                
  542.                 s_shader = new FWrender::shader();
  543.                 PKFile->getFile("fx/basic.vert", data);
  544.                 PKFile->getFile("fx/pointlight.frag", data2);
  545.                 s_shader->createFromMemory(FWrender::SHADER_PROFILE_both, (const char*)data.data, (const char*)data2.data);
  546.  
  547.                 villog_mat = new FWstorage::material();
  548.                
  549.                 villog2 = new FWstorage::material[data::pornsize];
  550.                 villog_kocka_id = new int[data::pornsize];
  551.                
  552.                 for (int i=0; i<data::pornsize; i++) {
  553.                         villog_kocka_id[i] = probakocka->searchByName(data::names[i].c_str());
  554.                         villog2[i]                      = probakocka->models[villog_kocka_id[i]]->materialArray.data[0];
  555.                 }
  556.  
  557.                 villog_kocka_offs = new int [data::pornsize];
  558.                 int a = 0;
  559.                 for (int i=0; i<data::pornsize; i++){
  560.                         villog_kocka_offs[i] = a;
  561.                         a += data::ranges[i];
  562.                 }
  563.  
  564.                 delete bmp;
  565.        
  566.         } catch (int e){
  567.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  568.                 printf("%s", FWerror::translateMessage(e));
  569.                 return e;
  570.         }
  571.         return 0;
  572. }
  573. int p_s02_nemtom(float t){
  574.         try{
  575.                 FWrender::setShadingModel(FWrender::SH_FLAT);
  576.                 FWrender::clearScene(1.0, 1.0, 1.0, 1.0);
  577.  
  578.                 //bcam2->renderCam(t, false);
  579.  
  580.                 for (int i=0; i<data::mennyi_van; i++){
  581.                         float trig = data::camera[7*i+0];
  582.                         if ((t>trig) && (t<trig+2.0)){
  583.                                 vec3float e, c;
  584.                                 e.set(data::camera[7*i+1], data::camera[7*i+2], data::camera[7*i+3]);
  585.                                 c.set(data::camera[7*i+4], data::camera[7*i+5], data::camera[7*i+6]);
  586.  
  587.                                 //glLoadIdentity();
  588.                                 /*gluLookAt(data::camera[7*i+1], data::camera[7*i+2], data::camera[7*i+3],
  589.                                         data::camera[7*i+4], data::camera[7*i+5], data::camera[7*i+6], 0, 0, 1);
  590. */
  591.                                 bcam2->setEye(e); bcam2->setCenter(c);
  592.                         }
  593.                 }
  594.  
  595.                 //bcam2->calculateNormal();
  596.                 bcam2->lookAtScene();
  597.                
  598.                 //skybox_2->draw();
  599.  
  600.                 s_shader->bind();
  601.  
  602.                 probakocka->identity();
  603.                
  604.                 probakocka->rotate(.5*t, 0,1,0);
  605.                 if (t>54.872){ probakocka->identity(); probakocka->rotate(-5*t, 0,1,0); }
  606.  
  607.                 for (int i= 0; i<data::pornsize; i++){
  608.                         int curr_id = villog_kocka_id[i];
  609.                         int seg_siz = data::ranges[i];
  610.                         int seg_str = villog_kocka_offs[i];
  611.                         for (int j=0; j<seg_siz; j++){
  612.                                 float start = data::ref[seg_str+j];
  613.                                 float xf_time = .25;
  614.  
  615.                                 if ((t>start) && (t<start+xf_time)){
  616.                                         float tx = (t-(start)) / (xf_time);
  617.                                         float ax = tx*tx;
  618.  
  619.                                         probakocka->models.data[curr_id]->materialArray.data[0].ambient.set(
  620.                                                 (1.0-ax)+villog2[i].ambient.r,
  621.                                                 (1.0-ax)+villog2[i].ambient.g,
  622.                                                 (1.0-ax)+villog2[i].ambient.b,
  623.                                                 1.0
  624.                                         );
  625.  
  626.                                         probakocka->models.data[curr_id]->materialArray.data[0].diffusal.set(
  627.                                                 (1.0-ax)+villog2[i].diffusal.r,
  628.                                                 (1.0-ax)+villog2[i].diffusal.g,
  629.                                                 (1.0-ax)+villog2[i].diffusal.b,
  630.                                                 1.0
  631.                                         );
  632.                                 }
  633.                         }
  634.                 }
  635.  
  636.                 probakocka->draw();
  637.  
  638.                 s_shader->unbind();
  639.  
  640.         } catch (int e){
  641.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  642.                 printf("%s", FWerror::translateMessage(e));
  643.                 return e;
  644.         }
  645.         return 0;
  646. }
  647.  
  648. int d_s02_nemtom(){
  649.         delete skybox_2;
  650.        
  651.         delete l_global1;
  652.         delete s_shader;
  653.  
  654.         return 0;
  655. }
  656.  
  657.  
  658. namespace {
  659.         FWstorage::texture      *greet_cns_t,
  660.                                                 *greet_rbs_t,
  661.                                                 *greet_uf_t,
  662.                                                 *greet_m6k_t,
  663.                                                 *greet_tbs_t,
  664.                                                 *greet_lgfx_t,
  665.                                                 *greet_darklite_t,
  666.                                                 *greet_exd_t,
  667.                                                 *fn11_t;
  668.  
  669.         FWrender::sprite        *greet_cns,
  670.                                                 *greet_rbs,
  671.                                                 *greet_uf,
  672.                                                 *greet_m6k,
  673.                                                 *greet_tbs,
  674.                                                 *greet_lgfx,
  675.                                                 *greet_darklite,
  676.                                                 *greet_exd,
  677.                                                 *fn11;
  678. }
  679.  
  680. int i_s03_greet(){
  681.         try {
  682.                 FWtexture::bitmap *bmp = new FWtexture::bitmap ();
  683.                 array_t<unsigned char> data;
  684.  
  685.                 greet_cns_t = new FWstorage::texture;
  686.                 PKFile->getFile("textures/greet_cns.png", data);
  687.                 bmp->loadMemImage(data.data, data.size);
  688.                 bmp->genOGLTexture(greet_cns_t);
  689.  
  690.                 greet_rbs_t = new FWstorage::texture;
  691.                 PKFile->getFile("textures/greet_rebels.png", data);
  692.                 bmp->loadMemImage(data.data, data.size);
  693.                 bmp->genOGLTexture(greet_rbs_t);
  694.  
  695.                 greet_uf_t = new FWstorage::texture;
  696.                 PKFile->getFile("textures/greet_uf.png", data);
  697.                 bmp->loadMemImage(data.data, data.size);
  698.                 bmp->genOGLTexture(greet_uf_t);
  699.  
  700.                 greet_m6k_t = new FWstorage::texture;
  701.                 PKFile->getFile("textures/greet_mu6k.png", data);
  702.                 bmp->loadMemImage(data.data, data.size);
  703.                 bmp->genOGLTexture(greet_m6k_t);
  704.  
  705.                 greet_tbs_t = new FWstorage::texture;
  706.                 PKFile->getFile("textures/greet_tbs.png", data);
  707.                 bmp->loadMemImage(data.data, data.size);
  708.                 bmp->genOGLTexture(greet_tbs_t);
  709.  
  710.                 greet_lgfx_t = new FWstorage::texture;
  711.                 PKFile->getFile("textures/greet_lgfx.png", data);
  712.                 bmp->loadMemImage(data.data, data.size);
  713.                 bmp->genOGLTexture(greet_lgfx_t);
  714.  
  715.                 greet_darklite_t = new FWstorage::texture;
  716.                 PKFile->getFile("textures/greet_darklite.png", data);
  717.                 bmp->loadMemImage(data.data, data.size);
  718.                 bmp->genOGLTexture(greet_darklite_t);
  719.  
  720.                 greet_exd_t = new FWstorage::texture;
  721.                 PKFile->getFile("textures/greet_exd.png", data);
  722.                 bmp->loadMemImage(data.data, data.size);
  723.                 bmp->genOGLTexture(greet_exd_t);
  724.  
  725.                 fn11_t = new FWstorage::texture;
  726.                 PKFile->getFile("textures/function.png", data);
  727.                 bmp->loadMemImage(data.data, data.size);
  728.                 bmp->genOGLTexture(fn11_t);
  729.  
  730.                 greet_cns = new FWrender::sprite;
  731.                 greet_cns->setTexID(greet_cns_t->id);
  732.                 greet_cns->setSize(.4, .4);
  733.                 greet_cns->setPos(1.7777-.4, 1.0-.4);
  734.  
  735.                 greet_rbs = new FWrender::sprite;
  736.                 greet_rbs->setTexID(greet_rbs_t->id);
  737.                 greet_rbs->setSize(.4, .4);
  738.                 greet_rbs->setPos(1.7777-.4, 1.0-.4);
  739.  
  740.                 greet_uf= new FWrender::sprite;
  741.                 greet_uf->setTexID(greet_uf_t->id);
  742.                 greet_uf->setSize(.4, .4);
  743.                 greet_uf->setPos(1.7777-.4, 1.0-.4);
  744.  
  745.                 greet_m6k= new FWrender::sprite;
  746.                 greet_m6k->setTexID(greet_m6k_t->id);
  747.                 greet_m6k->setSize(.4, .4);
  748.                 greet_m6k->setPos(1.7777-.4, 1.0-.4);
  749.  
  750.                 greet_tbs= new FWrender::sprite;
  751.                 greet_tbs->setTexID(greet_tbs_t->id);
  752.                 greet_tbs->setSize(.4, .4);
  753.                 greet_tbs->setPos(1.7777-.4, 1.0-.4);
  754.  
  755.                 greet_lgfx= new FWrender::sprite;
  756.                 greet_lgfx->setTexID(greet_lgfx_t->id);
  757.                 greet_lgfx->setSize(.4, .4);
  758.                 greet_lgfx->setPos(1.7777-.4, 1.0-.4);
  759.  
  760.                 greet_darklite= new FWrender::sprite;
  761.                 greet_darklite->setTexID(greet_darklite_t->id);
  762.                 greet_darklite->setSize(.4, .4);
  763.                 greet_darklite->setPos(1.7777-.4, 1.0-.4);
  764.  
  765.                 greet_exd= new FWrender::sprite;
  766.                 greet_exd->setTexID(greet_exd_t->id);
  767.                 greet_exd->setSize(.4, .4);
  768.                 greet_exd->setPos(1.7777-.4, 1.0-.4);
  769.  
  770.                 fn11= new FWrender::sprite;
  771.                 fn11->setTexID(fn11_t->id);
  772.                 fn11->setPos(SCREEN_CENTER-.5, 0);
  773.  
  774.         } catch (int e){
  775.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  776.                 printf("%s", FWerror::translateMessage(e));
  777.                 return e;
  778.         }
  779.         return 0;
  780. }
  781. int p_s03_greet(float t){
  782.         try {
  783.                 showsprite (t, 82.278, .4, 3.177, greet_cns);
  784.                 showsprite (t, 85.855, .4, 2.970, greet_rbs);
  785.                 showsprite (t, 89.229, .4, 3.020, greet_uf);
  786.                 showsprite (t, 92.681, .4, 3, greet_m6k);
  787.                 showsprite (t, 96.105, .4, 3.015, greet_tbs);
  788.                 showsprite (t, 99.540, .4, 3.028, greet_lgfx);
  789.                 showsprite (t, 102.988, .4, 3, greet_darklite);
  790.                 showsprite (t, 106.365, .4, 3, greet_exd);
  791.  
  792.                 showsprite (t, 109.801, 1, 5, fn11);
  793.  
  794.         } catch (int e){
  795.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  796.                 printf("%s", FWerror::translateMessage(e));
  797.                 return e;
  798.         }
  799.         return 0;
  800. }
  801. int d_s03_greet(){
  802.         return 0;
  803. }
  804.  
  805. namespace {
  806.         FWrender::sprite        *wht_xfade,
  807.                                                 *brown_ovly,
  808.                                                 *stripe_ovly,
  809.                                                 *br_fd_s;
  810.  
  811.         FWstorage::texture      *brown_,
  812.                                                 *stripe_,
  813.                                                 *br_fd,
  814.                                                 *bk_fd;
  815. }
  816.  
  817. int i_whtfade(){
  818.         try {
  819.                 wht_xfade = new FWrender::sprite();
  820.                 wht_xfade->setSize(1.77778, 1.0);
  821.         } catch (int e){
  822.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  823.                 printf("%s", FWerror::translateMessage(e));
  824.                 return e;
  825.         }
  826.         return 0;
  827. }
  828.  
  829. int p_whtfade(float t){
  830.         //fade in
  831.         float alpha = 0.0;
  832.         if ((t<=13.751) && (t>11.431)){
  833.                 float tx = (t - 11.431) / (13.751-11.431);
  834.                 alpha = tx*tx*tx;
  835.         } else if ((t>13.751) && (t<14.541)){
  836.                 float tx = (t - 13.751) / (14.541 - 13.751);
  837.                 alpha = 1.0 - tx*tx*tx;
  838.         }
  839.  
  840.         if (t>=116){
  841.                 float tx = (t - 116) / (4);
  842.                 alpha = tx*tx*tx;
  843.                 wht_xfade->setColor(0, 0, 0, 1);
  844.         }
  845.  
  846.         wht_xfade->setAlpha(alpha);
  847.         wht_xfade ->draw();
  848.  
  849.         return 0;
  850. }
  851.  
  852. int d_whtfade(){
  853.         delete wht_xfade;
  854.  
  855.         return 0;
  856. }
  857.  
  858. int i_overlay(){
  859.         try {
  860.                 FWtexture::bitmap *bmp = new FWtexture::bitmap ();
  861.  
  862.                 array_t<unsigned char> data;
  863.                 PKFile->getFile("textures/gradient_overlay.png", data);
  864.                 bmp->loadMemImage(data.data, data.size);
  865.  
  866.                 brown_ = new FWstorage::texture();
  867.                 brown_->props.generateMipmap = false;
  868.                 brown_->props.magFilter = FWrender::TF_LINEAR;
  869.                 brown_->props.minFilter = FWrender::TF_LINEAR;
  870.  
  871.                 brown_ovly = new FWrender::sprite();
  872.                 bmp->genOGLTexture(brown_);
  873.                 brown_ovly->setTexID(brown_->id);
  874.                 brown_ovly->setSize(1.77778, 1.0);
  875.  
  876.                 delete bmp;
  877.  
  878.         } catch (int e){
  879.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  880.                 printf("%s", FWerror::translateMessage(e));
  881.                 return e;
  882.         }
  883.         return 0;
  884. }
  885. int p_overlay(float t){
  886.         try {
  887.                
  888.                 brown_ovly->setAlpha(1.0);
  889.  
  890.                 if (t>108.669){
  891.                         float tx = t-108.669 / 2;
  892.                         float ax = tx*tx;
  893.  
  894.                         brown_ovly->setAlpha(1.0-ax);
  895.                 }
  896.                
  897.                 brown_ovly->draw();
  898.        
  899.         } catch (int e){
  900.                 MessageBox (HWND_DESKTOP, FWerror::translateMessage(e), "Engine halted", MB_OK | MB_ICONEXCLAMATION);
  901.                 printf("%s", FWerror::translateMessage(e));
  902.                 return e;
  903.         }
  904.         return 0;
  905. }
  906.  
  907. int d_overlay(){
  908.  
  909.         return 0;
  910. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement