process bateria ()
private
       ant_left;
       ant_a;
       ant_b;
       ant_x;
       ant_y;
       ant_l;
       ant_r;
       ant_click;
       mapa_durezas;
       nota;
       nota_wav[6];
       nota_chan[6];
       hijos[0];
begin
     while (key(_tab)) frame; end
     graficos1=load_fpg("bateria.fpg");
     mapa_durezas=load_map("bateria.map");
     put_screen(graficos1,1);
     put(graficos1,2,320,240);
     hijos[0]=cursor(graficos1,3);
     
     nota_wav[0]=load_wav("bateria/01-low_tom.wav");
     nota_wav[1]=load_wav("bateria/02-mid_tom.wav");
     nota_wav[2]=load_wav("bateria/03-mid-hi_tom.wav");
     nota_wav[3]=load_wav("bateria/04-hi_tom.wav");
     nota_wav[4]=load_wav("bateria/05-bass_drum.wav");
     nota_wav[5]=load_wav("bateria/06-ride_cimbal.wav");
     nota_wav[6]=load_wav("bateria/07-crash_cymbal.wav");
     
     //write_int(0,0,0,0,&nota);
     /*load_pal("bateria.map");
     x=160;
     y=120;
     z=-40;
     flags=4;
     graph=mapa_durezas;*/
     loop
         if (mouse.left) ant_left++; else ant_left=0; end
         if (ant_left==1)
            if ((mouse.x>288) && (mouse.y>208))
               break;
            else
                nota=map_get_pixel(0,mapa_durezas,mouse.x,mouse.y);
                if (nota>0) nota_chan[nota-1]=play_wav(nota_wav[nota-1],0); end
            end
         end
         if (!ant_a && key(_control))
            ant_a=true;
            nota_chan[1]=play_wav(nota_wav[1],0);
         end
         if (ant_a && !key(_control)) ant_a=false; end
         if (!ant_b && key(_alt))
            ant_b=true;
            nota_chan[3]=play_wav(nota_wav[3],0);
         end
         if (ant_b && !key(_alt)) ant_b=false; end
         if (!ant_x && key(_x))
            ant_x=true;
            nota_chan[0]=play_wav(nota_wav[0],0);
         end
         if (ant_x && !key(_x)) ant_x=false; end
         if (!ant_y && key(_z))
            ant_y=true;
            nota_chan[2]=play_wav(nota_wav[2],0);
         end
         if (ant_y && !key(_z)) ant_y=false; end
         if (!ant_l && key(_backspace))
            ant_l=true;
            nota_chan[4]=play_wav(nota_wav[4],0);
         end
         if (ant_l && !key(_backspace)) ant_l=false; end
         if (!ant_r && key(_tab))
            ant_r=true;
            nota_chan[5]=play_wav(nota_wav[5],0);
         end
         if (ant_r && !key(_tab)) ant_r=false; end
         if (!ant_click && key(_c))
            ant_click=true;
            nota_chan[6]=play_wav(nota_wav[6],0);
         end
         if (ant_click && !key(_c)) ant_click=false; end
         
         if (key(_enter) && key(_space)) break; end
         frame;
     end
     signal(hijos[0],s_kill);
     clear_screen();
     unload_fpg(graficos1);
     unload_map(0,mapa_durezas);
     nota=0;
     for (nota=0;nota<=6;nota++)
         if (is_playing_wav(nota_chan[nota])) stop_wav(nota_chan[nota]); end
         unload_wav(nota_wav[nota]);
     end
     estado=0;
     frame;
     
end

//*****************************************************************************
//  MENU INICIAL
//*****************************************************************************
process bateria_flecha (x,y)
begin
     file=graficos1;
     flags=4;
     z=-600;
     signal(id,s_freeze);
     frame;
     //loop frame; end
end

process intro_bateria ()
private
       cont;
       hijos[1];
       ant_l;
       ant_r;
       fuentes1;
begin
     set_text_color(rgb(255,255,255));
     write(0,160,100,1,"Y : Instrucciones");
     write(0,160,140,1,"X : Tocar");
     load_pal("comic_roja.fnt");
     fuentes1=load_fnt("comic_roja.fnt");
     
     //drawing_color(rgb(255,255,255));
     //draw_box(0,0,320,240);
     //load_pal("bateria_dur.fpg");
     //graficos1=load_fpg("bateria_dur.fpg");
     //file=graficos1;
     //graph=1;
     //x=160;
     //y=120;
     //z=-200;
     //flags=128;
     //signal(id,s_freeze);
     //frame;
     
     
     loop
         if (key(_z))
            delete_text(all_text);
            graficos1=load_fpg("inst_bateria.fpg");
            file=graficos1;
            hijos[0]=bateria_flecha(0,240);
            hijos[1]=bateria_flecha(320,240);
            while (cont<4)
                  switch (cont)
                  case 0:      //foto: como coger la consola
                       x=480;
                       y=120;
                       graph=3;
                       hijos[0].graph=0;
                       hijos[1].graph=2;
                       while (x!=160)
                             x-=5;
                             frame;
                       end
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              while (x>=-160)
                                    x-=5;
                                    frame;
                              end
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           frame;
                       end
                  end
                  case 1:      //Uso con pantalla tactil
                       hijos[0].graph=1;
                       hijos[1].graph=2;
                       write(fuentes1,160,3,1,"Manejo con pantalla táctil.");
                       set_text_color(rgb(255,255,0));
                       write(0,30,50,0,"Toca la parte de la batería que quieres que");
                       write(0,10,60,0,"suene.");
                       write(0,30,70,0,"No hace falta que dejes pulsado para que");
                       write(0,10,80,0,"suene más tiempo, ni apretar más para que suene");
                       write(0,10,90,0,"más fuerte.");
                       write(0,30,100,0,"La pantalla sólo reconoce un puntero, por");
                       write(0,10,110,0,"lo que procura tener sólo uno de ellos sobre la");
                       write(0,10,120,0,"pantalla, para eso lo mejor es que mantengas");
                       write(0,10,130,0,"cada uno de ellos el menor tiempo posible sobre");
                       write(0,10,140,0,"la pantalla.");
                       write(0,30,150,0,"El usar dos punteros sirve para facilitar");
                       write(0,10,160,0,"los cambios rápidos, los redobles y aumentar la");
                       write(0,10,170,0,"sensación de estar con una batería real.");
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              delete_text(all_text);
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              delete_text(all_text);
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                  end
                  case 2:     //Correspondencia con los botones
                       x=480;
                       y=120;
                       graph=4;
                       hijos[0].graph=1;
                       hijos[1].graph=2;
                       while (x!=160)
                             x-=5;
                             frame;
                       end
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              while (x>=-160)
                                    x-=5;
                                    frame;
                              end
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              while (x>=-160)
                                    x-=5;
                                    frame;
                              end
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                  end
                  case 3:       //Get ready
                       write(0,160,90,1,"Pulsa R para empezar.");
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              delete_text(all_text);
                              signal(hijos[0],s_kill);
                              signal(hijos[1],s_kill);
                              unload_fpg(graficos1);
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              delete_text(all_text);
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                  end
                  end //switch
            end   //while (cont<4)
            unload_fnt(fuentes1);
         end      //if (key(_z))

         //empieza el instrumento
         if (key(_x) || (cont==4))
            break;
         end

         frame;
     end
     delete_text(all_text);
     estado=2;
     bateria();
end
