]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameTick.cpp
Prepare to cleanup sound emission
[lugaru.git] / Source / GameTick.cpp
index e9c2461999a92aa3a01c2bba8844f9b2313e1b3f..05e9fd8312e6bdc328573f96b149c11f934f4740 100644 (file)
@@ -33,6 +33,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "Settings.h"
 #include "Input.h"
 #include "Animation.h"
+#include "Awards.h"
 
 using namespace std;
 
@@ -70,9 +71,6 @@ extern float blackout;
 extern bool cellophane;
 extern bool musictoggle;
 extern int difficulty;
-extern Weapons weapons;
-extern Person player[maxplayers];
-extern int numplayers;
 extern int bloodtoggle;
 extern bool invertmouse;
 extern float windvar;
@@ -114,14 +112,7 @@ extern bool decals;
 extern bool vblsync;
 extern bool immediate;
 extern bool velocityblur;
-extern int bonus;
-extern int oldbonus;
-extern float bonusvalue;
-extern float bonustotal;
-extern float bonustime;
-extern float startbonustotal;
 extern float tintr,tintg,tintb;
-extern float bonusnum[100];
 extern bool skyboxtexture;
 extern float skyboxr;
 extern float skyboxg;
@@ -143,7 +134,6 @@ extern bool reversaltrain;
 extern bool canattack;
 extern bool cananger;
 extern float damagedealt;
-extern float damagetaken;
 extern int maptype;
 extern int editoractive;
 extern int editorpathtype;
@@ -168,23 +158,6 @@ extern int hostile;
 extern bool stillloading;
 extern bool winfreeze;
 
-extern int numfalls;
-extern int numflipfail;
-extern int numseen;
-extern int numstaffattack;
-extern int numswordattack;
-extern int numknifeattack;
-extern int numunarmedattack;
-extern int numescaped;
-extern int numflipped;
-extern int numwallflipped;
-extern int numthrowkill;
-extern int numafterkill;
-extern int numreversals;
-extern int numattacks;
-extern int maxalarmed;
-extern int numresponded;
-
 extern int numdialogues;
 extern int numdialogueboxes[max_dialogues];
 extern int dialoguetype[max_dialogues];
@@ -241,7 +214,6 @@ static bool stripfx(const char *str, const char *pfx)
   return !strncasecmp(str, pfx, strlen(pfx));
 }
 
-extern OPENAL_STREAM * strm[20];
 extern "C"     void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
 extern "C" void PlayStreamEx(int chan, OPENAL_STREAM *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
 
@@ -1388,7 +1360,7 @@ void      Game::Setenvironment(int which)
                windvector.z=3;
                if(ambientsound){
                        //PlaySoundEx( wind, samp[wind], NULL, true);
-                       PlayStreamEx(stream_wind, strm[stream_wind], 0, true);
+                       PlayStreamEx(stream_wind, samp[stream_wind], 0, true);
                        OPENAL_SetPaused(channels[stream_wind], false);
                        OPENAL_SetVolume(channels[stream_wind], 256);
                }
@@ -1439,7 +1411,7 @@ void      Game::Setenvironment(int which)
 
                if(ambientsound){
                        //PlaySoundEx( desertambient, samp[desertambient], NULL, true);
-                       PlayStreamEx( stream_desertambient, strm[stream_desertambient], NULL, true);
+                       PlayStreamEx( stream_desertambient, samp[stream_desertambient], NULL, true);
                        OPENAL_SetPaused(channels[stream_desertambient], false);
                        OPENAL_SetVolume(channels[stream_desertambient], 256);
                }
@@ -1482,7 +1454,7 @@ void      Game::Setenvironment(int which)
                LoadTexture(":Data:Textures:grassbox.jpg",&objects.boxtextureptr,1,0);
 
                if(ambientsound){
-                       PlayStreamEx( stream_wind, strm[stream_wind], NULL, true);
+                       PlayStreamEx( stream_wind, samp[stream_wind], NULL, true);
                        OPENAL_SetPaused(channels[stream_wind], false);
                        OPENAL_SetVolume(channels[stream_wind], 100);
                }
@@ -2271,7 +2243,7 @@ void      Game::Loadlevel(char *name){
                {
                        if(ambientsound)
                        {
-                               PlayStreamEx(stream_wind, strm[stream_wind], NULL, true);
+                               PlayStreamEx(stream_wind, samp[stream_wind], NULL, true);
                                OPENAL_SetPaused(channels[stream_wind], false);
                                OPENAL_SetVolume(channels[stream_wind], 256);
                        }
@@ -2283,7 +2255,7 @@ void      Game::Loadlevel(char *name){
                                //PlaySoundEx(desertambient,
                                //      samp[desertambient], NULL, true);
                                PlayStreamEx(stream_desertambient,
-                                       strm[stream_desertambient], NULL, true);
+                                       samp[stream_desertambient], NULL, true);
                                OPENAL_SetPaused(channels[stream_desertambient], false);
                                OPENAL_SetVolume(channels[stream_desertambient], 256);
                        }
@@ -2293,7 +2265,7 @@ void      Game::Loadlevel(char *name){
                        if(ambientsound)
                        {
                                //PlaySoundEx(wind, samp[wind], NULL, true);
-                               PlayStreamEx(stream_wind, strm[stream_wind], NULL, true);
+                               PlayStreamEx(stream_wind, samp[stream_wind], NULL, true);
                                OPENAL_SetPaused(channels[stream_wind], false);
                                OPENAL_SetVolume(channels[stream_wind], 100);
                        }
@@ -2391,7 +2363,7 @@ void      Game::Tick()
                                if(mainmenu&&musictoggle){
                                        if(mainmenu==1||mainmenu==2||mainmenu==100){
                                                OPENAL_SetFrequency(OPENAL_ALL, 0.001);
-                                               PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
+                                               PlayStreamEx( stream_music3, samp[stream_music3], NULL, true);
                                                OPENAL_SetPaused(channels[stream_music3], false);
                                                OPENAL_SetVolume(channels[stream_music3], 256);
                                                OPENAL_SetPaused(channels[music1], true);
@@ -2598,7 +2570,7 @@ void      Game::Tick()
                                }
 
                                if(musictoggle){
-                                       PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
+                                       PlayStreamEx( stream_music3, samp[stream_music3], NULL, true);
                                        OPENAL_SetPaused(channels[stream_music3], false);
                                        OPENAL_SetVolume(channels[stream_music3], 256);
                                }
@@ -2768,7 +2740,7 @@ void      Game::Tick()
                                mainmenu=9;
                        }
                }
-               if(mainmenu==9){
+               else if(mainmenu==9){
                        if(Input::Button()&&!oldbutton&&selected<numchallengelevels&&selected>=0&&selected<=accountactive->getProgress()){
                                fireSound();
 
@@ -5743,16 +5715,12 @@ void    Game::Tick()
 
                                                                                                                                                                                                                                player[i].RagDoll(0);
                                                                                                                                                                                                                                if(player[i].damage>player[i].damagetolerance-findLengthfast(&rotatetarget)/4&&!player[i].dead){
-                                                                                                                                                                                                                                       bonus=aimbonus;
-                                                                                                                                                                                                                                       bonustime=0;
-                                                                                                                                                                                                                                       bonusvalue=150;
+                                                                                                                                                                                                                                 award_bonus(0, aimbonus);
                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                player[i].DoDamage(findLengthfast(&rotatetarget)/4);
                                                                                                                                                                                                                                player[k].RagDoll(0);
                                                                                                                                                                                                                                if(player[k].damage>player[k].damagetolerance-findLengthfast(&rotatetarget)/4&&!player[k].dead){
-                                                                                                                                                                                                                                       bonus=aimbonus;
-                                                                                                                                                                                                                                       bonustime=0;
-                                                                                                                                                                                                                                       bonusvalue=150;
+                                                                                                                                                                                                                                 award_bonus(0, aimbonus); // Huh, again?
                                                                                                                                                                                                                                }
                                                                                                                                                                                                                                player[k].DoDamage(findLengthfast(&rotatetarget)/4);
 
@@ -5818,11 +5786,7 @@ void     Game::Tick()
                                                                                                                                                                                                                                                player[i].DoDamage(20);
                                                                                                                                                                                                                                                player[i].RagDoll(0);
                                                                                                                                                                                                                                                player[k].lastcollide=1;
-                                                                                                                                                                                                                                               if(k==0){
-                                                                                                                                                                                                                                                       bonus=AboveBonus;
-                                                                                                                                                                                                                                                       bonustime=0;
-                                                                                                                                                                                                                                                       bonusvalue=50;
-                                                                                                                                                                                                                                               }
+                                                                                                                                                                                                                                               award_bonus(k, AboveBonus);
                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                        if(i==0&&k!=0&&player[i].targetanimation==jumpdownanim&&!player[k].isCrouch()&&player[k].targetanimation!=rollanim&&!player[i].skeleton.oldfree&&!player[i].skeleton.free&&player[i].lastcollide<=0&&player[i].velocity.y<-10){
                                                                                                                                                                                                                                                player[k].velocity=player[i].velocity;
@@ -5832,11 +5796,7 @@ void     Game::Tick()
                                                                                                                                                                                                                                                player[k].DoDamage(20);
                                                                                                                                                                                                                                                player[k].RagDoll(0);
                                                                                                                                                                                                                                                player[i].lastcollide=1;
-                                                                                                                                                                                                                                               if(i==0){
-                                                                                                                                                                                                                                                       bonus=AboveBonus;
-                                                                                                                                                                                                                                                       bonustime=0;
-                                                                                                                                                                                                                                                       bonusvalue=50;
-                                                                                                                                                                                                                                               }
+                                                                                                                                                                                                                                               award_bonus(i, AboveBonus);
                                                                                                                                                                                                                                        }
                                                                                                                                                                                                                                }
                                                                                                                                                                                                                        }
@@ -7667,7 +7627,7 @@ void      Game::Tick()
                                                                                OPENAL_StopSound(OPENAL_ALL);  // hack...OpenAL renderer isn't stopping music after tutorial goes to level menu...
                                                                                OPENAL_SetFrequency(OPENAL_ALL, 0.001);
 
-                                                                               PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
+                                                                               PlayStreamEx( stream_music3, samp[stream_music3], NULL, true);
                                                                                OPENAL_SetPaused(channels[stream_music3], false);
                                                                                OPENAL_SetVolume(channels[stream_music3], 256);
 
@@ -7881,15 +7841,15 @@ void    Game::TickOnceAfter(){
 
                if(musictoggle){
                        if(musicvolume[0]>0&&oldmusicvolume[0]<=0){
-                               PlayStreamEx( music1, strm[music1], NULL, true);
+                               PlayStreamEx( music1, samp[music1], NULL, true);
                                OPENAL_SetPaused(channels[music1], false);
                        }
                        if(musicvolume[1]>0&&oldmusicvolume[1]<=0){
-                               PlayStreamEx( stream_music2, strm[stream_music2], NULL, true);
+                               PlayStreamEx( stream_music2, samp[stream_music2], NULL, true);
                                OPENAL_SetPaused(channels[stream_music2], false);
                        }
                        if(musicvolume[2]>0&&oldmusicvolume[2]<=0){
-                               PlayStreamEx( stream_music3, strm[stream_music3], NULL, true);
+                               PlayStreamEx( stream_music3, samp[stream_music3], NULL, true);
                                OPENAL_SetPaused(channels[stream_music3], false);
                        }
                        if(musicvolume[0]<=0&&oldmusicvolume[0]>0){