mirror of
https://github.com/scp-fs2open/fs2open.github.com.git
synced 2026-11-10 04:31:34 -10:00
With the `$Damage Impacted Subsystem First:` game_settings flag, weapons will damage submodels over subsystems, even if the subsystem is closer. Yet occasionally this is not the correct behavior (e.g. for the Rahu's engines). The new subsystem flag allows this behavior to be selectively overridden.
118 lines
7.3 KiB
C++
118 lines
7.3 KiB
C++
#ifndef MODEL_FLAGS_H
|
|
#define MODEL_FLAGS_H
|
|
|
|
#include "globalincs/flagset.h"
|
|
|
|
namespace Model {
|
|
|
|
FLAG_LIST(Submodel_flags) {
|
|
Can_move, // If true, the position and/or orientation of this submodel can change due to rotation of itself OR a parent
|
|
Is_live_debris, // whether current submodel is a live debris model
|
|
Is_thruster, // is an engine thruster submodel
|
|
Is_damaged, // is a submodel that represents a damaged submodel (e.g. a -destroyed version of some other submodel)
|
|
Do_not_scale_detail_distances, // if set should not scale boxes or spheres based on 'model detail' settings
|
|
Gun_rotation, // for animated weapon models
|
|
Instant_rotate_accel, // rotating submodels instantly reach their desired velocity
|
|
Instant_translate_accel, // ditto for translating submodels
|
|
No_collisions, // for $no_collisions property - kazan
|
|
Nocollide_this_only, //SUSHI: Like no_collisions, but not recursive. For the "replacement" collision model scheme.
|
|
Collide_invisible, //SUSHI: If set, this submodel should allow collisions for invisible textures. For the "replacement" collision model scheme.
|
|
Use_render_box_offset, // whether an offset has been defined; needed because one can't tell just by looking at render_box_offset
|
|
Use_render_sphere_offset, // whether an offset has been defined; needed because one can't tell just by looking at render_sphere_offset
|
|
|
|
NUM_VALUES
|
|
};
|
|
|
|
FLAG_LIST(Subsystem_Flags) {
|
|
Rotates, // This means the object rotates automatically
|
|
Translates, // This means the object translates automatically
|
|
Stepped_rotate, // This means that the rotation occurs in steps
|
|
Stepped_translate, // Ditto for translation
|
|
Ai_rotate, // This means that the rotation is controlled by ai
|
|
Crewpoint, // If set, this is a crew point.
|
|
Awacs, // If set, this subsystem has AWACS capability
|
|
Artillery, // if this rotates when weapons are fired - Goober5000
|
|
Triggered, // rotates when triggered by something
|
|
Untargetable, // Goober5000
|
|
Carry_no_damage, // WMC
|
|
Use_multiple_guns, // WMC
|
|
Fire_on_normal, // forces a turret to fire down its normal vecs
|
|
Turret_hull_check, // makes the turret check to see if it's going to shoot through it's own hull before fireing - Bobboau
|
|
Turret_fixed_fp, // forces turret (when defined with multiple weapons) to prevent the firepoints from alternating
|
|
Turret_salvo, // forces turret to fire salvos (all guns simultaneously) - independent targeting
|
|
Fire_on_target, // prevents turret from firing unless it is pointing at the firingpoints are pointing at the target
|
|
No_ss_targeting, // toggles the subsystem targeting for the turret
|
|
Turret_reset_idle, // makes turret reset to their initial position if the target is out of field of view
|
|
Turret_barrel_fov_overridden, // indicates the ships.tbl value should override the pof value
|
|
Turret_base_fov_overridden, // ..
|
|
Turret_max_fov_overridden, // ..
|
|
Carry_shockwave, // subsystem - even with 'carry no damage' flag - will carry shockwave damage to the hull
|
|
Allow_landing, // This subsystem can be landed on
|
|
Fov_edge_check, // Tells the game to use better FOV edge checking with this turret
|
|
Fov_required, // Tells game not to allow this turret to attempt targeting objects out of FOV
|
|
No_replace, // set the subsys not to draw replacement ('destroyed') model
|
|
No_live_debris, // sets the subsys not to release live debris
|
|
Ignore_if_dead, // tells homing missiles to ignore the subsys if its dead and home on to hull instead of earlier subsys pos
|
|
Allow_vanishing, // allows subsystem to vanish (prevents explosions & sounds effects from being played)
|
|
Damage_as_hull, // applies armor damage to subsystem instead of subsystem damage - FUBAR
|
|
Turret_locked, // Turret starts locked by default - Sushi
|
|
No_aggregate, // Don't include with aggregate subsystem types - Goober5000
|
|
Turret_anim_wait, // Turret won't fire until animation is complete - Sushi
|
|
Player_turret_sound,
|
|
Turret_only_target_if_can_fire,// Turrets only target things they're allowed to shoot at (e.g. if check-hull fails, won't keep targeting)
|
|
No_disappear, // Submodel won't disappear when subsystem destroyed
|
|
Collide_submodel, // subsystem takes damage only from hits which impact the associated submodel
|
|
Destroyed_rotation, // allows subobjects to continue to rotate even if they have been destroyed
|
|
Turret_use_ammo, // enables ammo consumption for turrets (DahBlount)
|
|
Autorepair_if_disabled, // Allows the subsystem to repair itself even if disabled (MageKing17)
|
|
No_autorepair_if_disabled, // Inversion of the previous; disallows this particular subsystem if the ship-wide flag is set (MageKing17)
|
|
Share_fire_direction, // (DahBlount) Whenever the turret fires a beam, make all beams fire in the same direction.
|
|
No_sparks, // Subsystem does not generate sparks if hit - m!m
|
|
No_impact_debris, // Don't spawn the small debris on impact - m!m
|
|
Hide_turret_from_loadout_stats, // Turret is not accounted for in auto-generated "Turrets" line in the ship loadout window --wookieejedi
|
|
Turret_distant_firepoint, //Turret barrel is very long and should be taken into account when aiming -- Kiloku
|
|
Override_submodel_impact, // if a weapon impacted a submodel, but this subsystem is within range, the subsystem takes priority -- Goober5000
|
|
|
|
NUM_VALUES
|
|
};
|
|
|
|
FLAG_LIST(Render_Flags) {
|
|
Normal, // Draw a normal object
|
|
Show_outline, // Draw the object in outline mode. Color specified by model_set_outline_color
|
|
Show_pivots, // Show the pivot points
|
|
Show_paths, // Show the paths associated with a model
|
|
Show_radius, // Show the radius around the object
|
|
Show_shields, // Show the shield mesh
|
|
Show_thrusters, // Show the engine thrusters. See model_set_thrust for how long it draws.
|
|
Lock_detail, // Only draw the detail level defined in model_set_detail_level
|
|
No_polys, // Don't draw the polygons.
|
|
No_lighting, // Don't perform any lighting on the model.
|
|
No_texturing, // Draw textures as flat-shaded polygons.
|
|
No_correct, // Don't to correct texture mapping
|
|
No_smoothing, // Don't perform smoothing on vertices.
|
|
Is_asteroid, // When set, treat this as an asteroid.
|
|
Is_missile, // When set, treat this as a missilie. No lighting, small thrusters.
|
|
Show_outline_preset, // Draw the object in outline mode. Color assumed to be set already.
|
|
Show_invisible_faces, // Show invisible faces as green...
|
|
Autocenter, // Always use the center of the hull bounding box as the center, instead of the pivot point
|
|
Bay_paths, // draw bay paths
|
|
All_xparent, // render it fully transparent
|
|
No_zbuffer, // switch z-buffering off completely
|
|
No_cull, // don't cull backfacing poly's
|
|
Force_texture, // force a given texture to always be used
|
|
Force_lower_detail, // force the model to draw 1 LOD lower, if possible
|
|
Edge_alpha, // makes norms that are faceing away from you render more transparent -Bobboau
|
|
Center_alpha, // oposite of above -Bobboau
|
|
No_fogging, // Don't fog - taylor
|
|
Show_outline_htl, // Show outlines (wireframe view) using HTL method
|
|
No_glowmaps, // disable rendering of glowmaps - taylor
|
|
Full_detail, // render all valid objects, particularly ones that are otherwise in/out of render boxes - taylor
|
|
Force_clamp, // force clamp - Hery
|
|
Animated_shader, // Use a animated Shader - Valathil
|
|
|
|
NUM_VALUES
|
|
};
|
|
}
|
|
|
|
#endif
|