commit 4650efde
Removed debug messages, now detects warmup and will not start a game if detected. Fixed use of NVL.
git-svn-id: http://oastat.googlecode.com/svn/trunk@31 a36be8df-c75f-1e49-46ad-4f0ee64bdc62
Changed files
| M | src/Makefile before |
| M | src/db/Db2DbiXX.cpp before |
| M | src/oastat.cpp before |
diff --git a/src/Makefile b/src/Makefile
index 3076cc8..98aee54 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -8,6 +8,8 @@ BASE_CFLAGS=-c -g -O0
O_FILES=build/oastat.o build/oastatstruct.o build/kill2db.o build/init2db.o build/shutdown2db.o build/userinfo2db.o build/disconnect2db.o build/award2db.o build/ctf2db.o build/point2db.o build/ctf1f2db.o build/elimination2db.o build/ctfelim2db.o build/harvester2db.o build/challenge2db.o build/warmup2db.o
+H_FILES=local.h oastatstruct.h oss2db/struct2db.h
+
ifeq ($(USESTDOUT),1)
O_FILES+= build/db2stdout.o
BASE_CFLAGS+= -DUSESTDOUT=1
@@ -51,48 +53,48 @@ build/db2dbixx.o: db/Db2DbiXX.cpp db/Db2DbiXX.hpp db/database.hpp
g++ $(BASE_CFLAGS) db/Db2DbiXX.cpp -o build/db2dbixx.o
endif
-build/oastatstruct.o: oastatstruct.cpp oastatstruct.h
+build/oastatstruct.o: oastatstruct.cpp oastatstruct.h $(H_FILES)
g++ $(BASE_CFLAGS) oastatstruct.cpp -o build/oastatstruct.o
-build/kill2db.o: oss2db/kill2db.cpp oss2db/kill2db.h
+build/kill2db.o: oss2db/kill2db.cpp oss2db/kill2db.h $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/kill2db.cpp -o build/kill2db.o
-build/init2db.o: oss2db/init2db.cpp oss2db/init2db.h
+build/init2db.o: oss2db/init2db.cpp oss2db/init2db.h $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/init2db.cpp -o build/init2db.o
-build/shutdown2db.o: oss2db/shutdown2db.cpp oss2db/shutdown2db.h
+build/shutdown2db.o: oss2db/shutdown2db.cpp oss2db/shutdown2db.h $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/shutdown2db.cpp -o build/shutdown2db.o
-build/userinfo2db.o: oss2db/userinfo2db.cpp oss2db/userinfo2db.h
+build/userinfo2db.o: oss2db/userinfo2db.cpp oss2db/userinfo2db.h $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/userinfo2db.cpp -o build/userinfo2db.o
-build/disconnect2db.o: oss2db/Disconnect2Db.cpp oss2db/Disconnect2Db.h
+build/disconnect2db.o: oss2db/Disconnect2Db.cpp oss2db/Disconnect2Db.h $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Disconnect2Db.cpp -o build/disconnect2db.o
-build/award2db.o: oss2db/Award2Db.cpp oss2db/Award2Db.h
+build/award2db.o: oss2db/Award2Db.cpp oss2db/Award2Db.h $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Award2Db.cpp -o build/award2db.o
-build/ctf2db.o: oss2db/Ctf2Db.cpp
+build/ctf2db.o: oss2db/Ctf2Db.cpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Ctf2Db.cpp -o build/ctf2db.o
-build/ctf1f2db.o: oss2db/Ctf1f2Db.cpp
+build/ctf1f2db.o: oss2db/Ctf1f2Db.cpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Ctf1f2Db.cpp -o build/ctf1f2db.o
-build/elimination2db.o: oss2db/Elimination2Db.cpp
+build/elimination2db.o: oss2db/Elimination2Db.cpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Elimination2Db.cpp -o build/elimination2db.o
-build/ctfelim2db.o: oss2db/CtfElimination2Db.cpp
+build/ctfelim2db.o: oss2db/CtfElimination2Db.cpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/CtfElimination2Db.cpp -o build/ctfelim2db.o
-build/point2db.o: oss2db/Point2Db.cpp oss2db/Point2Db.hpp
+build/point2db.o: oss2db/Point2Db.cpp oss2db/Point2Db.hpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Point2Db.cpp -o build/point2db.o
-build/harvester2db.o: oss2db/Harvester2Db.cpp oss2db/Harvester2Db.hpp
+build/harvester2db.o: oss2db/Harvester2Db.cpp oss2db/Harvester2Db.hpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Harvester2Db.cpp -o build/harvester2db.o
-build/challenge2db.o: oss2db/Challenge2Db.cpp oss2db/Challenge2Db.hpp
+build/challenge2db.o: oss2db/Challenge2Db.cpp oss2db/Challenge2Db.hpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Challenge2Db.cpp -o build/challenge2db.o
-build/warmup2db.o: oss2db/Warmup2Db.cpp oss2db/Warmup2Db.hpp
+build/warmup2db.o: oss2db/Warmup2Db.cpp oss2db/Warmup2Db.hpp $(H_FILES)
g++ $(BASE_CFLAGS) oss2db/Warmup2Db.cpp -o build/warmup2db.o
diff --git a/src/db/Db2DbiXX.cpp b/src/db/Db2DbiXX.cpp
index b28964a..874e0da 100644
--- a/src/db/Db2DbiXX.cpp
+++ b/src/db/Db2DbiXX.cpp
@@ -28,7 +28,7 @@
#define CTF1F "INSERT INTO oastat_team_events(gamenumber,second,team,player,gametype,eventtype) VALUES (?,?,?,COALESCE((SELECT playerid FROM oastat_players WHERE guid = ?),0),'1fctf',?)"
#define ELIMINATION "INSERT INTO oastat_team_events(gamenumber,second,team,eventtype,generic1,gametype) VALUES (?,?,?,?,?,'elimination')"
#define CTF_ELIM "INSERT INTO oastat_team_events(gamenumber,second,team,player,eventtype,generic1,gametype) VALUES (?,?,?,COALESCE((SELECT playerid FROM oastat_players WHERE guid = ?),0),?,?,'ctfelim')"
-#define HARVESTER "INSERT INTO oastat_team_events(gamenumber,second,team,player,player2,eventtype,amount,gametype) VALUES (?,?,?,NVL((SELECT playerid FROM oastat_players WHERE guid = ?),0),COALESCE((SELECT playerid FROM oastat_players WHERE guid = ?),0),?,?,'harvester')"
+#define HARVESTER "INSERT INTO oastat_team_events(gamenumber,second,team,player,player2,eventtype,amount,gametype) VALUES (?,?,?,COALESCE((SELECT playerid FROM oastat_players WHERE guid = ?),0),COALESCE((SELECT playerid FROM oastat_players WHERE guid = ?),0),?,?,'harvester')"
#define CHALLENGES "INSERT INTO oastat_challenges(gamenumber,player,challenge,amount) VALUES (?,COALESCE((SELECT playerid FROM oastat_players WHERE guid = ?),0),?,?)"
#define SELECT_USERVARS2SAVE "SELECT thekey FROM oastat_config_uservars2save"
@@ -101,7 +101,7 @@ Db2DbiXX::Db2DbiXX() {
sql->connect();
ReadConfigFromDb();
commitlock = new transaction(*sql);
- debug = true;
+ debug = false;
}
Db2DbiXX::Db2DbiXX(string dbargs)
@@ -123,7 +123,7 @@ Db2DbiXX::Db2DbiXX(string dbargs)
sql->connect();
ReadConfigFromDb();
commitlock = new transaction(*sql);
- debug = true;
+ debug = false;
//sql(dbargs);
}
@@ -144,11 +144,17 @@ void Db2DbiXX::startGame(int gametype, string mapname, string basegame, string s
sql->reconnect();
Rollback(); //in case there was some garbage that could be comitted (like warmup or an unfinished game)
SetOk(true);
+ if(oss->restOfLine.find("\\isWarmup\\1") != string::npos)
+ {
+ SetOk(false);
+ cout << "Warmup: " << servername << ", " << oss->getTimeStamp() << endl;
+ return;
+ }
if(IsDuplicate(servername,oss->getDateTime())) {
SetOk(false);
cout << "Duplicate:" << servername << ", " << oss->getTimeStamp() << endl;
return;
- }
+ }
if(last_value) {
*sql << S_STARTGAME_LASTVALUE,gametype,mapname,basegame,servername,oss->getDateTime(),exec();
gamenumber = getLastGameNumber();
@@ -166,6 +172,8 @@ void Db2DbiXX::startGame(int gametype, string mapname, string basegame, string s
void Db2DbiXX::addGameCvar(string cvar, string value) {
if(!isok)
return;
+ if(cvars2save.find(cvar) == cvars2save.end())
+ return; //not to be saved
*sql << S_ADDCVAR,gamenumber,cvar,value,0,exec();
DebugMessage("addCvar");
}
diff --git a/src/oastat.cpp b/src/oastat.cpp
index 7f67845..5b33058 100644
--- a/src/oastat.cpp
+++ b/src/oastat.cpp
@@ -154,6 +154,8 @@ int main (int argc, const char* argv[])
static int processStdIn(istream* in_p) {
bool done = true;
+ OaStatStruct *startstruct;
+ startstruct = NULL;
do
{
string line = "";
@@ -165,6 +167,10 @@ static int processStdIn(istream* in_p) {
oss.clear();
oss.parseLine(line);
osslist.push_back(oss);
+ if(oss.command=="InitGame")
+ startstruct = &osslist.back();
+ if(oss.command=="Warmup" && startstruct)
+ startstruct->restOfLine. += "\\isWarmup\\1"; //Workaround to stop warmup
if(oss.command=="ShutdownGame")
{
while(!osslist.empty())
@@ -191,6 +197,7 @@ static int processStdIn(istream* in_p) {
}
//cout << "returned" << endl;
}
+ startstruct = NULL;
}
}
} catch (exception &e2) {