r3263 - in trunk/data/qcsrc: common server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Thu Jan 24 17:14:25 EST 2008
Author: div0
Date: 2008-01-24 17:14:23 -0500 (Thu, 24 Jan 2008)
New Revision: 3263
Modified:
trunk/data/qcsrc/common/util.qc
trunk/data/qcsrc/common/util.qh
trunk/data/qcsrc/server/gamecommand.qc
Log:
new command "dumpdb", makes a simpler format (easier to process) that can still be loaded by "loaddb"
Modified: trunk/data/qcsrc/common/util.qc
===================================================================
--- trunk/data/qcsrc/common/util.qc 2008-01-24 22:04:39 UTC (rev 3262)
+++ trunk/data/qcsrc/common/util.qc 2008-01-24 22:14:23 UTC (rev 3263)
@@ -289,6 +289,23 @@
return db;
}
+void db_dump(float db, string pFilename)
+{
+ float fh, i, j, n, m;
+ fh = fopen(pFilename, FILE_WRITE);
+ if(fh < 0)
+ error(strcat("Can't dump DB to ", pFilename));
+ n = buf_getsize(db);
+ fputs(fh, "0\n");
+ for(i = 0; i < n; ++i)
+ {
+ m = tokenizebyseparator(bufstr_get(db, i), "\\");
+ for(j = 2; j < m; j += 2)
+ fputs(fh, strcat("\\", argv(j-1), "\\", argv(j), "\n"));
+ }
+ fclose(fh);
+}
+
void db_close(float db)
{
buf_del(db);
Modified: trunk/data/qcsrc/common/util.qh
===================================================================
--- trunk/data/qcsrc/common/util.qh 2008-01-24 22:04:39 UTC (rev 3262)
+++ trunk/data/qcsrc/common/util.qh 2008-01-24 22:14:23 UTC (rev 3263)
@@ -38,6 +38,7 @@
// database (NOTE: keys are case sensitive)
void db_save(float db, string filename);
+void db_dump(float db, string pFilename);
float db_create();
float db_load(string filename);
void db_close(float db);
Modified: trunk/data/qcsrc/server/gamecommand.qc
===================================================================
--- trunk/data/qcsrc/server/gamecommand.qc 2008-01-24 22:04:39 UTC (rev 3262)
+++ trunk/data/qcsrc/server/gamecommand.qc 2008-01-24 22:14:23 UTC (rev 3263)
@@ -27,6 +27,7 @@
print(" printstats\n");
print(" make_mapinfo\n");
print(" savedb filename\n");
+ print(" dumpdb filename\n");
print(" loaddb filename\n");
GameCommand_Ban("help");
GameCommand_Generic("help");
@@ -93,12 +94,25 @@
}
if(argv(0) == "savedb") if(argc == 2)
+ {
db_save(ServerProgsDB, argv(1));
+ print("DB saved.\n");
+ return;
+ }
+ if(argv(0) == "dumpdb") if(argc == 2)
+ {
+ db_dump(ServerProgsDB, argv(1));
+ print("DB dumped.\n");
+ return;
+ }
+
if(argv(0) == "loaddb") if(argc == 2)
{
db_close(ServerProgsDB);
ServerProgsDB = db_load(argv(1));
+ print("DB loaded.\n");
+ return;
}
print("Invalid command. For a list of supported commands, try sv_cmd help.\n");
More information about the nexuiz-commits
mailing list