2 * Copyright (C) Volition, Inc. 1999. All rights reserved.
4 * All source code herein is the property of Volition, Inc. You may not sell
5 * or otherwise commercially exploit the source or things you created based on
10 * $Logfile: /Freespace2/code/Weapon/Flak.h $
18 * Revision 1.4 2002/06/09 04:41:13 relnev
19 * added copyright header
21 * Revision 1.3 2002/05/26 20:22:48 theoddone33
22 * Most of network/ works
24 * Revision 1.2 2002/05/04 04:36:56 theoddone33
25 * More changes, took out a lot of the sound stuff which will bite later but
28 * Revision 1.1.1.1 2002/05/03 03:28:12 root
32 * 6 7/31/99 2:57p Dave
33 * Scaled flak aim and jitter by weapon subsystem strength.
35 * 5 5/24/99 5:45p Dave
36 * Added detail levels to the nebula, with a decent speedup. Split nebula
37 * lightning into its own section.
42 #ifndef _FLAK_WEAPONS_HEADER_FILE
43 #define _FLAK_WEAPONS_HEADER_FILE
45 // --------------------------------------------------------------------------------------------------------------------------------------
54 // --------------------------------------------------------------------------------------------------------------------------------------
58 // initialize flak stuff for the level
59 void flak_level_init();
61 // close down flak stuff
62 void flak_level_close();
64 // given a newly created weapon, turn it into a flak weapon
65 void flak_create(weapon *wp);
67 // free up a flak object
68 void flak_delete(int flak_index);
70 // given a just fired flak shell, pick a detonating distance for it
71 void flak_pick_range(object *objp, vector *predicted_target_pos, float weapon_subsys_strength);
73 // add some jitter to a flak gun's aiming direction, take into account range to target so that we're never _too_ far off
74 // assumes dir is normalized
75 void flak_jitter_aim(vector *dir, float dist_to_target, float weapon_subsys_strength);
77 // create a muzzle flash from a flak gun based upon firing position and weapon type
78 void flak_muzzle_flash(vector *pos, vector *dir, int turret_weapon_class);
80 // maybe detonate a flak shell early/late (call from weapon_process_pre(...))
81 void flak_maybe_detonate(object *obj);
83 // set the range on a flak object
84 void flak_set_range(object *objp, vector *start_pos, float range);
86 // get the current range for the flak object
87 float flak_get_range(object *objp);