r1895 - branches/nexuiz-2.0/data/qcsrc/server

DONOTREPLY at icculus.org DONOTREPLY at icculus.org
Sat Oct 14 12:59:46 EDT 2006


Author: div0
Date: 2006-10-14 12:59:46 -0400 (Sat, 14 Oct 2006)
New Revision: 1895

Modified:
   branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
   branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
Log:
- slow armor increase fix
- frag redistribution on forced team change


Modified: branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2006-09-21 20:02:59 UTC (rev 1894)
+++ branches/nexuiz-2.0/data/qcsrc/server/cl_client.qc	2006-10-14 16:59:46 UTC (rev 1895)
@@ -1126,6 +1126,16 @@
 		self.effects = self.effects | (EF_ADDITIVE | EF_FULLBRIGHT);
 }
 
+float CalcRegen(float current, float stable, float maxv, float regenfactor)
+{
+	if(current > stable)
+		return current;
+	else if(current > stable - 0.25) // when close enough, "snap"
+		return stable;
+	else
+		return bound(0, current + (stable - current) * regenfactor * frametime, maxv);
+}
+
 void player_regen (void)
 {
 	float maxh, maxa, limith, limita, max_mod, regen_mod, rot_mod, limit_mod;
@@ -1181,10 +1191,8 @@
 		}
 		if (time > self.pauseregen_finished)
 		{
-			if (self.health < maxh)
-				self.health = bound(0, self.health + (maxh- self.health) * regen_mod*cvar("g_balance_health_regen") * frametime  + 0.001, 1000);
-			if (self.armorvalue < maxa)
-				self.armorvalue = bound(0, self.armorvalue + (maxa - self.armorvalue) * cvar("g_balance_armor_regen") * frametime  + 0.001, 1000);
+			self.health = CalcRegen(self.health, maxh, 1000, regen_mod * cvar("g_balance_health_regen"));
+			self.armorvalue = CalcRegen(self.armorvalue, maxa, 1000, cvar("g_balance_armor_regen"));
 		}
 	}
 	else
@@ -1197,10 +1205,8 @@
 			self.armorvalue = bound(0, self.armorvalue + (maxa - self.armorvalue) * cvar("g_balance_armor_rot") * frametime, 1000);
 		if (time > self.pauseregen_finished)
 		{
-			if (self.health < maxh)
-				 self.health = bound(0, self.health + (maxh - self.health) * cvar("g_balance_health_regen") * frametime + 0.001, 1000);
-			if (self.armorvalue < maxa)
-				self.armorvalue = bound(0, self.armorvalue + (maxa - self.armorvalue) * cvar("g_balance_armor_regen") * frametime + 0.001, 1000);
+			self.health = CalcRegen(self.health, maxh, 1000, cvar("g_balance_health_regen"));
+			self.armorvalue = CalcRegen(self.armorvalue, maxa, 1000, cvar("g_balance_armor_regen"));
 		}
 	}
 

Modified: branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc
===================================================================
--- branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2006-09-21 20:02:59 UTC (rev 1894)
+++ branches/nexuiz-2.0/data/qcsrc/server/teamplay.qc	2006-10-14 16:59:46 UTC (rev 1895)
@@ -1057,6 +1057,7 @@
 	}
 
 	// move the player to the new team
+	TeamchangeFrags(selected);
 	SetPlayerTeam(selected, smallestteam, source_team, FALSE);
 
 	if(selected.deadflag == DEAD_NO)




More information about the nexuiz-commits mailing list