process trompeta ()
private
       nota_wav[18];
       nota_chan;
       ant_up;
       ant_down;
       ant_centro;
       nota_seleccionada;
       //ant_x;
       //ant_y;
       //ant_select;
       ant_r;
       nota;
       nota_final;
       nota_final_ant;
begin
     while (key(_backspace)) frame; end
     nota_wav[0]=load_wav("trompeta/00-FS-FaS.wav");
     nota_wav[1]=load_wav("trompeta/01-G-Sol.wav");
     nota_wav[2]=load_wav("trompeta/02-GS-SolS.wav");
     nota_wav[3]=load_wav("trompeta/03-A-La.wav");
     nota_wav[4]=load_wav("trompeta/04-AS-LaS.wav");
     nota_wav[5]=load_wav("trompeta/05-B-Si.wav");
     nota_wav[6]=load_wav("trompeta/06-C-Do.wav");
     nota_wav[7]=load_wav("trompeta/07-CS-DoS.wav");
     nota_wav[8]=load_wav("trompeta/08-D-Re.wav");
     nota_wav[9]=load_wav("trompeta/09-DS-Re.wav");
     nota_wav[10]=load_wav("trompeta/10-E-Mi.wav");
     nota_wav[11]=load_wav("trompeta/11-F-Fa.wav");
     nota_wav[12]=load_wav("trompeta/12-FS-FaS.wav");
     nota_wav[13]=load_wav("trompeta/13-G-Sol.wav");
     nota_wav[14]=load_wav("trompeta/14-GS-SolS.wav");
     nota_wav[15]=load_wav("trompeta/15-A-La.wav");
     nota_wav[16]=load_wav("trompeta/16-AS-LaS.wav");
     nota_wav[17]=load_wav("trompeta/17-B-Si.wav");
     nota_wav[18]=load_wav("trompeta/18-C-Do.wav");
     //write_int(0,0,0,0,&nota_final);
     loop
         nota_seleccionada=false;
         if (key(_up))
            nota_seleccionada=true;
            if (!ant_up)
               ant_up=true;
               nota=6;
            end
         else
             if (ant_up) ant_up=false; end
         end
         
         if (key(_c) || key(_right))
            nota_seleccionada=true;
            if (!ant_centro)
               ant_centro=true;
               nota=13;
            end
         else
             if (ant_centro) ant_centro=false; end
         end
         
         if (key(_down))
            nota_seleccionada=true;
            if (!ant_down)
               ant_down=true;
               nota=18;
            end
         else
             if (ant_down) ant_down=false; end
         end
         
         if (!nota_seleccionada)
            nota=10;
         end
         
         nota_final=nota;
         if (key(_z)) nota_final-=2; end
         if (key(_x)) nota_final-=1; end
         if (key(_space)) nota_final-=3; end
         
         //nota_final vale la nota que estamos tocando, ahora sólo hay que tocarla.
         if (key(_tab))    //estamos soplando ¿durante cuanto tiempo?
            if (!ant_r)    //acabamos de pulsarlo, hay que empezar a tocar la nota
               ant_r=true;
               nota_chan=play_wav(nota_wav[nota_final],0);
            else           //lleva un rato sonando
                if (nota_final_ant!=nota_final)  //pero hemos cambiado de nota
                   if (is_playing_wav(nota_chan))//detenemos nota anterior si estaba sonando
                      stop_wav(nota_chan);
                   end
                   nota_chan=play_wav(nota_wav[nota_final],0);
                else       //no hemos cambiado de nota
                    if (!is_playing_wav(nota_chan)) //pero la nota se acaba sola
                       nota_chan=play_wav(nota_wav[nota_final],0);
                    end
                end
            end
         else              //No estamos soplando
             if (ant_r) ant_r=false; end
             if (is_playing_wav(nota_chan))//detenemos nota anterior si estaba sonando
                stop_wav(nota_chan);
             end
         end
         nota_final_ant=nota_final;
            
         if (key(_backspace)) break; end
         frame;
     end
     
     if (is_playing_wav(nota_chan))//detenemos nota anterior si estaba sonando
        stop_wav(nota_chan);
     end
     for (nota=0;nota<=18;nota++)
         unload_wav(nota_wav[nota]);
     end
     estado=0;
     frame;
end
//*****************************************************************************
//  MENU INICIAL
//*****************************************************************************
process trompeta_flecha (x,y)
begin
     file=graficos1;
     flags=4;
     z=-600;
     signal(id,s_freeze);
     frame;
     //loop frame; end
end

process inst_trompeta_imagen(file,graph,x,y,size_x,angle)
begin
     signal(id,s_freeze);
     frame;
end

process intro_trompeta ()
private
       cont;
       hijos[5];
       ant_l;
       ant_r;
       fuentes1;
       textos[3];
begin
     set_text_color(rgb(255,255,255));
     write(0,160,100,1,"Y : Instrucciones");
     write(0,160,140,1,"X : Tocar");
     load_pal("gothic_agua.fnt");
     fuentes1=load_fnt("gothic_agua.fnt");
     loop
         if (key(_z))
            delete_text(all_text);
            graficos1=load_fpg("inst_trompeta.fpg");
            file=graficos1;
            hijos[0]=trompeta_flecha(0,240);
            hijos[1]=trompeta_flecha(320,240);
            while (cont<5)
                  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:      //Posicion de los dedos
                       hijos[0].graph=1;
                       hijos[1].graph=2;
                       write(fuentes1,160,235,7,"POSICION DE LOS DEDOS");
                       write(fuentes1,320,25,2,"Mano izquierda");
                       write(fuentes1,0,55,0,"Mano derecha");
                       set_text_color(rgb(255,255,0));
                       write(0,320,3,2,"Barbilla en el botón R.");
                       write(0,0,3,0,"Botón L para salir.");
                       write(0,320,60,2,"El índice al botón Y.");
                       write(0,0,85,0,"Dedos a la cruceta.");
                       write(0,320,110,2,"El corazón al boton X.");
                       write(0,320,155,2,"El anular al botón SELECT.");
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              graph=0;
                              delete_text(all_text);
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              graph=0;
                              delete_text(all_text);
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                  end
                  case 2:     //como tocar (la cruceta como soplímetro)
                       x=-160;
                       y=70;
                       graph=4;
                       hijos[0].graph=1;
                       hijos[1].graph=2;
                       write(fuentes1,160,5,1,"MANEJO DE LA CRUCETA");
                       write(0,30,120,0,"La trompeta se compone de dos partes funda-");
                       write(0,10,130,0,"mentales: en la parte de la izquierda, manejada");
                       write(0,10,140,0,"por la mano derecha, controlaremos la cruceta,");
                       write(0,10,150,0,"que es la encargada de decir cuanto aire");
                       write(0,10,160,0,"soplamos.");
                       write(0,30,170,0,"Cuando apretamos arriba (cuando cojas la con-");
                       write(0,10,180,0,"sola para tocar, será hacia atrás) estaremos");
                       write(0,10,190,0,"indicando que soplamos poco, y sonará una nota");
                       write(0,10,200,0,"grave (en este caso, DO).");
                       write(0,30,210,0,"Sin apretar indicamos nivel medio (MI), con el");
                       write(0,10,220,0,"clic central o derecha, más (SOL), y hacia abajo");
                       write(0,10,230,0,"(adelante) el máximo (DO).");
                       hijos[2]=inst_trompeta_imagen(graficos1,5,x,y-32,100,0);
                       hijos[3]=inst_trompeta_imagen(graficos1,5,x,y+32,100,180000);
                       hijos[4]=inst_trompeta_imagen(graficos1,5,x+37,y+16,50,-90000);
                       while (x!=30)
                             x+=5;
                             hijos[2].x+=5;
                             hijos[3].x+=5;
                             hijos[4].x+=5;
                             frame;
                       end
                       textos[0]=write(0,hijos[2].x+30,hijos[2].y,3,"(ARRIBA) Poco aire: DO.");
                       textos[1]=write(0,hijos[3].x+30,hijos[3].y,3,"(ABAJO) Nivel máximo de aire: DO.");
                       textos[2]=write(0,hijos[4].x+25,hijos[4].y-24,3,"(NINGUNO) Nivel medio de aire: MI.");
                       textos[3]=write(0,hijos[4].x+25,hijos[4].y,3,"(CENTRO o DERECHA) Mucho aire: SOL.");
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                       
                       while (x<350)
                             x+=5;
                             hijos[2].x+=5;
                             hijos[3].x+=5;
                             hijos[4].x+=5;
                             move_text(textos[0],hijos[2].x+30,hijos[2].y);
                             move_text(textos[1],hijos[3].x+30,hijos[3].y);
                             move_text(textos[2],hijos[4].x+25,hijos[4].y-24);
                             move_text(textos[3],hijos[4].x+25,hijos[4].y);
                             frame;
                       end
                       delete_text(all_text);
                       signal(hijos[2],s_kill);
                       signal(hijos[3],s_kill);
                       signal(hijos[4],s_kill);
                       graph=0;
                  end
                  case 3:       //Como tocar (los botones)
                       x=-30;
                       y=45;
                       hijos[0].graph=1;
                       hijos[1].graph=2;
                       write(fuentes1,160,5,1,"MANEJO DE LOS BOTONES");
                       write(0,30,150,0,"La otra parte, la derecha (manejada por la");
                       write(0,10,160,0,"mano izquierda) maneja los tres botones de");
                       write(0,10,170,0,"nuestra trompeta.");
                       write(0,30,180,0,"Usaremos los dedos índice, corazón y anular");
                       write(0,10,190,0,"con Y, X y SELECT, respectivamente.");
                       write(0,40,200,0,"-Y: reduce dos semitonos la nota.");
                       write(0,40,210,0,"-X: reduce un semitono la nota.");
                       write(0,40,220,0,"-SELECT: reduce tres semitonos la nota.");
                       write(0,30,230,0,"Usa el botón L para salir al menu.");
                       hijos[2]=inst_trompeta_imagen(graficos1,6,x-250,y,100,0);
                       hijos[3]=inst_trompeta_imagen(graficos1,7,x,y+25,100,0);
                       hijos[4]=inst_trompeta_imagen(graficos1,8,x-260,y+50,100,0);
                       hijos[5]=inst_trompeta_imagen(graficos1,9,x,y+75,100,0);
                       while (x!=290)
                             x+=5;
                             hijos[2].x=x-250;
                             hijos[3].x=x;
                             hijos[4].x=x-260;
                             hijos[5].x=x;
                             frame;
                       end
                       textos[0]=write(0,hijos[2].x+45,hijos[2].y,3,"Soplar (BOTON R)");
                       textos[1]=write(0,hijos[3].x-30,hijos[3].y,5,"Reducir dos semitonos (BOTON Y)");
                       textos[2]=write(0,hijos[4].x+30,hijos[4].y,3,"Reducir un semitono (BOTON X)");
                       textos[3]=write(0,hijos[5].x-30,hijos[5].y,5,"Reducir tres semitonos (BOTON SELECT)");
                       loop
                           if (!ant_r && key(_tab))
                              cont++;
                              ant_r=true;
                              break;
                           end
                           if (ant_r && !key(_tab)) ant_r=false; end
                           if (!ant_l && key(_backspace))
                              cont--;
                              ant_l=true;
                              break;
                           end
                           if (ant_l && !key(_backspace)) ant_l=false; end
                           frame;
                       end
                       
                       while (x>-50)
                             x-=5;
                             hijos[2].x=x-250;
                             hijos[3].x=x;
                             hijos[4].x=x-260;
                             hijos[5].x=x;
                             move_text(textos[0],hijos[2].x+45,hijos[2].y);
                             move_text(textos[1],hijos[3].x-30,hijos[3].y);
                             move_text(textos[2],hijos[4].x+30,hijos[4].y);
                             move_text(textos[3],hijos[5].x-30,hijos[5].y);
                             frame;
                       end
                       delete_text(all_text);
                       signal(hijos[2],s_kill);
                       signal(hijos[3],s_kill);
                       signal(hijos[4],s_kill);
                       signal(hijos[5],s_kill);
                  end
                  case 4:       //Empezar
                       write(0,25,3,0,"Mientras se esté usando el instrumento, la pan-");
                       write(0,5,13,0,"talla permanecerá apagada, para proteger los o-");
                       write(0,5,23,0,"jos de las radiaciones. En caso de cansancio, de-");
                       write(0,5,33,0,"bes dejar de tocar inmediatamente y descansar.");
                       write(0,160,120,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<5)
         end      //if (key(_z))

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

         frame;
     end
     unload_fnt(fuentes1);
     delete_text(all_text);
     estado=2;
     trompeta();
end
