Advertisement
liquidspark

flam_bitmasks.h

May 18th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 30.07 KB | None | 0 0
  1. //
  2. //  flam_bitmasks.h
  3. //  blood
  4. //
  5. //  Created by silent on 5/13/19.
  6. //  Copyright © 2019 galaxyverge. All rights reserved.
  7. //
  8.  
  9. #ifndef bitmasks_h
  10. #define bitmasks_h
  11.  
  12. /*
  13.  includes
  14.  */
  15.  
  16. /*
  17.  bool
  18.  */
  19. #include <stdbool.h>
  20.  
  21. /*
  22.  uint8_t
  23.  uint16_t
  24.  uint32_t
  25.  */
  26. #include <stdint.h>
  27.  
  28. union FLAM_empty_32bit_flags {
  29.     uint32_t integer;
  30.     struct {
  31.         bool:0;
  32.     } bitfield;
  33. };
  34. union FLAM_empty_16bit_flags {
  35.     uint16_t integer;
  36.     struct {
  37.         bool:0;
  38.     } bitfield;
  39. };
  40. union FLAM_color_interpolation_32bit_flags {
  41.     uint32_t integer;
  42.     struct {
  43.         bool blend_in_hsv:1;
  44.         bool more_colors:1;
  45.     } bitfield;
  46. };
  47. union FLAM_color_interpolation_16bit_flags {
  48.     uint16_t integer;
  49.     struct {
  50.         bool interpolate_color_in_hsv:1;
  51.         bool more_colors:1;
  52.     } bitfield;
  53. };
  54. union FLAM_particle_bitmap_flags {
  55.     uint16_t integer;
  56.     struct {
  57.         bool unfiltered:1;
  58.     } bitfield;
  59. };
  60. union FLAM_particle_shader_flags {
  61.     uint16_t integer;
  62.     struct {
  63.         bool sort_bias:1;
  64.         bool nonlinear_tint:1;
  65.         bool dont_overdraw_fp_weapon:1;
  66.     } bitfield;
  67. };
  68. union FLAM_model_flags {
  69.     uint32_t integer;
  70.     struct {
  71.         bool blend_shared_normals:1;
  72.         bool parts_have_local_nodes:1;
  73.         bool ignore_skinning:1;
  74.     } bitfield;
  75. };
  76. union FLAM_model_region_permutation_block_flags {
  77.     uint32_t integer;
  78.     struct {
  79.         bool cannot_be_chosen_randomly:1;
  80.     } bitfield;
  81. };
  82. union FLAM_model_geometry_part_block_flags {
  83.     uint32_t integer;
  84.     struct {
  85.         bool stripped_internal:1;
  86.         bool zoner_model_part_local_nodes:1;
  87.     } bitfield;
  88. };
  89. union FLAM_model_animations_flags {
  90.     uint16_t integer;
  91.     struct {
  92.         bool compress_all_animations:1;
  93.         bool force_idle_compression:1;
  94.     } bitfield;
  95. };
  96. union FLAM_animation_graph_node_block_node_joint_flags {
  97.     uint32_t integer;
  98.     struct {
  99.         bool ball_socket:1;
  100.         bool hinge:1;
  101.         bool no_movement:1;
  102.     } bitfield;
  103. };
  104. union FLAM_animation_block_flags {
  105.     uint16_t integer;
  106.     struct {
  107.         bool compressed_data:1;
  108.         bool world_relative:1;
  109.         bool pal_25hz:1;
  110.     } bitfield;
  111. };
  112. union FLAM_bitmap_flags {
  113.     uint16_t integer;
  114.     struct {
  115.         bool enable_diffusion_dithering:1;
  116.         bool disable_height_map_compression:1;
  117.         bool uniform_sprite_sequences:1;
  118.         bool filthy_sprite_bug_fix:1;
  119.     } bitfield;
  120. };
  121. union FLAM_bitmap_data_block_flags {
  122.     uint16_t integer;
  123.     struct {
  124.         bool power_of_two_dimensions:1;
  125.         bool compressed:1;
  126.         bool palettized:1;
  127.         bool swizzled:1;
  128.         bool linear:1;
  129.         bool v16u16:1;
  130.     } bitfield;
  131. };
  132. union FLAM_unit_flags {
  133.     uint32_t integer;
  134.     struct {
  135.         bool circular_aiming:1;
  136.         bool destroyed_after_dying:1;
  137.         bool half_speed_interpolation:1;
  138.         bool fires_from_camera:1;
  139.         bool entrance_inside_bounding_sphere:1;
  140.         bool:1;
  141.         bool causes_passenger_dialogue:1;
  142.         bool resists_pings:1;
  143.         bool melee_attack_is_fatal:1;
  144.         bool dont_reface_during_pings:1;
  145.         bool has_no_aiming:1;
  146.         bool simple_creature:1;
  147.         bool impact_melee_attaches_to_unit:1;
  148.         bool impact_melee_dies_on_shields:1;
  149.         bool cannot_open_doors_automatically:1;
  150.         bool melee_attackers_cannot_attach:1;
  151.         bool not_instantly_killed_by_melee:1;
  152.         bool shield_sapping:1;
  153.         bool runs_around_flaming:1;
  154.         bool inconsequential:1;
  155.         bool special_cinematic_unit:1;
  156.         bool ignored_by_autoaiming:1;
  157.         bool shields_fry_infection_forms:1;
  158.         bool integrated_light_controls_weapon:1;
  159.         bool integrated_light_lasts_forever:1;
  160.     } bitfield;
  161. };
  162. union FLAM_unit_seat_block_flags {
  163.     uint32_t integer;
  164.     struct {
  165.         bool invisible:1;
  166.         bool locked:1;
  167.         bool driver:1;
  168.         bool gunner:1;
  169.         bool third_person_camera:1;
  170.         bool allows_weapons:1;
  171.         bool third_person_on_enter:1;
  172.         bool first_person_camera_slaved_to_gun:1;
  173.         bool allow_vehicle_communication_animations:1;
  174.         bool not_valid_without_driver:1;
  175.         bool allow_ai_noncombatants:1;
  176.     } bitfield;
  177. };
  178. union FLAM_biped_flags {
  179.     uint32_t integer;
  180.     struct {
  181.         bool turns_without_animating:1;
  182.         bool uses_player_physics:1;
  183.         bool flying:1;
  184.         bool physics_pill_centered_at_origin:1;
  185.         bool spherical:1;
  186.         bool passes_through_other_bipeds:1;
  187.         bool can_climb_any_surface:1;
  188.         bool immune_to_falling_damage:1;
  189.         bool rotate_while_airborne:1;
  190.         bool uses_limp_body_physics:1;
  191.         bool has_no_dying_airborne:1;
  192.         bool random_speed_increase:1;
  193.         bool unit_uses_old_ntsc_player_physics:1;
  194.     } bitfield;
  195. };
  196. union FLAM_vehicle_flags {
  197.     uint32_t integer;
  198.     struct {
  199.         bool speed_wakes_physics:1;
  200.         bool turn_wakes_physics:1;
  201.         bool driver_power_wakes_physics:1;
  202.         bool gunner_power_wakes_physics:1;
  203.         bool control_opposite_speed_sets_brake:1;
  204.         bool slide_wakes_physics:1;
  205.         bool kills_riders_at_terminal_velocity:1;
  206.         bool causes_collision_damage:1;
  207.         bool ai_weapon_cannot_rotate:1;
  208.         bool ai_does_not_require_driver:1;
  209.         bool ai_unused:1;
  210.         bool ai_driver_enable:1;
  211.         bool ai_driver_flying:1;
  212.         bool ai_driver_can_sidestep:1;
  213.         bool ai_driver_hovering:1;
  214.     } bitfield;
  215. };
  216. union FLAM_powered_mass_point_block_flags {
  217.     uint32_t integer;
  218.     struct {
  219.         bool ground_friction:1;
  220.         bool water_friction:1;
  221.         bool air_friction:1;
  222.         bool water_lift:1;
  223.         bool air_lift:1;
  224.         bool thrust:1;
  225.         bool antigrav:1;
  226.     } bitfield;
  227. };
  228. union FLAM_mass_point_block_flags {
  229.     uint32_t integer;
  230.     struct {
  231.         bool metallic:1;
  232.     } bitfield;
  233. };
  234. union FLAM_object_flags {
  235.     uint16_t integer;
  236.     struct {
  237.         bool does_not_cast_shadow:1;
  238.         bool transparent_self_occlusion:1;
  239.         bool brighter_than_it_should_be:1;
  240.         bool not_a_pathfinding_obstacle:1;
  241.     } bitfield;
  242. };
  243. union FLAM_object_function_block_flags {
  244.     uint32_t integer;
  245.     struct {
  246.         bool invert:1;
  247.         bool additive:1;
  248.         bool always_active:1;
  249.     } bitfield;
  250. };
  251. union FLAM_contrail_flags {
  252.     uint16_t integer;
  253.     struct {
  254.         bool first_point_unfaded:1;
  255.         bool last_point_unfaded:1;
  256.         bool points_start_pinned_to_media:1;
  257.         bool points_start_pinned_to_ground:1;
  258.         bool points_always_pinned_to_media:1;
  259.         bool points_always_pinned_to_ground:1;
  260.         bool edge_effect_fades_slowly:1;
  261.     } bitfield;
  262. };
  263. union FLAM_contrail_scale_flags {
  264.     uint16_t integer;
  265.     struct {
  266.         bool point_generation_rate:1;
  267.         bool point_velocity:1;
  268.         bool point_velocity_delta:1;
  269.         bool point_velocity_cone_angle:1;
  270.         bool inherited_velocity_fraction:1;
  271.         bool sequence_animation_rate:1;
  272.         bool texture_scale_u:1;
  273.         bool texture_scale_v:1;
  274.         bool texture_animation_u:1;
  275.         bool texture_animation_v:1;
  276.     } bitfield;
  277. };
  278. union FLAM_contrail_point_states_block_scale_flags {
  279.     uint32_t integer;
  280.     struct {
  281.         bool duration:1;
  282.         bool duration_delta:1;
  283.         bool transition_duration:1;
  284.         bool transition_duration_delta:1;
  285.         bool width:1;
  286.         bool color:1;
  287.     } bitfield;
  288. };
  289. union FLAM_weapon_flags {
  290.     uint32_t integer;
  291.     struct {
  292.         bool vertical_heat_display:1;
  293.         bool mutually_exclusive_triggers:1;
  294.         bool attacks_automatically_on_bump:1;
  295.         bool must_be_readied:1;
  296.         bool doesnt_count_toward_maximum:1;
  297.         bool aim_assists_only_when_zoomed:1;
  298.         bool prevents_grenade_throwing:1;
  299.         bool must_be_picked_up:1;
  300.         bool holds_triggers_when_dropped:1;
  301.         bool prevents_melee_attack:1;
  302.         bool detonates_when_dropped:1;
  303.         bool cannot_fire_at_maximum_age:1;
  304.         bool secondary_trigger_overrides_grenades:1;
  305.         bool obsolete_does_not_depower_active_camo_in_multiplayer:1;
  306.         bool enables_integrated_night_vision:1;
  307.         bool ais_use_weapon_melee_damage:1;
  308.     } bitfield;
  309. };
  310. union FLAM_magazines_flags {
  311.     uint32_t integer;
  312.     struct {
  313.         bool wastes_rounds_when_reloaded:1;
  314.         bool every_round_must_be_chambered:1;
  315.     } bitfield;
  316. };
  317. union FLAM_triggers_flags {
  318.     uint32_t integer;
  319.     struct {
  320.         bool tracks_fired_projectile:1;
  321.         bool random_firing_effects:1;
  322.         bool can_fire_with_partial_ammo:1;
  323.         bool does_not_repeat_automatically:1;
  324.         bool locks_in_on_off_state:1;
  325.         bool projectiles_use_weapon_origin:1;
  326.         bool sticks_when_dropped:1;
  327.         bool ejects_during_chamber:1;
  328.         bool discharging_spews:1;
  329.         bool analog_rate_of_fire:1;
  330.         bool use_error_when_unzoomed:1;
  331.         bool projectile_vector_cannot_be_adjusted:1;
  332.         bool projectiles_have_identical_error:1;
  333.         bool projectile_is_client_side_only:1;
  334.     } bitfield;
  335. };
  336. union FLAM_light_flags {
  337.     uint32_t integer;
  338.     struct {
  339.         bool dynamic:1;
  340.         bool no_specular:1;
  341.         bool dont_light_own_object:1;
  342.         bool supersize_in_first_person:1;
  343.         bool first_person_flashlight:1;
  344.         bool dont_fade_active_camouflage:1;
  345.     } bitfield;
  346. };
  347. union FLAM_effect_flags {
  348.     uint32_t integer;
  349.     struct {
  350.         bool deleted_when_attachment_deactivates:1;
  351.         bool required_for_gameplay_cannot_optimize_out:1;
  352.     } bitfield;
  353. };
  354. union FLAM_effect_part_block_flags {
  355.     uint16_t integer;
  356.     struct {
  357.         bool face_down_regardless_of_location_decals:1;
  358.     } bitfield;
  359. };
  360. union FLAM_effect_part_block_channel_value_scales {
  361.     uint32_t integer;
  362.     struct {
  363.         bool velocity:1;
  364.         bool velocity_delta:1;
  365.         bool velocity_cone_angle:1;
  366.         bool angular_velocity:1;
  367.         bool angular_velocity_delta:1;
  368.         bool type_specific_scale:1;
  369.     } bitfield;
  370. };
  371. union FLAM_effect_particles_block_flags {
  372.     uint32_t integer;
  373.     struct {
  374.         bool stay_attached_to_marker:1;
  375.         bool random_initial_angle:1;
  376.         bool tint_from_object_color:1;
  377.         bool interpolate_tint_as_hsv:1;
  378.         bool across_the_long_hue_path:1;
  379.     } bitfield;
  380. };
  381. union FLAM_effect_particles_block_channel_value_scales {
  382.     uint32_t integer;
  383.     struct {
  384.         bool velocity:1;
  385.         bool velocity_delta:1;
  386.         bool velocity_cone_angle:1;
  387.         bool angular_velocity:1;
  388.         bool angular_velocity_delta:1;
  389.         bool count:1;
  390.         bool count_delta:1;
  391.         bool distribution_radius:1;
  392.         bool distribution_radius_delta:1;
  393.         bool particle_radius:1;
  394.         bool particle_radius_delta:1;
  395.         bool tint:1;
  396.     } bitfield;
  397. };
  398. union FLAM_particle_flags {
  399.     uint32_t integer;
  400.     struct {
  401.         bool can_animate_backwards:1;
  402.         bool animation_stops_at_rest:1;
  403.         bool animation_starts_on_random_frame:1;
  404.         bool animate_once_per_frame:1;
  405.         bool dies_at_rest:1;
  406.         bool dies_on_contact_with_structure:1;
  407.         bool tint_from_diffuse_texture:1;
  408.         bool dies_on_contact_with_water:1;
  409.         bool dies_on_contact_with_air:1;
  410.         bool self_illuminated:1;
  411.         bool random_horizontal_mirroring:1;
  412.         bool random_vertical_mirroring:1;
  413.     } bitfield;
  414. };
  415. union FLAM_rasterizer_data_block_flags {
  416.     uint16_t integer;
  417.     struct {
  418.         bool tint_edge_density:1;
  419.     } bitfield;
  420. };
  421. union FLAM_sound_flags {
  422.     uint32_t integer;
  423.     struct {
  424.         bool fit_to_adpcm_blocksize:1;
  425.         bool split_long_sound_into_permutations:1;
  426.     } bitfield;
  427. };
  428. union FLAM_sound_looping_flags {
  429.     uint32_t integer;
  430.     struct {
  431.         bool deafening_to_ais:1;
  432.         bool not_a_loop:1;
  433.         bool stops_music:1;
  434.     } bitfield;
  435. };
  436. union FLAM_looping_sound_track_block_flags {
  437.     uint32_t integer;
  438.     struct {
  439.         bool fade_in_at_start:1;
  440.         bool fade_out_at_stop:1;
  441.         bool fade_in_alternate:1;
  442.     } bitfield;
  443. };
  444. union FLAM_looping_sound_detail_block_flags {
  445.     uint32_t integer;
  446.     struct {
  447.         bool dont_play_with_alternate:1;
  448.         bool dont_play_without_alternate:1;
  449.     } bitfield;
  450. };
  451. union FLAM_item_flags {
  452.     uint32_t integer;
  453.     struct {
  454.         bool always_maintains_z_up:1;
  455.         bool destroyed_by_explosions:1;
  456.         bool unaffected_by_gravity:1;
  457.     } bitfield;
  458. };
  459. union FLAM_weather_particle_type_block_flags {
  460.     uint32_t integer;
  461.     struct {
  462.         bool interpolate_colors_in_hsv:1;
  463.         bool along_long_hue_path:1;
  464.         bool random_rotation:1;
  465.     } bitfield;
  466. };
  467. union FLAM_glow_flags {
  468.     uint32_t integer;
  469.     struct {
  470.         bool modify_particle_color_in_range:1;
  471.         bool particles_move_backwards:1;
  472.         bool particles_move_in_both_directions:1;
  473.         bool trailing_particles_fade_over_time:1;
  474.         bool trailing_particles_shrink_over_time:1;
  475.         bool trailing_particles_slow_over_time:1;
  476.     } bitfield;
  477. };
  478. union FLAM_lightning_marker_block_flags {
  479.     uint16_t integer;
  480.     struct {
  481.         bool not_connected_to_next_marker:1;
  482.     } bitfield;
  483. };
  484. union FLAM_particle_system_types_block_flags {
  485.     uint32_t integer;
  486.     struct {
  487.         bool type_states_loop:1;
  488.         bool type_states_loop_forward_backward:1;
  489.         bool particle_states_loop:1;
  490.         bool particle_states_loop_forward_backward:1;
  491.         bool particles_die_in_water:1;
  492.         bool particles_die_in_air:1;
  493.         bool particles_die_on_ground:1;
  494.         bool rotational_sprites_animate_sideways:1;
  495.         bool disabled:1;
  496.         bool tint_by_effect_color:1;
  497.         bool initial_count_scales_with_effect:1;
  498.         bool minimum_count_scales_with_effect:1;
  499.         bool creation_rate_scales_with_effect:1;
  500.         bool scale_scales_with_effect:1;
  501.         bool animation_rate_scales_with_effect:1;
  502.         bool rotation_rate_scales_with_effect:1;
  503.         bool dont_draw_in_first_person:1;
  504.         bool dont_draw_in_third_person:1;
  505.     } bitfield;
  506. };
  507. union FLAM_projectile_flags {
  508.     uint32_t integer;
  509.     struct {
  510.         bool oriented_along_velocity:1;
  511.         bool ai_must_use_ballistic_aiming:1;
  512.         bool detonation_max_time_if_attached:1;
  513.         bool has_super_combining_explosion:1;
  514.         bool combine_initial_velocity_with_parent_velocity:1;
  515.         bool random_attached_detonation_time:1;
  516.         bool minimum_unattached_detonation_time:1;
  517.     } bitfield;
  518. };
  519. union FLAM_projectile_material_response_block_flags {
  520.     uint16_t integer;
  521.     struct {
  522.         bool cannot_be_overpenetrated:1;
  523.     } bitfield;
  524. };
  525. union FLAM_projectile_material_response_block_potential_result_flags {
  526.     uint16_t integer;
  527.     struct {
  528.         bool only_against_units:1;
  529.     } bitfield;
  530. };
  531. union FLAM_model_collision_geometry_flags {
  532.     uint32_t integer;
  533.     struct {
  534.         bool takes_shield_damage_for_children:1;
  535.         bool takes_body_damage_for_children:1;
  536.         bool always_shields_friendly_damage:1;
  537.         bool passes_area_damage_to_children:1;
  538.         bool parent_never_takes_body_damage_for_us:1;
  539.         bool only_damaged_by_explosives:1;
  540.         bool only_damaged_while_occupied:1;
  541.     } bitfield;
  542. };
  543. union FLAM_damage_materials_block_flags {
  544.     uint32_t integer;
  545.     struct {
  546.         bool head:1;
  547.     } bitfield;
  548. };
  549. union FLAM_damage_regions_block_flags {
  550.     uint32_t integer;
  551.     struct {
  552.         bool lives_until_object_dies:1;
  553.         bool forces_object_to_die:1;
  554.         bool dies_when_object_dies:1;
  555.         bool dies_when_object_is_damaged:1;
  556.         bool disappears_when_shield_is_off:1;
  557.         bool inhibits_melee_attack:1;
  558.         bool inhibits_weapon_attack:1;
  559.         bool inhibits_walking:1;
  560.         bool forces_drop_weapon:1;
  561.         bool causes_head_maimed_scream:1;
  562.     } bitfield;
  563. };
  564. union FLAM_leaf_flags {
  565.     uint16_t integer;
  566.     struct {
  567.         bool contains_double_sided_surfaces:1;
  568.     } bitfield;
  569. };
  570. union FLAM_surface_flags {
  571.     uint8_t integer;
  572.     struct {
  573.         bool two_sided:1;
  574.         bool invisible:1;
  575.         bool climbable:1;
  576.         bool breakable:1;
  577.     } bitfield;
  578. };
  579. union FLAM_device_flags {
  580.     uint32_t integer;
  581.     struct {
  582.         bool position_loops:1;
  583.         bool position_not_interpolated:1;
  584.     } bitfield;
  585. };
  586. union FLAM_device_machine_flags {
  587.     uint16_t integer;
  588.     struct {
  589.         bool pathfinding_obstacle:1;
  590.         bool but_not_when_open:1;
  591.         bool elevator:1;
  592.     } bitfield;
  593. };
  594. union FLAM_point_physics_flags {
  595.     uint32_t integer;
  596.     struct {
  597.         bool flamethrower_particle_collision:1;
  598.         bool collides_with_structures:1;
  599.         bool collides_with_water_surface:1;
  600.         bool uses_simple_wind:1;
  601.         bool uses_damped_wind:1;
  602.         bool no_gravity:1;
  603.     } bitfield;
  604. };
  605. union FLAM_structure_bsp_material_block_flags {
  606.     uint16_t integer;
  607.     struct {
  608.         bool coplanar:1;
  609.         bool fog_plane:1;
  610.     } bitfield;
  611. };
  612. union FLAM_structure_bsp_cluster_portal_block_flags {
  613.     uint32_t integer;
  614.     struct {
  615.         bool ai_cant_hear_through_this:1;
  616.     } bitfield;
  617. };
  618. union FLAM_scenario_flags {
  619.     uint16_t integer;
  620.     struct {
  621.         bool cortana_hack:1;
  622.         bool use_demo_ui:1;
  623.     } bitfield;
  624. };
  625. union FLAM_scenario_function_block_flags {
  626.     uint32_t integer;
  627.     struct {
  628.         bool scripted:1;
  629.         bool invert:1;
  630.         bool additive:1;
  631.         bool always_active:1;
  632.     } bitfield;
  633. };
  634. union FLAM_scenario_object_not_placed_flags {
  635.     uint16_t integer;
  636.     struct {
  637.         bool automatically:1;
  638.         bool on_easy:1;
  639.         bool on_normal:1;
  640.         bool on_hard:1;
  641.     } bitfield;
  642. };
  643. union FLAM_scenario_unit_flags {
  644.     uint32_t integer;
  645.     struct {
  646.         bool dead:1;
  647.     } bitfield;
  648. };
  649. union FLAM_scenario_vehicle_block_multiplayer_spawn_flags {
  650.     uint16_t integer;
  651.     struct {
  652.         bool slayer_default:1;
  653.         bool ctf_default:1;
  654.         bool king_default:1;
  655.         bool oddball_default:1;
  656.         bool:1;
  657.         bool:1;
  658.         bool:1;
  659.         bool:1;
  660.         bool slayer_allowed:1;
  661.         bool ctf_allowed:1;
  662.         bool king_allowed:1;
  663.         bool oddball_allowed:1;
  664.         bool:1;
  665.         bool:1;
  666.         bool:1;
  667.         bool:1;
  668.     } bitfield;
  669. };
  670. union FLAM_scenario_item_flags {
  671.     uint16_t integer;
  672.     struct {
  673.         bool initially_at_rest_doesnt_fall:1;
  674.         bool obsolete:1;
  675.         bool does_accelerate_moves_due_to_explosions:1;
  676.     } bitfield;
  677. };
  678. union FLAM_device_group_block_flags {
  679.     uint32_t integer;
  680.     struct {
  681.         bool can_change_only_once:1;
  682.     } bitfield;
  683. };
  684. union FLAM_scenario_device_flags {
  685.     uint32_t integer;
  686.     struct {
  687.         bool initially_open:1;
  688.         bool initially_off:1;
  689.         bool can_change_only_once:1;
  690.         bool position_reversed:1;
  691.         bool not_usable_from_any_side:1;
  692.     } bitfield;
  693. };
  694. union FLAM_scenario_control_block_flags {
  695.     uint32_t integer;
  696.     struct {
  697.         bool usable_from_both_sides:1;
  698.     } bitfield;
  699. };
  700. union FLAM_scenario_netgame_equipment_block_flags {
  701.     uint32_t integer;
  702.     struct {
  703.         bool levitate:1;
  704.     } bitfield;
  705. };
  706. union FLAM_scenario_starting_equipment_block_flags {
  707.     uint32_t integer;
  708.     struct {
  709.         bool no_grenades:1;
  710.         bool plasma_grenades:1;
  711.     } bitfield;
  712. };
  713. union FLAM_encounter_block_flags {
  714.     uint32_t integer;
  715.     struct {
  716.         bool not_initially_created:1;
  717.         bool respawn_enabled:1;
  718.         bool initially_blind:1;
  719.         bool initially_deaf:1;
  720.         bool initially_braindead:1;
  721.         bool use_3d_firing_positions:1;
  722.         bool manual_bsp_index_specified:1;
  723.     } bitfield;
  724. };
  725. union FLAM_squads_block_flags {
  726.     uint32_t integer;
  727.     struct {
  728.         bool:1;
  729.         bool never_search:1;
  730.         bool start_timer_immediately:1;
  731.         bool no_timer_delay_forever:1;
  732.         bool magic_sight_after_timer:1;
  733.         bool automatic_migration:1;
  734.     } bitfield;
  735. };
  736. union FLAM_squads_block_firing_position_group_indices {
  737.     uint32_t integer;
  738.     struct {
  739.         bool A:1;
  740.         bool B:1;
  741.         bool C:1;
  742.         bool D:1;
  743.         bool E:1;
  744.         bool F:1;
  745.         bool G:1;
  746.         bool H:1;
  747.         bool I:1;
  748.         bool J:1;
  749.         bool K:1;
  750.         bool L:1;
  751.         bool M:1;
  752.         bool N:1;
  753.         bool O:1;
  754.         bool P:1;
  755.         bool Q:1;
  756.         bool R:1;
  757.         bool S:1;
  758.         bool T:1;
  759.         bool U:1;
  760.         bool V:1;
  761.         bool W:1;
  762.         bool X:1;
  763.         bool Y:1;
  764.         bool Z:1;
  765.     } bitfield;
  766. };
  767. union FLAM_actor_starting_locations_block_flags {
  768.     uint8_t integer;
  769.     struct {
  770.         bool required:1;
  771.     } bitfield;
  772. };
  773. union FLAM_platoons_block_flags {
  774.     uint32_t integer;
  775.     struct {
  776.         bool flee_when_maneuvering:1;
  777.         bool say_advancing_when_maneuver:1;
  778.         bool start_in_defending_state:1;
  779.     } bitfield;
  780. };
  781. union FLAM_ai_command_list_block_flags {
  782.     uint32_t integer;
  783.     struct {
  784.         bool allow_initiative:1;
  785.         bool allow_targeting:1;
  786.         bool disable_looking:1;
  787.         bool disable_communication:1;
  788.         bool disable_falling_damage:1;
  789.         bool manual_bsp_index:1;
  790.     } bitfield;
  791. };
  792. union FLAM_ai_conversation_block_flags {
  793.     uint16_t integer;
  794.     struct {
  795.         bool stop_if_death:1;
  796.         bool stop_if_damaged:1;
  797.         bool stop_if_visible_enemy:1;
  798.         bool stop_if_alerted_to_enemy:1;
  799.         bool player_must_be_visible:1;
  800.         bool stop_other_actions:1;
  801.         bool keep_trying_to_play:1;
  802.         bool player_must_be_looking:1;
  803.     } bitfield;
  804. };
  805. union FLAM_ai_conversation_participant_block_flags {
  806.     uint16_t integer;
  807.     struct {
  808.         bool optional:1;
  809.         bool has_alternate:1;
  810.         bool is_alternate:1;
  811.     } bitfield;
  812. };
  813. union FLAM_ai_conversation_line_block_flags {
  814.     uint16_t integer;
  815.     struct {
  816.         bool addressee_look_at_speaker:1;
  817.         bool everyone_look_at_speaker:1;
  818.         bool everyone_look_at_addressee:1;
  819.         bool wait_after_until_told_to_advance:1;
  820.         bool wait_until_speaker_nearby:1;
  821.         bool wait_until_everyone_nearby:1;
  822.     } bitfield;
  823. };
  824. union FLAM_shader_radiosity_flags {
  825.     uint16_t integer;
  826.     struct {
  827.         bool simple_parameterization:1;
  828.         bool ignore_normals:1;
  829.         bool transparent_lit:1;
  830.     } bitfield;
  831. };
  832. union FLAM_shader_environment_flags {
  833.     uint16_t integer;
  834.     struct {
  835.         bool alpha_tested:1;
  836.         bool bump_map_is_specular_mask:1;
  837.         bool true_atmospheric_fog:1;
  838.     } bitfield;
  839. };
  840. union FLAM_shader_environment_diffuse_flags {
  841.     uint16_t integer;
  842.     struct {
  843.         bool rescale_detail_maps:1;
  844.         bool rescale_bump_map:1;
  845.     } bitfield;
  846. };
  847. union FLAM_shader_environment_specular_flags {
  848.     uint16_t integer;
  849.     struct {
  850.         bool overbright:1;
  851.         bool extra_shiny:1;
  852.         bool lightmap_is_specular:1;
  853.     } bitfield;
  854. };
  855. union FLAM_shader_environment_reflection_flags {
  856.     uint16_t integer;
  857.     struct {
  858.         bool dynamic_mirror:1;
  859.     } bitfield;
  860. };
  861. union FLAM_shader_model_flags {
  862.     uint16_t integer;
  863.     struct {
  864.         bool detail_after_reflection:1;
  865.         bool two_sided:1;
  866.         bool not_alpha_tested:1;
  867.         bool alpha_blended_decal:1;
  868.         bool true_atmospheric_fog:1;
  869.         bool disable_two_sided_culling:1;
  870.     } bitfield;
  871. };
  872. union FLAM_shader_model_self_illumination_flags {
  873.     uint16_t integer;
  874.     struct {
  875.         bool no_random_phase:1;
  876.     } bitfield;
  877. };
  878. union FLAM_shader_transparent_flags {
  879.     uint8_t integer;
  880.     struct {
  881.         bool alpha_tested:1;
  882.         bool decal:1;
  883.         bool two_sided:1;
  884.         bool first_map_is_in_screenspace:1;
  885.         bool draw_before_water:1;
  886.         bool ignore_effect:1;
  887.         bool scale_first_map_with_distance:1;
  888.         bool numeric:1;
  889.     } bitfield;
  890. };
  891. union FLAM_shader_transparent_generic_map_block_flags {
  892.     uint16_t integer;
  893.     struct {
  894.         bool unfiltered:1;
  895.         bool u_clamped:1;
  896.         bool v_clamped:1;
  897.     } bitfield;
  898. };
  899. union FLAM_shader_transparent_generic_stage_block_flags {
  900.     uint16_t integer;
  901.     struct {
  902.         bool color_mux:1;
  903.         bool alpha_mux:1;
  904.         bool a_out_controls_color0_animation:1;
  905.     } bitfield;
  906. };
  907. union FLAM_shader_transparent_chicago_map_block_flags {
  908.     uint16_t integer;
  909.     struct {
  910.         bool unfiltered:1;
  911.         bool alpha_replicate:1;
  912.         bool u_clamped:1;
  913.         bool v_clamped:1;
  914.     } bitfield;
  915. };
  916. union FLAM_shader_transparent_chicago_extra_flags {
  917.     uint32_t integer;
  918.     struct {
  919.         bool dont_fade_active_camouflage:1;
  920.         bool numeric_countdown_timer:1;
  921.     } bitfield;
  922. };
  923. union FLAM_shader_transparent_water_flags {
  924.     uint16_t integer;
  925.     struct {
  926.         bool base_map_alpha_modulates_reflection:1;
  927.         bool base_map_color_modulates_background:1;
  928.         bool atmospheric_fog:1;
  929.         bool draw_before_fog:1;
  930.     } bitfield;
  931. };
  932. union FLAM_shader_transparent_glass_flags {
  933.     uint16_t integer;
  934.     struct {
  935.         bool alpha_tested:1;
  936.         bool decal:1;
  937.         bool two_sided:1;
  938.         bool bump_map_is_specular_mask:1;
  939.     } bitfield;
  940. };
  941. union FLAM_shader_transparent_meter_flags {
  942.     uint16_t integer;
  943.     struct {
  944.         bool decal:1;
  945.         bool two_sided:1;
  946.         bool flash_color_is_negative:1;
  947.         bool tint_mode_2:1;
  948.         bool unfiltered:1;
  949.     } bitfield;
  950. };
  951. union FLAM_actor_flags {
  952.     uint32_t integer;
  953.     struct {
  954.         bool can_see_in_darkness:1;
  955.         bool sneak_uncovering_target:1;
  956.         bool sneak_uncovering_pursuit_position:1;
  957.         bool:1;
  958.         bool shoot_at_targets_last_location:1;
  959.         bool try_to_stay_still_when_crouched:1;
  960.         bool crouch_when_not_in_combat:1;
  961.         bool crouch_when_guarding:1;
  962.         bool:1;
  963.         bool must_crouch_to_shoot:1;
  964.         bool panic_when_surprised:1;
  965.         bool always_charge_at_enemies:1;
  966.         bool gets_in_vehicles_with_player:1;
  967.         bool start_firing_before_aligned:1;
  968.         bool standing_must_move_forward:1;
  969.         bool crouching_must_move_forward:1;
  970.         bool defensive_crouch_while_charging:1;
  971.         bool use_stalking_behavior:1;
  972.         bool stalking_freeze_if_exposed:1;
  973.         bool always_berserk_in_attacking_mode:1;
  974.         bool berserking_uses_panicked_movement:1;
  975.         bool flying:1;
  976.         bool panicked_by_unopposable_enemy:1;
  977.         bool crouch_when_hiding_from_unopposable:1;
  978.         bool always_charge_in_attacking_mode:1;
  979.         bool dive_off_ledges:1;
  980.         bool swarm:1;
  981.         bool suicidal_melee_attack:1;
  982.         bool cannot_move_while_crouching:1;
  983.         bool fixed_crouch_facing:1;
  984.         bool crouch_when_in_line_of_fire:1;
  985.         bool avoid_friends_line_of_fire:1;
  986.     } bitfield;
  987. };
  988. union FLAM_actor_more_flags {
  989.     uint32_t integer;
  990.     struct {
  991.         bool avoid_all_enemy_attack_vectors:1;
  992.         bool must_stand_to_fire:1;
  993.         bool must_stop_to_fire:1;
  994.         bool disallow_vehicle_combat:1;
  995.         bool pathfinding_ignores_danger:1;
  996.         bool panic_in_groups:1;
  997.         bool no_corpse_shooting:1;
  998.     } bitfield;
  999. };
  1000. union FLAM_actor_variant_flags {
  1001.     uint32_t integer;
  1002.     struct {
  1003.         bool can_shoot_while_flying:1;
  1004.         bool interpolate_color_in_hsv:1;
  1005.         bool has_unlimited_grenades:1;
  1006.         bool moveswitch_stay_with_friends:1;
  1007.         bool active_camouflage:1;
  1008.         bool super_active_camouflage:1;
  1009.         bool cannot_use_ranged_weapons:1;
  1010.         bool prefer_passenger_seat:1;
  1011.     } bitfield;
  1012. };
  1013. union FLAM_sky_light_block_flags {
  1014.     uint32_t integer;
  1015.     struct {
  1016.         bool affects_exteriors:1;
  1017.         bool affects_interiors:1;
  1018.     } bitfield;
  1019. };
  1020. union FLAM_lens_flare_flags {
  1021.     uint16_t integer;
  1022.     struct {
  1023.         bool sun:1;
  1024.     } bitfield;
  1025. };
  1026. union FLAM_lens_flare_reflection_block_flags {
  1027.     uint16_t integer;
  1028.     struct {
  1029.         bool align_rotation_with_screen_center:1;
  1030.         bool radius_not_scaled_by_distance:1;
  1031.         bool radius_scaled_by_occlusion_factor:1;
  1032.         bool occluded_by_solid_objects:1;
  1033.     } bitfield;
  1034. };
  1035. union FLAM_fog_flags {
  1036.     uint32_t integer;
  1037.     struct {
  1038.         bool is_water:1;
  1039.         bool atmosphere_dominant:1;
  1040.         bool fog_screen_only:1;
  1041.     } bitfield;
  1042. };
  1043. union FLAM_fog_screen_layer_flags {
  1044.     uint16_t integer;
  1045.     struct {
  1046.         bool no_environment_multipass:1;
  1047.         bool no_model_multipass:1;
  1048.         bool no_texture_based_falloff:1;
  1049.     } bitfield;
  1050. };
  1051. union FLAM_decal_flags {
  1052.     uint16_t integer;
  1053.     struct {
  1054.         bool geometry_inherited_by_next_decal_in_chain:1;
  1055.         bool interpolate_color_in_hsv:1;
  1056.         bool more_colors:1;
  1057.         bool no_random_rotation:1;
  1058.         bool water_effect:1;
  1059.         bool sapien_snap_to_axis:1;
  1060.         bool sapien_incremental_counter:1;
  1061.         bool animation_loop:1;
  1062.         bool preserve_aspect:1;
  1063.     } bitfield;
  1064. };
  1065. union FLAM_damage_effect_flags {
  1066.     uint32_t integer;
  1067.     struct {
  1068.         bool dont_scale_damage_by_distance:1;
  1069.     } bitfield;
  1070. };
  1071. union FLAM_damage_effect_damage_flags {
  1072.     uint32_t integer;
  1073.     struct {
  1074.         bool does_not_hurt_owner:1;
  1075.         bool can_cause_headshots:1;
  1076.         bool pings_resistant_units:1;
  1077.         bool does_not_hurt_friends:1;
  1078.         bool does_not_ping_units:1;
  1079.         bool detonates_explosives:1;
  1080.         bool only_hurts_shields:1;
  1081.         bool causes_flaming_death:1;
  1082.         bool damage_indicators_always_point_down:1;
  1083.         bool skips_shields:1;
  1084.         bool only_hurts_one_infection_form:1;
  1085.         bool can_cause_multiplayer_headshots:1;
  1086.         bool infection_form_pop:1;
  1087.     } bitfield;
  1088. };
  1089. union FLAM_weapon_hud_interface_flags {
  1090.     uint16_t integer;
  1091.     struct {
  1092.         bool use_parent_hud_flashing_parameters:1;
  1093.     } bitfield;
  1094. };
  1095. union FLAM_hud_scaling_flags {
  1096.     uint16_t integer;
  1097.     struct {
  1098.         bool dont_scale_offset:1;
  1099.         bool dont_scale_size:1;
  1100.         bool use_high_resolution_scale:1;
  1101.     } bitfield;
  1102. };
  1103. union FLAM_hud_flash_flags {
  1104.     uint16_t integer;
  1105.     struct {
  1106.         bool reverse_default_flashing_colors:1;
  1107.     } bitfield;
  1108. };
  1109. union FLAM_hud_meter_flags {
  1110.     uint8_t integer;
  1111.     struct {
  1112.         bool use_min_max_for_state_changes:1;
  1113.         bool interpolate_between_min_max_flash_colors_as_state_changes:1;
  1114.         bool interpolate_color_along_hsv_space:1;
  1115.         bool more_colors_for_hsv_interpolation:1;
  1116.         bool invert_interpolation:1;
  1117.     } bitfield;
  1118. };
  1119. union FLAM_hud_number_flags {
  1120.     uint8_t integer;
  1121.     struct {
  1122.         bool show_leading_zeros:1;
  1123.         bool only_show_when_zoomed:1;
  1124.         bool draw_a_trailing_m:1;
  1125.     } bitfield;
  1126. };
  1127. union FLAM_weapon_hud_number_block_weapon_specific_flags {
  1128.     uint16_t integer;
  1129.     struct {
  1130.         bool divide_number_by_clip_size:1;
  1131.     } bitfield;
  1132. };
  1133. union FLAM_weapon_hud_crosshair_item_block_flags {
  1134.     uint32_t integer;
  1135.     struct {
  1136.         bool flashes_when_active:1;
  1137.         bool not_a_sprite:1;
  1138.         bool show_only_when_zoomed:1;
  1139.         bool show_sniper_data:1;
  1140.         bool hide_area_outside_reticle:1;
  1141.         bool one_zoom_level:1;
  1142.         bool dont_show_when_zoomed:1;
  1143.     } bitfield;
  1144. };
  1145. union FLAM_weapon_hud_overlay_block_type {
  1146.     uint16_t integer;
  1147.     struct {
  1148.         bool show_on_flashing:1;
  1149.         bool show_on_empty:1;
  1150.         bool show_on_reload_overheating:1;
  1151.         bool show_on_default:1;
  1152.         bool show_always:1;
  1153.     } bitfield;
  1154. };
  1155. union FLAM_hud_overlay_flags {
  1156.     uint32_t integer;
  1157.     struct {
  1158.         bool flashes_when_active:1;
  1159.     } bitfield;
  1160. };
  1161. union FLAM_global_hud_screen_effect_definition_flags {
  1162.     uint16_t integer;
  1163.     struct {
  1164.         bool only_when_zoomed:1;
  1165.     } bitfield;
  1166. };
  1167. union FLAM_global_hud_screen_effect_definition_night_vision_flags {
  1168.     uint16_t integer;
  1169.     struct {
  1170.         bool only_when_zoomed:1;
  1171.         bool connect_to_flashlight:1;
  1172.         bool masked:1;
  1173.     } bitfield;
  1174. };
  1175. union FLAM_global_hud_screen_effect_definition_desaturation_flags {
  1176.     uint16_t integer;
  1177.     struct {
  1178.         bool only_when_zoomed:1;
  1179.         bool connect_to_flashlight:1;
  1180.         bool additive:1;
  1181.         bool masked:1;
  1182.     } bitfield;
  1183. };
  1184. union FLAM_hud_messaging_flags {
  1185.     uint8_t integer;
  1186.     struct {
  1187.         bool use_text_from_string_list_instead:1;
  1188.         bool override_default_color:1;
  1189.         bool width_offset_is_absolute_icon_width:1;
  1190.     } bitfield;
  1191. };
  1192. union FLAM_grenade_hud_overlay_block_type {
  1193.     uint16_t integer;
  1194.     struct {
  1195.         bool show_on_flashing:1;
  1196.         bool show_on_empty:1;
  1197.         bool show_on_default:1;
  1198.         bool show_always:1;
  1199.     } bitfield;
  1200. };
  1201. union FLAM_grenade_hud_sound_block_latched_to {
  1202.     uint32_t integer;
  1203.     struct {
  1204.         bool low_grenade_count:1;
  1205.         bool no_grenades_left:1;
  1206.         bool throw_on_no_grenades:1;
  1207.     } bitfield;
  1208. };
  1209. union FLAM_unit_hud_auxiliary_overlay_block_flags {
  1210.     uint16_t integer;
  1211.     struct {
  1212.         bool use_team_color:1;
  1213.     } bitfield;
  1214. };
  1215. union FLAM_unit_hud_sound_block_latched_to {
  1216.     uint32_t integer;
  1217.     struct {
  1218.         bool shield_recharging:1;
  1219.         bool shield_damaged:1;
  1220.         bool shield_low:1;
  1221.         bool shield_empty:1;
  1222.         bool health_low:1;
  1223.         bool health_empty:1;
  1224.         bool health_minor_damage:1;
  1225.         bool health_major_damage:1;
  1226.     } bitfield;
  1227. };
  1228. union FLAM_unit_hud_auxiliary_panel_block_meter_flags {
  1229.     uint32_t integer;
  1230.     struct {
  1231.         bool show_only_when_active:1;
  1232.         bool flash_once_if_activated_while_disabled:1;
  1233.     } bitfield;
  1234. };
  1235. union FLAM_hud_waypoint_arrow_block_flags {
  1236.     uint32_t integer;
  1237.     struct {
  1238.         bool dont_rotate_when_pointing_offscreen:1;
  1239.     } bitfield;
  1240. };
  1241. union FLAM_detail_object_type_block_type_flags {
  1242.     uint8_t integer;
  1243.     struct {
  1244.         bool:1;
  1245.         bool:1;
  1246.         bool interpolate_color_in_hsv:1;
  1247.         bool more_colors:1;
  1248.     } bitfield;
  1249. };
  1250. union FLAM_ui_widget_definition_flags {
  1251.     uint32_t integer;
  1252.     struct {
  1253.         bool pass_unhandled_events_to_focused_child:1;
  1254.         bool pause_game_time:1;
  1255.         bool flash_background_bitmap:1;
  1256.         bool dpad_up_down_tabs_through_children:1;
  1257.         bool dpad_left_right_tabs_through_children:1;
  1258.         bool dpad_up_down_tabs_through_list_items:1;
  1259.         bool dpad_left_right_tabs_through_list_items:1;
  1260.         bool dont_focus_a_specific_child_widget:1;
  1261.         bool pass_unhandled_events_to_all_children:1;
  1262.         bool render_regardless_of_controller_index:1;
  1263.         bool pass_handled_events_to_all_children:1;
  1264.         bool return_to_main_menu_if_no_history:1;
  1265.         bool always_use_tag_controller_index:1;
  1266.         bool always_use_nifty_render_fx:1;
  1267.         bool dont_push_history:1;
  1268.         bool force_handle_mouse:1;
  1269.     } bitfield;
  1270. };
  1271. union FLAM_event_handler_references_block_flags {
  1272.     uint32_t integer;
  1273.     struct {
  1274.         bool close_current_widget:1;
  1275.         bool close_other_widget:1;
  1276.         bool close_all_widgets:1;
  1277.         bool open_widget:1;
  1278.         bool reload_self:1;
  1279.         bool reload_other_widget:1;
  1280.         bool give_focus_to_widget:1;
  1281.         bool run_function:1;
  1282.         bool replace_self_with_widget:1;
  1283.         bool go_back_to_previous_widget:1;
  1284.         bool run_scenario_script:1;
  1285.         bool try_to_branch_on_failure:1;
  1286.     } bitfield;
  1287. };
  1288. union FLAM_ui_widget_definition_text_box_flags {
  1289.     uint32_t integer;
  1290.     struct {
  1291.         bool editable:1;
  1292.         bool password:1;
  1293.         bool flashing:1;
  1294.         bool dont_do_that_weird_focus_test:1;
  1295.     } bitfield;
  1296. };
  1297. union FLAM_ui_widget_definition_list_items_flags {
  1298.     uint32_t integer;
  1299.     struct {
  1300.         bool list_items_generated_in_code:1;
  1301.         bool list_items_from_string_list_tag:1;
  1302.         bool list_items_only_one_tooltip:1;
  1303.         bool list_single_preview_no_scroll:1;
  1304.     } bitfield;
  1305. };
  1306. union FLAM_conditional_widget_reference_block_flags {
  1307.     uint32_t integer;
  1308.     struct {
  1309.         bool load_if_event_handler_function_fails:1;
  1310.     } bitfield;
  1311. };
  1312. union FLAM_child_widget_reference_block_flags {
  1313.     uint32_t integer;
  1314.     struct {
  1315.         bool use_custom_controller_index:1;
  1316.     } bitfield;
  1317. };
  1318. union FLAM_input_device_defaults_flags {
  1319.     uint16_t integer;
  1320.     struct {
  1321.         bool:1;
  1322.     } bitfield;
  1323. };
  1324. #endif /* bitmasks_h */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement