${SRCDIR}/Stereo.cpp
${SRCDIR}/Animation.cpp
${SRCDIR}/Sounds.cpp
+ ${SRCDIR}/Awards.cpp
)
set(LUGARU_H
--- /dev/null
+/*
+Copyright (C) 2010 - Lugaru authors
+
+This file is part of Lugaru.
+
+Lugaru is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation; either version 2
+of the License, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+*/
+
+#include "Awards.h"
+#include "Person.h"
+#include "Game.h"
+
+float damagetaken;
+int numfalls;
+int numflipfail;
+int numseen;
+int numresponded;
+int numstaffattack;
+int numswordattack;
+int numknifeattack;
+int numunarmedattack;
+int numescaped;
+int numflipped;
+int numwallflipped;
+int numthrowkill;
+int numafterkill;
+int numreversals;
+int numattacks;
+int maxalarmed;
+
+int award_awards(int *awards)
+{
+ int numawards = 0, i;
+ 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++;
+ }
+ return numawards;
+}
#undef DECLARE_AWARD
};
+extern int award_awards(int *);
+
+extern float damagetaken;
+extern int numfalls;
+extern int numflipfail;
+extern int numseen;
+extern int numresponded;
+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;
#endif
extern int tutorialstage;
extern bool againbonus;
extern float damagedealt;
-extern float damagetaken;
extern bool invertmouse;
extern int numhotspots;
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;
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);
strcat(string,temp);
text.glPrintOutlined(1024/30,768*6/8-40,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);
}
#include "Settings.h"
#include "Input.h"
#include "Animation.h"
+#include "Awards.h"
using namespace std;
extern bool canattack;
extern bool cananger;
extern float damagedealt;
-extern float damagetaken;
extern int maptype;
extern int editoractive;
extern int editorpathtype;
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];
bool againbonus = 0;
float damagedealt = 0;
-float damagetaken = 0;
int maptype = 0;
bool campaign = 0;
-int numfalls = 0;
-int numflipfail = 0;
-int numseen = 0;
-int numresponded = 0;
-int numstaffattack = 0;
-int numswordattack = 0;
-int numknifeattack = 0;
-int numunarmedattack = 0;
-int numescaped = 0;
-int numflipped = 0;
-int numwallflipped = 0;
-int numthrowkill = 0;
-int numafterkill = 0;
-int numreversals = 0;
-int numattacks = 0;
-int maxalarmed = 0;
-
bool gamestarted = 0;
//TextureList textures;
extern bool canattack;
extern bool cananger;
extern float damagedealt;
-extern float damagetaken;
extern int hostile;
extern float hostiletime;
-extern int numfalls;
-extern int numflipfail;
-extern int numseen;
-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 indialogue;
extern bool gamestarted;