X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=qcsrc%2Fcommon%2Fturrets%2Fsv_turrets.qh;h=f7b14b0a65e5641295c962018bd6bd89ee70210f;hb=e2206feb6fec163ffee9c87d50d8d9580393cd88;hp=622f2360f7d0aec8fd6ad109129a04e98972ffa8;hpb=f72821fdcebe3ca01181a99727a06198de65ea08;p=xonotic%2Fxonotic-data.pk3dir.git diff --git a/qcsrc/common/turrets/sv_turrets.qh b/qcsrc/common/turrets/sv_turrets.qh index 622f2360f..f7b14b0a6 100644 --- a/qcsrc/common/turrets/sv_turrets.qh +++ b/qcsrc/common/turrets/sv_turrets.qh @@ -1,15 +1,24 @@ -#ifndef SV_TURRETS_H -#define SV_TURRETS_H +#pragma once -entity turret_projectile(Sound _snd, float _size, float _health, float _death, float _proj_type, float _cull, float _cli_anim); -void turret_projectile_explode(); +#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); float turret_validate_target(entity e_turret, entity e_target, float validate_flags); -float turret_firecheck(); -entity turret_select_target(); +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(); .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,33 +53,34 @@ entity turret_select_target(); .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; +void turret_respawn(entity this); /// updates aim org, shot org, shot dir and enemy org for selected turret void turret_do_updates(entity e_turret); .vector tur_shotdir_updated; -.float() turret_firecheckfunc; // TODO: deprecate! +.float(entity this) turret_firecheckfunc; // TODO: deprecate! + +void turrets_setframe(entity this, float _frame, float client_only); -void turrets_setframe(float _frame, float client_only); +bool turret_initialize(entity this, Turret tur); -float turret_initialize(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; -.float(entity e_target,entity e_sender) turret_addtarget; +.bool(entity this, entity e_target,entity e_sender) turret_addtarget; .entity pathcurrent; +.entity pathgoal; + float turret_count; // debugging @@ -117,7 +102,4 @@ float turret_count; vector tvt_thadv; // turret head angle diff vector, updated by a successful call to turret_validate_target vector tvt_tadv; // turret angle diff vector, updated by a successful call to turret_validate_target 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