commit a28b6041
Now also with Elimination support
git-svn-id: http://oastat.googlecode.com/svn/trunk@12 a36be8df-c75f-1e49-46ad-4f0ee64bdc62
Changed files
| M | sql/select_statements.usql before |
| M | src/db/Db2DbiXX.cpp before |
| M | src/db/Db2DbiXX.hpp before |
| M | src/db/database.hpp before |
| A | src/oss2db/Elimination2Db.cpp |
| A | src/oss2db/Elimination2Db.hpp |
diff --git a/sql/select_statements.usql b/sql/select_statements.usql
index fa21102..3d509ba 100644
--- a/sql/select_statements.usql
+++ b/sql/select_statements.usql
@@ -30,7 +30,8 @@ AND games.mapname = 'dm4ish';
-- Top players on dm4ish
SELECT p.nickname, count(0) AS kills FROM OASTAT_PLAYERS p, OASTAT_KILLS k
-WHERE k.attacker = p.guid AND k.gamenumber IN (SELECT gamenumber FROM OASTAT_GAMES WHERE mapname = 'dm4ish') GROUP BY p.guid,p.nickname ORDER BY kills DESC;
+WHERE k.attacker = p.guid AND k.gamenumber IN (SELECT gamenumber FROM OASTAT_GAMES WHERE LOWER(mapname) = 'dm4ish')
+GROUP BY p.guid,p.nickname ORDER BY kills DESC;
--Top killers on the server
SELECT p.nickname, count(0) FROM OASTAT_PLAYERS p, OASTAT_KILLS k
diff --git a/src/db/Db2DbiXX.cpp b/src/db/Db2DbiXX.cpp
index 5f29c7c..4b4023f 100644
--- a/src/db/Db2DbiXX.cpp
+++ b/src/db/Db2DbiXX.cpp
@@ -136,6 +136,11 @@ void Db2DbiXX::addCtf1f(int second, string player, int team, int event) {
DebugMessage("addCtf1f");
}
+void Db2DbiXX::addElimination(int second, int roundnumber, int team, int event) {
+ *sql << ELIMINATION,gamenumber,second,team,event,roundnumber,exec();
+ DebugMessage("addElimination");
+}
+
int Db2DbiXX::getNextGameNumber() {
int result = -1;
row r;
diff --git a/src/db/Db2DbiXX.hpp b/src/db/Db2DbiXX.hpp
index e6e4f8e..5ac15e2 100644
--- a/src/db/Db2DbiXX.hpp
+++ b/src/db/Db2DbiXX.hpp
@@ -34,6 +34,7 @@ public:
void addScoreInfo(int second, string player, int score);
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);
private:
session *sql;
transaction *commitlock;
diff --git a/src/db/database.hpp b/src/db/database.hpp
index dbf71dc..9f46b1d 100644
--- a/src/db/database.hpp
+++ b/src/db/database.hpp
@@ -142,6 +142,8 @@ class Database {
* @param event
*/
virtual void addCtf1f(int second, string player, int team, int event) = 0;
+
+ virtual void addElimination(int second, int roundnumber, int team, int event) = 0;
};
#endif //_DATABASE_H
diff --git a/src/oss2db/Elimination2Db.cpp b/src/oss2db/Elimination2Db.cpp
new file mode 100644
index 0000000..aed7988
--- /dev/null
+++ b/src/oss2db/Elimination2Db.cpp
@@ -0,0 +1,28 @@
+/*
+ * File: Elimination2Db.cpp
+ * Author: poul
+ *
+ * Created on 15. januar 2011, 16:21
+ */
+
+#include "Elimination2Db.hpp"
+
+Elimination2Db::Elimination2Db() {
+}
+
+Elimination2Db::Elimination2Db(const Elimination2Db& orig) {
+}
+
+Elimination2Db::~Elimination2Db() {
+}
+
+string Elimination2Db::getCommand() {
+ return "ELIMINATION";
+}
+
+void Elimination2Db::process(OaStatStruct oss) {
+ if(oss.command != getCommand() || oss.parameters.size()<3 || oss.parameters.at(0)<0)
+ return; //Invalid oss
+
+ dp->addElimination(oss.second,oss.parameters.at(0) /*roundnumber*/,oss.parameters.at(1) /*team*/, oss.parameters.at(2) /*event*/);
+}
\ No newline at end of file
diff --git a/src/oss2db/Elimination2Db.hpp b/src/oss2db/Elimination2Db.hpp
new file mode 100644
index 0000000..6d440ab
--- /dev/null
+++ b/src/oss2db/Elimination2Db.hpp
@@ -0,0 +1,28 @@
+/*
+ * File: Elimination2Db.hpp
+ * Author: poul
+ *
+ * Created on 15. januar 2011, 16:21
+ */
+
+#ifndef _ELIMINATION2DB_HPP
+#define _ELIMINATION2DB_HPP
+
+#include "struct2db.h"
+#include "../local.h"
+
+class Elimination2Db : public Struct2Db {
+public:
+ Elimination2Db();
+ Elimination2Db(const Elimination2Db& orig);
+ virtual ~Elimination2Db();
+
+ string getCommand();
+
+ void process(OaStatStruct oss);
+private:
+
+};
+
+#endif /* _ELIMINATION2DB_HPP */
+