Title music integration.
authorlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Thu, 16 Jul 2009 18:23:53 +0000 (18:23 +0000)
committerlimb <limb@bc5cbbab-a4ec-0310-bb52-ff3d296db539>
Thu, 16 Jul 2009 18:23:53 +0000 (18:23 +0000)
git-svn-id: svn+ssh://svn/var/repos/curfender@844 bc5cbbab-a4ec-0310-bb52-ff3d296db539

main.cpp

index 8356413..6dafe17 100644 (file)
--- a/main.cpp
+++ b/main.cpp
@@ -548,6 +548,95 @@ int main(int argc, char *argv[]){
   //get the cursor out of the way
   mvprintw(23,79,"-");
 
+  //load sound, music
+  Mix_Chunk *shotsound = NULL;
+  int shotchannel = -1;
+  Mix_Chunk *boomsound = NULL;
+  int boomchannel = -1;
+  Mix_Chunk *dropoffsound = NULL;
+  int dropoffchannel = -1;
+  Mix_Chunk *pickupsound = NULL;
+  int pickupchannel = -1;
+  Mix_Chunk *lasersound = NULL;
+  int laserchannel = -1;
+  Mix_Chunk *warningsound = NULL;
+  int warningchannel = -1;
+  Mix_Chunk *pupcreatesound = NULL;
+  int pupcreatechannel = -1;
+  Mix_Chunk *puptakesound = NULL;
+  int puptakechannel = -1;
+  Mix_Chunk *shieldupsound = NULL;
+  int shieldupchannel = -1;
+  Mix_Chunk *shielddownsound = NULL;
+  int shielddownchannel = -1;
+  Mix_Chunk *crazifysound = NULL;
+  int crazifychannel = -1;
+  Mix_Chunk *enshotsound = NULL;
+  int enshotchannel = -1;    
+  Mix_Chunk *missilesound = NULL;
+  int missilechannel = -1;        
+
+  Mix_Music *title = NULL;
+
+  int audio_rate = 22050;
+  Uint16 audio_format = AUDIO_S16; 
+  int audio_channels = 6;
+  int audio_buffers = 4096;
+
+  char *env_tty;
+  env_tty = getenv("SSH_TTY");
+    
+  struct stat datatest;
+    
+  if(env_tty == NULL && sound == 1){
+
+    SDL_Init(SDL_INIT_AUDIO);
+
+    if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)) {
+      printf("Unable to open audio!\n");
+      exit(1);
+    }
+
+    if(stat("data/boom.ogg", &datatest)==0){
+      shotsound = Mix_LoadWAV("data/shot.ogg");
+      boomsound = Mix_LoadWAV("data/boom.ogg");
+      dropoffsound = Mix_LoadWAV("data/dropoff.ogg");
+      pickupsound = Mix_LoadWAV("data/pickup.ogg");
+      lasersound = Mix_LoadWAV("data/laser.ogg");
+      warningsound = Mix_LoadWAV("data/warning.ogg");
+      pupcreatesound = Mix_LoadWAV("data/pup-create.ogg");
+      puptakesound = Mix_LoadWAV("data/pup-take.ogg");
+      shieldupsound = Mix_LoadWAV("data/shieldup.ogg");
+      shielddownsound = Mix_LoadWAV("data/shielddown.ogg");
+      crazifysound = Mix_LoadWAV("data/crazify.ogg");
+      enshotsound = Mix_LoadWAV("data/enshot.ogg");
+      missilesound = Mix_LoadWAV("data/missile.ogg");
+        
+      title = Mix_LoadMUS("data/title_music.ogg");
+    } else {
+      shotsound = Mix_LoadWAV("/usr/share/curfender/data/shot.ogg");
+      boomsound = Mix_LoadWAV("/usr/share/curfender/data/boom.ogg");
+      dropoffsound = Mix_LoadWAV("/usr/share/curfender/data/dropoff.ogg");
+      pickupsound = Mix_LoadWAV("/usr/share/curfender/data/pickup.ogg");
+      lasersound = Mix_LoadWAV("/usr/share/curfender/data/laser.ogg");
+      warningsound = Mix_LoadWAV("/usr/share/curfender/data/warning.ogg");
+      pupcreatesound = Mix_LoadWAV("/usr/share/curfender/data/pup-create.ogg");
+      puptakesound = Mix_LoadWAV("/usr/share/curfender/data/pup-take.ogg");
+      shieldupsound = Mix_LoadWAV("/usr/share/curfender/data/shieldup.ogg");
+      shielddownsound = Mix_LoadWAV("/usr/share/curfender/data/shielddown.ogg");
+      crazifysound = Mix_LoadWAV("/usr/share/curfender/data/crazify.ogg");        
+      enshotsound = Mix_LoadWAV("/usr/share/curfender/data/enshot.ogg");                
+      missilesound = Mix_LoadWAV("/usr/share/curfender/data/missile.ogg");        
+        
+      title = Mix_LoadMUS("/usr/share/curfender/data/title_music.ogg");
+    }
+  } else {
+    sound = 0;
+  }
+
+  //start title music
+  Mix_PlayMusic(title, -1);
+
   //hold until SPACE pressed
   pause_game = 0;
   int counter = 0;
@@ -568,85 +657,10 @@ int main(int argc, char *argv[]){
     counter++;
     //halfdelay(1);
   };
-
-    Mix_Chunk *shotsound = NULL;
-    int shotchannel = -1;
-    Mix_Chunk *boomsound = NULL;
-    int boomchannel = -1;
-    Mix_Chunk *dropoffsound = NULL;
-    int dropoffchannel = -1;
-    Mix_Chunk *pickupsound = NULL;
-    int pickupchannel = -1;
-    Mix_Chunk *lasersound = NULL;
-    int laserchannel = -1;
-    Mix_Chunk *warningsound = NULL;
-    int warningchannel = -1;
-    Mix_Chunk *pupcreatesound = NULL;
-    int pupcreatechannel = -1;
-    Mix_Chunk *puptakesound = NULL;
-    int puptakechannel = -1;
-    Mix_Chunk *shieldupsound = NULL;
-    int shieldupchannel = -1;
-    Mix_Chunk *shielddownsound = NULL;
-    int shielddownchannel = -1;
-    Mix_Chunk *crazifysound = NULL;
-    int crazifychannel = -1;
-    Mix_Chunk *enshotsound = NULL;
-    int enshotchannel = -1;    
-    Mix_Chunk *missilesound = NULL;
-    int missilechannel = -1;        
-
-    int audio_rate = 22050;
-    Uint16 audio_format = AUDIO_S16; 
-    int audio_channels = 6;
-    int audio_buffers = 4096;
-
-    char *env_tty;
-    env_tty = getenv("SSH_TTY");
-    
-    struct stat datatest;
-    
-    if(env_tty == NULL && sound == 1){
-
-      SDL_Init(SDL_INIT_AUDIO);
-
-      if(Mix_OpenAudio(audio_rate, audio_format, audio_channels, audio_buffers)) {
-        printf("Unable to open audio!\n");
-        exit(1);
-      }
-
-      if(stat("data/boom.ogg", &datatest)==0){
-        shotsound = Mix_LoadWAV("data/shot.ogg");
-        boomsound = Mix_LoadWAV("data/boom.ogg");
-        dropoffsound = Mix_LoadWAV("data/dropoff.ogg");
-        pickupsound = Mix_LoadWAV("data/pickup.ogg");
-        lasersound = Mix_LoadWAV("data/laser.ogg");
-        warningsound = Mix_LoadWAV("data/warning.ogg");
-        pupcreatesound = Mix_LoadWAV("data/pup-create.ogg");
-        puptakesound = Mix_LoadWAV("data/pup-take.ogg");
-        shieldupsound = Mix_LoadWAV("data/shieldup.ogg");
-        shielddownsound = Mix_LoadWAV("data/shielddown.ogg");
-        crazifysound = Mix_LoadWAV("data/crazify.ogg");
-        enshotsound = Mix_LoadWAV("data/enshot.ogg");
-        missilesound = Mix_LoadWAV("data/missile.ogg");
-      } else {
-        shotsound = Mix_LoadWAV("/usr/share/curfender/data/shot.ogg");
-        boomsound = Mix_LoadWAV("/usr/share/curfender/data/boom.ogg");
-        dropoffsound = Mix_LoadWAV("/usr/share/curfender/data/dropoff.ogg");
-        pickupsound = Mix_LoadWAV("/usr/share/curfender/data/pickup.ogg");
-        lasersound = Mix_LoadWAV("/usr/share/curfender/data/laser.ogg");
-        warningsound = Mix_LoadWAV("/usr/share/curfender/data/warning.ogg");
-        pupcreatesound = Mix_LoadWAV("/usr/share/curfender/data/pup-create.ogg");
-        puptakesound = Mix_LoadWAV("/usr/share/curfender/data/pup-take.ogg");
-        shieldupsound = Mix_LoadWAV("/usr/share/curfender/data/shieldup.ogg");
-        shielddownsound = Mix_LoadWAV("/usr/share/curfender/data/shielddown.ogg");
-        crazifysound = Mix_LoadWAV("/usr/share/curfender/data/crazify.ogg");        
-        enshotsound = Mix_LoadWAV("/usr/share/curfender/data/enshot.ogg");                
-        missilesound = Mix_LoadWAV("/usr/share/curfender/data/missile.ogg");        
-      }
-    } else {
-      sound = 0;
-  }
+  
+  Mix_HaltMusic();
+  Mix_FreeMusic(title);
+  title = NULL;
   
   while(loopvar == 0){
     
@@ -1757,6 +1771,9 @@ int main(int argc, char *argv[]){
     Mix_FreeChunk(crazifysound);
     Mix_FreeChunk(enshotsound);
     Mix_FreeChunk(missilesound);
+
+    //no need to free title music, done after title.
+
     Mix_CloseAudio();
     SDL_Quit();
   };