#define TTURRETS_ENABLED
#ifdef TTURRETS_ENABLED
-
-#message "with tZork turrets"
+#ifdef SVQC
+//#message "with tZork turrets"
float turret_count;
#define TSF_NO_PATHBREAK 8
/// Dont respawn
#define TSL_NO_RESPAWN 16
+/// Let this turret roam when idle.
+#define TSL_ROAM 32
/// target selection flags
.float target_select_flags;
.float aim_flags;
/// Dont aim.
#define TFL_AIM_NO 1
-/// Go for ground, not direct hit
-//#define TFL_AIM_GROUND 2
/// Go for ground, not direct hit, but only if target is on ground.
-#define TFL_AIM_GROUND2 4
-/// Use balistic aim. FIXME: not implemented
-#define TFL_AIM_BALISTIC 8
+#define TFL_AIM_GROUNDGROUND 2
/// Try to predict target movement (does not account for gravity)
-#define TFL_AIM_LEAD 16
+#define TFL_AIM_LEAD 4
/// Compensate for shot traveltime when lead
-#define TFL_AIM_SHOTTIMECOMPENSATE 32
-/// Aim slightly in front of target
-#define TFL_AIM_INFRONT 64
-/// Aim slightly behind target
-#define TFL_AIM_BEHIND 128
-/// blend real and predicted z positions. (fake bounce prediction)
-// #define TFL_AIM_ZEASE 256
+#define TFL_AIM_SHOTTIMECOMPENSATE 8
/// Try to do real prediction of targets z pos at impact.
-#define TFL_AIM_ZPREDICT 512
+#define TFL_AIM_ZPREDICT 16
/// Simply aim at target's current location
-#define TFL_AIM_SIMPLE 1024
+#define TFL_AIM_SIMPLE 32
/// track (turn and pitch head) flags
.float track_flags;
#define TFL_TRACKTYPE_STEPMOTOR 1
/// Smoth absolute movement. Looks ok, fair accuracy.
#define TFL_TRACKTYPE_FLUIDPRECISE 2
-/// Simulated inertia. "Wobbly mode" Looks kool, can mean really bad accuracy depending on how the feilds below are set
+/// Simulated inertia. "Wobbly mode" Looks kool, can mean really bad accuracy depending on how the fields below are set
#define TFL_TRACKTYPE_FLUIDINERTIA 3
/// TFL_TRACKTYPE_FLUIDINERTIA: pitch multiplier
.float track_accel_pitch;
/// How prefire check is preformed
.float firecheck_flags;
-/// Dont kill the world
-#define TFL_FIRECHECK_WORLD 2
/// Dont kill the dead
#define TFL_FIRECHECK_DEAD 4
/// Range limits apply
/// Check own .attack_finished_single vs time
#define TFL_FIRECHECK_REFIRE 4096
/// Move the acctual target to aimspot before tracing impact (and back after)
-#define TFL_FIRECHECK_VERIFIED 8192
+//#define TFL_FIRECHECK_VERIFIED 8192
/// Dont do any chekcs
#define TFL_FIRECHECK_NO 16384
#define TFL_TURRCAPS_ISTURRET 65536
/// Ammo types needed and/or provided
-.float ammo_flags;
+//.float ammo_flags;
+#define ammo_flags currentammo
/// Has and needs no ammo
#define TFL_AMMO_NONE 64
/// Uses power
#define TFL_DMG_HEADSHAKE 128
/// Die and stay dead.
#define TFL_DMG_DEATH_NORESPAWN 256
-/// Supress std turret gibs on death
-#define TFL_DMG_DEATH_NOGIBS 512
// Spawnflags
/// Spawn in teambased modes
/// Defend this entity (or ratehr this entitys position)
.entity tur_defend;
-/// on/off toggle.
-.float tur_active;
-
/// and shoot from here. (can be non constant, think MLRS)
.vector tur_shotorg;
.float target_select_playerbias;
/// Field of view
//.float target_select_fov;
-/// Last thimestamp this surret aquierd a valid target
+/// Last timestamp this turret aquierd a valid target
.float target_select_time;
-
+/// Throttle re-validation of current target
+.float target_validate_time;
/*
* Aim refers to real aiming, not gun pos (thats done by track)
*/
.void() turret_diehook;
.void() turret_respawnhook;
-/*
-#define TEH_THINK 2
-#define TEH_DAMAGE 4
-#define TEH_DIE 8
-#define TEH_RESPAWN 16
-#define TEH_TRACK 32
-#define TEH_AIM 64
-#define TEH_SELECT 128
-.float(float event_id) turret_eventhook;
-*/
-
-
/*
* Target selection, preferably but not nessesarely
* return a normalized result.
*/
/// Function to use for target evaluation. usualy turret_stdproc_targetscore_generic
-.float(entity e_turret, entity e_target) turret_score_target;
-
+.float(entity _turret, entity _target) turret_score_target;
/*
* Target selection
*/
/// Generic, fairly smart, bias-aware target selection.
-float turret_stdproc_targetscore_generic(entity e_turret, entity e_target);
+float turret_stdproc_targetscore_generic(entity _turret, entity _target);
/// Experimental supportunits targetselector
-float turret_stdproc_targetscore_support(entity e_turret,entity e_target);
+float turret_stdproc_targetscore_support(entity _turret,entity _target);
/*
* Aim functions
.vector tur_shotdir_updated;
void turrets_precash();
-
-
+#endif // SVQC
+
+// common
+.float turret_type;
+float TID_COMMON = 1;
+float TID_EWHEEL = 2;
+float TID_FLAC = 3;
+float TID_FUSION = 4;
+float TID_HELLION = 5;
+float TID_HK = 6;
+float TID_MACHINEGUN = 7;
+float TID_MLRS = 8;
+float TID_PHASER = 9;
+float TID_PLASMA = 10;
+float TID_PLASMA_DUAL = 11;
+float TID_TESLA = 12;
+float TID_WALKER = 13;
+float TID_LAST = 13;
+
+float TNSF_UPDATE = 2;
+float TNSF_STATUS = 4;
+float TNSF_SETUP = 8;
+float TNSF_ANG = 16;
+float TNSF_AVEL = 32;
+float TNSF_MOVE = 64;
+.float anim_start_time;
+float TNSF_ANIM = 128;
+
+float TNSF_FULL_UPDATE = 16777215;
#endif // TTURRETS_ENABLED