]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/weapons/hitplot.qc
Merge branch 'master' into martin-t/mg-solidpen
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / weapons / hitplot.qc
index 2a0fad7dee0c832e086d8feb2ff85ea347d7f3d3..e79e9ddb6413bb2b86e98e84e4e04793fa1ca5a5 100644 (file)
@@ -1,7 +1,8 @@
 #include "hitplot.qh"
 
+#include <server/defs.qh>
+#include <server/miscfunctions.qh>
 #include "../antilag.qh"
-#include "../g_subs.qh"
 #include <common/weapons/_all.qh>
 #include <common/state.qh>
 #include <common/wepent.qh>
@@ -52,29 +53,25 @@ vector W_HitPlotNormalizedUntransform(vector org, entity targ, vector screenforw
        return ret;
 }
 
-void W_HitPlotAnalysis(entity player, .entity weaponentity, vector screenforward, vector screenright, vector screenup)
+void W_HitPlotAnalysis(entity player, entity wep, vector screenforward, vector screenright, vector screenup)
 {
-       vector hitplot;
-       vector org;
-       float lag;
-
-       if(player.hitplotfh >= 0)
+       if(CS(player).hitplotfh >= 0)
        {
-               lag = ANTILAG_LATENCY(player);
+               float lag = ANTILAG_LATENCY(player);
                if(lag < 0.001)
                        lag = 0;
                if(!IS_REAL_CLIENT(player))
                        lag = 0; // only antilag for clients
 
-               org = player.origin + player.view_ofs;
+               vector org = player.origin + player.view_ofs;
                traceline_antilag_force(player, org, org + screenforward * max_shot_distance, MOVE_NORMAL, player, lag);
                if(IS_CLIENT(trace_ent) || IS_MONSTER(trace_ent))
                {
                    entity store = IS_CLIENT(trace_ent) ? CS(trace_ent) : trace_ent;
                        antilag_takeback(trace_ent, store, time - lag);
-                       hitplot = W_HitPlotNormalizedUntransform(org, trace_ent, screenforward, screenright, screenup, trace_endpos);
+                       vector hitplot = W_HitPlotNormalizedUntransform(org, trace_ent, screenforward, screenright, screenup, trace_endpos);
                        antilag_restore(trace_ent, store);
-                       fputs(player.hitplotfh, strcat(ftos(hitplot.x), " ", ftos(hitplot.y), " ", ftos(hitplot.z), " ", ftos(player.(weaponentity).m_switchweapon.m_id), "\n"));
+                       fputs(CS(player).hitplotfh, strcat(ftos(hitplot.x), " ", ftos(hitplot.y), " ", ftos(hitplot.z), " ", ftos(wep.m_id), "\n"));
                        //print(strcat(ftos(hitplot_x), " ", ftos(hitplot_y), " ", ftos(hitplot_z), "\n"));
                }
        }
@@ -84,17 +81,17 @@ void W_HitPlotOpen(entity player)
 {
        if(autocvar_g_hitplots || strhasword(autocvar_g_hitplots_individuals, player.netaddress))
        {
-               player.hitplotfh = fopen(strcat("hits-", matchid, "-", player.netaddress, "-", ftos(player.playerid), ".plot"), FILE_WRITE);
-               fputs(player.hitplotfh, strcat("#name ", playername(player, false), "\n"));
+               CS(player).hitplotfh = fopen(strcat("hits-", matchid, "-", player.netaddress, "-", ftos(player.playerid), ".plot"), FILE_WRITE);
+               fputs(CS(player).hitplotfh, strcat("#name ", playername(player, false), "\n"));
        }
-       else { player.hitplotfh = -1; }
+       else { CS(player).hitplotfh = -1; }
 }
 
 void W_HitPlotClose(entity player)
 {
-       if(player.hitplotfh >= 0)
+       if(CS(player).hitplotfh >= 0)
        {
-               fclose(player.hitplotfh);
-               player.hitplotfh = -1;
+               fclose(CS(player).hitplotfh);
+               CS(player).hitplotfh = -1;
        }
 }