From: Samual Lenks 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