2 * $Logfile: /Freespace2/code/Weapon/Flak.h $
10 * Revision 1.2 2002/05/04 04:36:56 theoddone33
11 * More changes, took out a lot of the sound/* stuff which will bite later but
14 * Revision 1.1.1.1 2002/05/03 03:28:12 root
18 * 6 7/31/99 2:57p Dave
19 * Scaled flak aim and jitter by weapon subsystem strength.
21 * 5 5/24/99 5:45p Dave
22 * Added detail levels to the nebula, with a decent speedup. Split nebula
23 * lightning into its own section.
28 #ifndef _FLAK_WEAPONS_HEADER_FILE
29 #define _FLAK_WEAPONS_HEADER_FILE
31 // --------------------------------------------------------------------------------------------------------------------------------------
40 // --------------------------------------------------------------------------------------------------------------------------------------
44 // initialize flak stuff for the level
45 void flak_level_init();
47 // close down flak stuff
48 void flak_level_close();
50 // given a newly created weapon, turn it into a flak weapon
51 void flak_create(weapon *wp);
53 // free up a flak object
54 void flak_delete(int flak_index);
56 // given a just fired flak shell, pick a detonating distance for it
57 void flak_pick_range(object *objp, vector *predicted_target_pos, float weapon_subsys_strength);
59 // add some jitter to a flak gun's aiming direction, take into account range to target so that we're never _too_ far off
60 // assumes dir is normalized
61 void flak_jitter_aim(vector *dir, float dist_to_target, float weapon_subsys_strength);
63 // create a muzzle flash from a flak gun based upon firing position and weapon type
64 void flak_muzzle_flash(vector *pos, vector *dir, int turret_weapon_class);
66 // maybe detonate a flak shell early/late (call from weapon_process_pre(...))
67 void flak_maybe_detonate(object *obj);
69 // set the range on a flak object
70 void flak_set_range(object *objp, vector *start_pos, float range);
72 // get the current range for the flak object
73 float flak_get_range(object *objp);