[nexuiz-commits] r8087 - trunk/data/qcsrc/client

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Oct 10 14:12:12 EDT 2009


Author: fruitiex
Date: 2009-10-10 14:12:12 -0400 (Sat, 10 Oct 2009)
New Revision: 8087

Modified:
   trunk/data/qcsrc/client/Defs.qc
   trunk/data/qcsrc/client/Main.qc
   trunk/data/qcsrc/client/sbar.qc
Log:
clientside personal records system for race/cts


Modified: trunk/data/qcsrc/client/Defs.qc
===================================================================
--- trunk/data/qcsrc/client/Defs.qc	2009-10-09 20:54:09 UTC (rev 8086)
+++ trunk/data/qcsrc/client/Defs.qc	2009-10-10 18:12:12 UTC (rev 8087)
@@ -221,6 +221,7 @@
 
 // database for misc stuff
 float tempdb;
+float ClientProgsDB;
 vector hook_shotorigin;
 
 #ifdef BLURTEST

Modified: trunk/data/qcsrc/client/Main.qc
===================================================================
--- trunk/data/qcsrc/client/Main.qc	2009-10-09 20:54:09 UTC (rev 8086)
+++ trunk/data/qcsrc/client/Main.qc	2009-10-10 18:12:12 UTC (rev 8087)
@@ -65,6 +65,7 @@
 
 	binddb = db_create();
 	tempdb = db_create();
+	ClientProgsDB = db_load("client.db");
 	compressShortVector_init();
 
 	drawfont = 0;
@@ -167,6 +168,8 @@
 	remove(players);
 	db_close(binddb);
 	db_close(tempdb);
+	db_save(ClientProgsDB, "client.db");
+	db_close(ClientProgsDB);
 
 	cvar_clientsettemp_restore();
 

Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc	2009-10-09 20:54:09 UTC (rev 8086)
+++ trunk/data/qcsrc/client/sbar.qc	2009-10-10 18:12:12 UTC (rev 8087)
@@ -33,6 +33,7 @@
 void CSQC_ctf_hudreset();
 void CSQC_ctf_hud();
 void CSQC_nb_hud();
+void CSQC_race_hud();
 void MapVote_Draw();
 void Sbar_FinaleOverlay()
 {
@@ -2712,6 +2713,8 @@
 			CSQC_ctf_hud();
 		else if(gametype == GAME_NEXBALL)
 			CSQC_nb_hud();
+		else if(gametype == GAME_CTS || gametype == GAME_RACE)
+			CSQC_race_hud();
 	}
 	return;
 }
@@ -3014,3 +3017,32 @@
 	if (stat_items & IT_KEY1)
 		drawpic(pos, "gfx/hud/sb_nexball_carrying", '80 34 0', '1 1 1', 1, DRAWFLAG_NORMAL);
 }
+
+void CSQC_race_hud(void) 
+{
+	entity me;
+	me = (spectatee_status > 0) ? playerslots[spectatee_status - 1] : playerslots[player_localentnum - 1];
+	float crecordtime, score;
+	score = me.(scores[ps_primary]);
+
+	string rr;
+	if(gametype == GAME_CTS)
+		rr = CTS_RECORD;
+	else
+		rr = RACE_RECORD;
+	crecordtime = stof(db_get(ClientProgsDB, strcat(shortmapname, rr, "time")));
+
+	if(score && score < crecordtime || !crecordtime)
+		db_put(ClientProgsDB, strcat(shortmapname, rr, "time"), ftos(score));
+
+	vector pos;
+	pos_x = 4;
+	pos_y = vid_conheight - 46;
+
+	float pmin, psec, pmsec;
+	pmin = floor(crecordtime/(60 * TIME_FACTOR));
+	psec = floor((crecordtime - pmin*(60 * TIME_FACTOR))/TIME_FACTOR);
+	pmsec = crecordtime - pmin*60*TIME_FACTOR - psec*TIME_FACTOR;
+
+	drawstring(pos, strcat("Personal best: ", ftos(pmin),":", ftos(psec),":",ftos(pmsec)), '12 12 0', '1 1 1', sbar_alpha_fg, DRAWFLAG_NORMAL);
+}



More information about the nexuiz-commits mailing list