r3921 - in trunk/data/qcsrc: client common server
DONOTREPLY at icculus.org
DONOTREPLY at icculus.org
Sat Jul 26 02:57:31 EDT 2008
Author: div0
Date: 2008-07-26 02:57:31 -0400 (Sat, 26 Jul 2008)
New Revision: 3921
Modified:
trunk/data/qcsrc/client/sbar.qc
trunk/data/qcsrc/common/constants.qh
trunk/data/qcsrc/server/cl_client.qc
trunk/data/qcsrc/server/keyhunt.qc
trunk/data/qcsrc/server/scores.qc
trunk/data/qcsrc/server/teamplay.qc
Log:
LMS works now as game mode, but somehow sorting is broken... ???
Modified: trunk/data/qcsrc/client/sbar.qc
===================================================================
--- trunk/data/qcsrc/client/sbar.qc 2008-07-26 06:14:53 UTC (rev 3920)
+++ trunk/data/qcsrc/client/sbar.qc 2008-07-26 06:57:31 UTC (rev 3921)
@@ -136,27 +136,28 @@
{
float i, f, primary_prio, secondary_prio;
- primary_prio = secondary_prio = -1;
+ ps_primary = ps_secondary = ts_primary = ts_secondary = -1;
for(i = 0; i < MAX_SCORE; ++i)
{
f = (scores_flags[i] & SFL_SORT_PRIO_MASK);
- if(f > primary_prio) {
- ps_secondary = ps_primary;
+ if(f == SFL_SORT_PRIO_PRIMARY)
ps_primary = i;
- } else if(f > secondary_prio)
+ if(f == SFL_SORT_PRIO_SECONDARY)
ps_secondary = i;
}
+ if(ps_secondary == -1)
+ ps_secondary = ps_primary;
- primary_prio = secondary_prio = -1;
for(i = 0; i < MAX_TEAMSCORE; ++i)
{
f = (teamscores_flags[i] & SFL_SORT_PRIO_MASK);
- if(f > primary_prio) {
- ts_secondary = ts_primary;
+ if(f == SFL_SORT_PRIO_PRIMARY)
ts_primary = i;
- } else if(f > secondary_prio)
+ if(f == SFL_SORT_PRIO_SECONDARY)
ts_secondary = i;
}
+ if(ts_secondary == -1)
+ ts_secondary = ts_primary;
Cmd_Sbar_SetFields(0);
}
@@ -394,7 +395,7 @@
vector sbar_field_rgb;
string Sbar_GetField(entity pl, float field)
{
- float tmp, num, denom;
+ float tmp, num, denom, f;
string str;
sbar_field_rgb = '1 1 1';
switch(field)
@@ -427,7 +428,18 @@
return str;
default:
- return ftos(pl.(scores[field]));
+ tmp = pl.(scores[field]);
+ f = scores_flags[field];
+ if(field == ps_primary)
+ sbar_field_rgb = '1 1 0';
+ else if(field == ps_secondary)
+ sbar_field_rgb = '1 0 1';
+ else
+ sbar_field_rgb = '1 1 1';
+ if(!tmp)
+ if(f & SFL_HIDE_ZERO)
+ return "";
+ return ftos(tmp);
}
//return "error";
}
Modified: trunk/data/qcsrc/common/constants.qh
===================================================================
--- trunk/data/qcsrc/common/constants.qh 2008-07-26 06:14:53 UTC (rev 3920)
+++ trunk/data/qcsrc/common/constants.qh 2008-07-26 06:57:31 UTC (rev 3921)
@@ -197,16 +197,19 @@
/**
* Lower scores are better (e.g. deaths)
*/
-#define SFL_DECREASING 1
+#define SFL_DECREASING 1
/**
+ * Don't show zero values as scores
+ */
+#define SFL_HIDE_ZERO 2
+
+/**
* Scoring priority (NOTE: PRIMARY is used for fraglimit)
*/
-#define SFL_SORT_PRIO_LOW 2
-#define SFL_SORT_PRIO_MED 4
-#define SFL_SORT_PRIO_HIGH 8
-#define SFL_SORT_PRIO_PRIMARY 14
-#define SFL_SORT_PRIO_MASK 14
+#define SFL_SORT_PRIO_SECONDARY 4
+#define SFL_SORT_PRIO_PRIMARY 8
+#define SFL_SORT_PRIO_MASK 12
/**
* Score indices
Modified: trunk/data/qcsrc/server/cl_client.qc
===================================================================
--- trunk/data/qcsrc/server/cl_client.qc 2008-07-26 06:14:53 UTC (rev 3920)
+++ trunk/data/qcsrc/server/cl_client.qc 2008-07-26 06:57:31 UTC (rev 3921)
@@ -462,6 +462,14 @@
Spawnqueue_Remove(self);
}
}
+ else if(g_lms)
+ {
+ // Only if the player cannot play at all
+ if(PlayerScore_Add(self, SP_LMS_PLACE, 0) == 666)
+ self.frags = -666;
+ else
+ self.frags = -667;
+ }
else
self.frags = -666;
Modified: trunk/data/qcsrc/server/keyhunt.qc
===================================================================
--- trunk/data/qcsrc/server/keyhunt.qc 2008-07-26 06:14:53 UTC (rev 3920)
+++ trunk/data/qcsrc/server/keyhunt.qc 2008-07-26 06:57:31 UTC (rev 3921)
@@ -975,14 +975,14 @@
ScoreInfo_Init(kh_teams);
ScoreInfo_SetLabel_TeamScore (ST_SCORE, "score", SFL_SORT_PRIO_PRIMARY);
- ScoreInfo_SetLabel_TeamScore (ST_KH_CAPS, "caps", SFL_SORT_PRIO_HIGH);
+ ScoreInfo_SetLabel_TeamScore (ST_KH_CAPS, "caps", SFL_SORT_PRIO_SECONDARY);
ScoreInfo_SetLabel_PlayerScore(SP_KILLS, "kills", 0);
ScoreInfo_SetLabel_PlayerScore(SP_DEATHS, "deaths", 0);
ScoreInfo_SetLabel_PlayerScore(SP_SUICIDES, "suicides", SFL_DECREASING);
ScoreInfo_SetLabel_PlayerScore(SP_SCORE, "score", SFL_SORT_PRIO_PRIMARY);
ScoreInfo_SetLabel_PlayerScore(SP_KH_COLLECT, "collect", 0);
ScoreInfo_SetLabel_PlayerScore(SP_KH_LOSEKEY, "losekey", SFL_DECREASING);
- ScoreInfo_SetLabel_PlayerScore(SP_KH_CAPS, "caps", SFL_SORT_PRIO_HIGH);
+ ScoreInfo_SetLabel_PlayerScore(SP_KH_CAPS, "caps", SFL_SORT_PRIO_SECONDARY);
ScoreInfo_SetLabel_PlayerScore(SP_KH_PUSH, "push", 0);
ScoreInfo_SetLabel_PlayerScore(SP_KH_DESTROYED, "destroyed", SFL_DECREASING);
ScoreInfo_SetLabel_PlayerScore(SP_KH_KCFRAG, "kcfrag", 0);
Modified: trunk/data/qcsrc/server/scores.qc
===================================================================
--- trunk/data/qcsrc/server/scores.qc 2008-07-26 06:14:53 UTC (rev 3920)
+++ trunk/data/qcsrc/server/scores.qc 2008-07-26 06:57:31 UTC (rev 3921)
@@ -30,9 +30,9 @@
previous_y = fieldflags & SFL_SORT_PRIO_MASK;
if(fieldflags & SFL_DECREASING)
+ previous_x = (t2.field - t1.field);
+ else
previous_x = (t1.field - t2.field);
- else
- previous_x = (t2.field - t1.field);
return previous;
}
@@ -177,13 +177,15 @@
entity sk;
float i;
- if(!teamscores_entities_count)
- {
- sk = player.scorekeeper;
- for(i = 0; i < MAX_SCORE; ++i)
- sk.(scores[i]) = 0;
- sk.Version += 1;
- }
+ if(teamscores_entities_count)
+ return;
+ if(g_lms)
+ return;
+
+ sk = player.scorekeeper;
+ for(i = 0; i < MAX_SCORE; ++i)
+ sk.(scores[i]) = 0;
+ sk.Version += 1;
}
void Score_ClearAll()
Modified: trunk/data/qcsrc/server/teamplay.qc
===================================================================
--- trunk/data/qcsrc/server/teamplay.qc 2008-07-26 06:14:53 UTC (rev 3920)
+++ trunk/data/qcsrc/server/teamplay.qc 2008-07-26 06:57:31 UTC (rev 3921)
@@ -224,8 +224,8 @@
ScoreInfo_SetLabel_PlayerScore(SP_DEATHS, "deaths", 0);
ScoreInfo_SetLabel_PlayerScore(SP_SUICIDES, "suicides", SFL_DECREASING);
// do not define SP_SCORE for LMS
- ScoreInfo_SetLabel_PlayerScore(SP_LMS_LIVES, "lives", SFL_SORT_PRIO_MED);
- ScoreInfo_SetLabel_PlayerScore(SP_LMS_PLACE, "place", SFL_SORT_PRIO_PRIMARY);
+ ScoreInfo_SetLabel_PlayerScore(SP_LMS_LIVES, "lives", SFL_SORT_PRIO_SECONDARY);
+ ScoreInfo_SetLabel_PlayerScore(SP_LMS_PLACE, "place", SFL_DECREASING | SFL_HIDE_ZERO | SFL_SORT_PRIO_PRIMARY);
}
else if(game == GAME_ARENA || cvar("g_arena"))
{
More information about the nexuiz-commits
mailing list