From: Samual Lenks <samual@xonotic.org>
Date: Fri, 21 Sep 2012 23:34:28 +0000 (-0400)
Subject: Move the macro to be global (cleaner code for EVERYBODY :D)
X-Git-Tag: xonotic-v0.7.0~218^2~6
X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=8238f839569d52521639c7e232a88b32a708de37;p=xonotic%2Fxonotic-data.pk3dir.git

Move the macro to be global (cleaner code for EVERYBODY :D)
---

diff --git a/qcsrc/server/g_damage.qc b/qcsrc/server/g_damage.qc
index f4fe7615f..d2cc61db3 100644
--- a/qcsrc/server/g_damage.qc
+++ b/qcsrc/server/g_damage.qc
@@ -1048,10 +1048,7 @@ float RadiusDamage (entity inflictor, entity attacker, float coredamage, float e
 						myblastorigin = WarpZone_TransformOrigin(targ, blastorigin);
 
 						// if it's a player, use the view origin as reference
-						if (targ.classname == "player")
-							center = targ.origin + targ.view_ofs;
-						else
-							center = targ.origin + (targ.mins + targ.maxs) * 0.5;
+						center = CENTER_OR_VIEWOFS(targ);
 
 						force = normalize(center - myblastorigin);
 						force = force * (finaldmg / coredamage) * forceintensity;
diff --git a/qcsrc/server/miscfunctions.qc b/qcsrc/server/miscfunctions.qc
index 726f2b503..20828800d 100644
--- a/qcsrc/server/miscfunctions.qc
+++ b/qcsrc/server/miscfunctions.qc
@@ -99,6 +99,8 @@ string STR_OBSERVER = "observer";
 #define FOR_EACH_REALPLAYER(v) FOR_EACH_REALCLIENT(v) if(v.classname == STR_PLAYER)
 #endif
 
+#define CENTER_OR_VIEWOFS(ent) (ent.origin + ((ent.classname == STR_PLAYER) ? ent.view_ofs : ((ent.mins + ent.maxs) * 0.5)))
+
 // copies a string to a tempstring (so one can strunzone it)
 string strcat1(string s) = #115; // FRIK_FILE
 
diff --git a/qcsrc/server/mutators/gamemode_ctf.qc b/qcsrc/server/mutators/gamemode_ctf.qc
index 7467346a1..0284c9f8c 100644
--- a/qcsrc/server/mutators/gamemode_ctf.qc
+++ b/qcsrc/server/mutators/gamemode_ctf.qc
@@ -1826,8 +1826,8 @@ MUTATOR_HOOKFUNCTION(ctf_PlayerUseKey)
 				if(!head.speedrunning && !head.vehicle)
 				{
 					// if it's a player, use the view origin as reference (stolen from RadiusDamage functions in g_damage.qc) 
-					vector head_center = WarpZone_UnTransformOrigin(head, PLAYER_CENTER(head));
-					vector passer_center = PLAYER_CENTER(player);
+					vector head_center = WarpZone_UnTransformOrigin(head, CENTER_OR_VIEWOFS(head));
+					vector passer_center = CENTER_OR_VIEWOFS(player);
 					
 					if(ctf_CheckPassDirection(head_center, passer_center, player.v_angle, head.WarpZone_findradius_nearest))
 					{
@@ -1850,7 +1850,7 @@ MUTATOR_HOOKFUNCTION(ctf_PlayerUseKey)
 						{
 							if(closest_target)
 							{
-								vector closest_target_center = WarpZone_UnTransformOrigin(closest_target, PLAYER_CENTER(closest_target));
+								vector closest_target_center = WarpZone_UnTransformOrigin(closest_target, CENTER_OR_VIEWOFS(closest_target));
 								if(vlen(passer_center - head_center) < vlen(passer_center - closest_target_center))
 									{ closest_target = head; }
 							}
diff --git a/qcsrc/server/mutators/gamemode_ctf.qh b/qcsrc/server/mutators/gamemode_ctf.qh
index a6d79c2a2..7ed3dfef0 100644
--- a/qcsrc/server/mutators/gamemode_ctf.qh
+++ b/qcsrc/server/mutators/gamemode_ctf.qh
@@ -100,7 +100,7 @@ float ctf_captimerecord; // record time for capturing the flag
 .float max_flag_health;
 .float next_take_time;
 
-// passing properties
+// passing/throwing properties
 .float pass_distance;
 .entity pass_sender;
 .entity pass_target;
@@ -108,9 +108,6 @@ float ctf_captimerecord; // record time for capturing the flag
 .float throw_prevtime;
 .float throw_count;
 
-// passing macros
-#define PLAYER_CENTER(ent) (ent.origin + ((ent.classname == "player") ? ent.view_ofs : ((ent.mins + ent.maxs) * 0.5)))
-
 // CaptureShield: If the player is too bad to be allowed to capture, shield them from taking the flag.
 .float ctf_captureshielded; // set to 1 if the player is too bad to be allowed to capture
 float ctf_captureshield_min_negscore; // punish at -20 points