]> git.jsancho.org Git - lugaru.git/blobdiff - Source/GameDraw.cpp
Move stats vars and award computation to Awards.cpp
[lugaru.git] / Source / GameDraw.cpp
index 5286b5ddf6585f18b27680b92838ab041cbbc858..79625b1795d23be8a81f5bf5f5b539c95cfc098d 100644 (file)
@@ -22,6 +22,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
 #include "Game.h"
 #include "openal_wrapper.h"
 #include "Input.h"
+#include "Awards.h"
 
 using namespace std;
 
@@ -44,8 +45,6 @@ extern int detail;
 extern float usermousesensitivity;
 extern bool osx;
 extern float camerashake;
-extern Weapons weapons;
-extern Person player[maxplayers];
 extern int slomo;
 extern float slomodelay;
 extern bool ismotionblur;
@@ -53,7 +52,6 @@ extern float woozy;
 extern float blackout;
 extern bool damageeffects;
 extern float volume;
-extern int numplayers;
 extern bool texttoggle;
 extern float blurness;
 extern float targetblurness;
@@ -97,7 +95,6 @@ extern float tutorialmaxtime;
 extern int tutorialstage;
 extern bool againbonus;
 extern float damagedealt;
-extern float damagetaken;
 extern bool invertmouse;
 
 extern int numhotspots;
@@ -109,23 +106,6 @@ extern float hotspotsize[40];
 extern char hotspottext[40][256];
 extern int currenthotspot;;
 
-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 bool campaign;
 extern bool winfreeze;
 
@@ -159,7 +139,6 @@ extern bool gamestarted;
 
 extern bool showdamagebar;
 
-extern OPENAL_SAMPLE   *samp[100];
 extern int channels[100];
 extern "C"     void PlaySoundEx(int channel, OPENAL_SAMPLE *sptr, OPENAL_DSPUNIT *dsp, signed char startpaused);
 
@@ -1741,83 +1720,6 @@ int Game::DrawGLScene(StereoSide side)
 
                        glEnable(GL_TEXTURE_2D);
 
-                       //Awards
-                       int numawards = 0;
-                       int awards[30];
-
-                       if(damagetaken==0&&player[0].bloodloss==0){
-                               awards[numawards]=awardflawless;
-                               numawards++;
-                       }
-                       bool alldead = true;
-                       for(i=1;i<numplayers;i++){              
-                               if(player[i].dead!=2)alldead=0;
-                       }
-                       if(alldead){
-                               awards[numawards]=awardalldead;
-                               numawards++;
-                       }
-                       alldead=1;
-                       for(i=1;i<numplayers;i++){              
-                               if(player[i].dead!=1)alldead=0;
-                       }
-                       if(alldead){
-                               awards[numawards]=awardnodead;
-                               numawards++;
-                       }
-                       if(numresponded==0&&!numthrowkill){
-                               awards[numawards]=awardstealth;
-                               numawards++;
-                       }
-                       if(numattacks==numstaffattack&&numattacks>0){
-                               awards[numawards]=awardbojutsu;
-                               numawards++;
-                       }
-                       if(numattacks==numswordattack&&numattacks>0){
-                               awards[numawards]=awardswordsman;
-                               numawards++;
-                       }
-                       if(numattacks==numknifeattack&&numattacks>0){
-                               awards[numawards]=awardknifefighter;
-                               numawards++;
-                       }
-                       if(numattacks==numunarmedattack&&numthrowkill==0&&weapons.numweapons>0){
-                               awards[numawards]=awardkungfu;
-                               numawards++;
-                       }
-                       if(numescaped>0){
-                               awards[numawards]=awardevasion;
-                               numawards++;
-                       }
-                       if(numflipfail==0&&numflipped+numwallflipped*2>20){
-                               awards[numawards]=awardacrobat;
-                               numawards++;
-                       }
-                       if(numthrowkill==numplayers-1){
-                               awards[numawards]=awardlongrange;
-                               numawards++;
-                       }
-                       alldead=1;
-                       for(i=1;i<numplayers;i++){              
-                               if(player[i].dead!=2)alldead=0;
-                       }
-                       if(numafterkill>0&&alldead){
-                               awards[numawards]=awardbrutal;
-                               numawards++;
-                       }
-                       if(numreversals>((float)numattacks)*.8&&numreversals>3){
-                               awards[numawards]=awardaikido;
-                               numawards++;
-                       }
-                       if(maxalarmed==1&&numplayers>2){
-                               awards[numawards]=awardstrategy;
-                               numawards++;
-                       }
-                       if(numflipfail>3){
-                               awards[numawards]=awardklutz;
-                               numawards++;
-                       }
-
                        //Win Screen Won Victory
 
                        glEnable(GL_TEXTURE_2D);
@@ -1844,32 +1746,12 @@ int Game::DrawGLScene(StereoSide side)
                        strcat(string,temp);
                        text.glPrintOutlined(1024/30,768*6/8-40,string,1,2,1024,768);
 
-                       for(i=0;i<numawards;i++){
-                               if(i<6){
-                                       if(awards[i]==awardklutz)sprintf (string, "Suicidal");
-                                       if(awards[i]==awardflawless)sprintf (string, "Flawless!");
-                                       if(awards[i]==awardalldead)sprintf (string, "Take no prisoners");
-                                       if(awards[i]==awardnodead)sprintf (string, "Merciful");
-                                       if(awards[i]==awardstealth)sprintf (string, "One with the shadows!");
-                                       if(awards[i]==awardswordsman)sprintf (string, "Swordsman");
-                                       if(awards[i]==awardkungfu)sprintf (string, "Unarmed!");
-                                       if(awards[i]==awardknifefighter)sprintf (string, "Knife fighter");
-                                       if(awards[i]==awardcoward)sprintf (string, "Coward");
-                                       if(awards[i]==awardevasion)sprintf (string, "Escape artist");
-                                       if(awards[i]==awardacrobat)sprintf (string, "Gymnast");
-                                       if(awards[i]==awardlongrange)sprintf (string, "Blade slinger");
-                                       if(awards[i]==awardbrutal)sprintf (string, "Brutal");
-                                       if(awards[i]==awardhyper)sprintf (string, "Hyper");
-                                       if(awards[i]==awardaikido)sprintf (string, "Aikido master!");
-                                       if(awards[i]==awardrambo)sprintf (string, "Rambo");
-                                       if(awards[i]==awardfast)sprintf (string, "Fast");
-                                       if(awards[i]==awardrealfast)sprintf (string, "Real fast");
-                                       if(awards[i]==awarddamnfast)sprintf (string, "Damn fast");
-                                       if(awards[i]==awardstrategy)sprintf (string, "Divide and conquer");
-                                       if(awards[i]==awardbojutsu)sprintf (string, "Bojutsu");
-                                       text.glPrintOutlined(1024/30,768*6/8-90-40*i,string,1,2,1024,768);
-                               }
-                       }
+                       //Awards
+                       int awards[award_count];
+                       int numawards = award_awards(awards);
+
+                       for (i = 0; i < numawards && i < 6; i++)
+                         text.glPrintOutlined(1024/30,768*6/8-90-40*i,award_names[awards[i]],1,2,1024,768);
                }
 
                if(drawmode!=normalmode){