File: weapon_flags.h

package info (click to toggle)
freespace2 24.2.0%2Brepack-1
  • links: PTS, VCS
  • area: non-free
  • in suites: forky, sid
  • size: 43,716 kB
  • sloc: cpp: 595,001; ansic: 21,741; python: 1,174; sh: 457; makefile: 248; xml: 181
file content (139 lines) | stat: -rw-r--r-- 8,861 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
#ifndef WEAPON_FLAGS_H
#define WEAPON_FLAGS_H

#include "globalincs/flagset.h"

namespace Weapon {

	FLAG_LIST(Info_Flags) {
		Homing_heat,						// if set, this weapon homes via seeking heat
		Homing_aspect,						// if set, this weapon homes via chasing aspect
		Electronics,						// Takes out electronics systems.
		Spawn,								// Spawns projectiles on detonation.
		Remote,								// Can be remotely detonated by parent.
		Puncture,							// Punctures armor, damaging subsystems.
		Supercap,							// This is a weapon which does supercap class damage (meaning, it applies real damage to supercap ships)
		Cmeasure,							// Weapon acts as a countermeasure
		Homing_javelin,						// WC Saga Javelin HS style heatseeker, locks only on target's engines
		Turns,								// Set this if the weapon ever changes heading. If you don't set this and the weapon turns, collision detection won't work, I promise!
		Swarm,								// Missile "swarms".. ie changes heading and twists on way to target
		Trail,								// Has a trail
		Big_only,							// Only big ships (cruiser, capital, etc.) can arm this weapon
		Child,								// No ship can have this weapon.  It gets created by weapon detonations.
		Bomb,								// Bomb-type missile, can be targeted
		Huge,								// Huge damage (generally 500+), probably only fired at huge ships.
		No_dumbfire,						// Missile cannot be fired dumbfire (ie requires aspect lock)
		No_doublefire,						// Disables linked firing for secondaries - EatThePath
		Thruster,							// Has thruster cone and/or glow
		In_tech_database,
		Player_allowed,						// allowed to be on starting wing ships/in weaponry pool
		Default_player_weapon,				// added to the weapons pool by default
		Bomber_plus,						// Fire this missile only at a bomber or big ship.  But not a fighter.
		Corkscrew,							// corkscrew style missile
		Particle_spew,						// spews particles as it travels
		Emp,								// weapon explodes with a serious EMP effect
		Energy_suck,						// energy suck primary (impact effect)
		Flak,								// use for big-ship turrets - flak gun
		Beam,								// if this is a beam weapon : NOTE - VERY SPECIAL CASE
		Tag,								// this weapon has a tag effect when it hits
		Shudder,							// causes the weapon to shudder. shudder is proportional to the mass and damage of the weapon
		Mflash,								// has muzzle flash
		Lockarm,							// if the missile was fired without a lock, it does significanlty less damage on impact
		Ballistic,							// ballistic primaries - Goober5000
		Pierce_shields,						// shield pierceing -Bobboau
		Default_in_tech_database,			// this entry's default tech database status, as specified in weapons.tbl; used when the tech db is "reset to default" - Goober5000
		Local_ssm,							// localized ssm. ship that fires ssm is in mission.  ssms also warp back in during mission
		Tagged_only,						// can only fire if target is tagged
		Cycle,								// will only fire from (shots (defalts to 1)) points at a time
		Small_only,							// can only be used against small ships like fighters or bombers
		Same_turret_cooldown,				// the weapon has the same cooldown time on turrets
		Mr_no_lighting,						// don't render with lighting, regardless of user options
		Transparent,						// render as transparent
		Training,							// Weapon does shield/hull damage, but doesn't hurt subsystems, whack you, or put marks on your ship.
		Smart_spawn,						// Spawn weapon that is fired via turrets like normal weapons
		Inherit_parent_target,				// child weapons home in on the target their parent is homing on.
		No_emp_kill,						// though weapon has hitpoints it can not be disabled by EMP
		Variable_lead_homing,				// allows user defined scaler to be added to lead (to enable, lead, pure or lag pursuit for missiles)
		Untargeted_heat_seeker,				// forces heat seeker to lose target immeadiately (and acquire a random new one)
		No_radius_doubling,					// removes the radius doubling effect bombs have for collisions
		Non_subsys_homing,					// spreads fired missiles around the target ships hull
		No_life_lost_if_missed,				// prevents game from shortening the lifeleft of the missed but still homing missiles
		Custom_seeker_str,					// sets the game to use custom seeker strengths instead of default values
		Can_be_targeted,					// allows non-bomb weapons to be targeted
		Shown_on_radar,						// allows non-bombs be visible on radar
		Show_friendly,						// allows friendly weapon radar dots be drawn
		Capital_plus,						// AI will not use this weapon on fighters or bombers
		External_weapon_fp,					// will try to use external models FPs if possible
		External_weapon_lnch,				// render external secondary as a launcher
		Takes_blast_damage,					// This weapon can take blast damage
		Takes_shockwave_damage,				// This weapon can take shockwave damage
		Dont_show_on_radar,					// Force a weapon to not show on radar
		Render_flak,						// Even though this is a flak weapon, render the shell
		Ciws,								// This weapons' burst and shockwave damage can damage bombs (Basically, a reverse for TAKES_BLAST/SHOCKWAVE_DAMAGE
		Antisubsysbeam,						// This beam can target subsystems as per normal
		Nolink,								// This weapon can not be linked with others
		Use_emp_time_for_capship_turrets,	// override MAX_TURRET_DISRUPT_TIME in emp.cpp - Goober5000
		No_linked_penalty,					// This weapon does not count into linked firing penalty
		No_homing_speed_ramp,				// Disables the 1s long speed ramping when firing locked-on secondaries
		Cmeasure_aspect_home_on,			// This countermeasure flag makes aspect seekers home on the countermeasure instead of going into dumbfire mode
		Turret_Interceptable,				// These two flags mark a weapon as being interceptable by the AI
		Fighter_Interceptable,				// (like WIF_BOMB), without forcing it to be tagetable -MageKing17
		Aoe_Electronics,					// Apply electronics effect across the weapon's entire area of effect instead of just on the impacted ship -MageKing17
		Apply_Recoil,						// Apply Recoil using weapon and ship info
        Dont_spawn_if_shot,                 // Prevent shot down parent weapons from spawning children (DahBlount)
        Die_on_lost_lock,                   // WIF_LOCKED_HOMING missiles will die if they lose their lock
		Has_display_name,					// Goober5000
		No_impact_spew,						// Goober5000
		Require_exact_los,					// If secondary or in turret, will only fire if ship has line of sight to target
		Can_damage_shooter,					// this weapon and any of its descendants can damage its shooter - Asteroth
		Heals,								// 'damage' heals instead of actually damaging - Asteroth
		Vampiric,						    // damage applied also brings back health to the shooter - Strygon
		SecondaryNoAmmo,					// Secondaries that only use energy
		No_collide,
		Multilock_target_dead_subsys,
		No_evasion,							// AI will not attempt to dodge this weapon - Asteroth
		Dont_merge_indicators,				// This secondary lead indicator won't be merged with the primary lead indicator even if this is a homing weapon.
		No_fred,							// not available in fred
		Detonate_on_expiration,				// Secondary weapons always detonate when their lifetime runs out, but now primary weapons can too
		Ignores_countermeasures,			// The weapon will never be affected by countermeasures

        NUM_VALUES
	};

	FLAG_LIST(Weapon_Flags) {
		Lock_warning_played,		// set when a lock warning sound is played for the player (needed since we don't want to play multiple lock sounds)
		Already_applied_stats,		// for use in ship_apply_local and ship_apply_global damage functions so that we don't record multiple hits (stats) for one impact
		Played_flyby_sound,			// flyby sound has been played for this weapon
		Consider_for_flyby_sound,	// consider for flyby
		Dead_in_water,				// a missiles engines have died
		Locked_when_fired,			// fired with a lock
		Destroyed_by_weapon,		// destroyed by damage from other weapon
		Spawned,					//Spawned from a spawning type weapon
        No_homing,                  // this weapon should ignore any homing behavior it'd usually have
		Overridden_homing,          // Homing is overridden by an external source (probably scripting)
		Multi_homing_update_needed, // this is a newly spawned homing weapon which needs to update client machines
		Multi_Update_Sent,			// Marks this missile as already being updated once by the server
		Begun_detonation,			// The engine has set this weapon to detonate momentarily

		NUM_VALUES
	};

	FLAG_LIST(Burst_Flags) {
		Fast_firing,
		Random_length,
		Resets,
		Num_firepoints_burst_shots, // Burst shots is set to however many firepoints the firer has
		Burst_only_loop_sounds, // start/loop/end sounds trigger on the start and end of bursts in addition to the trigger state

		NUM_VALUES
	};

	FLAG_LIST(Beam_Info_Flags) {
		Burst_share_random,
		Track_own_texture_tiling,

		NUM_VALUES
	};
}

#endif