X-Git-Url: https://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fturrets%2Fsv_turrets.qh;h=8273e54dd1ba31b289a6a39240f8148147f66362;hb=5bc5a27a227b1bac27a153847d04571f54703171;hp=29d08c6290fd6a0699204197e2484283b591c669;hpb=edf01df130d0d1877461561178b8833a9ab6051c;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/turrets/sv_turrets.qh b/qcsrc/common/turrets/sv_turrets.qh index 29d08c6290..8273e54dd1 100644 --- a/qcsrc/common/turrets/sv_turrets.qh +++ b/qcsrc/common/turrets/sv_turrets.qh @@ -1,5 +1,6 @@ -#ifndef SV_TURRETS_H -#define SV_TURRETS_H +#pragma once + +#include entity turret_projectile(entity actor, Sound _snd, float _size, float _health, float _death, float _proj_type, float _cull, float _cli_anim); void turret_projectile_explode(entity this); @@ -8,8 +9,16 @@ bool turret_firecheck(entity this); entity turret_select_target(entity this); // turret fields + +#define X(class, prefix, fld, type) .type fld; +TR_PROPS_COMMON(X, , ) +#undef X +/* +.float shot_volly; // smaller than 1 = shoot # times at target +.float shot_volly_refire; // refire after completed volly +*/ + .float ticrate; // interal ai think rate -.vector aim_idle; // where to aim while idle .entity tur_head; // top part of the turret .entity tur_defend; // defend this entity .vector tur_shotorg; // shot origin @@ -21,36 +30,11 @@ entity turret_select_target(entity this); .float tur_dist_impact_to_aimpos; // distance impact<->aim .float volly_counter; // decrement counter from .shot_volly to 0 -.float shot_refire; // attack refire -.float shot_speed; // projectile speed -.float shot_spread; // inaccuracy -.float shot_dmg; // core damage of projectile -.float shot_radius; // projectile damage radius -.float shot_force; // projectile damage force -.float shot_volly; // smaller than 1 = shoot # times at target -.float shot_volly_refire; // refire after completed volly - -.float target_range; -.float target_range_min; -.float target_range_optimal; - -.float target_select_rangebias; -.float target_select_samebias; -.float target_select_anglebias; -.float target_select_missilebias; -.float target_select_playerbias; .float target_select_time; // last time turret had a valid target .float target_validate_time; // throttle re-validation of current target -.float aim_firetolerance_dist; -.float aim_speed; -.float aim_maxpitch; -.float aim_maxrotate; .float ammo; // current ammo -.float ammo_recharge; // recharge rate -.float ammo_max; // maximum ammo - .vector idle_aim; /// Map time control over pain inflicted @@ -69,13 +53,9 @@ entity turret_select_target(entity this); .float turret_scale_respawn; // tracking type -.float track_type; const float TFL_TRACKTYPE_STEPMOTOR = 1; // hard angle increments, ugly for fast turning with best accuracy const float TFL_TRACKTYPE_FLUIDPRECISE = 2; // smooth absolute movement, looks OK with fair accuracy const float TFL_TRACKTYPE_FLUIDINERTIA = 3; // simulated inertia ("wobbly" mode), worst accuracy, depends on below flags -.float track_accel_pitch; -.float track_accel_rotate; -.float track_blendrate; void turret_respawn(entity this); @@ -89,6 +69,9 @@ void turrets_setframe(entity this, float _frame, float client_only); bool turret_initialize(entity this, Turret tur); +// returns true when box overlaps with a given location +bool turret_closetotarget(entity this, vector targ); + /// Function to use for target evaluation. usualy turret_targetscore_generic .float(entity _turret, entity _target) turret_score_target; @@ -96,6 +79,8 @@ bool turret_initialize(entity this, Turret tur); .entity pathcurrent; +.entity pathgoal; + float turret_count; // debugging @@ -119,5 +104,3 @@ vector tvt_tadv; // turret angle diff vector, updated by a successful call to tu float tvt_thadf; // turret head angle diff float, updated by a successful call to turret_validate_target float tvt_tadf; // turret angle diff float, updated by a successful call to turret_validate_target float tvt_dist; // turret distance, updated by a successful call to turret_validate_target - -#endif