home *** CD-ROM | disk | FTP | other *** search
/ Crazy Pacman / CrazyPacman.iso / pacman / PACMAN / SOURCE / P_SOUND.C < prev    next >
Encoding:
C/C++ Source or Header  |  1996-01-27  |  5.7 KB  |  326 lines

  1. #include "p_sound.h"
  2.  
  3.  
  4. CONFIG                       config={(int) 0,0,0,10000,0,0,0};
  5. int                          dev, mix, vol, statt;
  6. char                         md[41];
  7. char                        *statisch;
  8. int                          mod_device, mix;
  9. int                          mod_on;
  10. int                          sample_on;
  11.  
  12. /*
  13. /////////////////////////////////////////////////////////////////////
  14. */
  15. # ifndef NO_SOUND
  16. void play_mod(void)
  17. {
  18.  int vol=0,t,stat;
  19.  modstop();
  20.  if (mod_on)
  21.  {
  22.   modinit();
  23.   modvolume(vol,vol,vol,vol);
  24.   modsetup( "sound\\pac_1.mod", 4,0,mix, mod_device, &stat );
  25.   if (stat)
  26.   {
  27.    mod_on=0;
  28.    if (stat==4)
  29.    {
  30.     for (t = 0; t < 64; t+=2)
  31.     {
  32.      set_color(0,0,t,t);
  33.      warte_d(1);
  34.     }
  35.     for (t = 64; t >=0;t-=2)
  36.     {
  37.      set_color(0,0,t,t);
  38.      warte_d(1);
  39.     }
  40.     modstop();
  41.    }
  42.    else
  43.     fehler(15,1);
  44.   }
  45.  }
  46.  if ((sample_on)&&(!mod_on))
  47.  {
  48.   modinit();
  49.   modvolume(vol,vol,vol,vol);
  50.   modsetup( "sound\\pac_2.mod", 4,0,mix, mod_device, &stat );
  51.   if ( stat )
  52.   {
  53.    sample_on=0;
  54.    if (stat==4)
  55.    {
  56.     for ( t = 0; t < 64; t+=2)
  57.     {
  58.      set_color(0,t,t,0);
  59.      warte_d(1);
  60.     }
  61.     for ( t = 64; t >=0; t-=2)
  62.     {
  63.      set_color(0,t,t,0);
  64.      warte_d(1);
  65.     }
  66.     modstop();
  67.    }
  68.    else
  69.     fehler(15,2);
  70.   }
  71.  }
  72. }
  73. /*
  74. /////////////////////////////////////////////////////////////////////
  75. */
  76. char *get_s_device(int wahl)
  77. {
  78.  switch (wahl)
  79.  {
  80.   case 0:
  81.   {
  82.    return "PC Lautsprecher";
  83.   }
  84.   case 1:
  85.   {
  86.    return "D/A Wandler LPT1";
  87.   }
  88.   case 2:
  89.   {
  90.    return "D/A Wandler LPT2";
  91.   }
  92.   case 3:
  93.   {
  94.    return "D/A Wandler LPT3";
  95.   }
  96.   case 4:
  97.   {
  98.    return "D/A Wandler LPT1/2 (s)";
  99.   }
  100.   case 5:
  101.   {
  102.    return "D/A Wandler LPT1/2 (m)";
  103.   }
  104.   case 6:
  105.   {
  106.    return "Sounblaster (+ kompatibel)";
  107.   }
  108.   case 7:
  109.   {
  110.    return "Stereo-on-1 Karte";
  111.   }
  112.   case 8:
  113.   {
  114.    return "Disney Sound Source LPT1";
  115.   }
  116.   case 9:
  117.   {
  118.    return "Disney Sound Source LPT2";
  119.   }
  120.   case 10:
  121.   {
  122.    return "Disney Sound Source LPT3";
  123.   }
  124.  }
  125.  return " ";
  126. }
  127. /*
  128. /////////////////////////////////////////////////////////////////////
  129. */
  130. void Edit_sound(int page)
  131. {
  132.  int old_wahl=0,wahl=0;
  133.  INIT_JOY=0;
  134.  Back=Save_Back(page,Back);
  135.  Get_Back(1-page,Back);
  136.  page=1;
  137.  setpage(0);
  138.  showpage(1);
  139.  show_pic(16,55,15,"pix\\info1");
  140.  gprintf(55,112,239+13,239+2,"Soundausgabe auf : ");
  141.  if (mod_device<=5)
  142.   wahl=mod_device;
  143.  if (mod_device==7)
  144.   wahl=6;
  145.  if (mod_device>8)
  146.   wahl=mod_device-3;
  147.  gprintf(55,122,239+10,239+2,get_s_device(wahl));
  148.  showpage(0);
  149.  K_Clear();
  150.  while (key!=13)
  151.  {
  152.   key=get_kkey();
  153.   if (key)
  154.   {
  155.    if ((key==C_HOCH)&&(wahl>0))
  156.     wahl--;
  157.    if ((key==C_RUNTER)&&(wahl<10))
  158.     wahl++;
  159.    if (old_wahl!=wahl)
  160.    {
  161.     gprintf(55,122,239+10,239+2,"                          ");
  162.     gprintf(55,122,239+10,239+2,get_s_device(wahl));
  163.     old_wahl=wahl;
  164.    }
  165.   }
  166.  }
  167.  if (wahl<=5)
  168.   mod_device=wahl;
  169.  if (wahl==6)
  170.   mod_device=7;
  171.  if (wahl>6)
  172.   mod_device=wahl+3;
  173.  gprintf(55,140,239+12,239+2,"Bitte geben Sie eine 'mix'");
  174.  gprintf(55,150,239+12,239+2,"Geschwindigkeit ein.");
  175.  gprintf(55,165,239+12,239+2,"(10000 schlecht/schnell)");
  176.  gprintf(55,180,239+12,239+2,"(14000 besser/langsamer)");
  177.  gprintf(55,195,239+12,239+2,"Also ?  : ");
  178.  key=0;
  179.  wahl=mix;
  180.  if ((wahl<5000)||(wahl>20000))
  181.   wahl=10000;
  182.  old_wahl=wahl;
  183.  gprintf(130,195,239+10,239+2,"%i",wahl);
  184.  K_Clear();
  185.  while (key!=13)
  186.  {
  187.   key=get_kkey();
  188.   if (key)
  189.   {
  190.    if ((key==C_RUNTER)&&(wahl>5000))
  191.     wahl-=1000;
  192.    if ((key==C_HOCH)&&(wahl<20000))
  193.     wahl+=1000;
  194.    if (old_wahl!=wahl)
  195.    {
  196.     gprintf(130,195,239+10,239+2,"%i ",wahl);
  197.     old_wahl=wahl;
  198.    }
  199.   }
  200.  }
  201.  mix=wahl;
  202.  gprintf(55,220,239+12,239+2,"Wollen Sie Ã¼berhaupt eine");
  203.  gprintf(55,230,239+12,239+2,"Hintergrundmusik ?  :");
  204.  key=0;
  205.  wahl=mod_on;
  206.  old_wahl=mod_on;
  207.  if (wahl==1)
  208.  {
  209.   wahl=1;
  210.   gprintf(225,230,239+7,239+2,"Ja  ");
  211.  }
  212.  if (wahl==0)
  213.  {
  214.   wahl=0;
  215.   gprintf(225,230,239+10,239+2,"Nein");
  216.  }
  217.  K_Clear();
  218.  while (key!=13)
  219.  {
  220.   key=get_kkey();
  221.   if (key)
  222.   {
  223.    if ((key==C_RUNTER)&&(wahl==0))
  224.    {
  225.     wahl=1;
  226.     gprintf(225,230,239+7,239+2,"Ja  ");
  227.    }
  228.    if ((key==C_HOCH)&&(wahl==1))
  229.    {
  230.     wahl=0;
  231.     gprintf(225,230,239+10,239+2,"Nein");
  232.    }
  233.   }
  234.  }
  235.  mod_on=wahl;
  236.  gprintf(55,250,239+12,239+2,"Wollen Sie PACMAN");
  237.  gprintf(55,260,239+12,239+2,"Geräusche ?  :");
  238.  key=0;
  239.  wahl=sample_on;
  240.  if ((wahl!=0)&&(wahl!=1))
  241.   wahl=0;
  242.  old_wahl=wahl;
  243.  if (wahl==1)
  244.  {
  245.   wahl=1;
  246.   gprintf(175,260,239+7,239+2,"Ja  ");
  247.  }
  248.  if (wahl==0)
  249.  {
  250.   wahl=0;
  251.   gprintf(175,260,239+10,239+2,"Nein");
  252.  }
  253.  K_Clear();
  254.  while (key!=13)
  255.  {
  256.   key=get_kkey();
  257.   if (key)
  258.   {
  259.    if ((key==C_RUNTER)&&(wahl==0))
  260.    {
  261.     wahl=1;
  262.     gprintf(175,260,239+7,239+2,"Ja  ");
  263.    }
  264.    if ((key==C_HOCH)&&(wahl==1))
  265.    {
  266.     wahl=0;
  267.     gprintf(175,260,239+10,239+2,"Nein");
  268.    }
  269.   }
  270.  }
  271.  sample_on=wahl;
  272.  play_mod();
  273.  if (JOYSTICK)
  274.   InitJoy(page);
  275.  
  276. }
  277. # endif
  278. /*
  279. /////////////////////////////////////////////////////////////////////
  280. */
  281. /* 1 ist Dot essen !!! */
  282. /* 2 ist Pille essen */
  283. /* 3 ist Extra Bonus */
  284. # pragma argsused
  285. void play_sample(int nummer)
  286. {
  287. # ifndef NO_SOUND
  288. # ifndef SHAREWARE_SOUND
  289.  if (sample_on)
  290.  {
  291.   switch (nummer)
  292.   {
  293.    case START:
  294.    {
  295.     spotsample(290,14);
  296.     break;
  297.    }
  298.    case DOTS:
  299.    {
  300.     spotsample(370,10);
  301.     break;
  302.    }
  303.    case PILLE:
  304.    {
  305.     spotsample(260,12);
  306.     break;
  307.    }
  308.    case DEAD:
  309.    {
  310.     spotsample(330,11);
  311.     break;
  312.    }
  313.    case FRESSEN:
  314.    {
  315.     spotsample(370,13);
  316.     break;
  317.    }
  318.   }
  319.  }
  320. # endif
  321. # endif
  322. }
  323. /*
  324. /////////////////////////////////////////////////////////////////////
  325. */
  326.