commit 7de6eece
CtfElimination
git-svn-id: http://oastat.googlecode.com/svn/trunk@20 a36be8df-c75f-1e49-46ad-4f0ee64bdc62
Changed files
diff --git a/src/Makefile b/src/Makefile
index 91f53ba..4cf59e0 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -6,7 +6,7 @@ USESTDOUT=0
BASE_LIBS=-lgcrypt
BASE_CFLAGS=-c -g
-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
+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
ifeq ($(USESTDOUT),1)
O_FILES+= build/db2stdout.o
@@ -25,6 +25,11 @@ ifeq ($(USEDBIXX),1)
BASE_CFLAGS+= -DUSEDBIXX=1
endif
+total: build/oastat
+
+clean:
+ rm -f build/*.o
+
build/oastat: $(O_FILES)
g++ -O -o build/oastat $(O_FILES) $(BASE_LIBS)
@@ -76,6 +81,9 @@ build/ctf1f2db.o: oss2db/Ctf1f2Db.cpp
build/elimination2db.o: oss2db/Elimination2Db.cpp
g++ $(BASE_CFLAGS) oss2db/Elimination2Db.cpp -o build/elimination2db.o
+build/ctfelim2db.o: oss2db/CtfElimination2Db.cpp
+ g++ $(BASE_CFLAGS) oss2db/CtfElimination2Db.cpp -o build/ctfelim2db.o
+
build/point2db.o: oss2db/Point2Db.cpp oss2db/Point2Db.hpp
g++ $(BASE_CFLAGS) oss2db/Point2Db.cpp -o build/point2db.o
diff --git a/src/db/Db2DbiXX.cpp b/src/db/Db2DbiXX.cpp
index 118cf89..105afa5 100644
--- a/src/db/Db2DbiXX.cpp
+++ b/src/db/Db2DbiXX.cpp
@@ -183,6 +183,11 @@ void Db2DbiXX::addElimination(int second, int roundnumber, int team, int event)
DebugMessage("addElimination");
}
+void Db2DbiXX::addCtfElimination(int second, int roundnumber, string player, int team, int event) {
+ *sql << S_CTF_ELIM,gamenumber,second,team,player,event,roundnumber,exec();
+ DebugMessage("addCtfElimination");
+}
+
int Db2DbiXX::getNextGameNumber() {
int result = -1;
row r;
diff --git a/src/db/Db2DbiXX.hpp b/src/db/Db2DbiXX.hpp
index 159262e..9a07b39 100644
--- a/src/db/Db2DbiXX.hpp
+++ b/src/db/Db2DbiXX.hpp
@@ -35,6 +35,7 @@ public:
void addCtf(int second, string player, int team, int event);
void addCtf1f(int second, string player, int team, int event);
void addElimination(int second, int roundnumber, int team, int event);
+ void addCtfElimination(int second, int roundnumber, string player, int team, int event);
private:
session *sql;
transaction *commitlock;
diff --git a/src/db/database.hpp b/src/db/database.hpp
index 9f46b1d..d4cda6b 100644
--- a/src/db/database.hpp
+++ b/src/db/database.hpp
@@ -144,6 +144,17 @@ class Database {
virtual void addCtf1f(int second, string player, int team, int event) = 0;
virtual void addElimination(int second, int roundnumber, int team, int event) = 0;
+
+ /**
+ * Events for the CTF Elimination gametype
+ *
+ * @param second second from game start
+ * @param roundnumber the round number
+ * @param player the player the event is about. Possible blank
+ * @param team the team the event is about
+ * @param event the event type
+ */
+ virtual void addCtfElimination(int second, int roundnumber, string player, int team, int event) = 0;
};
#endif //_DATABASE_H
diff --git a/src/oss2db/Ctf1f2Db.cpp b/src/oss2db/Ctf1f2Db.cpp
index 0b5c100..1c0539f 100644
--- a/src/oss2db/Ctf1f2Db.cpp
+++ b/src/oss2db/Ctf1f2Db.cpp
@@ -13,7 +13,7 @@ string Ctf1f2Db::getCommand() {
}
bool Ctf1f2Db::canProcess(OaStatStruct oss) {
- if(oss.command != getCommand() || oss.parameters.size()<3 || oss.parameters.at(0)<0)
+ if(oss.command != getCommand() || oss.parameters.size()<3)
return false;
return true;
}
diff --git a/src/oss2db/Ctf2Db.cpp b/src/oss2db/Ctf2Db.cpp
index 01e907f..eb54108 100644
--- a/src/oss2db/Ctf2Db.cpp
+++ b/src/oss2db/Ctf2Db.cpp
@@ -13,7 +13,7 @@ string Ctf2Db::getCommand() {
}
bool Ctf2Db::canProcess(OaStatStruct oss) {
- if(oss.command != getCommand() || oss.parameters.size()<3 || oss.parameters.at(0)<0)
+ if(oss.command != getCommand() || oss.parameters.size()<3)
return false;
return true;
}
diff --git a/src/oss2db/CtfElimination2Db.cpp b/src/oss2db/CtfElimination2Db.cpp
new file mode 100644
index 0000000..db0fac1
--- /dev/null
+++ b/src/oss2db/CtfElimination2Db.cpp
@@ -0,0 +1,30 @@
+/*
+ * File: CtfElimination2Db.cpp
+ * Author: poul
+ *
+ * Created on 21. januar 2011, 21:12
+ */
+
+#include "CtfElimination2Db.hpp"
+
+string CtfElimination2Db::getCommand() {
+ return "ELIMINATION";
+}
+
+bool CtfElimination2Db::canProcess(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<3 )
+ return false;
+ return true;
+}
+
+void CtfElimination2Db::process(OaStatStruct oss) {
+ if(!canProcess(oss))
+ return; //Invalid oss
+
+ string player = "";
+ if(oss.parameters.at(1)!=-1)
+ player= clientIdMap[oss.parameters.at(1)];
+
+ dp->addCtfElimination(oss.second,oss.parameters.at(0) /*roundnumber*/,
+ player,oss.parameters.at(2) /*team*/, oss.parameters.at(3) /*event*/);
+}
diff --git a/src/oss2db/CtfElimination2Db.hpp b/src/oss2db/CtfElimination2Db.hpp
new file mode 100644
index 0000000..4587fa2
--- /dev/null
+++ b/src/oss2db/CtfElimination2Db.hpp
@@ -0,0 +1,27 @@
+/*
+ * File: CtfElimination2Db.hpp
+ * Author: poul
+ *
+ * Created on 21. januar 2011, 21:12
+ */
+
+#ifndef _CTFELIMINATION2DB_HPP
+#define _CTFELIMINATION2DB_HPP
+
+
+#include "struct2db.h"
+#include "../local.h"
+
+class CtfElimination2Db : Struct2Db {
+public:
+ string getCommand();
+ bool canProcess(OaStatStruct oss);
+
+ void process(OaStatStruct oss);
+
+private:
+
+};
+
+#endif /* _CTFELIMINATION2DB_HPP */
+
diff --git a/src/oss2db/Elimination2Db.cpp b/src/oss2db/Elimination2Db.cpp
index 1439fba..0aaa73e 100644
--- a/src/oss2db/Elimination2Db.cpp
+++ b/src/oss2db/Elimination2Db.cpp
@@ -13,7 +13,7 @@ string Elimination2Db::getCommand() {
}
bool Elimination2Db::canProcess(OaStatStruct oss) {
- if(oss.command != getCommand() || oss.parameters.size()<3 || oss.parameters.at(0)<0 )
+ if(oss.command != getCommand() || oss.parameters.size()<3 )
return false;
return true;
}
diff --git a/src/oss2db/Point2Db.cpp b/src/oss2db/Point2Db.cpp
index 48c6f4d..7f2b97d 100644
--- a/src/oss2db/Point2Db.cpp
+++ b/src/oss2db/Point2Db.cpp
@@ -25,4 +25,4 @@ void Point2Db::process(OaStatStruct oss) {
string player = clientIdMap[oss.parameters.at(0)];
dp->addScoreInfo(oss.second,player,oss.parameters.at(1));
-}
\ No newline at end of file
+}