-#ifndef SV_TURRETS_H
-#define SV_TURRETS_H
+#pragma once
+
+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);
+bool turret_firecheck(entity this);
+entity turret_select_target(entity this);
// turret fields
.float ticrate; // interal ai think rate
.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(float _frame, float client_only);
+void turrets_setframe(entity this, float _frame, float client_only);
-float turret_initialize(float tur_id);
+bool turret_initialize(entity this, Turret tur);
/// 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;
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