X-Git-Url: http://git.xonotic.org/?a=blobdiff_plain;ds=sidebyside;f=qcsrc%2Fserver%2Ftturrets%2Fsystem%2Fsystem_aimprocs.qc;h=c3dbe55a4848d9d5d0505192a77cfab3057cd77c;hb=e95cf471e2b4a66a099aff48cad52b3b37951518;hp=80344a9e1f211bd2501911c7dc6272f39659264b;hpb=2f2147a6c665f04d1b6e860dce8a8a093e7d2b9e;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/server/tturrets/system/system_aimprocs.qc b/qcsrc/server/tturrets/system/system_aimprocs.qc index 80344a9e1..c3dbe55a4 100644 --- a/qcsrc/server/tturrets/system/system_aimprocs.qc +++ b/qcsrc/server/tturrets/system/system_aimprocs.qc @@ -3,48 +3,36 @@ supports: TFL_AIM_NO -TFL_AIM_GROUND2 +TFL_AIM_GROUNDGROUND TFL_AIM_LEAD TFL_AIM_SHOTTIMECOMPENSATE -TFL_AIM_INFRONT -TFL_AIM_BEHIND - -not supported: -TFL_AIM_BALISTIC - -removed -TFL_AIM_ZEASE -TFL_AIM_GROUND */ vector turret_stdproc_aim_generic() { - vector pre_pos,prep; - float distance,impact_time,i,mintime; + vector pre_pos, prep; + float distance, impact_time, i, mintime; turret_tag_fire_update(); if(self.aim_flags & TFL_AIM_SIMPLE) return real_origin(self.enemy); - mintime = max(self.attack_finished_single - time,0) + sys_frametime ; + mintime = max(self.attack_finished_single - time,0) + sys_frametime; // Baseline pre_pos = real_origin(self.enemy); - if (self.aim_flags & TFL_AIM_INFRONT) // Aim a bit in front of the target - pre_pos = pre_pos + (normalize(self.enemy.velocity) * 64); - - if (self.aim_flags & TFL_AIM_BEHIND) // Aim a bit behind the target - pre_pos = pre_pos - (normalize(self.enemy.velocity) * 32); - // Lead? if (self.aim_flags & TFL_AIM_LEAD) - { + { if (self.aim_flags & TFL_AIM_SHOTTIMECOMPENSATE) // Need to conpensate for shot traveltime { // FIXME: this cant be the best way to do this.. prep = pre_pos; +#ifdef GMQCC + impact_time = 0; +#endif for(i = 0; i < 4; ++i) { distance = vlen(prep - self.tur_shotorg); @@ -55,7 +43,7 @@ vector turret_stdproc_aim_generic() prep = pre_pos + (self.enemy.velocity * (impact_time + mintime)); if(self.aim_flags & TFL_AIM_ZPREDICT) - if not(self.enemy.flags & FL_ONGROUND) + if (!(self.enemy.flags & FL_ONGROUND)) if(self.enemy.movetype == MOVETYPE_WALK || self.enemy.movetype == MOVETYPE_TOSS || self.enemy.movetype == MOVETYPE_BOUNCE) { float vz; @@ -72,8 +60,8 @@ vector turret_stdproc_aim_generic() else pre_pos = pre_pos + self.enemy.velocity * mintime; } - - if(self.aim_flags & TFL_AIM_GROUND2) + + if(self.aim_flags & TFL_AIM_GROUNDGROUND) { //tracebox(pre_pos + '0 0 32',self.enemy.mins,self.enemy.maxs,pre_pos -'0 0 64',MOVE_WORLDONLY,self.enemy); traceline(pre_pos + '0 0 32',pre_pos -'0 0 64',MOVE_WORLDONLY,self.enemy);