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