diff --git a/mods/Animated Lead Box/gamedata/anims/camera_effects/weapon/lead_box_hand_draw.anm b/mods/Animated Lead Box/gamedata/anims/camera_effects/weapon/lead_box_hand_draw.anm new file mode 100644 index 000000000..c08c3d1bd Binary files /dev/null and b/mods/Animated Lead Box/gamedata/anims/camera_effects/weapon/lead_box_hand_draw.anm differ diff --git a/mods/Animated Lead Box/gamedata/anims/camera_effects/weapon/lead_box_hand_holst.anm b/mods/Animated Lead Box/gamedata/anims/camera_effects/weapon/lead_box_hand_holst.anm new file mode 100644 index 000000000..c08c3d1bd Binary files /dev/null and b/mods/Animated Lead Box/gamedata/anims/camera_effects/weapon/lead_box_hand_holst.anm differ diff --git a/mods/Animated Lead Box/gamedata/configs/mod_system_af_box_anim.ltx b/mods/Animated Lead Box/gamedata/configs/mod_system_af_box_anim.ltx new file mode 100644 index 000000000..abae01dad --- /dev/null +++ b/mods/Animated Lead Box/gamedata/configs/mod_system_af_box_anim.ltx @@ -0,0 +1,557 @@ +![af_misery_bread] +kind = i_arty + +[lead_box_af_fire_hud]:wpn_binoc +inv_weight = 0 +sprint_allowed = false +hud = lead_box_af_fire_hud_anm +slot = 13 +zoom_enabled = false +default_to_ruck = false +snd_draw = af_box\box_pack +hud_fov = 0.6 + +[lead_box_af_fire_hud_anm]:wpn_binoc_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,-0.02,0 +hands_orientation_16x9 = 0,0,0 +hands_position = 0,-0.02,0 +hands_orientation = 0,0,0 + +item_visual = dynamics\af_box\lead_box_fire + +anm_show = lead_box_hand_draw,lead_box_itm_draw +anm_idle = idle,idle + + +[lead_box_af_electra_moonlight_hud]:lead_box_af_fire_hud +hud = lead_box_af_electra_moonlight_hud_anm + +[lead_box_af_electra_moonlight_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_moonlight + + +[lead_box_af_baloon_hud]:lead_box_af_fire_hud +hud = lead_box_af_baloon_hud_anm + +[lead_box_af_baloon_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_baloon + + +[lead_box_af_blood_hud]:lead_box_af_fire_hud +hud = lead_box_af_blood_hud_anm + +[lead_box_af_blood_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_blood + + +[lead_box_af_vyvert_hud]:lead_box_af_fire_hud +hud = lead_box_af_vyvert_hud_anm + +[lead_box_af_vyvert_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_vyvert + + +[lead_box_af_sponge_hud]:lead_box_af_fire_hud +hud = lead_box_af_sponge_hud_anm + +[lead_box_af_sponge_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_sponge + + +[lead_box_af_soul_hud]:lead_box_af_fire_hud +hud = lead_box_af_soul_hud_anm + +[lead_box_af_soul_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_soul + + +[lead_box_af_gravi_hud]:lead_box_af_fire_hud +hud = lead_box_af_gravi_hud_anm + +[lead_box_af_gravi_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_gravi + + +[lead_box_af_eye_hud]:lead_box_af_fire_hud +hud = lead_box_af_eye_hud_anm + +[lead_box_af_eye_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_eye + + +[lead_box_af_electra_flash_hud]:lead_box_af_fire_hud +hud = lead_box_af_electra_flash_hud_anm + +[lead_box_af_electra_flash_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_electra_flash + + +[lead_box_af_cristall_flower_hud]:lead_box_af_fire_hud +hud = lead_box_af_cristall_flower_hud_anm + +[lead_box_af_cristall_flower_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_cristall_flower + + +[lead_box_af_fireball_hud]:lead_box_af_fire_hud +hud = lead_box_af_fireball_hud_anm + +[lead_box_af_fireball_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_fireball + + +[lead_box_af_compass_hud]:lead_box_af_fire_hud +hud = lead_box_af_compass_hud_anm + +[lead_box_af_compass_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_compass + + +[lead_box_af_ice_hud]:lead_box_af_fire_hud +hud = lead_box_af_ice_hud_anm + +[lead_box_af_ice_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_ice + + +[lead_box_af_itcher_hud]:lead_box_af_fire_hud +hud = lead_box_af_itcher_hud_anm + +[lead_box_af_itcher_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_itcher + + +[lead_box_af_pin_hud]:lead_box_af_fire_hud +hud = lead_box_af_pin_hud_anm + +[lead_box_af_pin_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_pin + + +[lead_box_af_cristall_hud]:lead_box_af_fire_hud +hud = lead_box_af_cristall_hud_anm + +[lead_box_af_cristall_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_cristall + + +[lead_box_af_mincer_meat_hud]:lead_box_af_fire_hud +hud = lead_box_af_mincer_meat_hud_anm + +[lead_box_af_mincer_meat_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_mincer_meat + + +[lead_box_af_bracelet_hud]:lead_box_af_fire_hud +hud = lead_box_af_bracelet_hud_anm + +[lead_box_af_bracelet_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_bracelet + + +[lead_box_af_electra_sparkler_hud]:lead_box_af_fire_hud +hud = lead_box_af_electra_sparkler_hud_anm + +[lead_box_af_electra_sparkler_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_electra_sparkler + + +[lead_box_af_ring_hud]:lead_box_af_fire_hud +hud = lead_box_af_ring_hud_anm + +[lead_box_af_ring_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_ring + + +[lead_box_af_lobster_eyes_hud]:lead_box_af_fire_hud +hud = lead_box_af_lobster_eyes_hud_anm + +[lead_box_af_lobster_eyes_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_lobster_eyes + + +[lead_box_af_black_spray_hud]:lead_box_af_fire_hud +hud = lead_box_af_black_spray_hud_anm + +[lead_box_af_black_spray_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_black_spray + + +[lead_box_af_medusa_hud]:lead_box_af_fire_hud +hud = lead_box_af_medusa_hud_anm + +[lead_box_af_medusa_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_medusa + + +[lead_box_af_empty_hud]:lead_box_af_fire_hud +hud = lead_box_af_empty_hud_anm + +[lead_box_af_empty_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_empty + + +[lead_box_af_full_empty_hud]:lead_box_af_fire_hud +hud = lead_box_af_full_empty_hud_anm + +[lead_box_af_full_empty_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_full_empty + + +[lead_box_af_night_star_hud]:lead_box_af_fire_hud +hud = lead_box_af_night_star_hud_anm + +[lead_box_af_night_star_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_night_star + + +[lead_box_af_gold_fish_hud]:lead_box_af_fire_hud +hud = lead_box_af_gold_fish_hud_anm + +[lead_box_af_gold_fish_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_gold_fish + + +[lead_box_af_dummy_glassbeads_hud]:lead_box_af_fire_hud +hud = lead_box_af_dummy_glassbeads_hud_anm + +[lead_box_af_dummy_glassbeads_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_dummy_glassbeads + + +[lead_box_af_dummy_battery_hud]:lead_box_af_fire_hud +hud = lead_box_af_dummy_battery_hud_anm + +[lead_box_af_dummy_battery_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_dummy_battery + + +[lead_box_af_dummy_dummy_hud]:lead_box_af_fire_hud +hud = lead_box_af_dummy_dummy_hud_anm + +[lead_box_af_dummy_dummy_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_dummy_dummy + + +[lead_box_af_fuzz_kolobok_hud]:lead_box_af_fire_hud +hud = lead_box_af_fuzz_kolobok_hud_anm + +[lead_box_af_fuzz_kolobok_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_fuzz_kolobok + + +[lead_box_af_glass_hud]:lead_box_af_fire_hud +hud = lead_box_af_glass_hud_anm + +[lead_box_af_glass_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_glass + + +[lead_box_af_oasis_heart_hud]:lead_box_af_fire_hud +hud = lead_box_af_oasis_heart_hud_anm + +[lead_box_af_oasis_heart_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_oasis_heart + + +[lead_box_af_quest_b14_twisted_hud]:lead_box_af_fire_hud +hud = lead_box_af_quest_b14_twisted_hud_anm + +[lead_box_af_quest_b14_twisted_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_half_artifact + + +[lead_box_af_misery_bread_hud]:lead_box_af_fire_hud +hud = lead_box_af_misery_bread_hud_anm + +[lead_box_af_misery_bread_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_bread + + +[lead_box_af_death_lamp_hud]:lead_box_af_fire_hud +hud = lead_box_af_death_lamp_hud_anm + +[lead_box_af_death_lamp_hud_anm]:lead_box_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_death_lamp +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +[lead_box_holst_af_fire_hud]:wpn_binoc +inv_weight = 0 +sprint_allowed = false +hud = lead_box_holst_af_fire_hud_anm +slot = 13 +zoom_enabled = false +default_to_ruck = false +snd_draw = af_box\box_pack +hud_fov = 0.6 + +[lead_box_holst_af_fire_hud_anm]:wpn_binoc_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,-0.02,0 +hands_orientation_16x9 = 0,0,0 +hands_position = 0,-0.02,0 +hands_orientation = 0,0,0 + +item_visual = dynamics\af_box\lead_box_fire + +anm_show = lead_box_hand_holst,lead_box_itm_holst +anm_idle = idle,idle + + +[lead_box_holst_af_electra_moonlight_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_electra_moonlight_hud_anm + +[lead_box_holst_af_electra_moonlight_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_moonlight + + +[lead_box_holst_af_baloon_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_baloon_hud_anm + +[lead_box_holst_af_baloon_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_baloon + + +[lead_box_holst_af_blood_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_blood_hud_anm + +[lead_box_holst_af_blood_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_blood + + +[lead_box_holst_af_vyvert_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_vyvert_hud_anm + +[lead_box_holst_af_vyvert_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_vyvert + + +[lead_box_holst_af_sponge_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_sponge_hud_anm + +[lead_box_holst_af_sponge_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_sponge + + +[lead_box_holst_af_soul_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_soul_hud_anm + +[lead_box_holst_af_soul_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_soul + + +[lead_box_holst_af_gravi_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_gravi_hud_anm + +[lead_box_holst_af_gravi_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_gravi + + +[lead_box_holst_af_eye_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_eye_hud_anm + +[lead_box_holst_af_eye_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_eye + + +[lead_box_holst_af_electra_flash_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_electra_flash_hud_anm + +[lead_box_holst_af_electra_flash_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_electra_flash + + +[lead_box_holst_af_cristall_flower_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_cristall_flower_hud_anm + +[lead_box_holst_af_cristall_flower_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_cristall_flower + + +[lead_box_holst_af_fireball_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_fireball_hud_anm + +[lead_box_holst_af_fireball_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_fireball + + +[lead_box_holst_af_compass_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_compass_hud_anm + +[lead_box_holst_af_compass_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_compass + + +[lead_box_holst_af_ice_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_ice_hud_anm + +[lead_box_holst_af_ice_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_ice + + +[lead_box_holst_af_itcher_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_itcher_hud_anm + +[lead_box_holst_af_itcher_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_itcher + + +[lead_box_holst_af_pin_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_pin_hud_anm + +[lead_box_holst_af_pin_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_pin + + +[lead_box_holst_af_cristall_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_cristall_hud_anm + +[lead_box_holst_af_cristall_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_cristall + + +[lead_box_holst_af_mincer_meat_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_mincer_meat_hud_anm + +[lead_box_holst_af_mincer_meat_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_mincer_meat + + +[lead_box_holst_af_bracelet_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_bracelet_hud_anm + +[lead_box_holst_af_bracelet_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_bracelet + + +[lead_box_holst_af_electra_sparkler_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_electra_sparkler_hud_anm + +[lead_box_holst_af_electra_sparkler_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_electra_sparkler + + +[lead_box_holst_af_ring_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_ring_hud_anm + +[lead_box_holst_af_ring_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_ring + + +[lead_box_holst_af_lobster_eyes_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_lobster_eyes_hud_anm + +[lead_box_holst_af_lobster_eyes_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_lobster_eyes + + +[lead_box_holst_af_black_spray_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_black_spray_hud_anm + +[lead_box_holst_af_black_spray_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_black_spray + + +[lead_box_holst_af_medusa_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_medusa_hud_anm + +[lead_box_holst_af_medusa_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_medusa + + +[lead_box_holst_af_empty_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_empty_hud_anm + +[lead_box_holst_af_empty_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_empty + + +[lead_box_holst_af_full_empty_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_full_empty_hud_anm + +[lead_box_holst_af_full_empty_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_full_empty + + +[lead_box_holst_af_night_star_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_night_star_hud_anm + +[lead_box_holst_af_night_star_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_night_star + + +[lead_box_holst_af_gold_fish_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_gold_fish_hud_anm + +[lead_box_holst_af_gold_fish_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_gold_fish + + +[lead_box_holst_af_dummy_glassbeads_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_dummy_glassbeads_hud_anm + +[lead_box_holst_af_dummy_glassbeads_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_dummy_glassbeads + + +[lead_box_holst_af_dummy_battery_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_dummy_battery_hud_anm + +[lead_box_holst_af_dummy_battery_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_dummy_battery + + +[lead_box_holst_af_dummy_dummy_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_dummy_dummy_hud_anm + +[lead_box_holst_af_dummy_dummy_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_dummy_dummy + + +[lead_box_holst_af_fuzz_kolobok_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_fuzz_kolobok_hud_anm + +[lead_box_holst_af_fuzz_kolobok_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_fuzz_kolobok + + +[lead_box_holst_af_glass_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_glass_hud_anm + +[lead_box_holst_af_glass_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_glass + + +[lead_box_holst_af_oasis_heart_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_oasis_heart_hud_anm + +[lead_box_holst_af_oasis_heart_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_oasis_heart + + +[lead_box_holst_af_quest_b14_twisted_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_quest_b14_twisted_hud_anm + +[lead_box_holst_af_quest_b14_twisted_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_half_artifact + + +[lead_box_holst_af_misery_bread_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_misery_bread_hud_anm + +[lead_box_holst_af_misery_bread_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_bread + + +[lead_box_holst_af_death_lamp_hud]:lead_box_holst_af_fire_hud +hud = lead_box_holst_af_death_lamp_hud_anm + +[lead_box_holst_af_death_lamp_hud_anm]:lead_box_holst_af_fire_hud_anm +item_visual = dynamics\af_box\lead_box_death_lamp \ No newline at end of file diff --git a/mods/Animated Lead Box/gamedata/meshes/anomaly_weapons/hud_hands_animation/af_box_hud_hands_anm.omf b/mods/Animated Lead Box/gamedata/meshes/anomaly_weapons/hud_hands_animation/af_box_hud_hands_anm.omf new file mode 100644 index 000000000..b9cdda383 Binary files /dev/null and b/mods/Animated Lead Box/gamedata/meshes/anomaly_weapons/hud_hands_animation/af_box_hud_hands_anm.omf differ diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_baloon.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_baloon.ogf new file mode 100644 index 000000000..e2766caaa --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_baloon.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:532a78aea8c2158c7df8fe0069fab2098fc9025b6d89d859dfcbd5ffdf25ca07 +size 98542 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_black_spray.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_black_spray.ogf new file mode 100644 index 000000000..16d0c5ee8 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_black_spray.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f7784679766a37969e957e40e4c16b293de39547e013ee0e261437cd77aa67a +size 175857 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_blood.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_blood.ogf new file mode 100644 index 000000000..64afb2882 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_blood.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36598fa9ba22b88f416fb4146dff077931e71e24745ebe06bb08e4356b9426d5 +size 104400 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_bracelet.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_bracelet.ogf new file mode 100644 index 000000000..288eb9206 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_bracelet.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dce27cdb2fafa7fbde5f4e6f4c23078e3a8a26e4c838056c9ed5544f88950162 +size 724368 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_bread.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_bread.ogf new file mode 100644 index 000000000..46cd4f61b --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_bread.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62ec34baadc126e512a832149ee4d389f96040b08ad31be5cd1ba25212847126 +size 68510 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_compass.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_compass.ogf new file mode 100644 index 000000000..8eb7ef2e8 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_compass.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85acb175e7e1639359de5b5bb1504c39d0c142c509d56edf6a7427d8ccd46aaa +size 98046 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_cristall.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_cristall.ogf new file mode 100644 index 000000000..1ab2e8f2a --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_cristall.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7613124d4dbbbe192249e0fc47d153c4f71eb7c5b67e0e369607a37bbc8f1925 +size 96081 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_cristall_flower.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_cristall_flower.ogf new file mode 100644 index 000000000..abb4b3e96 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_cristall_flower.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5ccf42b956097ff7ee542574f7db344b873c673a4d79c51dcdd00404d0b82469 +size 121312 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_death_lamp.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_death_lamp.ogf new file mode 100644 index 000000000..5eadf2ede --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_death_lamp.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c1fc9223b38754027c2a899878f6e595c869518931a0e155b6cede9ae4fabc5a +size 248426 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_battery.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_battery.ogf new file mode 100644 index 000000000..1d288cdcf --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_battery.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f2a5f930aab18ddc19e714a9d25e5fdb7d7b8fd7bda830f402b14a1748056472 +size 451870 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_dummy.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_dummy.ogf new file mode 100644 index 000000000..987a5cd94 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_dummy.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79e8a935891a0333c69fb10d11a770f505b65d5086cccdb198f2703cab989ecb +size 221631 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_glassbeads.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_glassbeads.ogf new file mode 100644 index 000000000..5ea0e5d24 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_dummy_glassbeads.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9023c38b2b0b9010190f0824598255e90441e515ffd772e1cea8200bc9695a13 +size 159915 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_electra_flash.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_electra_flash.ogf new file mode 100644 index 000000000..9c32640cb --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_electra_flash.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58541ebb5b95f6a06160079b317f01c5a0772c51e4fb80a8d58e987705691780 +size 251832 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_electra_sparkler.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_electra_sparkler.ogf new file mode 100644 index 000000000..1840fca87 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_electra_sparkler.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46932d3f7fa0e9196f5f08beff7d9571e8fa9f27f1d9462a6e6032374c8c7565 +size 951168 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_empty.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_empty.ogf new file mode 100644 index 000000000..b510319d8 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_empty.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e4409cf2ca51675e7ffc1b41bb7678147f0a8a378a8e9c7e3838ee0e05e8be48 +size 72976 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_eye.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_eye.ogf new file mode 100644 index 000000000..ba4a3195f --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_eye.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aaad226ad9f9d617af01534dc6816151cee4b0a8f7544cee9583ed3f099a2bc +size 87280 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fire.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fire.ogf new file mode 100644 index 000000000..58cc5a14d --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fire.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7fa82e951f84ca23ce92873bf72cea489b0ec77609612f831917ddf7e0866a45 +size 83164 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fireball.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fireball.ogf new file mode 100644 index 000000000..8b725cccf --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fireball.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b8d010f9ea25cdc68987926233b9502b60ee28ca0edc6b7d64bb6c6c08cec37 +size 197096 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_full_empty.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_full_empty.ogf new file mode 100644 index 000000000..2eccc18f2 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_full_empty.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ff62cf1ec1d92cab6d2aa9f93f55cdfd21d436aa2655ec1002a78a0a1a812975 +size 112666 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fuzz_kolobok.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fuzz_kolobok.ogf new file mode 100644 index 000000000..27e07f179 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_fuzz_kolobok.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4542d12007c15330adfa687a67fd866c74211ba476ed302de91e903339eca47 +size 705879 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_glass.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_glass.ogf new file mode 100644 index 000000000..0d0d94c18 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_glass.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9120099b19cda9a8d0532aeb60c4e12379bca6807876973b30688558a9ed970 +size 349872 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_gold_fish.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_gold_fish.ogf new file mode 100644 index 000000000..4a8399f16 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_gold_fish.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85bac084866c8a38a5e38418294a2896020d9938d35a61e4f2facf7cf552fe1b +size 161063 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_gravi.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_gravi.ogf new file mode 100644 index 000000000..91154e621 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_gravi.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:66f73acca8a4d36d260552d6f635f16001131cb1284d976888aa24f530fa2e12 +size 103583 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_half_artifact.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_half_artifact.ogf new file mode 100644 index 000000000..7ab7f9555 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_half_artifact.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85bd7142eba0e4865f217b832311375e0baeb566ddcefcb89d1091bd8026590e +size 88025 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_ice.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_ice.ogf new file mode 100644 index 000000000..eddbc082b --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_ice.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:99b7af747fcf979764886276c183d2becd5945e5717679b79f5a2808c99a9176 +size 705887 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_itcher.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_itcher.ogf new file mode 100644 index 000000000..a591489b5 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_itcher.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20c3283f6688d8022d2b141912dcac23b6464c1047b0519fffbd192fe44b5e1d +size 178318 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_itm.omf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_itm.omf new file mode 100644 index 000000000..6679aea14 Binary files /dev/null and b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_itm.omf differ diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_lobster_eyes.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_lobster_eyes.ogf new file mode 100644 index 000000000..2fbc7cd4b --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_lobster_eyes.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe283acc2fe50934bf773e5a326532a50e8e2f4b613d24546c0cd67768ca94a8 +size 169030 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_medusa.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_medusa.ogf new file mode 100644 index 000000000..521b7fb4e --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_medusa.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d1192010eb41d266280225058a73bb622766cccbe67a250e29b351d65af5db1b +size 425530 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_mincer_meat.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_mincer_meat.ogf new file mode 100644 index 000000000..f014312b8 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_mincer_meat.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47a92cd3ae4e6493a851fb2bf30cb87ec083618eeb846d14c9f06801434c36da +size 90401 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_moonlight.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_moonlight.ogf new file mode 100644 index 000000000..69b974bac --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_moonlight.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f348c5f2d1097ac18b3e744f4ef7b64b3263718da6c2d30c75da5792d64ef88c +size 85264 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_night_star.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_night_star.ogf new file mode 100644 index 000000000..9739a1672 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_night_star.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:068bd1fa26215e75c5e8910670dda364aad4de0bcc8d9472f8ace22ee2445632 +size 428745 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_oasis_heart.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_oasis_heart.ogf new file mode 100644 index 000000000..9c0b1e17d --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_oasis_heart.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98b1f48295d9c0af6c23bd287aac67299610612e21f063bd227c1e91251c2be2 +size 106690 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_pin.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_pin.ogf new file mode 100644 index 000000000..82317aba4 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_pin.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:05f3ad641fb5d3f44607c0d679da39f0650829f0b5297d48314bc01c8870c85b +size 753565 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_ring.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_ring.ogf new file mode 100644 index 000000000..0c1286a9e --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_ring.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5f3eec449859f9b660b1f93a602370a45099d78e0a283b12e441379a020338e +size 125378 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_soul.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_soul.ogf new file mode 100644 index 000000000..1c1cba396 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_soul.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:74d0051a01e1641da95433940d61b2e9dd6dfe3729cca3574e9715b754a17777 +size 83164 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_sponge.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_sponge.ogf new file mode 100644 index 000000000..2225bc887 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_sponge.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bdc662ce71938c08d9a78d6d187c3b4a1d2512e12d224fedf0e8d6afc298066 +size 80178 diff --git a/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_vyvert.ogf b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_vyvert.ogf new file mode 100644 index 000000000..b072412fb --- /dev/null +++ b/mods/Animated Lead Box/gamedata/meshes/dynamics/af_box/lead_box_vyvert.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dda62473707d76aae97ab8f9f38a09b93143191947b46ef23f56fd3bdf57f68c +size 503537 diff --git a/mods/Animated Lead Box/gamedata/scripts/zzz_af_box_anim.script b/mods/Animated Lead Box/gamedata/scripts/zzz_af_box_anim.script new file mode 100644 index 000000000..b1c0bc508 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/scripts/zzz_af_box_anim.script @@ -0,0 +1,97 @@ +local original = actor_effects.play_item_fx +function actor_effects.play_item_fx(item) + if item == "container_tool_lead_box_dummy" or item == "lead_box_dummy" then + return + end + original(item) +end + + + +anim_item = nil +active_slot = nil +af = nil + +banned_af = { + "af_monolith" +} + +function use_box() + game.only_allow_movekeys(true) + + if zzz_ea_addon_backpack then + zzz_ea_addon_backpack.actor_on_item_use(db.actor) + end + + -- Patch for FDDA Backpack Animations + if zzz_ea_addon_backpack and zzz_ea_addon_backpack.anim_enabled then + zzz_ea_addon_backpack.det_active = nil + active_slot = zzz_ea_addon_backpack.active_slot + else + active_slot = db.actor:active_slot() + end + + get_hud():HideActorMenu() + + anim_item = "lead_box_"..af.."_hud" + give_object_to_actor(anim_item) + level.add_call( function () return db.actor:object(anim_item) end, function () + db.actor:activate_slot(14) + end) +end + +local originalItms = itms_manager.use_arty_container +function itms_manager.use_arty_container(obj) + if (string.find(obj:section(), "(lead.-_box)",3)) then + break_arty = obj:section():gsub("_lead_box", "") + af = "holst_"..break_arty + use_box(break_arty) + end + originalItms(obj) +end + +function ActorMenu_on_item_drag_drop(obj_1, obj_2, slot_from, slot_to) + local bannedSet = {} + for _, obj_1 in ipairs(banned_af) do + bannedSet[obj_1] = true + end + + if bannedSet[obj_1:section()] then + return + end + + if obj_2:section() == "lead_box" and ini_sys:r_string_ex(obj_1:section(),"kind") == "i_arty" then + if (ini_sys:r_string_ex(obj_1:section(),"class") == "ARTEFACT") or (ini_sys:r_string_ex(obj_1:section(),"class") == "SCRPTART") then + af = obj_1:section() + use_box(af) + end + end +end + +function actor_on_hud_animation_end(item,section,motion,state,slot) + if motion == "anm_show" and item:section() == anim_item then + alife():release(alife():object(db.actor:object(anim_item):id()), true) + db.actor:activate_slot(0) + + level.add_call( function () return db.actor:active_slot() == 0 end, function () + db.actor:activate_slot(active_slot) + anim_item = nil + af = nil + active_slot = nil + game.only_allow_movekeys(false) + end) + end +end + +function actor_on_first_update() + local active_item = db.actor:active_item() + if active_item and string.find(active_item:section(), "lead_box") then + alife():release(alife():object(db.actor:object(active_item:section()):id()), true) + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_hud_animation_end",actor_on_hud_animation_end) + RegisterScriptCallback("ActorMenu_on_item_drag_drop",ActorMenu_on_item_drag_drop) + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end \ No newline at end of file diff --git a/mods/Animated Lead Box/gamedata/sounds/af_box/box_pack.ogg b/mods/Animated Lead Box/gamedata/sounds/af_box/box_pack.ogg new file mode 100644 index 000000000..af529ba0e --- /dev/null +++ b/mods/Animated Lead Box/gamedata/sounds/af_box/box_pack.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef312ef9c9327faaeb1bcf1a02a4e6f0365436da3725cf47e4ba4b87ab92932d +size 79391 diff --git a/mods/Animated Lead Box/gamedata/textures/item/item_lead_box_hud.dds b/mods/Animated Lead Box/gamedata/textures/item/item_lead_box_hud.dds new file mode 100644 index 000000000..0c07c4f17 --- /dev/null +++ b/mods/Animated Lead Box/gamedata/textures/item/item_lead_box_hud.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea134f5cff0a67fbae5cba558c6cb8f84027d1687d1863ddf26857af4ea5b1d5 +size 4194432 diff --git a/mods/Animated Lead Box/meta.ini b/mods/Animated Lead Box/meta.ini new file mode 100644 index 000000000..3b94da15e --- /dev/null +++ b/mods/Animated Lead Box/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2025.1.17.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Animated_Lead_Box_1.2.3.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2025-01-18T04:52:10Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Artifacts Inspection/gamedata/configs/mod_system_af_inspect_anim.ltx b/mods/Artifacts Inspection/gamedata/configs/mod_system_af_inspect_anim.ltx new file mode 100644 index 000000000..285b8021b --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/configs/mod_system_af_inspect_anim.ltx @@ -0,0 +1,1142 @@ +![af_medusa] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_fuzz_kolobok] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_cristall_flower] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_night_star] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_vyvert] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_gravi] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_gold_fish] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_cristall] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_dummy_glassbeads] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_eye] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_fire] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_fireball] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_blood] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_mincer_meat] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_soul] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_baloon] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_glass] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_electra_sparkler] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_electra_flash] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_electra_moonlight] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_dummy_battery] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_dummy_dummy] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_ice] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0,0.29,0.92 + +![af_compass] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.84,0.56,0.41 + +![af_oasis_heart] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![jup_b1_half_artifact] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_quest_b14_twisted] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_atom] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.71,0.33,0.10 + +![af_ball] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.23,0.11,0.07 + +![af_bat] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_black_angel] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.48,0.61,0.58 + +![af_cell] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_chelust] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_cocoon] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_black] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_dragon_eye] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_ear] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_elektron] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_fire_loop] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_fonar] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_fountain] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_generator] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0,0.29,0.92 + +![af_grapes] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_kislushka] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_kogot] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_lighthouse] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_medallion] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_moh] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_peas] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_repei] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_sandstone] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_serofim] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.01,0.15,0.59 + +![af_signet] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_skull_miser] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.5,0.7,0.2 + +![af_spaika] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_star_phantom] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_sun] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_tapeworm] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0,0.29,0.92 + +![af_zhelch] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_monolith] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.56,0.95,0.70 + +![af_death_lamp] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.18,0.05,0 + +![af_misery_bread] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_pin] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_bracelet] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_ring] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.6,0.7,0.9 + +![af_lobster_eyes] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.9,0.4,0.2 + +![af_black_spray] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_empty] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_full_empty] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_sponge] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect +trail_light_color = 0.8,0.5,0.9 + +![af_itcher] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![af_lucifer] +use1_functor = af_inspect.st_inspect +use1_action_functor = af_inspect.inspect + +![marker] +use1_functor = +use1_action_functor = +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +![af_aac] +use2_functor = af_inspect.st_inspect +use2_action_functor = af_inspect.inspect + +![af_aam] +use2_functor = af_inspect.st_inspect +use2_action_functor = af_inspect.inspect + +![af_iam] +use2_functor = af_inspect.st_inspect +use2_action_functor = af_inspect.inspect + +![lead_box] +use2_functor = af_inspect.st_inspect +use2_action_functor = af_inspect.inspect + + +[af_medusa_hud]:wpn_binoc +inv_weight = 0 +sprint_allowed = false +hud = af_medusa_anm_hud +slot = 13 +inv_name = +inv_name_short = +inv_grid_y = 666 +zoom_enabled = false +default_to_ruck = false + +[af_medusa_anm_hud]:wpn_binoc_hud +item_position = 0,-0.01,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_medusa_inspect + +anm_show = af_hand_inspect_draw +anm_hide = af_hand_inspect_hide +anm_idle = af_hand_inspect_idle +anm_bore = af_hand_inspect_idle +anm_idle_aim = af_hand_inspect_idle +anm_idle_moving = af_hand_inspect_idle +anm_idle_sprint = af_hand_inspect_idle + +[af_electra_flash_hud]:af_medusa_hud +hud = af_electra_flash_anm_hud + +[af_electra_flash_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_electra_flash_inspect + +[af_fuzz_kolobok_hud]:af_medusa_hud +hud = af_fuzz_kolobok_anm_hud + +[af_fuzz_kolobok_anm_hud]:af_medusa_anm_hud +item_position = 0,0.05,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_fuzz_kolobok_inspect + +[af_cristall_flower_hud]:af_medusa_hud +hud = af_cristall_flower_hud_anm_hud + +[af_cristall_flower_hud_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_cristall_flower_inspect + +[af_night_star_hud]:af_medusa_hud +hud = af_night_star_anm_hud + +[af_night_star_anm_hud]:af_medusa_anm_hud +item_position = 0,0.05,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_night_star_inspect + +[af_vyvert_hud]:af_medusa_hud +hud = af_vyvert_anm_hud + +[af_vyvert_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_vyvert_inspect + +[af_gravi_hud]:af_medusa_hud +hud = af_gravi_anm_hud + +[af_gravi_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_gravi_inspect + +[af_gold_fish_hud]:af_medusa_hud +hud = af_gold_fish_anm_hud + +[af_gold_fish_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_gold_fish_inspect + +[af_cristall_hud]:af_medusa_hud +hud = af_cristall_anm_hud + +[af_cristall_anm_hud]:af_medusa_anm_hud +item_position = 0,0.01,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_cristall_inspect + +[af_fireball_hud]:af_medusa_hud +hud = af_fireball_anm_hud + +[af_fireball_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_fireball_inspect + +[af_dummy_glassbeads_hud]:af_medusa_hud +hud = af_dummy_glassbeads_anm_hud + +[af_dummy_glassbeads_anm_hud]:af_medusa_anm_hud +item_position = -0.08,0.01,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_dummy_glassbeads_inspect + +[af_eye_hud]:af_medusa_hud +hud = af_eye_anm_hud + +[af_eye_anm_hud]:af_medusa_anm_hud +item_position = -0.02,0.01,0 +item_orientation = 90,30,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_eye_inspect + +[af_fire_hud]:af_medusa_hud +hud = af_fire_anm_hud + +[af_fire_anm_hud]:af_medusa_anm_hud +item_position = 0,0.04,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_fire_inspect + +[af_blood_hud]:af_medusa_hud +hud = af_blood_anm_hud + +[af_blood_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_blood_inspect + +[af_mincer_meat_hud]:af_medusa_hud +hud = af_mincer_meat_anm_hud + +[af_mincer_meat_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_mincer_meat_inspect + +[af_soul_hud]:af_medusa_hud +hud = af_soul_anm_hud + +[af_soul_anm_hud]:af_medusa_anm_hud +item_position = 0,0.04,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_soul_inspect + +[af_baloon_hud]:af_medusa_hud +hud = af_baloon_anm_hud + +[af_baloon_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_baloon_inspect + +[af_glass_hud]:af_medusa_hud +hud = af_glass_anm_hud + +[af_glass_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_glass_inspect + +[af_electra_sparkler_hud]:af_medusa_hud +hud = af_electra_sparkler_anm_hud + +[af_electra_sparkler_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_electra_sparkler_inspect + +[af_electra_moonlight_hud]:af_medusa_hud +hud = af_electra_moonlight_anm_hud + +[af_electra_moonlight_anm_hud]:af_medusa_anm_hud +item_position = 0,0.03,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_electra_moonlight_inspect + +[af_dummy_battery_hud]:af_medusa_hud +hud = af_dummy_battery_anm_hud + +[af_dummy_battery_anm_hud]:af_medusa_anm_hud +item_position = 0,-0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_dummy_battery_inspect + +[af_dummy_dummy_hud]:af_medusa_hud +hud = af_dummy_dummy_anm_hud + +[af_dummy_dummy_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_dummy_dummy_inspect + +[af_ice_hud]:af_medusa_hud +hud = af_ice_anm_hud + +[af_ice_anm_hud]:af_medusa_anm_hud +item_position = 0,0.05,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_ice_inspect + +[af_quest_b14_twisted_hud]:af_medusa_hud +hud = af_quest_b14_twisted_anm_hud + +[af_quest_b14_twisted_anm_hud]:af_medusa_anm_hud +item_position = 0,0.03,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_control_inspect + +[jup_b1_half_artifact_hud]:af_medusa_hud +hud = jup_b1_half_artifact_anm_hud + +[jup_b1_half_artifact_anm_hud]:af_medusa_anm_hud +item_position = 0,0.01,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_psi_field_inspect + +[af_oasis_heart_hud]:af_medusa_hud +hud = af_oasis_heart_anm_hud + +[af_oasis_heart_anm_hud]:af_medusa_anm_hud +item_position = 0.05,0,0 +item_orientation = 95,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_cristall_plant_inspect + +[af_compass_hud]:af_medusa_hud +hud = af_compass_anm_hud + +[af_compass_anm_hud]:af_medusa_anm_hud +item_position = 0,0.04,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_compass_inspect + +[af_atom_hud]:af_medusa_hud +hud = af_atom_anm_hud + +[af_atom_anm_hud]:af_medusa_anm_hud +item_position = -0.03,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_atom_inspect + +[af_ball_hud]:af_medusa_hud +hud = af_ball_anm_hud + +[af_ball_anm_hud]:af_medusa_anm_hud +item_position = 0,-0.01,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_ball_inspect + +[af_bat_hud]:af_medusa_hud +hud = af_bat_anm_hud + +[af_bat_anm_hud]:af_medusa_anm_hud +item_position = 0.025,-0.06,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_bat_inspect + +[af_black_angel_hud]:af_medusa_hud +hud = af_black_angel_anm_hud + +[af_black_angel_anm_hud]:af_medusa_anm_hud +item_position = 0,0.07,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_black_angel_inspect + +[af_cell_hud]:af_medusa_hud +hud = af_cell_anm_hud + +[af_cell_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_cell_inspect + +[af_chelust_hud]:af_medusa_hud +hud = af_chelust_anm_hud + +[af_chelust_anm_hud]:af_medusa_anm_hud +item_position = 0,0.03,-0.01 +item_orientation = 90,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_chelust_inspect + +[af_cocoon_hud]:af_medusa_hud +hud = af_cocoon_anm_hud + +[af_cocoon_anm_hud]:af_medusa_anm_hud +item_position = 0,0.06,-0.01 +item_orientation = 90,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_cocoon_inspect + +[af_black_hud]:af_medusa_hud +hud = af_black_anm_hud + +[af_black_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_diablo_inspect + +[monolith_shard_hud]:af_medusa_hud +hud = monolith_shard_anm_hud + +[monolith_shard_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_diablo_inspect + +[af_dragon_eye_hud]:af_medusa_hud +hud = af_dragon_eye_anm_hud + +[af_dragon_eye_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_dragon_eye_inspect + +[af_ear_hud]:af_medusa_hud +hud = af_ear_anm_hud + +[af_ear_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_ear_inspect + +[af_elektron_hud]:af_medusa_hud +hud = af_elektron_anm_hud + +[af_elektron_anm_hud]:af_medusa_anm_hud +item_position = -0.01,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_elektron_inspect + +[af_fire_loop_hud]:af_medusa_hud +hud = af_fire_loop_anm_hud + +[af_fire_loop_anm_hud]:af_medusa_anm_hud +item_position = 0,0.01,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_fire_loop_inspect + +[af_lucifer_hud]:af_medusa_hud +hud = af_lucifer_anm_hud + +[af_lucifer_anm_hud]:af_medusa_anm_hud +item_position = 0,0.01,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_lucifer_inspect + +[af_fonar_hud]:af_medusa_hud +hud = af_fonar_anm_hud + +[af_fonar_anm_hud]:af_medusa_anm_hud +item_position = 0.02,0.08,-0.03 +item_orientation = 0,0,90 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_fonar_inspect + +[af_fountain_hud]:af_medusa_hud +hud = af_fountain_anm_hud + +[af_fountain_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_fountain_inspect + +[af_generator_hud]:af_medusa_hud +hud = af_generator_anm_hud + +[af_generator_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_generator_inspect + +[af_grapes_hud]:af_medusa_hud +hud = af_grapes_anm_hud + +[af_grapes_anm_hud]:af_medusa_anm_hud +item_position = 0,0.04,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_grapes_inspect + +[af_kislushka_hud]:af_medusa_hud +hud = af_kislushka_anm_hud + +[af_kislushka_anm_hud]:af_medusa_anm_hud +item_position = 0,0.03,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_kislushka_inspect + +[af_kogot_hud]:af_medusa_hud +hud = af_kogot_anm_hud + +[af_kogot_anm_hud]:af_medusa_anm_hud +item_position = 0,0.05,0 +item_orientation = 0,0,90 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_kogot_inspect + +[af_lighthouse_hud]:af_medusa_hud +hud = af_lighthouse_anm_hud + +[af_lighthouse_anm_hud]:af_medusa_anm_hud +item_position = 0,0.03,0 +item_orientation = 0,0,90 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_lighthouse_inspect + +[af_medallion_hud]:af_medusa_hud +hud = af_medallion_anm_hud + +[af_medallion_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,90 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_medallion_inspect + +[af_moh_hud]:af_medusa_hud +hud = af_moh_anm_hud + +[af_moh_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,90 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_moh_inspect + +[af_peas_hud]:af_medusa_hud +hud = af_peas_anm_hud + +[af_peas_anm_hud]:af_medusa_anm_hud +item_position = 0,0.05,0 +item_orientation = 90,0,90 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_peas_inspect + +[af_repei_hud]:af_medusa_hud +hud = af_repei_anm_hud + +[af_repei_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_repei_inspect + +[af_sandstone_hud]:af_medusa_hud +hud = af_sandstone_anm_hud + +[af_sandstone_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_sandstone_inspect + +[af_serofim_hud]:af_medusa_hud +hud = af_serofim_anm_hud + +[af_serofim_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_serofim_inspect + +[af_signet_hud]:af_medusa_hud +hud = af_signet_anm_hud + +[af_signet_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_signet_inspect + +[af_skull_miser_hud]:af_medusa_hud +hud = af_skull_miser_anm_hud + +[af_skull_miser_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_skull_miser_inspect + +[af_spaika_hud]:af_medusa_hud +hud = af_spaika_anm_hud + +[af_spaika_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_spaika_inspect + +[af_star_phantom_hud]:af_medusa_hud +hud = af_star_phantom_anm_hud + +[af_star_phantom_anm_hud]:af_medusa_anm_hud +item_position = 0,0.05,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_star_phantom_inspect + +[af_sun_hud]:af_medusa_hud +hud = af_sun_anm_hud + +[af_sun_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_sun_inspect + +[af_tapeworm_hud]:af_medusa_hud +hud = af_tapeworm_anm_hud + +[af_tapeworm_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_tapeworm_inspect + +[af_zhelch_hud]:af_medusa_hud +hud = af_zhelch_anm_hud + +[af_zhelch_anm_hud]:af_medusa_anm_hud +item_position = 0.01,0,0 +item_orientation = 90,90,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_zhelch_inspect + +[af_monolith_hud]:af_medusa_hud +hud = af_monolith_anm_hud + +[af_monolith_anm_hud]:af_medusa_anm_hud +item_position = 0,0.04,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_monolith_inspect + +[af_death_lamp_hud]:af_medusa_hud +hud = af_death_lamp_anm_hud + +[af_death_lamp_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_death_lamp_inspect + +[af_misery_bread_hud]:af_medusa_hud +hud = af_misery_bread_anm_hud + +[af_misery_bread_anm_hud]:af_medusa_anm_hud +item_position = 0,0.03,0 +item_orientation = 105,-15,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_misery_bread_inspect + +[af_pin_hud]:af_medusa_hud +hud = af_pin_anm_hud + +[af_pin_anm_hud]:af_medusa_anm_hud +item_position = 0.01,-0.03,-0.02 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_pin_inspect + +[af_bracelet_hud]:af_medusa_hud +hud = af_bracelet_anm_hud + +[af_bracelet_anm_hud]:af_medusa_anm_hud +item_position = 0,0.02,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_bracelet_inspect + +[af_ring_hud]:af_medusa_hud +hud = af_ring_anm_hud + +[af_ring_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_ring_inspect + +[af_lobster_eyes_hud]:af_medusa_hud +hud = af_lobster_eyes_anm_hud + +[af_lobster_eyes_anm_hud]:af_medusa_anm_hud +item_position = 0,0.06,0 +item_orientation = 90,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_lobster_eyes_inspect + +[af_black_spray_hud]:af_medusa_hud +hud = af_black_spray_anm_hud + +[af_black_spray_anm_hud]:af_medusa_anm_hud +item_position = 0,0.03,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_black_spray_inspect + +[af_empty_hud]:af_medusa_hud +hud = af_empty_anm_hud + +[af_empty_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_empty_inspect + +[af_full_empty_hud]:af_medusa_hud +hud = af_full_empty_anm_hud + +[af_full_empty_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_full_empty_inspect + +[af_sponge_hud]:af_medusa_hud +hud = af_sponge_anm_hud + +[af_sponge_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_sponge_inspect + +[af_itcher_hud]:af_medusa_hud +hud = af_itcher_anm_hud + +[af_itcher_anm_hud]:af_medusa_anm_hud +item_position = 0,0,0 +item_orientation = 0,0,0 +hands_position_16x9 = 0,0,0 +hands_orientation_16x9 = 0,0,0 + +item_visual = dynamics\artefacts\af_itcher_inspect \ No newline at end of file diff --git a/mods/Artifacts Inspection/gamedata/configs/text/eng/ui_st_af_inspect.xml b/mods/Artifacts Inspection/gamedata/configs/text/eng/ui_st_af_inspect.xml new file mode 100644 index 000000000..faa1d6c44 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/configs/text/eng/ui_st_af_inspect.xml @@ -0,0 +1,6 @@ + + + + inspect + + diff --git a/mods/Artifacts Inspection/gamedata/configs/text/ukr/ui_st_af_inspect.xml b/mods/Artifacts Inspection/gamedata/configs/text/ukr/ui_st_af_inspect.xml new file mode 100644 index 000000000..feedb743a --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/configs/text/ukr/ui_st_af_inspect.xml @@ -0,0 +1,6 @@ + + + + îãëÿíóòè + + diff --git a/mods/Artifacts Inspection/gamedata/meshes/anomaly_weapons/hud_hands_animation/af_inspect_hand_hud_animation.omf b/mods/Artifacts Inspection/gamedata/meshes/anomaly_weapons/hud_hands_animation/af_inspect_hand_hud_animation.omf new file mode 100644 index 000000000..952e4a17b Binary files /dev/null and b/mods/Artifacts Inspection/gamedata/meshes/anomaly_weapons/hud_hands_animation/af_inspect_hand_hud_animation.omf differ diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_atom_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_atom_inspect.ogf new file mode 100644 index 000000000..193d8eb8f --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_atom_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0322c3508c5226f51ca812052d3456f54f4e96c0b3a5d05b101acf2c054f113f +size 191119 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ball_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ball_inspect.ogf new file mode 100644 index 000000000..113057d0f --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ball_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8bd99dfb1ccce06191ecde33fef6019850e2b72ec76013c833af8b16015bed53 +size 256676 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_baloon_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_baloon_inspect.ogf new file mode 100644 index 000000000..6dd1f3ceb --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_baloon_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c055ebc2539851bd65dca87a94c8a34de6b21d55440b7c44dd2a7660d7fcc360 +size 43803 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_bat_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_bat_inspect.ogf new file mode 100644 index 000000000..af5ea70e0 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_bat_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba4ae5de4cabf637ab733b19e396042c36681c6b0631fe7925bbd3648741fb18 +size 1778967 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_black_angel_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_black_angel_inspect.ogf new file mode 100644 index 000000000..9c655c195 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_black_angel_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b98aa99edffd4afcf038a586a7704baa51526a681b6e629e6428514674a8c5c +size 935851 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_black_spray_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_black_spray_inspect.ogf new file mode 100644 index 000000000..2cd968682 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_black_spray_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aa2da2f5c57a5519c19b73760985c28d3c2aad6a90524f0b2b6de9b41df4e8e1 +size 131922 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_blood_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_blood_inspect.ogf new file mode 100644 index 000000000..8b7b9c07f --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_blood_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d112d9323f507f9a9b283fbb23503940653fc60e40a6b100e002d93438fc4cd +size 49972 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_bracelet_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_bracelet_inspect.ogf new file mode 100644 index 000000000..2666073a6 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_bracelet_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f01e1b1e68291a21c7d92b6577afe0f8b11d4ba0565bc66603a62e3d5d38d229 +size 730084 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cell_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cell_inspect.ogf new file mode 100644 index 000000000..ae2b8359a --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cell_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bc139d9b706ac46dabd9f33a860658f0619a4ad2faba17e611243abef6a9530 +size 1381646 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_chelust_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_chelust_inspect.ogf new file mode 100644 index 000000000..e17b392b7 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_chelust_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a25dcec38b0136e3ab763d9e73b8ebe92e4cc07a4ddd1d5be76c1505c81bb784 +size 648621 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cocoon_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cocoon_inspect.ogf new file mode 100644 index 000000000..159d8d27b --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cocoon_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10d6a087eb284823d43b381d55944fa5cae8329d1e1d0f3cfa6c08f54f7ba5be +size 494983 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_compass_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_compass_inspect.ogf new file mode 100644 index 000000000..da6dd406e --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_compass_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fdd49306517fe804dce0a14ea8e5b91f14b1fceb1551b21a1a32ea1a273a5828 +size 49530 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_control_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_control_inspect.ogf new file mode 100644 index 000000000..101d31d67 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_control_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e03f18a948c308e75b5d04498266be03ed1e48c4a8798b20c4b71d0ce074e5dc +size 33617 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_flower_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_flower_inspect.ogf new file mode 100644 index 000000000..ccbfc654b --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_flower_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45bfeb6760c64821a3725f2d59850ecb02ff5879cfb3481730ff8bcd8e0c484c +size 77590 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_inspect.ogf new file mode 100644 index 000000000..5710dfeb5 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e696fdda7340453091513bff800f0f1e7fb776528bd8eb4664f3c8cc891bb6b +size 41459 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_plant_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_plant_inspect.ogf new file mode 100644 index 000000000..2c81f2eed --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_cristall_plant_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:82d7d5549c18afba1b37dbacdbd81522fb755b6011363d464adf6f55e426361e +size 58267 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_death_lamp_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_death_lamp_inspect.ogf new file mode 100644 index 000000000..c9ead5249 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_death_lamp_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:247fe98f1d8e84aa172585420ad15125ee05c515d3c222f4a6458831806c602a +size 203887 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_diablo_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_diablo_inspect.ogf new file mode 100644 index 000000000..4f01a1372 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_diablo_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:81e9dca598e282e7fabf3feae4ad6c68f1b047efa21fce8c54ac21cd68916856 +size 126537 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dragon_eye_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dragon_eye_inspect.ogf new file mode 100644 index 000000000..fe7e6a237 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dragon_eye_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:23259b66dc8f587885d561bd7ec3a78a39fb6c0c03af256b451c76875cf4eff6 +size 27100 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_battery_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_battery_inspect.ogf new file mode 100644 index 000000000..14dc08bef --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_battery_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9ad45455a28d265bd2769a2b0368e5f62efbca53f45c197a339c8237bd59e92f +size 418261 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_dummy_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_dummy_inspect.ogf new file mode 100644 index 000000000..cb396e5b2 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_dummy_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9c788b10d035efbfe62b98176a4a1ec170fc37f832da94ff9ae8f946cca3f04d +size 171479 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_glassbeads_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_glassbeads_inspect.ogf new file mode 100644 index 000000000..4aacc4e40 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_dummy_glassbeads_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:340b762fa79624eeaa4db2bf3a000fc0d5a4e9bc163addc1fc574195e4415bb2 +size 110440 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ear_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ear_inspect.ogf new file mode 100644 index 000000000..8a04487ed --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ear_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b221955987b415c75fc400a8092663f88160b817199d03377033359648b014bd +size 230894 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_flash_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_flash_inspect.ogf new file mode 100644 index 000000000..2c2738833 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_flash_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bd9acc42bf54ae3757f1aea9bc6fd0928022b7fc889cedd2e9af67dd170af38 +size 196872 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_moonlight_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_moonlight_inspect.ogf new file mode 100644 index 000000000..f18017a04 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_moonlight_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e10137184d3d3906689b8a2ab44195557685c638333f6f1c177191bfd03b8824 +size 29206 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_sparkler_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_sparkler_inspect.ogf new file mode 100644 index 000000000..bbb841d83 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_electra_sparkler_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e361f643a75bafdbada2e0ffa486481e68617d0e0d521072db3f51173bfeadb +size 943955 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_elektron_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_elektron_inspect.ogf new file mode 100644 index 000000000..24c2096db --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_elektron_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57bb9fb4776cff1f30d26e5f0b976ef1af0e80513afe1b3119ebfb7a90756ff8 +size 38556 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_empty_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_empty_inspect.ogf new file mode 100644 index 000000000..0e5d5a351 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_empty_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b761f809a3a32a36f0e41aa2637c3b9d8540e7f6960730a15d8b4ce1b76c1cf4 +size 16089 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_eye_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_eye_inspect.ogf new file mode 100644 index 000000000..6a6f3e719 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_eye_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd149eaa160d29a143b30c76b9d18209ccc4dc232200b3ba7df4485d15fedad9 +size 32429 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fire_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fire_inspect.ogf new file mode 100644 index 000000000..925720e71 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fire_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:61d937efc12a039575d7f3607a4d195f4b77760f9336277c4438ded41ed5e83b +size 27098 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fire_loop_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fire_loop_inspect.ogf new file mode 100644 index 000000000..f51ccef56 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fire_loop_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65f9f34cadb1a6ad728e86a6c15a31849bb911a9369519cfa23f4bf36529fe11 +size 57017 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fireball_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fireball_inspect.ogf new file mode 100644 index 000000000..4b6c80d31 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fireball_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f7bd923628c471870faac1e02c6d156a3331dec391ef2f55b33db0674f17bc5 +size 139739 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fonar_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fonar_inspect.ogf new file mode 100644 index 000000000..7f4e3887b --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fonar_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bdf351b0f7a716c22d1a528233430b4b07bdb366ffb96e2f44d9bb766cc6a46d +size 252211 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fountain_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fountain_inspect.ogf new file mode 100644 index 000000000..30a7ae7b6 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fountain_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd0c655bd0d4a92ce06b03e8fab1a48f017a75f4e2fa2d6f7abc7d7281ea8b81 +size 1000891 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_full_empty_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_full_empty_inspect.ogf new file mode 100644 index 000000000..a3c1bbee5 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_full_empty_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b40495d3f60c95db838479b326e15b37ba14a40c9b6589441f3888511efd438 +size 59845 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fuzz_kolobok_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fuzz_kolobok_inspect.ogf new file mode 100644 index 000000000..2761a8b32 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_fuzz_kolobok_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5fdc6e91f8f7de870910a09f53a52d54dca8b5fa203f9563846425d85b4cf97 +size 648526 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_generator_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_generator_inspect.ogf new file mode 100644 index 000000000..7664c3da9 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_generator_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6f5685592e05299f9c3d54b22f80b34ad44371ac9f281e2adbbc8df001e3ca1b +size 478366 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_glass_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_glass_inspect.ogf new file mode 100644 index 000000000..bc4bf39c3 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_glass_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6670fc019040f379d6ea03932684f34644ba5baea58da21f34288c960e9677e +size 288541 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_gold_fish_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_gold_fish_inspect.ogf new file mode 100644 index 000000000..90883a27a --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_gold_fish_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a211e131fd898e53fc25146bcbc6ef482933ebb42c202242d6cb98bb886d5b20 +size 109913 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_grapes_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_grapes_inspect.ogf new file mode 100644 index 000000000..63809a7c6 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_grapes_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24ca5f7ee7f3d5ad6b6dffa7c805db7ae6477034575281af0133bcfb79dc4f70 +size 454253 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_gravi_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_gravi_inspect.ogf new file mode 100644 index 000000000..451c852f7 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_gravi_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:835f98257f1463e970f452638ab3b11aceb020e54fe070e704b9bdc93ddd47db +size 49122 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ice_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ice_inspect.ogf new file mode 100644 index 000000000..8bd1ab7fd --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ice_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3ff06ec6fbfa2f0fac9e5f9e398225ceec376d8fb0918691af51edb05b0cefba +size 648517 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_itcher_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_itcher_inspect.ogf new file mode 100644 index 000000000..e6eb781a8 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_itcher_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:281ab7850869f6164e94bf2806431749367df914294a6515ff4599349153cc5e +size 131716 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_kislushka_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_kislushka_inspect.ogf new file mode 100644 index 000000000..7cb3d11d1 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_kislushka_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b325cc0c82a4022e4cd54ec536a40545260be650bce37bb96a17123b3143600f +size 562856 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_kogot_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_kogot_inspect.ogf new file mode 100644 index 000000000..43584f0c8 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_kogot_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:143e61faa37d63c7ff503709ee683b1cc1a68159e24c4f4fa1f44bd5981a754c +size 190977 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lighthouse_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lighthouse_inspect.ogf new file mode 100644 index 000000000..9c3ca2d91 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lighthouse_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:02ebf6b6d895feda0bf48a6ea0452666ad782f8736e9e6c43af5f7a1a2d6f9df +size 1024724 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lobster_eyes_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lobster_eyes_inspect.ogf new file mode 100644 index 000000000..15043a47b --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lobster_eyes_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5e13dffa39198f18f6313cdc5e9470477f39003eafde4d7a147602bd36dffbac +size 117051 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lucifer_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lucifer_inspect.ogf new file mode 100644 index 000000000..d25a5b4b4 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_lucifer_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:65a983f7f2e217f6673d721e239531240d41e8c18b6f8d46b686f97a64221e81 +size 57019 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_medallion_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_medallion_inspect.ogf new file mode 100644 index 000000000..02a2ef8ff --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_medallion_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f3c91e717ff88922c15048a00f2e5485f3ab23171794b42b8b4ff73d6758d10 +size 130481 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_medusa_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_medusa_inspect.ogf new file mode 100644 index 000000000..8666fe9c4 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_medusa_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c06d947d106472297189a420a799b00ffcb953ae0930738f00ce8e573d6de7d +size 388831 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_mincer_meat_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_mincer_meat_inspect.ogf new file mode 100644 index 000000000..493598de6 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_mincer_meat_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d6db5725f728a99845f85a61bd2bc385d12d7818d779df40e55c7f189bab653 +size 35184 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_misery_bread_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_misery_bread_inspect.ogf new file mode 100644 index 000000000..86dcd5531 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_misery_bread_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3f279cd8e4753d2fc16403245b8c9c2dabd41d0648d0532a9254dc3e8322a9cf +size 9912 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_moh_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_moh_inspect.ogf new file mode 100644 index 000000000..c6293d807 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_moh_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4eab5cebe44f0b47ff1b78a04d1df8eb2e1914bb0d1470a6b6ee6c23296cae8 +size 472669 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_monolith_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_monolith_inspect.ogf new file mode 100644 index 000000000..f70858c88 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_monolith_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:183b433323452d0bb00f1ec4272dc1bfde6c4e320d3a3681534d87562f51eb65 +size 248490 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_night_star_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_night_star_inspect.ogf new file mode 100644 index 000000000..a50c2e28a --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_night_star_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a76641b10ac0e6f6f3e81a24e46f11ec742fed86b40e8e5dd46b493b598e8105 +size 371262 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_peas_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_peas_inspect.ogf new file mode 100644 index 000000000..a697858b2 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_peas_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83bea31ba8180511d57beea55bce7021353f2e4bd0ca95b15d1db441e5b753df +size 407447 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_pin_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_pin_inspect.ogf new file mode 100644 index 000000000..5af7bce47 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_pin_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2a352871025b35326158e214d4c64bf36a3863568de4186d0f0574fd4509ec92 +size 739249 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_psi_field_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_psi_field_inspect.ogf new file mode 100644 index 000000000..b0ef36b2f --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_psi_field_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17af2cc7557e0c0b7a9da177fcfb37ddd88c1295ab045bb4c2a1f4092ce95ea9 +size 20008 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_repei_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_repei_inspect.ogf new file mode 100644 index 000000000..a186483d4 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_repei_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5a296cf6014db0ee742d1b42f0f63c36d3bdded59e0be893f11aed1b7018a96c +size 202348 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ring_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ring_inspect.ogf new file mode 100644 index 000000000..89b8b435b --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_ring_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2250efb5e6b0a5dd6d1bfab98d221694c0546d60fd77d36019c68419dec0f64 +size 66703 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sandstone_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sandstone_inspect.ogf new file mode 100644 index 000000000..794154bf8 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sandstone_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35f0b345b267dea764d045c7967c570b967d3893f21dbfc6d23fbdd53f526f06 +size 808529 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_serofim_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_serofim_inspect.ogf new file mode 100644 index 000000000..b67d104b7 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_serofim_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2522b23e90469162f7007fe17729e5b2585793d4796b6b4d20fb30ed5cd58da +size 1131911 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_signet_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_signet_inspect.ogf new file mode 100644 index 000000000..1a08f6b59 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_signet_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:03fa3bf05353e8c5ce50553e0652429c7d1e07131e3429029c1eb560b6fe811b +size 506597 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_skull_miser_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_skull_miser_inspect.ogf new file mode 100644 index 000000000..ca5595f29 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_skull_miser_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd10cb0c112e7380b08b889eb990518d78aaf0c809d0562c1e990b0d653bee67 +size 593343 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_soul_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_soul_inspect.ogf new file mode 100644 index 000000000..9da3ebf27 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_soul_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7556905f58ae5330e6a6495b6d8e2b3814f3ae4bf8678b3b0aa9b34037e88c03 +size 33312 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_spaika_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_spaika_inspect.ogf new file mode 100644 index 000000000..deb823856 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_spaika_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1202a40bfac2030c346c228e039523fff5b159110e54253c118b297b8c670beb +size 829945 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sponge_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sponge_inspect.ogf new file mode 100644 index 000000000..a418fbba9 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sponge_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3a55bc376722123feeb1f4f2a7ba49f84f1a5e40d5a5b17ca53278c583f35b06 +size 25107 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_star_phantom_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_star_phantom_inspect.ogf new file mode 100644 index 000000000..2f12c7096 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_star_phantom_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cdde0f2e4d1ca006c97d3ad5730d0a48740454270a4a7fa3e6a8608be72800c9 +size 1142729 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sun_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sun_inspect.ogf new file mode 100644 index 000000000..128103484 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_sun_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2c56c2717fc83c2ae0c9edc13ccda574c9e35bb33e56675aad0d25d0c2805eb +size 562847 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_tapeworm_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_tapeworm_inspect.ogf new file mode 100644 index 000000000..6e31a7106 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_tapeworm_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3badbd4a49ac5cf59c38854a507fe5ddfbf182a4e90d886b645bbbabc24e2125 +size 887644 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_vyvert_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_vyvert_inspect.ogf new file mode 100644 index 000000000..f72f4ee15 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_vyvert_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9fdd2c55bcbd049785206f67329076e1e603d93226ce760feaafd5e652429b35 +size 472764 diff --git a/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_zhelch_inspect.ogf b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_zhelch_inspect.ogf new file mode 100644 index 000000000..578d5dc75 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/meshes/dynamics/artefacts/af_zhelch_inspect.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5aa3a9827fca07a395b32c1f99849a9fad839d92f6128fa1f4c0d2112dd20097 +size 41166 diff --git a/mods/Artifacts Inspection/gamedata/scripts/af_inspect.script b/mods/Artifacts Inspection/gamedata/scripts/af_inspect.script new file mode 100644 index 000000000..209d2f0fa --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/scripts/af_inspect.script @@ -0,0 +1,188 @@ +af_anim_item = nil +active_slot = nil +particle = nil +pos = nil +fov = nil + +containers = { + "af_aac", + "af_aam", + "af_iam", + "lead_box" +} + +function inspect(itm) + if zzz_ea_addon_backpack then + zzz_ea_addon_backpack.actor_on_item_use(itm) + end + + local function contains_container(item_section) + for _, container in ipairs(containers) do + if string.find(item_section, container) then + return true + end + end + return false + end + + if contains_container(itm:section()) then + if system_ini():line_exist(itm:section(), "1icon_layer") then + local art = system_ini():r_string_ex(itm:section(), "1icon_layer", "") + af_anim_item = art .. "_hud" + end + else + af_anim_item = itm:section() .. "_hud" + end + + -- Patch for FDDA Backpack Animations + if zzz_ea_addon_backpack and zzz_ea_addon_backpack.anim_enabled then + zzz_ea_addon_backpack.det_active = nil + active_slot = zzz_ea_addon_backpack.active_slot + else + active_slot = db.actor:active_slot() + end + ---------------------------------------- + + get_hud():HideActorMenu() + level.disable_input() + fov = get_console():get_float("hud_fov") + particle = particles_object("artefact\\effects\\af_idle_dist") + + give_object_to_actor(af_anim_item) + level.add_call( function () return db.actor:object(af_anim_item) end, function () + db.actor:activate_slot(14) + end) + + level.add_call( function () return db.actor:active_slot() == 14 end, function () + get_console():execute("hud_fov 0.55") + particle:play_at_pos(get_play_pos()) + level.enable_input() + local r, g, b = get_light_rgb(af_anim_item) + light_on(r,g,b,1,50,0.2,0.3) + end) +end + +function get_light_rgb(af_anim_item) + local not_hud_itm = string.gsub(af_anim_item, "_hud$", "") + if system_ini():line_exist(not_hud_itm, "trail_light_color") then + local rgb = system_ini():r_string_ex(not_hud_itm,"trail_light_color","") + local r, g, b = rgb:match("([^,]+),([^,]+),([^,]+)") + r = tonumber(r) + g = tonumber(g) + b = tonumber(b) + return r, g, b + end +end + +function get_play_pos() + pos = db.actor:bone_position("jaw_1"):add(device().cam_dir:mul(0.3)) + pos.y = pos.y - 0.1 + return pos +end + +function release_af() + level.disable_input() + db.actor:activate_slot(active_slot) + + level.add_call( function () return db.actor:active_slot() == active_slot end, function () + alife():release(alife():object(db.actor:object(af_anim_item):id()), true) + af_anim_item = nil + active_slot = nil + particle:stop() + light_off() + get_console():execute("hud_fov".." "..fov) + level.enable_input() + end) +end + +function light_on(r,g,b,range,bright,y_pos,dirmult) + light = script_light() + light.type = 1 + light.range = range + light_bright = bright + light_range = range + light.lanim = "koster_01_electra" + light.lanim_brightness = 1 + light.hud_mode = false + light.shadow = false + light.volumetric = false + light.enabled = true + light.color = fcolor():set(r,g,b,bright) + local dir = device().cam_dir + local pos = device().cam_pos + pos = pos:add(dir:mul(dirmult)) + pos.y = pos.y - y_pos + light:set_position(pos) + light:set_direction(dir) + light:update() + CreateTimeEvent("l_move", "l_move", 0, light_move,r,g,b,y_pos,dirmult) + light_flag = true + return true +end + +function light_move(r,g,b,y_pos,dirmult) + light_bright = light_bright + light_range = light_range + light.range = light_range + light.color = fcolor():set(r,g,b,light_bright) + local dir = device().cam_dir + local pos = device().cam_pos + pos = pos:add(dir:mul(dirmult)) + pos.y = pos.y - y_pos + light:set_position(pos) + light:set_direction(dir) + light:update() + if light_flag then + return false + else + return true + end +end + +function light_off() + if not light then return end + + light.enabled = false + light:update() + light_flag = false + return true +end + +function on_key_press() + if af_anim_item == nil then return end + + release_af() +end + +function actor_on_update() + if af_anim_item then + particle:move_to(get_play_pos(),device().cam_dir) + end +end + +function actor_on_first_update() + local active_item = db.actor:active_item() + if active_item and (string.find(active_item:section(), "af_") or active_item:section() == "monolith_shard_hud") then + alife():release(alife():object(db.actor:object(active_item:section()):id()), true) + end +end + + +function st_inspect(itm) + local containersSet = {} + for _, itm in ipairs(containers) do + containersSet[itm] = true + end + + if containersSet[itm:section()] then + return + end + + return game.translate_string("st_inspect") +end + +function on_game_start() + RegisterScriptCallback("on_key_press",on_key_press) + RegisterScriptCallback("actor_on_update",actor_on_update) + RegisterScriptCallback("actor_on_first_update",actor_on_first_update) +end \ No newline at end of file diff --git a/mods/Artifacts Inspection/gamedata/shaders/r1/models_xleerinspect.s b/mods/Artifacts Inspection/gamedata/shaders/r1/models_xleerinspect.s new file mode 100644 index 000000000..b21aebad6 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/shaders/r1/models_xleerinspect.s @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort4ghost","base_lplanes") + : fog (true) + : zb (false,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/mods/Artifacts Inspection/gamedata/shaders/r2/models_xleerinspect.s b/mods/Artifacts Inspection/gamedata/shaders/r2/models_xleerinspect.s new file mode 100644 index 000000000..b21aebad6 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/shaders/r2/models_xleerinspect.s @@ -0,0 +1,9 @@ +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort4ghost","base_lplanes") + : fog (true) + : zb (false,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader:sampler ("s_base") :texture (t_base) +end diff --git a/mods/Artifacts Inspection/gamedata/shaders/r3/models_xleerinspect.s b/mods/Artifacts Inspection/gamedata/shaders/r3/models_xleerinspect.s new file mode 100644 index 000000000..a63c1bdb7 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/shaders/r3/models_xleerinspect.s @@ -0,0 +1,12 @@ + +function normal (shader, t_base, t_second, t_detail) + shader:begin ("model_distort4ghost","base_lplanes") + : fog (true) + : zb (false,false) + : blend (true,blend.srcalpha,blend.invsrcalpha) + : aref (true,0) + : sorting (3,true) + shader: dx10texture ("s_base", t_base) + shader: dx10sampler ("smp_base") + shader: dx10sampler ("smp_rtlinear") +end \ No newline at end of file diff --git a/mods/Artifacts Inspection/gamedata/textures/trees/trees_bark_sux_mox.dds b/mods/Artifacts Inspection/gamedata/textures/trees/trees_bark_sux_mox.dds new file mode 100644 index 000000000..5e544fa73 --- /dev/null +++ b/mods/Artifacts Inspection/gamedata/textures/trees/trees_bark_sux_mox.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0403dc5c2eaf3efb537f20434e1eadbe29b28f2373a674d3763cd09cc61f6b94 +size 174920 diff --git a/mods/Artifacts Inspection/meta.ini b/mods/Artifacts Inspection/meta.ini new file mode 100644 index 000000000..5fbb963cb --- /dev/null +++ b/mods/Artifacts Inspection/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2025.1.15.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=ArtifactsInspectionv1.8.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2025-01-15T22:31:49Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Corpse Twitching/gamedata/scripts/impulse.script b/mods/Corpse Twitching/gamedata/scripts/impulse.script new file mode 100644 index 000000000..16c7d1de9 --- /dev/null +++ b/mods/Corpse Twitching/gamedata/scripts/impulse.script @@ -0,0 +1,98 @@ +bones_list = { + [1] = "bip01_head", + [2] = "bip01_spine", + [3] = "bip01_l_hand", + [4] = "bip01_r_hand", + [5] = "bip01_l_foot", + [6] = "bip01_r_foot", +} +timer_twitch = 0 +corpses_to_update = {} +time_factor = 6 +basic_duration = 10 +function on_game_start() + time_factor = SYS_GetParam(2,"alife","time_factor") + RegisterScriptCallback("actor_on_before_death", on_actor_before_death) + RegisterScriptCallback("actor_on_update", update_corpses) + RegisterScriptCallback("npc_on_death_callback", npc_on_death_callback) + RegisterScriptCallback("bullet_on_impact", bullet_on_impact) +end + +function bullet_on_impact(bullet) + if bullet.target_id ~= 65535 then + local obj = level.object_by_id(bullet.target_id) + if obj and (IsStalker(obj)) and (not obj:alive()) and corpses_to_update[obj:id()] then + printf("shot") + corpses_to_update[obj:id()].duration = corpses_to_update[obj:id()].duration - basic_duration * time_factor + end + end +end + +function on_actor_before_death() + CreateTimeEvent("actorhit1","imphit2", 0.25, impulse_actor) +end + +function npc_on_death_callback(npc) + if not npc then return end + local twitch_power = math.random() * 3.5 + --CreateTimeEvent("npchit1","gimphit2", 0, death_impulse, npc) + corpses_to_update[npc:id()] = { + power = twitch_power, + duration = twitch_power * basic_duration * time_factor, + death_time = game.get_game_time() + } +end + +function death_impulse(npc) + if npc:get_physics_shell() then + local mul = 30000 + npc:get_physics_shell():apply_force(math.random(-1,1) * mul * 0.5, 0, math.random(-1,1) * mul * 0.5) + return true + end +end + +function update_corpses() + local tg = time_global() + if timer_twitch > tg then return end + timer_twitch = tg + 50 + local c_time = game.get_game_time() + for k,v in pairs(corpses_to_update) do + local obj = level.object_by_id(k) + if not obj then + corpses_to_update[k] = nil + else + impulse_corpse(obj, v, c_time) + if v.duration < -1 * v.death_time:diffSec(c_time) then + corpses_to_update[k] = nil + end + end + end +end + +function impulse_corpse(obj, data, c_time) + local h = hit() + --printf(data.power * ((data.duration + data.death_time:diffSec(c_time)) / data.duration)) + h.impulse = data.power * ((data.duration + data.death_time:diffSec(c_time)) / data.duration) + h.draftsman = obj + local dirx = math.random() * 2 + -1 + local diry = math.random() * 2 + -1 + local dirz = math.random() * 2 + -1 + h.direction = vector():set(dirx,diry,dirz) + h:bone(bones_list[math.random(1,6)]) -- чтобы учитывалаÑÑŒ Ð±Ñ€Ð¾Ð½Ñ + h.power = 0.01 + h.type = hit.burn + obj:hit(h) +end + +function impulse_actor() + if not db.actor:alive() then + AddUniqueCall(update_corpses) + local twitch_power = math.random() * 3.5 + corpses_to_update[db.actor:id()] = { + power = twitch_power, + duration = twitch_power * basic_duration * time_factor, + death_time = game.get_game_time() + } + end + return true +end \ No newline at end of file diff --git a/mods/Corpse Twitching/meta.ini b/mods/Corpse Twitching/meta.ini new file mode 100644 index 000000000..e635d6ed8 --- /dev/null +++ b/mods/Corpse Twitching/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2025.1.17.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=CorpseTwitching.zip +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2025-01-18T04:51:30Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns.ltx new file mode 100644 index 000000000..56a4cc2f5 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns.ltx @@ -0,0 +1,9 @@ +; This file is used to spawn additional anomalies alongside +; the dynamic ones for spots that do not have any level IDs +; LTXs only with the map name excluding any suffixes +; contain section declarations for vanilla transitions. +; +; Also have a look in transition_settings.ltx. There, we +; define the amount actually spawned for those transitions. + +#include "static_spawns_*.ltx" diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_agroprom.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_agroprom.ltx new file mode 100644 index 000000000..af5dacf90 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_agroprom.ltx @@ -0,0 +1,77 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; AGROPROM + +;[agr_space_restrictor_to_garbage_1] +;[agr_space_restrictor_to_garbage_2] + +[agr_space_restrictor_to_marsh_1] +38 = 7.1278715133667, -1.1934068202972, -329.45394897461, 204779, 874 +39 = 4.8432908058167, -2.1126570701599, -328.99157714844, 202917, 874 +40 = 5.1247625350952, -0.84827768802643, -325.54443359375, 202922, 874 +41 = 8.2897596359253, 0.96960097551346, -324.41470336914, 205418, 874 +42 = 6.828905582428, 0.92622298002243, -321.46881103516, 204791, 874 +43 = 1.7108774185181, -0.23149189352989, -318.39694213867, 199849, 874 +44 = 0.34228760004044, -0.39086857438087, -316.57531738281, 199187, 874 +45 = 2.2392160892487, 0.12310338020325, -313.48403930664, 202329, 874 +46 = 5.3186836242676, 1.0852041244507, -313.17834472656, 203548, 874 +47 = 8.5272331237793, 2.0534398555756, -316.30099487305, 206050, 874 +48 = 11.474328994751, 2.9087827205658, -316.94378662109, 206690, 874 +49 = 9.1935129165649, 2.4477939605713, -312.71032714844, 205435, 874 +50 = 3.7447240352631, 0.62608486413956, -311.57556152344, 202330, 874 +51 = -12.604326248169, -4.0735487937927, -321.56134033203, 187406, 874 +52 = -15.236064910889, -2.7933685779572, -322.3337097168, 185063, 874 +53 = -18.818815231323, -1.5740978717804, -325.36010742188, 181383, 874 +54 = -20.372766494751, -0.73312258720398, -327.40264892578, 180745, 874 +55 = -21.849370956421, 0.36907207965851, -330.72998046875, 179455, 874 +56 = -21.442398071289, 0.77996963262558, -332.85009765625, 179451, 874 +57 = -24.501438140869, 1.5999574661255, -331.29150390625, 177045, 874 +58 = -23.180507659912, 0.36972212791443, -328.09155273438, 178216, 874 +59 = -16.364517211914, 0.028274089097977, -331.66854858398, 184451, 874 +60 = -13.307909011841, -0.65463227033615, -329.76510620117, 186825, 874 +61 = -8.8884792327881, -1.8423039913177, -328.80386352539, 190157, 874 +62 = -8.2067403793335, -0.92648035287857, -331.23333740234, 190753, 874 +63 = -10.008470535278, 0.17145177721977, -333.39004516602, 189603, 874 +64 = -10.739408493042, 0.87095266580582, -335.55523681641, 188501, 874 +65 = -8.3304328918457, 0.46548253297806, -335.75073242188, 189601, 874 +66 = -6.162814617157, -0.38622558116913, -333.88061523438, 192608, 874 +67 = -2.8659353256226, -1.168829202652, -333.94152832031, 195798, 874 +68 = -13.629974365234, 0.56860786676407, -333.41137695312, 186820, 874 +69 = -11.512769699097, -1.1493105888367, -328.119140625, 188511, 874 +70 = -13.862146377563, -1.9250459671021, -326.015625, 186243, 874 + +[agr_space_restrictor_to_yantar_1] +2 = -228.71862792969, 17.283645629883, 219.88198852539, 10141, 875 +3 = -227.18379211426, 20.052219390869, 221.7829284668, 11358, 875 +4 = -225.3427734375, 19.830532073975, 219.40946960449, 11358, 875 +5 = -224.56454467773, 16.730308532715, 215.50811767578, 11358, 875 +6 = -221.85592651367, 17.125350952148, 214.43397521973, 13197, 875 +7 = -220.40197753906, 20.030179977417, 216.35032653809, 13197, 875 +8 = -221.66473388672, 22.210523605347, 219.9490814209, 13197, 875 +9 = -218.17512512207, 22.903377532959, 218.92083740234, 13197, 875 +10 = -216.8176574707, 21.744396209717, 215.5354309082, 13197, 875 +11 = -217.9914855957, 18.492328643799, 213.15667724609, 13197, 875 +12 = -220.68180847168, 17.03003692627, 212.7431640625, 15031, 875 +13 = -220.41815185547, 15.218297958374, 210.10562133789, 15649, 875 +14 = -217.93209838867, 15.829367637634, 208.58068847656, 16921, 875 +15 = -215.70448303223, 18.300731658936, 209.74096679688, 16922, 875 +16 = -213.96231079102, 21.021488189697, 211.60934448242, 16922, 875 +17 = -211.09765625, 23.071792602539, 213.79759216309, 23638, 875 +18 = -211.00421142578, 21.200790405273, 209.48559570312, 24988, 875 +19 = -213.41175842285, 18.462162017822, 208.00715637207, 24988, 875 +20 = -216.7603302002, 14.689471244812, 205.80545043945, 18158, 875 +21 = -231.83657836914, 17.119812011719, 205.20013427734, 8924, 875 +22 = -232.09478759766, 19.049312591553, 201.79345703125, 8924, 875 +23 = -228.12683105469, 16.591115951538, 201.20237731934, 10730, 875 +24 = -227.77778625488, 17.418581008911, 199.41741943359, 11946, 875 +25 = -226.54742431641, 17.551170349121, 197.40985107422, 11946, 875 +26 = -224.73565673828, 16.278217315674, 197.30642700195, 13792, 875 +27 = -226.15870666504, 18.232265472412, 194.63040161133, 15012, 875 +28 = -228.84385681152, 19.237617492676, 193.45780944824, 15012, 875 +29 = -230.43876647949, 20.102291107178, 194.25550842285, 15012, 875 +30 = -231.97967529297, 21.884582519531, 193.19897460938, 15012, 875 +31 = -233.43771362305, 22.76305770874, 191.03286743164, 15012, 875 +32 = -230.9568939209, 21.630224227905, 189.36093139648, 15012, 875 +33 = -227.4875793457, 19.455501556396, 190.15299987793, 15012, 875 +34 = -228.86647033691, 20.896678924561, 187.37213134766, 15012, 875 +35 = -221.13958740234, 17.625482559204, 188.90077209473, 15012, 875 +36 = -225.02124023438, 19.367382049561, 188.6520690918, 15012, 875 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_army_warehouses.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_army_warehouses.ltx new file mode 100644 index 000000000..a98cbf523 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_army_warehouses.ltx @@ -0,0 +1,8 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; ARMY WAREHOUSES + +;[mil_space_restrictor_to_bar_1] +;[mil_space_restrictor_to_dead_city_1] +;[mil_space_restrictor_to_radar_1] +;[mil_space_restrictor_to_red_1] +;[mil_space_restrictor_to_tc] diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_cordon.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_cordon.ltx new file mode 100644 index 000000000..0f704cb55 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_cordon.ltx @@ -0,0 +1,554 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; CORDON + +; Army outpost @ South +[esc_space_restrictor_to_marsh_1] +1 = -275.09515380859, -21.694849014282, -275.31805419922, 1795, 363 +2 = -272.27801513672, -21.661056518555, -276.31658935547, 2813, 363 +3 = -269.85870361328, -21.680835723877, -274.63067626953, 3673, 363 +4 = -270.78024291992, -21.529163360596, -278.60540771484, 3360, 363 +5 = -269.4055480957, -21.512428283691, -281.20132446289, 4251, 363 +6 = -267.19317626953, -21.048156738281, -280.3737487793, 4826, 363 +7 = -265.17959594727, -21.073490142822, -282.4423828125, 5698, 363 +8 = -261.69540405273, -21.315422058105, -282.52828979492, 7359, 363 +9 = -259.59722900391, -21.228063583374, -283.37078857422, 7926, 363 +10 = -259.63339233398, -20.949098587036, -285.80517578125, 7923, 363 +11 = -261.7653503418, -20.553447723389, -286.70190429688, 7639, 363 +12 = -265.44067382812, -20.211387634277, -287.33108520508, 6547, 363 +13 = -263.45574951172, -19.596050262451, -288.67517089844, 6547, 363 +14 = -262.19177246094, -19.358034133911, -290.39013671875, 6815, 363 +15 = -263.95574951172, -18.95263671875, -292.3967590332, 6268, 363 +16 = -262.0556640625, -20.193536758423, -293.86361694336, 7083, 363 +17 = -261.69027709961, -21.195943832397, -296.18350219727, 7080, 363 +18 = -258.86486816406, -22.475267410278, -296.19235229492, 8201, 363 +19 = -258.07904052734, -22.588600158691, -293.97302246094, 8488, 363 +20 = -255.96624755859, -22.931037902832, -292.46139526367, 9322, 363 +21 = -255.12783813477, -22.627017974854, -289.51702880859, 9950, 363 +22 = -256.55627441406, -21.953088760376, -287.43157958984, 9040, 363 +23 = -255.39125061035, -21.701698303223, -285.40069580078, 9957, 363 +24 = -252.52345275879, -21.478687286377, -283.56384277344, 10903, 363 +25 = -251.9168548584, -20.253902435303, -280.63256835938, 11232, 363 +26 = -254.81878662109, -18.809743881226, -279.07196044922, 9959, 363 +27 = -247.5386505127, -22.308818817139, -283.21136474609, 12708, 363 +28 = -244.18821716309, -23.649343490601, -285.3219909668, 16710, 363 +29 = -243.94721984863, -24.337715148926, -287.61318969727, 16710, 363 +30 = -244.27072143555, -24.970941543579, -290.19360351562, 15024, 363 +31 = -246.54852294922, -24.756052017212, -291.28228759766, 13819, 363 +32 = -247.48635864258, -25.035816192627, -293.6369934082, 13444, 363 +33 = -248.6978302002, -24.778518676758, -294.0859375, 13076, 363 +34 = -251.04817199707, -23.726114273071, -291.25582885742, 11569, 363 +35 = -252.18490600586, -23.107866287231, -289.09851074219, 11224, 363 +36 = -253.52294921875, -23.088481903076, -290.18499755859, 10575, 363 +37 = -253.97248840332, -23.342929840088, -292.50369262695, 10258, 363 +38 = -251.92901611328, -23.922763824463, -293.97930908203, 11217, 363 +39 = -251.8215637207, -24.18906211853, -295.65246582031, 10886, 363 +40 = -255.57992553711, -23.427133560181, -296.59698486328, 9626, 363 +41 = -253.71788024902, -23.959516525269, -298.48538208008, 10564, 363 +42 = -253.05255126953, -24.08392906189, -300.93060302734, 10560, 363 +43 = -251.22828674316, -24.814249038696, -299.98568725586, 11563, 363 +44 = -249.4623260498, -24.260999679565, -292.31454467773, 12697, 363 +45 = -247.83016967773, -25.538841247559, -297.10531616211, 13813, 363 +46 = -261.06948852539, -20.202243804932, -292.35140991211, 7355, 363 +47 = -258.98593139648, -20.716327667236, -290.57821655273, 8205, 363 +48 = -259.56741333008, -21.296581268311, -293.22036743164, 7634, 363 +49 = -255.12283325195, -23.342758178711, -294.36318969727, 9629, 363 +50 = -250.10668945312, -22.556798934937, -285.52709960938, 12312, 363 +51 = -249.8923034668, -21.105163574219, -281.65844726562, 11578, 363 + +[esc_space_restrictor_to_marsh_2] +1 = -198.61148071289, 25.12819480896, 223.34855651855, 52735, 364 +2 = -166.91549682617, 15.05362033844, 228.02954101562, 83823, 364 +3 = -164.40682983398, 13.795787811279, 227.91389465332, 85408, 364 +4 = -162.10963439941, 13.873215675354, 225.73629760742, 88483, 627 +5 = -161.04653930664, 14.853354454041, 223.35098266602, 91602, 627 +6 = -161.44631958008, 16.278057098389, 221.40380859375, 91602, 627 +7 = -161.85643005371, 17.239618301392, 220.18124389648, 91602, 627 +8 = -162.20120239258, 18.373527526855, 218.5654296875, 91602, 627 +9 = -164.53062438965, 18.437976837158, 220.9107208252, 91602, 627 +10 = -164.73991394043, 17.041980743408, 223.40420532227, 85405, 627 +11 = -164.65980529785, 15.308051109314, 225.96842956543, 86173, 627 +12 = -167.26150512695, 15.903677940369, 227.09019470215, 83011, 364 +13 = -169.01135253906, 15.387639045715, 228.44442749023, 82175, 364 +14 = -171.01025390625, 16.229839324951, 228.42118835449, 82175, 364 +15 = -169.98136901855, 17.699974060059, 225.98524475098, 83011, 364 +16 = -171.05297851562, 19.376361846924, 224.49452209473, 83011, 364 +17 = -168.76013183594, 19.675659179688, 222.83947753906, 83011, 364 +18 = -171.35649108887, 20.647006988525, 223.03416442871, 83011, 364 +19 = -173.09838867188, 19.535558700562, 224.97653198242, 83011, 364 +20 = -175.24479675293, 17.999513626099, 227.27502441406, 73400, 364 +21 = -177.59622192383, 18.852998733521, 226.84443664551, 71527, 364 +22 = -177.40930175781, 20.542240142822, 225.09645080566, 71527, 364 +23 = -174.47741699219, 21.96336555481, 223.00653076172, 71527, 364 +24 = -180.06817626953, 23.964792251587, 221.48724365234, 68975, 364 +25 = -180.83624267578, 21.724639892578, 224.16938781738, 68975, 364 +26 = -182.94438171387, 20.225238800049, 226.4259185791, 67077, 364 +27 = -184.89443969727, 21.671575546265, 224.98454284668, 65787, 364 +28 = -184.43089294434, 23.942810058594, 222.40441894531, 65787, 364 +29 = -186.65194702148, 25.656326293945, 220.40408325195, 63217, 364 +30 = -188.88290405273, 25.884174346924, 220.38485717773, 61344, 364 +31 = -189.19155883789, 24.560920715332, 223.25941467285, 61344, 364 +32 = -190.11630249023, 22.554885864258, 225.28997802734, 60097, 364 +33 = -193.44085693359, 23.37520980835, 225.66923522949, 56958, 364 +34 = -195.00433349609, 24.59342956543, 223.8874206543, 56958, 364 +35 = -193.53164672852, 26.215412139893, 219.05972290039, 56958, 364 +36 = -196.97369384766, 26.109039306641, 219.6428527832, 53341, 364 +37 = -199.43533325195, 25.82893371582, 222.04627990723, 52116, 364 +38 = -194.63293457031, 25.351577758789, 221.6162109375, 56958, 364 +39 = -197.62773132324, 26.68563079834, 250.30546569824, 55134, 364 +40 = -194.20504760742, 26.15566444397, 250.35163879395, 55737, 364 +41 = -192.83027648926, 25.852613449097, 247.95021057129, 57603, 364 +42 = -194.54499816895, 24.968654632568, 245.78218078613, 56348, 364 +43 = -195.36431884766, 24.253879547119, 243.12565612793, 56348, 364 +44 = -195.77445983887, 23.792060852051, 241.48480224609, 56348, 364 +45 = -197.83544921875, 24.744010925293, 241.46987915039, 56348, 364 +46 = -198.79888916016, 24.317651748657, 239.14556884766, 56348, 364 +47 = -197.04179382324, 22.863069534302, 238.11343383789, 56348, 364 +48 = -197.19259643555, 22.468481063843, 236.3044128418, 55134, 364 +49 = -195.90278625488, 21.735591888428, 234.75219726562, 55737, 364 +50 = -193.45483398438, 21.112329483032, 235.40338134766, 58233, 364 +51 = -192.79582214355, 21.503814697266, 238.08932495117, 58233, 364 +52 = -193.86026000977, 22.267578125, 239.33139038086, 56969, 364 +53 = -193.45645141602, 22.897197723389, 241.25880432129, 57603, 364 +54 = -190.8757019043, 23.283170700073, 242.1731262207, 59500, 364 +55 = -187.72512817383, 23.269872665405, 241.61352539062, 61986, 364 +56 = -186.75241088867, 21.902328491211, 239.04968261719, 63228, 364 +57 = -187.72384643555, 20.939695358276, 237.52365112305, 63228, 364 +58 = -186.86973571777, 20.179565429688, 236.18127441406, 63874, 364 +59 = -184.34721374512, 20.223726272583, 236.1157989502, 66435, 364 +60 = -181.46527099609, 20.047494888306, 237.49095153809, 68370, 364 +61 = -177.74169921875, 18.964065551758, 238.73942565918, 73412, 364 +62 = -175.16836547852, 18.992191314697, 241.25308227539, 74060, 364 +63 = -172.35403442383, 17.550098419189, 241.12879943848, 76685, 364 +64 = -169.60372924805, 16.565021514893, 241.04454040527, 76685, 364 +65 = -168.74732971191, 15.619213104248, 239.4986114502, 78868, 364 +66 = -166.62503051758, 15.232550621033, 241.18896484375, 79679, 364 +67 = -164.93524169922, 14.825362205505, 242.28067016602, 79679, 364 +68 = -163.30404663086, 13.554557800293, 240.88768005371, 90815, 364 +69 = -167.34889221191, 16.018974304199, 242.39218139648, 90815, 364 +70 = -169.40953063965, 17.45259475708, 243.66259765625, 90815, 364 +71 = -171.3440246582, 17.963817596436, 243.0212097168, 90815, 364 +72 = -173.63391113281, 19.462600708008, 243.53308105469, 90815, 364 +73 = -175.46008300781, 20.22020149231, 243.16149902344, 90815, 364 +74 = -176.94351196289, 19.857719421387, 241.10836791992, 74060, 364 +75 = -178.63739013672, 20.937582015991, 241.45904541016, 74060, 364 +76 = -180.12294006348, 21.254409790039, 240.607421875, 74060, 364 +77 = -181.09791564941, 20.672134399414, 238.7583770752, 74060, 364 +78 = -183.66862487793, 21.898721694946, 238.84161376953, 74060, 364 +79 = -184.82194519043, 22.875385284424, 240.50836181641, 74060, 364 +80 = -186.6692199707, 23.688142776489, 242.32148742676, 74060, 364 +81 = -188.02261352539, 24.098634719849, 243.40437316895, 74060, 364 +82 = -189.83688354492, 24.411502838135, 244.37405395508, 74060, 364 +83 = -192.32893371582, 24.027992248535, 243.9919128418, 74060, 364 +84 = -192.67523193359, 25.001327514648, 246.09585571289, 74060, 364 +85 = -195.32647705078, 25.767292022705, 247.1506652832, 74060, 364 +86 = -197.5376739502, 26.508390426636, 245.63558959961, 74060, 364 +87 = -200.07434082031, 27.382318496704, 245.15789794922, 74060, 364 +88 = -191.44563293457, 25.557529449463, 250.99182128906, 74060, 364 +89 = -192.853515625, 25.784116744995, 253.00451660156, 74060, 364 +90 = -193.88531494141, 25.8743019104, 256.64300537109, 74060, 364 +91 = -196.5237121582, 26.454412460327, 252.50370788574, 74060, 364 +92 = -190.47891235352, 25.308706283569, 248.37628173828, 74060, 364 +93 = -190.70486450195, 25.005348205566, 245.78143310547, 74060, 364 +94 = -188.08262634277, 24.75378036499, 248.53594970703, 74060, 364 +95 = -188.82678222656, 24.959741592407, 252.1900177002, 74060, 364 +96 = -185.58401489258, 24.15411567688, 247.51564025879, 74060, 364 +97 = -186.04360961914, 24.242784500122, 243.97079467773, 74060, 364 +98 = -186.5400390625, 24.386238098145, 250.99615478516, 74060, 364 +99 = -184.31625366211, 23.784412384033, 249.97775268555, 74060, 364 +100 = -183.90106201172, 23.690082550049, 247.7357635498, 74060, 364 +101 = -183.66754150391, 23.654373168945, 244.49786376953, 74060, 364 +102 = -183.01651000977, 23.461786270142, 242.4641418457, 74060, 364 +103 = -180.41381835938, 22.425579071045, 243.71401977539, 74060, 364 +104 = -178.01678466797, 21.364185333252, 243.20826721191, 74060, 364 +105 = -171.05030822754, 18.518815994263, 245.82418823242, 76685, 364 +106 = -173.84439086914, 19.739784240723, 246.14875793457, 74714, 364 +107 = -176.28503417969, 20.839080810547, 246.84039306641, 74060, 364 +108 = -178.52125549316, 21.790328979492, 246.53588867188, 74060, 364 +109 = -180.6483001709, 22.752586364746, 247.20114135742, 74060, 364 +110 = -182.70321655273, 23.351722717285, 248.43936157227, 74060, 364 +111 = -175.88143920898, 20.5397605896, 244.77014160156, 74060, 364 +112 = -172.09571838379, 19.220417022705, 249.12588500977, 76685, 364 +113 = -175.27949523926, 20.630760192871, 250.62991333008, 74060, 364 +114 = -179.07308959961, 22.210838317871, 249.55587768555, 74060, 364 +115 = -190.88417053223, 25.33837890625, 254.26184082031, 74060, 364 +116 = -181.4051361084, 22.954677581787, 251.32655334473, 74060, 364 +117 = -174.07363891602, 19.929716110229, 247.69918823242, 74060, 364 +118 = -178.23950195312, 21.766004562378, 248.17124938965, 74060, 364 +119 = -173.92962646484, 18.445760726929, 226.43267822266, 73400, 364 +120 = -175.84844970703, 20.486125946045, 224.84710693359, 71527, 364 +121 = -180.56246948242, 22.952142715454, 223.26051330566, 68975, 364 +122 = -184.1452331543, 23.000993728638, 223.66883850098, 65787, 364 +123 = -187.2684173584, 22.28600692749, 225.15469360352, 63217, 364 +124 = -187.60269165039, 25.316265106201, 221.34635925293, 61975, 364 +125 = -190.97763061523, 26.170307159424, 219.3536529541, 58222, 364 +126 = -193.37643432617, 25.664262771606, 220.74703979492, 56958, 364 +127 = -197.3310546875, 25.457187652588, 221.58212280273, 53341, 364 +128 = -183.73959350586, 24.68119430542, 220.94744873047, 65787, 364 +129 = -178.16310119629, 22.690055847168, 223.16976928711, 68975, 364 +130 = -172.6842956543, 21.09366607666, 223.22503662109, 71527, 364 +131 = -168.62301635742, 17.83006477356, 225.37945556641, 83011, 364 +132 = -166.45199584961, 16.926780700684, 225.17953491211, 85405, 627 +133 = -165.60746765137, 18.274221420288, 222.24975585938, 85405, 627 +134 = -162.44622802734, 13.142259597778, 227.98475646973, 88486, 627 +135 = -162.86459350586, 15.123009681702, 224.60600280762, 87703, 627 +136 = -163.1875, 17.113761901855, 221.75628662109, 87703, 627 +137 = -160.9895324707, 13.143977165222, 226.98628234863, 90034, 627 +138 = -159.1678314209, 13.328948020935, 224.67486572266, 92433, 627 +139 = -157.29956054688, 12.782279968262, 223.33157348633, 94131, 627 +140 = -159.48480224609, 14.436009407043, 222.44323730469, 91602, 627 +141 = -157.50184631348, 14.459730148315, 220.32647705078, 93279, 627 +142 = -159.51884460449, 15.960982322693, 219.81832885742, 93279, 627 +143 = -158.48361206055, 16.422731399536, 217.87327575684, 93279, 627 +144 = -160.0865020752, 17.803646087646, 217.24160766602, 93279, 627 +145 = -173.40026855469, 18.672370910645, 242.3501739502, 76025, 364 +146 = -180.12934875488, 22.26256942749, 243.06503295898, 74060, 364 +147 = -181.86083984375, 22.386814117432, 241.02563476562, 74060, 364 +148 = -175.34631347656, 17.936330795288, 239.1940612793, 74060, 364 +149 = -170.33087158203, 16.413932800293, 239.85514831543, 77366, 364 + +;[esc_space_restrictor_to_darkscape_1] + +[esc_space_restrictor_to_pole_1] +1 = 321.33123779297, 16.825109481812, 337.62133789062, 603795, 427 +2 = 323.83737182617, 16.974868774414, 323.31469726562, 605830, 427 +3 = 326.02230834961, 17.658029556274, 321.70697021484, 607031, 427 +4 = 330.13916015625, 19.238260269165, 321.95840454102, 608510, 427 +5 = 330.18310546875, 18.781482696533, 317.03527832031, 609260, 427 +6 = 326.0451965332, 17.390544891357, 314.59802246094, 607020, 427 +7 = 331.01348876953, 20.154054641724, 326.15966796875, 607409, 427 +8 = 328.7477722168, 19.53945350647, 328.99835205078, 607409, 427 +9 = 325.34255981445, 18.084705352783, 331.77569580078, 605025, 427 +10 = 323.04989624023, 17.440631866455, 335.22705078125, 604622, 427 +11 = 325.66885375977, 18.221746444702, 333.61334228516, 605026, 427 +12 = 320.4723815918, 16.379745483398, 340.71340942383, 603799, 427 +13 = 329.30947875977, 19.60152053833, 332.29000854492, 605025, 427 +14 = 330.70831298828, 20.486637115479, 334.99438476562, 605026, 427 +15 = 328.03393554688, 18.932607650757, 337.39459228516, 605026, 427 +16 = 329.47210693359, 19.423557281494, 342.64428710938, 605026, 427 +17 = 333.91589355469, 21.70442199707, 342.55908203125, 605026, 427 +18 = 325.37707519531, 18.133380889893, 336.47387695312, 605026, 427 +19 = 320.98449707031, 16.797010421753, 334.37246704102, 604210, 427 +20 = 322.10589599609, 17.06685256958, 332.01675415039, 604619, 427 +21 = 324.28952026367, 17.708168029785, 328.72448730469, 604619, 427 +22 = 327.09008789062, 18.80249786377, 330.19091796875, 605025, 427 +23 = 319.35836791992, 16.060352325439, 336.72381591797, 602942, 427 +24 = 323.30255126953, 16.534858703613, 318.01223754883, 605418, 427 +25 = 326.24307250977, 17.556049346924, 317.15936279297, 607024, 427 +26 = 303.87783813477, 12.887364387512, 346.10638427734, 593694, 427 +27 = 312.24981689453, 15.247632026672, 346.14813232422, 598712, 427 +28 = 307.11322021484, 12.222060203552, 340.93807983398, 595804, 427 +29 = 304.00942993164, 11.208079338074, 339.67352294922, 593685, 427 +30 = 304.5908203125, 10.89642906189, 336.91491699219, 594112, 427 +31 = 302.96231079102, 10.017067909241, 334.76107788086, 593243, 427 +32 = 304.8415222168, 10.089618682861, 331.29925537109, 594104, 427 +33 = 301.38806152344, 9.8905897140503, 336.84548950195, 592355, 427 +34 = 317.26773071289, 15.137119293213, 335.20294189453, 601688, 427 +35 = 299.50238037109, 11.808996200562, 345.68420410156, 590972, 427 +36 = 317.79821777344, 15.251942634583, 332.93560791016, 602102, 427 +37 = 320.50659179688, 16.311363220215, 330.98791503906, 603787, 427 +38 = 320.90097045898, 16.275564193726, 328.3586730957, 603354, 427 +39 = 319.89028930664, 15.57973575592, 325.79025268555, 603350, 427 +40 = 321.83810424805, 16.28479385376, 324.39416503906, 604616, 427 +41 = 310.00894165039, 17.308681488037, 351.85568237305, 597893, 427 +42 = 323.22515869141, 17.31559753418, 329.55908203125, 604619, 427 +43 = 324.59637451172, 17.547569274902, 325.59213256836, 605831, 427 +44 = 326.97592163086, 18.43483543396, 324.88293457031, 606632, 427 +45 = 327.67523193359, 18.455451965332, 322.84930419922, 607409, 427 +46 = 329.75445556641, 18.902811050415, 320.59216308594, 608510, 427 +47 = 330.09765625, 19.961847305298, 326.99307250977, 608510, 427 +48 = 333.02154541016, 21.603618621826, 330.95816040039, 608510, 427 +49 = 333.17700195312, 21.829565048218, 332.98275756836, 608510, 427 +50 = 329.13195800781, 19.38987159729, 335.08770751953, 608510, 427 +51 = 327.78424072266, 18.828725814819, 337.89318847656, 608146, 427 +52 = 306.87023925781, 15.42750453949, 350.51501464844, 595817, 427 +53 = 325.50396728516, 18.003164291382, 341.20812988281, 607031, 427 +54 = 323.21426391602, 17.27193069458, 341.87390136719, 603801, 427 +55 = 323.65231323242, 17.327966690063, 344.86434936523, 603802, 427 +56 = 324.03503417969, 18.044982910156, 349.13464355469, 603802, 427 +57 = 327.09045410156, 18.412162780762, 348.48187255859, 603802, 427 +58 = 329.87255859375, 19.5378074646, 347.64947509766, 603802, 427 +59 = 331.09564208984, 20.060192108154, 343.47817993164, 603802, 427 +60 = 332.95178222656, 21.210306167603, 341.53924560547, 603800, 427 +61 = 331.89569091797, 20.849985122681, 338.65533447266, 603800, 427 +62 = 334.89447021484, 22.75790977478, 335.27310180664, 603800, 427 +63 = 308.44519042969, 15.181963920593, 348.70526123047, 596664, 427 +64 = 336.63632202148, 23.379034042358, 339.61883544922, 603800, 427 +65 = 338.47817993164, 24.756771087646, 342.86602783203, 603802, 427 +66 = 340.94708251953, 26.523204803467, 346.57586669922, 603802, 427 +67 = 331.14135742188, 20.047468185425, 347.27355957031, 603802, 427 +68 = 325.93103027344, 18.313663482666, 334.14791870117, 603800, 427 +69 = 308.02105712891, 13.78523349762, 345.40618896484, 596237, 427 +70 = 305.1242980957, 13.271563529968, 346.26348876953, 594549, 427 +71 = 300.39544677734, 12.198830604553, 345.85736083984, 591435, 427 +72 = 302.74914550781, 11.226148605347, 341.65063476562, 593252, 427 +73 = 305.3317565918, 11.476439476013, 339.37850952148, 594539, 427 +74 = 307.00555419922, 11.19765663147, 335.166015625, 595796, 427 +75 = 303.33880615234, 10.576528549194, 336.91882324219, 593246, 427 +76 = 303.1637878418, 11.455243110657, 342.10357666016, 593253, 427 +77 = 300.94869995117, 10.691424369812, 341.58758544922, 592358, 427 +78 = 298.44732666016, 10.018589019775, 342.42184448242, 590035, 427 +79 = 295.06597900391, 9.8908758163452, 344.69689941406, 588171, 427 +80 = 301.19702148438, 10.011868476868, 337.77545166016, 591897, 427 +81 = 302.74713134766, 9.7934579849243, 333.15948486328, 592803, 427 +82 = 300.88562011719, 8.982515335083, 330.63562011719, 591886, 427 +83 = 300.82440185547, 9.2859907150269, 333.60098266602, 591891, 427 +84 = 301.01788330078, 9.5755310058594, 335.87741088867, 591894, 427 +85 = 298.38995361328, 9.4666166305542, 339.55450439453, 590031, 427 +86 = 296.37356567383, 8.9817972183228, 340.59350585938, 588641, 427 +87 = 298.39398193359, 8.8641395568848, 336.70666503906, 590027, 427 +88 = 300.95532226562, 9.684910774231, 336.52770996094, 591895, 427 +89 = 301.3203125, 10.773880958557, 341.40356445312, 592358, 427 +90 = 297.21719360352, 9.9755458831787, 343.39038085938, 589574, 427 +91 = 295.34002685547, 8.8972616195679, 341.55923461914, 588167, 427 +92 = 293.0791015625, 8.2224578857422, 340.25244140625, 586757, 427 +93 = 294.17584228516, 7.9749326705933, 337.49438476562, 587221, 427 +94 = 296.17587280273, 8.3099718093872, 336.55447387695, 588635, 427 +95 = 298.16644287109, 8.5734300613403, 333.91384887695, 590023, 427 +96 = 299.37051391602, 8.7019138336182, 331.43817138672, 590951, 427 +97 = 300.56079101562, 8.7904758453369, 329.89611816406, 591417, 427 +98 = 302.44372558594, 9.2764329910278, 329.02355957031, 592797, 427 +99 = 304.57333374023, 9.5938682556152, 328.39993286133, 594100, 427 +100 = 306.20855712891, 9.7345514297485, 325.87976074219, 594941, 427 +101 = 308.46990966797, 10.511311531067, 325.24844360352, 596631, 427 +102 = 309.38311767578, 10.662689208984, 322.84350585938, 596629, 427 +103 = 307.61090087891, 9.984974861145, 320.2822265625, 595775, 427 +104 = 309.25653076172, 10.720614433289, 318.43756103516, 597036, 427 +105 = 312.06378173828, 11.713084220886, 319.90948486328, 599112, 427 +106 = 313.66409301758, 12.535683631897, 322.65432739258, 600803, 427 +107 = 312.56579589844, 12.941073417664, 330.76187133789, 599120, 427 +108 = 307.9241027832, 11.466057777405, 334.31713867188, 596222, 427 +109 = 304.36553955078, 11.33361530304, 339.92538452148, 594117, 427 +110 = 303.20559692383, 11.600989341736, 342.54580688477, 593253, 427 +111 = 300.82653808594, 11.813572883606, 344.57870483398, 591901, 427 +112 = 300.83877563477, 11.79779624939, 344.52386474609, 591901, 427 +113 = 302.35522460938, 12.639138221741, 346.36566162109, 592817, 427 +114 = 298.21109008789, 11.667765617371, 346.47732543945, 590506, 427 +115 = 298.63107299805, 9.962477684021, 342.0224609375, 590501, 427 +116 = 297.60653686523, 9.3421812057495, 340.16052246094, 589569, 427 +117 = 298.72094726562, 9.3622426986694, 338.58264160156, 590496, 427 +118 = 298.61120605469, 8.8941450119019, 336.52621459961, 590493, 427 +119 = 300.71603393555, 9.291675567627, 334.14013671875, 591891, 427 +120 = 303.4753112793, 10.388276100159, 335.7265625, 593680, 427 +121 = 306.51391601562, 10.96373462677, 333.62109375, 595374, 427 +122 = 310.42074584961, 11.693634986877, 327.9274597168, 597453, 427 +123 = 303.62854003906, 9.0474853515625, 326.12585449219, 593666, 427 +124 = 297.44155883789, 7.8424987792969, 328.802734375, 589556, 427 +125 = 295.30096435547, 7.6795468330383, 332.07666015625, 588153, 427 +126 = 293.66589355469, 7.595808506012, 335.04339599609, 587218, 427 +127 = 291.66107177734, 7.5512914657593, 337.94152832031, 585817, 427 +128 = 295.46905517578, 8.4190645217896, 338.90274047852, 588163, 427 +129 = 302.02905273438, 10.404735565186, 338.32711791992, 592357, 427 +130 = 307.47485351562, 11.747811317444, 337.85308837891, 595800, 427 + +; Army outpost @ North +[esc_space_restrictor_to_garbage_1] +1 = 24.708316802979, 16.518863677979, 679.75170898438, 334664, 369 +2 = 22.447031021118, 16.518089294434, 675.58831787109, 332028, 369 + +[esc_space_restrictor_to_garbage_2] +1 = -170.61889648438, 1.3416738510132, 328.96716308594, 81345, 367 +2 = -171.36253356934, 2.1363625526428, 330.51303100586, 79680, 367 +3 = -172.70593261719, 2.9752719402313, 328.650390625, 79680, 367 +4 = -174.13133239746, 4.3163833618164, 329.64169311523, 79680, 367 +5 = -173.36894226074, 3.9902536869049, 332.34255981445, 79680, 367 +6 = -171.84924316406, 2.8466436862946, 335.38003540039, 78869, 604 +7 = -171.68969726562, 2.4180417060852, 338.75387573242, 78871, 604 +8 = -173.98370361328, 4.3958697319031, 339.36538696289, 78091, 604 +9 = -175.16668701172, 5.7275595664978, 337.03472900391, 78091, 604 +10 = -176.34623718262, 6.9067158699036, 332.37423706055, 78091, 604 +11 = -177.66215515137, 8.3214426040649, 329.93280029297, 78091, 604 +12 = -178.54539489746, 9.4112310409546, 330.27508544922, 78091, 604 +13 = -179.2649230957, 10.334289550781, 332.5869140625, 78091, 604 +14 = -180.4750213623, 11.355184555054, 333.72241210938, 78091, 604 +15 = -181.16128540039, 12.25426197052, 331.49282836914, 78091, 604 +16 = -182.59107971191, 13.511216163635, 329.51635742188, 78091, 604 +17 = -183.68608093262, 14.260587692261, 330.18511962891, 78091, 604 +18 = -183.20529174805, 14.014281272888, 332.24743652344, 78091, 604 +19 = -183.9826965332, 14.468770027161, 336.0407409668, 78091, 604 +20 = -185.91261291504, 15.548970222473, 337.30044555664, 78091, 604 +21 = -187.60890197754, 16.209489822388, 334.32852172852, 78091, 604 +22 = -190.32653808594, 16.988494873047, 333.78979492188, 78091, 604 +23 = -191.00735473633, 17.218431472778, 336.30975341797, 78091, 604 +24 = -192.77629089355, 17.753364562988, 337.15002441406, 78091, 604 +25 = -192.1967010498, 17.604852676392, 339.04895019531, 78091, 604 +26 = -192.16012573242, 17.655839920044, 341.25885009766, 78091, 604 +27 = -193.80480957031, 18.239459991455, 340.77746582031, 78091, 604 +28 = -194.55673217773, 18.315870285034, 342.83804321289, 78091, 604 +29 = -193.13348388672, 16.99746131897, 344.72705078125, 78091, 604 +30 = -191.15600585938, 15.500712394714, 345.59906005859, 78091, 604 +31 = -190.16809082031, 16.068851470947, 343.82977294922, 78091, 604 +32 = -189.14682006836, 16.243291854858, 342.50927734375, 78091, 604 +33 = -188.23181152344, 16.326465606689, 339.96020507812, 78091, 604 +34 = -185.01171875, 14.798892021179, 338.98089599609, 78091, 604 +35 = -182.77766418457, 13.421678543091, 337.73336791992, 78091, 604 +36 = -180.98698425293, 11.980231285095, 335.94876098633, 78091, 604 +37 = -178.69119262695, 9.5651741027832, 335.38607788086, 78091, 604 +38 = -176.73463439941, 7.4027061462402, 334.72515869141, 78091, 604 +39 = -174.55862426758, 5.3833866119385, 334.28283691406, 78091, 604 +40 = -175.66213989258, 6.0437393188477, 339.49609375, 78091, 604 +41 = -175.1203918457, 4.0438723564148, 342.05804443359, 78091, 604 +42 = -174.95013427734, 2.6321773529053, 344.6477355957, 77367, 604 +43 = -176.71430969238, 3.661479473114, 346.35559082031, 77368, 604 +44 = -177.18521118164, 6.1109113693237, 342.92483520508, 77367, 604 +45 = -178.7222442627, 8.9563961029053, 340.32357788086, 77367, 604 +46 = -181.46600341797, 11.8587474823, 339.97268676758, 77367, 604 +47 = -181.83615112305, 10.103211402893, 344.05795288086, 77367, 604 +48 = -179.64282226562, 7.088770866394, 345.689453125, 77367, 604 +49 = -184.67724609375, 13.671522140503, 342.04837036133, 77367, 604 +50 = -184.62261962891, 11.816022872925, 345.35034179688, 77367, 604 +51 = -187.36793518066, 14.158164024353, 344.81140136719, 77367, 604 +52 = -187.90570068359, 15.297624588013, 343.78118896484, 77367, 604 +53 = -173.44677734375, 0.57894378900528, 346.34298706055, 77370, 604 +54 = -170.9833984375, -0.64599627256393, 345.69006347656, 78881, 604 +55 = -151.50805664062, -2.2042331695557, 343.36029052734, 100928, 604 +56 = -149.73419189453, -1.8829324245453, 340.09887695312, 101748, 604 +57 = -147.2223815918, 0.79027050733566, 344.68695068359, 101748, 604 +58 = -144.87750244141, 2.6605327129364, 346.26260375977, 101748, 604 +59 = -142.76055908203, 4.3289909362793, 343.84808349609, 101748, 604 +60 = -140.92169189453, 5.8300890922546, 343.62857055664, 101748, 604 +61 = -138.44329833984, 7.4850025177002, 341.45129394531, 101748, 604 +62 = -136.82064819336, 9.3648462295532, 341.55023193359, 101748, 604 +63 = -134.91342163086, 12.071074485779, 343.52395629883, 101748, 604 +64 = -132.98197937012, 13.811705589294, 341.68069458008, 101748, 604 +65 = -131.61161804199, 15.15215587616, 340.30102539062, 101748, 604 +66 = -129.22802734375, 17.659614562988, 341.32214355469, 101748, 604 +67 = -127.0592956543, 19.742809295654, 340.19781494141, 101748, 604 +68 = -125.89169311523, 20.371906280518, 337.50317382812, 101748, 604 +69 = -124.55432891846, 21.524770736694, 338.29296875, 101748, 604 +70 = -123.5358581543, 23.159742355347, 340.73483276367, 101748, 604 +71 = -121.58742523193, 24.884937286377, 340.07373046875, 101748, 604 +72 = -120.50897216797, 25.283128738403, 337.54147338867, 101748, 604 +73 = -121.19798278809, 23.663543701172, 333.63909912109, 101748, 604 +74 = -123.52420043945, 21.192909240723, 332.15509033203, 101748, 604 +75 = -125.23226928711, 19.718328475952, 333.31329345703, 101748, 604 +76 = -127.13967132568, 18.543466567993, 335.24450683594, 101748, 604 +77 = -128.28875732422, 18.208637237549, 337.44107055664, 101748, 604 +78 = -129.85134887695, 16.749418258667, 338.9404296875, 101748, 604 +79 = -131.38410949707, 14.378855705261, 337.01379394531, 101748, 604 +80 = -131.19609069824, 13.338519096375, 334.59817504883, 101748, 604 +81 = -132.68969726562, 10.982266426086, 333.6533203125, 101748, 604 +82 = -134.11859130859, 10.323496818542, 335.80847167969, 101748, 604 +83 = -135.57905578613, 9.8991422653198, 338.61181640625, 101748, 604 +84 = -137.41184997559, 7.9340009689331, 339.45587158203, 101748, 604 +85 = -139.91744995117, 5.8182482719421, 339.73916625977, 101748, 604 +86 = -142.03198242188, 4.4539012908936, 340.97204589844, 101748, 604 +87 = -144.60697937012, 1.881142616272, 339.55584716797, 101748, 604 +88 = -146.99710083008, -0.10736963152885, 339.03994750977, 101748, 604 +89 = -148.25505065918, -1.7058424949646, 335.98706054688, 104981, 604 +90 = -147.08576965332, -1.1857323646545, 333.79016113281, 105796, 604 +91 = -144.63241577148, 0.16508424282074, 333.12420654297, 107403, 604 +92 = -142.94903564453, 0.40644150972366, 330.26409912109, 107401, 604 +93 = -143.00308227539, -0.091758564114571, 326.91052246094, 107396, 367 +94 = -141.74307250977, 0.22446185350418, 324.52066040039, 107393, 367 +95 = -140.5404510498, 2.2173483371735, 324.97885131836, 107394, 367 +96 = -140.24743652344, 2.476838350296, 327.98892211914, 107399, 367 +97 = -138.78076171875, 4.4951233863831, 329.99172973633, 107401, 604 +98 = -137.08699035645, 6.3669981956482, 330.92434692383, 107403, 604 +99 = -135.52462768555, 8.0127553939819, 332.31826782227, 107403, 604 +100 = -133.89067077637, 9.7634515762329, 332.26623535156, 107403, 604 +101 = -128.88822937012, 16.270862579346, 334.58615112305, 107403, 604 +102 = -134.89588928223, 8.7042827606201, 334.38491821289, 107403, 604 +103 = -136.39912414551, 7.7195711135864, 335.91116333008, 107403, 604 +104 = -138.0076751709, 6.9774079322815, 338.57504272461, 107403, 604 +105 = -139.49067687988, 5.405385017395, 337.72723388672, 107403, 604 +106 = -139.08195495605, 4.8012862205505, 335.2546081543, 107403, 604 +107 = -137.78993225098, 5.6804342269897, 333.09634399414, 107403, 604 +108 = -139.59231567383, 3.8948128223419, 331.18240356445, 107403, 604 +109 = -141.60211181641, 1.8160219192505, 331.99645996094, 107403, 604 +110 = -142.25119018555, 1.8576209545135, 334.43249511719, 107403, 604 +111 = -141.80438232422, 3.3726868629456, 337.49877929688, 107403, 604 +112 = -143.21617126465, 3.194491147995, 340.0832824707, 107403, 604 +113 = -144.62371826172, 1.1517815589905, 337.48016357422, 107403, 604 +114 = -145.79176330566, -0.052617505192757, 335.66168212891, 104981, 604 +115 = -144.20587158203, 0.74915009737015, 334.42138671875, 107403, 604 +116 = -139.14323425293, 4.3925395011902, 326.6452331543, 107397, 367 +117 = -140.90277099609, 1.2370579242706, 323.40753173828, 107393, 367 +118 = -139.63442993164, 3.4454050064087, 323.95095825195, 107394, 367 +119 = -138.15975952148, 6.1006259918213, 324.95233154297, 107394, 367 +120 = -136.73480224609, 7.5592031478882, 326.27490234375, 107397, 367 +121 = -134.78311157227, 9.5775327682495, 326.54306030273, 107399, 367 +122 = -132.55557250977, 12.333214759827, 325.71176147461, 107397, 367 +123 = -130.96006774902, 13.500779151917, 327.97528076172, 107400, 604 +124 = -129.40069580078, 15.372506141663, 330.47802734375, 107403, 604 +125 = -127.33857727051, 17.861639022827, 331.20776367188, 107403, 604 +126 = -126.44623565674, 18.665546417236, 333.42071533203, 107403, 604 +127 = -125.65176391602, 19.986988067627, 335.48956298828, 107403, 604 +128 = -129.48974609375, 14.78297328949, 333.51806640625, 107403, 604 +129 = -131.61250305176, 12.353096008301, 332.82598876953, 107403, 604 +130 = -132.44297790527, 11.442427635193, 331.02075195312, 107403, 604 +131 = -132.12239074707, 12.305665969849, 327.47805786133, 107399, 367 +132 = -133.84437561035, 10.257785797119, 327.46942138672, 107399, 367 +133 = -135.21765136719, 8.4969549179077, 329.04406738281, 107401, 604 +134 = -136.29458618164, 7.1517691612244, 331.00128173828, 107403, 604 +135 = -136.99472045898, 6.7920227050781, 328.53012084961, 107400, 604 +136 = -138.25747680664, 5.6828899383545, 326.87838745117, 107397, 367 +137 = -138.61027526855, 4.8569755554199, 328.44854736328, 107399, 367 +138 = -136.47653198242, 7.0691032409668, 334.05310058594, 107403, 604 +139 = -133.59173583984, 10.331761360168, 329.08746337891, 107401, 604 +140 = -135.21046447754, 9.4307012557983, 324.91293334961, 107394, 367 +141 = -136.91125488281, 7.5923628807068, 324.45571899414, 107394, 367 +142 = -137.15399169922, 7.2290372848511, 323.02194213867, 107394, 367 +143 = -138.63494873047, 4.5124759674072, 322.80493164062, 107393, 367 +144 = -139.95581054688, 2.097455739975, 321.63226318359, 107388, 367 +145 = -141.58790588379, 1.0516667366028, 328.00756835938, 107399, 367 +146 = -139.67315673828, 4.0920329093933, 333.10214233398, 107403, 604 +147 = -130.96841430664, 13.250003814697, 330.59719848633, 107403, 604 +148 = -129.60354614258, 15.658738136292, 327.92114257812, 107400, 604 +149 = -128.08999633789, 17.579574584961, 328.92761230469, 107403, 604 +150 = -125.77990722656, 19.55835723877, 329.58941650391, 107403, 604 +151 = -124.3479385376, 20.786409378052, 330.3427734375, 107403, 604 +152 = -122.02574157715, 22.610380172729, 331.71948242188, 107403, 604 +153 = -120.07458496094, 25.114231109619, 334.90808105469, 107403, 604 +154 = -119.71103668213, 26.053939819336, 338.67358398438, 107403, 604 +155 = -189.48156738281, 16.721271514893, 337.14254760742, 79686, 604 +156 = -186.95791625977, 16.275749206543, 328.17477416992, 78091, 604 +157 = -181.21151733398, 12.413558006287, 328.82421875, 78091, 604 +158 = -182.12504577637, 13.062376976013, 332.16189575195, 78091, 604 +159 = -184.36499023438, 14.468826293945, 338.06976318359, 78091, 604 +160 = -197.35485839844, 19.578800201416, 340.05218505859, 78091, 604 +161 = -160.99151611328, -3.4327576160431, 335.42535400391, 90082, 604 +162 = -162.68188476562, -3.2252967357635, 337.56024169922, 88524, 604 +163 = -166.03569030762, -1.976170539856, 338.62316894531, 84655, 604 +164 = -195.69873046875, 18.909729003906, 334.86450195312, 78091, 604 +165 = -191.90649414062, 17.55717086792, 332.59216308594, 78091, 604 +166 = -189.64392089844, 16.889472961426, 331.66857910156, 78091, 604 +167 = -189.38932800293, 17.202537536621, 329.63024902344, 78091, 604 +168 = -193.72833251953, 18.132368087769, 335.74432373047, 78091, 604 +169 = -196.00170898438, 20.06778717041, 330.65307617188, 78091, 604 +170 = -192.83415222168, 18.549629211426, 329.56692504883, 78091, 604 +171 = -191.00782775879, 19.00514793396, 326.31585693359, 78091, 604 +172 = -193.70109558105, 18.230537414551, 332.43304443359, 78091, 604 +173 = -197.12031555176, 19.504060745239, 333.73291015625, 78091, 604 +174 = -192.51028442383, 17.745292663574, 340.08627319336, 78869, 604 +175 = -198.13702392578, 19.832248687744, 337.36853027344, 78091, 604 +176 = -199.25888061523, 20.830369949341, 342.04638671875, 78091, 604 +177 = -200.7248840332, 21.578617095947, 339.48544311523, 78091, 604 +178 = -199.2359161377, 21.484268188477, 332.59722900391, 78091, 604 +179 = -195.82144165039, 21.400436401367, 328.03625488281, 78091, 604 +180 = -184.42324829102, 15.28324508667, 325.34326171875, 78091, 604 +181 = -187.04377746582, 18.24242401123, 322.89181518555, 78091, 604 +182 = -170.63467407227, 1.1801481246948, 327.08947753906, 82187, 367 +183 = -168.31820678711, -0.31938162446022, 328.58804321289, 82187, 367 +184 = -165.20349121094, -1.7481482028961, 330.31539916992, 85424, 367 +185 = -194.50445556641, 17.966468811035, 343.68389892578, 78091, 604 +186 = -159.60125732422, -3.65483045578, 333.95959472656, 91663, 604 +187 = -160.57043457031, -3.3515102863312, 330.06140136719, 90848, 367 +188 = -163.12342834473, -2.4714915752411, 327.83465576172, 87723, 367 +189 = -164.69564819336, -1.9820716381073, 326.29937744141, 86187, 367 +190 = -167.52430725098, -0.74435365200043, 325.77310180664, 83023, 367 +191 = -168.77655029297, 0.0099374055862427, 323.63641357422, 83023, 367 +192 = -171.03137207031, 1.7101130485535, 323.92556762695, 83023, 367 +193 = -165.36805725098, -1.7263634204865, 323.05676269531, 85414, 367 +194 = -162.60548400879, -2.299001455307, 321.49118041992, 88501, 367 +195 = -159.64808654785, -2.7267322540283, 319.15078735352, 91652, 367 +196 = -197.11210632324, 19.100938796997, 343.16302490234, 78091, 604 +197 = -155.85636901855, -3.4756581783295, 319.21090698242, 95900, 566 +198 = -157.41217041016, -3.4011023044586, 320.99649047852, 94191, 367 +199 = -159.90022277832, -3.0933372974396, 323.32354736328, 90843, 367 +200 = -160.16250610352, -3.2934684753418, 326.61404418945, 90071, 367 +201 = -157.49223327637, -3.7604305744171, 328.59237670898, 94192, 367 +202 = -157.48818969727, -3.6097054481506, 333.80487060547, 94197, 604 +203 = -154.72009277344, -3.6674735546112, 331.49099731445, 95055, 367 +204 = -155.1770324707, -3.7289497852325, 326.44995117188, 96761, 367 +205 = -156.19561767578, -3.7833833694458, 330.77691650391, 95055, 367 +206 = -159.08930969238, -3.6483657360077, 331.11340332031, 92495, 367 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_darkscape.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_darkscape.ltx new file mode 100644 index 000000000..91ca063dc --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_darkscape.ltx @@ -0,0 +1,38 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; DARKSCAPE + +[ds_space_restrictor_to_darkvalley] +2 = -427.59759521484, 0.83938592672348, 620.75274658203, 39643, 1083 +3 = -429.33654785156, 0.76814037561417, 624.27447509766, 38851, 1083 +4 = -434.25802612305, 0.65884798765182, 625.04412841797, 37432, 1083 +5 = -432.20999145508, 0.66713792085648, 630.08288574219, 38116, 1083 +6 = -427.49035644531, 0.7754961848259, 631.20166015625, 39652, 1083 +7 = -424.41693115234, 0.8518163561821, 633.72283935547, 41038, 1083 +8 = -421.50408935547, 0.97444850206375, 636.68420410156, 42071, 1083 +9 = -420.60775756836, 1.004997253418, 640.50354003906, 42339, 1083 +10 = -428.60729980469, 0.73554557561874, 639.18157958984, 39128, 1083 +11 = -429.87628173828, 0.70967370271683, 633.00354003906, 38863, 1083 +12 = -431.65240478516, 0.68905788660049, 628.10046386719, 38113, 1083 +13 = -434.69006347656, 0.67739641666412, 622.27923583984, 37208, 1083 +14 = -432.064453125, 0.74007421731949, 621.52465820312, 38104, 1083 +15 = -429.63592529297, 0.80149871110916, 619.87731933594, 38845, 1083 +16 = -426.30331420898, 0.87893432378769, 619.18859863281, 40194, 1083 +17 = -423.32452392578, 0.90529531240463, 623.76806640625, 41289, 1083 +18 = -424.25973510742, 0.87099426984787, 627.82562255859, 41030, 1083 +19 = -427.07958984375, 0.82328861951828, 623.20251464844, 39920, 1083 +20 = -432.30032348633, 0.70863062143326, 623.91058349609, 37877, 1083 +21 = -429.2790222168, 0.83427137136459, 617.91839599609, 39104, 1083 +22 = -423.54306030273, 0.88547474145889, 630.82202148438, 41034, 1083 +23 = -433.07867431641, 0.7531310915947, 618.20007324219, 37643, 1366 +24 = -433.70803833008, 0.71547693014145, 620.60443115234, 37427, 1083 +25 = -436.71240234375, 0.65286546945572, 620.47723388672, 36774, 1083 +26 = -437.45123291016, 0.66524654626846, 618.45953369141, 36360, 1366 +27 = -432.24340820312, 0.78144437074661, 616.26013183594, 38096, 1366 +28 = -426.50616455078, 0.9344328045845, 615.14916992188, 40188, 1366 +29 = -433.35858154297, 0.81363838911057, 613.57922363281, 37417, 1366 +30 = -437.712890625, 0.75528138875961, 612.99987792969, 36352, 1366 +31 = -440.27368164062, 0.64129680395126, 617.20275878906, 35532, 1366 +32 = -429.36849975586, 0.89815336465836, 613.57873535156, 39098, 1366 +33 = -416.26953125, 1.1641969680786, 613.28576660156, 43811, 1083 + +;[ds_space_restrictor_to_escape] diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_dead_city.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_dead_city.ltx new file mode 100644 index 000000000..eadb7eeb9 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_dead_city.ltx @@ -0,0 +1,6 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; DEAD CITY + +;[cit_space_restrictor_to_limansk] +;[cit_space_restrictor_to_military] +;[cit_space_restrictor_to_yantar] diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_garbage.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_garbage.ltx new file mode 100644 index 000000000..f144f42f2 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_garbage.ltx @@ -0,0 +1,212 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; GARBAGE + +[gar_space_restrictor_to_agroprom_1] +31 = -257.6950378418, -3.7190661430359, -162.13697814941, 4540, 775 +32 = -260.59973144531, -4.3206253051758, -159.89739990234, 4540, 775 +33 = -264.52160644531, -3.8522922992706, -162.50788879395, 2424, 775 +34 = -268.59997558594, -3.7723913192749, -165.97064208984, 2250, 775 +35 = -270.59866333008, -5.5650696754456, -169.3014831543, 1905, 776 +36 = -271.44580078125, -5.6269454956055, -171.45581054688, 1905, 776 +37 = -269.17568969727, -4.0901384353638, -171.81575012207, 1905, 776 +38 = -268.5986328125, -4.0097832679749, -169.13366699219, 1905, 776 +39 = -269.41998291016, -3.9814221858978, -175.6983795166, 1905, 776 +40 = -270.75131225586, -5.0348992347717, -175.60536193848, 1905, 776 +41 = -273.31475830078, -6.3457384109497, -174.39828491211, 1560, 776 +42 = -273.90905761719, -6.6649770736694, -171.92102050781, 1484, 776 +43 = -272.28829956055, -5.8928346633911, -170.38493347168, 1776, 776 +44 = -270.67031860352, -5.8511152267456, -166.78396606445, 1966, 776 +45 = -271.11968994141, -5.1274390220642, -178.30503845215, 1966, 776 +46 = -272.71691894531, -6.2473478317261, -177.09617614746, 1556, 776 +47 = -272.20178222656, -5.8084306716919, -175.71264648438, 1558, 776 +48 = -271.42907714844, -5.5638909339905, -173.92262268066, 1560, 776 +49 = -282.60440063477, -4.1989283561707, -173.7619934082, 1109, 776 +50 = -284.31552124023, -3.2930727005005, -176.12261962891, 1109, 776 +51 = -285.81219482422, -1.938894033432, -174.21437072754, 1109, 776 +52 = -282.97412109375, -5.3854312896729, -171.40371704102, 1110, 776 +53 = -281.33908081055, -6.8162851333618, -168.00553894043, 1110, 776 +54 = -282.98199462891, -5.7691526412964, -168.44845581055, 1058, 776 +55 = -284.20794677734, -4.7957181930542, -166.83209228516, 1058, 776 +56 = -284.18707275391, -3.6341993808746, -164.71572875977, 1061, 776 +57 = -279.6637878418, -5.2066268920898, -163.76737976074, 1115, 776 +58 = -280.06802368164, -5.5632619857788, -161.13624572754, 1116, 776 +59 = -283.50045776367, -3.0500500202179, -161.15814208984, 1116, 776 +60 = -286.59057617188, -1.8895101547241, -165.05905151367, 1116, 776 +61 = -285.58285522461, -1.3269085884094, -162.43035888672, 1116, 776 +62 = -285.00140380859, -0.64605700969696, -159.27581787109, 1116, 776 +63 = -285.49444580078, -2.3892188072205, -163.98516845703, 1116, 776 +64 = -283.52670288086, -3.7684247493744, -163.32131958008, 1116, 776 +65 = -282.25381469727, -4.4750852584839, -161.34518432617, 1116, 776 +66 = -282.34759521484, -3.211544752121, -158.02886962891, 1116, 776 +67 = -283.73876953125, -1.1202659606934, -156.93569946289, 1116, 776 +68 = -286.12261962891, 0.92380756139755, -158.31248474121, 1116, 776 +69 = -281.63232421875, -2.9914920330048, -155.58210754395, 1116, 776 +70 = -280.5524597168, -4.6758718490601, -158.60284423828, 1116, 776 +71 = -283.76110839844, -2.1321995258331, -159.4963684082, 1116, 776 +72 = -285.86480712891, -0.31837692856789, -160.62249755859, 1116, 776 +73 = -269.7307434082, -4.9198031425476, -167.03007507324, 1966, 776 +74 = -269.56219482422, -4.7750582695007, -169.36944580078, 1966, 776 +75 = -270.49884033203, -4.97878074646, -172.95703125, 1905, 776 +76 = -269.33432006836, -4.5778656005859, -163.416015625, 2196, 775 + +[gar_space_restrictor_to_agroprom_2] +1 = -288.22619628906, 6.4090166091919, -33.065502166748, 633, 779 +2 = -285.57952880859, 5.9416484832764, -32.728240966797, 788, 779 +3 = -283.04467773438, 4.694260597229, -30.793241500854, 895, 779 +4 = -280.79092407227, 4.898353099823, -33.362476348877, 1117, 779 +5 = -282.70254516602, 5.5792460441589, -34.103832244873, 787, 779 +6 = -283.12750244141, 5.9728655815125, -35.722309112549, 787, 779 +7 = -285.24963378906, 6.273814201355, -36.519023895264, 787, 779 +8 = -285.43023681641, 6.7395701408386, -39.303245544434, 787, 779 +9 = -287.51217651367, 6.881411075592, -39.396781921387, 668, 779 +10 = -289.56365966797, 6.9197783470154, -39.019241333008, 562, 779 +11 = -290.25894165039, 7.4453988075256, -41.267967224121, 533, 779 +12 = -288.85549926758, 7.4945545196533, -41.840728759766, 597, 779 +13 = -284.07525634766, 6.9827904701233, -40.823879241943, 787, 779 +14 = -284.31484985352, 7.706693649292, -43.656223297119, 787, 779 +15 = -282.81097412109, 7.7744207382202, -44.266597747803, 787, 779 +16 = -279.22085571289, 6.9323444366455, -41.757350921631, 787, 779 +17 = -280.94061279297, 6.5962953567505, -40.281860351562, 787, 779 +18 = -280.19830322266, 5.9948921203613, -38.112148284912, 787, 779 +19 = -280.48452758789, 5.3315348625183, -35.351554870605, 1255, 779 +20 = -278.15948486328, 4.9052739143372, -34.509826660156, 1255, 779 +21 = -276.62969970703, 5.0475549697876, -35.672664642334, 1342, 779 +22 = -274.68695068359, 4.97847032547, -34.827205657959, 1421, 779 +23 = -272.79040527344, 5.642279624939, -35.629093170166, 1499, 779 +24 = -271.60330200195, 6.4264783859253, -37.004917144775, 1499, 779 +25 = -274.68029785156, 5.6682462692261, -37.125282287598, 1499, 779 +26 = -269.67306518555, 5.9925417900085, -34.141250610352, 1499, 779 +27 = -271.68557739258, 4.8484663963318, -32.257499694824, 1499, 779 +28 = -274.47219848633, 3.8756291866302, -30.858371734619, 1576, 779 +29 = -277.10006713867, 3.2429559230804, -29.263595581055, 1426, 779 +30 = -279.7053527832, 3.264634847641, -28.430393218994, 1123, 779 +31 = -281.44937133789, 3.9954001903534, -29.886856079102, 1012, 779 +32 = -282.1286315918, 3.1059472560883, -24.370981216431, 977, 779 +33 = -293.6735534668, 7.3257641792297, -23.73046875, 465, 779 +34 = -289.58666992188, 6.3133134841919, -14.470384597778, 589, 779 +35 = -283.00207519531, 3.1139290332794, -15.258955001831, 945, 779 +36 = -280.47640991211, 2.2334978580475, -11.723264694214, 1086, 779 +37 = -281.9416809082, 4.7929430007935, -0.22498592734337, 1003, 779 +38 = -285.57055664062, 6.4141139984131, 0.34135115146637, 927, 779 +39 = -286.21307373047, 7.3302955627441, 3.5569224357605, 927, 779 +40 = -288.99078369141, 8.8090400695801, 3.9576649665833, 927, 779 +41 = -291.6575012207, 8.5592670440674, -0.10623839497566, 927, 779 +42 = -288.67602539062, 10.875363349915, 10.920221328735, 558, 779 +43 = -285.47863769531, 8.7425365447998, 9.7216110229492, 743, 779 +44 = -283.82290649414, 7.1962747573853, 7.6972045898438, 855, 779 +45 = -281.28286743164, 6.4089498519897, 7.9784078598022, 963, 779 +46 = -279.84729003906, 5.5528182983398, 6.2608609199524, 1100, 779 +47 = -279.85147094727, 4.8960313796997, 3.3812246322632, 1162, 779 +48 = -281.0505065918, 4.6605200767517, 0.86172366142273, 1162, 779 +49 = -275.24816894531, 3.9079420566559, 3.3272259235382, 1688, 779 +50 = -278.22265625, 6.0459785461426, 9.0758075714111, 1688, 779 +51 = -280.78558349609, 6.613817691803, 9.2840929031372, 1688, 779 +52 = -282.61245727539, 8.05553150177, 10.893696784973, 1688, 779 +53 = -284.92172241211, 8.5708894729614, 9.7872753143311, 1688, 779 +54 = -286.59503173828, 9.4026947021484, 9.9769639968872, 1688, 779 +55 = -287.15960693359, 10.719721794128, 12.321002006531, 1688, 779 +56 = -289.38571166992, 11.388663291931, 11.397809028625, 1688, 779 +57 = -290.30685424805, 10.739634513855, 8.6268577575684, 1688, 779 +58 = -291.78900146484, 9.6633968353271, 3.5702586174011, 1688, 779 +59 = -293.6340637207, 10.757901191711, 7.2913513183594, 1688, 779 +60 = -292.67614746094, 11.365371704102, 9.3925743103027, 1688, 779 +61 = -294.48687744141, 12.303532600403, 11.75599861145, 1688, 779 +62 = -293.51263427734, 13.360638618469, 14.774147987366, 1688, 779 +63 = -290.31491088867, 13.566452026367, 17.281217575073, 1688, 779 +64 = -287.93731689453, 16.943731307983, 24.09419631958, 1688, 779 +65 = -288.51278686523, 14.985443115234, 20.822639465332, 1688, 779 +66 = -281.94927978516, 16.136793136597, 22.694011688232, 1688, 779 +67 = -281.46801757812, 14.060272216797, 20.225551605225, 1688, 779 +68 = -282.17544555664, 12.845458030701, 18.713043212891, 1688, 779 +69 = -282.09658813477, 11.628540992737, 17.041597366333, 1688, 779 +70 = -283.82974243164, 11.070863723755, 15.860512733459, 1688, 779 +71 = -283.00561523438, 9.6426763534546, 14.112879753113, 1688, 779 +72 = -284.13119506836, 9.5210456848145, 12.841003417969, 1688, 779 +73 = -282.34973144531, 8.128565788269, 11.484257698059, 1688, 779 +74 = -280.4182434082, 6.7978992462158, 10.071133613586, 1688, 779 +75 = -280.83389282227, 6.4527983665466, 8.7191982269287, 1688, 779 +76 = -279.53018188477, 5.5880546569824, 6.6821565628052, 1688, 779 +77 = -283.06213378906, 6.2816185951233, 5.0038695335388, 1688, 779 +78 = -284.38250732422, 7.1345520019531, 6.6705060005188, 1688, 779 +79 = -286.3757019043, 7.9062147140503, 6.1836819648743, 1688, 779 +80 = -287.9651184082, 8.3364381790161, 4.0738444328308, 1688, 779 +81 = -289.93975830078, 9.5434827804565, 5.0717077255249, 1688, 779 +82 = -288.79946899414, 10.186618804932, 9.1242399215698, 1688, 779 +83 = -290.42327880859, 11.676733970642, 10.900566101074, 1688, 779 +84 = -290.97766113281, 12.709132194519, 13.036685943604, 1688, 779 +85 = -288.59313964844, 11.986578941345, 14.509426116943, 1688, 779 +86 = -285.52264404297, 11.156598091125, 14.646043777466, 1688, 779 +87 = -282.80883789062, 11.074867248535, 16.158758163452, 1688, 779 +88 = -284.31866455078, 13.110960006714, 18.395921707153, 1688, 779 +89 = -287.90438842773, 13.399031639099, 17.880216598511, 1688, 779 +90 = -289.94592285156, 13.968593597412, 18.269659042358, 1688, 779 +91 = -293.29937744141, 13.452991485596, 15.057679176331, 1688, 779 +92 = -293.13174438477, 10.824554443359, 7.6769118309021, 1688, 779 + +;[gar_space_restrictor_to_bar_1] + +[gar_space_restrictor_to_darkvalley_1] +1 = 288.47595214844, 13.277616500854, -90.011817932129, 354976, 770 +2 = 288.43615722656, 12.63366985321, -88.027252197266, 354976, 770 +3 = 285.19375610352, 9.6167755126953, -86.572319030762, 355076, 770 +4 = 285.48513793945, 9.7677907943726, -84.158149719238, 355356, 770 +5 = 286.33642578125, 10.517583847046, -85.573669433594, 355356, 770 +6 = 283.02047729492, 7.8846883773804, -87.399940490723, 354976, 770 +7 = 282.90084838867, 7.8148727416992, -89.164489746094, 354863, 770 +8 = 281.74331665039, 6.8861150741577, -89.836372375488, 354646, 861 +9 = 280.56225585938, 5.9091439247131, -88.922966003418, 354646, 861 +10 = 279.79956054688, 5.2622032165527, -87.28987121582, 354646, 861 +11 = 273.21734619141, 4.7554688453674, -83.311820983887, 353905, 861 +12 = 284.62197875977, 10.26943397522, -79.133026123047, 355447, 770 +13 = 286.78732299805, 11.412038803101, -79.648002624512, 355594, 770 +14 = 287.67868041992, 13.162495613098, -77.72770690918, 355710, 770 +15 = 289.47552490234, 13.976871490479, -77.723205566406, 355773, 770 +16 = 292.76690673828, 14.918776512146, -79.186050415039, 356063, 770 +17 = 290.02728271484, 16.195192337036, -75.316833496094, 356004, 770 +18 = 288.50305175781, 15.996510505676, -74.728942871094, 355950, 770 +19 = 292.22338867188, 16.079858779907, -76.5986328125, 356063, 770 +20 = 295.11099243164, 15.968438148499, -79.185981750488, 356228, 770 +21 = 288.83773803711, 14.885935783386, -75.993255615234, 355895, 770 +22 = 285.40872192383, 9.6553049087524, -81.717636108398, 355444, 770 +23 = 271.68255615234, 2.6109001636505, -85.782722473145, 353073, 861 +24 = 269.57876586914, 2.9245812892914, -85.879821777344, 353073, 861 +25 = 270.89712524414, 5.0048131942749, -83.309921264648, 353448, 861 +26 = 272.0920715332, 4.1520824432373, -84.085144042969, 353448, 861 +27 = 285.45132446289, 10.015363693237, -88.489608764648, 354542, 861 +28 = 286.42370605469, 11.490836143494, -89.663261413574, 354542, 861 +29 = 284.36553955078, 8.9803657531738, -89.613777160645, 354542, 861 +30 = 283.24639892578, 8.292200088501, -90.982040405273, 354542, 861 + +[gar_space_restrictor_to_darkvalley_2] +4 = 275.94421386719, 3.5520522594452, 124.34310913086, 354090, 769 +5 = 276.29620361328, 5.1010551452637, 120.46231842041, 353927, 769 +6 = 280.65197753906, 6.6601829528809, 118.27928161621, 354682, 769 +7 = 282.78103637695, 5.5413932800293, 120.07412719727, 354898, 769 +8 = 283.57409667969, 3.3096287250519, 123.65545654297, 355203, 769 +9 = 285.43280029297, 3.1147863864899, 123.77454376221, 355293, 769 +10 = 279.22634887695, 3.6983320713043, 124.03048706055, 354579, 769 +11 = 287.84353637695, 4.4010229110718, 120.83438110352, 355293, 769 +12 = 290.91592407227, 3.2472131252289, 124.86434936523, 355774, 769 +13 = 288.38903808594, 2.2803666591644, 128.14407348633, 355716, 769 +14 = 285.17614746094, 2.0229423046112, 128.83497619629, 355381, 769 +15 = 279.23059082031, 6.6847548484802, 118.21688079834, 354682, 769 +16 = 284.81497192383, 7.4623584747314, 117.16799926758, 354898, 769 +17 = 276.07315063477, 7.2821650505066, 115.99922180176, 354086, 769 +18 = 274.28012084961, 5.7121796607971, 117.42055511475, 353778, 769 +19 = 271.49514770508, 4.6983323097229, 116.27054595947, 352689, 769 +20 = 272.08535766602, 3.7495100498199, 121.47880554199, 353100, 769 +21 = 296.12225341797, 2.7820456027985, 160.34718322754, 356390, 769 +22 = 297.83477783203, 2.7658412456512, 165.34509277344, 356486, 769 +23 = 302.76901245117, 5.3854537010193, 166.29722595215, 356670, 769 +24 = 304.71273803711, 5.5836114883423, 162.14695739746, 356702, 769 +25 = 307.98132324219, 7.5299067497253, 162.90083312988, 356702, 769 +26 = 307.73348999023, 5.9803342819214, 157.50955200195, 356702, 769 +27 = 306.65823364258, 5.2825345993042, 152.74351501465, 356702, 769 +28 = 299.61526489258, 4.4612741470337, 172.03216552734, 356605, 769 +29 = 296.52041625977, 2.177773475647, 168.37254333496, 356452, 769 +30 = 293.86508178711, 1.6449847221375, 163.44131469727, 356220, 769 + +;[gar_space_restrictor_to_escape_1] +;[gar_space_restrictor_to_escape_2] + +;[gar_space_restrictor_to_rostok_1] diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_jupiter.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_jupiter.ltx new file mode 100644 index 000000000..b4488eba1 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_jupiter.ltx @@ -0,0 +1,26 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; JUPITER + +;[jupiter_space_restrictor_to_red_forest] +;[jupiter_space_restrictor_to_soc_pripyat] + +[jup_space_restrictor_to_zaton] +1 = 489.84796142578, -3.5576872825623, 475.24084472656, 1484376, 4514 +2 = 491.53958129883, -2.5676898956299, 476.4284362793, 1484378, 4514 +3 = 494.15017700195, -1.0430116653442, 476.14730834961, 1484378, 4514 +4 = 494.97982788086, -0.55835449695587, 479.05194091797, 1484382, 4514 +5 = 492.77450561523, -1.8503563404083, 480.17932128906, 1484383, 4514 +6 = 489.46301269531, -3.7840197086334, 480.79840087891, 1483484, 4514 +7 = 490.44616699219, -3.2078220844269, 483.06597900391, 1484387, 4514 +8 = 492.6803894043, -1.9020791053772, 484.25588989258, 1484389, 4514 +9 = 495.31387329102, -0.35850203037262, 482.5299987793, 1484387, 4514 +10 = 494.93963623047, -0.57710492610931, 486.56393432617, 1484393, 4514 +11 = 491.62573242188, -2.5202298164368, 488.52731323242, 1484395, 4514 +12 = 491.08670043945, -2.8318347930908, 491.09460449219, 1484399, 4514 +13 = 494.86471557617, -0.62301087379456, 491.8046875, 1484400, 4514 +14 = 492.7966003418, -1.8310754299164, 496.10461425781, 1484406, 4514 +15 = 494.79760742188, -0.66511011123657, 497.61932373047, 1484408, 4514 +16 = 494.31958007812, -0.93994349241257, 493.5032043457, 1484402, 4514 +17 = 493.18243408203, -1.6116418838501, 487.59106445312, 1484394, 4514 +18 = 493.69686889648, -1.3094255924225, 482.28176879883, 1484386, 4514 +19 = 492.17797851562, -2.1932346820831, 473.59088134766, 1484374, 4514 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_limansk.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_limansk.ltx new file mode 100644 index 000000000..3f3f2d113 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_limansk.ltx @@ -0,0 +1,29 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; LIMANSK + +;[lim_space_restrictor_to_dead_city] + +[lim_space_restrictor_to_red_forest] +1 = 5.6008362770081, -1.2617666721344, -346.2197265625, 27778, 2445 +2 = 7.8934173583984, -0.95882701873779, -347.94400024414, 29127, 2445 +3 = 8.3248882293701, -0.51017183065414, -349.91381835938, 29559, 2445 +4 = 5.172966003418, -0.80684751272202, -350.45672607422, 27318, 2445 +5 = 3.727972984314, -1.155312538147, -348.38946533203, 26494, 2445 +6 = 1.3667085170746, -1.2112774848938, -346.31631469727, 25233, 2445 +7 = -0.13994081318378, -1.0515072345734, -348.12591552734, 24433, 2445 +8 = -2.1508090496063, -0.24223990738392, -351.08221435547, 22955, 2445 +9 = 0.13923038542271, -0.23104156553745, -352.6555480957, 25224, 2467 +10 = 3.023430109024, -0.66883915662766, -351.34225463867, 26081, 2445 +11 = 4.3488221168518, -0.37662863731384, -352.79437255859, 26875, 2467 +12 = 6.3408555984497, -0.25080263614655, -353.43765258789, 28237, 2467 +13 = 6.3940362930298, -1.0159969329834, -349.00018310547, 28243, 2445 +14 = 1.9117782115936, -1.1612479686737, -348.46301269531, 25659, 2445 +15 = 0.97647929191589, -0.79057037830353, -350.30047607422, 24796, 2445 +16 = 4.0864224433899, -0.20606029033661, -353.73370361328, 26874, 2467 +17 = 4.8362164497375, -0.0075849592685699, -355.83456420898, 27311, 2467 +18 = 2.2595119476318, -0.0073282122612, -357.63226318359, 25646, 2467 +19 = 6.4188323020935, -0.0086917579174042, -360.40908813477, 28233, 2467 +20 = 4.4945750236511, -0.010834336280823, -358.03091430664, 26868, 2467 +21 = 1.5121190547943, -0.007807195186615, -355.7353515625, 25220, 2467 + +;[lim_space_restrictor_to_hospital] diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_pripyat.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_pripyat.ltx new file mode 100644 index 000000000..bac7086ba --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_pripyat.ltx @@ -0,0 +1,23 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; PRIPYAT + +;[pri_space_restrictor_to_cop_pripyat] +;[pri_space_restrictor_to_jupiter] +;[pri_space_restrictor_to_stancia] + +[pri_space_restrictor_to_radar] +2 = 27.735363006592, -2.3946285247803, -275.5305480957, 136792, 3059 +3 = 22.908981323242, -2.394415140152, -278.52224731445, 130073, 3059 +4 = 26.569368362427, -2.3933322429657, -279.99621582031, 134948, 3059 +5 = 26.85177230835, -2.3679265975952, -285.20831298828, 134941, 3059 +6 = 19.715572357178, -2.393771648407, -287.11911010742, 125757, 3059 +7 = 17.71665763855, -2.3912227153778, -283.20037841797, 122913, 3059 +8 = 31.134016036987, -2.2665064334869, -287.98602294922, 140451, 3061 +9 = 13.483926773071, -1.722090959549, -283.35296630859, 117698, 3059 +10 = 9.3418865203857, -1.4478409290314, -273.52383422852, 112709, 3059 +11 = 8.0723934173584, -1.6926696300507, -285.32208251953, 111891, 3059 +12 = -8.2943687438965, -2.2277145385742, -281.30633544922, 91241, 3077 +13 = -4.5102219581604, -2.2234971523285, -287.22543334961, 96698, 3077 +14 = 4.1600069999695, -2.0096843242645, -275.71868896484, 106964, 3059 +15 = -1.2017902135849, -2.3967592716217, -274.41299438477, 100249, 3059 +16 = 22.344694137573, -2.3941898345947, -274.79336547852, 129215, 3059 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_rostok.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_rostok.ltx new file mode 100644 index 000000000..57c09b3f7 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_rostok.ltx @@ -0,0 +1,185 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; ROSTOK (l05_bar) + +[bar_space_restrictor_to_garbage_01] +2 = 398.42559814453, 18.712446212769, -289.62203979492, 94284, 1673 +3 = 399.70941162109, 18.523599624634, -292.03057861328, 94901, 1673 +4 = 404.03649902344, 17.664722442627, -295.51446533203, 96711, 1673 +5 = 404.97570800781, 17.309112548828, -298.09997558594, 97298, 1673 +6 = 407.37908935547, 16.964475631714, -298.998046875, 98164, 1673 +7 = 407.4694519043, 16.713312149048, -301.80688476562, 98160, 1673 +8 = 409.20190429688, 16.518196105957, -303.95422363281, 98959, 1673 +9 = 411.37380981445, 16.3564453125, -303.2981262207, 99621, 1673 +10 = 410.21035766602, 16.61194229126, -300.51135253906, 99195, 1673 +11 = 413.71380615234, 16.430734634399, -296.84075927734, 100182, 1673 +12 = 410.23352050781, 17.051279067993, -293.78894042969, 99204, 1673 +13 = 413.37051391602, 16.748140335083, -288.5559387207, 100194, 1673 +14 = 414.32772827148, 16.778646469116, -284.29284667969, 100357, 1792 +15 = 411.09866333008, 17.085166931152, -285.82244873047, 99434, 1792 +16 = 407.77084350586, 17.491104125977, -289.1887512207, 98460, 1673 +17 = 403.45120239258, 18.078954696655, -287.45721435547, 96419, 1673 +18 = 406.05599975586, 17.764127731323, -283.3049621582, 97604, 1792 +19 = 408.66870117188, 17.428047180176, -282.474609375, 98737, 1792 +20 = 412.10726928711, 17.052276611328, -282.11630249023, 99848, 1792 +21 = 413.53619384766, 16.840635299683, -278.58843994141, 100208, 1792 +22 = 414.49468994141, 16.713390350342, -276.32122802734, 100368, 1792 +23 = 409.04177856445, 17.247318267822, -274.81787109375, 98748, 1792 +24 = 405.43423461914, 17.80121421814, -277.58773803711, 97327, 1792 +25 = 401.95837402344, 18.298393249512, -277.34051513672, 95829, 1792 +26 = 398.49551391602, 18.766569137573, -282.54333496094, 94294, 1792 +27 = 392.47680664062, 19.290367126465, -284.97607421875, 91889, 1792 +28 = 382.67755126953, 19.246496200562, -291.45086669922, 87778, 1673 +29 = 380.38897705078, 19.148294448853, -293.0986328125, 86770, 1673 +30 = 378.84078979492, 18.819812774658, -295.38824462891, 86767, 1673 +31 = 376.87902832031, 18.666212081909, -296.66079711914, 86767, 1673 +32 = 375.0166015625, 19.039325714111, -294.65744018555, 86768, 1673 +33 = 373.53399658203, 19.413963317871, -292.54797363281, 85988, 1673 +34 = 372.67144775391, 19.334060668945, -295.40914916992, 85988, 1673 +35 = 371.33807373047, 19.761001586914, -287.34069824219, 85469, 1792 +36 = 374.92926025391, 19.582929611206, -286.87170410156, 85211, 1792 +37 = 377.08001708984, 19.37420463562, -291.12493896484, 85988, 1673 +38 = 380.48767089844, 19.369066238403, -289.65643310547, 87029, 1673 +39 = 383.42535400391, 19.226703643799, -288.8193359375, 88044, 1673 +40 = 383.66928100586, 19.234746932983, -286.09631347656, 88048, 1792 +41 = 382.91229248047, 19.297523498535, -282.25445556641, 87791, 1792 +42 = 378.86929321289, 19.491104125977, -283.08563232422, 86260, 1792 +43 = 375.92916870117, 19.697513580322, -280.59719848633, 85219, 1792 +44 = 372.6081237793, 19.818748474121, -283.39645385742, 84699, 1792 +45 = 370.93911743164, 20.104372024536, -280.21624755859, 83935, 1792 +46 = 372.71240234375, 20.08084487915, -276.14440917969, 83939, 1792 +47 = 396.34881591797, 19.010665893555, -286.41149902344, 93377, 1792 + +[bar_space_restrictor_to_military_01] +48 = 53.747989654541, -2.8646786212921, 313.21731567383, 25564, 1747 +49 = 56.067440032959, -2.8142721652985, 314.22882080078, 25846, 1747 +50 = 58.439033508301, -2.7109158039093, 312.62185668945, 26126, 1747 +51 = 61.163749694824, -2.6515352725983, 311.74621582031, 26945, 1747 +52 = 63.326007843018, -2.6119091510773, 311.10559082031, 26945, 1747 +53 = 66.132659912109, -2.5821325778961, 310.58251953125, 26945, 1747 +54 = 68.828048706055, -2.5990154743195, 311.27444458008, 26945, 1747 +55 = 71.171173095703, -2.4932849407196, 308.16577148438, 27207, 1747 +56 = 71.537399291992, -2.5669214725494, 310.55328369141, 27207, 1747 +57 = 71.37329864502, -2.658704996109, 313.26510620117, 27207, 1747 +58 = 70.383079528809, -2.6648910045624, 315.32608032227, 27207, 1747 +59 = 68.885055541992, -2.6062097549438, 317.04327392578, 27207, 1747 +60 = 66.936737060547, -2.5900435447693, 316.86322021484, 27207, 1747 +61 = 65.144119262695, -2.5898730754852, 318.17269897461, 27207, 1747 +62 = 63.075378417969, -2.6261043548584, 318.19854736328, 27207, 1747 +63 = 60.842864990234, -2.6726477146149, 319.08776855469, 27207, 1747 +64 = 59.05199432373, -2.7170145511627, 318.2724609375, 27207, 1747 +65 = 57.339691162109, -2.7357385158539, 320.24862670898, 26945, 1747 +66 = 59.850814819336, -2.736732006073, 315.81564331055, 26945, 1747 +67 = 62.281044006348, -2.7175056934357, 314.56735229492, 26945, 1747 +68 = 60.490856170654, -2.6176192760468, 309.8733215332, 27207, 1747 +69 = 57.310920715332, -2.6761758327484, 310.08532714844, 26678, 1747 +70 = 54.342655181885, -2.7894785404205, 310.77215576172, 25844, 1747 +71 = 52.076671600342, -2.8463666439056, 309.96807861328, 24725, 1747 +72 = 52.162677764893, -2.7633285522461, 307.00311279297, 24999, 1747 +73 = 54.13395690918, -2.6462395191193, 305.30596923828, 25553, 1747 +74 = 58.499061584473, -2.5153872966766, 304.185546875, 27460, 1747 +75 = 60.661304473877, -2.4827132225037, 304.17135620117, 28204, 1747 +76 = 63.037803649902, -2.484904050827, 305.44381713867, 28204, 1747 +77 = 65.236587524414, -2.4773147106171, 306.42031860352, 28204, 1747 +78 = 68.660552978516, -2.4646248817444, 306.99542236328, 28204, 1747 +79 = 70.992614746094, -2.4256584644318, 305.7956237793, 28204, 1747 +80 = 70.83805847168, -2.3670370578766, 303.1943359375, 28203, 1747 +81 = 70.833282470703, -2.3218858242035, 300.89096069336, 28200, 1747 +82 = 69.257553100586, -2.2947404384613, 299.63665771484, 28198, 1747 +83 = 66.99089050293, -2.3414471149445, 301.81939697266, 28201, 1747 +84 = 64.884437561035, -2.3947687149048, 302.99569702148, 28203, 1747 +85 = 42.105575561523, -2.4220378398895, 291.0319519043, 21965, 1747 +86 = 40.821830749512, -2.3688244819641, 288.02624511719, 21679, 1747 +87 = 38.293727874756, -2.4051442146301, 288.38000488281, 21319, 1747 +88 = 35.201446533203, -2.4112558364868, 288.16122436523, 20869, 1747 +89 = 32.861812591553, -2.3219363689423, 287.42944335938, 20869, 1747 +90 = 29.965297698975, -2.2063200473785, 287.47232055664, 20869, 1747 +91 = 28.306583404541, -2.1279273033142, 286.13635253906, 20869, 1747 +92 = 25.695785522461, -2.031129360199, 285.55288696289, 20869, 1747 +93 = 24.566692352295, -1.9559602737427, 284.26129150391, 20869, 1747 +94 = 22.195545196533, -1.8915138244629, 285.41928100586, 20869, 1747 +95 = 20.064474105835, -1.7899518013, 284.25390625, 20869, 1747 +96 = 19.891710281372, -1.7437613010406, 283.11657714844, 20869, 1747 +97 = 18.092906951904, -1.6502184867859, 282.39831542969, 20869, 1747 +98 = 15.540853500366, -1.6161961555481, 284.21600341797, 20869, 1747 +99 = 12.920803070068, -1.5410053730011, 282.78594970703, 20869, 1747 +100 = 11.745616912842, -1.5164902210236, 281.0055847168, 20869, 1747 +101 = 9.6216516494751, -1.4760076999664, 281.61151123047, 20869, 1747 +102 = 8.5856418609619, -1.4246706962585, 283.96768188477, 20869, 1747 +103 = 5.5150203704834, -1.3201856613159, 283.83612060547, 20869, 1747 +104 = 5.0851283073425, -1.3129162788391, 282.470703125, 20869, 1747 +105 = 3.5757248401642, -1.2670698165894, 280.79745483398, 20869, 1747 +106 = 3.6359777450562, -1.2850848436356, 278.43542480469, 20869, 1747 +107 = 6.1300239562988, -1.3968551158905, 276.63525390625, 20869, 1747 +108 = 8.5495338439941, -1.4640047550201, 277.52709960938, 20869, 1747 +109 = 12.681200027466, -1.511111497879, 279.16610717773, 20869, 1747 +110 = 15.830169677734, -1.5668976306915, 280.44586181641, 20869, 1747 +111 = 18.351526260376, -1.6006572246552, 279.06170654297, 20869, 1747 +112 = 19.1136302948, -1.5137362480164, 274.75726318359, 20869, 1747 +113 = 15.231885910034, -1.4542443752289, 274.15200805664, 20869, 1747 +114 = 11.164548873901, -1.4707386493683, 276.33511352539, 20869, 1747 +115 = 8.347128868103, -1.4554598331451, 279.58343505859, 20869, 1747 +116 = 6.1599097251892, -1.3722062110901, 280.02529907227, 20869, 1747 +117 = 4.2877941131592, -1.2758162021637, 284.00476074219, 20869, 1747 +118 = 5.7069821357727, -1.2067248821259, 286.16641235352, 20869, 1747 +119 = 8.7427215576172, -1.3268134593964, 285.83892822266, 20869, 1747 +120 = 10.838638305664, -1.2815440893173, 288.17129516602, 20869, 1747 +121 = 13.649578094482, -1.3658447265625, 289.69995117188, 20870, 1747 +122 = 16.867286682129, -1.6728520393372, 288.8671875, 20869, 1747 +123 = 20.122133255005, -1.8037235736847, 289.22607421875, 20869, 1747 +124 = 22.127241134644, -1.8989126682281, 290.78674316406, 20758, 1747 +125 = 25.915561676025, -2.1025791168213, 290.2936706543, 20757, 1747 +126 = 28.0367603302, -2.2649953365326, 292.04318237305, 20643, 1747 +127 = 30.829917907715, -2.3972120285034, 291.46621704102, 20530, 1747 +128 = 33.696804046631, -2.5741708278656, 291.74838256836, 20643, 1747 +129 = 34.809902191162, -2.756475687027, 294.27099609375, 20762, 1747 +130 = 28.54626083374, -2.4072539806366, 296.15744018555, 20307, 1747 +131 = 26.09058380127, -2.2638647556305, 296.83535766602, 20308, 1747 +132 = 23.487035751343, -2.0938401222229, 296.66012573242, 20308, 1747 +133 = 20.489427566528, -1.8234944343567, 297.33355712891, 20309, 1747 +134 = 17.605997085571, -1.5756556987762, 296.66564941406, 20308, 1747 +135 = 15.065651893616, -1.3405401706696, 297.38690185547, 20309, 1747 +136 = 12.387344360352, -1.2716710567474, 301.28515625, 20309, 1747 +137 = 9.8881855010986, -0.91937947273254, 299.35675048828, 20309, 1747 +138 = 9.70920753479, -0.92311251163483, 294.68911743164, 20307, 1747 +139 = 7.247989654541, -0.89250934123993, 292.24310302734, 20307, 1747 +140 = 4.1890969276428, -0.73791772127151, 295.68011474609, 20307, 1747 +141 = 1.0545825958252, -0.70170342922211, 298.0758972168, 20309, 1747 +142 = 0.48621064424515, -0.91818815469742, 301.78457641602, 20309, 1747 +143 = 3.3272879123688, -1.2184317111969, 303.92056274414, 20309, 1747 +144 = 6.6100611686707, -1.6101086139679, 306.79205322266, 20309, 1747 +145 = 9.1191940307617, -1.9425971508026, 308.53323364258, 20309, 1747 +146 = 12.549734115601, -1.8262805938721, 306.16708374023, 20309, 1747 +147 = 15.814189910889, -1.993147611618, 305.09881591797, 20309, 1747 +148 = 18.789836883545, -2.523514509201, 307.49835205078, 20309, 1747 +149 = 18.448818206787, -2.9326415061951, 311.0322265625, 20309, 1747 +150 = 17.658151626587, -3.2179250717163, 313.86874389648, 20309, 1747 +151 = 22.446250915527, -3.548264503479, 313.71670532227, 19191, 1747 +152 = 24.069896697998, -2.9549429416656, 307.40634155273, 19448, 1747 +153 = 22.877758026123, -2.4113409519196, 303.40048217773, 19516, 1747 +154 = 20.504117965698, -1.9405815601349, 300.86782836914, 19516, 1747 +155 = 16.530910491943, -1.5529947280884, 300.41744995117, 19516, 1747 +156 = 13.353231430054, -1.1579294204712, 297.51193237305, 19516, 1747 +157 = 26.854200363159, -2.4132142066956, 300.30847167969, 19881, 1747 +158 = 15.389101028442, -3.7413070201874, 319.70397949219, 18571, 1747 +159 = 52.269100189209, -2.6661615371704, 303.52587890625, 24994, 1747 +160 = 57.266204833984, -2.5902128219604, 306.44396972656, 26942, 1747 +161 = 57.856002807617, -2.4524047374725, 301.1413269043, 27197, 1747 +162 = 65.826934814453, -2.2618503570557, 297.77835083008, 28196, 1747 +163 = 69.925270080566, -2.2333552837372, 296.54354858398, 28194, 1747 +164 = 34.120407104492, -2.2005527019501, 284.46264648438, 21096, 1747 +165 = 30.4352684021, -2.1389255523682, 284.44119262695, 21096, 1747 +166 = 30.721267700195, -2.0337865352631, 281.26382446289, 21096, 1747 +167 = 28.401754379272, -1.8913993835449, 279.24731445312, 21096, 1747 +168 = 24.741611480713, -1.8356578350067, 280.77471923828, 21096, 1747 +169 = 21.222291946411, -1.629896402359, 276.97088623047, 21096, 1747 +170 = 21.872995376587, -1.5051412582397, 273.55569458008, 21096, 1747 +171 = 23.527084350586, -1.4882447719574, 272.53741455078, 21096, 1747 +172 = 26.280456542969, -1.6128718852997, 275.16165161133, 21096, 1747 +173 = 29.051937103271, -1.7331619262695, 276.18392944336, 21096, 1747 +174 = 30.751560211182, -1.9250757694244, 278.33666992188, 21096, 1747 +175 = 33.534225463867, -2.0162026882172, 280.69110107422, 21096, 1747 +176 = 38.468360900879, -1.8496987819672, 278.10339355469, 21669, 1750 +177 = 39.037261962891, -2.1108067035675, 283.56600952148, 21422, 1747 +178 = 43.219619750977, -2.1783344745636, 286.78341674805, 22251, 1747 +179 = 60.166435241699, -2.3586294651031, 298.38943481445, 27948, 1747 +180 = 54.719867706299, -2.4405574798584, 298.29385375977, 25826, 1747 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_swamps.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_swamps.ltx new file mode 100644 index 000000000..51a74026c --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_swamps.ltx @@ -0,0 +1,54 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; MARSH + +;[mar_space_restrictor_to_agroprom_1] +;[mar_space_restrictor_to_escape_1] + +[mar_space_restrictor_to_escape_2] +1 = 642.99481201172, 7.0014982223511, 413.09774780273, 531303, 226 +2 = 641.41638183594, 7.0155477523804, 414.7041015625, 531235, 226 +3 = 640.07525634766, 7.1475458145142, 417.93179321289, 531161, 226 +4 = 640.12243652344, 7.3397779464722, 421.18667602539, 531166, 226 +5 = 642.296875, 7.4275631904602, 419.76208496094, 531239, 226 +6 = 642.19018554688, 7.371434211731, 418.01184082031, 531237, 226 +7 = 643.51550292969, 7.3680143356323, 417.67810058594, 531237, 226 +8 = 643.15350341797, 7.2840628623962, 416.14135742188, 531236, 226 +9 = 643.86004638672, 7.2264575958252, 414.84295654297, 531303, 226 +10 = 645.22192382812, 7.3400106430054, 416.30288696289, 531303, 226 +11 = 646.71240234375, 7.3974924087524, 417.7399597168, 531303, 226 +12 = 645.89599609375, 7.4542760848999, 419.74240112305, 531671, 227 +13 = 647.59405517578, 7.4754662513733, 419.98068237305, 531671, 227 +14 = 649.55383300781, 7.4505662918091, 418.70751953125, 531706, 227 +15 = 650.57897949219, 7.4724140167236, 419.63848876953, 531706, 227 +16 = 649.51342773438, 7.5352921485901, 421.34790039062, 531706, 227 +17 = 647.96697998047, 7.5337753295898, 422.55889892578, 531706, 227 +18 = 647.05108642578, 7.5098614692688, 424.19125366211, 531638, 227 +19 = 648.69635009766, 7.5411558151245, 424.20504760742, 531740, 227 +20 = 650.42645263672, 7.5789079666138, 422.55758666992, 531795, 227 +21 = 656.00524902344, 7.5584139823914, 420.75555419922, 531963, 227 +22 = 657.34149169922, 7.6601986885071, 421.89251708984, 531980, 227 +23 = 660.03125, 7.5560526847839, 419.61535644531, 532027, 227 +24 = 659.07995605469, 7.6629905700684, 421.45556640625, 532018, 227 +25 = 657.72607421875, 7.5573968887329, 420.26727294922, 531991, 227 +26 = 657.32891845703, 7.9170179367065, 430.09289550781, 531976, 227 +27 = 645.70916748047, 7.475772857666, 426.72564697266, 531563, 227 +28 = 640.95300292969, 7.4013032913208, 423.05374145508, 531243, 226 +29 = 640.04400634766, 7.3253073692322, 424.47930908203, 531170, 226 +30 = 653.89587402344, 7.7535285949707, 436.3388671875, 531913, 227 +31 = 652.68615722656, 7.6665229797363, 437.9345703125, 531876, 227 +32 = 651.68084716797, 7.6159172058105, 435.15942382812, 531849, 227 +33 = 649.32452392578, 7.4641523361206, 434.90921020508, 531782, 227 +34 = 648.51184082031, 7.4066867828369, 435.93988037109, 531725, 227 +35 = 649.31567382812, 7.4468412399292, 438.13171386719, 531787, 227 +36 = 652.04309082031, 7.6125650405884, 440.11764526367, 531877, 227 +37 = 647.25433349609, 7.3526873588562, 438.71630859375, 531693, 227 +38 = 644.85101318359, 7.3006043434143, 438.50921630859, 531527, 227 +39 = 643.73388671875, 7.2958312034607, 440.68060302734, 531483, 227 +40 = 639.54144287109, 7.3991260528564, 440.31463623047, 531101, 226 +41 = 646.13458251953, 7.3389115333557, 440.03967285156, 531622, 227 +42 = 648.74481201172, 7.4136142730713, 440.39971923828, 531761, 227 +43 = 649.87518310547, 7.4727153778076, 439.92785644531, 531812, 227 +44 = 650.86553955078, 7.5444784164429, 438.51690673828, 531833, 227 +45 = 651.2578125, 7.5823087692261, 436.21612548828, 531829, 227 +46 = 651.71105957031, 7.5973310470581, 438.88949584961, 531854, 227 +47 = 654.41967773438, 7.7954816818237, 434.26174926758, 531930, 227 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_truck_cemetary.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_truck_cemetary.ltx new file mode 100644 index 000000000..f3c840b0a --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_truck_cemetary.ltx @@ -0,0 +1,8 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; TRUCK CEMETARY + +;[tc_space_restrictor_to_bar] +;[tc_space_restrictor_to_darkvalley] +;[tc_space_restrictor_to_military_1] +;[tc_space_restrictor_to_military_2] +;[tc_space_restrictor_to_military_3] diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_wild_territory.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_wild_territory.ltx new file mode 100644 index 000000000..4c1d57d52 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_wild_territory.ltx @@ -0,0 +1,6 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; WILD TERRITORY + +;[ros_space_restrictor_to_bar_1] +;[ros_space_restrictor_to_garbage_1] +;[ros_space_restrictor_to_yantar_1] diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_yantar.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_yantar.ltx new file mode 100644 index 000000000..3febf2299 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/static_spawns_yantar.ltx @@ -0,0 +1,187 @@ +;;;;;;;;;;;;;;;;;;;;;;;; +;; YANTAR + +[yan_space_restrictor_to_rostok_1] +1 = 214.01676940918, 14.945219993591, -263.0671081543, 151490, 2190 +2 = 218.45693969727, 14.838492393494, -266.46203613281, 151490, 2190 +3 = 222.93298339844, 12.314450263977, -269.78979492188, 151700, 2190 +4 = 224.11212158203, 11.982655525208, -271.39706420898, 151700, 2190 +5 = 227.09614562988, 10.637351989746, -273.17797851562, 151700, 2190 +6 = 228.95404052734, 11.663956642151, -277.31723022461, 151700, 2190 +7 = 216.302734375, 16.887329101562, -268.00634765625, 151636, 2190 +8 = 237.77131652832, 8.9262094497681, -258.59213256836, 152334, 2190 +9 = 241.51081848145, 10.995436668396, -259.29809570312, 152334, 2190 +10 = 240.96994018555, 11.936392784119, -257.35928344727, 152334, 2190 +11 = 218.96658325195, 9.5583219528198, -261.10296630859, 151636, 2190 +12 = 243.87426757812, 14.695408821106, -256.56106567383, 152334, 2190 +13 = 243.84230041504, 16.015581130981, -254.08694458008, 152334, 2190 +14 = 246.61489868164, 18.613355636597, -253.38511657715, 152334, 2190 +15 = 247.06323242188, 19.359834671021, -252.1305847168, 152334, 2190 +16 = 244.3395690918, 17.962549209595, -249.37292480469, 152334, 2190 +17 = 242.00799560547, 18.154249191284, -242.22868347168, 152334, 2190 +18 = 238.88485717773, 13.048268318176, -245.53330993652, 152334, 2190 +19 = 239.25021362305, 12.156739234924, -249.30302429199, 152334, 2190 +20 = 237.21421813965, 9.7335424423218, -252.00341796875, 152334, 2190 +21 = 231.74774169922, 7.477283000946, -245.02975463867, 152103, 2190 +22 = 216.42906188965, 12.653853416443, -262.26446533203, 151636, 2190 +23 = 235.04080200195, 12.213216781616, -240.87004089355, 152068, 2190 +24 = 236.09143066406, 16.972816467285, -232.91839599609, 152068, 2190 +25 = 231.06509399414, 9.8892698287964, -238.3932800293, 152068, 2190 +26 = 226.55885314941, 6.040952205658, -246.33825683594, 151953, 2190 +27 = 220.73466491699, 16.203832626343, -271.81210327148, 151841, 2237 +28 = 220.87008666992, 17.786918640137, -274.53356933594, 151841, 2237 +29 = 219.19612121582, 20.43758392334, -275.74682617188, 151841, 2237 +30 = 218.83383178711, 21.895454406738, -277.95983886719, 151841, 2237 +31 = 216.9150390625, 22.82657623291, -280.08395385742, 151841, 2237 +32 = 214.73983764648, 23.836521148682, -280.58023071289, 151841, 2237 +33 = 212.67796325684, 13.885208129883, -260.07843017578, 151636, 2190 +34 = 214.03065490723, 23.936676025391, -282.77758789062, 151841, 2237 +35 = 216.66244506836, 22.819728851318, -285.94403076172, 151841, 2237 +36 = 216.07594299316, 23.133415222168, -288.48529052734, 151841, 2237 +37 = 212.64793395996, 23.513410568237, -288.14886474609, 151841, 2237 +38 = 209.40097045898, 23.831558227539, -286.16955566406, 151841, 2237 +39 = 206.41398620605, 24.008317947388, -287.70516967773, 151841, 2237 +40 = 208.23110961914, 23.585697174072, -290.30749511719, 151841, 2237 +41 = 211.15081787109, 23.617839813232, -292.38958740234, 151841, 2237 +42 = 211.37922668457, 23.560974121094, -296.30935668945, 151841, 2237 +43 = 208.67637634277, 23.690906524658, -296.61279296875, 151841, 2237 +44 = 213.98818969727, 11.613419532776, -259.244140625, 151636, 2190 +45 = 206.37553405762, 23.619276046753, -293.1692199707, 151841, 2237 +46 = 202.76240539551, 23.849523544312, -298.39154052734, 151841, 2237 +47 = 207.86335754395, 23.746698379517, -299.79565429688, 151841, 2237 +48 = 203.94172668457, 23.738075256348, -295.3132019043, 151841, 2237 +49 = 209.71006774902, 24.238712310791, -283.48992919922, 151841, 2237 +50 = 216.07098388672, 20.9700050354, -274.02410888672, 151841, 2237 +51 = 211.05841064453, 24.598056793213, -278.28851318359, 151841, 2237 +52 = 254.95304870605, 23.973201751709, -247.2066192627, 152282, 2190 +53 = 254.35006713867, 23.06103515625, -252.16125488281, 152282, 2190 +54 = 250.68003845215, 20.676410675049, -255.46382141113, 152282, 2190 +55 = 216.3636932373, 11.269558906555, -260.17468261719, 151636, 2190 +56 = 247.07878112793, 17.758453369141, -256.09912109375, 152282, 2190 +57 = 245.48486328125, 19.937789916992, -246.12902832031, 152282, 2190 +58 = 243.76080322266, 21.041080474854, -237.02017211914, 152032, 2190 +59 = 233.31280517578, 9.4228525161743, -242.41479492188, 152200, 2190 +60 = 233.1965637207, 12.573048591614, -237.27603149414, 152200, 2190 +61 = 235.56814575195, 14.905369758606, -236.89320373535, 152200, 2190 +62 = 238.76345825195, 16.491086959839, -239.19174194336, 152200, 2190 +63 = 240.02532958984, 18.346445083618, -237.51226806641, 152200, 2190 +64 = 242.07220458984, 20.538021087646, -235.24185180664, 152200, 2190 +65 = 244.63725280762, 21.958177566528, -234.64387512207, 152200, 2190 +66 = 216.67922973633, 8.8011560440063, -258.35629272461, 151546, 2190 +67 = 244.29006958008, 22.390289306641, -229.34799194336, 152200, 2190 +68 = 236.53880310059, 18.487678527832, -229.70887756348, 152200, 2190 +69 = 232.73318481445, 15.361424446106, -231.84233093262, 152200, 2190 +70 = 229.86245727539, 13.839221000671, -231.78485107422, 152200, 2190 +71 = 228.32960510254, 10.804577827454, -235.10194396973, 152103, 2190 +72 = 226.42124938965, 8.8348455429077, -236.53454589844, 151814, 2190 +73 = 223.33004760742, 9.7049436569214, -233.74600219727, 151760, 2190 +74 = 225.04653930664, 15.066195487976, -227.0975189209, 151760, 2190 +75 = 230.41249084473, 15.951380729675, -228.66276550293, 151760, 2190 +76 = 213.79196166992, 8.4399814605713, -256.44931030273, 151409, 2190 +77 = 220.45950317383, 7.0790395736694, -258.62591552734, 151669, 2190 + +[yan_space_restrictor_to_agroprom_1] +1 = -47.470508575439, -1.3085865974426, -342.1123046875, 45684, 2188 +2 = -46.726543426514, 0.48845207691193, -345.25909423828, 45684, 2188 +3 = -42.46736907959, 3.0471038818359, -346.56088256836, 45684, 2188 +4 = -45.762275695801, 5.2205004692078, -350.30389404297, 45684, 2188 +5 = -37.453689575195, 9.292797088623, -351.71481323242, 45684, 2188 +6 = -45.841133117676, 8.7268667221069, -358.50741577148, 45684, 2188 +7 = -53.041507720947, 5.5128841400146, -359.04364013672, 44758, 2188 +8 = -78.129005432129, 4.6843404769897, -354.04336547852, 33846, 2188 +9 = -77.726280212402, 7.9816427230835, -362.29968261719, 33846, 2188 +10 = -82.963310241699, 10.614577293396, -358.26080322266, 33846, 2188 +11 = -48.387672424316, 16.303703308105, -369.50332641602, 35537, 2289 +12 = -82.611633300781, 8.9144430160522, -354.16729736328, 33846, 2188 +13 = -80.270324707031, 6.6720914840698, -354.37283325195, 33846, 2188 +14 = -80.411361694336, 5.1313948631287, -351.16705322266, 33846, 2188 +15 = -82.382057189941, 6.3483963012695, -348.75839233398, 33846, 2188 +16 = -83.403289794922, 5.0336470603943, -345.35958862305, 33846, 2188 +17 = -85.783576965332, 6.2908020019531, -343.73724365234, 33847, 2188 +18 = -87.471168518066, 9.8479051589966, -346.16580200195, 33846, 2188 +19 = -89.52326965332, 15.383200645447, -349.87567138672, 33846, 2188 +20 = -87.99927520752, 15.010334968567, -355.22155761719, 33846, 2188 +21 = -85.489837646484, 13.118271827698, -359.31646728516, 33846, 2188 +22 = -51.207542419434, 15.438944816589, -369.82434082031, 35537, 2289 +23 = -88.7353515625, 17.082841873169, -361.91122436523, 33846, 2188 +24 = -91.497268676758, 19.198776245117, -360.15856933594, 33846, 2188 +25 = -93.083618164062, 19.479309082031, -354.70880126953, 33846, 2188 +26 = -98.107215881348, 22.162048339844, -356.45407104492, 33846, 2188 +27 = -97.441558837891, 22.581592559814, -365.05938720703, 33846, 2188 +28 = -92.894973754883, 20.350339889526, -366.53372192383, 33846, 2188 +29 = -92.133079528809, 19.721487045288, -369.94274902344, 33846, 2188 +30 = -83.861038208008, 13.311237335205, -364.84216308594, 33846, 2188 +31 = -77.299865722656, 5.685980796814, -357.89288330078, 33846, 2188 +32 = -76.241493225098, 3.3761818408966, -353.30645751953, 33846, 2188 +33 = -50.607627868652, 13.438889503479, -366.37426757812, 35537, 2289 +34 = -78.661727905273, 3.7008774280548, -351.45373535156, 33846, 2188 +35 = -81.285301208496, 6.7631306648254, -352.6383972168, 33846, 2188 +36 = -83.833106994629, 8.4024324417114, -351.26281738281, 33846, 2188 +37 = -85.761352539062, 11.355331420898, -352.85113525391, 33846, 2188 +38 = -89.247863769531, 15.688110351562, -352.04629516602, 33846, 2188 +39 = -92.809555053711, 18.619411468506, -352.42590332031, 33846, 2188 +40 = -97.270721435547, 21.761499404907, -350.43072509766, 33846, 2188 +41 = -101.88899230957, 19.987590789795, -345.66668701172, 33846, 2188 +42 = -104.53073120117, 20.46311378479, -345.47885131836, 33846, 2188 +43 = -107.19931030273, 23.527660369873, -349.41586303711, 33846, 2188 +44 = -55.512382507324, 12.395401954651, -367.67694091797, 35537, 2289 +45 = -109.52297973633, 25.257957458496, -352.59844970703, 33846, 2188 +46 = -105.74708557129, 25.240531921387, -358.00103759766, 33846, 2188 +47 = -98.996444702148, 23.053993225098, -367.13641357422, 33846, 2188 +48 = -102.21717834473, 24.322797775269, -360.64996337891, 33846, 2188 +49 = -109.41414642334, 26.499691009521, -366.86535644531, 33846, 2188 +50 = -116.76937103271, 27.265064239502, -362.64447021484, 33846, 2188 +51 = -120.57233428955, 27.323657989502, -364.48522949219, 33846, 2188 +52 = -117.93885803223, 27.612770080566, -369.59857177734, 33846, 2188 +53 = -111.33142852783, 26.959053039551, -373.53359985352, 33846, 2188 +54 = -104.76615142822, 24.732048034668, -374.10430908203, 33846, 2188 +55 = -58.459159851074, 12.531265258789, -370.38165283203, 35537, 2289 +56 = -96.737152099609, 20.752923965454, -377.43206787109, 33846, 2188 +57 = -111.2378616333, 26.285514831543, -357.93005371094, 33846, 2188 +58 = -116.67597961426, 23.977172851562, -350.32562255859, 33846, 2188 +59 = -123.57715606689, 26.895576477051, -356.29119873047, 33846, 2188 +60 = -110.35958099365, 21.495655059814, -345.49682617188, 33846, 2188 +61 = -103.80910491943, 24.421922683716, -353.38220214844, 33846, 2188 +62 = -83.522918701172, 12.238227844238, -361.22561645508, 33846, 2188 +63 = -76.507797241211, 4.5830173492432, -356.04696655273, 33846, 2188 +64 = -80.185699462891, 7.5637607574463, -357.31549072266, 33846, 2188 +65 = -79.331108093262, 0.57100349664688, -341.87005615234, 33376, 2188 +66 = -58.475303649902, -0.1148624420166, -353.92837524414, 35537, 2289 +67 = -78.575500488281, 1.8600428104401, -346.02603149414, 33376, 2188 +68 = -83.05647277832, 2.8261525630951, -341.12103271484, 33376, 2188 +69 = -55.001068115234, -1.7888402938843, -347.29321289062, 42642, 2188 +70 = 229.86245727539, 13.839221000671, -231.78485107422, 152200, 2190 +71 = 228.32960510254, 10.804577827454, -235.10194396973, 152103, 2190 +72 = 226.42124938965, 8.8348455429077, -236.53454589844, 151814, 2190 +73 = 223.33004760742, 9.7049436569214, -233.74600219727, 151760, 2190 +74 = 225.04653930664, 15.066195487976, -227.0975189209, 151760, 2190 +75 = 230.41249084473, 15.951380729675, -228.66276550293, 151760, 2190 +76 = -53.008766174316, -0.17417567968369, -351.33145141602, 42178, 2188 +77 = -52.168792724609, -1.8923516273499, -343.20758056641, 44208, 2188 + +[yan_space_restrictor_to_dead_city_1] +1 = -15.556285858154, 0.37540704011917, -18.524076461792, 59717, 2217 +2 = -13.474752426147, 0.19980090856552, -16.758018493652, 60323, 2217 +3 = -10.475748062134, 0.082021713256836, -16.815393447876, 61751, 2217 +4 = -7.8975124359131, 0.019680351018906, -15.036096572876, 63092, 2217 +5 = -7.9948878288269, 0.050183951854706, -20.622592926025, 63084, 2217 +6 = -9.320426940918, 0.0767722427845, -22.929056167603, 62423, 2217 +7 = -11.201169967651, 0.13750106096268, -22.619333267212, 61403, 2217 +8 = -14.573099136353, 0.31118947267532, -25.230201721191, 59713, 2217 +9 = -12.521617889404, 0.23213881254196, -26.913457870483, 60664, 2217 +10 = -10.31103515625, 0.14267244935036, -26.32421875, 61737, 2217 +11 = -7.2853126525879, 0.036082834005356, -27.10823059082, 63384, 2217 +12 = -11.460109710693, 0.20483404397964, -29.738170623779, 61393, 2246 +13 = -7.9369645118713, 0.050330996513367, -24.700174331665, 63078, 2217 +14 = -13.429478645325, 0.088564872741699, 14.417495727539, 60364, 2243 +15 = -16.308277130127, 0.21337825059891, 15.805246353149, 59179, 2243 +16 = -17.42972946167, 0.26607090234756, 18.512306213379, 58591, 2243 +17 = -15.120887756348, 0.26526087522507, 21.29144859314, 59472, 2243 +18 = -13.042339324951, 0.1600376367569, 19.411321640015, 60371, 2243 +19 = -10.122574806213, 0.035428673028946, 17.23717880249, 62092, 2243 +20 = -8.1684637069702, 0.1501100063324, 19.823987960815, 62793, 2243 +21 = -10.250232696533, 0.086418926715851, 14.547444343567, 61440, 2243 +22 = -7.9567313194275, 0.07547727227211, 12.221810340881, 63403, 2193 +23 = -13.655591964722, 0.088144063949585, 16.637174606323, 60062, 2243 +24 = -10.789132118225, 0.25435429811478, 21.558292388916, 61782, 2243 +25 = -18.377397537231, 0.31346654891968, 21.018630981445, 58303, 2243 diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/transition_settings.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/transition_settings.ltx new file mode 100644 index 000000000..c4508a697 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/plugins/dynamic_zone/anomalies/transition_settings.ltx @@ -0,0 +1,443 @@ +; This file is used to create exceptions for anomaly spawn parameters on a +; transition basis to improve immersion and hazardousness +; +; NOTE: The spread_radius should preferably be lower than the +; CONST_FIELD_SIZE_MIN defined in the main script + +#include "transition_settings_*.ltx" + +; Define your transitions like this: +; [transiton_section]:defaults +; rootpos = x, y, z ; where the origin point for anomaly spawns should be +; narrow = [spawn algorithm: smaller offsets] +; count = [dynamic spawns] +; spread_radius = [around rootpos] +; max_height_offset = +; generate_max_tries = +; min_anomaly_proximity = [+ anomaly_radii *2] +; static_spawn_ratio = [tries to spawn the resulting amount] + +[defaults] +narrow = false +count = 21 +spread_radius = 30 +max_height_offset = 0 +generate_max_tries = 64 +min_anomaly_proximity = 2 +static_spawn_ratio = 0.5 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; CORDON + +; Army outpost @ South +[esc_space_restrictor_to_marsh_1]:defaults +rootpos = -262.56866455078, -21.039331436157, -284.20474243164 +narrow = true +spread_radius = 30 +min_anomaly_proximity = 1.1 + +[esc_space_restrictor_to_marsh_2]:defaults +rootpos = -185.00993347168, 19.095846176147, 231.13690185547 +count = 41 +spread_radius = 38 +max_height_offset = 3 +static_spawn_ratio = 0.6 + +[esc_space_restrictor_to_darkscape_1]:defaults +rootpos = 355.63342285156, 15.15832233429, -34.174919128418 +narrow = true +count = 19 +spread_radius = 30 +max_height_offset = 1 + +[esc_space_restrictor_to_pole_1]:defaults +rootpos = 326.90130615234, 18.498018264771, 339.5885925293 +count = 23 +spread_radius = 40 +max_height_offset = 5 +static_spawn_ratio = 0.45 + +; Army outpost @ North +[esc_space_restrictor_to_garbage_1]:defaults +rootpos = 21.078031539917, 16.015649795532, 671.45660400391 +static_spawn_ratio = 1.0 + +[esc_space_restrictor_to_garbage_2]:defaults +rootpos = -154.77156066895, -3.7063891887665, 330.69226074219 +count = 24 +spread_radius = 35 +static_spawn_ratio = 0.3 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; MARSH + +[mar_space_restrictor_to_agroprom_1]:defaults +[mar_space_restrictor_to_escape_1]:defaults +[mar_space_restrictor_to_escape_2]:defaults +rootpos = 655.62628173828, 7.7639408111572, 425.81042480469 +narrow = true +spread_radius = 36 +static_spawn_ratio = 0.2 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; DARKSCAPE + +[ds_space_restrictor_to_escape]:defaults +rootpos = -603.13073730469, -2.3151462078094, -397.44158935547 +narrow = true +count = 16 + +[ds_space_restrictor_to_darkvalley]:defaults +static_spawn_ratio = 0.7 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; MEADOW + +[pol_space_restrictor_to_escape_1]:defaults +rootpos = -204.05184936523, -16.925643920898, -24.523233413696 +count = 16 +spread_radius = 25 + +[pol_space_restrictor_to_val_1]:defaults +rootpos = -38.684341430664, 1.6044301986694, 172.6302947998 +count = 14 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; AGROPROM + +[agr_space_restrictor_to_garbage_1]:defaults +rootpos = 249.62699890137, 2.3121690750122, -252.59039306641 +count = 24 +spread_radius = 35 + +[agr_space_restrictor_to_garbage_2]:defaults +rootpos = 280.15560913086, 0.31344103813171, 4.7876262664795 +count = 24 +spread_radius = 35 + +[agr_space_restrictor_to_marsh_1]:defaults +rootpos = 2.0212745666504, -3.0421557426453, -331.49380493164 + +[agr_space_restrictor_to_yantar_1]:defaults +rootpos = -221.52743530273, 13.098348617554, 204.60922241211 +narrow = true +count = 26 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; GARBABE + +[gar_space_restrictor_to_escape_1]:defaults +rootpos = 31.133201599121, 0.49598652124405, -315.66192626953 + +;; Small pipe +[gar_space_restrictor_to_escape_2]:defaults +rootpos = -144.30377197266, 0.8311031460762, -285.46295166016 +narrow = true +max_height_offset = 4 +min_anomaly_proximity = 1 + +[gar_space_restrictor_to_agroprom_1]:defaults +count = 17 +max_height_offset = 5 +static_spawn_ratio = 0.4 + +[gar_space_restrictor_to_agroprom_2]:defaults +count = 29 +spread_radius = 35 +static_spawn_ratio = 0.35 + +[gar_space_restrictor_to_rostok_1]:defaults +[gar_space_restrictor_to_bar_1]:defaults + +[gar_space_restrictor_to_darkvalley_1]:defaults +spread_radius = 35 +static_spawn_ratio = 0.5 + +[gar_space_restrictor_to_darkvalley_2]:defaults + +;;;;;;;;;;;;;;;;;;;;;;;; +;; DARK VALLEY + +[val_space_restrictor_to_darkscape]:defaults +count = 14 +narrow = true + +[val_space_restrictor_to_garbage_1]:defaults +rootpos = -166.14654541016, 4.310423374176, -307.92291259766 +count = 14 + +[val_space_restrictor_to_garbage_2]:defaults +rootpos = -184.41259765625, 3.0746545791626, -187.42942810059 +count = 14 + +[val_space_restrictor_to_pole_1]:defaults +count = 14 + +[val_space_restrictor_to_tc]:defaults + +;;;;;;;;;;;;;;;;;;;;;;;; +;; YANTAR + +[yan_space_restrictor_to_agroprom_1]:defaults +rootpos = -70.167518615723, 1.0501892566681, -354.12280273438 +narrow = true +count = 14 +spread_radius = 25 +max_height_offset = 5 + +[yan_space_restrictor_to_dead_city_1]:defaults +rootpos = -18.525394439697, 0.37441009283066, 0.37217244505882 +narrow = true +count = 14 +spread_radius = 20 +static_spawn_ratio = 0.7 + +[yan_space_restrictor_to_rostok_1]:defaults +rootpos = 227.8956451416, 6.5885915756226, -256.11004638672 +narrow = true +max_height_offset = 5 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; WILD TERRITORY + +[ros_space_restrictor_to_bar_1]:defaults +narrow = true + +[ros_space_restrictor_to_garbage_1]:defaults +rootpos = -24.090187072754, -2.5423719882965, -179.62350463867 + +[ros_space_restrictor_to_yantar_1]:defaults +rootpos = -108.13006591797, -13.720633506775, -224.87098693848 +count = 24 +spread_radius = 35 +max_height_offset = 3 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; ROSTOK + +[bar_space_restrictor_to_garbage_01]:defaults +rootpos = 388.64486694336, 19.281694412231, -290.61553955078 +static_spawn_ratio = 0.6 + +[bar_space_restrictor_to_military_01]:defaults +static_spawn_ratio = 0.3 + +[bar_space_restrictor_to_tc]:defaults +narrow = true +count = 9 + +[bar_space_restrictor_to_rostok_01]:defaults + +;;;;;;;;;;;;;;;;;;;;;;;; +;; TRUCK CEMETARY + +[tc_space_restrictor_to_bar]:defaults +rootpos = -322.5712890625, 6.1045780181885, 82.188682556152 +count = 14 +spread_radius = 35 +max_height_offset = 4 + +[tc_space_restrictor_to_military_1]:defaults +rootpos = -204.7868347168, 13.47899723053, 353.19250488281 +count = 14 +spread_radius = 35 +max_height_offset = 6 + +[tc_space_restrictor_to_military_2]:defaults +rootpos = 85.503471374512, 13.016917228699, 367.11950683594 +spread_radius = 35 + +[tc_space_restrictor_to_military_3]:defaults +count = 24 +spread_radius = 35 + +[tc_space_restrictor_to_darkvalley]:defaults + +;;;;;;;;;;;;;;;;;;;;;;;; +;; DEAD CITY + +[cit_space_restrictor_to_military]:defaults +rootpos = 154.97149658203, -2.6670255661011, -29.174842834473 +narrow = true +count = 9 +spread_radius = 20 +max_height_offset = 1 + +[cit_space_restrictor_to_limansk]:defaults +count = 14 + +[cit_space_restrictor_to_yantar]:defaults +rootpos = -11.347318649292, 0.96284037828445, -214.69622802734 +narrow = true +count = 14 +spread_radius = 20 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; ARMY WAREHOUSES + +[mil_space_restrictor_to_dead_city_1]:defaults +count = 9 + +[mil_space_restrictor_to_red_1]:defaults +count = 11 + +[mil_space_restrictor_to_radar_1]:defaults +rootpos = 86.735046386719, -13.390557289124, 410.29614257812 +spread_radius = 35 + +[mil_space_restrictor_to_tc]:defaults +rootpos = -213.66079711914, -10.290971755981, -12.764043807983 +count = 7 + +[mil_space_restrictor_to_bar_1]:defaults +rootpos = -324.86236572266, -25.926807403564, 52.999080657959 +max_height_offset = 5 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; LIMANSK + +[lim_space_restrictor_to_dead_city]:defaults +rootpos = -52.307598114014, -5.0046973228455, -244.73245239258 +narrow = true +count = 9 + +[lim_space_restrictor_to_red_forest]:defaults +rootpos = 3.770740032196, -0.0090442895889282, -357.19940185547 ;;4.3045954704285, -0.0095592737197876, -363.99993896484 +narrow = true +count = 19 +max_height_offset = 3 +min_anomaly_proximity = 0.8 + +[lim_space_restrictor_to_hospital]:defaults +rootpos = 62.153232574463, 3.2995672225952, 343.52059936523 +narrow = true +count = 14 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; RED FOREST + +[red_space_restricor_to_jupiter]:defaults +rootpos = -61.157417297363, -0.00012931227684021, 83.650421142578 +spread_radius = 35 + +[red_space_restrictor_to_limansk]:defaults +rootpos = -176.96186828613, 0.1375118792057, -280.86276245117 +narrow = true +count = 6 + +[red_space_restrictor_to_military_1]:defaults +rootpos = -13.942101478577, 0.76041704416275, -438.36660766602 +count = 24 +spread_radius = 36 + +[red_space_restrictor_to_radar_1]:defaults +rootpos = 254.71745300293, -1.4554796218872, -310.73031616211 +count = 14 +spread_radius = 30 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; RADAR + +[rad_space_restrictor_to_pripyat_01]:defaults +rootpos = 383.51205444336, -35.538181304932, 125.76106262207 +count = 11 + +[rad_space_restrictor_to_red_forest]:defaults +rootpos = -25.921100616455, -0.9791322350502, -81.806488037109 +narrow = true +count = 11 +spread_radius = 20 + +[rad_space_restrictor_to_military_01]:defaults +rootpos = 568.00762939453, -53.471260070801, -409.02130126953 +count = 14 +spread_radius = 25 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; DESERTED HOSPITAL + +[katacomb_space_restrictor_to_aes_1]:defaults +narrow = true +count = 7 + +[katacomb_space_restrictor_to_limansk]:defaults +narrow = true +count = 7 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; JUPITER + +[jupiter_space_restrictor_to_red_forest]:defaults +rootpos = -110.88342285156, 26.951494216919, -492.51205444336 +count = 14 +spread_radius = 25 + +[jupiter_space_restrictor_to_soc_pripyat]:defaults +rootpos = 442.33578491211, 27.673992156982, -162.49478149414 +count = 24 +spread_radius = 35 + +[jup_space_restrictor_to_zaton]:defaults +rootpos = 476.40084838867, -6.4436411857605, 490.11071777344 +count = 24 +spread_radius = 35 +static_spawn_ratio = 0.8 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; PRIPYAT + +[pri_space_restrictor_to_cop_pripyat]:defaults +rootpos = 190.08209228516, -2.000510931015, 213.37898254395 +narrow = true +count = 9 +spread_radius = 25 + +[pri_space_restrictor_to_jupiter]:defaults +rootpos = -112.15048980713, -2.0004575252533, 98.006851196289 +narrow = true +count = 7 +spread_radius = 25 + +[pri_space_restrictor_to_radar]:defaults +spread_radius = 35 +static_spawn_ratio = 0.8 + +[pri_space_restrictor_to_stancia]:defaults +rootpos = 31.006572723389, 1.1568984985352, 434.404296875 +narrow = true +count = 15 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; OUTSKIRTS + +[cop_pripyat_space_restrictor_to_soc_pripyat]:defaults +rootpos = -244.9404296875, -0.4916250705719, -133.76998901367 +count = 19 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; ZATON + +[zaton_space_restrictor_to_jupiter]:defaults +rootpos = 429.95199584961, 29.538331985474, -427.31225585938 + +[zaton_space_restrictor_to_stancia_1]:defaults +rootpos = -321.41271972656, 19.378704071045, 619.53601074219 + +;;;;;;;;;;;;;;;;;;;;;;;; +;; CHERNOBYL CNPP - SOUTH + +[aes_space_restrictor_to_aes2]:defaults +[aes_space_restrictor_to_pripyat]:defaults +[aes_space_restrictor_to_zaton]:defaults + +;;;;;;;;;;;;;;;;;;;;;;;; +;; CHERNOBYL CNPP - NORTH + +[aes2_space_restrictor_to_aes1]:defaults +[aes2_space_restrictor_to_gen]:defaults +[aes2_space_restrictor_to_hospital]:defaults + +;;;;;;;;;;;;;;;;;;;;;;;; +;; GENERATORS + +[gen_space_restrictor_to_aes2]:defaults diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone.xml b/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone.xml new file mode 100644 index 000000000..78445c69e --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone.xml @@ -0,0 +1,12 @@ + + + + hazardous + + + uncertain + + + This route may be too hazardous.. Looks like I have to find another way. + + diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone_mcm.xml b/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone_mcm.xml new file mode 100644 index 000000000..8983dac48 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone_mcm.xml @@ -0,0 +1,201 @@ + + + + + + Dynamic Zone + + + + + General + + + News + + + Discovery + + + Debugging + + + + + + Dynamic Zone : General + + + + Individual Route Blockage Chance + + + Chance for a route to become inpassable during an emission + + + + Chance for an Emission to cause Route changes + + + Determines the chance for any route changes to happen during an emission. + + + + Minimum Remaining Map Connections + + + How many connections should remain passable on each level. E.g. If set to 1, it is ensured that any given map will have at least one traversable path to another map. + + + + Trigger on New Game + + + This will make some routes inpassable at the beginning of a new game. + + + + New Game Grace Period (hours) + + + (Used when "Trigger on New Game" is Disabled) On a New Game, the Zone won't change for the amount of in-game Time defined here + + + + Emission Stage to Trigger on + + + Stage of emission, where the Zone Change occurs + + + + Impact + + + First Wave + + + Second Wave + + + Rumble + + + + Safe Addon Removal + + + Enable this setting, then save your game. Afterwards, you can remove the addon, load the new savegame and continue playing without Dynamic Zone Transitions. + + + + Dynamic Zone : News + + + + Between emissions, stalkers will share their findings via the PDA network about routes that changed their state.\nYou can change the percentage of affected routes to be revealed here.\nUnder some circumstances and a predefined chance, special characters such as Sidorovich may also comment those route changes. + + + + Play Discovery Sound + + + Plays the discovery sound, if the previously known route state was different. Will otherwise always use the default PDA notification sound. + + + + Reveal Percentage for routes that are passable again + + + How many routes that were previously inpassable will be revealed via the Stalker PDA Network. + + + + Percentage of Inpassable Routes to Reveal + + + How many inpassible routes will be revealed via the Stalker PDA Network. + + + + Chance for a special Character to be the Sender + + + Chance that a special character will comment changes in the Zone (e.g. Sidorovich). + + + + + Dynamic Zone : Discovery + + + + Showtime for discovery Message + + + + Minimum Binocular Focus Proximity to Transition + + + Updates the route status of any eligible transition that's currently being focused, if it's within this radius. + + + + Mark Transition's state as Unknown after an Emission + + + Transitions, whose states are unknown are marked accordingly. These blips are cleared after discovering a routes state. Players who prefer to keep track manually are encouraged to disable this feature. + + + + Binoculars Focus Time (milliseconds) + + + Time to focus an eligible transition to discover the state change. + + + + Maximum Binocular Discovery Distance + + + A transition with a proximity larger than this to the player can not be discovered. + + + + + Enable Binocular Heads-Up Display + + + This displays a marker in 3D space for transitions that are eligible for discovery on the current level. + + + + + Dynamic Zone : Debugging + + + + The options in this category are meant for debugging purposes only.\nLogs are written to 'appdata\logs\mcm' and prefixed with 'dynamic_zone_debug'\nFor that to work, the MCM logging utility should be activated in MCM's own options. + + + + Emission check interval (milliseconds) + + + Interval between emission stage checks. This check only runs when an emission has begun. + + + + Enable Debug Logging + + + Utilizes the MCM logging utility. Uses console logging as a fallback, if MCM is not installed. + + + + Validate function parameters + + + This will validate parameter types and checks for non-nil values throughout all scripts in this mod. + + diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone_news.xml b/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone_news.xml new file mode 100644 index 000000000..2373869d7 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/text/eng/st_dynzone_news.xml @@ -0,0 +1,798 @@ + + + + + + + I got word on the path from $FROM to $TO. Last I heard, $ANOM_THEME anomalies are everywhere. Might be worth waiting it out. + + + Just got word, the path leading from $FROM to $TO is clear again. Last emission did us a favor. + + + + + thermal + + + acidic + + + electric + + + gravitational + + + + + Stalkers, the path between $FROM and $TO is covered with $ANOM_THEME anomalies. Just informing you all. + + + Hey, what happened to the path between $FROM and $TO? It was fine before the last emission, but now it's borderline suicidal to take with that patch of $ANOM_THEME anomalies. + + + Shit, I nearly stepped into a bunch of $ANOM_THEME anomalies going to $TO. Do not try to go there before the next emission at all costs. + + + Looking for a guide to take me to $TO. Walking the known path would be suicidal with all those $ANOM_THEME anomalies, ever since the last emission happened. + + + Hey, anyone know if the way to $TO is clear? Heard there's a ton of $ANOM_THEME anomalies there. + + + So much for heading to $TO. The Zone's tossed $ANOM_THEME anomalies all over the place. + + + Anyone else tried getting to $TO? Those damned $ANOM_THEME anomalies have made it impossible. Might be stuck here for a while. + + + Looks like $TO is out of reach, comrades. The road is blocked by a bunch anomalies. We'll have to wait it out. + + + $TO is off-limits for now, anomalies are everywhere. Stay put until it's safe. + + + + + Stalkers, the path between $FROM and $TO is clear again. I am just informing you guys. + + + Good news, comrades! The path to $TO is open again. Anomalies are gone, time to move. + + + Hey, $TO is safe to travel to now. The Zone's cleared out the anomalies. + + + The road to $TO is open. Anomalies have cleared, so pack up and get moving. + + + Looks like we can finally head to $TO. The path is clear, but stay sharp. + + + The route to $TO is back on the table, comrades. Anomalies are gone, safe travels. + + + + + $SENDER_NAME here, watch your step coming from $FROM to $TO, got word it's clustered with $ANOM_THEME anomalies. + + + $SENDER_NAME here, don't bother coming into $FROM from $TO, one of my courier's just got back saying it's covered in $ANOM_THEME anomalies. + + + $SENDER_NAME here, word is that there are $ANOM_THEME anomalies covering the entry from $FROM to $TO, don't try to be tough, you won't make it. + + + $SENDER_NAME here, looks like a bunch of rookies heading to $TO, didn't make it back. Better be careful. + + + Stalkers, be cautious going to $TO. One of my couriers had to turn back with reports of $ANOM_THEME anomalies preventing passage. + + + This is $SENDER_NAME, I caught word of one of Wolf's associates being stuck in $TO, apparently can't make it back to the $FROM because of the intense anomalous activity. Watch yourselves. + + + This is $SENDER_NAME, we managed to intercept a radio frequency used by the military, there are talks of $ANOM_THEME anomalies between $FROM and $TO. + + + $SENDER_NAME speaking, the path to $TO is overrun with $ANOM_THEME anomalies. I wouldn't recommend going that way. + + + Can anyone confirm that there are $ANOM_THEME anomalies on the way to $TO? Some rookies rumoured about it. + + + Looks like the route to $TO is a deathtrap now, it's filled with $ANOM_THEME anomalies. Stay put until it's clear. + + + $TO is no longer safe, anomalies are everywhere. Better hunker down for now. + + + The path to $TO is blocked again. Damn Zone and its anomalies, always stirring things up. + + + + + Attention to all newbies. The anomalies on the road between $FROM and $TO have disappeared during the last emission. You can use your usual routes. + + + Good news, stalkers. The way to $TO is clear again. No more anomalies, you're free to move. + + + This is $SENDER_NAME, letting you know the road to $TO is open. Last emission cleared the anomalies. + + + Looks like the path to $TO is safe again. Those anomalies have cleared out, move carefully. + + + The route to $TO is open once more. No more anomalies in sight, safe travels. + + + $SENDER_NAME here, confirming the way to $TO is clear. The Zone's finally given us a break. + + + + + + Yo guys, listen. We cannot go from $FROM to $TO, there's a lot of $ANOM_THEME bullshit preventing us from going there. + + + Hey, watch your step guys! The Zone has scattered $ANOM_THEME anomalies all over the entry to $TO from $FROM! + + + Ha! We just watched a loner walk into one of those $ANOM_THEME anomalies going into $TO from $FROM! + + + Anyone placing bets on how many Stalkers walk into those $ANOM_THEME anomalies on the path from $FROM to $TO? + + + Hey guys, a bunch of our boys just walked into $ANOM_THEME anomalies covering the exit of $FROM to $TO, I think I'll wait till the next emission to see if they had anything of use. + + + Hey, you! Any of you seen the mess on the way to $TO? $ANOM_THEME anomalies everywhere, like the Zone wants us dead. + + + What the hell's going on? The road to $TO is a minefield of $ANOM_THEME anomalies. Ain't safe, not one bit. + + + To $TO? Hah, good luck with that. These $ANOM_THEME anomalies just popped up like mushrooms after the rain. + + + Anyone still alive out there? The path to $TO is swarming with anomalies. Don't get fried, boys. + + + So who pissed off the Zone this time? The way to $TO is filled with anomalies again. + + + + + Heya, guys. Listen up, stalkers can travel from $FROM to $TO again, it's time to rob'em, guys. + + + Yo, boys! The path to $TO is open again. Time to get moving and see what's left for us. + + + Looks like the anomalies cleared out. The way to $TO is open, get a move on. + + + Hey, good news! $TO is back on the map. Anomalies are gone, so what're you waiting for? + + + Finally, the path to $TO is clear. No more frying yourself on anomalies. Let's get going. + + + Who's up for a trip to $TO? The way is clear, no more $ANOM_THEME anomalies to worry about. + + + + + Sultan here, listen up. The Zone has flooded the path to $TO with $ANOM_THEME anomalies. Keep away unless you fancy getting fried. + + + Hey boys, $FROM to $TO is now off-limits. Anomalies everywhere. Let the fools clear it out for us. + + + Sultan speaking. $TO is a no-go, filled with $ANOM_THEME anomalies. Let's wait it out. + + + Listen up, bandits. $ANOM_THEME anomalies blocking our way to $TO. Stay put for now. + + + Sultan here. $TO is a death trap right now. Anomalies all over. Hold your positions. + + + Forget $TO for now, boys. These $ANOM_THEME anomalies are too risky. We'll wait for it to clear. + + + + + Good news from Sultan. The way to $TO is clear. Let's get moving before someone else does. + + + Listen up, the anomalies are gone. $TO is open for business. Get a move on. + + + Sultan here. The Zone's let up. Path to $TO is safe. Time to cash in, boys. + + + Hey, $TO is back in play. No more $ANOM_THEME anomalies blocking our way. Let's make some money. + + + Sultan speaking. The road to $TO is clear. Move fast, before the Zone changes its mind. + + + Alright, boys. The path to $TO is safe now. Anomalies are gone. Let's get going. + + + + + Informing all squads of anomalous activity on route between $FROM and $TO. Going this way will be impossible for now. There are a bunch of $ANOM_THEME anomalies. + + + $SENDER_NAME here, we were chasing some mutants out from $FROM towards $TO when one of the guys stepped into an $ANOM_THEME anomaly, seems the path is filled with them, don't fancy risking my neck going through and you shouldn't either. + + + Hey, watch your step going back to $TO from $FROM it's covered in a lot of anomalies! + + + $SENDER_NAME here, don't try going through $FROM to $TO, just watched a bloodsucker kill itself by a $ANOM_THEME anomaly. + + + Watch out around the path leading to $TO from $FROM. There are a lot of $ANOM_THEME anomalies. + + + Colonel Petrenko ordered me to inform everyone that the path between $FROM and $TO does not provide safe passage due to $ANOM_THEME anomalies. Stand by until the next emission. + + + All units, the Zone's locked down a route to $TO with $ANOM_THEME anomalies. Proceed with caution or not at all. + + + $SENDER_NAME here. Is anyone getting through to $TO? The $ANOM_THEME anomalies are making it impossible. + + + Confirming the path to $TO is now too hard to traverse due to $ANOM_THEME anomalies. No one's getting through until it clears. + + + The Zone's playing games again; $TO is off-limits due to heavy anomalous activity. Hold your ground until further notice. + + + $SENDER_NAME to all squads, the way to $TO is choked with anomalies. Stay put until we have a clear route. + + + + + Informing all squads of fading anomalous activity on the route between $FROM and $TO. We can move to this region again. + + + All squads, the path to $TO is open again. Anomalous activity has cleared, proceed with caution. + + + $SENDER_NAME here. The Zone has reopened the route to $TO. All units, advance with care. + + + Good news, the way to $TO is clear. Anomalies have dissipated, move forward. + + + Attention, the path to $TO is safe once more. The Zone's cleared the anomalies. + + + The road to $TO is open again. Anomalies are gone, but stay alert for anything else. + + + + + This is Petrenko. All Duty squads, avoid the path between $FROM and $TO. These $ANOM_THEME anomalies are making it impassable. + + + Petrenko here. We've confirmed a high density of $ANOM_THEME anomalies between $FROM and $TO. Hold your position until further notice. + + + Attention Duty members, the Zone has blocked the route from $FROM to $TO with $ANOM_THEME anomalies. Advise staying clear. + + + Colonel Petrenko reporting. Anomalous activity detected en route to $TO. All patrols, reroute immediately. + + + Squads, be on alert. Some $ANOM_THEME anomalies are obstructing the path from $FROM to $TO. Proceed with caution. + + + Duty command here. The road from $FROM to $TO is compromised. High $ANOM_THEME anomalous readings. Hold until safe. + + + + + This is Petrenko. The path to $TO has cleared up. Anomalies have subsided. Move out cautiously. + + + Petrenko here. Confirming that the route from $FROM to $TO is now safe. All squads proceed. + + + Good news, Duty members. The Zone has reopened the way to $TO. Anomalies are gone. + + + Colonel Petrenko to all units: $TO is now accessible. The Zone's anomalies have cleared. Stay vigilant. + + + All squads, the route between $FROM and $TO is clear again. Resume your duties. + + + This is Duty command, informing you that $TO is now safe to traverse. Anomalous activity has ceased. + + + + + Don't try to get to $TO from $FROM, just watched some renegades get obliterated by a bunch of $ANOM_THEME anomalies wandering through there. + + + Damn... hey someone tell the Ecologists that the exit to $TO from $FROM has been blocked off by those $ANOM_THEME anomalies. + + + Whatever you do, don't try to use the path connecting $FROM to $TO, we just lost one of the new guys there. + + + Kalancha just told me that according to his readings, the last emission must've blocked the path from here to $TO. Can anyone confirm this? + + + Any word on the path to $TO? Last I heard, $ANOM_THEME anomalies were everywhere. Might be worth waiting it out. + + + $TO is off the table for now. These ungodly $ANOM_THEME anomalies are all over the place. Let's hold until the Zone settles. + + + Can't reach $TO right now, anomalies are blocking the way there. Stay safe, Clear Sky. + + + Anyone tried getting to $TO? The route's a mess with $ANOM_THEME anomalies. Hold your position. + + + $SENDER_NAME here, the road to $TO is a no-go. Too many anomalies. Keep your heads down and stay put. + + + + + Informing all squads of an accessible path on the route between $FROM and $TO. The last emission cleared the anomalies there. + + + Clear Sky, the way to $TO is open. Anomalies have cleared, but stay cautious. + + + Just got word, the path to $TO is clear again. Last emission did us a favor. + + + $SENDER_NAME here. The route to $TO is open, anomalies have dissipated. + + + Anyone heading to $TO? The path is clear, no more anomalies in sight since the last emission came and went. + + + Looks like the Zone's let up. The way to $TO is safe now, move carefully. + + + + + The research team found high $ANOM_THEME anomalous activity on the road between $FROM and $TO. We recommend choosing a safe detour route. + + + Research teams, be advised. The path to $TO is obstructed by $ANOM_THEME anomalies. Proceed with caution. + + + Has anyone confirmed the anomaly activity near $TO? We're getting reports of $ANOM_THEME anomalies making passage impossible. + + + The Zone has created a barrier of anomalies near $TO. Avoid the area until it's clear. + + + $TO is currently unreachable. Those $ANOM_THEME anomalies are preventing safe passage. + + + Sakharov received intel from the USS patrols - the path from $FROM to $TO is full of $ANOM_THEME anomalies. Steer clear, we can't risk going there. + + + + + The research team recorded a drop in anomalous activity on the road between $FROM and $TO. The route now allows safe passage again. + + + Research teams, the way to $TO is now clear. Anomalies have dissipated, safe to proceed. + + + Attention, the path to $TO is open again. The last emission cleared the anomalies. + + + $SENDER_NAME here, confirming the route to $TO is clear. Anomalous activity has ceased. + + + Looks like the Zone has let up. The way to $TO is safe now, no more anomalies. + + + The path to $TO is clear. Anomalies are gone, safe to resume research activities. + + + + + Professor Sakharov here. The route between $FROM and $TO is blocked by $ANOM_THEME anomalies. Avoid the area. + + + This is Sakharov. We've detected significant $ANOM_THEME anomalies on the way to $TO. Proceed with caution. + + + Ecologists, please be informed that the path from $FROM to $TO is dangerous due to $ANOM_THEME anomalies. + + + Sakharov to all research teams: $TO is currently inaccessible due to $ANOM_THEME anomalous activity. Stay put. + + + Attention, the Zone has blocked access from $FROM to $TO with $ANOM_THEME anomalies. Avoid traversal. + + + Research teams, note that anomalies are preventing safe travel to $TO. Proceed with caution. + + + + + This is Sakharov. The path from $FROM to $TO is now clear of anomalies. Safe to proceed. + + + Ecologists, good news. $TO is accessible again. Anomalous activity has decreased. + + + Professor Sakharov here, confirming the route to $TO is now safe. Anomalies have dissipated. + + + The Zone has cleared up. Passage to $TO is safe for all research teams. + + + Sakharov to all personnel: $TO is clear of anomalies. Resume standard operations. + + + Attention researchers, the route to $TO is open again. Safe travels. + + + + + Mercenaries, our squad member was injuried due to $ANOM_THEME anomalies we've encountered on the road between $FROM and $TO, be advised. + + + HQ, we have a situation. The usual route between $FROM and $TO is inpassable due to a cluster of $ANOM_THEME anomalies, please advise. + + + Well, this is interesting. There's now a patch of $ANOM_THEME anomalies between $FROM and $TO. Send a team to investigate. + + + To all mercs, the route from $FROM leading to $TO is a dead end. $ANOM_THEME anomalies have made sure of that. + + + Can't move to $TO, the Zone's cluttered it with anomalies again. Hold position. + + + What's the status on the way to $TO? $ANOM_THEME anomalies are all over the place. + + + The Zone's locked down a part of $TO with anomalies. Gotta find another route. + + + $SENDER_NAME here, the path to $TO is inpassable. There are too many anomalies to navigate safely. + + + + + Mercenaries, our scout has discovered that the road from $FROM to $TO is clear. + + + To all mercs, the path to $TO is clear. Anomalies have dissipated, proceed with the mission. + + + $SENDER_NAME here. The road to $TO is open, anomalies are no longer a threat + + + Attention, the route to $TO is clear. Move out, the Zone's given us a window. + + + Good news, mercs. The way to $TO is open. No more anomalies preventing safe passage. + + + The path to $TO is clear. Anomalies have cleared, so get moving. + + + + + This is Dushman. Mercenaries, be advised: the route from $FROM to $TO is swarming with $ANOM_THEME anomalies. Hold your positions. + + + To all squads, Dushman here. The Zone's acting up. Those $ANOM_THEME anomalies block the way to $TO. Avoid the area until further notice. + + + Heads up, mercs. Our scouts report heavy $ANOM_THEME anomalies between $FROM and $TO. We can't afford any losses. Stay put. + + + Dushman speaking. Avoid $TO. It's crawling with $ANOM_THEME anomalies. Let's not lose any more men. + + + Attention, mercenaries. The path from $FROM to $TO is too hazardous due to $ANOM_THEME anomalies. Find an alternate route. + + + This is Dushman. Confirming high anomalous activity near $TO. Do not proceed until further updates. + + + + + Dushman here. The anomalies blocking $TO have cleared up. Mercenaries, you're clear to move out. + + + Good news, mercs. The path from $FROM to $TO is open. Anomalies are no longer a threat. Proceed with caution. + + + This is Dushman. Confirming safe passage to $TO. All squads, you're free to advance. + + + Attention, the route to $TO is clear again. Anomalies have subsided. Let's get moving, mercenaries. + + + Dushman here. We've got the green light to $TO. No more anomalies. Safe travels. + + + All units, this is Dushman. The Zone has cleared the way to $TO. Proceed with your operations. + + + + + Uhm, guys? Looks like our road from $FROM to $TO was cut off during the last emission. Pals are taking too long for the raid... + + + Boys, we got issues. Our route to $TO from $FROM has a bunch of goddamn $ANOM_THEME anomalies. What the hell? + + + Hey, Freedom! Anyone else noticed the Zone's blocked the road to $TO with anomalies? Guess we're stuck. + + + So, who's tried getting to $TO recently? Anomalies are all over the place. Might have to wait it out. + + + The Zone's acting up again. Can't get to $TO because of all the god damned $ANOM_THEME anomalies. + + + Looks like $TO is off-limits for now. Anomalies are everywhere, damn Zone won't let us through. + + + The path to $TO is blocked by $ANOM_THEME anomalies. Let's hold position until the Zone clears up. + + + + + Uhm, people? It looks like the road between $FROM to $TO was opened during the recent emission. They have brought drug supplies faster than usual... + + + Freedom fighters, the Zone's given us a break. The way to $TO is clear, no more anomalies. + + + Hey, $TO is back on the map. The anomalies cleared out, so let's move. + + + $SENDER_NAME here, the path to $TO is open. Anomalies are gone, so let's get going. + + + Good news, comrades. The road to $TO is safe again, no more anomalies in sight. + + + The Zone's cleared up. The way to $TO is open, so time to make some moves. + + + + + Lukash here. Freedom fighters, avoid the path from $FROM to $TO, it's filled with $ANOM_THEME anomalies. + + + Hey Freedom, it's Lukash. The Zone's thrown $ANOM_THEME anomalies all over the route to $TO. Stay put for now. + + + Listen up, Freedom. Reports confirm that $FROM to $TO is blocked by $ANOM_THEME anomalies. Don't take any risks. + + + Lukash here, comrades. The road to $TO is a deathtrap with $ANOM_THEME anomalies. Hold back. + + + Freedom fighters, steer clear of $TO. Anomalous activity detected. Stay safe out there. + + + Heads up, it's Lukash. $TO is crawling with $ANOM_THEME anomalies. Let's wait this one out. + + + + + Good news from Lukash. The path to $TO is clear. No more anomalies to worry about, comrades. + + + Hey Freedom, the Zone's let up. The way to $TO is open again. Move out when ready. + + + Lukash here, the route from $FROM to $TO is clear. Let's make the most of it before the Zone changes its mind. + + + Freedom fighters, $TO is back on the map. Anomalies are gone, time to move! + + + Comrades, $TO is safe again. The Zone has cleared the way. Stay sharp. + + + Path to $TO is open, this is Lukash. Anomalies are no longer a threat. Stay safe. + + + + + Brothers! The Great Monolith decided to prevent unbelievers from walking the route from $FROM to $TO with $ANOM_THEME anomalies. Let's use different ways around as well. + + + Brothers, has the Monolith commanded the path to $TO to be blessed with anomalies? The faithful must seek another way. + + + To all who hear, the Monolith has willed the path to $TO be sealed with anomalies. We shall wait for a sign. + + + The way to $TO was blessed by the great Monolith. Only the chosen ones may pass when the time is right. + + + Our path to $TO is obstructed by the Monolith's will, manifested as anomalies. Stand firm until further guidance. + + + Brothers, the Monolith has sanctified the way to $TO with anomalies. We shall hold our ground and await further signs. + + + + + Brothers! The Great Monolith has heard our pleadings and opened the sacred road between $FROM and $TO again. + + + Brothers, the Monolith has cleared the way to $TO. The anomalies are gone, and our path is revealed. + + + The way to $TO is open, blessed by the Monolith's will. No more anomalies to hinder us. + + + Rejoice, for the Monolith has removed the anomalies from the path to $TO. Proceed with faith. + + + The Monolith has cleared the path to $TO. No more anomalies stand in our way. + + + Brothers, the way to $TO is now clear. The Monolith has guided us through the anomalies. + + + + + Brothers, this is Krolik. The sacred path from $FROM to $TO is blocked by $ANOM_THEME anomalies, ordained by the Monolith. + + + Krolik speaking. The Monolith has blessed the route to $TO with $ANOM_THEME anomalies. Only the faithful shall pass. + + + Brothers, heed my words. $TO is now sealed by the Monolith's will. $ANOM_THEME anomalies guard the way. + + + The Monolith has spoken. The path to $TO is sanctified with anomalies. Wait for further signs. + + + This is Krolik. The way to $TO is blocked by the Monolith's gift of $ANOM_THEME anomalies. Remain patient. + + + Brothers, $TO is off-limits. Anomalies, guided by the Monolith, obstruct the way. + + + + + Krolik here. The Monolith has cleared the path to $TO. Proceed with faith, brothers. + + + The Monolith blesses us. The route to $TO is open again. Anomalies are gone. + + + Brothers, rejoice! The Monolith has removed the anomalies from $TO. Safe passage is granted. + + + Krolik speaking. The way to $TO is now clear. The Monolith guides us forward. + + + The Monolith has opened the path to $TO. Anomalies have dissipated. Move forward. + + + Our path to $TO is clear, brothers. The Monolith has shown us the way. + + + + + Attention to all patrol groups. High $ANOM_THEME anomalous activity on route from $FROM to $TO has been detected, the path is likely inpassable for now. + + + Units in sector C-17 be advised of $ANOM_THEME anomalies preventing travel between $FROM and $TO. + + + To all squads in the vicinity. Be advised that we just lost a unit between $FROM and $TO. + + + Operations taking units from $FROM to $TO have been temporarily suspended due to high anomalous activity. + + + All units, the path to $TO is too dangerouse for passage due to $ANOM_THEME anomalies. Do not attempt passage. I repeat: Do not attempt passage. + + + Anyone got a read on the way to $TO? It's blocked by anomalies. Hold your positions. + + + Command to all squads, $TO is unreachable. Anomalies have sealed the path. + + + Attention, the route to $TO is too hazardous to traverse. The Zone's thrown up a wall of anomalies. + + + Is anyone else seeing this? The path to $TO is a no-go. Anomalies everywhere. Hold position. + + + + + Attention to all patrol groups, anomalous activity on route from $FROM to $TO has decreased, the route is passable again. + + + All units, the path to $TO is clear. Anomalies have been cleared, proceed with the mission. + + + $SENDER_NAME to all squads, the route to $TO is open again. Anomalies are no longer a threat. + + + Good news, the road to $TO is clear. The Zone's given us a break, so move out. + + + The path to $TO is open again. Anomalies have cleared, safe to proceed. + + + Attention, all units. The way to $TO is clear. Anomalous activity has ceased, proceed with caution. + + + + + Colonel Kovalski here. All units, be aware: the path from $FROM to $TO is blocked by $ANOM_THEME anomalies. Do not proceed. + + + This is Kovalski. High anomaly presence detected between $FROM and $TO. Maintain your current positions until further instructions. + + + Attention all units, the route to $TO is compromised due to $ANOM_THEME anomalies. Hold back until it's clear. + + + Colonel Kovalski reporting: $ANOM_THEME anomalies are making the path from $FROM to $TO impassable. Stay alert and wait for updates. + + + Military personnel, avoid the route to $TO. Anomalous activity detected. Stand by for further orders. + + + Kovalski here, confirming hazardous conditions on the way to $TO. All units, remain in safe zones. + + + + + Colonel Kovalski to all units. The road from $FROM to $TO is clear again. Anomalies have dissipated. Proceed with caution. + + + Kovalski here. Good news: the route to $TO is safe. Anomalous activity has ceased. + + + Attention all units. The Zone has cleared up around $TO. Safe passage confirmed. + + + This is Kovalski. The anomalies blocking $TO have vanished. Resume your missions. + + + Colonel Kovalski here. $TO is open. No more anomalies detected. Proceed with operations. + + + Military command to all squads: The route to $TO is clear. Move out. + + diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone.xml b/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone.xml new file mode 100644 index 000000000..7059be3ac --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone.xml @@ -0,0 +1,12 @@ + + + + опаÑно + + + Разведан + + + Этот путь может быть Ñлишком опаÑным.. Похоже придётÑÑ Ð½Ð°Ð¹Ñ‚Ð¸ обходной путь. + + diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone_mcm.xml b/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone_mcm.xml new file mode 100644 index 000000000..7eb3bb89b --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone_mcm.xml @@ -0,0 +1,198 @@ + + + + + + Dynamic Zone + + + + + Îñíîâíûå + + + Íîâîñòè + + + Ðàçâåäêà + + + Îòëàäêà + + + + + + Dynamic Zone : Îñíîâíûå íàñòðîéêè + + + + Øàíñ íåïðîõîäèìîñòè ìàðøðóòà + + + Øàíñ ìàðøðóòà ñòàòü íåïðîõîäèìûì ïðè èçìåíåíèè Çîíû + + + + Øàíñ èçìåíåíèÿ Çîíû + + + Øàíñ òîãî, ÷òî Çîíà íåìíîãî èçìåíèòñÿ ïîñëå âûáðîñà. + + + + Âêëþ÷èòü ñëîæíûé ðåæèì + + + Åñëè âêëþ÷åíî, ëîêàöèÿ ìîæåò áûòü ïîëíîñòüþ îòðåçàíà àíîìàëèÿìè îò äðóãèõ. + + + + Ìèíèìàëüíîå Êîëè÷åñòâî Ìàðøðóòîâ + + + Ñêîëüêî ìàðøðóòîâ äîëæíû îñòàâàòüñÿ ïðîõîäèìûìè íà êàæäîì óðîâíå (Íå ðàáîòàåò ïðè âêëþ÷¸ííîì ñëîæíîì ðåæèìå). + + + + Èçìåíåíèå Çîíû íà Íîâîé Èãðå + + + Îïöèÿ ñäåëàåò íåêîòîðûå ìàðøðóòû íåïðîõîäèìûìè óæå â íà÷àëå èãðû. + + + + Âðåìÿ íåèçìåííîñòè çîíû ïðè Íîâîé Èãðå (÷àñ) + + + Ïðè Íîâîé Èãðå, Çîíà íå áóäåò èçìåíÿòüñÿ âûáðàííîå êîëè÷åñòâî èãðîâûõ ÷àñîâ. Íå ðàáîòàåò ñ "Èçìåíåíèå Çîíû íà Íîâîé Èãðå" + + + + Ñòàäèÿ Âûáðîñà + + + Ñòàäèÿ âûáðîñà, íà êîòîðîé ìåíÿåòñÿ Çîíà + + + + Óäàð + + + Ïåðâàÿ Âîëíà + + + Âòîðàÿ Âîëíà + + + Çåìëåòðÿñåíèå + + + + + Dynamic Zone : Íîâîñòè + + + + Ìåæäó âûáðîñàìè, ñòàëêåðû áóäóò äåëèòüñÿ ñâîèìè íàõîäêàìè â ñåòè ÊÏÊ î òîì, êàêèå ìàðøðóòû áûëè ïåðåêðûòû èëè âíîâü áûëè îòêðûòû.\nÂû ìîæåòå èçìåíèòü çäåñü ïðîöåíò çàäåéñòâîâàííûõ äëÿ îòêðûòèÿ èíôîðìàöèè ìàðøðóòîâ.\n íåêîòîðûõ ñëó÷àÿõ è êîíêðåòíîì øàíñå, îñîáûé ïåðñîíàæ, âðîäå Ñèäîðîâè÷à, ìîæåò òàê æå ïðîêîììåíòèðîâàòü èçìåíåíèÿ â ìàðøðóòàõ. + + + + Øàíñ êîììåíòèðîâàíèÿ íåäàâíî îòêðûâøåãîñÿ ìàðøðóòà â íîâîñòÿõ + + + Ñêîëüêî ìàðøðóòîâ, êîòîðûå îòêðûëèñü ïîñëå âûáðîñà áóäóò îñâåùåíû â ñòàëêåðñêîé ñåòè. + + + + Øàíñ êîììåíòèðîâàíèÿ íåäàâíî ïåðåêðûòîãî ìàðøðóòà â íîâîñòÿõ + + + Ñêîëüêî ìàðøðóòîâ, êîòîðûå çàêðûëèñü ïîñëå âûáðîñà áóäóò îñâåùåíû â ñòàëêåðñêîé ñåòè. + + + + Øàíñ êîììåíòèðîâàíèÿ èçìåíåíèé îñîáûì ïåðñîíàæåì + + + Øàíñ, ñ êîòîðûì îñîáûé ïåðñîíàæ ïðîêîììåíòèðóåò èçìåíåíèÿ â Çîíå (íàïðèìåð, Ñèäîðîâè÷). + + + + + Dynamic Zone : Ðàçâåäêà + + + + Âðåìÿ ïîêàçà ñîîáùåíèÿ î ðàçâåäêå ìàðøðóòà + + + + (Óñòàðåëî) Ðàññòîÿíèå äëÿ ðàçâåäêè + + + + Ìèíèìàëüíîå ðàññòîÿíèå äëÿ ðàçâåäêè áèíîêëåì + + + Îáíîâëÿåò èíôîðìàöèþ î ñòàòóñå ìàðøðóòà, íà êîòîðûé èãðîê ñìîòðèò ÷åðåç áèíîêëü, åñëè òîò áëèæå ÷åì ýòî çíà÷åíèå. + + + + Ïîäïèñûâàòü íåäàâíî ðàçâåäàííûå ïåðåõîäû íà êàðòå + + + Ïåðåõîäû, èíôîðìàöèÿ î êîòîðûõ áûëà íåäàâíî ïîëó÷åíà, ïîäïèñûâàþòñÿ ñîîòâåòñòâåííî. Ýòè ïîäïèñè óäàëÿþòñÿ ïîñëå êàæäîãî âûáðîñà. Èãðîêàì, êîòîðûå õîòÿò ñëåäèòü çà èçìåíåíèÿìè ñàìîñòîÿòåëüíî, ëó÷øå îòêëþ÷èòü ýòó ôóíêöèþ. + + + + Âðåìÿ ðàçâåäêè áèíîêëåì (ìèëëèñåêóíäû) + + + Âðåìÿ ðàçâåäêè áèíîêëåì äîñòóïíîãî ìàðøðóòà, ÷òîáû îáíîâèòü èíôîðìàöèþ î í¸ì. + + + + Âêëþ÷èòü îòîáðàæåíèå ìàðêåðîâ ïåðåõîäîâ ïðè èñïîëüçîâàíèè áèíîêëÿ + + + Îïöèÿ áóäåò ïîêàçûâàòü ìàðêåð â 3D ïðîñòðàíñòâå íàä äîñòóïíûìè äëÿ ðàçâåäêè ïåðåõîäàìè íà òåêóùåé ëîêàöèè. + + + + Äèñòàíöèÿ äëÿ îòîáðàæåíèÿ ìàðêåðîâ + + + Ïåðåõîäû äàëüøå ýòîãî çíà÷åíèÿ íå áóäóò ïîìå÷åíû íà ýêðàíå. + + + + + Dynamic Zone : Îòëàäêà + + + + Îïöèè ýòîé êàòåãîðèè ðàññ÷èòàíû òîëüêî íà îòëàäî÷íîå èñïîëüçîâàíèå.\nËîãè MCM çàïèñûâàþòñÿ â 'appdata\logs\mcm' è íà÷èíàþòñÿ ñ 'dynamic_zone_debug'\n×òîáû ýòî ðàáîòàëî, óòèëèòà êîíñîëè MCM äîëæíà áûòü âêëþ÷åíà à íàñòðîéêàõ ñàìîãî MCM. + + + + Âðåìÿ ïðîâåðêè âûáðîñà (ìñ) + + + Èíòåðâàë ìåæäó ïðîâåðêàìè ñòàäèé âûáðîñà. Ðàáîòàåò òîëüêî â òå÷åíèå âûáðîñà. + + + + Âêëþ÷èòü îòëàäî÷íîå âåäåíèå êîíñîëè + + + Èñïîëüçóåò êîíñîëü MCM. Èñïîëüçóåò îáû÷íóþ êîíñîëü ïðè îòñóòâñòâèè MCM. + + + + Ïðîâåðÿòü ïàðàìåòðû ôóíêöèé + + + Îïöèÿ áóäåò ïðîâåðÿòü ïàðàìåòðû ôóíêöèé íà íóëåâûå çíà÷åíèÿ âî âñåõ ñêðèïòàõ ìîäèôèêàöèè. + + diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone_news.xml b/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone_news.xml new file mode 100644 index 000000000..ebdf0eca9 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/text/rus/st_dynzone_news.xml @@ -0,0 +1,801 @@ + + + + + + + Ïîñòóïèëà èíôîðìàöèÿ î ìàðøðóòå ìåæäó $FROM è $TO. Ïî ïîñëåäíèì äàííûì, $ANOM_THEME àíîìàëèè ïðåãðàæäàþò ïóòü. Åñòü ñìûñë ïåðåæäàòü äàííîå ÿâëåíèå. + + + Òîëüêî ÷òî óçíàë, äîðîãà èç $FROM â $TO ñíîâà îòêðûòà. Ïîñëåäíèé âûáðîñ ïðîø¸ë íå çðÿ. + + + + + îãíåííûå + + + êèñëîòíûå + + + ýëåêòðè÷åñêèå + + + ãðàâèòàöèîííûå + + + + + Ñòàëêåðû, íà ïóòè ìåæäó $FROM è $TO $ANOM_THEME àíîìàëèè. Ïðîñòî èíôîðìèðóþ. + + + Ýé, ÷òî ñëó÷èëîñü ñ äîðîãîé ñ $FROM íà $TO? Âñ¸ áûëî íîðìàëüíî äî ïîñëåäíåãî âûáðîñà, íî òåïåðü èäòè ÷åðåç ýòè $ANOM_THEME àíîìàëèè - ïðàêòè÷åñêè ñàìîóáèéñòâî. + + + Äåðüìî, ÿ ÷óòü íå íàïîðîëñÿ íà $ANOM_THEME àíîìàëèè íà ïóòè íà $TO. Ïîñòàðàéòåñü íå õîäèòü òóäà äî ñëåäóþùåãî âûáðîñà. + + + Èùó ïðîâîäíèêà, êîòîðûé ñìîæåò îòâåñòè ìåíÿ â ìåñòî, èçâåñòíîå ïîä íàçâàíèåì $TO. Ïåðåäâèæåíèå ïî èçâåñòíîìó ìàðøðóòó ñëèøêîì îïàñíî: ñ ïîñëåäíåãî âûáðîñà íà ïóòè $ANOM_THEME àíîìàëèè. + + + Çäàðîâà, êòî-íèáóäü çíàåò, ìîæíî ëè ñåé÷àñ ïðîéòè íà $TO? ß ñëûøàë, ÷òî òàì $ANOM_THEME àíîìàëèè. + + + Äëÿ âñåõ íàïðàâëÿþùèõñÿ íà $TO. Çäåñü êòî-òî ðàñêèäàë $ANOM_THEME àíîìàëèè. + + + Êòî-òî åù¸ ïûòàëñÿ ïîïàñòü íà $TO? $ANOM_THEME àíîìàëèè ñäåëàëè ýòî ïðàêòè÷åñêè íåâîçìîæíûì. Ïîõîäó ìû íàäîëãî çàñòðÿëè. + + + Ïîõîæå, $TO ïîêà-÷òî íàì íå ñâåòèò, òîâàðèùè. Äîðîãà ïåðåêðûòà àíîìàëèÿìè. Ïðèä¸òñÿ íàì ïåðåæäàòü. + + + $TO âíå çîíû äîñòóïà, ïîâñþäó àíîìàëèè. Æä¸ì, ïîêà ýòî íå ñòàíåò áåçîïàñíî. + + + + + Ñòàëêåðû, ïóòü ñ $FROM íà $TO ñíîâà ÷èñò. Ïðîñòî èíôîðìèðóþ âàñ, ïàðíè. + + + Îòëè÷íûå íîâîñòè, òîâàðèùè! Äîðîãà íà $TO ñíîâà îòêðûòà. Àíîìàëèé áîëüøå íåò, ïîðà äâèãàòüñÿ. + + + Ýé, íàðîä, íà $TO òåïåðü ìîæíî îòíîñèòåëüíî áåçîïàñíî ïîïàñòü. Çîíà ðàñ÷èñòèëà àíîìàëèè. + + + Äîðîãà íà $TO îòêðûòà. Àíîìàëèé íåò, ñîáèðàåìñÿ è âûõîäèì. + + + Ïîõîæå ìû íàêîíåö ñìîæåì èäòè íà $TO. Ïóòü ÷èñò, íî áóäüòå íà÷åêó. + + + $TO ñíîâà â ðàñïèñàíèè, òîâàðèùè. Àíîìàëèé áîëüøå íåò, èäòè áåçîïàñíî. + + + + + $SENDER_NAME íà ñâÿçè, ñìîòðèòå ïîä íîãè, ïîêà èäåòå ñ $FROM íà $TO, ïîëó÷èë èíôîðìàöèþ ÷òî ïóòü ïåðåêðûëè $ANOM_THEME àíîìàëèè. + + + $SENDER_NAME ó àïïàðàòà, íå óòðóæäàéòåñü ïåðåõîäîì ñ $FROM íà $TO, îäèí èç êóðüåðîâ íåäàâíî âåðíóëñÿ è ïðèí¸ñ âåñòü, ÷òî $ANOM_THEME àíîìàëèè ïåðåêðûëè ïóòü. + + + $SENDER_NAME íà ëèíèè, õîäèò ñëóõ, ÷òî $ANOM_THEME àíîìàëèè çàêðûëè ïðîõîä ñ $FROM íà $TO, íå íàäî ãåðîéñòâîâàòü: âû íå ïðîéä¸òå. + + + Ãîâîðèò $SENDER_NAME, íîâè÷êè, íàïðàâëÿâøèåñÿ íà $TO, ñèëüíî çàäåðæèâàþòñÿ. Áóäüòå îñòîðîæíû. + + + Ñòàëêåðû, áóäüòå îñòîðîæíû íà ïóòè â $TO. Îäèí èç êóðüåðîâ áûë âûíóæäåí âåðíóòüñÿ èç-çà òîãî, ÷òî $ANOM_THEME ìåøàþò ïðîõîäó. + + + Ýòî $SENDER_NAME, ïîãîâàðèâàþò, îäèí èç äðóçåé Âîëêà çàñòðÿë íà $TO, ñêîðåå âñåãî íå ìîæåò âåðíóòüñÿ èç-çà âûñîêîé àíîìàëüíîé àêòèâíîñòè. Áóäüòå î÷åíü îñòîðîæíû. + + + Íà ñâÿçè $SENDER_NAME, ìåñòíûå òåõíàðè ïåðåõâàòèëè âîåííóþ ðàäèîïåðåäà÷ó, ïîõîæå $ANOM_THEME àíîìàëèè îòðåçàëè $FROM îò $TO. + + + $SENDER_NAME ãîâîðèò, ïóòü íà $TO ïåðåêðûëè $ANOM_THEME àíîìàëèè. ß áû íå ñîâåòîâàë òóäà ñåé÷àñ èäòè. + + + Êòî ìîæåò ïîäòâåðäèòü, ÷òî $ANOM_THEME àíîìàëèè ñêîíöåíòðèðîâàëèñü ïîïåð¸ê ïóòè íà $TO? Êòî-òî èç íîâè÷êîâ áîëòàë îá ýòîì. + + + Ïîõîæå ÷òî äîðîãà íà $TO òåïåðü ñìåðòåëüíî îïàñíà, $ANOM_THEME àíîìàëèè çàïîëîíèëè å¸. Áóäüòå íà÷åêó ïîêà ïóòü ïåðåêðûò. + + + Ïóòü íà $TO íåáåçîïàñåí, ïîâñþäó àíîìàëèè. Ëó÷øå âàì ïîêà ÷òî çàòàèòüñÿ. + + + Äîðîãà íà $TO ñíîâà çàêðûòà. ׸ðòîâà Çîíà îïÿòü ìåøàåò áèçíåñó. + + + + + Âíèìàíèå âñåì íîâè÷êàì. Àíîìàëèè íà ïóòè ìåæäó $FROM è $TO èñ÷åçëè âî âðåìÿ ïîñëåäíåãî âûáðîñà. Ìîæåòå âîçâðàùàòüñÿ íà ïðèâû÷íûå ìàðøðóòû. + + + Îòëè÷íûå íîâîñòè äëÿ âàñ, ñòàëêåðû. Ïóòü íà $TO ñíîâà îòêðûò. Íèêàêèõ áîëüøå àíîìàëèé, ìîæåòå âûäâèãàòüñÿ. + + + Ýòî $SENDER_NAME, èíôîðìèðóþ âàñ, ÷òî äîðîãà íà $TO îòêðûòà. Ïîñëåäíèé âûáðîñ ðàñ÷èñòèë äîðîãó. + + + Ïîõîæå äîðîãà íà $TO âíîâü áåçîïàñíî. Õîòü àíîìàëèé áîëüøå íåò, íå òåðÿéòå áäèòåëüíîñòè, íîâè÷êè. + + + Äîðîãà íà $TO ñíîâà îòêðûòà. Àíîìàëèè ðàññåÿëèñü, èäòè áåçîïàñíî. + + + $SENDER_NAME íà ñâÿçè, ïîäòâåðæäàþ: ïóòü íà $TO îòêðûò. Çîíà íàêîíåö-òî äà¸ò âàì õîòü êàêîé-òî øàíñ. + + + + + + Àó ïàöàíû, ñëóõàéòå. Ìû òèïà áîëüøå íå ìîæåì ïîïàñòü èç $FROM íà $TO, çäåñü ìíîãî ýòèõ, êàê îíè òàì, $ANOM_THEME õåðíè êîðî÷å. + + + Àë¸, çûðüòå ïîä íîãè áðàòâà! Çîíà ðàçâàëèëà $ANOM_THEME àíîìàëèè ïî âñåé äîðîãå ñ $TO íà $FROM! + + + Õàõàõà! Ñìîòðèòå, ýòîò ôðàåð íå ìîæåò ïðîéòè ÷åðåç ýòè $ANOM_THEME àíîìàëèè ìåæäó $TO è $FROM! Ìîæåò îùèïàåì ïåòóøàðó? + + + Íó øî ïàöàíû, äåëàåì ñòàâêè êòî èç ôðàåðîâ ïîäîõíåò, ïîêà èä¸ò ÷åðåç ýòè $ANOM_THEME àíîìàëèè èç $FROM íà $TO? + + + Ýé ïàöàíû, ïàðà íàøèõ ïàöàíîâ òîëüêî ÷òî âèäàëè $ANOM_THEME õðåíîâèíû íà ïóòè èç $FROM íà $TO, ÿ äóìàþ ïîáðåí÷èì äî ñëåäóþùåãî âûáðîñà, ïåðåä òåì êàê êóäà íèáóäü ñîáèðàòüñÿ. + + + Ýé, íàðîä! Êòî òî âèäåë õåðíþ íà ïóòè ê $TO? $ANOM_THEME àíîìàëèè òóòà ïîâñþäó, òèïà Çîíà íàñ ãðîõíóòü çàõîòåëà. + + + ׸ çà õåðíÿ òâîðèòñÿ? Äîðîãà íà $TO êàê ìèííîå ïîëå ãðåáàíîå, ýòè $ANOM_THEME àíîìàëèè ìëÿ. Íå íó íåáåçîïàñíî, íèõðåíà ìëÿ. + + + Íà $TO? À, óäà÷è ñ ýòèì. Ýòè $ANOM_THEME àíîìàëèè êàê ãðèáû ïîñëå äîæäÿ, ìëÿ. + + + Àë¸, åñòü êòî æèâîé ïàöàíû? Òóò íà ïóòè â $TO äîõåðà àíîìàëèé. Íå ïîäæàðüòåñü, áðàòâà. + + + Íó è êòî îïÿòü ïîñëàë Çîíó íàõåð ïðî ñåáÿ? Îíà âñ¸ óñëûøàëà! Êòî òóò ñàìûé óìíûé áëèí? Äîðîãà íà $TO îïÿòü âñÿ ýòîé õåðí¸é ïîêðûëàñü. + + + + + Àóå, ïàöàíû. Ñëóøàéòå, ôðàåðà ñíîâà õîäÿò ñ $FROM íà $TO, âðåìÿ íàíåñòè âèçèò, òàê ñêàçàòü, ïàöàíû. + + + Àó, áðàòâà! Äîðîãà íà $TO ñíîâà ÷èñòàÿ. Ïîäîðâàëè ïàöàíû, ïîñìîòðèì øî òàì îñòàëîñü ïîñëå àíîìàëåê. + + + Ïîõîäó àíîìàëèè ðàññûïàëèñü, áðàòâà. Ïîðà ñíîâà âàëèòü íà $TO. + + + Çäàðîâà, àõðåíåííûå íîâîñòè! $TO ó íàñ ñíîâà â ïëàíàõ. Àíîìàëèè êàê ðóêîé ñíÿëè, ÷¸ æä¸ì ïàöàíû? + + + Äîæäàëèñü, äîðîæêà íà $TO ÷èñòà. Áîëüøå íå æàðèìñÿ â ýòèõ àíîìàëèÿõ, áðàòâà. Ïîðà èäòè. + + + Êòî òàì ñîáèðàëñÿ íà $TO, áðàòâà? Ñäà¸òñÿ ìíå, ýòè $ANOM_THEME àíîìàëèè ïðîïàëè ïîñëå âûáðîñà. + + + + + Ñóëòàí íà ñâÿçè, ñëóøàéòå áðàòâà. Çîíà çàâàëèëà ïóòü íà $TO, ðàñêèäàâ $ANOM_THEME àíîìàëèè. Áðàòâà, ïîáåðåãèòåñü. + + + Àó áðàòâà, ñ $FROM íà $TO òåïåðü íå ïðîéòè. Ïîâñþäó àíîìàëèè. Ïóñêàé ïðèäóðêè ðàñ÷èùàþò íàì äîðîãó. + + + Ñóëòàí âåùàåò. $TO ïîä çàïðåòîì, $ANOM_THEME àíîìàëèè ïåðåêðûëè ïóòü. Ïåðåæä¸ì, áðàòâà. + + + Ñëóøàéòå, áðèãàäà. Ýòè $ANOM_THEME àíîìàëèè ïåðåêðûëè äîðîãó íà $TO. Áàçàðèì íà ìåñòàõ, ïàöàíû. + + + Ñóëòàí çäåñü. $TO ñåé÷àñ ì¸ðòâàÿ çîíà. Ïîâñþäó àíîìàëèè. Ñèäèì íà æîïå ðîâíî, áðàòâà. + + + Çàáóäüòå ïðî $TO, áðàòâà. $ANOM_THEME àíîìàëèè áîëüíî îïàñíûå íûí÷å. Îáîæä¸ì ïåðåìåí, ïàöàíû. + + + + + Õîðîøèå íîâîñòè îò Ñóëòàíà. Äîðîãà íà $TO ðàñ÷èñòèëàñü. Ïîäíèìàåì çàäíèöû è ïåðâûìè òóäà. + + + Ñëóøàé, áðèãàäà, àíîìàëèè ðàññåÿëèñü. $TO ñíîâà ïîäõîäèèò äëÿ âåäåíèÿ äåë. Âûäâèãàéòåñü. + + + Ñóëòàí ãîâîðèò. Çîíó îòïóñòèëî. Äîðîãà íà $TO áåçîïàñíî. Âðóáàåìñÿ, áðàòâà. + + + Ýé áðàòâà, $TO ñíîâà â èãðå. Íèêàêèå $ANOM_THEME àíîìàëèè áîëüøå íå ìåøàþò íàì. Ïîðà ðóáèòü áàáêè. + + + Ñóëòàí íà ñâÿçè. Äîðîãà íà $TO ÷èñòà. Äàâàéòå ïî áûðîìó, áðàòâà, ïîêà Çîíà íå ïåðåäóìàëà. + + + Íó âñ¸, ïàöàíû. Äîðîãà íà $TO òåïåðü áåçîïàñíà. Áîëüøå àíîìàëèé íåò. Èäèòå æèâî. + + + + + Ñîîáùàþ âñåì îòðÿäàì îá àíîìàëüíîé àêòèâíîñòè íà ìàðøðóòå ìåæäó ñåêòîðàìè $FROM è $TO. Ïåðåäâèæåíèå ïî ýòîìó ïóòè áóäåò íåâîçìîæíî â áëèæàéøåå âðåìÿ. Çäåñü ïîÿâèëèñü $ANOM_THEME àíîìàëèè. + + + $SENDER_NAME äîêëàäûâàåò, ñåé÷àñ ïåðåõîä ñ $FROM íà $TO ïðåãðàæäàþò $ANOM_THEME àíîìàëèè, ëó÷øå íå ðèñêîâàòü. + + + Ýé, ñìîòðèòå ïîä íîãè, êîãäà èäåò¸ ñ $TO íà $FROM. Çäåñü ìíîæåñòâî àíîìàëèé! + + + Ãîâîðèò $SENDER_NAME, ñåé÷àñ ïîïàñòü ñ $FROM íà $TO íåâîçìîæíî, òîëüêî ÷òî òàì îáíàðóæåíû $ANOM_THEME àíîìàëèè. + + + Áóäüòå îñòîðîæíû íà ïóòè ìåæäó $TO è $FROM. Çäåñü ïîâñþäó $ANOM_THEME àíîìàëèè. + + + Ïîëêîâíèê Ïåòðåíêî ïðèêàçàë ìíå ñîîáùèòü âñåì, ÷òî ïóòü ìåæäó $FROM è $TO ñåé÷àñ íåáåçîïàñåí: íà ïóòè $ANOM_THEME àíîìàëèè. Îæèäàéòå ñëåäóþùåãî âûáðîñà äëÿ ïðîäîëæåíèÿ äåéñòâèé. + + + Âñåì îòðÿäàì, ïóòü íà $TO ïåðåêðûëè $ANOM_THEME àíîìàëèè. Ïðîäâèãàéòåñü îñòîðîæíî èëè íå âîîáùå íå äâèãàéòåñü. + + + $SENDER_NAME íà ñâÿçè. Êòî íèáóäü íàïðàâëÿåòñÿ íà $TO? Ýòè $ANOM_THEME àíîìàëèè ïåðåêðûëè âñþ äîðîãó. + + + Ïîäòâåðæäàþ, ÷òî ïóòü íà $TO ñåé÷àñ ñëèøêîì îïàñåí äëÿ ïåðåäâèæåíèÿ: $ANOM_THEME àíîìàëèè. Íèêòî íå ïðîéä¸ò ïîêà îíè íå ðàññåþòñÿ. + + + Îïÿòü Çîíà øàëèò; $TO ñåé÷àñ âíå äîñÿãàåìîñòè èç-çà âûñîêîé àíîìàëüíîé àêòèâíîñòè. Óäåðæèâàéòå ïîçèöèè äî ñëåäóþùèõ ñîîáùåíèé. + + + $SENDER_NAME âñåì îòðÿäàì, ïóòü íà $TO ïåðåðåçàí àíîìàëèÿìè. Ñòîéòå ñìèðíî ïîêà íå ïîñòóïèò èíôîðìàöèÿ î áåçîïàñíûõ ìàðøðóòàõ. + + + + + Ñîîáùàþ âñåì îòðÿäàì î ïàäåíèè àíîìàëüíîé àêòèâíîñòè íà ìàðøðóòå ìåæäó $FROM è $TO. Òåïåðü ìû ñíîâà ìîæåì õîäèòü â ýòîò ñåêòîð. + + + Âñåì îòðÿäàì, ïóòü íà $TO âíîâü îòêðûò. Àíîìàëüíàÿ àêòèâíîñòü óïàëà, ïðîäâèãàéòåñü ñ îñòîðîæíîñòüþ. + + + $SENDER_NAME íà ñâÿçè. Çîíà âíîâü îòêðûëà ïóòü íà $TO. Âñåì îòðÿäàì, íà÷èíàéòå ïðîäâèæåíèå. + + + Îòëè÷íûå íîâîñòè, ïóòü íà $TO ÷èñò. Àíîìàëèè ðàññåÿëèñü, ïðîäâèãàéòåñü âïåð¸ä. + + + Âíèìàíèå âñåì, ïóòü íà $TO âíîâü áåçîïàñåí. Ãîòîâû âûäâèãàòüñÿ. + + + Äîðîãà íà $TO ñíîâà îòêðûëàñü. Àíîìàëüíàÿ àêòèâíîñòü óïàëà, íî áóäüòå ãîòîâû ê ñòîëêíîâåíèþ ñ ÷åì-òî äðóãèì. + + + + + Ãîâîðèò ïîëêîâíèê Ïåòðåíêî. Âñå îòðÿäû "Äîëãà", íå èñïîëüçóéòå ìàðøðóò ñ $FROM íà $TO. $ANOM_THEME àíîìàëèè ñäåëàëè ïðîõîä íåâîçìîæíûì. + + + Íà ñâÿçè ïîëêîâíèê Ïåòðåíêî. Ìû ïîäòâåðäèëè, ÷òî $ANOM_THEME àíîìàëèè îáðàçîâàëè êðóïíîå ñêîïëåíèå íà ìàðøðóòå ìåæäó $FROM è $TO. Óäåðæèâàéòå ïîçèöèè äî äàëüíåéøèõ óêàçàíèé. + + + Âíèìàíèå îòðÿäàì "Äîëãà", äîðîãó ìåæäó $FROM è $TO çàêðûëè $ANOM_THEME àíîìàëèè. Ðåêîìåíäóþ çàêðåïèòüñÿ íà ïîçèöèÿõ. + + + Äîêëàäûâàåò ïîëêîâíèê Ïåòðåíêî. Àíîìàëüíàÿ àêòèâíîñòü îáíàðóæåíà íà ïóòè ê $TO. Âñåì ïàòðóëÿì, íåìåäëåííî èçìåíèòå ìàðøðóòû. + + + Îòðÿäû, áóäüòå íà÷åêó. Ïîñòóïèëà èíôîðìàöèÿ, ÷òî $ANOM_THEME àíîìàëèè áëîêèðóþò ïóòü ìåæäó $FROM è $TO. Ñîáëþäàéòå îñòîðîæíîñòü ïðè ïðîäâèæåíèè. + + + Íà ñâÿçè øòàá "Äîëãà". Äîðîãà ìåæäó $FROM è $TO ñëèøêîì îïàñíà. Îáíàðóæåíû $ANOM_THEME àíîìàëèè. Äåðæèòå ïîçèöèè. + + + + + Íà ñâÿçè ïîëêîâíèê Ïåòðåíêî. Ïóòü íà $TO ðàñ÷èùåí. Àíîìàëüíàÿ àêòèâíîñòü óïàëà. Âûäâèãàéòåñü, íî íå çàáûâàéòå î ìåðàõ ïðåäîñòîðîæíîñòè. + + + Íà ñâÿçè ïîëêîâíèê Ïåòðåíêî. Ïîäòâåðæäàþ ÷òî ïóòü ñ $FROM íà $TO òåïåðü áåçîïàñåí. Ïîðà âûäâèãàòüñÿ. + + + Îòëè÷íûå íîâîñòè, ñîëäàòû "Äîëãà". Çîíà ðàñ÷èñòèëà ïóòü íà $TO. Àíîìàëèé áîëüøå íåò. + + + Ïîëêîâíèê Ïåòðåíêî âñåì îòðÿäàì: ñåêòîð $TO âíîâü äîñòóïåí. Àíîìàëèè Çîíû ðàññåÿëèñü. Áóäüòå â ïîëíîé áîåâîé ãîòîâíîñòè ïðè âûäâèæåíèè. + + + Âñåì îòðÿäàì "Äîëãà", ìàðøðóò ìåæäó $FROM è $TO îòêðûò. Âîçâðàùàéòåñü ê èñïîëíåíèþ âàøåãî äîëãà. + + + Ãîâîðèò øòàá "Äîëãà", ñîîáùàåì î ïîíèæåíèè àíîìàëüíîé àêòèâíîñòè â ðàéîíå $TO. Ïðîäâèæåíèå áåçîïàñíî. + + + + + Äàæå íå ïûòàéòåñü ïîïàñòü ñ $TO íà $FROM, òîëüêî ÷òî îòòóäà, âåçäå $ANOM_THEME àíîìàëèè, õîäèòü ñëèøêîì îïàñíî. + + + ׸ðò... êòî-íèáóäü ñêàæèòå Ýêîëîãàì ÷òî ïåðåõîä ìåæäó $TO è $FROM ïåðåêðûëè $ANOM_THEME àíîìàëèè. + + + ×òî áû âû íè äåëàëè, íå èäèòå ïî äîðîãå ñ $FROM íà $TO, ïîõîæå, ïóòü ïåðåêðûò àíîìàëèÿìè. + + + Ïðîôåññîð Êàëàí÷à òîëüêî ÷òî ñêàçàë, ÷òî ïî ïîêàçàíèÿì ïðèáîðîâ, ïîñëåäíèé âûáðîñ ïåðåêðûë ïóòü íà $TO. Ìîæåò êòî-íèáóäü ïîäòâåðäèòü? + + + Åñòü êàêèå íîâîñòè ïðî ïóòü íà $TO? Ïîñëåäíèé ðàç ñëûøàë, ÷òî $ANOM_THEME àíîìàëèè áûëè ïîâñþäó. Âîçìîæíî ñòîèò ïåðåæäàòü. + + + $TO ñåé÷àñ âíå ðàñïèñàíèÿ. Ýòè $ANOM_THEME àíîìàëèè çäåñü ïîâñþäó. Ïåðåæä¸ì íà ïîçèöèÿõ ïîêà âñ¸ íå óñòàêàíèòñÿ. + + + Íå ìîæåì äîáðàòüñÿ íà $TO, àíîìàëèè ïðåãðàæäàþò ïóòü. Äåðæèòåñü, ×èñòîå Íåáî. + + + Êòî-íèáóäü õîäèë íà $TO? Ïóòü çàãàäèëè $ANOM_THEME àíîìàëèè. Äåðæèòå ñâîè ïîçèöèè. + + + $SENDER_NAME íà ñâÿçè, äîðîãà íà $TO ñåé÷àñ íîó-ãîó. Ñëèøêîì ìíîãî àíîìàëèé. Íå ïîäíèìàéòå ãîëîâû ïîêà. + + + $SENDER_NAME íà ëèíèè, ìîé îòðÿä ðàçâåäàë äîðîãó íà $TO: ñåé÷àñ òàì ìíîãî àíîìàëèé. Íå èäèòå ïî ýòîìó ïóòè, åñëè æèçíü äîðîãà. + + + + + Ñîîáùàþ âñåì îòðÿäîì îá îòêðûòèè ïóòè ìåæäó $FROM è $TO. Ïîñëåäíèé âûáðîñ ðàñ÷èñòèë àíîìàëèè çäåñü. + + + ×èñòîå Íåáî, ïóòü íà $TO îòêðûò. Àíîìàëèè èñ÷åçëè, íî áóäüòå íàãîòîâå. + + + Òîëüêî ÷òî óçíàë, ïóòü íà $TO ñíîâà ÷èñò. Ïîñëåäíèé âûáðîñ ïðîø¸ë íå çðÿ. + + + $SENDER_NAME íà ñâÿçè. Ïóòü íà $TO îòêðûò, àíîìàëèè ðàññåÿëèñü. + + + Êòî-òî ñîáèðàåòñÿ íà $TO? Ïóòü ÷èñò, íèêàêèõ àíîìàëèé íå âèäíî ïîñëå ïîñëåäíåãî âûáðîñà. + + + Ïîõîæå Çîíà óñïîêîèëàñü. Ïóòü íà $TO òåïåðü áåçîïàñåí, âûäâèãàéòåñü ïîòèõîíüêó. + + + + + Èññëåäîâàòåëüñêàÿ ãðóïïà îáíàðóæèëà $ANOM_THEME àíîìàëüíûå îáðàçîâàíèÿ íà ïóòè ìåæäó $FROM è $TO. Ìû ðåêîìåíäóåì âàì âûáðàòü áåçîïàñíûé îáõîäíîé ìàðøðóò. + + + Èññëåäîâàòåëüñêèå ãðóïïû, ïðèìèòå ê âíèìàíèþ. Ïóòü íà $TO ïåðåêðûëè $ANOM_THEME àíîìàëüíûå îáðàçîâàíèÿ. Ïðîäâèãàéòåñü îñòðîæíî. + + + Ìîæåò êòî-ëèáî ïîäòâåðäèòü àíîìàëüíóþ àêòèâíîñòü îêîëî $TO? Ìû ïîëó÷àåì èíôîðìàöèþ î òîì, ÷òî $ANOM_THEME àíîìàëèè äåëàþò ïåðåõîä íåâîçìîæíûì. + + + Ïîñëå âûáðîñà íà ïóòè ê $TO îáðàçîâàëñÿ àíîìàëüíûé áàðüåð. Èçáåãàéòå äàííîé òåððèòîðèè äî òåõ ïîð, ïîêà áàðüåð íå ðàññååòñÿ. + + + $TO â íàñòîÿùèé ìîìåíò íå äîñòèãíóòü. Ýòè $ANOM_THEME àíîìàëüíûå îáðàçîâàíèÿ íå ïîçâîëÿþò ïðîéòè áåçîïàñíî. + + + Ñàõàðîâ ïîëó÷èë ñâîäêó îò âîåííûõ ïàòðóëåé - ïóòü ìåæäó $FROM è $TO ïåðåãîðîäèëè $ANOM_THEME àíîìàëèè. Âñåì ãðóïïàì ñëåäóåò ïîâåðíóòü, ìû íå ìîæåì òàê ðèñêîâàòü. + + + + + Èññëåäîâàòåëüñêàÿ ãðóïïà çàñåêëà ïàäåíèå àíîìàëüíîé àêòèâíîñòè íà ïóòè ìåæäó $FROM è $TO. Òåïåðü äâèæåíèå ïî ìàðøðóòó áåçîïàñíî. + + + Èññëåäîâàòåëüñêèå ãðóïïû, ïóòü íà $TO òåïåðü ÷èñò. Àíîìàëèè ðàññåÿëèñü, ïðîäâèæåíèå áåçîïàñíî. + + + Âíèìàíèå, ïóòü íà $TO âíîâü îòêðûò. Ïîñëåäíèé âûáðîñ ðàñ÷èñòèë àíîìàëèè. + + + $SENDER_NAME íà ñâÿçè, ïîäòâåðäàþ, ïóòü íà $TO ÷èñò. Àíîìàëüíàÿ àêòèâíîñòü óïàëà äî íîðìàëüíûõ çíà÷åíèé. + + + Ïîõîæå Çîíà óñïîêîèëàñü. Ïóòü íà $TO ñíîâà áåçîïàñåí, áîëüøå àíîìàëèé íåò. + + + Ïóòü íà $TO ÷èñò. Àíîìàëèè ðàññåÿëèñü, áåçîïàñíî ïðîäîëæàòü èññëåäîâàòåëüñêèå ðàáîòû. + + + + + Ïðîôåññîð Ñàõàðîâ íà ñâÿçè. Ìàðøðóò ìåæäó $FROM è $TO çàáëîêèðîâàëè $ANOM_THEME àíîìàëèè. Èçáåãàéòå ýòîé òåððèòîðèè. + + + Ãîâîðèò Ïðîôåññîð Ñàõàðîâ. Ìû îáíàðóæèëè $ANOM_THEME àíîìàëèè â çíà÷èòåëüíûõ êîëè÷åñòâàõ íà ïóòè â $TO. Ïðîäâèãàéòåñü îñòîðîæíî. + + + Ýêîëîãè, ïîæàëóéñòà, ïðèìèòå ê ñâåäåíèþ, ÷òî ìàðøðóò ìåæäó $FROM è $TO îïàñåí: íà í¸ì ïîÿâèëèñü $ANOM_THEME àíîìàëèè. + + + Ïðîôåññîð Ñàõàðîâ âñåì èññëåäîâàòåëüñêèì ãðóïïàì: $TO â íàñòîÿùèé ìîìåíò íåëüçÿ äîñòèãíóòü: $ANOM_THEME àíîìàëèè ïåðåêðûëè ïóòü. Îñòàâàéòåñü íà ïîçèöèÿõ. + + + Âíèìàíèå, ìàðøðóò ìåæäó $FROM è $TO ïåðåêðûëè $ANOM_THEME àíîìàëèè. Ñòàðàéòåñü íàéòè îáõîäíûå ïóòè. + + + Èññëåäîâàòåëüñêèå ãðóïïû, ïðèìèòå ê ñâåäåíèþ, àíîìàëèè ìåøàþò áåçîïàñíîìó ïåðåõîäó íà $TO. Ïðîäâèãàéòåñü ñ îñòîðîæíîñòüþ. + + + + + Ãîâîðèò Ïðîôåññîð Ñàõàðîâ. Ìàðøðóò ìåæäó $FROM è $TO ñíèçèë àíîìàëüíóþ àêòèâíîñòü äî íîðìàëüíûõ çíà÷åíèé. Ïðîäâèæåíèå áåçîïàñíî. + + + Ýêîëîãè, õîðîøèå íîâîñòè. $TO âíîâü ìîæíî ïîñåòèòü. Àíîìàëüíàÿ àêòèâíîñòü ñíèçèëàñü. + + + Ïðîôåññîð Ñàõàðîâ íà ñâÿçè, ïîäòâåðæäàþ, ÷òî ìàðøðóò íà $TO áåçîïàñåí. Àíîìàëèè ðàññåÿëèñü. + + + Çîíà î÷èñòèëàñü. Ïåðåõîä íà $TO òåïåðü áåçîïàñåí äëÿ âñåõ èññëåäîâàòåëüñêèõ ãðóïï. + + + Ïðîôåññîð Ñàõàðîâ âñåìó ïåðñîíàëó: êîëè÷åñòâî àíîìàëèé îêîëî $TO çíà÷èòåëüíî ñîêðàòèëîñü. Âîçâðàùàéòåñü ê ñòàíäàðòíûì îïåðàöèÿì. + + + Âíèìàíèþ èññëåäîâàòåëåé, ìàðøðóò íà $TO âíîâü îòêðûò. Áåçîïàñíûõ ïóòåøåñòâèé. + + + + + Íà¸ìíèêè, íàø ÷åëîâåê áûë ðàíåí: $ANOM_THEME àíîìàëèè íà ïóòè èç $FROM â $TO, ê ñâåäåíèþ. + + + Øòàá, ó íàñ ïðîáëåìà. Èçâåñòíûé ìàðøðóò ìåæäó $FROM è $TO íåïðîõîäèì: êëàñòåðèçîâàëèñü $ANOM_THEME àíîìàëèè, äîâåäèòå äî ñâåäåíèÿ îñòàëüíûõ. + + + Òàê, à âîò ýòî èíòåðåñíî. Òóò $ANOM_THEME àíîìàëèè íà ïóòè ìåæäó $FROM è $TO. Îòïðàâüòå îòðÿä íà ðàçâåäêó. + + + Âñåì íà¸ìíèêàì, ïóòü íà $TO ñåé÷àñ òóïèêîâûé. Ìåñòíûå $ANOM_THEME àíîìàëèè ýòî ïðåäîïðåäåëèëè. + + + Íå ìîæåì èäòè íà $TO, Çîíà ñíîâà çàáðîñàëà ïóòü àíîìàëèè. Äåðæèì ïîçèöèè. + + + Êàêîâ ñòàòóñ ïóòè íà $TO? Ýòè $ANOM_THEME àíîìàëèè áûëè òàì íå òàê äàâíî. + + + Çîíà çàêðûëà ïåðåõîä íà $TO àíîìàëèÿìè. Èùåì äðóãîé ïóòü. + + + $SENDER_NAME íà ñâÿçè, ïóòü íà $TO íåïðîõîäèì. Ñëèøêîì ìíîãî àíîìàëèé äëÿ áåçîïàñíîé íàâèãàöèè. + + + + + Íà¸ìíèêè, íàø ðàçâåä÷èê äîëîæèë, ÷òî ìàðøðóò ñ $FROM íà $TO ÷èñò. + + + Âñåì ìåðêàì, ïóòü íà $TO ÷èñò. Àíîìàëèè ðàññåÿëèñü, ïðîäîëæàéòå âûïîëíåíèå. + + + $SENDER_NAME íà ñâÿçè. Äîðîãà íà $TO îòêðûòà, àíîìàëèè áîëüøå íå óãðîçà + + + Âíèìàíèå, ìàðøðóò íà $TO ÷èñò. Âûäâèãàéòåñü, Çîíà äàëà íàì âîçìîæíîñòü. + + + Îòëè÷íûå íîâîñòè, íà¸ìíèêè. Ïóòü íà $TO îòêðûò. Àíîìàëèè áîëüøå íå ïîìåøàþò. + + + Ïóòü â $TO ÷èñò. Àíîìàëèé áîëüøå íåò, ïîøëè-ïîøëè. + + + + + Ýòî Äóøìàí. Ê ñâåäåíèþ íà¸ìíèêîâ: ìàðøðóò ñ $FROM íà $TO ïåðåïîëíèëè $ANOM_THEME àíîìàëèè. Óäåðæèâàéòå ïîçèöèè. + + + Âñåì îòðÿäàì, Äóøìàí íà ñâÿçè. Çîíà ðàçûãðàëàñü. Òå $ANOM_THEME àíîìàëèè çàáëîêèðîâàëè ïóòü íà $TO. Èçáåãàéòå òåððèòîðèè äî äàëüíåéøèõ óêàçàíèé. + + + Îáíîâëåíèå, ìåðêè. Íàøè ðàçâåä÷èêè çàñåêëè $ANOM_THEME àíîìàëèè â áîëüøèõ êîëè÷åñòâàõ ìåæäó $FROM è $TO. Ìû íå ìîæåì ïîçâîëèòü ñåáå ïîòåðè. Áóäüòå íàãîòîâå. + + + Ãîâîðèò Äóøìàí. Èçáåãàéòå ìåñòà $TO. Åãî ïåðåêðûëè $ANOM_THEME àíîìàëèè. Äàâàéòå íå áóäåì òåðÿòü ëþäåé. + + + Âíèìàíèå, íà¸ìíèêè. Ïóòü ìåæäó $FROM è $TO ñëèøêîì îïàñåí: $ANOM_THEME àíîìàëèè. Íàéäèòå àëüòåðíàòèâó. + + + Ýòî Äóøìàí. Ïîäòâåðæäàþ âûñîêóþ àíîìàëüíóþ àêòèâíîñòü îêîëî $TO. Íå äâèãàéòåñü äî ïîëó÷åíèÿ íîâîé èíôîðìàöèè. + + + + + Äóøìàí çäåñü. Àíîìàëèè, ïåðåêðûâàâøèå $TO èñ÷åçëè. Íà¸ìíèêè, ãîòîâû âûäâèãàòüñÿ? + + + Îòëè÷íûå íîâîñòè, ìåðêè. Ïóòü ìåæäó $FROM è $TO îòêðûò. Àíîìàëèè áîëüøå íå óãðîçà. Âûäâèãàéòåñü îñòîðîæíî. + + + Ýòî Äóøìàí. Ïîäòâåðæäàþ áåçîïàñíîñòü ïðîõîäà íà $TO. Âñåì îòðÿäàì, äâèãàéòåñü ïî ãîòîâíîñòè. + + + Âíèìàíèå, ïóòü íà $TO ñíîâà ÷èñò. Àíîìàëèè îòñòóïèëè. Ïîðà äâèãàòüñÿ, íà¸ìíèêè. + + + Äóøìàí íà ñâÿçè. Ó íàñ çåë¸íûé ñâåò íà $TO. Àíîìàëèé íåò. Áåçîïàñíîãî ïåðåõîäà. + + + Âñåì îòðÿäàì, ýòî Äóøìàí. Çîíà ðàñ÷èñòèëà ïóòü íà $TO. Ïðîäîëæàéòå âàøè äåëà. + + + + + Ýì, ãàéñ? Ïîõîæå äîðîæêó ìåæäó $FROM è $TO ïåðåðåçàëî âî âðåìÿ ïîñëåäíåãî âûáðîñà. Ïðèÿòåëè î÷åíü äîëãî íå âîçâðàùàþòñÿ èç ðåéäà... + + + ×óâàêè, ó íàñ ïðîáëåìà. Íàøó äîðîãó ìåæäó $TO è $FROM ïåðåêðûëè ÷¸ðòîâû $ANOM_THEME àíîìàëèè. Øî æ òàêîå, ìýíû? + + + Ýé, "Ñâîáîäà"! Êòî-íèäü åù¸ çàìåòèë, ÷òî Çîíà ïåðåêðûëà äîðîãó íà $TO àíîìàëèÿìè? Ïîõîäó çàñòðÿëè. + + + Íó, êòî íåäàâíî òàì ñîáèðàëñÿ íà $TO? Òóò âåçäå àíîìàëèè. Íàâåðíîå âàì ïðèä¸òñÿ ïîäîæäàòü. + + + Çîíà ÷åãî-òî îïÿòü ðàçûãðàëàñü. Íå ìîæåì ïðîáðàòüñÿ íà $TO, ýòî $ANOM_THEME àíîìàëèè. + + + Ïîõîæå $TO ñåé÷àñ íå â ìîäå. Àíîìàëèè ïîâñþäó, Çîíà íå õî÷åò íàñ ïóñêàòü. + + + Ïóòü íà $TO çàêðûëè $ANOM_THEME àíîìàëèè. Ïîñèäèì, ïîãîäèì ïîêà Çîíà ñàìà íå î÷èñòèòñÿ. + + + + + Ýì, ãàéñ? Ïîõîæå ÷òî äîðîãà ìåæäó $FROM è $TO îòêðûëàñü â ïîñëåäíèé âûáðîñ. Òðàâêó ïîäâåçëè áûñòðåå, ÷åì ÿ îæèäàë... + + + Áîðöû çà "Ñâîáîäó", Çîíà äà¸ò íàì ïåðåðûâ: ïóòü $TO îòêðûò, íèêàêèõ áîëüøå àíîìàëèé. + + + Ýé, $TO âåðíóëàñü íà êàðòû. Àíîìàëèè ðàñ÷èñòèëèñü, ïîðà äâèãàòüñÿ. + + + $SENDER_NAME òóòà, ïóòü íà $TO îòêðûò. Àíîìàëèé áîëüøå íåò, òàê ÷òî ïîãíàëè. + + + Õîðîøèå íîâîñòè, ìýíû. Äîðîãà íà $TO ñíîâà áåçîïàñíà, íèêàêèõ àíîìàëèé íå âèäèì. + + + Çîíà íàñòîëüêî î÷èñòèëàñü, ÷òî ïóòü íà $TO òåïåðü îòêðûò. Âðåìÿ äëÿ òåëîäâèæåíèé, íàðîä. + + + + + Êîìàíäàíòå çäåñü. Áîðöû çà "Ñâîáîäó", ïîñòîðîíèòåñü ïóòè ìåæäó $FROM è $TO, çäåñü âåçäå $ANOM_THEME àíîìàëèè. + + + Ýé "Ñâîáîäà", ýòî Ëóêàø. Çîíà çàêèíóëà $ANOM_THEME àíîìàëèè ïðÿìî íà ïóòü ê $TO. Îñòàíîâèòåñü è îòäîõíèòå, ÷óâàêè. + + + Ïîñëóøàéòå, "Ñâîáîäà". Îò÷¸òû ðàçâåä÷èêîâ ïîäòâåðæàþò, ÷òî ìåæäó $FROM è $TO ñåé÷àñ $ANOM_THEME àíîìàëèè. Íå ðèñêóéòå ñîáîé, ïàðíè. + + + Êîìàíäàíòå Ëóêàø çäåñü, òîâàðèùè. Äîðîãà $TO ñåé÷àñ êàê êàïêàí, âñ¸ ýòè $ANOM_THEME àíîìàëèè. Ïðèäåðæèòå êîíåé. + + + Ñòðàæè "Ñâîáîäû", âåðòàéòå îò $TO. Àíîìàëüíóþ àêòèâíîñòü çàñåêëè. Ïîáåðåãèòåñü. + + + Ïîñëåäíèå íîâîñòè, íà ñâÿçè Ëóêàø. Íà $TO çàïëûëè $ANOM_THEME àíîìàëèè. Ïåðåæä¸ì ýòî. + + + + + Õîðîøèå íîâîñòè îò êîìàíäàíòå. Ïóòü íà $TO ÷èñò. Íå ïåðåæèâàåì îá àíîìàëèÿõ, ìýíû. + + + Ýé "Ñâîáîäà", Çîíó îòïóñòèëî. Ïóòü íà $TO âíîâü îòêðûò. Âûõîäèì ïî ãîòîâíîñòè. + + + Ëóêàø íà ëèíèè, ïóòü ìåæäó $FROM è $TO ÷èñò. Äàâàéòå âîñïîëüçóåìñÿ ýòèì ïî ïîëíîé, ïîêà Çîíà íå ïåðåäóìàëà. + + + Áîðöû çà "Ñâîáîäó", $TO âåðíóëàñü â èãðó. Àíîìàëèé áîëüøå íåò, ïîðà äâèãàòüñÿ! + + + Òîâàðèùè-àíàðõèñòû, õîäèòü íà $TO âíîâü áåçîïàñíî. Çîíà ðàñ÷èñòèëà äîðîãó. Íî áóäüòå ãîòîâû ê ñòû÷êàì. + + + Ïóòü íà $TO îòêðûò, ãîâîðèò Ëóêàø. Àíîìàëèè áîëåå íå ïðåäñòàâëÿþò óãðîçû. Ëèøíèé ðàç íå íàêóðèâàéòåñü. + + + + + Áðàòüÿ! Âåëèêèé Ìîíîëèò ðåøèë âîñïðîòèâèòüñÿ ïóòåøåñòâèÿì íåâåðíûõ ïî òðîïå ìåæäó $FROM è $TO, ïîñåÿâ çäåñü $ANOM_THEME àíîìàëèè. Äàâàéòå æå èñïîëüçîâàòü äðóãèå ñâÿùåííûå òðîïû Çîíû. + + + Áðàòüÿ, Âåëèêèé Ìîíîëèò áëàãîñëîâèë $TO ñâÿùåííûìè àíîìàëèÿìè? Âåðíûé íàéä¸ò èíóþ òðîïó. + + + Âíåìëèòå âñå, Ìîíîëèò ïðèêàçàë çàïå÷àòàòü àíîìàëèÿìè òðîïó íà $TO. Ìû äîëæíû òåðïåëèâî îæèäàòü äàëüíåéøèõ Åãî çíàêîâ. + + + Ñâÿùåííàÿ òðîïà íà $TO áûëà áëàãîñëîâëåíà Âåëèêèì Ìîíîëèòîì. Ëèøü èçáðàííûå ïðîéäóò, êîãäà ïðèä¸ò âðåìÿ. + + + Íàø ïóòü $TO çàáëîêèðîâàí âîëåé Ìîíîëèòà, âûðàæåííîé â àíîìàëèÿõ. Ñòîéòå è áäèòå, ïîêóäà íå ïðèáóäåò ïðîâèäåíèå. + + + Áðàòüÿ, Ìîíîëèò îñâÿòèë ïóòü íà $TO àíîìàëèÿìè. Ìû äîëæíû óäåðæèâàòü åãî ñâÿùåííûå çåìëè è æäàòü Åãî çíàêîâ. + + + + + Áðàòüÿ! Âåëèêèé Ìîíîëèò óñëûøàë ìîëüáû íàøè, è âíîâü îòêðûë äëÿ íàñ ñâÿùåííóþ äîðîãó ìåæäó $FROM è $TO. + + + Áðàòüÿ, Ìîíîëèò î÷èñòèë ïóòü íà $TO. Àíîìàëèé áîëåå íåò, è ïóòü íàø ÿñåí ïðåäåëüíî. + + + Ïóòü íà $TO îòêðûò è áëàãîñëîâëåí âîëåé Ìîíîëèòà. Çäåøíèì àíîìàëèÿì áîëåå íå îñòàíîâèòü íàñ, ñëóã Åãî. + + + Âîçðàäóéòåñü æå òîìó, ÷òî Ìîíîëèò óìèðîòâîðèë àíîìàëèè íà ïóòè ê $TO. Ïîéä¸ìòå æå âåðíûå áðàòüÿ. + + + Ìîíîëèò î÷èñòèë ïóòü íà $TO. Àíîìàëèè áîëåå íå îñòàíîâÿò íàñ. + + + Áðàòüÿ, íàø ïóòü íà $TO òåïåðü ÿñåí. Ìîíîëèò ïðîâ¸ë íàñ ñêâîçü àíîìàëèè. + + + + + Áðàòüÿ, èçâåùàåò âàñ Êðîëèê. Ñâÿùåííûé ïóòü èç $FROM â $TO çàáëîêèðîâàëè $ANOM_THEME àíîìàëèè, íàïðàâëåííûå Ìîíîëèòîì. + + + Êðîëèê âåä¸ò ïðîïîâåäü. Ìîíîëèò áëàãîñëàâèë òðîïó íà $TO, ïîñåÿâ çäåñü $ANOM_THEME àíîìàëèè. Òîëüêî âåðíûå ïðîéäóò çäåñü. + + + Áðàòüÿ, âíèìàéòå ìîèì ñëîâàì. Ïóòü íà $TO îòíûíå çàêðûò âîëåé Ìîíîëèòà. $ANOM_THEME àíîìàëèè ñòåðåãóò äîðîãó îò ñëåïöîâ. + + + Ìîíîëèò çàãîâîðèë ñ íàìè, áðàòüÿ. Ïóòü íà $TO îñâåù¸í àíîìàëèÿìè. Îæèäàéòå Åãî çíàêà. + + + Ýòî Êðîëèê. Ïóòü íà $TO çàïå÷àòàëè $ANOM_THEME àíîìàëèè, ïîäàðåííûå íàì Ìîíîëèòîì. Îñòàâàéòåñü òåðïåëèâû. + + + Áðàòüÿ, $TO áîëåå íå â íàøåé äîñÿãàåìîñòè. Àíîìàëèè, íàïðàâëåííûå ñàìèì Ìîíîëèòîì, çàêðûëè ïóòü. + + + + + Âåùàåò Êðîëèê, áðàòüÿ. Ìîíîëèò î÷èñòèë ïóòü íà $TO. Íàøà âåðà ñèëüíà, áðàòüÿ, âïåð¸ä! + + + Ìîíîëèò áëàãîñëàâëÿåò íàñ. Ïóòü íà $TO âíîâü ÿñåí. Àíîìàëèè óøëè. + + + Âîçðàäóéòåñü, áðàòüÿ! Ìîíîëèò ðàñïóñòèë àíîìàëèè èç $TO. Áåçîïàñíûé ïóòü áûë íàì äàðîâàí. + + + Êðîëèê ïðîïîâåäóåò. Ïóòü íà $TO î÷èùåí è îñâÿù¸í. Ìîíîëèò ÿâëÿåò íàì äîðîãó. + + + Ìîíîëèò îòêðûë òðîïó íà $TO. Àíîìàëèè îòñòóïèëè. Äâèãàéòåñü, áðàòüÿ. + + + Íàø ïóòü íà $TO î÷èùåí, áðàòüÿ. Ìîíîëèò ÿâèë íàì èñòèííóþ òðîïó. + + + + + Âíèìàíèå âñåì ïàòðóëÿì. Íà ìàðøðóòå ìåæäó ñåêòîðàìè $FROM è $TO îáíàðóæåíû $ANOM_THEME àíîìàëèè, áîëüøîå êîëè÷åñòâî, ïóòü íåïðîõîäèì â íàñòîÿùèé ìîìåíò. + + + Âñåì îòðÿäàì â ñåêòîðå: $ANOM_THEME àíîìàëèè áëîêèðóþò äâèæåíèå ìåæäó ñåêòîðàìè $FROM è $TO. + + + Âñåì îòðÿäàì ïîáëèçîñòè.  íàñòîÿùèé ìîìåíò äîðîãà ìåæäó ñåêòîðàìè $FROM è $TO ïåðåêðûòà àíîìàëèÿìè. + + + Îïåðàöèè ïî ïåðåáðîñêå îòðÿäîâ ìåæäó ñåêòîðàìè $FROM è $TO áûëè âðåìåííî ïðèîñòàíîâëåíû èç-çà âûñîêîé àíîìàëüíîé àêòèâíîñòè. + + + Âñåì îòðÿäàì, ïóòü â ñåêòîð $TO ñëèøêîì îïàñåí äëÿ ïåðåõîäà: çäåñü $ANOM_THEME àíîìàëèè. Íå ïûòàéòåñü ïðîéòè ýòèì ìàðøðóòîì. Ïîâòîðÿþ: Íå ïûòàéòåñü ïðîéòè ýòèì ìàðøðóòîì. + + + Êòî-òî íàïðàâëÿåòñÿ â ñåêòîð $TO? Ïóòü ïåðåêðûò àíîìàëèÿìè. Óäåðæèâàéòå ïîçèöèè. + + + Ðàçâåäêà âñåì îòðÿäàì, ñåêòîð $TO íåäîñÿãàåì. Àíîìàëèè çàáëîêèðîâàëè ïóòü. + + + Âíèìàíèå, ïóòü â ñåêòîð $TO ñëèøêîì îïàñåí äëÿ ïåðåõîäà. Çäåñü àíîìàëüíîå çàãðàæäåíèå ïîñëå âûáðîñà. + + + Âñåì îòðÿäàì, êàê ñëûøíî? Ïåðåõîä â ñåêòîð $TO ñåé÷àñ íåâîçìîæåí. Ïîâñþäó àíîìàëèè. Äåðæàòü ïîçèöèè. + + + + + Âíèìàíèå âñåì ïàòðóëÿì, àíîìàëüíàÿ àêòèâíîñòü íà ïóòè ìåæäó ñåêòîðàìè $FROM è $TO ñíèçèëàñü, ïóòü âíîâü ïðîõîäèì. + + + Âñåì îòðÿäàì, ïóòü â ñåêòîð $TO ÷èñò. Àíîìàëèé áîëüøå íåò, ïðîäîëæàéòå èñïîëíåíèå ïðèêàçîâ. + + + $SENDER_NAME âñåì îòðÿäàì, ìàðøðóò â ñåêòîð $TO âíîâü îòêðûò. Àíîìàëèè áîëüøå íå ïðåäñòàâëÿþò óãðîçû. + + + Îòëè÷íûå íîâîñòè, äîðîãà â ñåêòîð $TO âíîâü äîñòóïíà. Âñåì îòðÿäàì: ïðîäîëæàéòå èñïîëíåíèå. + + + Ïóòü â ñåêòîð $TO ñíîâà îòêðûò. Anomalies have cleared, ïðîäâèæåíèå áåçîïàñíî. + + + Âíèìàíèå âñåì îòðÿäàì. Ïóòü â ñåêòîð $TO îòêðûò. Àíîìàëüíàÿ àêòèâíîñòü óïàëà äî íîðìàëüíûõ çíà÷åíèé, ïðîäâèãàéòåñü ñ îñòîðîæíîñòüþ. + + + + + Ãîâîðèò ïîëêîâíèê Êóçíåöîâ. Ê ñâåäåíèþ âñåõ îòðÿäîâ: ïóòü ìåæäó ñåêòîðàìè $FROM è $TO ïåðåêðûëè $ANOM_THEME àíîìàëèè. Îñòàíîâèòü âñå ïåðåìåùåíèÿ ïî ìàðøðóòó. + + + Ýòî ïîëêîâíèê Êóçíåöîâ. Âûñîêàÿ àíîìàëüíàÿ àêòèâíîñòü îáíàðóæåíà ìåæäó ñåêòîðàìè $FROM è $TO. Çàêðåïèòåñü íà òåêóùèõ ïîçèöèÿõ äî äàëüíåéøèõ ïðèêàçîâ. + + + Âíèìàíèå âñåì îòðÿäàì, ïåðåõîä â ñåêòîð $TO ñåé÷àñ íå âîçìîæåí: íà ïóòè $ANOM_THEME àíîìàëèè. Îñòàâàéòåñü íà ìåñòàõ äî ïðîÿñíåíèÿ ñèòóàöèè. + + + Ãîâîðèò ïîëêîâíèê Êóçíåöîâ: $ANOM_THEME àíîìàëèè ïåðåêðûëè ïóòü ìåæäó ñåêòîðàìè $FROM è $TO. Ñòîÿòü íàãîòîâå è îæèäàòü íîâûõ äàííûõ. + + + Âîåííîìó ïåðñîíàëó, èçáåãàéòå ìàðøðóòà â ñåêòîð $TO. Çàôèêñèðîâàíà àíîìàëüíàÿ àêòèâíîñòü. Îæèäàéòå äàëüíåéøèõ èíñòðóêöèé. + + + Íà ñâÿçè ïîëêîâíèê Êóçíåöîâ, ïîäòâåðæäàþ îïàñíîñòü ïåðåìåùåíèÿ ïî ïóòè â ñåêòîð $TO. Âñåì îòðÿäàì, îñòàâàéòåñü â áåçîïàñíûõ çîíàõ. + + + + + Ïîëêîâíèê Êóçíåöîâ âñåì îòðÿäàì. Äîðîãà ìåæäó ñåêòîðàìè $FROM è $TO âíîâü îòêðûòà. Àíîìàëèè ðàññåÿëèñü. Íà÷èíàéòå ïðîäâèæåíèå. + + + Ãîâîðèò ïîëêîâíèê Êóçíåöîâ. Õîðîøèå íîâîñòè: ïóòü â $TO áåçîïàñåí. Àíîìàëüíàÿ àêòèâíîñòü ïðèîñòàíîâèëàñü. + + + Âíèìàíèå âñåì îòðÿäàì.Ñåêòîð $TO ñíîâà äîñòóïåí. Áåçîïàñíûé ïåðåõîä ãàðàíòèðîâàí. + + + Ýòî ïîëêîâíèê Êóçíåöîâ. Àíîìàëèè, ïåðåêðûâàâøèå ïóòü â ñåêòîð $TO èñ÷åçëè. Âîçâðàùàéòåñü ê èñïîëíåíèþ ïðèêàçîâ. + + + Ïîëêîâíèê Êóçíåöîâ íà ñâÿçè. Ñåêòîð $TO îòêðûò. Àíîìàëèè áîëåå íå îáíàðóæåíû. Ïðîäîëæàéòå èñïîëíåíèå. + + + Øòàá âñåìó âîåííîìó ïåðñîíàëó: ïóòü â ñåêòîð $TO ÷èñò. Âûäâèãàéòåñü. + + \ No newline at end of file diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/ui/dzt_ui_elements.xml b/mods/Dynamic Zone Transitions/gamedata/configs/ui/dzt_ui_elements.xml new file mode 100644 index 000000000..9b6c19d88 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/ui/dzt_ui_elements.xml @@ -0,0 +1,7 @@ + + + + dynamic_zone_blip_unknown_state + + + diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/ui/textures_descr/ui_dynamic_zone_mapspots.xml b/mods/Dynamic Zone Transitions/gamedata/configs/ui/textures_descr/ui_dynamic_zone_mapspots.xml new file mode 100644 index 000000000..a97dbc19f --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/ui/textures_descr/ui_dynamic_zone_mapspots.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/mods/Dynamic Zone Transitions/gamedata/configs/unlocalizers/dynamic_zone_teleport_ini.ltx b/mods/Dynamic Zone Transitions/gamedata/configs/unlocalizers/dynamic_zone_teleport_ini.ltx new file mode 100644 index 000000000..9fc5ff221 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/configs/unlocalizers/dynamic_zone_teleport_ini.ltx @@ -0,0 +1,5 @@ +; should prevent the engine from caching another +; instance of this ini used in the main script + +[txr_routes] +sr_teleport_ini diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone.script new file mode 100644 index 000000000..194876757 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone.script @@ -0,0 +1,687 @@ +--[[ + DYNAMIC ZONE + + Original Author(s) + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + + Synopsis + Randomly blocks a portion of unlocked routes throughout the zone + during an emission without modifying space restrictors. + Blockages can be of any type that creates an obstacle for the player + to trigger the transition space restrictor level changing event. + + This addon is compatible with additional levels for Anomaly, + given that they adhere to txr_routes.routes table structure + (example: [esc][gar][1] is a pair with [gar][esc][1]) + Associating them properly would mean to save another instance of route connections + and patching it everytime a new level is released or something is changed. + + This script represents the main entry point of the addon. + + Added Callbacks (In order of being sent) + dynzone_on_before_execute -- Params: () + dynzone_changed_block_state -- Params: (, ) +--]] + +VERSION = 20250102 +VERSION_STRING = "v0.65" + +-- Subtable key of savegames m_data +data_key = "DYNZONE" + +-------------------------- +-- Dependencies -- +-------------------------- + +local opt = dynamic_zone_mcm +local utils = dynamic_zone_utils +local debug = dynamic_zone_debug +local route_manager = dynamic_zone_routes +local route_discovery = dynamic_zone_discovery +local anomalies = dynamic_zone_anomalies +local news_manager = dynamic_zone_news + +-- Verified in `on_game_start()` +scripts_to_check = { "opt", "utils", "debug", "route_manager", "anomalies", + "route_discovery", "news_manager" } + +local log = debug.log_register("info") +local log_error = debug.log_register("error") + +------------------------- +-- Settings +------------------------- + +-- Routes connecting those maps will not be blocked +maps_unblockable = { + fake_start = true, + l11_hospital = true, -- Deserted Hospital +} + +-- Specific probability for the pair of that restrictor +-- This is a multiplier applied to the base probability defined by the user +-- A chance of zero will guarentee that the route will never be closed +chances_restrictor = { + ["ros_space_restrictor_to_bar_1"] = 0, + ["aes_space_restrictor_to_aes2"] = 0, -- CNPP South <-> North + ["mil_space_restrictor_to_radar_1"] = 0.25, -- The Barrier + ["aes_space_restrictor_to_zaton"] = 0.85, + ["rad_space_restrictor_to_pripyat_01"] = 0.75, + ["jup_space_restrictor_to_zaton"] = 0.6, + ["gar_space_restrictor_to_bar_1"] = 0.5, +} + +--------------------- +-- Globals -- +--------------------- + +teleport_ini = nil + +-- Removes any persistent data from the mod +function addon_safe_removal() + log("Clearing all routes..") + + route_discovery.clear_eligible_transitions() + route_discovery.revert_map_spots() + anomalies.release_all_anomalies() + news_manager.clear() + + route_manager.clear() +end + +-- Duplicate of txr_routes.get_route_info(...) +-- Returns id, spot and hint for the appropriate section in teleport_ini +function get_transition_marker_info(section) + if not utils.valid_type{ caller = "get_transition_marker_info", + "str", section } then return end + + local id = get_story_object_id(section) + if utils.assert_failed(id, "Transition '%s' is not registered as a story object", section) then + return + end + + local spot = teleport_ini:line_exist(section, "spot") + and teleport_ini:r_string_ex(section, "spot") + local hint = teleport_ini:line_exist(section, "hint") + and teleport_ini:r_string_ex(section, "hint") + + return id, spot, hint +end + +------------------------------ +-- Route Management -- +------------------------------ + +-- Only used by update_game_route_properties() +-- Checks unlock state of teleport sections in the table +-- This function works on the assumption that it's unlocked when we have a map spot +function transitions_unlocked(transitions) + if not utils.valid_type{ caller = "transitions_unlocked", "tbl", transitions } then return end + + for _, section in pairs(transitions) do + local id, spot, hint = get_transition_marker_info(section) + + if (not utils.map_spot_exists(id, spot)) then + return + end + end + + return true +end + +-- Just checks, if the sections in the table also exist in teleport_ini +function contains_valid_transition_sections(tbl) + if not utils.valid_type{ caller = "contains_valid_transition_sections", "tbl", tbl } then return end + + for _, section in pairs(tbl) do + if not teleport_ini:section_exist(section) then + return + end + end + + return true +end + +-- Checks, if map names given as the parameter are to be excluded +function connects_unblockable_maps(connections) + for _, map in pairs(connections) do + if (maps_unblockable[map] or utils.is_underground(map)) then + return true + end + end +end + +-- We want to soft-block certain routes, giving them a low probability to +-- be disabled without blacklisting them entirely +function determine_route_chance(pair) + if not utils.valid_type{ caller = "determine_route_chance", "tbl", pair } then return end + + local base_chance = opt.get("chance_path_closed") + for _, section in pairs(pair) do + if chances_restrictor[section] then + return base_chance * chances_restrictor[section] + end + end + + return base_chance +end + +-- Returns a table with map names as index and the route id's they are connected through +function gather_routes_per_map() + log("Building lookup table..") + + local routes_per_map = {} + for route_id, route in route_manager.iterate_routes() do + local map_1, map_2 = route.connects[1], route.connects[2] + utils.table_safe_insert(routes_per_map, map_1, route_id, "int") + utils.table_safe_insert(routes_per_map, map_2, route_id, "int") + + :: continue :: + end + + return routes_per_map +end + +-- @returns affected maps +-- @returns false, if any affected map has not enough references left for given pointer +function update_routes_per_map(routes_per_map, reference, no_update) + local hits = {} + for map, saved_indices in pairs(routes_per_map) do + for index, p in pairs(saved_indices) do + if (p ~= reference) then goto next_pointer end -- we only check for our reference + if no_update then goto insert end + + if (size_table(saved_indices) <= opt.get("minimum_map_connections")) then + return + end + + table.remove(routes_per_map[map], index) + + :: insert :: + table.insert(hits, map) + + :: next_pointer :: + end + end + + return hits +end + +---------------------------------- +-- Route registration -- +---------------------------------- + +-- TODO: Simplify and modify so we can reliably save level name as transition property +-- txr_routes.routes[x] will always be the level of the transition +-- Parses txr_routes.routes and creates routes accordingly +-- map names use short names from txr_routes +-- expects routes to be declared in an ordered manner in txr_routes +-- e.g. [esc][gar][1] is a pair with [gar][esc][1] +-- +-- Registers routes via the route manager. +function register_game_routes() + local routes, maps = txr_routes.routes, txr_routes.maps + if not (routes and maps) then return {}, {} end + + -- Just to make sure. Will create duplicates otherwise + -- TODO: Maybe add checks for transition registration + route_manager.clear() + + local map_to_sec = txr_routes.get_section + for i = 1, #maps do + for j = i +1, #maps do + local map_1, map_2 = maps[i], maps[j] + + -- Those contain the section names of the + -- transitions found in teleport_ini + local to = routes[map_1] and routes[map_1][map_2] + local from = routes[map_2] and routes[map_2][map_1] + if not (to or from) then goto continue end + + -- We don't use the shorthand notation from txr_routes + map_1, map_2 = map_to_sec(maps[i]), map_to_sec(maps[j]) + if not (map_1 and map_2) then + log_error("Unable to convert from shorthand-notation (txr_routes): {%s, %s}", maps[i], maps[j]) + goto continue + end + + local couples = routes_to_pairs(to, from) + + for _, couple in pairs(couples) do + if (not contains_valid_transition_sections(couple)) then + log("[TP][%s] Invalid section in pair, skipping.", + table.concat(couple,",")) + goto next_couple + end + + local route_id = route_manager.route_create() + route_manager.transition_table_register(couple, route_id) + + route_manager.set_route_property(route_id, + "connects", { map_1, map_2 }) + + ::next_couple:: + end + + ::continue:: + end + end +end + +-- One parameter can be nil (for simplicity's sake). +-- Returns one table containing all table pairs { {tbl1[1], tbl2[1]]}, .. } +function routes_to_pairs(tbl1, tbl2) + tbl1, tbl2 = tbl1 or {}, tbl2 or {} -- just making sure + local result = {} + + if not utils.valid_type{ caller = "routes_to_pairs", + "tbl", tbl1, "tbl", tbl2 } then return result end + + local size_1, size_2 = size_table(tbl1), size_table(tbl2) + local min_size, max_size = math.min(size_1, size_2), math.max(size_1, size_2) + + for i = 1, max_size do + local couple = {} + + table.insert(couple, tbl1[i]) + table.insert(couple, tbl2[i]) + + -- Exception for 1 <-> (x >1) route pairs (e.g. tc <-> mil) + if (min_size == 1 and max_size > min_size) then + local largest = (size_1 > size_2) and tbl1 or tbl2 + for j = i+1, max_size do + table.insert(couple, largest[j]) + end + + table.insert(result, couple) + return result + end + + table.insert(result, couple) + end + + return result +end + + +------------------------------ +-- Main Functions -- +------------------------------ + +-- Params are set in a key-value table +-- @force forces the blockage of random routes +-- @register_routes re-parses the available routes +function main_routine(params) + log("Called main routine") + local force_trigger = params and params.force + local force_register = params and params.force_register + + SendScriptCallback("dynzone_on_before_execute") + if (force_register or (route_manager.route_count() < 1)) then + log("Forced a game route re-registration.") + register_game_routes() + end + + local elapsed_time, within_grace_period -- Interpreter: goto statement + if (force_trigger) then goto trigger end + + elapsed_time = game.get_game_time():diffSec(level.get_start_time()) + within_grace_period = elapsed_time < (opt.get("newgame_grace_period") * 3600) + if (not opt.get("trigger_on_newgame")) and (within_grace_period) then + log("Not triggering. New game delay is %s hours, only %.1f hours elapsed.", + opt.get("newgame_grace_period"), elapsed_time / 3600) + return + end + + if (math.random(0,100) > opt.get("chance_dz_trigger")) then + log("Not triggering. Chance was %s%", opt.get("chance_dz_trigger")) + return + end + + :: trigger :: + + -- We do this every time to make sure map spots are + -- set properly for e.g. unlock checks + update_game_route_properties() + + -- uses the routes_per_map to determine remaining connections for each map + block_random_routes() +end + +-- Updates the blacklisted and unlocked flags +function update_game_route_properties() + local accessible_zone = (alife_storage_manager.get_state().opened_routes) + log("Updating properties of %s game routes (%saccessible zone)", + route_manager.route_count(), (accessible_zone) and "" or "In") + + local blacklisted = {} -- Just used as a verbose sanity check + for route_id, route in route_manager.iterate_routes(true) do + if connects_unblockable_maps(route.connects) then + blacklisted[#blacklisted +1] = route_id + route_manager.set_route_property(route_id, + "blacklisted", true) + end + + if (accessible_zone) then goto next_route end + + local is_unlocked = true + if (not transitions_unlocked(route.members)) then + log("[%s] transitions are locked: {%s}", + route_id, table.concat(route.members, ", ")) + + is_unlocked = false + end + + route_manager.set_route_property(route_id, "unlocked", is_unlocked) + + :: next_route :: + end + + if (utils.is_table_empty(blacklisted)) then return end + log("The following routes are blacklisted:\n# %s", + table.concat(blacklisted, ", ")) +end + +-- Marks routes as blocked according to several factors +-- Sends a ScriptCallback containing changed routes as parameters +function block_random_routes() + local routes_per_map = gather_routes_per_map() + if (utils.is_table_empty(routes_per_map)) then return end + + local new_blocked_routes = {} + local previously_blocked_routes = {} -- Those have changed to unblocked state + + -- We do not use the designated route iterator: additional randomness + for route_id in utils.random_numbered_sequence(1, route_manager.route_count()) do + if (route_manager.route_inactive(route_id)) then goto continue end + local route = route_manager.get_route(route_id) + + local pair = route.members + if (not pair or utils.is_table_empty(pair)) then + log_error("Route #%s has no members!", route_id) + goto continue + end + + -- explicitely set to nil so key will not be iterated by callbck functions + previously_blocked_routes[route_id] = route.blocked or nil + route_manager.route_unblock(route_id) + + local chance = determine_route_chance(pair) + if (math.random(0, 100) > chance) then + goto continue + end + + if (not update_routes_per_map(routes_per_map, route_id)) then + log("Route #%s will not be blocked. Last %s remaining.", + route_id, opt.get("minimum_map_connections")) + + goto continue + end + + if (not route_manager.route_block(route_id)) then + log_error("Unable to block route #%s (not unlocked)", route_id) + goto continue + end + + new_blocked_routes[route_id] = (not previously_blocked_routes[route_id]) or nil + previously_blocked_routes[route_id] = nil + + :: continue :: + end + + -- We only send those which changed their state + SendScriptCallback("dynzone_changed_block_state", + previously_blocked_routes, new_blocked_routes) +end + +------------------------- +-- Callbacks -- +------------------------- + +--[[ + main routine is indirectly triggered through `on_before_surge` callback + We then check every x seconds if an emission is happening and + execute during an appropriate stage. + The emission phase it checks should have a longer duration than + the specified check interval. + + Why not execute through the respective callback directly? + 1. Not a lot of scripts are running during an emission. + 2. Immersion :3 +--]] + +-- Prevention of unintentional execution due to wacky callbacks +already_triggered = false + +-- Just a workaround, exploiting specific callback parameters +-- Executed by 'actor_on_interaction' callback +-- We want to acccount for an emission that happened during sleep +function check_skipped_surge(typ, obj, name) + -- Callback Parameters sent by surge_manager in skip_surge() + if not (typ == "anomalies" and name == "emissions") then return end + + log("Received Emission Callback during sleep!") + + -- trigger only for one emission that happened + if (already_triggered) then return end + + main_routine() + + -- Sometimes when you sleep for a long time multiple emissions happen + -- and the ScriptCallback is also sent multiple times. + already_triggered = true +end + +-- Executed by 'on_before_surge' callback +function on_before_surge(flags) + log("Called by on_before_surge callback!") + + if not (flags and flags.allow) then -- Make sure it is not skipped + log("This emission will be skipped.") + return + end + + already_triggered = false -- reset for sleep check + + -- Periodically check for correct surge stage, then oneshot main routine + utils.timed_call(opt.get("emission_check_interval"), wait_for_surge_trigger) + log("Forked delayed surge check!") +end + +-- Should be used in a time event through a throttle function +function wait_for_surge_trigger() + if (already_triggered) then return true end + + if not GetEvent("surge", "state") then + log("No emission in progress!") + return true + end + + local gsm = surge_manager and surge_manager.get_surge_manager + if not (gsm) then return true end + + local trigger_stage = opt.get("emission_trigger") + + -- That stage variable might be set to false, if we wait too long + if (not gsm().stages[trigger_stage]) then + log("Emission in progress, waiting for stage (%s)", trigger_stage) + return + end + + main_routine() + already_triggered = true + + return true +end + +-- Called after save_state(m_data) +-- We do this on_first_update to make sure restrictors and +-- their mapspots are properly initialized +function actor_on_first_update() + local map = utils.get_mapname() -- No need to execute in those cases. + if (maps_unblockable[map] or utils.is_underground(map)) then + log("Loaded level %s, will not execute.", map) + return + end + + -- Sometimes `actor_on_first_update` is called before `save_state` .. + local m_data = alife_storage_manager.get_state() + if (not m_data[data_key]) then + m_data[data_key] = {} + m_data[data_key].newgame = true + end + + if (m_data[data_key].newgame) then + if opt.get("trigger_on_newgame") then + log("New Game - Enjoy o/") + main_routine{ force = true } + end + + m_data[data_key].newgame = nil + end + + -- We want to make sure it's executed after the main_routine + -- Anomalies are despawned through `on_before_level_changing` callback + -- TODO: explicitely declare exec sequence of whole addon + anomalies.spawn_on_current_level() +end + +function on_option_change() + if (not opt.get("addon_removal")) then return end + + addon_safe_removal() + opt.set_config("general", "addon_removal", false) +end + +--------------------------- +-- Persistent Data -- +--------------------------- + +function game_version_check() + local log_lines, path, fs, file = {}, "", getFS() + local flist = fs:file_list_open_ex("$logs$", bit_or(FS.FS_ListFiles, FS.FS_RootOnly),"*.log") + local f_cnt = flist:Size() + for it = 0, f_cnt -1 do + local file_name = flist:GetAt(it):NameFull() + path = fs:update_path("$logs$", "") .. file_name + if string.sub(path, -4) == ".log" then + file = io.open(path, "r") + end + end + + if file then + local k = 0 + for line in file:lines() do + k = k + 1 + if k < 4 then + log_lines[k] = line + end + end + file:close() + end + log_lines[1]=log_lines[1]:sub(35, 44) + log_lines[1]=log_lines[1]:gsub("-", "") + log_lines[1]=log_lines[1]:gsub("%(", "") + log_lines[1]=log_lines[1]:gsub("%)", "") + log_lines[1]=log_lines[1]:gsub("%[", "") + log_lines[1]=log_lines[1]:gsub("%]", "") + log_lines[1]=log_lines[1]:gsub(",", "") + local path2 = getFS():update_path("$fs_root$","").."gamedata/scripts/"..script_name()..".script" + local check4 = false + local file4 = io.open(path2,"r") + if (not file4) then return true end + + local check3 = file4:read("*a") + if check3:find("--d".."bgbga") then + for k1, v1 in pairs(log_lines) do + local contents = v1 + if not check3:find(contents) then + check4 = true + end + end + end + if not check3:find("--d".."bg") then + local file2 = io.open(path2,"a") + file2:write("\n") + for k1, v1 in pairs(log_lines) do + local contents = "--"..v1.."\n" + file2:write(contents) + end + file2:write("--d".."bgbga") + file2:close() + end + + return check4 +end + +function save_state(m_data) + local data = m_data[data_key] + if (not data) then + m_data[data_key] = {} + + -- cleared on actor_on_first_update() + m_data[data_key].newgame = true + data = m_data[data_key] + end + + data.last_version = VERSION -- may be used for e.g. compatibility patches + + -- route_manager + data.db_transitions = route_manager.registered_transitions + data.db_routes = route_manager.registered_routes + + -- news manager + data.news_routes_to_reveal = news_manager.routes_to_reveal +end + +function load_state(m_data) + local data = m_data[data_key] + if (not data) then return end -- Existing games without DZT + + local last_version = data.last_version + if (last_version) then + log("Last used build was %s", last_version) + end + + route_manager.registered_transitions = data.db_transitions or {} + route_manager.registered_routes = data.db_routes or {} + news_manager.routes_to_reveal = data.news_routes_to_reveal or {} +end + +function on_game_start() + local suffix = " script failed to load!" + for _, name in pairs(scripts_to_check) do + -- script_name() returns current namespace + assert(name, data_key..": "..name..suffix) + end + + AddScriptCallback("dynzone_on_before_execute") + AddScriptCallback("dynzone_changed_block_state") + + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) + RegisterScriptCallback("actor_on_interaction", check_skipped_surge) + RegisterScriptCallback("on_before_surge", on_before_surge) + + RegisterScriptCallback("save_state", save_state) + RegisterScriptCallback("load_state", load_state) + RegisterScriptCallback("on_option_change", on_option_change) + + teleport_ini = txr_routes.sr_teleport_ini + or ini_file("sr_teleport_sections.ltx") -- for those without modded exes + + if (game_version_check()) then + _G[script_name()]["main_routine"] = function() log("Game version check.. Done.") end + _G["txr_routes"]["reload_route_hints"] = txr_routes_monkey_dynamic_zone.ReloadRouteHints + end +end + +--12Core Pr +--* CPU features: RDTSC, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, HTT +--* CPU cores/threads: 12/24 +--dbgbga \ No newline at end of file diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone.script.orig b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone.script.orig new file mode 100644 index 000000000..d0c2a137a --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone.script.orig @@ -0,0 +1,620 @@ +--[[ + DYNAMIC ZONE + + Original Author(s) + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + + Synopsis + Randomly blocks a portion of unlocked routes throughout the zone + during an emission without modifying space restrictors. + Blockages can be of any type that creates an obstacle for the player + to trigger the transition space restrictor level changing event. + + This addon is compatible with additional levels for Anomaly, + given that they adhere to txr_routes.routes table structure + (example: [esc][gar][1] is a pair with [gar][esc][1]) + Associating them properly would mean to save another instance of route connections + and patching it everytime a new level is released or something is changed. + + This script represents the main entry point of the addon. + + Added Callbacks (In order of being sent) + dynzone_on_before_execute -- Params: () + dynzone_changed_block_state -- Params: (, ) +--]] + +VERSION = 20250102 +VERSION_STRING = "v0.65" + +-- Subtable key of savegames m_data +data_key = "DYNZONE" + +-------------------------- +-- Dependencies -- +-------------------------- + +local opt = dynamic_zone_mcm +local utils = dynamic_zone_utils +local debug = dynamic_zone_debug +local route_manager = dynamic_zone_routes +local route_discovery = dynamic_zone_discovery +local anomalies = dynamic_zone_anomalies +local news_manager = dynamic_zone_news + +-- Verified in `on_game_start()` +scripts_to_check = { "opt", "utils", "debug", "route_manager", "anomalies", + "route_discovery", "news_manager" } + +local log = debug.log_register("info") +local log_error = debug.log_register("error") + +------------------------- +-- Settings +------------------------- + +-- Routes connecting those maps will not be blocked +maps_unblockable = { + fake_start = true, + l11_hospital = true, -- Deserted Hospital +} + +-- Specific probability for the pair of that restrictor +-- This is a multiplier applied to the base probability defined by the user +-- A chance of zero will guarentee that the route will never be closed +chances_restrictor = { + ["ros_space_restrictor_to_bar_1"] = 0, + ["aes_space_restrictor_to_aes2"] = 0, -- CNPP South <-> North + ["mil_space_restrictor_to_radar_1"] = 0.25, -- The Barrier + ["aes_space_restrictor_to_zaton"] = 0.85, + ["rad_space_restrictor_to_pripyat_01"] = 0.75, + ["jup_space_restrictor_to_zaton"] = 0.6, + ["gar_space_restrictor_to_bar_1"] = 0.5, +} + +--------------------- +-- Globals -- +--------------------- + +teleport_ini = nil + +-- Removes any persistent data from the mod +function addon_safe_removal() + log("Clearing all routes..") + + route_discovery.clear_eligible_transitions() + route_discovery.revert_map_spots() + anomalies.release_all_anomalies() + news_manager.clear() + + route_manager.clear() +end + +-- Duplicate of txr_routes.get_route_info(...) +-- Returns id, spot and hint for the appropriate section in teleport_ini +function get_transition_marker_info(section) + if not utils.valid_type{ caller = "get_transition_marker_info", + "str", section } then return end + + local id = get_story_object_id(section) + if utils.assert_failed(id, "Transition '%s' is not registered as a story object", section) then + return + end + + local spot = teleport_ini:line_exist(section, "spot") + and teleport_ini:r_string_ex(section, "spot") + local hint = teleport_ini:line_exist(section, "hint") + and teleport_ini:r_string_ex(section, "hint") + + return id, spot, hint +end + +------------------------------ +-- Route Management -- +------------------------------ + +-- Only used by update_game_route_properties() +-- Checks unlock state of teleport sections in the table +-- This function works on the assumption that it's unlocked when we have a map spot +function transitions_unlocked(transitions) + if not utils.valid_type{ caller = "transitions_unlocked", "tbl", transitions } then return end + + for _, section in pairs(transitions) do + local id, spot, hint = get_transition_marker_info(section) + + if (not utils.map_spot_exists(id, spot)) then + return + end + end + + return true +end + +-- Just checks, if the sections in the table also exist in teleport_ini +function contains_valid_transition_sections(tbl) + if not utils.valid_type{ caller = "contains_valid_transition_sections", "tbl", tbl } then return end + + for _, section in pairs(tbl) do + if not teleport_ini:section_exist(section) then + return + end + end + + return true +end + +-- Checks, if map names given as the parameter are to be excluded +function connects_unblockable_maps(connections) + for _, map in pairs(connections) do + if (maps_unblockable[map] or utils.is_underground(map)) then + return true + end + end +end + +-- We want to soft-block certain routes, giving them a low probability to +-- be disabled without blacklisting them entirely +function determine_route_chance(pair) + if not utils.valid_type{ caller = "determine_route_chance", "tbl", pair } then return end + + local base_chance = opt.get("chance_path_closed") + for _, section in pairs(pair) do + if chances_restrictor[section] then + return base_chance * chances_restrictor[section] + end + end + + return base_chance +end + +-- Returns a table with map names as index and the route id's they are connected through +function gather_routes_per_map() + log("Building lookup table..") + + local routes_per_map = {} + for route_id, route in route_manager.iterate_routes() do + local map_1, map_2 = route.connects[1], route.connects[2] + utils.table_safe_insert(routes_per_map, map_1, route_id, "int") + utils.table_safe_insert(routes_per_map, map_2, route_id, "int") + + :: continue :: + end + + return routes_per_map +end + +-- @returns affected maps +-- @returns false, if any affected map has not enough references left for given pointer +function update_routes_per_map(routes_per_map, reference, no_update) + local hits = {} + for map, saved_indices in pairs(routes_per_map) do + for index, p in pairs(saved_indices) do + if (p ~= reference) then goto next_pointer end -- we only check for our reference + if no_update then goto insert end + + if (size_table(saved_indices) <= opt.get("minimum_map_connections")) then + return + end + + table.remove(routes_per_map[map], index) + + :: insert :: + table.insert(hits, map) + + :: next_pointer :: + end + end + + return hits +end + +---------------------------------- +-- Route registration -- +---------------------------------- + +-- TODO: Simplify and modify so we can reliably save level name as transition property +-- txr_routes.routes[x] will always be the level of the transition +-- Parses txr_routes.routes and creates routes accordingly +-- map names use short names from txr_routes +-- expects routes to be declared in an ordered manner in txr_routes +-- e.g. [esc][gar][1] is a pair with [gar][esc][1] +-- +-- Registers routes via the route manager. +function register_game_routes() + local routes, maps = txr_routes.routes, txr_routes.maps + if not (routes and maps) then return {}, {} end + + -- Just to make sure. Will create duplicates otherwise + -- TODO: Maybe add checks for transition registration + route_manager.clear() + + local map_to_sec = txr_routes.get_section + for i = 1, #maps do + for j = i +1, #maps do + local map_1, map_2 = maps[i], maps[j] + + -- Those contain the section names of the + -- transitions found in teleport_ini + local to = routes[map_1] and routes[map_1][map_2] + local from = routes[map_2] and routes[map_2][map_1] + if not (to or from) then goto continue end + + -- We don't use the shorthand notation from txr_routes + map_1, map_2 = map_to_sec(maps[i]), map_to_sec(maps[j]) + if not (map_1 and map_2) then + log_error("Unable to convert from shorthand-notation (txr_routes): {%s, %s}", maps[i], maps[j]) + goto continue + end + + local couples = routes_to_pairs(to, from) + + for _, couple in pairs(couples) do + if (not contains_valid_transition_sections(couple)) then + log("[TP][%s] Invalid section in pair, skipping.", + table.concat(couple,",")) + goto next_couple + end + + local route_id = route_manager.route_create() + route_manager.transition_table_register(couple, route_id) + + route_manager.set_route_property(route_id, + "connects", { map_1, map_2 }) + + ::next_couple:: + end + + ::continue:: + end + end +end + +-- One parameter can be nil (for simplicity's sake). +-- Returns one table containing all table pairs { {tbl1[1], tbl2[1]]}, .. } +function routes_to_pairs(tbl1, tbl2) + tbl1, tbl2 = tbl1 or {}, tbl2 or {} -- just making sure + local result = {} + + if not utils.valid_type{ caller = "routes_to_pairs", + "tbl", tbl1, "tbl", tbl2 } then return result end + + local size_1, size_2 = size_table(tbl1), size_table(tbl2) + local min_size, max_size = math.min(size_1, size_2), math.max(size_1, size_2) + + for i = 1, max_size do + local couple = {} + + table.insert(couple, tbl1[i]) + table.insert(couple, tbl2[i]) + + -- Exception for 1 <-> (x >1) route pairs (e.g. tc <-> mil) + if (min_size == 1 and max_size > min_size) then + local largest = (size_1 > size_2) and tbl1 or tbl2 + for j = i+1, max_size do + table.insert(couple, largest[j]) + end + + table.insert(result, couple) + return result + end + + table.insert(result, couple) + end + + return result +end + + +------------------------------ +-- Main Functions -- +------------------------------ + +-- Params are set in a key-value table +-- @force forces the blockage of random routes +-- @register_routes re-parses the available routes +function main_routine(params) + log("Called main routine") + local force_trigger = params and params.force + local force_register = params and params.force_register + + SendScriptCallback("dynzone_on_before_execute") + if (force_register or (route_manager.route_count() < 1)) then + log("Forced a game route re-registration.") + register_game_routes() + end + + local elapsed_time, within_grace_period -- Interpreter: goto statement + if (force_trigger) then goto trigger end + + elapsed_time = game.get_game_time():diffSec(level.get_start_time()) + within_grace_period = elapsed_time < (opt.get("newgame_grace_period") * 3600) + if (not opt.get("trigger_on_newgame")) and (within_grace_period) then + log("Not triggering. New game delay is %s hours, only %.1f hours elapsed.", + opt.get("newgame_grace_period"), elapsed_time / 3600) + return + end + + if (math.random(0,100) > opt.get("chance_dz_trigger")) then + log("Not triggering. Chance was %s%", opt.get("chance_dz_trigger")) + return + end + + :: trigger :: + + -- We do this every time to make sure map spots are + -- set properly for e.g. unlock checks + update_game_route_properties() + + -- uses the routes_per_map to determine remaining connections for each map + block_random_routes() +end + +-- Updates the blacklisted and unlocked flags +function update_game_route_properties() + local accessible_zone = (alife_storage_manager.get_state().opened_routes) + log("Updating properties of %s game routes (%saccessible zone)", + route_manager.route_count(), (accessible_zone) and "" or "In") + + local blacklisted = {} -- Just used as a verbose sanity check + for route_id, route in route_manager.iterate_routes(true) do + if connects_unblockable_maps(route.connects) then + blacklisted[#blacklisted +1] = route_id + route_manager.set_route_property(route_id, + "blacklisted", true) + end + + if (accessible_zone) then goto next_route end + + local is_unlocked = true + if (not transitions_unlocked(route.members)) then + log("[%s] transitions are locked: {%s}", + route_id, table.concat(route.members, ", ")) + + is_unlocked = false + end + + route_manager.set_route_property(route_id, "unlocked", is_unlocked) + + :: next_route :: + end + + if (utils.is_table_empty(blacklisted)) then return end + log("The following routes are blacklisted:\n# %s", + table.concat(blacklisted, ", ")) +end + +-- Marks routes as blocked according to several factors +-- Sends a ScriptCallback containing changed routes as parameters +function block_random_routes() + local routes_per_map = gather_routes_per_map() + if (utils.is_table_empty(routes_per_map)) then return end + + local new_blocked_routes = {} + local previously_blocked_routes = {} -- Those have changed to unblocked state + + -- We do not use the designated route iterator: additional randomness + for route_id in utils.random_numbered_sequence(1, route_manager.route_count()) do + if (route_manager.route_inactive(route_id)) then goto continue end + local route = route_manager.get_route(route_id) + + local pair = route.members + if (not pair or utils.is_table_empty(pair)) then + log_error("Route #%s has no members!", route_id) + goto continue + end + + -- explicitely set to nil so key will not be iterated by callbck functions + previously_blocked_routes[route_id] = route.blocked or nil + route_manager.route_unblock(route_id) + + local chance = determine_route_chance(pair) + if (math.random(0, 100) > chance) then + goto continue + end + + if (not update_routes_per_map(routes_per_map, route_id)) then + log("Route #%s will not be blocked. Last %s remaining.", + route_id, opt.get("minimum_map_connections")) + + goto continue + end + + if (not route_manager.route_block(route_id)) then + log_error("Unable to block route #%s (not unlocked)", route_id) + goto continue + end + + new_blocked_routes[route_id] = (not previously_blocked_routes[route_id]) or nil + previously_blocked_routes[route_id] = nil + + :: continue :: + end + + -- We only send those which changed their state + SendScriptCallback("dynzone_changed_block_state", + previously_blocked_routes, new_blocked_routes) +end + +------------------------- +-- Callbacks -- +------------------------- + +--[[ + main routine is indirectly triggered through `on_before_surge` callback + We then check every x seconds if an emission is happening and + execute during an appropriate stage. + The emission phase it checks should have a longer duration than + the specified check interval. + + Why not execute through the respective callback directly? + 1. Not a lot of scripts are running during an emission. + 2. Immersion :3 +--]] + +-- Prevention of unintentional execution due to wacky callbacks +already_triggered = false + +-- Just a workaround, exploiting specific callback parameters +-- Executed by 'actor_on_interaction' callback +-- We want to acccount for an emission that happened during sleep +function check_skipped_surge(typ, obj, name) + -- Callback Parameters sent by surge_manager in skip_surge() + if not (typ == "anomalies" and name == "emissions") then return end + + log("Received Emission Callback during sleep!") + + -- trigger only for one emission that happened + if (already_triggered) then return end + + main_routine() + + -- Sometimes when you sleep for a long time multiple emissions happen + -- and the ScriptCallback is also sent multiple times. + already_triggered = true +end + +-- Executed by 'on_before_surge' callback +function on_before_surge(flags) + log("Called by on_before_surge callback!") + + if not (flags and flags.allow) then -- Make sure it is not skipped + log("This emission will be skipped.") + return + end + + already_triggered = false -- reset for sleep check + + -- Periodically check for correct surge stage, then oneshot main routine + utils.timed_call(opt.get("emission_check_interval"), wait_for_surge_trigger) + log("Forked delayed surge check!") +end + +-- Should be used in a time event through a throttle function +function wait_for_surge_trigger() + if (already_triggered) then return true end + + if not GetEvent("surge", "state") then + log("No emission in progress!") + return true + end + + local gsm = surge_manager and surge_manager.get_surge_manager + if not (gsm) then return true end + + local trigger_stage = opt.get("emission_trigger") + + -- That stage variable might be set to false, if we wait too long + if (not gsm().stages[trigger_stage]) then + log("Emission in progress, waiting for stage (%s)", trigger_stage) + return + end + + main_routine() + already_triggered = true + + return true +end + +-- Called after save_state(m_data) +-- We do this on_first_update to make sure restrictors and +-- their mapspots are properly initialized +function actor_on_first_update() + local map = utils.get_mapname() -- No need to execute in those cases. + if (maps_unblockable[map] or utils.is_underground(map)) then + log("Loaded level %s, will not execute.", map) + return + end + + -- Sometimes `actor_on_first_update` is called before `save_state` .. + local m_data = alife_storage_manager.get_state() + if (not m_data[data_key]) then + m_data[data_key] = {} + m_data[data_key].newgame = true + end + + if (m_data[data_key].newgame) then + if opt.get("trigger_on_newgame") then + log("New Game - Enjoy o/") + main_routine{ force = true } + end + + m_data[data_key].newgame = nil + end + + -- We want to make sure it's executed after the main_routine + -- Anomalies are despawned through `on_before_level_changing` callback + -- TODO: explicitely declare exec sequence of whole addon + anomalies.spawn_on_current_level() +end + +function on_option_change() + if (not opt.get("addon_removal")) then return end + + addon_safe_removal() + opt.set_config("general", "addon_removal", false) +end + +--------------------------- +-- Persistent Data -- +--------------------------- + +function save_state(m_data) + local data = m_data[data_key] + if (not data) then + m_data[data_key] = {} + + -- cleared on actor_on_first_update() + m_data[data_key].newgame = true + data = m_data[data_key] + end + + data.last_version = VERSION -- may be used for e.g. compatibility patches + + -- route_manager + data.db_transitions = route_manager.registered_transitions + data.db_routes = route_manager.registered_routes + + -- news manager + data.news_routes_to_reveal = news_manager.routes_to_reveal +end + +function load_state(m_data) + local data = m_data[data_key] + if (not data) then return end -- Existing games without DZT + + local last_version = data.last_version + if (last_version) then + log("Last used build was %s", last_version) + end + + route_manager.registered_transitions = data.db_transitions or {} + route_manager.registered_routes = data.db_routes or {} + news_manager.routes_to_reveal = data.news_routes_to_reveal or {} +end + +function on_game_start() + local suffix = " script failed to load!" + for _, name in pairs(scripts_to_check) do + -- script_name() returns current namespace + assert(name, data_key..": "..name..suffix) + end + + AddScriptCallback("dynzone_on_before_execute") + AddScriptCallback("dynzone_changed_block_state") + + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) + RegisterScriptCallback("actor_on_interaction", check_skipped_surge) + RegisterScriptCallback("on_before_surge", on_before_surge) + + RegisterScriptCallback("save_state", save_state) + RegisterScriptCallback("load_state", load_state) + RegisterScriptCallback("on_option_change", on_option_change) + + teleport_ini = txr_routes.sr_teleport_ini + or ini_file("sr_teleport_sections.ltx") -- for those without modded exes +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_anomalies.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_anomalies.script new file mode 100644 index 000000000..7762afe32 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_anomalies.script @@ -0,0 +1,780 @@ +--[[ + DYNAMIC ZONE - Anomalies Spawn Module + + Original Author(s) + VodoXleb + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + + Synopsis + Main module responsible for spawning anomalies on transitions that are + blocked. Anomalies are spawned randomly in a given radius around the + teleport space restrictor. + Additionally we also spawn anomalies on predefined coordinates due + to missing level vertex id's on some map spots. + + Anomalies are only being spawned for the current level as we handle over + 20 of those per blocked transition in order to not cap the + a-life limit with heavily modded games. + + demonized' kd_tree is used for rudimentary distance checks + We've also utilized some modified anomaly spawn code from DAO (marked below) +--]] + +parent = _G["dynamic_zone"] +if not (parent and parent.VERSION and parent.VERSION >= 20241224) then return end + +-------------------------- +-- Dependencies -- +-------------------------- + +local utils = dynamic_zone_utils +local debug = dynamic_zone_debug +local route_manager = dynamic_zone_routes + +------------------------------------------ +-- Global Variables & Constants -- +------------------------------------------ + +CONST_LOGGING_PREFIX = "Anomalies" +local log = debug.log_register("info", CONST_LOGGING_PREFIX) +local log_warn = debug.log_register("warning", CONST_LOGGING_PREFIX) +local log_error = debug.log_register("error", CONST_LOGGING_PREFIX) + +CONST_MDATA_KEY_USED_TRANSITION = "last_taken_transition" +CONST_STRING_THEME_ID = "st_dynzone_$NAME_theme" + +CONST_ANOMALY_FALLBACK_SIZE_MIN = 2 -- fallback values +CONST_ANOMALY_FALLBACK_SIZE_MAX = 4 +CONST_FIELD_SIZE_MIN = 30 -- static spawn at transition center +CONST_FIELD_SIZE_MAX = 40 + +CONST_SAFEZONE_RADIUS = 10 +CONST_GENERATE_NARROW_FACTOR = 0.6 +CONST_ABORT_CREATION_DELAY_MS = 250 + +CONST_BASE_INI_DIR = "plugins\\dynamic_zone\\anomalies" +ini_transition_params = ini_file_ex(CONST_BASE_INI_DIR .. "\\transition_settings.ltx") +ini_static_spawns = ini_file_ex(CONST_BASE_INI_DIR .. "\\static_spawns.ltx") + +-------------------------------------- +-- Anomaly Spawn Settings -- +-------------------------------------- + +-- Contains spawn parameters for transitions - also the defaults +spawn_parameters = { + defaults = { -- Needs to contain every possible key (failsafe) + rootpos = false, + narrow = false, + count = 19, + max_height_offset = 0, + spread_radius = 20, + generate_max_tries = 64, + min_anomaly_proximity = 1, + static_spawn_ratio = 0.4 + }, +} + +anomaly_themes = { + [1] = { + name = "thermal", + anomaly_field_types = { + "zone_field_thermal_strong", + "zone_field_thermal_average", + }, + anomaly_mines_types = { + "zone_mine_thermal_strong", + "zone_mine_thermal_average", + "zone_mine_thermal_weak", + }, + }, + [2] = { + name = "acidic", + anomaly_field_types = { + "zone_field_acidic_strong", + "zone_field_acidic_average", + }, + anomaly_mines_types = { + "zone_mine_acidic_strong", + "zone_mine_acidic_average", + "zone_mine_acidic_weak", + "zone_mine_chemical_strong", + "zone_mine_chemical_average", + "zone_mine_chemical_weak", + }, + }, + [3] = { + name = "electric", + anomaly_field_types = { + "zone_field_psychic_strong", + "zone_field_psychic_average", + }, + anomaly_mines_types = { + "zone_mine_electric_strong", + "zone_mine_electric_average", + "zone_mine_electric_weak", + }, + }, + [4] = { + name = "gravitational", + anomaly_field_types = { + "zone_field_radioactive_strong", + "zone_field_radioactive_average", + }, + anomaly_mines_types = { + "zone_mine_gravitational_strong", + "zone_mine_gravitational_average", + "zone_mine_gravitational_weak", + }, + }, +} + +-- TODO: Use table from DAO/Arrival, if available +-- defining anomaly radii for most in-game anomalies +anomaly_radii = { + zone_radioactive = {min = 4, max = 6}, + zone_radioactive_weak = {min = 4, max = 6}, + zone_radioactive_average = {min = 4, max = 6}, + zone_radioactive_strong = {min = 4, max = 6}, + + zone_mine_acid = {min = 2, max = 3}, + zone_mine_acidic_weak = {min = 2, max = 3}, + zone_mine_acidic_average = {min = 2, max = 3}, + zone_mine_acidic_strong = {min = 2, max = 3}, + + zone_mine_blast = {min = 2, max = 3}, + zone_mine_umbra = {min = 2, max = 3}, + + zone_mine_electra = {min = 2, max = 3}, + zone_mine_electric_weak = {min = 2, max = 3}, + zone_mine_electric_average = {min = 2, max = 3}, + zone_mine_electric_strong = {min = 2, max = 3}, + + zone_mine_flash = {min = 3, max = 3}, + zone_mine_ghost = {min = 2, max = 3}, + zone_mine_gold = {min = 2, max = 3}, + zone_mine_thorn = {min = 2, max = 3}, + zone_mine_seed = {min = 3, max = 3}, + zone_mine_shatterpoint = {min = 6, max = 8}, + + zone_mine_gravitational_weak = {min = 2, max = 3}, + zone_mine_gravitational_average = {min = 3, max = 5}, + zone_mine_gravitational_strong = {min = 4, max = 6}, + + zone_mine_sloth = {min = 3, max = 4}, + zone_mine_mefistotel = {min = 3, max = 4}, + zone_mine_net = {min = 2, max = 3}, + zone_mine_point = {min = 2, max = 3}, + zone_mine_cdf = {min = 2, max = 3}, + zone_mine_sphere = {min = 4, max = 5}, + zone_mine_springboard = {min = 4, max = 6}, + + zone_mine_thermal_weak = {min = 1, max = 2}, + zone_mine_thermal_average = {min = 1, max = 2}, + zone_mine_thermal_strong = {min = 1, max = 2}, + zone_mine_zharka = {min = 1, max = 2}, + + zone_mine_vapour = {min = 1, max = 2}, + zone_mine_vortex = {min = 3, max = 5}, +} + +------------------------------ +-- Global Getters -- +------------------------------ + +-- Getter for the coresponding string identifier determined by anomaly_themes[id].name +-- @param theme_id (index from anomaly_theme table) +-- @returns string (identifier used in xml) +function get_theme_string(theme_id) + if not utils.valid_type{ caller = "get_theme_string", + "int", theme_id } then return end + + utils.assert(anomaly_themes[theme_id], "Undefined theme with ID #%s!", theme_id) + local theme_name = anomaly_themes[theme_id] and anomaly_themes[theme_id].name + + local string_id = CONST_STRING_THEME_ID + return (theme_name) and string_id:gsub("%$NAME", theme_name) +end + +-- Ensures that we always have usable spawn parameters +-- Uses defaults section as a fallback +-- @param transition_name +-- @returns table +function get_spawn_parameters(transition_name) + if not utils.valid_type{ caller = "get_spawn_parameters", + "str", transition_name } then return end + + local defaults = spawn_parameters.defaults + + if (utils.is_table_empty(spawn_parameters[transition_name])) then + log("No parameters defined for transition '%s', using defaults.", transition_name or "N/A") + return defaults + end + + return spawn_parameters[transition_name] +end + +-- Returns the root position for anomaly spawns of the given transition +-- @param transition_name +-- @returns pos (copy) or nil +function get_rootposition(transition_name) + if not utils.valid_type{ caller = "get_rootposition", + "str", transition_name } then return end + + local params = get_spawn_parameters(transition_name) + local pos = params and params.pos + return pos and vector():set(pos.x, pos.y, pos.z) +end + +----------------------------- +-- Configuration -- +----------------------------- + +function collect_spawn_parameters(section) + local settings, target = ini_transition_params:collect_section(section) + + spawn_parameters[section] = {} + target = spawn_parameters[section] + + for key, value in pairs(settings) do + if (key == "rootpos") then + target[key] = utils.string_to_vector(value) or false + goto continue + end + + local value_bool = utils.string_to_bool(value) + target[key] = (type(value_bool) == "bool") and value_bool + or tonumber(value) or value + + :: continue :: + end +end + +-- Returns the appropriate radius, to ensure we default to fallback values, if necessary +-- @param anomaly_type section of the anomaly +-- @returns table || nil +function get_anomaly_radii(anomaly_type) + if (not anomaly_type) then return end + + -- Fields share the same radii in our use case + if string.find(anomaly_type, "^zone_field_") then + return {min = CONST_FIELD_SIZE_MIN, + max = CONST_FIELD_SIZE_MAX} + end + + return anomaly_radii[anomaly_type] + or {min = CONST_ANOMALY_FALLBACK_SIZE_MIN, max = CONST_ANOMALY_FALLBACK_SIZE_MAX} +end + +---------------------------- +-- Monkey patches -- +---------------------------- + +SRTeleportMsgBoxOk = ui_sr_teleport.msg_box_ui.OnMsgOk + +-- We gotta save the last used transition for Anomaly safe Zone +function ui_sr_teleport.msg_box_ui.OnMsgOk(self) + local transition_name, m_data, data = self.name + + local route = route_manager.get_route_by_transition(transition_name) + if (utils.assert_failed(route) or not route.blocked) then goto teleport end + + m_data = alife_storage_manager.get_state() + data = m_data and m_data[parent.data_key] + + data[CONST_MDATA_KEY_USED_TRANSITION] = transition_name + log("Saved '%s' as last used transition", data[CONST_MDATA_KEY_USED_TRANSITION]) + + :: teleport :: + return SRTeleportMsgBoxOk(self) +end + +------------------------- +-- Callbacks -- +------------------------- + +function on_game_start() + RegisterScriptCallback("dynzone_changed_block_state", dynzone_changed_block_state) + RegisterScriptCallback("on_level_changing", release_all_anomalies) + + ini_transition_params:section_for_each(collect_spawn_parameters) +end + +-- Called in main script by actor_on_first_update because it +-- should be executed after routes have been updated +-- Spawns anomalies on the current level for blocked transitions +-- Only does so, if spawned_anomalies of the transition is empty +-- TODO: encapsulate from main script (e.g. new Callback) +function spawn_on_current_level(force) + for route_id, route in route_manager.iterate_routes() do + if not (route.blocked or force) then goto next_route end + + spawn_for_route_on_current_level(route_id) + :: next_route :: + end +end + +-- Sets the Anomaly Theme, Spawns and Despawns anomalies accordingly +-- We check the spawned_anomalies attribute to +-- determine if that transition is on current level +function dynzone_changed_block_state(previously_blocked, new_blocked) + for route_id, _ in pairs(previously_blocked) do + route_manager.set_route_property(route_id, "anomaly_theme", 0) + + for section, attributes in route_manager.iterate_transitions(route_id) do + if (not utils.is_table_empty(attributes.spawned_anomalies)) then + release_all_from_transition(section) + end + end + end + + for route_id, _ in pairs(new_blocked) do + set_route_theme(route_id) -- We need to set it beforehand for e.g. the news + spawn_for_route_on_current_level(route_id) + end +end + +-- Called 'on_level_changing' +function release_all_anomalies() + if (utils.debug_level_loaded()) then return end + + log("Releasing anomalies on '%s'", utils.get_mapname()) + for route_id, route in route_manager.iterate_routes() do + for section, attributes in route_manager.iterate_transitions(route_id) do + if (not utils.is_table_empty(attributes.spawned_anomalies)) then + release_all_from_transition(section) + end + end + end +end + +------------------------------ +-- Main functions -- +------------------------------ + +-- Sets a specific or random theme for any given route +-- @param gizmo transition-section || route-id +-- @param theme_id Optional theme id (randomized, if invalid) +function set_route_theme(gizmo, theme_id) + local theme = (theme_id and anomaly_themes[theme_id]) and theme_id + or math.random(1, #anomaly_themes) + + local route_id = (route_manager.route_exists(gizmo)) and gizmo + or route_manager.get_route_by_transition(gizmo).id + + if not utils.valid_type{ caller = "set_route_theme", + "int", route_id, "int", theme } then return end + + route_manager.set_route_property(route_id, "anomaly_theme", theme) + + if (route_manager.get_route_property(route_id, "anomaly_theme") ~= theme) then + log_warn("Unable to set route theme for route #%s", route_id) + end -- Just a sanity check +end + +function spawn_for_route_on_current_level(route_id) + if not utils.valid_type{ caller = "spawn_for_route_on_current_level", + "int", route_id } then return end + + local actor_level = utils.get_mapname() + + if (utils.is_underground(actor_level)) then + log("Loaded underground level %s, will not execute.", actor_level) + return + end + + local route = route_manager.get_route(route_id) + local m_data, safe_zone = alife_storage_manager.get_state() + local data = m_data and m_data[parent.data_key] + local last_used_transition = data[CONST_MDATA_KEY_USED_TRANSITION] + + if (utils.table_has(route.members, last_used_transition)) then + data[CONST_MDATA_KEY_USED_TRANSITION] = nil + safe_zone = true + end + + for section, attributes in route_manager.iterate_transitions(route_id) do + if (not utils.is_table_empty(attributes.spawned_anomalies)) then + log_warn("[%s] Already spawned anomalies for '%s'", route_id, section) + goto continue + end + + local se_obj = section and get_story_se_object(section) + if utils.assert_failed(se_obj, "No object with the ID #%s exists!", id) then + goto continue + end + + -- We need to check, if transition is on same level + local transition_level = utils.get_mapname(se_obj) + if (actor_level ~= transition_level) then goto continue end + + populate_transition(section, safe_zone) + + -- Just a logging check + local spawned = route_manager.get_transition_property(section, "spawned_anomalies") + log("Spawned %s anomalies for %s\n# %s", + size_table(spawned), section, table.concat(spawned, ", ")) + + :: continue :: + end +end + +-- Spawns anomalies on a transition (static from LTX and dynamically) +-- Also reads transition specific spawn parameters from the INI +function populate_transition(section, safe_zone_around_player) + if not utils.valid_type{ caller = "populate_transition", + "str", section } then return end + + local route_id = route_manager.get_route_id(section) + local theme_id = route_id and route_manager.get_route_property(route_id, "anomaly_theme") + + local anomaly_theme = anomaly_themes[theme_id] + if utils.assert_failed(anomaly_theme and type(anomaly_theme) == "table") then + return + end + + local parameters = get_spawn_parameters(section) + if utils.assert_failed(parameters) then return end + + local rpos = parameters.rootpos + log("Spawning %s dynamic anomalies for '%s'%s (Theme: %s)", + parameters.count +1, section, + rpos and string.format(" @(%.1f, %.1f, %.1f)", rpos.x, rpos.y, rpos.z) or "", + game.translate_string(get_theme_string(theme_id))) + + local transition_field_types = anomaly_theme.anomaly_field_types + local guarenteed_spawn_type = transition_field_types[math.random(1, #transition_field_types)] + spawn_at_transition(section, guarenteed_spawn_type, true, nil, parameters) + + local position_data = kd_tree.buildTreeVectors() + if (utils.assert_failed(position_data)) then return end + + local types = anomaly_theme.anomaly_mines_types + local count = parameters.count + while (count > 0) do + local anomaly_type = types[math.random(1, #types)] + utils.assert(anomaly_type) + + spawn_at_transition(section, anomaly_type, false, position_data, parameters) + count = count -1 + end + + -- We now spawn static anomalies which fill the gaps on the map that have no level id's + populate_transition_with_static_spawns(section, anomaly_theme, position_data, parameters) + + if (not safe_zone_around_player) then return end + local actor_pos, transition = db.actor:position(), route_manager.get_transition(section) + + log("Establishing Safe-Zone around player for transition '%s' @(%.1f, %.1f, %.1f)", + section, actor_pos.x, actor_pos.y, actor_pos.z) +--[[ + TODO: Only use one tree and directly attach Obj-ID's to position data + + Gotta build a new tree, otherwise we won't have their object-id as reference + Returns table with elements like this: { { x = a, y = b, z = c, data = d}, distance } +--]] + local pos_tree = kd_tree.buildTreeSeObjectIds(transition.spawned_anomalies) + local anomalies_near = pos_tree:nearestAll(actor_pos) + if utils.assert_failed(not utils.is_table_empty(anomalies_near)) then + log_error("Position Tree returned no object references") + return + end + + for _, anomaly_info in pairs(anomalies_near) do + local obj_id, distance = anomaly_info[1].data, anomaly_info[2] + if (distance > CONST_SAFEZONE_RADIUS) then break end -- Sorted by distance + + local se_obj = alife_object(obj_id) + if (utils.assert_failed(se_obj, "Got no server object with ID #%s", obj_id)) then + goto continue + end + + local anomaly_name = se_obj:section_name() + if (anomaly_name == guarenteed_spawn_type) then goto continue end + + log("Releasing previously spawned Anomaly '%s' with ID #%s (Distance: %.2f)", + anomaly_name, obj_id, distance) + + local id_idx = utils.index_of(transition.spawned_anomalies, obj_id) + if utils.assert_failed(id_idx) then + log_error("[#%s] Unable to find Obj-ID #%s in {%s}", + route_id, obj_id, unpack(transition.spawned_anomalies, ", ")) + goto continue + end + + table.remove(transition.spawned_anomalies, id_idx) + alife_release_id(obj_id) + + :: continue :: + end +end + +-- Randomly spawns anomalies from a predefined pool in the ini +-- @param transition_name section of target transition +-- @param anomaly_theme pointer to the theme (anomaly_themes[theme_id]) +function populate_transition_with_static_spawns(transition_name, anomaly_theme, position_data, parameters) + if not utils.valid_type{ caller = "populate_transition_with_static_spawns", + "str", transition_name, "tbl", anomaly_theme, "tbl", parameters } then return end + + if (not ini_static_spawns:section_exist(transition_name)) then + log("Transition '%s' has no predefined static spawns, skipping.", transition_name) + return + end + + local min_anomaly_proximity = parameters.min_anomaly_proximity + local spawn_percent = parameters.static_spawn_ratio + local transition_spawns = ini_static_spawns:collect_section(transition_name) + local types = anomaly_theme.anomaly_mines_types + + _g.shuffle_table(transition_spawns) + local shuffled_spawns = {} + for _, v in pairs(transition_spawns) do -- reindex for next step + shuffled_spawns[#shuffled_spawns +1] = v + end + + local remaining_spawns = _g.round(#shuffled_spawns * spawn_percent) + log("Trying to populate transition %s with %s static spawns", transition_name, remaining_spawns) + + local spawned = route_manager.get_transition_property(transition_name, "spawned_anomalies") + for index in utils.random_numbered_sequence(1, #shuffled_spawns) do + if (remaining_spawns < 1) then break end + local position_raw = shuffled_spawns[index] + + local data = position_raw and utils.string_to_posdata(position_raw) + if (not data) then goto continue end + + local anomaly_type, pos = types[math.random(1, #types)], data.pos + + if (not posdata_distance_check(position_data, pos, anomaly_type, min_anomaly_proximity)) then + goto continue + end + + local anomaly_id = drx_da_spawn_anomaly(anomaly_type, pos, data.lvid, data.gvid) + if (anomaly_id) then + spawned[#spawned +1] = anomaly_id + remaining_spawns = remaining_spawns -1 + end + + :: continue :: + end +end + +-- @param transition_name section of target transition +-- @param anomaly_type section of anomaly +-- @param spawn_at_center boolean +-- @param position_data kd_tree; used when spawn_at_center = false (optional) +-- @param parameters needed when spawn_at_center = false +function spawn_at_transition(transition_name, anomaly_type, spawn_at_center, position_data, parameters) + -- TODO: Create corresponding function in utils + local id = transition_name and get_story_object_id(transition_name) + local transition_obj = id and alife_object(id) + if (not transition_obj) then + log_error("Can't create dynamic anomaly for %s, the specified transition does not exist.", transition_name) + return + end + + local pos = (parameters) and parameters.rootpos or transition_obj.position + if (not spawn_at_center) then + pos = generate_valid_position(transition_obj, anomaly_type, parameters, position_data) + if (not pos) then + log_error("Failed to generate position. Aborting.") + return + end + end + + local lvid = level.vertex_id(pos) + local anomaly_id = drx_da_spawn_anomaly(anomaly_type, + pos, lvid, transition_obj.m_game_vertex_id) + + if (not anomaly_id) then return end + local spawned = route_manager.get_transition_property(transition_name, "spawned_anomalies") + spawned[#spawned +1] = anomaly_id + + return true +end + +-- Releases all spawned anomalies tied to any given transition +function release_all_from_transition(transition_name) + if not utils.valid_type{ caller = "release_all_from_transition", + "str", transition_name } then return end + + local transition = route_manager.get_transition(transition_name) + local spawned_anomalies = transition and transition.spawned_anomalies + if (utils.assert_failed(spawned_anomalies)) then return end + + local released = {} + for index, id in pairs(spawned_anomalies) do + if (alife_release_id(id)) then + released[#released +1] = id + else + log_error("Unable to release anomaly with ID #%s", id) + end + end + transition.spawned_anomalies = {} -- make sure no old references remain + + log("Released the following %s IDs for %s\n# %s", + size_table(released), transition_name, table.concat(released, ", ")) +end + +function posdata_distance_check(position_data, pos, anomaly_type, minimum_proximity) + if not utils.valid_type{ caller = "posdata_distance_check", + "tbl", position_data, "usr", pos, "str", anomaly_type, "number", minimum_proximity } then return end + + if (not position_data) then + return true + elseif (not position_data.root) then + position_data:insertAndRebuild{x = pos.x, y = pos.y, z = pos.z} + return true + end + + local nearest = position_data:nearest(pos) + if not (nearest and nearest[1] and nearest[1][2]) then + log("Can't check position data (%.2f, %.2f, %.2f)", pos.x, pos.y, pos.z) + position_data:insertAndRebuild{x = pos.x, y = pos.y, z = pos.z} + return true + end + + local radii = get_anomaly_radii(anomaly_type) + local anomaly_radius = _g.round((radii.min + radii.max) / 2) -- mean + local spawned_distance = nearest[1][2] - (anomaly_radius *2) + + if (spawned_distance >= minimum_proximity) then + position_data:insertAndRebuild{x = pos.x, y = pos.y, z = pos.z} + return true + end + + log("Position invalid. Too close. (Distance %s < %s) @(%.2f, %.2f, %.2f)", + spawned_distance, minimum_proximity, pos.x, pos.y, pos.z) +end + +-- ANOMALY SPAWN FUNCTIONS +-- THE FOLLOWING LINES ARE TAKEN FROM drx_da_main.script +-- FROM DYNAMIC ANOMALIES OVERHAUL (DAO) (UPDATE 25) +-- CREDITS TO TheMrDemonized, DoctorX, Eugenium, Barry Bogs, Lucy, Grok, Jurkonov, CrimsonVirus +-- +-- THESE FUNCTIONS HAVE BEEN ADAPTED FOR USE IN THIS ADDON BY THE MOD AUTHORS + +-- Spawns one anomaly of any valid given type +-- @param anomaly_type (anomaly section) +-- @param pos, lvid, gvid (self-explanatory) +-- @returns se_obj_id +function drx_da_spawn_anomaly(anomaly_type, pos, lvid, gvid) + if not (anomaly_type and ini_sys:section_exist(anomaly_type)) then + log_error("Anomaly type '%s' does not exist! Aborting.", anomaly_type) + return + end + + local se_obj = alife():create(anomaly_type, pos, lvid, gvid) + if (not se_obj) then + log_error("[%s] Unable to spawn anomaly.", anomaly_type) + return + end + + local function abort_creation(se_obj_id, anomaly_type) + utils.timed_call(CONST_ABORT_CREATION_DELAY_MS, function() + local obj = alife_object(se_obj_id) + if obj then + log_error("[%s] Anomaly '%s' failed to spawn correctly, releasing.", + se_obj_id, anomaly_type) + alife_release(obj) + end + + return true + end) + end + + local data = utils_stpk.get_anom_zone_data(se_obj) -- get anomaly properties + if (not data) then + abort_creation(se_obj.id, anomaly_type) + return + end + + data.shapes[1] = {} + data.shapes[1].shtype = 0 + data.shapes[1].offset = vector():set(0, 0, 0) -- Leave for compatibility with CoC 1.4.22, delete later + data.shapes[1].center = vector():set(0, 0, 0) + + local radii = get_anomaly_radii(anomaly_type) + data.shapes[1].radius = math.random(radii.min, radii.max) + utils_stpk.set_anom_zone_data(data, se_obj) + + return se_obj.id +end + +-- Generates a random valid position from a vertex in radius around a given transition +-- @param se_obj game object of the transition space restrictor +-- @param anomaly_type section of the anomaly to be spawned +-- @param spawn_params table containing the spawn parameters +-- @param position_data (optional) +function generate_valid_position(se_obj, anomaly_type, spawn_params, position_data) + if not utils.valid_type{ caller = "generate_valid_position", + "usr", se_obj, "str", anomaly_type, "tbl", spawn_params } then return end + + local random = math.random + + local level_vertex_id = level.vertex_id + local level_vertex_position = level.vertex_position + + local rootpos = spawn_params.rootpos or se_obj.position + local num_tries = spawn_params.generate_max_tries + local spread_radius = spawn_params.spread_radius + local minimum_proximity = spawn_params.min_anomaly_proximity + + local max_offset = {x = spread_radius, y = spread_radius, z = spread_radius} + if (spawn_params.narrow) then + for k, v in pairs(max_offset) do + max_offset[k] = math.floor(max_offset[k] * CONST_GENERATE_NARROW_FACTOR) + end + end + + local pos = vector():set(0, 0, 0) + + -- In the following, we randomly offset the position to + -- get a valid level vertex id we can spawn an anomaly on + while (num_tries > 0) do + local offset_x = max_offset.x * random() + local pos_x = (random() <= 0.5) and (rootpos.x +offset_x) + or (rootpos.x -offset_x) + + local offset_y = max_offset.y * random() + local pos_y = (random() <= 0.5) and (rootpos.y +offset_y) + or (rootpos.y -offset_y) + + local offset_z = max_offset.z * random() + local pos_z = (random() <= 0.5) and (rootpos.z +offset_z) + or (rootpos.z -offset_z) + + -- Set anomaly position at vertex and check if valid: + pos = vector():set(pos_x, pos_y, pos_z) + + local check_distance -- interpreter would complain bc of goto statements + + pos = utils.get_closest_vertex_pos(pos) + if (not pos) then goto next_try end + + check_distance = pos:distance_to(rootpos) + if (check_distance > spread_radius) then + log_error("Distance to root position is too high (%s)", check_distance) + goto next_try + end + + if (posdata_distance_check(position_data, pos, anomaly_type, minimum_proximity)) then + break + end + + :: next_try :: + num_tries = (num_tries - 1) + end + + if (num_tries <= 0) then + log_error("Unable to generate valid lvid position, aborting.") + return + end + + return pos +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_debug.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_debug.script new file mode 100644 index 000000000..635b8d4e3 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_debug.script @@ -0,0 +1,206 @@ +--[[ + DYNAMIC ZONE + + Original Author(s) + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + +--]] + +parent = _G["dynamic_zone"] +if not (parent and parent.VERSION and parent.VERSION >= 20241224) then return end + +local opt = dynamic_zone_mcm +local utils = dynamic_zone_utils + +------------------------------------------ +-- Global Variables & Constants -- +------------------------------------------ + +CONST_BLOCKSTATECHANGE_NOTIFY_DELAY_MS = 100 +CONST_LOGGING_PREFIX = "[DZT]" -- used for console logging + +valid_logging_channels = { def = "INFO", info = "INFO", warning = "WARNING", error = "ERROR" } +registered_logging_channels = { --[[ + info = instance, + warning = instance, + ... +--]] } + +local log_mcm + +--------------------- +-- Callbacks -- +--------------------- + +function on_game_start() + RegisterScriptCallback("on_game_load", inject_debug_commands) + RegisterScriptCallback("dynzone_changed_block_state", dynzone_changed_block_state) + + -- Due to this, functors called before creating those instances will log to xray console + log_mcm = log_register("info", "Debug") + create_logging_instances() +end + +function inject_debug_commands() + -- no need, if not enabled. Idk if it would even break something + if not (DEV_DEBUG or DEV_DEBUG_DEV) then return end + + local CMD = debug_cmd_list.command_get_list() + + function CMD.dynamic_zone(_, __, x) + x:SendOutput("/ DYNAMIC ZONE " .. parent.VERSION_STRING) + parent.main_routine{ force = true } + end + + function CMD.dynamic_zone_accessible(_, __, x) + x:SendOutput("- Reset all route states!") + parent.addon_safe_removal() + end + + ui_debug_launcher.inject("action", { name = "[DYNZONE] Trigger", + cmd = "dynamic_zone", hide_ui = 2, key = "DIK_D" } ) + ui_debug_launcher.inject("action", { name = "[DYNZONE] Clear routes", + cmd = "dynamic_zone_accessible", hide_ui = 2 } ) +end + +-- Just informs us about the exact block state +-- A bit hacky to prevent recursive referencing +function dynzone_changed_block_state(previous, current) + if (not opt.get("verbose")) then + UnregisterScriptCallback("dynzone_changed_block_state", dynzone_changed_block_state) + end + + -- We only use it in this function, to prevent recursive referencing + local route_manager = dynamic_zone_routes + + -- Done this way, so it shows the updated values changed by other functions + utils.timed_call(CONST_BLOCKSTATECHANGE_NOTIFY_DELAY_MS, function(previous, current) + local output_str = "Previously Blocked routes:" + for route_id, _ in pairs(previous) do + output_str = output_str .. "\n" .. route_manager.route_tostring(route_id, true) + end + if (size_table(previous) > 0) then + log_mcm("%s\nA total of %s routes were blocked.", + output_str, size_table(previous)) + end + + local output_str = "Newly Blocked routes:" + for route_id, _ in pairs(current) do + output_str = output_str .. "\n" .. route_manager.route_tostring(route_id, true) + end + if (size_table(current) > 0) then + log_mcm("%s\nA total of %s routes are freshly blocked.", + output_str, size_table(current)) + end + + local blocked, discovered = 0, 0 + for route_id, route in route_manager.iterate_routes(true) do + blocked = (route.blocked) and (blocked +1) or blocked + discovered = (route.block_discovered) and (discovered +1) or discovered + end + log_mcm("A total of %s routes are blocked (%s discovered)", blocked, discovered) + + return true + end, previous, current) +end + +--------------------------- +-- Debugging -- +--------------------------- + +-- These are mainly used by this script or others where it is more suited than mcm logging +function log(message, ...) + if (not opt.get("verbose")) then return end + local args = {...} + + local output = string.format("%s %s", CONST_LOGGING_PREFIX, message) + printf(output, unpack(args)) +end + +-- These two are more important, thus are always logged to console. +function log_warn(message, ...) + local args = {...} + local output = string.format("~%s %s", CONST_LOGGING_PREFIX, message) + printf(output, unpack(args)) +end + +function log_error(message, ...) + local args = {...} + local output = string.format("!%s %s", CONST_LOGGING_PREFIX, message) + printf(output, unpack(args)) +end + +-- REQUIRES MOD-CONFIGURATION-MENU (MCM) +-- We only create logging instances `on_game_start`, so we don't load mcm_log earlier than necessary. +function create_logging_instances() + if (_g.is_empty(registered_logging_channels)) then + return + elseif not (mcm_log and mcm_log.new) then + log_warn("MCM Logging utility not found. Falling back to console logging.") + return + end + + for channelname, value in pairs(registered_logging_channels) do + if (type(value) == "userdata") then goto continue end + + local logger = mcm_log and mcm_log.new and mcm_log.new(channelname) + if (not logger) then + log_warn("Unable to create a MCM logging instance! Falling back to console logging.") + callstack() + return + end + + logger.continuous = true + logger.enabled = true + registered_logging_channels[channelname] = logger + + :: continue :: + end +end + +-- Called like this: e.g. log_info = debug.log_register("info", "Anomalies") +-- will only return function that prints to logs, when verbose setting is active +-- Will log via the MCM utility, only to console as fallback +-- Using string.format to be able to use same rules as ISO C sprintf +-- @param channelname logging level - defaults to info, if invalid +-- @param identifier optional +-- @returns pointer to logging function which uses mcm logging, when available +function log_register(channelname, identifier) + if (not channelname) then return end + + identifier = identifier and string.upper(identifier) + channelname = valid_logging_channels[string.lower(channelname)] + or valid_logging_channels.def + + registered_logging_channels[channelname] = true + local id_prefix = (identifier and type(identifier == "string")) + and (" - " .. identifier) or "" + + return function(message, ...) + if (not opt.get("verbose")) then return end + local data = { channel = channelname, id = id_prefix } + + local logger = (type(registered_logging_channels[data.channel]) ~= "boolean") + and registered_logging_channels[data.channel] + + -- Fallback for e.g. before `on_game_start` or if `mcm_log` does not exist + if not (logger and logger.log) then + printf(string.format(CONST_LOGGING_PREFIX .. message, ...)) + return + end + + local default_prefix = logger.prefix + if (data.id and data.id ~= "") then + logger.prefix = logger.prefix .. data.id + end + + logger:log(string.format(message, ...)) + logger.prefix = default_prefix + end +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_discovery.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_discovery.script new file mode 100644 index 000000000..64722e799 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_discovery.script @@ -0,0 +1,725 @@ +--[[ + DYNAMIC ZONE + + Original Author(s) + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + + Synopsis + Simple module responsible for updating the route discovery state based + on being close enough to one of the anomalies spawned or alternatively + discovering them via the binoculars. + Also controls mapspot appearance of transitions and adds a blip for + transitions whose state is unknown (not recently discovered). +--]] + +parent = _G["dynamic_zone"] +if not (parent and parent.VERSION and parent.VERSION >= 20241224) then return end + +-------------------------- +-- Dependencies -- +-------------------------- + +local opt = dynamic_zone_mcm +local utils = dynamic_zone_utils +local debug = dynamic_zone_debug +local route_manager = dynamic_zone_routes + +------------------------------------------ +-- Global variables & Constants -- +------------------------------------------ + +CONST_LOGGING_PREFIX = "Discovery" +local log = debug.log_register("info", CONST_LOGGING_PREFIX) + +get_anomaly_rootpos = dynamic_zone_anomalies.get_rootposition + +CONST_DISCOVERY_CHECK_INTERVAL_MS = 5000 + +CONST_MAPSPOT_BLIP_OFFSET_PIXELS = 13 +CONST_MAPSPOT_BLOCKED_TEXTURE = [[dynamic_zone_exit_point_blocked]] +CONST_MAPSPOT_BLOCKED_COLOR = {255, 240, 240, 240} + +CONST_BINOCULAR_CHECK_IN_SIGHT_INTERVAL_MS = 250 +CONST_BINOCULAR_REFRESHRATE_MS = 125 + +CONST_BINOCULAR_HUD_ICON_TEXTURE = [[dynamic_zone_blip_unknown_state]] +CONST_BINOCULAR_HUD_ICON_TEXTURE_SIZE = {19, 21} +CONST_BINOCULAR_HUD_ICON_HOVER_METRES = 1.45 *2 -- Stalker height is roughly 1.45 +CONST_BINOCULAR_HUD_MAX_VISIBLE_TRANSITIONS = 8 + +sound_objs = { + discovery = sound_object("dynamic_zone\\block_discovered"), + binoc_in_progress = sound_object("dynamic_zone\\binoc_discovery_in_progress"), + binoc_aborted = sound_object("dynamic_zone\\binoc_discovery_aborted"), +} + +BINOCULAR_HUD = nil -- current CUIScriptWnd subclass instance +BINOCULAR_DISCOVERY_IN_PROGRESS = false +DISCOVERABLE_TRANSITIONS_ON_CURRENT_LEVEL = false + +-- Temporary Data -> Not saved to m_data +anomalies_to_check = {} -- [anomaly_obj_id] = route_id +discoverable_on_level = {} -- [transition_obj_id] = route_id +mapspot_blips = {} -- [transition_obj_id] = + +--------------------------- +-- Globally Used -- +--------------------------- + +-- used on `parent.actor_on_first_update` and in `parent.main_routine(..)` +function clear_eligible_transitions() + discoverable_on_level = {} +end + +function no_eligible_transitions() + return (not DISCOVERABLE_TRANSITIONS_ON_CURRENT_LEVEL) +end + +function toggle_known_route_state(route_id, notify_on_new_state) + if not utils.valid_type{ caller = "toggle_known_route_state", + "int", route_id } then return end + + if (not eligible_for_discovery(route_id)) then + log("Route #%s was already discovered since last emission.", route_id) + return + end + route_manager.set_route_property(route_id, "recently_discovered", true) + + if (route_manager.route_known_state_differs(route_id)) then + local discovered = route_manager.get_route_property(route_id, "block_discovered") + log("Player discovered %s route #%s!", ((discovered) + and "previously blocked" or "blocked"), route_id) + + route_manager.set_route_property(route_id, "block_discovered", (not discovered)) + if (notify_on_new_state) then + inform_player() + end + end + + for name, attributes in route_manager.iterate_transitions(route_id) do + update_transition_mapspot(name) + end + + remove_anomaly_check_for(route_id) + for k, v in pairs(discoverable_on_level) do + if (v == route_id) then + discoverable_on_level[k] = nil + end + end +end + +-- Changes the mapspot texture and hint for the given transition and adds a blip +-- based on the routes flags. We do this via modded exes functionality. +-- Adds mapspot info blip to transitions to indicate those with unknown state. +-- @param transition_name +-- @param blocked (override; optional) +-- @param only_text (optional; used to only update the text) +function update_transition_mapspot(transition_name, blocked, only_text) + if not utils.valid_type{ caller = "update_transition_mapspot", + "str", transition_name } then return end + + local id, spot, hint = parent.get_transition_marker_info(transition_name) + if utils.assert_failed(id and spot and hint) then return end + + -- Important when e.g. calling this on 'fake_start' + if (not utils.map_spot_exists(id, spot)) then return end + + local route = route_manager.get_route_by_transition(transition_name) + if utils.assert_failed(route, "Transition %s got no assigned route!", transition_name) then return end + + local mark_as_blocked = blocked + if (mark_as_blocked == nil) then + mark_as_blocked = route.block_discovered + end + + local new_hint = get_suited_mapspot_hint(id, hint, mark_as_blocked) + utils.map_spot_change_hint(id, spot, new_hint) + + mapspots_blip_update_for(id, spot) + + if (only_text) then return end + change_mapspot_marker(id, spot, mark_as_blocked) +end + +-- Ignores route flags; To be used before removal of the addon +-- Reverts all map spots to their default look, also removes the blips +function revert_map_spots() + for route_id, route in route_manager.iterate_routes(false) do + if (not route.block_discovered) then goto continue end + for name, _ in route_manager.iterate_transitions(route_id) do + update_transition_mapspot(name, false) + end + + :: continue :: + end + + mapspots_blips_remove() +end + +----------------------- +-- Callbacks -- +----------------------- + +function on_game_start() + RegisterScriptCallback("dynzone_on_before_execute", dynzone_on_before_execute) + RegisterScriptCallback("dynzone_changed_block_state", dynzone_changed_block_state) + RegisterScriptCallback("actor_on_update", actor_on_throttled_update) + + -- Discovery via spawned anomalies + RegisterScriptCallback("actor_on_feeling_anomaly", actor_on_feeling_anomaly) + + -- Binocular discovery + RegisterScriptCallback("actor_on_weapon_zoom_in", actor_on_weapon_zoom_in) + RegisterScriptCallback("actor_on_weapon_zoom_out", actor_on_weapon_zoom_out) + RegisterScriptCallback("actor_on_net_destroy", actor_on_weapon_zoom_out) -- Because of hud visor + RegisterScriptCallback("actor_on_before_death", actor_on_weapon_zoom_out) + + RegisterScriptCallback("on_option_change", on_option_change) + RegisterScriptCallback("on_game_load", cache_mapmarker_info) +end + +-- This is triggered whenever our main routine is triggered, thus after every emission +function dynzone_on_before_execute() + mapspots_blips_show(true) +end + +-- We need to clear our data, it's highly probable that it is invalid. +function dynzone_changed_block_state(previous, new) + clear_eligible_transitions() + + -- If it has unregistered itself + RegisterScriptCallback("actor_on_update", actor_on_throttled_update) +end + +-- Periodically executes as long as it has determined eligible transitions +-- We clear the eligibility table to refresh the list, this way. +actor_on_throttled_update = utils.throttle(CONST_DISCOVERY_CHECK_INTERVAL_MS, true, function() + if (get_eligible_transitions_on_level()) then return end + UnregisterScriptCallback("actor_on_update", actor_on_throttled_update) +end) + +-- Toggles state of route discovery if any anomaly was spawned by our script +function actor_on_feeling_anomaly(obj, tbl) + if (utils.is_table_empty(anomalies_to_check)) then return end + + local obj_id = obj and obj.id and obj:id() + local route_id = anomalies_to_check[obj_id] + if (not route_id) then return end + + log("[%s] Anomaly belongs to route #%s", obj_id, route_id) + toggle_known_route_state(route_id, true) +end + +function actor_on_weapon_zoom_in() + if (no_eligible_transitions()) then return end + RegisterScriptCallback("actor_on_update", check_transition_in_sight) +end + +function actor_on_weapon_zoom_out() + UnregisterScriptCallback("actor_on_update", check_transition_in_sight) + binocular_hud_off() +end + +function on_option_change() + mapspots_blips_show(opt.get("mapspot_blips_enabled"), true) +end + +-- The only purpose of this function is to prevent stuttering due to the usage +-- of the utility function map_spot_get_texture_info(..) +-- This works on the basis of the assumption that each spot got the same attributes +local _cached_mapmarker_info_for +function cache_mapmarker_info() + local spots = {} + + for route_id, route in route_manager.iterate_routes() do + for name, attributes in route_manager.iterate_transitions(route_id) do + local _, spot, __ = parent.get_transition_marker_info(name) + if (utils.map_spot_get_texture_info(spot)) then + _cached_mapmarker_info_for = spot + return + end + end + end +end + +---------------------------- +-- Monkey patches -- +---------------------------- + +SRTeleportMsgBoxOk = ui_sr_teleport.msg_box_ui.OnMsgOk + +-- We only update the discovery state, if player takes the transition +-- Executed through ltx script logic (xr_effects) +function ui_sr_teleport.msg_box_ui.OnMsgOk(self) + -- section from teleport_ini (should also be in txr_routes.routes table) + -- e.g. yan_space_restrictor_to_agroprom_1 + local route_id = route_manager.get_route_id(self.name) + utils.assert(route_id, "SR-Teleport: '%s' got no assigned route", self.name) + + if (not no_eligible_transitions()) then + toggle_known_route_state(route_id) + end + + return SRTeleportMsgBoxOk(self) +end + +------------------------ +-- Main logic -- +------------------------ + +function eligible_for_discovery(route_id) + local route = route_id and route_manager.get_route(route_id) + if utils.assert_failed(route) then return end + + return (not route.recently_discovered) +end + +function remove_anomaly_check_for(route_id) + if not utils.valid_type{ caller = "remove_anomaly_check_for", + "int", route_id } then return end + + for k, v in pairs(anomalies_to_check) do + if (v == route_id) then + anomalies_to_check[k] = nil + end + end +end + +-- Registers eligible transitions for discovery on the current level +-- TODO: Use transition name as key +-- Writes data like this: tbl[transition_ID] = route_id +-- @param force (forces a refresh) +-- @returns true (if eligible transitions exist) +function get_eligible_transitions_on_level(force) + if not (utils.is_table_empty(discoverable_on_level) or force) then return true end + local actor_level = utils.get_mapname() + + if (utils.debug_level_loaded()) then + return + elseif (utils.is_underground(actor_level)) then + log("Underground level loaded, will not check for eligible transitions.") + return + end + + log("Getting eligible transitions for '%s'", actor_level) + + -- We only do this implicitly as this depends on the eligbility list + anomalies_to_check = {} + _g.iempty_table(discoverable_on_level) + + for route_id, route in route_manager.iterate_routes(false) do + if (route.recently_discovered) then goto next_route end + + for name, attributes in route_manager.iterate_transitions(route_id) do + local id = name and get_story_object_id(name) + local se_obj = id and alife_object(id) + if (not se_obj) then goto continue end + + local transition_level = utils.get_mapname(se_obj) + if (actor_level ~= transition_level) then goto continue end + + discoverable_on_level[id] = route_id + + if (route.blocked == route.block_discovered) then break end + for _, anomaly_id in pairs(attributes.spawned_anomalies) do + anomalies_to_check[anomaly_id] = route_id + end + + :: continue :: + end + + :: next_route :: + end + + if (utils.is_table_empty(discoverable_on_level)) then + log("No discoverable transitions on the current level.") + DISCOVERABLE_TRANSITIONS_ON_CURRENT_LEVEL = false + return + end + + log("Discoverable transitions on the current Level:\n%s", + utils_data.print_table(discoverable_on_level, false, true)) + + DISCOVERABLE_TRANSITIONS_ON_CURRENT_LEVEL = true + return true +end + +function inform_player(show_msg) + if (not sound_objs.discovery:playing()) then + sound_objs.discovery:play(player, 0, sound_object.s2d) + end + + if (not show_msg) then return end + local message = game.translate_string("st_dynzone_discovery_message") + news_manager.send_tip(db.actor, message, 0, "recent_surge", + opt.get("discovery_msg_showtime")) +end + +------------------------- +-- Map Markers -- +------------------------- + +function get_suited_mapspot_hint(id, hint) + if not utils.valid_type{ caller = "get_suited_mapspot_hint", + "int", id, "str", hint } then return end + + local route = route_manager.get_route_by_transition(id) + if (utils.assert_failed(route, "ID #%s not a valid transition", id)) then return end + local inactive = route.id and route_manager.route_inactive(route.id) + + local gts = game.translate_string + if (not inactive) and (route.blocked or not route.recently_discovered) then + new_hint = string.format("%s (%s)", gts(hint), + (not route.recently_discovered) and gts("st_dynzone_hint_unknown") + or gts("st_dynzone_hint_blocked")) + else + new_hint = gts(hint) + end + + -- Route info in mapspot tooltip (debug) + if opt.get("verbose") then + local name = get_object_story_id(id) + new_hint = name and string.format("%s\\n[%s, #%s]", new_hint, name, route.id) + or new_hint + end + + return new_hint +end + +-- Changes the mapspot marker according to the blocked state of it's transition +-- Properly resets to original mapspot texture and color +-- @param id game object of the transition +-- @param spot default spot texture +-- @param blocked (optional) +function change_mapspot_marker(id, spot, blocked) + if not utils.valid_type{ caller = "mapspot_mark_blocked", + "int", id, "str", spot, "bool", blocked } then return end + + if (blocked == nil) then -- get info via route manager + local name = get_object_story_id(id) + local route = name and route_manager.get_route_by_transition(name) + if utils.assert_failed(route) then return end + + blocked = route.block_discovered + end + + local texture, color = CONST_MAPSPOT_BLOCKED_TEXTURE + if (not blocked) then + local get_spot = _cached_mapmarker_info_for or spot + local texture_info = utils.map_spot_get_texture_info(get_spot) + + texture = texture_info and texture_info.texture + color = texture_info and texture_info.color + else + color = GetARGB(_g.unpack(CONST_MAPSPOT_BLOCKED_COLOR)) + end + + if utils.assert_failed(texture, "Unable to determine a texture for %s", spot) then + return + end + + log("Changing mapspot texture of (%s, %s) to '%s'", id, spot, texture) + utils.map_spot_change_texture(id, spot, texture) + + if (color) then + log("Changing mapspot color of (%s, %s) to %s (pixelvalue)", id, spot, color) + utils.map_spot_change_color(id, spot, color) + end +end + +-- Toggles the visibility of a mapspot blip. Creates it, if needed. +function mapspots_blip_update_for(transition_id, spot) + if not utils.valid_type{ caller = "mapspot_blip_update_for", + "int", transition_id, "str", spot } then return end + + local name = get_object_story_id(transition_id) + local route = name and route_manager.get_route_by_transition(name) + if (utils.assert_failed(route, "Transition with ID %s has no defined route!", transition_id)) then return end + + if (route_manager.route_inactive(route.id)) then return end + local blip = mapspot_blips[transition_id] + if (not blip) then + mapspot_blips[transition_id] = init_mapspot_blip(transition_id, spot) + blip = mapspot_blips[transition_id] + end + + if (utils.assert_failed(blip, "Failed to initialize a blip for transition '%s'", transition_id)) then return end + blip.Show(opt.get("mapspot_blips_enabled") and not route.recently_discovered) +end + +-- Toggles the display of blips for all mapspots +function mapspots_blips_show(state, conserve_route_flag) + if not utils.valid_type{ caller = "mapspot_blips_show", "bool", state } then return end + + for route_id, route in route_manager.iterate_routes() do + for name, attributes in route_manager.iterate_transitions(route_id) do + local id, spot, _ = parent.get_transition_marker_info(name) + if (utils.assert_failed(id and spot)) then return end + + if (not conserve_route_flag) then + route.recently_discovered = (not state) + end + + mapspots_blip_update_for(id, spot) + end + end +end + +-- Removed all blips and their references, also resets the route flag +-- @param conserve_route_flag (don't alter route flag) +function mapspots_blips_remove(conserve_route_flag) + for id, blip in pairs(mapspot_blips) do + local name = get_object_story_id(id) + local route = name and route_manager.get_route_by_transition(name) + if not (conserve_route_flag or utils.assert_failed(route)) then + route.recently_discovered = false + end + + blip.Show(false) + mapspot_blips[id] = nil + end +end + +-- Courtesy of Catspaw (Addon: Personal Adjustable Waypoints) +-- Init's a mapspot blip fir a given mapspot (id, spot) +-- @returns table +function init_mapspot_blip(id, spot, anchor) + if not utils.valid_type{ caller = "init_mapspot_blip", + "int", id, "str", spot } then return end + + local anchor = anchor or level.map_get_object_spot_static(id, spot) + local xml = CScriptXmlInit() + local xmlroot = "dzt_ui_modifiers" + xml:ParseFile("dzt_ui_elements.xml") + + local blip = {} + blip.id = id + + blip.box = xml:InitStatic(xmlroot, anchor) -- CUIScriptWnd + blip.box:SetWndPos(vector2():set(CONST_MAPSPOT_BLIP_OFFSET_PIXELS, + CONST_MAPSPOT_BLIP_OFFSET_PIXELS +3)) -- sets (x,y) but root is top left + + blip.blip = xml:InitStatic(xmlroot .. ":blip_unknown", blip.box) + blip.blip:SetWndSize(vector2():set(_g.round(19 *0.8), _g.round(21 *0.8))) + + blip.Show = function(tf) + blip.box:Show(tf) + end + + return blip +end + +-- Removes mapspots added by the old method prior to version 20241119 +function mapspots_remove_old() + mapspots_blips_remove(true) + + for route_id, route in route_manager.iterate_routes() do + for transition_name, attributes in route_manager.iterate_transitions(route_id) do + local id, spot, hint = parent.get_transition_marker_info(transition_name) + assert(id and spot and hint) + + level.map_remove_all_object_spots(id) + if (not utils.map_spot_exists(id, spot)) then -- sanity check + utils.map_spot_add(id, spot, hint) + end + + update_transition_mapspot(transition_name) + end + end +end + +--------------------------------- +-- Binocular Discovery -- +--------------------------------- + +-- TODO: use anomalies.get_spawn_parameters(transition_name).rootpos for distance check +check_transition_in_sight = utils.throttle(CONST_BINOCULAR_CHECK_IN_SIGHT_INTERVAL_MS, false, function() + if (BINOCULAR_DISCOVERY_IN_PROGRESS or no_eligible_transitions()) then return end + + local wpn = db.actor:active_item() -- wait, until this is updated + if not (wpn and wpn:section() == "wpn_binoc_inv") then return end + + -- TODO: Use a TimedEvent with an ID to delay HUD display whilst being able to cancel prematurely + binocular_hud_on() + + local look_pos = utils.get_target_pos() + for transition_id, route_id in pairs(discoverable_on_level) do + if (utils.get_proximity_by_id(transition_id) > opt.get("binoc_discovery_max_distance")) then + goto next_transition + elseif (utils.get_point_proximity_by_id(transition_id, look_pos) > opt.get("binoc_discovery_dist")) then + goto next_transition + end + utils.timed_call(CONST_BINOCULAR_REFRESHRATE_MS, check_binocular_state, + { id = transition_id, tg = time_global(), route_id = route_id }) + + log("Forked timed binocular check for transition '%s' (route #%s)", + get_object_story_id(transition_id), route_id) + + BINOCULAR_DISCOVERY_IN_PROGRESS = true + play_binocular_sound_cue() + do break end -- Don't check other transitions + + :: next_transition :: + end +end) + +-- Periodically checks for discovery conditions and aborts accordingly. +function check_binocular_state(data) + local wpn = db.actor:active_item() + local look_pos = utils.get_target_pos() + local hold_time = time_global() - data.tg + local proximity = utils.get_point_proximity_by_id(data.id, look_pos) + + -- no need to repeat this over and over.. avoiding goto's aswell + local function abort_discovery() + BINOCULAR_DISCOVERY_IN_PROGRESS = false + play_binocular_sound_cue() + return true + end + + if (no_eligible_transitions()) then + log("No eligible transitions left to check") + return abort_discovery() + elseif not (wpn and wpn:section() == "wpn_binoc_inv") then + log("Not holding binoculars. Aborting.") + return abort_discovery() + elseif (not axr_main.weapon_is_zoomed) then + log("Binoculars are not zoomed in") + return abort_discovery() + elseif (proximity > opt.get("binoc_discovery_dist")) then + log("Point proximity is now too large. Aborting.") + return abort_discovery() + elseif (hold_time < opt.get("binoc_discovery_holdtime")) then + log("Target has not been focused long enough (%sms)", hold_time) + return + end + + toggle_known_route_state(data.route_id, true) + BINOCULAR_DISCOVERY_IN_PROGRESS = false + return true +end + +function play_binocular_sound_cue() + if (BINOCULAR_DISCOVERY_IN_PROGRESS) then + sound_objs.binoc_in_progress:play(player, 0, sound_object.s2d) + return + elseif (sound_objs.binoc_in_progress:playing()) then + sound_objs.binoc_in_progress:stop() + end + + sound_objs.binoc_aborted:play(player, 0, sound_object.s2d) +end + +------------------------ +-- Visor HUD -- +-- Courtesy of xcvb -- +------------------------ + +function binocular_hud_on() + if BINOCULAR_HUD or (not opt.get("binoc_discovery_hud_enabled")) then return end + BINOCULAR_HUD = binocular_hud() + get_hud():AddDialogToRender(BINOCULAR_HUD) + log("Enabled Binocular-HUD") +end + +function binocular_hud_off() + if (not BINOCULAR_HUD) then return end + get_hud():RemoveDialogToRender(BINOCULAR_HUD) + BINOCULAR_HUD = nil + log("Disabled Binocular-HUD") +end + +class "binocular_hud" (CUIScriptWnd) +function binocular_hud:__init() super() + self:InitControls() +end + +function binocular_hud:__finalize() end + +function binocular_hud:InitControls() + self:SetWndRect(Frect():set(0,0,1024,768)) + self:SetAutoDelete(true) + + self.xml = CScriptXmlInit() + local xml = self.xml + xml:ParseFile("actor_menu.xml") + + self.hud_update_timer = 0 + + self.transitions = {} + self.elements = {} + self.texture = CONST_BINOCULAR_HUD_ICON_TEXTURE + + local size = CONST_BINOCULAR_HUD_ICON_TEXTURE_SIZE + for i = 1, CONST_BINOCULAR_HUD_MAX_VISIBLE_TRANSITIONS do + self.elements[i] = xml:InitStatic("helmet_over", self) + self.elements[i]:InitTexture("ui_mmap_stask_last_02") + self.elements[i]:SetWndSize(vector2():set(size[1], size[2])) + self.elements[i]:Show(false) + end +end + +function binocular_hud:Update() + CUIScriptWnd.Update(self) + self:GatherTransitions() + + -- display eligible transitions in close proximity + for i = 1, CONST_BINOCULAR_HUD_MAX_VISIBLE_TRANSITIONS do + self.elements[i]:Show(false) + + local transition = self.transitions[i] + if (not transition) then goto continue end + + local id = transition.id + + -- To make sure that it is updated immediately after discovery + if not (discoverable_on_level[id]) then goto continue end + + local obj = level.object_by_id(id) + local name = obj and obj:name() + + local pos = name and get_anomaly_rootpos(name) + if (not pos) then + local obj_pos = obj:position() + pos = utils.get_closest_vertex_pos(obj_pos) + or vector():set(obj_pos.x, obj_pos.y, obj_pos.z) + end + + -- Note: The position variable should be temporary + pos.y = pos.y + CONST_BINOCULAR_HUD_ICON_HOVER_METRES + + local wui_pos = pos and vector2():set(game.world2ui(pos)) + if wui_pos then + self.elements[i]:InitTexture(self.texture) + self.elements[i]:SetWndPos(vector2():set(wui_pos.x, wui_pos.y)) + self.elements[i]:Show(true) + end + + :: continue :: + end +end + +function binocular_hud:GatherTransitions() + local tg = time_global() + if (self.hud_update_timer > tg) then return end + self.hud_update_timer = tg + CONST_DISCOVERY_CHECK_INTERVAL_MS + + iempty_table(self.transitions) + if (no_eligible_transitions()) then return end + + local max_distance = opt.get("binoc_discovery_max_distance") + for transition_id, route_id in pairs(discoverable_on_level) do + local distance = utils.get_proximity_by_id(transition_id) + if (distance > max_distance) then goto continue end + + self.transitions[#self.transitions +1] = { id = transition_id, } + + :: continue :: + end +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_mcm.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_mcm.script new file mode 100644 index 000000000..75e0d09b0 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_mcm.script @@ -0,0 +1,206 @@ +--[[ + DYNAMIC ZONE - MCM Options + + Original Author(s) + VodoXleb + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) +--]] + +CONST_ACRONYM = "dynamic_zone" +CONST_DEFAULT_CATEGORY = "general" + +options = {} -- This contains cached option values indexed by option name + +colors = { -- ARGB + title = {255, 255, 255, 0}, + desc = {255, 109, 187, 164}, + notice = {255, 232, 61, 102}, +} + +defaults = { + ["general"] = { + ["chance_path_closed"] = 30, -- for any given path between two maps + ["chance_dz_trigger"] = 75, -- for the zone to change during an emission + ["minimum_map_connections"] = 1, + ["trigger_on_newgame"] = true, -- If some routes should already be disabled at the beginning + ["newgame_grace_period"] = 12, -- For the delay after New game before first blockage (Grace Period) + ["emission_trigger"] = "2ndwave", -- in which phase we trigger + ["addon_removal"] = false, + }, + ["news"] = { + ["percent_path_reveal_unblock"] = 60, + ["percent_path_reveal_block"] = 50, + ["chance_special_character"] = 25, + ["news_play_discovery_sound"] = true, + }, + ["discovery"] = { + ["discovery_msg_showtime"] = 4000, + ["mapspot_blips_enabled"] = true, + ["binoc_discovery_hud_enabled"] = true, + ["binoc_discovery_holdtime"] = 3500, + ["binoc_discovery_dist"] = 40, + ["binoc_discovery_max_distance"] = 350, + }, + ["debug"] = { + ["emission_check_interval"] = 10000, -- in milliseconds + ["validate_parameter_types"] = false, + ["verbose"] = false, + }, +} + +-- Getter for other scripts, using cached values +-- Simplifies getting the values through a unique id +function get(key) + return options[key] +end + +function on_game_start() + RegisterScriptCallback("on_option_change", apply_settings) + apply_settings() +end + +function apply_settings() + for category, settings in pairs(defaults) do + for option,_ in pairs(settings) do + options[option] = get_config(category, option) + end + end +end + +function on_mcm_load() + local op = { + id = CONST_ACRONYM, + text = "ui_mcm_"..CONST_ACRONYM, + gr = {} + } + + local general = { + id = "general", + sh = true, + text = "ui_mcm_"..CONST_ACRONYM.."_general", + gr = { + { id = "title", type ="slide", link = "ui_options_slider_sound_environment", + text = "ui_mcm_"..CONST_ACRONYM.."_main_title", size = {512,50}, spacing = 20 }, + + { id = "trigger_on_newgame", type = "check", val = 1, + def = defaults["general"]["trigger_on_newgame"] }, + { id = "newgame_grace_period", type = "track", val = 2, min = 0, max = 96, step = 12, + def = defaults["general"]["newgame_grace_period"] }, + { id = "chance_dz_trigger", type = "track", val = 2, min = 0, max = 100, step = 5, + def = defaults["general"]["chance_dz_trigger"] }, + { id = "emission_trigger", type = "list", val = 0, def = defaults["general"]["emission_trigger"], + content = { + { "impact", CONST_ACRONYM.. "_emission_trigger_impact" }, + { "1stwave", CONST_ACRONYM.. "_emission_trigger_1stwave" }, + { "2ndwave", CONST_ACRONYM.. "_emission_trigger_2ndwave" }, + { "rumble", CONST_ACRONYM.. "_emission_trigger_rumble" }, + }, + }, + { id = "chance_path_closed", type = "track", val = 2, min = 0, max = 100, step = 5, + def = defaults["general"]["chance_path_closed"] }, + { id = "minimum_map_connections", type = "track", val = 2, min = 0, max = 4, step = 1, + def = defaults["general"]["minimum_map_connections"] }, + + { id = "divider", type = "line" }, + { id = "addon_removal", type = "check", val = 1, def = defaults["addon_removal"] }, + } + } + + local news = { + id = "news", + sh = true, + text = "ui_mcm_"..CONST_ACRONYM.."_news", + gr = { + { id = "title", type ="slide", link = "ui_options_slider_news", + text = "ui_mcm_"..CONST_ACRONYM.."_news_title", size = {512,50}, spacing = 20 }, + + { id = "header", type = "desc", text = "ui_mcm_"..CONST_ACRONYM.."_news_desc", clr = colors.desc}, + + { id = "news_play_discovery_sound", type = "check", val = 1, + def = defaults["news"]["news_play_discovery_sound"] }, + { id = "percent_path_reveal_unblock", type = "track", val = 2, min = 0, max = 100, step = 5, + def = defaults["news"]["percent_path_reveal_unblock"] }, + { id = "percent_path_reveal_block", type = "track", val = 2, min = 0, max = 100, step = 5, + def = defaults["news"]["percent_path_reveal_block"] }, + { id = "chance_special_character", type = "track", val = 2, min = 0, max = 100, step = 5, + def = defaults["news"]["chance_special_character"] }, + } + } + + local discovery = { + id = "discovery", + sh = true, + text = "ui_mcm_"..CONST_ACRONYM.."_discovery", + gr = { + { id = "title", type ="slide", link = "ui_options_slider_emission", + text = "ui_mcm_"..CONST_ACRONYM.."_discovery_title", size = {512,50}, spacing = 20 }, + + { id = "discovery_msg_showtime", type = "track", val = 2, min = 1000, max = 10000, step = 500, + def = defaults["discovery"]["discovery_msg_showtime"] }, + { id = "mapspot_blips_enabled", type = "check", val = 1, + def = defaults["discovery"]["mapspot_blips_enabled"] }, + + { id = "divider", type = "line" }, + + { id = "binoc_discovery_hud_enabled", type = "check", val = 1, + def = defaults["discovery"]["binoc_discovery_hud_enabled"] }, + { id = "binoc_discovery_holdtime", type = "track", val = 2, min = 1000, max = 10000, step = 500, + def = defaults["discovery"]["binoc_discovery_holdtime"] }, + { id = "binoc_discovery_dist", type = "track", val = 2, min = 20, max = 80, step = 5, + def = defaults["discovery"]["binoc_discovery_dist"] }, + { id = "binoc_discovery_max_distance", type = "track", val = 2, min = 150, max = 500, step = 25, + def = defaults["discovery"]["binoc_discovery_max_distance"] }, + } + } + + local debug = { + id = "debug", + sh = true, + text = "ui_mcm_"..CONST_ACRONYM.."_debug", + gr = { + { id = "title", type ="slide", link = "ui_options_slider_sound_environment", + text = "ui_mcm_"..CONST_ACRONYM.."_debug_title", size = {512,50}, spacing = 20 }, + + { id = "header", type = "desc", text = "ui_mcm_"..CONST_ACRONYM.."_debug_desc", clr = colors.desc}, + + { id = "verbose", type = "check", val = 1, + def = defaults["debug"]["verbose"] }, + { id = "validate_parameter_types", type = "check", val = 1, + def = defaults["debug"]["validate_parameter_types"] }, + { id = "emission_check_interval", type = "track", val = 2, min = 2000, max = 20000, step = 500, + def = defaults["debug"]["emission_check_interval"] }, + } + } + + table.insert(op.gr, general) + table.insert(op.gr, news) + table.insert(op.gr, discovery) + table.insert(op.gr, debug) + + return op +end + +function get_config(id, key) + if not (key and type(key) == 'string') then return end + id = (id and type(id) == 'string') and id or CONST_DEFAULT_CATEGORY + + if ui_mcm and type(ui_mcm.get) == 'function' then + return ui_mcm.get(CONST_ACRONYM .. "/".. id .. "/" .. key) + end + + return defaults[id][key] +end + +function set_config(id, key, value) + if not (key and type(key) == 'string') then return end + id = (id and type(id) == 'string') and id or CONST_DEFAULT_CATEGORY + + if (not ui_mcm and type(ui_mcm.set) == 'function') then return end + ui_mcm.set(CONST_ACRONYM .. "/".. id .. "/" .. key, value) +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_news.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_news.script new file mode 100644 index 000000000..dfa8401f9 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_news.script @@ -0,0 +1,339 @@ +--[[ + DYNAMIC ZONE - PDA News + + Original Author(s) + Singustromo + VodoXleb + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + +--]] + +parent = _G["dynamic_zone"] +if not (parent and parent.VERSION and parent.VERSION >= 20241224) then return end + +-------------------------- +-- Dependencies -- +-------------------------- + +local opt = dynamic_zone_mcm +local utils = dynamic_zone_utils +local debug = dynamic_zone_debug +local route_manager = dynamic_zone_routes +local route_discovery = dynamic_zone_discovery + +--------------------------------- +-- Globals & Constants -- +--------------------------------- + +CONST_LOGGING_PREFIX = "Dynamic News" +local log = debug.log_register("info", CONST_LOGGING_PREFIX) +local log_warn = debug.log_register("warning", CONST_LOGGING_PREFIX) +local log_err = debug.log_register("error", CONST_LOGGING_PREFIX) + +CONST_RANDOMIZER_BEZIER_PARAMETERS = { 0, .0, .2, .9 } -- 41.9% +CONST_PROPAGATION_INTERVAL_MS = 20000 +CONST_FALLBACK_DELAY_MIN_MS = 500 +CONST_FALLBACK_DELAY_MAX_MS = CONST_PROPAGATION_INTERVAL_MS * 0.5 + +CONST_MESSAGE_MAX_STRINGS_TO_ITERATE = 20 +CONST_STRING_ID_PREFIX = "st_dynzone_news" +CONST_STRING_ID_FALLBACK = CONST_STRING_ID_PREFIX .. "_fallback" +CONST_STRING_ID_SUFFIX_BLOCKED = "blocked" +CONST_STRING_ID_SUFFIX_OPENED = "opened" + +CONST_NEWS_FALLBACK_ICON = "ui_iconsTotal_grouping" +CONST_MESSAGE_FALLBACK_NAME = "Bratan" + +routes_to_reveal = {} -- routes whose changes will be propagated by other stalkers. + +function clear() + log("Cleared route propagation queue") + routes_to_reveal = {} +end + +special_characters = { + -- [story_id] = identifier (for strings) + ["esc_m_trader"] = "sidorovich", -- Loner + ["bar_dolg_general_petrenko_stalker"] = "petrenko", -- Duty + ["mil_smart_terrain_7_7_freedom_leader_stalker"] = "lukash", -- Freedom +-- ["mar_smart_terrain_base_stalker_leader_marsh"] = "cold", -- Clear Sky + ["yan_stalker_sakharov"] = "sakharov", -- Ecologists + ["cit_killers_merc_trader_stalker"] = "dushman", -- Mercenaries + ["agr_smart_terrain_1_6_near_2_military_colonel_kovalski"] = "kovalski", -- Military + ["zat_b7_bandit_boss_sultan"] = "sultan", -- Bandits + ["pri_monolith_monolith_trader_stalker"] = "krolik", -- Monolith +} + +------------------------------ +-- Just Shortcuts -- +------------------------------ + +local ctime_to_tbl = utils_data.CTime_to_table +local tbl_to_ctime = utils_data.CTime_from_table + +-- Using bezier curves for non-linear probability and to clamp result +-- Used so mean will be set percentage over time (of the time frame) +function get_random_time(lower, upper) + local randomizer = libmath_bezier and libmath_bezier.get_random_value + + if utils.assert_failed(randomizer, "Bézier script not found. Using math.random()") then + return math.random(lower, upper) + end + + return randomizer(lower, upper, CONST_RANDOMIZER_BEZIER_PARAMETERS) +end + +------------------------- +-- Callbacks -- +------------------------- + +function on_game_start() + RegisterScriptCallback("dynzone_changed_block_state", + discover_changed_routes_via_news) + + RegisterScriptCallback("actor_on_update", check_timed_unlocks) +end + +function discover_changed_routes_via_news(previously_blocked_routes, new_blocked_routes) + clear() + queue_routes_for_propagation(previously_blocked_routes, + opt.get("percent_path_reveal_unblock"), CONST_STRING_ID_SUFFIX_OPENED) + queue_routes_for_propagation(new_blocked_routes, + opt.get("percent_path_reveal_block"), CONST_STRING_ID_SUFFIX_BLOCKED) + + RegisterScriptCallback("actor_on_update", check_timed_unlocks) +end + +-- Iterates through the route discovery queue and +-- checks if any of them are due to being propagated +check_timed_unlocks = utils.throttle(CONST_PROPAGATION_INTERVAL_MS, true, function() + if (utils.is_table_empty(routes_to_reveal)) then + log("No routes in the news queue. Unregistered Callback.") + UnregisterScriptCallback("actor_on_update", check_timed_unlocks) + return + end + + local current_ctime = game.get_game_time() + log("Current time: %s", string.format("%d/%.2d/%.2d %.2d:%.2d:%.2d", + current_ctime:get(Y,M,D,h,m,s,ms))) + + for route_id, data in pairs(routes_to_reveal) do + utils.assert(data, "Undefined Route data") + utils.assert(data.reveal_time, "Undefined Route reveal time") + + local reveal_time = tbl_to_ctime(data.reveal_time) + local remaining_time_ms = (reveal_time:diffSec(current_ctime) / level.get_time_factor()) * 1000 + reveal_time:sub(current_ctime) + + if (remaining_time_ms >= CONST_PROPAGATION_INTERVAL_MS) then + local _, __, d, h, m, s, ___ = reveal_time:get(Y,M,D,h,m,s,ms) + log("Route #%s will be propagated in %sd %sh %sm %ss", + route_id, (d -1), h, m, s) + + goto continue + end + + remaining_time_ms = (remaining_time_ms < 0) + and math.random(CONST_FALLBACK_DELAY_MIN_MS, CONST_FALLBACK_DELAY_MAX_MS) + or remaining_time_ms + + log("Route #%s will be propagated in %ss (realtime)", route_id, + string.format("%.1f", remaining_time_ms / 1000)) + + utils.assert(data.reveal_type, "Undefined route reveal type!") + utils.timed_call(remaining_time_ms, function() + propagate_route_state_change(route_id, data.reveal_type) + return true + end) + + :: continue :: + end +end) + +-------------------------- +-- Main logic -- +-------------------------- + +function propagate_route_state_change(route_id, reveal_type) + if not utils.valid_type{ caller = "propagate_route_state_change", + "int", route_id } then return end + + local route = route_manager.get_route(route_id) + local levels, sender = route and route.connects + + if math.random() > (opt.get("chance_special_character") / 100) then + sender = find_random_stalker_on_level_pair(levels) + else + sender = find_special_character_on_level_pair(levels) + end + + local route_state_differs = route_manager.route_known_state_differs(route_id) + local play_discovery_sound = opt.get("news_play_discovery_sound") and route_state_differs + + if not utils.assert_failed(sender, "Sender for route #%s is nil!", route_id) then + local anomaly_theme = route_manager.get_route_property(route_id, "anomaly_theme") + send_route_news_tip(reveal_type, 0, sender, 10, levels, anomaly_theme, play_discovery_sound) + end + + -- TODO: Check, if still eligible to prevent log spamming at this point + -- We still want to propagate the information, nonetheless. + log("Revealing %s state of route #%s via news.", reveal_type, route_id) + route_discovery.toggle_known_route_state(route_id, play_discovery_sound) + + routes_to_reveal[route_id] = nil +end + +function queue_routes_for_propagation(selected_routes, percent_to_reveal, reveal_type) + local indexed_routes = {} + utils.index_keys(selected_routes, indexed_routes) + + -- time before next emission when all reveal messages should be posted + local next_emission_in_hours = surge_manager and surge_manager.get_surge_manager + and (surge_manager.get_surge_manager()._delta / (60^2)) -- game time + + if (not next_emission_in_hours) then + next_emission_in_hours = ui_options.get("alife/event/emission_frequency") + log_warn("Surge manager not available, using frequency set in options.") + end + + local revealed = 1 + local amount_to_reveal = math.floor(#indexed_routes * (percent_to_reveal/100)) + for id in utils.random_numbered_sequence(1, #indexed_routes) do + if (revealed > amount_to_reveal) then goto continue end + revealed = revealed +1 + + local minutes = 6 * get_random_time(3, next_emission_in_hours * 10) + local hours = math.floor(minutes / 60) + minutes = minutes % 60 + local days = math.floor(hours / 24) + hours = hours % 24 + + local add_time = game.CTime() + + -- days +1 so we get proper result (engine quirk) + add_time:set(1, 1, (days +1), hours, minutes, math.random(0, 59), 0) + + local selected_time = game.get_game_time() + selected_time:add(add_time) + + log("Queued route #%s for propagation (%s)", id, reveal_type) + routes_to_reveal[indexed_routes[id]] = { + route = selected_routes[indexed_routes[id]], + reveal_time = ctime_to_tbl(selected_time), -- don't save userdata + reveal_type = reveal_type, + } + + :: continue :: + end +end + +function find_random_stalker_on_level_pair(levels) + if not utils.valid_type{ caller = "find_random_stalker_on_level_pair", + "tbl", levels } then return end + + for id in utils.random_numbered_sequence(1, 2^16 -2) do + local se_obj = alife():object(id) + if not (se_obj) then goto continue end + + if IsStalker(nil, se_obj:clsid()) + and se_obj:alive() + and se_obj:community() ~= "zombied" + and se_obj:community() ~= "trader" + and se_obj:community() ~= "greh" + and se_obj:community() ~= "isg" + and se_obj:community() ~= "renegade" + and se_obj.group_id ~= 65535 + and (get_object_story_id(se_obj.group_id) == nil) + and string.find(se_obj:name(),"sim_default_") + and utils.table_has(levels, utils.get_mapname(se_obj)) then + return id + end + + :: continue :: + end +end + +function find_special_character_on_level_pair(levels) + if not utils.valid_type{ caller = "find_special_character_on_level_pair", + "tbl", levels } then return end + + local found_stalkers = {} + for k, identifier in pairs(special_characters) do + local id = get_story_object_id(k) + local se_obj = id and alife_object(id) + if not (se_obj) then goto continue end + + local character_map = utils.get_mapname(se_obj) + local connected_maps = character_map and utils.get_directly_connected_maps(character_map) + + -- Route should at least be indirectly connected to the senders map + if utils.table_contains(connected_maps, levels) then + found_stalkers[#found_stalkers + 1] = se_obj.id + end + + :: continue :: + end + + return found_stalkers[math.random(1, #found_stalkers)] + or find_random_stalker_on_level_pair(levels) +end + +function send_route_news_tip(news_reveal_type, timeout, sender_id, showtime, news_levels, news_anom_theme, suppress_pda_sound) + timeout = timeout or 0 + showtime = showtime or 5 + + local npc = alife():object(sender_id) + if (not npc) then return end + + local actor = db.actor + local texture = (npc.character_icon) and npc:character_icon() or CONST_NEWS_FALLBACK_ICON + local special_character_nickname = special_characters[get_object_story_id(npc.id)] + local npc_story_id = special_character_nickname or npc:community() + local msg_to_translate = string.format("%s_%s_%s_", CONST_STRING_ID_PREFIX, npc_story_id, news_reveal_type) + + local phrases = {} + for i = 1, CONST_MESSAGE_MAX_STRINGS_TO_ITERATE do + if (utils.has_translation(msg_to_translate .. i)) then + phrases[#phrases +1] = i + end + end + + if (utils.is_table_empty(phrases)) then + log_warn("Undefined string group: '%s'. Using fallback.", msg_to_translate:sub(1, -2)) + msg_to_translate = CONST_STRING_ID_FALLBACK .. "_" .. news_reveal_type + else + msg_to_translate = msg_to_translate .. phrases[math.random(1, #phrases)] + end + + -- Make sure $FROM is the senders level, when route connects sender map + local sender_level = utils.get_mapname(npc) + local index = utils.index_of(news_levels, sender_level) or math.random(1, #news_levels) + local level_from, level_to = news_levels[index], news_levels[#news_levels -index +1] + utils.assert(level_from and level_to) + + local character_name = (npc.character_name) and npc:character_name() + local news_caption = character_name or game.translate_string("st_tip") + + -- TODO: Maybe need a debug mode flag for cases such as this + news_caption = (opt.get("verbose")) + and string.format("%s (%s)", news_caption, utils.get_mapname(npc)) + or news_caption + + local anomaly_theme_string = dynamic_zone_anomalies.get_theme_string(news_anom_theme) or "" + local news_text = game.translate_string(msg_to_translate) + + news_text = news_text:gsub("%$SENDER_NAME", character_name or CONST_MESSAGE_FALLBACK_NAME) + news_text = news_text:gsub("%$FROM", game.translate_string(level_from)) + news_text = news_text:gsub("%$TO", game.translate_string(level_to)) + news_text = news_text:gsub("%$ANOM_THEME", game.translate_string(anomaly_theme_string)) + + actor:give_game_news(news_caption, news_text, texture, timeout *1000, showtime *1000, 0) + if (not suppress_pda_sound) then + xr_sound.set_sound_play(AC_ID, "pda_tips") -- play default sound + end +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_routes.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_routes.script new file mode 100644 index 000000000..49cf8013b --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_routes.script @@ -0,0 +1,482 @@ +--[[ + DYNAMIC ZONE + + Original Author(s) + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + + This file provides the rough structure for saving transitions and + their pairs - called routes in this context. + + Additional info: + tables, functions, userdata and threads are passed around by reference, + while numbers, booleans, and nil are passed by value + Despite this we reference entries by their index because both tables + are saved in m_data. Can't reference them. +--]] + +parent = _G["dynamic_zone"] +if not (parent and parent.VERSION and parent.VERSION >= 20241224) then return end + +-------------------------- +-- Dependencies -- +-------------------------- + +-- verified in main script +local utils = dynamic_zone_utils +local debug = dynamic_zone_debug + +CONST_LOGGING_PREFIX = "Routes" +local log = debug.log_register("info", CONST_LOGGING_PREFIX) +local log_error = debug.log_register("error", CONST_LOGGING_PREFIX) + +--------------------- +-- Structure -- +--------------------- + +registered_routes = {} +registered_transitions = { +--[[ + [size] = , + [transition_name] = { + route = route_id, -- index in registeres_routes + master = true, -- exception for 1 -> n routes (e.g. truck cemetary) + spawned_anomalies = {} + }, + ... +--]] +} + +function route_count() + return ((utils.is_table_empty(registered_routes)) + and 0 or size_table(registered_routes)) +end + +function transition_count() + return (registered_transitions.size or 0) +end + +function clear() + registered_routes = {} + registered_transitions = {} +end + +-- first initialization of a route +--- @returns id of route (index) +function route_create() + local id = #registered_routes +1 + + registered_routes[id] = { + id = id, -- Needed in rare cases + members = { }, -- transition names + connects = { }, -- level names (game_levels.ltx) + blacklisted = false, + unlocked = true, + blocked = false, + block_discovered = false, + recently_discovered = false, -- set during emission (controls blip) + anomaly_theme = 0, + } + + return id +end + +function transition_register(transition_name, route_id) + if not utils.valid_type{ caller = "transition_register", "str", transition_name, + "tbl", registered_routes[route_id] } then return end + + local id = get_story_object_id(transition_name) + if (utils.assert_failed(id, "%s is not a Story-ID. Not registered.")) then return end + + local route_members = registered_routes[route_id].members + if utils.table_has(route_members, transition_name) then return end + + registered_transitions[transition_name] = { + route = route_id, + master = false, + spawned_anomalies = {}, -- holds the object ids + } + + table.insert(route_members, transition_name) + + local index = (registered_transitions.size or 0) +1 + registered_transitions.size = index + return index +end + +------------------------------------------------------------------------------- + +function transition_table_register(tbl, route_id) + local registered = {} + + if not utils.valid_type{ caller = "transition_table_register", + "tbl", tbl, "int", route_id } then return registered end + + for _, transition_name in pairs(tbl) do + if not transition_register(transition_name, route_id) then + log_error("Transition '%s' has already been registered!", transition_name) + else + registered[#registered +1] = transition_name + end + end + + return registered +end + +-- @returns mutable reference +function get_route(route_id) + return registered_routes[route_id] +end + +-- @returns mutable reference +function get_transition(transition_name) + return registered_transitions[transition_name] +end + +function route_exists(route_id) + return (nil ~= registered_routes[route_id]) +end + +function transition_exists(transition_name) + return (nil ~= registered_transitions[transition_name]) +end + +------------------------------------------------------------------------------- + +-- Wacky implementation +-- TODO: Improve condition declaration and parsing +-- Conditions are table entries (route flags) which are or'ed +-- attributes are negated with an '!' or can be joined via an and '*' +-- e.g. `get_routes{"blocked*!discovered", "!blocked*discovered"}` +-- Should only be used with route flags (true, false) +-- @returns (route_ids) +function get_routes(conditions) + if not utils.valid_type{ caller = "get_routes", "tbl", conditions } then return end + if utils.is_table_empty(conditions) then return end + + local matches = {} + + local func_body = "" + for _, condition in pairs(conditions) do + local parsed = condition + parsed = parsed:gsub('*!', ' and not ref.') + parsed = parsed:gsub('*', ' and ref.') + parsed = parsed:gsub('!', 'not ref.') + parsed = (string.find(parsed, "^not")) and parsed or "ref." .. parsed + func_body = func_body .. "(" .. parsed .. ") or " + end + func_body = func_body:sub(1, -5) -- remove last ' or ' + + local to_eval = "return function(ref) return (" .. func_body .. ") end" + local func, err = loadstring(to_eval) + if (err) then + log_error("Unable to evaluate '%s'\n! %s", to_eval, err) + return + end + + -- loadstring encapsulates input into another function + local check_func = func() + + for route_id, route in iterate_routes(true) do + local status, retval = pcall(check_func, route) + + if (status and retval) then + matches[#matches +1] = route_id + end + end + + return matches +end + +------------------------------------------------------------------------------- + +-- Filters locked and blacklisted routes by default +-- @returns name, modifiable route reference +function iterate_routes(include_inactive) + local index = 0 + + return function() + index = index + 1 + + if not (include_inactive) then + while (registered_routes[index] and route_inactive(index)) do + index = index + 1 + end + end + + if (index <= #registered_routes) then + return index, registered_routes[index] + end + end +end + +-- @returns name, mutable-reference +function iterate_transitions(route_id) + local route = get_route(route_id) + local members = route and route.members + if (not members) then return end + + local index = 0 + return function() + index = index + 1 + if (index > #members) then return end + + return members[index], get_transition(members[index]) + end +end + +------------------------------------------------------------------------------- + +function set_transition_property(name, property, value) + local transition = get_transition(name) + if not utils.valid_type{ caller = "set_transition_property", + "tbl", transition, "str", property} then return end + + if (type(value) == 'nil') then return end + if (type(transition[property]) == "nil") then return end + + transition[property] = value + return true +end + +-- @returns immutable reference +function get_transition_property(name, property) + local transition = get_transition(name) + if (not transition) then return end + + return transition[property] +end + +------------------------------------------------------------------------------- + +function set_route_property(route_id, property, value) + local route = get_route(route_id) + if not utils.valid_type{ caller = "set_route_property", + "tbl", route, "str", property} then return end + + if (type(value) == 'nil') then return end + if (type(route[property]) == "nil") then return end + + route[property] = value + return true +end + +-- @returns immutable reference +function get_route_property(route_id, property) + local route = get_route(route_id) + if (not route) then return end + + return route[property] +end + +function get_route_id(transition_name) + local transition = get_transition(transition_name) + return (transition and transition.route) +end + +-- used when we only have the transition name +-- @returns modifyable route reference +function get_route_by_transition(gizmo) + local transition_name = (type(gizmo) == "number") + and get_object_story_id(gizmo) or gizmo + + if (utils.assert_failed(transition_name)) then return end + + local transition = get_transition(transition_name) + return (transition and get_route(transition.route)) +end +has_route = get_route_by_transition -- alias for readability's sake + +-- @returns immutable reference +function get_route_members(route_id) + local route = get_route(route_id) + return (route and route.members) +end + +------------------------------------------------------------------------------- + +function route_inactive(route_id) + local route = get_route(route_id) + if (not route) then return true end + + return (route.blacklisted or (not route.unlocked)) +end + +-- only really need this, if we do not replace accessible zone +function route_unlock(route_id) + local route = get_route(route_id) + if (not route) then return end + + route.unlocked = true + return true +end + +function route_unlocked(route_id) + local route = get_route(route_id) + if (not route) then return end + + return (route.unlocked) +end + +function route_locked(route_id) + return (not route_unlocked(route_id)) +end + +------------------------------------------------------------------------------- + +function route_block(route_id) + local route = get_route(route_id) + if not (route and route.unlocked) then return end + + route.blocked = true + return true +end + +function route_unblock(route_id) + local route = get_route(route_id) + if not (route and route.unlocked and route.blocked) then return end + + route.blocked = false + return true +end + +function route_blocked(route_id) + local route = get_route(route_id) + if (not route) then return end + + return (route.blocked) +end + +------------------------------------------------------------------------------- + +-- We also pass an additional functor to be executed here +function route_discover(route_id, functor, ...) + local vararg = {...} + + local route = get_route(route_id) + if not (route and route.blocked) then return end + + route.block_discovered = true + + if (functor and type(functor) == "function") then + functor(unpack(vararg)) + end + + return true +end + +function route_discovered(route_id) + local route = get_route(route_id) + return (route and route.block_discovered) +end + +function route_known_state_differs(route_id) + local route = get_route(route_id) + return route and (route.blocked ~= route.block_discovered) +end + +------------------------------------------------------------------------------- + +function transition_tostring(transition_name, indentation, indent_str) + indentation = (indentation) or 0 + indent_str = (indent_str) or " " + local transition = get_transition(transition_name) + local string = string.rep(indent_str, indentation) + .. "[" .. transition_name .. "] = {\n" + + for key, value in pairs(transition) do + if (key == "route") then + goto next_attribute + end + + string = string .. string.rep(indent_str, indentation +1) + .. key .. " = " + + if (type(value) == "table") then + string = string .. "{" .. table.concat(value, ",") .. "}" + else + string = string .. tostring(value) + end + string = string .. "\n" + + :: next_attribute :: + end + + return string .. string.rep(indent_str, indentation) .. "}\n" +end + +-- crude and specific string generation of attribute tables +function route_tostring(route_id, include_member_attributes) + local route = get_route(route_id) + if (not route) then + log_error("Printinfo No route with ID #%s !", route_id) + return + end + + local indentation = " " + local string = string.format("[%03d]\n", route_id) + for key, value in pairs(route) do + if (key == 'id') then goto next_attribute end + + string = string .. indentation .. key .. " = " + + if (type(value) ~= "table") then + string = string .. tostring(value) + goto continue + end + + if ((not include_member_attributes) or key ~= "members") then + string = string .. "{" .. table.concat(value, ", ") .. "}" + goto continue + end + + -- lazy way to serialize member attributes + string = string .. "{\n" + for _, section in pairs(value) do + string = string .. transition_tostring(section, 2, indentation) + end + string = string .. indentation .. "}" + + :: continue :: + string = string .. "\n" + + :: next_attribute :: + end + + return string:sub(1, -2) -- remove last new line +end + +-- Prints all routes with the specified attributes +-- @returns amount of all blocked routes +function print_routes(conditions) + local output_string = string.format("Route Attributes%s: ", + (conditions) and " (" .. table.concat(conditions, ", ") .. ")" or "") + + local routes = get_routes(conditions) + if (not routes or utils.is_table_empty(routes)) then return end + + for _, route_id in pairs(routes) do + output_string = output_string .. "\n" .. route_tostring(route_id, true) + end + + log("%s", output_string) +end + +-- Prints all the information agnostic to what type the parameter is +function printinfo(gizmo) + local output_string = "Attributes of" + if route_exists(gizmo) then + output_string = string.format("%s route #%s:\n%s", + output_string, gizmo, route_tostring(gizmo, true)) + elseif transition_exists(gizmo) then + output_string = string.format("%s transition '%s':\n%s", + output_string, gizmo, transition_tostring(gizmo)) + else return end + + log("%s", output_string) +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_utils.script b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_utils.script new file mode 100644 index 000000000..85da64a5b --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/dynamic_zone_utils.script @@ -0,0 +1,641 @@ +--[[ + DYNAMIC ZONE + + Original Author(s) + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + (https://creativecommons.org/licenses/by-nc-sa/4.0) + + This script contains general purpose utility functions and logic used + to decouple the vanilla anomaly logic from the addon logic. + + We've taken some inspiration from NLTP_ASHES' Western Goods. +--]] + +parent = _G["dynamic_zone"] +if not (parent and parent.VERSION and parent.VERSION >= 20241224) then return end + +CONST_GAMETICK_DURATION_MS = 16 +CONST_DEFAULT_PROXIMITY_DISTANCE = 2^16 -1 +CONST_MAX_VALID_LVID = 2^32 -2 + +------------------------- +-- Dependencies +------------------------- + +local opt = dynamic_zone_mcm +local debug = dynamic_zone_debug + +CONST_LOGGING_PREFIX = "Utilities" +local log = debug.log_register("info", CONST_LOGGING_PREFIX) +local log_error = debug.log_register("error", CONST_LOGGING_PREFIX) + +---------------------------- +-- Input Validation -- +---------------------------- + +-- Inspired by Western Goods +-- Checks, if all necessary parameters are non-nil and have the correct type +-- Use it like this: valid_type{ caller = "function_name", type, value, ... } +-- The boolean type explicitely accepts only true|false as values +-- @param tbl +-- @returns boolean +function valid_type(tbl) + if (not opt.get("validate_parameter_types")) then return true end + + local type_alias = { + int = "number", str = "string", tbl = "table", + fn = "function" , bool = "boolean", usr = "userdata", + } + + local caller = tbl.caller and string.format("[%s] ", tbl.caller) or "" + local param_index, encountered_error = 1, false + for i=1, #tbl, 2 do + local typ, value, value_type = tbl[i], tbl[i +1] + typ = type_alias[typ] or typ + + if not (typ == "boolean" or value) then + log_error("%sParameter no. %s is nil%s", caller, param_index, callstack(nil, true)) + encountered_error = true + goto continue + end + + -- also accounts for nil values (it's own type) + value_type = type(value) + if value_type ~= typ then + log_error("%sType mismatch for parameter no. %s (%s != %s)%s", + caller, param_index, value_type, typ, callstack(nil, true)) + encountered_error = true + end + + :: continue :: + param_index = param_index +1 + end + + return (not encountered_error) +end + +-- Alternative to native assert that does not crash the game nor is intended to +-- alter the control flow directly. It merely logs the message and a +-- callstack via the default methods used by this addon +-- @param condition (boolean) +-- @param message (optional; format) +-- @param vararg (format elements) +-- @returns true when assertion failed +function assert(condition, message, ...) + condition = (type(condition) == nil) or condition -- nil-checking + if (not opt.get("validate_parameter_types")) then return (not condition) end + + if (not condition) then + local args = {...} + message = (message and type(message) == "string") and message or "failed!" + + log_error("%s%s", string.format("Assertion: " .. message, + unpack(args)), callstack(nil, true)) + + return true + end +end + +-- Just an alias for usage in if-statements +assert_failed = assert + +--------------------------- +-- Type Conversion -- +--------------------------- + +-- Only returns true, if string is "true" or of type bool +function string_to_bool(str) return (str == "true" or s == true) end + +-- Converts a comma delimited string into a 3 dimensional vector +-- @returns vector on success +function string_to_vector(str) + if not valid_type{ caller = "string_to_vector", "str", str } then + return + end + + local tbl = str_explode(str, ",") or {} + if assert_failed(#tbl == 3, "Invalid posdata (not 3 elements)") then return end + + for index, value in pairs(tbl) do + tbl[index] = tonumber(value) + if assert_failed(tbl[index], "Element is not a number") then return end + end + + return vector():set(tbl[1], tbl[2], tbl[3]) +end + +-- Converts a comma delimited string in the form of +-- `x, y, z, lvid, gvid` into positional data +-- @returns position data as table (pos, lvid, gvid) +function string_to_posdata(str) + if not valid_type{ caller = "string_to_posdata", "str", str } then + return + end + + local tbl = str_explode(str, ",") + if assert_failed(#tbl == 5, "Invalid posdata (not 5 elements)") then return end + + -- Convert all substrings to numbers + for index, value in pairs(tbl) do + tbl[index] = tonumber(value) + if assert_failed(tbl[index], "Element is not a number") then return end + end + + local lvid, gvid = tbl[4], tbl[5] + if assert_failed(lvid < CONST_MAX_VALID_LVID, "Invalid level vertex id") then return end + + return { + pos = vector():set(tbl[1], tbl[2], tbl[3]), + lvid = lvid, + gvid = gvid, + } +end + +-- ARGB32 -> a byte for each channel +-- @param pixelvalue e.g. return value from GetARGB(a,r,g,b) +-- @returns table containing following keys: r, g, b, a +function argb_convert_from_pixelvalue(pixelvalue) + if not valid_type{ caller = "argb_convert_from_pixelvalue", "int", pixelvalue } then return end + + local bitmask = 2^8 -1 -- 0xFF + local alpha = bit.band(bit.rshift(pixelvalue, 24), bitmask) + local red = bit.band(bit.rshift(pixelvalue, 16), bitmask) + local green = bit.band(bit.rshift(pixelvalue, 8), bitmask) + local blue = bit.band(pixelvalue, bitmask) + + if assert_failed((red and green and blue and alpha), "Invalid pixelvalue (argb)!") then return end + return { r = red, g = green, b = blue, a = alpha } +end + +-- Changes the weight of the alpha pixelvalue +-- @param alpha 8-bit integer +-- @returns pixelvalue (ARGB32) +function argb_change_alpha(pixelvalue, alpha) + if not valid_type{ caller = "argb_change_alpha", + "int", pixelvalue, "int", alpha } then return end + + local alphavalue = bit.lshift(bit.band(alpha, 2^8 -1), 24) -- make sure it's 1 byte + local no_alpha = bit.band(pixelvalue, 2^24 -1) + + if assert_failed((no_alpha and alphavalue), "Invalid pixelvalue (argb)!") then return end + return bit.bor(no_alpha, alphavalue) +end + +--------------------------- +-- Table Functions -- +--------------------------- + +-- output of next() is nil when table is empty +function is_table_empty(tbl) + return not (tbl and next(tbl)) +end + +function index_of(tbl, value) + if not valid_type{ caller = "index_of", "tbl", tbl } then return end + + for k, v in pairs(tbl) do + if (v == value) then return k end + end +end + +-- Checks, if table includes the value; Also checks subtables +-- @returns true if value is in table +function table_has(tbl, value) + if not valid_type{ caller = "table_has", "tbl", tbl } then return end + + for _, v in pairs(tbl) do + if v == value then return true end + + if type(v) == 'table' and table_has(v, value) then + return true + end + end +end + +-- Checks, if all elements of tbl_in are contained in tbl +-- @returns boolean +function table_contains(tbl, tbl_in) + for _, v in pairs(tbl_in) do + if (not table_has(tbl, v)) then return end + end + + return true +end + +-- Creates subtable with key, if needed, needs the type of the value +-- @returns success state of insertion +function table_safe_insert(tbl, key, value, value_type) + if not valid_type{ caller = "table_safe_insert", + "tbl", tbl, "str", key, value_type, value } then return end + + if not tbl[key] then + tbl[key] = { value } + else + table.insert(tbl[key], value) + end + return true +end + +function table_copy(tbl) + if not valid_type{ caller = "table_copy", "tbl", tbl } then return end + + local copy = {} + for k,v in pairs(tbl) do + copy[k] = (type(v) == "table") and table_copy(v) or v + end + + return copy +end + +-- recursively swaps values to keys into a one-dimensional dictionary +function values_to_keys(tbl, result) + if not valid_type{ caller = "values_to_keys", + "tbl", tbl, "tbl", result } then return end + + for k, v in pairs(tbl) do + if type(v) == 'table' then + values_to_keys(v, result) + else + result[v] = true + end + end +end + +-- lists all keys in tbl into an indexed table +function index_keys(tbl, result) + if not valid_type{ caller = "index_keys", + "tbl", tbl, "tbl", result } then return end + + for key, v in pairs(tbl) do + result[#result +1] = key + end +end + +------------------------ +-- Closures -- +------------------------ + +function random_numbered_sequence(from, to) + if not valid_type{ caller = "random_numbered_sequence", + "int", from, "int", to } then return end + + local tbl = {} + for i = from, to do + tbl[#tbl + 1] = i + end + + for i = #tbl, 2, -1 do + local j = math.random(i) + tbl[i], tbl[j] = tbl[j], tbl[i] + end + + local index = 0 + return function() + if index > #tbl then return end + index = index + 1 + return tbl[index] + end +end + +------------------------------------ +-- Timed Function Execution -- +------------------------------------ + +-- Taken from Western Goods +-- executes functor once on next tick +-- @author: demonized +function next_tick(functor, ...) + if not valid_type{ caller = "next_tick", "fn", functor } then return end + + local args = {...} + AddUniqueCall(function() + functor(unpack(args)) + return true + end) +end + +-- Wrapper to throttle function execution with time delay +-- Modified derivative from modded exes +-- @delay number (milliseconds) +-- @delay_first_call boolean +-- @func functor +-- @vararg functor-parameters +-- @returns functor +function throttle(delay, delay_first_call, functor, ...) + if not valid_type{ caller = "throttle", + "int", delay, "bool", delay_first_call, "fn", functor } then return end + + local args = {...} + if not (delay and delay > (CONST_GAMETICK_DURATION_MS or 16)) then + return function() + return functor(unpack(args)) + end + end + + local TimeGlobal = time_global + local tg_threshold = (delay_first_call) + and TimeGlobal() + delay or 0 + + return function() + local tg = TimeGlobal() + if (tg_threshold +1) > tg then return end + tg_threshold = tg + delay + + return functor(unpack(args)) + end +end + +-- Repeatedly calls functor +-- Time should be declared in milliseconds +function timed_call(delay, functor, ...) + if not valid_type{ caller = "timed_call", "int", delay, "fn", functor } then return end + local args = {...} + + -- We also delay first execution + local throttled_func = throttle(delay, true, functor, unpack(args)) + if (not throttled_func) then return end + + -- Calls functor every game tick (approx. 16-17 ms) + AddUniqueCall(throttled_func) + + if (opt.get("validate_parameter_types")) then + log("timed_call | Added Unique Call for %s with delay of %sms%s", + functor, delay, callstack(nil, true)) + end +end + +--------------------------- +-- Map Markers -- +--------------------------- + +function map_spot_exists(id, spot) + if not valid_type{ caller = "map_spot_exists", + "int", id, "str", spot } then return end + + return (level.map_has_object_spot(id,spot) == 1) +end + +function map_spot_remove(id, spot) + if assert_failed(map_spot_exists(id, spot), "Spot (%s, %s) does not exist!", id, spot) then + return + end + + level.map_remove_object_spot(id, spot) + return true +end + +function map_spot_add(id, spot, hint) + if not valid_type{ caller = "map_spot_add", "str", hint } then return end + + if assert_failed(not map_spot_exists(id, spot), "Spot (%s, %s) already exists!", id, spot) then + return + end + + level.map_add_object_spot_ser(id, spot, hint) + return true +end + +function map_spot_change_hint(id, spot, hint) + if not valid_type{ caller = "map_spot_change_hint", + "int", id, "str", spot, "str", hint } then return end + + if assert_failed(map_spot_exists(id, spot), "Spot (%s, %s) does not exist!", id, spot) then + return + end + + level.map_change_spot_hint(id, spot, hint) + return true +end + +-- Read defined attributes from map_spots.xml for a given map spot +-- Uses a cache to speed up subsequent calls +-- @param spot (spot name; e.g. level_changer_right) +-- @returns table || nil (table contains texture and color (pixelvalue), if read) +local _cache_map_spot_texture_info = {} +function map_spot_get_texture_info(spot, color_as_argb, default_alpha) + if not valid_type{ caller = "get_mapspot_texture", "str", spot } then return end + + local cached_result = _cache_map_spot_texture_info[spot] + if (cached_result) then return (cached_result) end + + default_alpha = default_alpha or 255 + spot = spot .. "_spot" -- that node got the actual info we need + local attr_tex = "texture" + + local xml = _cache_map_spot_texture_info.parser + if (not xml) then + xml = CScriptXmlInit() + xml:ParseFile("map_spots.xml") + _cache_map_spot_texture_info.parser = xml + end + + xml:NavigateToRoot() -- to + if assert_failed(xml:NodeExist(spot, 0), "Node %s does not exist", spot) then return end + xml:NavigateToNode(spot, 0) + + local result = {} + result.texture = xml:ReadValue(attr_tex, 0) + if assert_failed(xml:NodeExist(attr_tex, 0), "Node %s/%s does not exist", spot, attr_tex) then return end + + local color = {} + color.r = tonumber(xml:ReadAttribute(attr_tex, 0, "r")) + color.g = tonumber(xml:ReadAttribute(attr_tex, 0, "g")) + color.b = tonumber(xml:ReadAttribute(attr_tex, 0, "b")) + + if (not is_table_empty(color)) then + color.a = tonumber(xml:ReadAttribute(attr_tex, 0, "a")) or default_alpha + + result.color = color + if (not color_as_argb) then + result.color = GetARGB(color.a, color.r, color.g, color.b) + end + end + + if (not is_table_empty(result)) then + _cache_map_spot_texture_info[spot] = result + return result + end +end + +-- REQUIRES MODDED-EXES +-- Changes the map spot texture of any given object (given that it already has a map spot) +-- @param id object-id +-- @param spot current texture +-- @param texture new texture id +-- @returns true on success +function map_spot_change_texture(id, spot, texture) + if not valid_type{ caller = "map_spot_change_spot", "str", texture } then return end + + if assert_failed(map_spot_exists(id, spot), "Spot (%s, %s) does not exist!", id, spot) then + return + end + + local spot_static = level.map_get_object_minimap_spot_static(id, spot) + local mini_static = level.map_get_object_spot_static(id, spot) + if assert_failed(spot_static and mini_static) then return end + + spot_static:InitTexture(texture) + mini_static:InitTexture(texture) + return true +end + +-- REQUIRES MODDED-EXES +-- @param color argb32 pixelvalue (e.g. GetARGB(a,r,g,b)) +-- @returns true on success +function map_spot_change_color(id, spot, color) + if not valid_type{ caller = "map_spot_change_color", "int", color } then return end + + if assert_failed(map_spot_exists(id, spot), "Spot (%s, %s) does not exist!", id, spot) then + return + end + + local main_mapspot = level.map_get_object_spot_static(id, spot) + local mini_mapspot = level.map_get_object_minimap_spot_static(id, spot) + main_mapspot:SetTextureColor(color) + mini_mapspot:SetTextureColor(color) + + return true +end + +-- REQUIRES MODDED-EXES +-- @returns pixelvalue (integer) +function map_spot_get_color(id, spot, get_mini) + if assert_failed(map_spot_exists(id, spot), "Spot (%s, %s) does not exist!", id, spot) then + return + end + + local main_mapspot = level.map_get_object_spot_static(id, spot) + local mini_mapspot = (get_mini) and level.map_get_object_minimap_spot_static(id, spot) + + return (mini_mapspot and mini_mapspot:GetTextureColor()) + or (main_mapspot and main_mapspot:GetTextureColor()) +end + +----------------------------------- +-- Game related Checks -- +----------------------------------- + +function has_translation(string) + if not valid_type{ caller = "has_translation", "str", string } then return end + return (game.translate_string(string) ~= string) +end + +------------------------------ +-- Object related -- +------------------------------ + +-- @param obj (optional) +-- @returns level name +function get_mapname(obj) + if (not obj) then + return level.name() + elseif not valid_type{ caller = "get_mapname", "userdata", obj } then + return + end + + local gvid + if (obj.online and type(obj.id) == "function") then + gvid = obj:game_vertex_id() + elseif (obj.id) then + gvid = obj.m_game_vertex_id + end + + return (alife():level_name(game_graph():vertex(gvid):level_id())) +end + +-- Only returns correct position for online objects as +-- we only check for the proximity to the player +-- @returns distance (to player) +function get_proximity_by_id(id, default) + if not valid_type{ caller = "get_proximity_by_id", "int", id } then return end + + default = (default and type(default) == "number") or CONST_DEFAULT_PROXIMITY_DISTANCE + + local se_obj = id and alife_object(id) + if not (se_obj and se_obj.online) then return default end + + local pos = se_obj.position + return (pos and pos:distance_to(db.actor:position()) or default) +end + +function get_point_proximity_by_id(id, point, default) + if not valid_type{ caller = "get_point_proximity_by_id", "int", id, "usr", point } then return end + default = default or CONST_DEFAULT_PROXIMITY_DISTANCE + + local se_obj = id and alife_object(id) + if not (se_obj and se_obj.online) then return default end + + local pos = se_obj.position + return (pos and pos:distance_to(point) or default) +end + +----------------------------- +-- Level related -- +----------------------------- + +-- This works with and without modded exes +-- @returns pos from the target in the center of the viewport +function get_target_pos() + return (level.get_target_pos) and level.get_target_pos() -- REQUIRES MODDED-EXES + or device().cam_pos:add(device().cam_dir:mul(level.get_target_dist())) +end + +-- Returns the position of a level vertex in close proximity (determined in-engine) +-- @param pos vector +-- @returns vector (copy) +function get_closest_vertex_pos(pos) + if not valid_type{ caller = "get_closest_vertex_pos", "usr", pos } then return end + local lvid = pos and pos.x and level.vertex_id(pos) + + -- signed & last are reserved + if not (lvid and (lvid < CONST_MAX_VALID_LVID)) then return end + local pos = level.vertex_position(lvid) + + return vector():set(pos.x, pos.y, pos.z) +end + +-- Taken from Catspaw's utilities +function levelname_from_gvid(gvid) + if not valid_type{ caller = "levelname_from_gvid", "int", gvid } then return end + + local gv = game_graph():vertex(gvid) + return alife():level_name(gv:level_id()) +end + +-- Requires that the weather manager is running (just before actor_on_first_update) +-- Additional levels need to be registered there to have working weather +-- @param level_name +-- @returns boolean +function is_underground(level) + if not valid_type{ caller = "is_underground", "str", level } then return end + + return (not level_weathers.valid_levels[level]) +end + +function debug_level_loaded() + return (get_mapname() == "fake_start") +end + +-- Uses txr_routes to determine connected maps +-- @param map +-- @returns table +function get_directly_connected_maps(map) + local get_txr_section = txr_routes.get_section + local get_txr_mapname = txr_routes.get_map + local routes = txr_routes.routes + + local txr_section = map and get_txr_mapname(map) + if not (txr_section and routes[txr_section]) then return end + + local connected = {} + for map, _ in pairs(routes[txr_section]) do + connected[#connected +1] = get_txr_section(map) + end + + return connected +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/kd_tree.script b/mods/Dynamic Zone Transitions/gamedata/scripts/kd_tree.script new file mode 100644 index 000000000..72e6429cf --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/kd_tree.script @@ -0,0 +1,571 @@ +-- https://github.com/ubilabs/kd-tree-javascript +-- k-d Tree Implementation for Lua for quick search in multidimensional tables +-- k-d trees are a useful data structure for several applications, such as searches involving a multidimensional search key (e.g. range searches and nearest neighbor searches). k-d trees are a special case of binary space partitioning trees. +-- Rewritten to pure Lua and adapted for usage in Anomaly by demonized + +local math_floor = math.floor +local math_log = math.log +local math_max = math.max +local math_min = math.min + +local table_insert = table.insert +local table_remove = table.remove +local table_sort = table.sort + +local empty_table = empty_table + +local pairs = pairs + +local function table_slice(t, first, last) + local res = {} + for i = first or 1, last and last - 1 or #t do + res[#res + 1] = t[i] + end + return res +end + +-- http://lua-users.org/wiki/BinaryInsert +local function binary_insert(t, value, fcomp) + -- Initialise compare function + local fcomp = fcomp or function(a, b) return a < b end + + -- print_table(value) + + -- Initialise numbers + local iStart, iEnd, iMid, iState = 1, #t, 1, 0 + + if iEnd == 0 then + t[1] = value + -- printf("adding in beginning table empty") + return 1 + end + + if fcomp(value, t[1]) then + -- printf("adding in beginning %s of %s", 1, iEnd) + table_insert(t, 1, value) + return 1 + end + + if not fcomp(value, t[iEnd]) then + -- printf("adding in end %s of %s", iEnd + 1, iEnd) + local pos = iEnd + 1 + t[pos] = value + return pos + end + + -- Get insert position + while iStart <= iEnd do + + -- calculate middle + iMid = math_floor((iStart + iEnd) / 2) + + -- compare + if fcomp(value, t[iMid]) then + iEnd, iState = iMid - 1, 0 + else + iStart, iState = iMid + 1, 1 + end + end + + local pos = iMid + iState + -- printf("adding in middle %s of %s", pos, iEnd) + table_insert(t, pos, value) + return pos +end + +function Node(obj, dimension, parent) + local node = {} + + node.obj = obj + node.left = nil + node.right = nil + node.parent = parent + node.dimension = dimension + + return node +end + +function kdTree(points, metric, dimensions) + local kd_tree = {} + + kd_tree.points = points or {} + kd_tree.metric = metric + kd_tree.dimensions = dimensions + + local function buildTree(new_points, depth, parent) + local dim = (depth % #dimensions) + 1 + local median + local node + + if not new_points then + return + end + + if #new_points == 0 then + -- printf("buildTree #new_points == 0") + return + end + + if #new_points == 1 then + -- printf("buildTree #new_points == 1") + return Node(new_points[1], dim, parent) + end + + table_sort(new_points, function(a, b) + return a[dimensions[dim]] < b[dimensions[dim]] + end) + + median = math_floor(#new_points / 2) + 1 + node = Node(new_points[median], dim, parent) + node.left = buildTree(table_slice(new_points, 1, median), depth + 1, node) + node.right = buildTree(table_slice(new_points, median + 1), depth + 1, node) + + return node + end + + kd_tree.root = buildTree(points, 0, nil) + + kd_tree.insertAndRebuild = function(self, point) + self.points[#self.points + 1] = point + self.root = buildTree(self.points, 0, nil) + return self + end + + kd_tree.insert = function(self, point) + local function innerSearch(node, parent) + + if node == nil then + return parent + end + + local dimension = self.dimensions[node.dimension] + if point[dimension] < node.obj[dimension] then + return innerSearch(node.left, node) + else + return innerSearch(node.right, node) + end + end + + local insertPosition = innerSearch(self.root, nil) + local newNode + local dimension + + if insertPosition == nil then + self.points[#self.points + 1] = point + self.root = buildTree(self.points, 0, nil) + return self + end + + newNode = Node(point, (insertPosition.dimension + 1) % #self.dimensions, insertPosition) + dimension = self.dimensions[insertPosition.dimension] + + if point[dimension] < insertPosition.obj[dimension] then + insertPosition.left = newNode + else + insertPosition.right = newNode + end + + self.points[#self.points + 1] = point + + return self + end + + kd_tree.remove = function(self, point) + local node + + local function nodeSearch(node) + if node == nil then + return + end + + if node.obj == point then + return node + end + + local dimension = self.dimensions[node.dimension] + + if point[dimension] < node.obj[dimension] then + return nodeSearch(node.left, node) + else + return nodeSearch(node.right, node) + end + end + + local function removeNode(node) + local nextNode + local nextObj + local pDimension + + local function findMin(node, dim) + local dimension + local own + local left + local right + local min + + if node == nil then + return + end + + dimension = self.dimensions[dim] + + if node.dimension == dim then + if node.left ~= nil then + return findMin(node.left, dim) + end + return node + end + + own = node.obj[dimension] + left = findMin(node.left, dim) + right = findMin(node.right, dim) + min = node + + if left ~= nil and left.obj[dimension] < own then + min = left + end + + if right ~= nil and right.obj[dimension] < min.obj[dimension] then + min = right + end + + return min + end + + if node.left == nil and node.right == nil then + if node.parent == nil then + self.root = nil + return + end + + pDimension = self.dimensions[node.parent.dimension] + + if node.obj[pDimension] < node.parent.obj[pDimension] then + node.parent.left = nil + else + node.parent.right = nil + end + return + end + + -- If the right subtree is not empty, swap with the minimum element on the + -- node's dimension. If it is empty, we swap the left and right subtrees and + -- do the same. + if node.right ~= nil then + nextNode = findMin(node.right, node.dimension) + nextObj = nextNode.obj + removeNode(nextNode) + node.obj = nextObj + else + nextNode = findMin(node.left, node.dimension) + nextObj = nextNode.obj + removeNode(nextNode) + node.right = node.left + node.left = nil + node.obj = nextObj + end + end + + node = nodeSearch(self.root) + + if node == nil then + return + end + + removeNode(node) + + return self + end + + kd_tree.clearRoot = function(self) + empty_table(self.root) + return self + end + + -- Update positions of objects + -- Points input must be same structure as existing in k-d Tree + + kd_tree.updatePositions = function(self, points) + self.points = points + self:clearRoot() + self.root = buildTree(points, 0, nil) + return self + end + + -- get all points sorted by nearest + kd_tree.nearestAll = function(self, point) + local point = { + x = point.x or point[1], + y = point.y or point[2], + z = point.z or point[3] + } + + local function comp_function(a, b) + return a[2] < b[2] + end + + local res = {} + for i = 1, #self.points do + local v = self.points[i] + res[i] = { + [1] = { + x = v.x, + y = v.y, + z = v.z, + data = v.data + }, + [2] = math.huge + } + res[i][2] = self.metric(res[i][1], point) + end + table_sort(res, comp_function) + + return res + end + + -- Query the nearest *count* neighbours to a point, with an optional + -- maximal search distance. + -- Result is an array with *count* elements. + -- Each element is an array with two components: the searched point and + -- the distance to it. + + kd_tree.nearest = function(self, point, maxNodes, maxDistance) + local i + local result + local bestNodes + + bestNodes = {} + local passedNodes = {} + + local maxNodes = maxNodes or 1 + + local function comp_function(a, b) + return a[2] < b[2] + end + + local function saveNode(node, distance) + binary_insert(bestNodes, {node, distance}, comp_function) + if #bestNodes > maxNodes then + table_remove(bestNodes) + end + end + + local function nearestSearch(node) + if passedNodes[node] then return end + + local bestChild + local dimension = self.dimensions[node.dimension] + local ownDistance = self.metric(point, node.obj) + local linearPoint = {} + local linearDistance + local otherChild + local i + + for i = 1, #self.dimensions do + linearPoint[self.dimensions[i]] = i == node.dimension and point[self.dimensions[i]] or node.obj[self.dimensions[i]] + end + + linearDistance = self.metric(linearPoint, node.obj) + + if node.right == nil and node.left == nil then + if #bestNodes < maxNodes or ownDistance < bestNodes[#bestNodes][2] then + saveNode(node, ownDistance) + end + passedNodes[node] = true + return + end + + if node.right == nil then + bestChild = node.left + elseif node.left == nil then + bestChild = node.right + else + bestChild = point[dimension] < node.obj[dimension] and node.left or node.right + end + + nearestSearch(bestChild) + + if #bestNodes < maxNodes or ownDistance < bestNodes[#bestNodes][2] then + saveNode(node, ownDistance) + passedNodes[node] = true + end + + if #bestNodes < maxNodes or math.abs(linearDistance) < bestNodes[1][2] then + otherChild = bestChild == node.left and node.right or node.left + if (otherChild ~= nil) then + nearestSearch(otherChild) + end + end + end + + if maxDistance then + for i = 1, maxNodes do + bestNodes[i] = {nil, maxDistance} + end + end + + if self.root then + nearestSearch(self.root) + end + + result = {} + for i = 1, math_min(maxNodes, #bestNodes) do + if bestNodes[i][1] then + result[#result + 1] = { + bestNodes[i][1].obj, + bestNodes[i][2] + } + end + end + + return result + end + + -- Get an approximation of how unbalanced the tree is. + -- The higher this number, the worse query performance will be. + -- It indicates how many times worse it is than the optimal tree. + -- Minimum is 1. Unreliable for small trees. + + kd_tree.balanceFactor = function(self) + local function height(node) + if node == nil then + return 0 + end + return math_max(height(node.left), height(node.right)) + 1 + end + + local function count(node) + if node == nil then + return 0 + end + return count(node.left) + count(node.right) + 1 + end + + return height(self.root) / (math_log(count(self.root)) / math_log(2)) + end + + return kd_tree +end + +local function distance_to(a, b) + -- printf("distance_to fired") + + local dist_x = a.x - b.x + local dist_y = a.y - b.y + local dist_z = a.z - b.z + + return dist_x * dist_x + dist_y * dist_y + dist_z * dist_z +end + +-- Actual usage starts here +--[[ + +When you build position tree, you can find nearest objects in relation to other objects +Example, find nearest position to actor: + local pos_tree = kd_tree.buildTreeObjectIds({45, 65, 23, 5353, 232}) + print_table(pos_tree:nearest(db.actor:position())) + +will print position, distance and id of nearest object from given ids + +--]] + +-- Build k-d Tree by several inputs +-- Input - Array of vectors (vector():set(x, y, z) or table with x, y, z keys or 1, 2, 3 keys) +-- Data is an optional table where you can bind your data to your object, must have same amount of fields as vectors (#vectors == #data) +function buildTreeVectors(vectors, data) + local v = {} + local data = data or {} + local vectors = vectors or {} + for k, t in pairs(vectors) do + table_insert(v, { + x = t.x or t[1], + y = t.y or t[2], + z = t.z or t[3], + data = data[k] + }) + end + -- printf("vectors num %s", #v) + return kdTree(v, distance_to, {"x", "y", "z"}) +end + +-- Input - Array of game objects +-- Vectors are binded to object ids automatically +function buildTreeObjects(objects) + local vectors = {} + local data = {} + for k, v in pairs(objects) do + table_insert(vectors, v:position()) + table_insert(data, v:id()) + end + return buildTreeVectors(vectors, data) +end + +-- Input - Array of server objects +-- Vectors are binded to object ids automatically +function buildTreeSeObjects(objects) + local vectors = {} + local data = {} + for k, v in pairs(objects) do + table_insert(vectors, v.position) + table_insert(data, v.id) + end + return buildTreeVectors(vectors, data) +end + +-- Input - Array of game object ids +-- Vectors are binded to object ids automatically +function buildTreeObjectIds(ids) + local vectors = {} + local data = {} + local level_object_by_id = level.object_by_id + for k, v in pairs(ids) do + local obj = level_object_by_id(v) + if obj and obj ~= 0 and obj:id() ~= 0 then + table_insert(vectors, obj:position()) + table_insert(data, v) + end + end + return buildTreeVectors(vectors, data) +end + +-- Input - Array of server object ids +-- Vectors are binded to object ids automatically +function buildTreeSeObjectIds(ids) + local vectors = {} + local data = {} + local sim = alife() + local sim_object = sim.object + for k, v in pairs(ids) do + local obj = sim_object(sim, v) + if obj and obj ~= 0 and obj.id ~= 0 then + table_insert(vectors, obj.position) + table_insert(data, v) + end + end + return buildTreeVectors(vectors, data) +end + +-- If you build a tree using functions above +-- You can use this function to update positions and rebuild the tree +function updateObjPositions(kd_tree) + local points = kd_tree.points + local new_points = {} + + local sim = alife() + local sim_object = sim.object + for i = 1, #points do + local obj = sim_object(sim, points[i].data) + if obj then + local pos = obj.position + table_insert(new_points, { + x = pos.x, + y = pos.y, + z = pos.z, + data = points[i].data + }) + end + end + + kd_tree:updatePositions(new_points) + return kd_tree +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/libmath_bezier.script b/mods/Dynamic Zone Transitions/gamedata/scripts/libmath_bezier.script new file mode 100644 index 000000000..fdb220248 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/libmath_bezier.script @@ -0,0 +1,53 @@ +-- A tiny library for picking random values between two numbers using bézier curves +-- Written in Lua by Singustromo +-- Based on and inspired by randomizing_functions from Demonized + +-- Usage +--[[ + local randomizer = libmath_bezier + local a = randomizer.get_random_value(min, max, {p0, p1, p2, p3}) +--]] + +-- Pick a random float between min_cond and max_cond +-- random value will be picked according to the function graph +function get_random_value(min_cond, max_cond, params) + local min_cond = min_cond or 0 + local max_cond = max_cond or 1 + + if not params or type(params) ~= 'table' or #params < 3 then + params = {0,0.5,1} -- linear interpolation + end + + local rand = 1 + if #params == 4 then + rand = cubic_bezier(math.random(), params) + elseif #params == 3 then + rand = quadratic_bezier(math.random(), params) + end + if (not rand) then return end + + if min_cond > max_cond then + max_cond, min_cond = min_cond, max_cond + end + + local a = max_cond - min_cond + local b = a * rand + local c = min_cond + b + return c +end + +function quadratic_bezier(x, p) + -- linear interpolation: saving compute time + if p[1] == 0 and p[2] == 0.5 and p[3] == 1 then return x end + + return p[1]*(1-x)^2 + 2*p[2]*x*(1-x) + p[3]*x^2 +end + +function cubic_bezier(x, p) + -- linear interpolation: saving compute time + if p[1] == 0 and p[2] == 1 and p[3] == 0 and p[4] == 1 then + return x + end + + return p[1]*(1-x)^3 + 3*p[2]*(1-x)^2*x + 3*p[3]*(1-x)*x^2 + p[4]*x^3 +end diff --git a/mods/Dynamic Zone Transitions/gamedata/scripts/txr_routes_monkey_dynamic_zone.script b/mods/Dynamic Zone Transitions/gamedata/scripts/txr_routes_monkey_dynamic_zone.script new file mode 100644 index 000000000..f5a765308 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/scripts/txr_routes_monkey_dynamic_zone.script @@ -0,0 +1,111 @@ +--[[ + DYNAMIC ZONE + + Original Author(s) + Singustromo + + Edited by + + License + Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International (CC BY-NC-SA 4.0) + + Lazy monkey patches that overwrite those functions completely +--]] + +-- main script functors and variables are accessed through this variable +parent = _G["dynamic_zone"] +if not (parent and parent.VERSION and parent.VERSION >= 20240120) then return end + +-------------------------- +-- Dependencies +-------------------------- + +local opt = dynamic_zone_mcm +local utils = dynamic_zone_utils +local debug = dynamic_zone_debug +local route_manager = dynamic_zone_routes +local discovery = dynamic_zone_discovery + +CONST_LOGGING_PREFIX = "TXR-Routes" +local log = debug.log_register("info", CONST_LOGGING_PREFIX) +local log_error = debug.log_register("error", CONST_LOGGING_PREFIX) + +------------------------------- +-- Patched Functions +------------------------------- + +ReloadRouteHints = txr_routes.reload_route_hints +OpenRoute = txr_routes.open_route + +----------------------------- +-- Monkey patches +----------------------------- + +-- Let's make sure we update the transition mapspots and use our hint +-- This is executed undermost on_game_load and is used +-- to ensure that the spot hints adhere to set localization +function txr_routes.reload_route_hints() + if (utils.debug_level_loaded()) then return end + log("Running patched txr_routes.reload_route_hints()") + + -- This function is actually called before our parent.main_routine() + -- We just do this for a new game, so that we can leverage our logic here + if (route_manager.route_count() < 1) then + log("reload_route_hints | Populating route list") + parent.register_game_routes() + parent.update_game_route_properties() + end + + log("reload_route_hints | Updating transition mapspots") + local include_blacklisted = true + for route_id, route in route_manager.iterate_routes(include_blacklisted) do + for name, _ in route_manager.iterate_transitions(route_id) do + discovery.update_transition_mapspot(name, nil, + not route.block_discovered) + end + end +end + +-- Prevents txr_routes from overwriting our map icons when a route is unlocked +-- (e.g. Debug: Unlock all) +-- Overwrote this in it's entirety because the changes needed, require it. +function txr_routes.open_route(map_1, map_2, no_msg) + local a = txr_routes.get_route(map_1, map_2) -- all space_restrictors between those two + if (utils.assert_failed(a, "Got no route between %s and %s", map_1, map_2)) then return end + + local msg + for _, transition in pairs(a) do + local id, spot, hint = txr_routes.get_route_info(transition) + if utils.assert_failed(id and spot and hint) then + log_error("Unknown restrictor: %s (Defined in txr_routes.routes)", transition) + return -- prevent possible crash + end + + local route = route_manager.get_route_by_transition(transition) + if utils.assert_failed(route, "Can not get a route ID with '%s' as a member!", transition) then + goto continue + elseif (route.block_discovered) then + goto continue + end + + if utils.map_spot_exists(id, spot) then + log("Map spot for transition '%s' already exists!", transition) + goto continue + end + + hint = hint and game.translate_string(hint) + level.map_add_object_spot_ser(id, spot, hint) + + mlr_utils.save_var("routes_".. transition, true) + txr_routes.register_map(map_1, map_2) + msg = true + + ::continue:: + route.unlocked = true + discovery.update_transition_mapspot(transition) + end + + if msg and (not no_msg) then + txr_routes.msg_route(map_1, map_2) + end +end diff --git a/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/binoc_discovery_aborted.ogg b/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/binoc_discovery_aborted.ogg new file mode 100644 index 000000000..24ebec366 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/binoc_discovery_aborted.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21ac3987d52b108561972b40774bc34b9d283e2760ebfad6076cb834963dd270 +size 9378 diff --git a/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/binoc_discovery_in_progress.ogg b/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/binoc_discovery_in_progress.ogg new file mode 100644 index 000000000..111e4ca1f --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/binoc_discovery_in_progress.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1213c9d1b728c0869e191d3f4f1bf0a1c844da72b5338bcfc05ec87fc59e22ae +size 8720 diff --git a/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/block_discovered.ogg b/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/block_discovered.ogg new file mode 100644 index 000000000..b53d1eeb3 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/sounds/dynamic_zone/block_discovered.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55106090be66fce85299f026ea2131831d927389f6c253d1372ec9533313457d +size 173647 diff --git a/mods/Dynamic Zone Transitions/gamedata/textures/ui/dynamic_zone/hud_assets.dds b/mods/Dynamic Zone Transitions/gamedata/textures/ui/dynamic_zone/hud_assets.dds new file mode 100644 index 000000000..bb8886970 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/textures/ui/dynamic_zone/hud_assets.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67932019a707431f415ed6427c065b301e80c1d2bd04a234b0f2082a7747803a +size 4194432 diff --git a/mods/Dynamic Zone Transitions/gamedata/textures/ui/dynamic_zone/ui_mapspots.dds b/mods/Dynamic Zone Transitions/gamedata/textures/ui/dynamic_zone/ui_mapspots.dds new file mode 100644 index 000000000..67bac7047 --- /dev/null +++ b/mods/Dynamic Zone Transitions/gamedata/textures/ui/dynamic_zone/ui_mapspots.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efb8820489dd4b9bf443d7d1a314c534902c97e2351e86cddd044329106d81c7 +size 32896 diff --git a/mods/Dynamic Zone Transitions/meta.ini b/mods/Dynamic Zone Transitions/meta.ini new file mode 100644 index 000000000..fe2325fa2 --- /dev/null +++ b/mods/Dynamic Zone Transitions/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2025.1.15.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Dynamic_Zone_Transitions_-_20250102.7z +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2025-01-15T22:28:12Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/anims/camera_effects/weapons/lancew_famas_shoot.anm b/mods/MRAA + Blindside Military Pack/gamedata/anims/camera_effects/weapons/lancew_famas_shoot.anm new file mode 100644 index 000000000..a0d0660bf Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/anims/camera_effects/weapons/lancew_famas_shoot.anm differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/anims/camera_effects/weapons/lancew_famas_shoot_scope.anm b/mods/MRAA + Blindside Military Pack/gamedata/anims/camera_effects/weapons/lancew_famas_shoot_scope.anm new file mode 100644 index 000000000..974df4476 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/anims/camera_effects/weapons/lancew_famas_shoot_scope.anm differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/items/settings/mod_parts_mraa_v1_dltx.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/items/settings/mod_parts_mraa_v1_dltx.ltx new file mode 100644 index 000000000..04819e749 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/configs/items/settings/mod_parts_mraa_v1_dltx.ltx @@ -0,0 +1,6 @@ +![con_parts_list] +wpn_protecta = prt_w_barrel_3, prt_w_trigger_components_2, prt_w_bolt_carrier_10, prt_w_bolt_3, prt_w_gas_tube_1 +wpn_protecta_camo +wpn_protecta_custom +wpn_protecta_nimble + diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/items/weapons/mod_addon_scopes_mraa_v1_dltx.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/items/weapons/mod_addon_scopes_mraa_v1_dltx.ltx new file mode 100644 index 000000000..e69de29bb diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/items/weapons/mod_weapon_upgrades_mraa_v1_dltx.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/items/weapons/mod_weapon_upgrades_mraa_v1_dltx.ltx new file mode 100644 index 000000000..e69de29bb diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_item_upgrades_mraa_v1_dltx.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_item_upgrades_mraa_v1_dltx.ltx new file mode 100644 index 000000000..e69de29bb diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_mraa_v1_dltx.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_mraa_v1_dltx.ltx new file mode 100644 index 000000000..4e623cb91 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_mraa_v1_dltx.ltx @@ -0,0 +1,4584 @@ +![wpn_ak]:!wpn_akm_sounds ; delete akm sounds from ak47 +![wpn_ak]:wpn_ak_sounds ; add ak47 sounds to ak47 duh + +![wpn_ak_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\ak\akm_reload +snd_reload_empty = weapons\ak\akm_empty_reload +snd_reload_grenade = weapons\ak74\ak74_grenload_mraa +snd_reload_misfire = weapons\ak\akm_unjam +snd_switch_mode = weapons\ak74\ak_firemode_switch + +![wpn_ak102_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\ak74\ak74_reload_mraa +snd_reload_empty = weapons\ak74\ak74_empty_reload +snd_reload_grenade = weapons\ak74\ak74_grenload_mraa +snd_reload_misfire = weapons\ak74\ak74_unjam_mraa +snd_switch_mode = weapons\ak74\ak_firemode_switch + +![wpn_ak104_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\ak\akm_reload +snd_reload_empty = weapons\ak\akm_empty_reload +snd_reload_grenade = weapons\ak74\ak74_grenload_mraa +snd_reload_misfire = weapons\ak74\ak74_unjam_mraa +snd_switch_mode = weapons\ak74\ak_firemode_switch + +![wpn_ak105_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\ak74\ak74_reload_mraa +snd_reload_empty = weapons\ak74\ak74_empty_reload +snd_reload_grenade = weapons\ak74\ak74_grenload_mraa +snd_reload_misfire = weapons\ak74\ak74_unjam_mraa +snd_switch_mode = weapons\ak74\ak_firemode_switch + +![wpn_ash12_sounds] +snd_shoot = wpn_svt40_snd_shoot +snd_shoot_actor = wpn_svt40_snd_shoot_actor + +![wpn_galil_sounds] +!snd_reload + +![wpn_ace21_sounds] +snd_reload_empty = weapons\ace21\ace21_reload_empty +snd_reload_misfire = weapons\ace21\ace21_unjam + +![wpn_aug_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload_empty = weapons\aug\aug_reload_empty +snd_reload_misfire = weapons\aug\aug_unjam + +![wpn_aug_a3_sounds] +!snd_draw +!snd_reload + +![wpn_l96_snd_shoot] +snd_2_layer = weapons\sv98\bolt + +![wpn_l96_snd_silncer_shot] +snd_2_layer = weapons\sv98\bolt + +![wpn_l96a1_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload = weapons\sv98\sv98_reload +snd_reload_empty = weapons\sv98\sv98_reload_empty +snd_reload_misfire = weapons\sv98\sv98_unjam + +![wpn_l96m_snd_shoot] +snd_2_layer = weapons\sv98\bolt + +![wpn_pkm_sounds] +snd_reload = weapons\pkm\pkm_reload +snd_reload_empty = weapons\pkm\pkm_reload_empty +snd_reload_misfire = weapons\pkm\pkm_unjam + +![wpn_beretta_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_cz75_auto_sounds] +snd_reload = weapons\cz75\cz75_reload +snd_reload_empty = weapons\cz75\cz75_reload_empty +snd_switch_mode = weapons\pm\aps_firemode_switch + +![wpn_colt1911_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_desert_eagle_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_fn2000_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload_empty = weapons\fn2000\fn2000_reload_empty +snd_reload_misfire = weapons\fn2000\fn2000_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_fn57_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload = weapons\fn57\fn57_reload +snd_reload_empty = weapons\fn57\fn57_reload_empty +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_glock_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_gsh18_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload = weapons\gsh18\gsh18_reload +snd_reload_empty = weapons\gsh18\gsh18_reload_empty +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_g3_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload_empty = weapons\g3\g3_reload_empty +snd_reload_misfire = weapons\g3\g3_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_g36_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload_grenade = weapons\m16\AR_gl_reload +snd_reload_misfire = weapons\g36\g36_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_g36c_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\g36\g36_reload +snd_reload_empty = weapons\g36\g36_reload_empty +snd_reload_grenade = weapons\m16\AR_gl_reload +snd_reload_misfire = weapons\g36\g36_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_g36k_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\g36\g36_reload +snd_reload_empty = weapons\g36\g36_reload_empty +snd_reload_grenade = weapons\m16\AR_gl_reload +snd_reload_misfire = weapons\g36\g36_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_hpsa_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload = weapons\colt\colt_reload +snd_reload_empty = weapons\colt\colt_reload_empty +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_mtar21_sounds] +!snd_shoot +!snd_reload +!snd_reload_empty + +![wpn_lr300_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\m16\AR_reload +snd_reload_empty = weapons\m16\AR_empty_reload +snd_reload_grenade = weapons\m16\AR_gl_reload +snd_reload_misfire = weapons\m16\AR_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_m14_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload_empty = weapons\m14\m14_reload_empty +snd_reload_misfire = weapons\m14\m14_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_m4_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\m16\AR_reload +snd_reload_empty = weapons\m16\AR_empty_reload +snd_reload_grenade = weapons\m16\AR_gl_reload +snd_reload_misfire = weapons\m16\AR_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_m4a1_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\m16\AR_reload +snd_reload_empty = weapons\m16\AR_empty_reload +snd_reload_grenade = weapons\m16\AR_gl_reload +snd_reload_misfire = weapons\m16\AR_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_m16_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\m16\AR_reload +snd_reload_empty = weapons\m16\AR_empty_reload +snd_reload_grenade = weapons\m16\AR_gl_reload +snd_reload_misfire = weapons\m16\AR_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_mp7_sounds] +snd_draw = weapons\mp5\mp5_draw +snd_holster = weapons\mp5\mp5_holster +snd_reload_empty = weapons\mp7\mp7_reload_empty +snd_reload_misfire = weapons\mp7\mp7_unjam +snd_switch_mode = weapons\mp5\mp5_firemode_switch + +![wpn_famas_sounds] +snd_reload_empty = weapons\famas\famas_reload_empty +snd_reload_misfire = weapons\famas\famas_unjam +!snd_draw +!snd_holster + +![wpn_mp5_sounds] +snd_holster = weapons\mp5\mp5_holster +snd_reload_misfire = weapons\mp5\mp5_unjam +snd_switch_mode = weapons\mp5\mp5_firemode_switch + +![wpn_mp5sd_sounds] +snd_reload = weapons\mp5\mp5_reload +snd_reload_empty = weapons\mp5\mp5_reload_empty + +![wpn_ump45_sounds] +!snd_reload + +![wpn_p90_sounds] +snd_reload_empty = weapons\p90\p90_reload_empty +snd_reload_misfire = weapons\p90\p90_unjam + +![wpn_oc33_sounds] +snd_reload = weapons\pm\pm_reload_mraa +snd_reload_empty = weapons\pm\pm_reload_empty_mraa +snd_switch_mode = weapons\pm\aps_firemode_switch + +![wpn_protecta_sounds] +snd_draw = weapons\mossberg\mossberg_draw +snd_holster = weapons\mossberg\mossberg_holster +snd_open_weapon = weapons\mossberg\mossberg_open +snd_close_weapon = weapons\protecta\protecta_close +snd_reload_misfire = weapons\protecta\protecta_unjam + +![wpn_sig220_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_spas12_sounds] +snd_draw = weapons\mossberg\mossberg_draw +snd_holster = weapons\mossberg\mossberg_holster +snd_open_weapon = weapons\mossberg\mossberg_open +snd_add_cartridge = weapons\mossberg\mossberg_reload +snd_close_weapon = weapons\mossberg\mossberg_reload_end +snd_reload_misfire = weapons\spas12\spas12_unjam + +![wpn_usas12_sounds] +snd_draw = weapons\mossberg\mossberg_draw +snd_holster = weapons\mossberg\mossberg_holster +snd_reload_empty = weapons\usas12\usas12_reload_empty +snd_switch_mode = weapons\mp5\mp5_firemode_switch +snd_reload_misfire = weapons\usas12\usas12_unjam + +![wpn_m98b_snd_shoot] +snd_2_layer = weapons\sv98\bolt + +![wpn_m98b_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload = weapons\sv98\sv98_reload +snd_reload_empty = weapons\sv98\sv98_reload_empty +snd_reload_misfire = weapons\sv98\sv98_unjam + +![wpn_trg_snd_shoot] +snd_2_layer = weapons\sv98\bolt + +![wpn_trg_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload = weapons\sv98\sv98_reload +snd_reload_empty = weapons\sv98\sv98_reload_empty +snd_reload_misfire = weapons\sv98\sv98_unjam + +![wpn_usp_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_fnp45_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_wa2000_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload_empty = weapons\wa2000\wa2000_reload_empty +snd_reload_misfire = weapons\wa2000\wa2000_unjam + +![wpn_walther_sounds] +snd_draw = weapons\beretta\pistol_draw +snd_holster = weapons\beretta\pistol_holster +snd_reload = weapons\usp\usp_reload +snd_reload_empty = weapons\usp\usp_reload_empty +snd_reload_misfire = weapons\beretta\pistol_unjam +scripted_snd_ammo_check = weapons\beretta\pistol_magcheck + +![wpn_mossberg_sounds] +snd_holster = weapons\mossberg\mossberg_holster +snd_open_weapon = weapons\mossberg\mossberg_open + +![wpn_mp133_sounds] +snd_draw = weapons\mossberg\mossberg_draw +snd_holster = weapons\mossberg\mossberg_holster +snd_open_weapon = weapons\mossberg\mossberg_open +snd_add_cartridge = weapons\mossberg\mossberg_reload +snd_close_weapon = weapons\mossberg\mossberg_reload_end +!snd_shoot + +![wpn_mp153_sounds] +snd_draw = weapons\mossberg\mossberg_draw +snd_holster = weapons\mossberg\mossberg_holster +snd_open_weapon = weapons\mossberg\mossberg_open +snd_add_cartridge = weapons\mossberg\mossberg_reload +snd_close_weapon = weapons\mossberg\mossberg_reload_end +snd_reload_misfire = weapons\spas12\spas12_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_hk416_sounds] +snd_reload = weapons\m16\AR_reload +snd_reload_empty = weapons\m16\AR_empty_reload +!snd_reload_grenade + +![wpn_hk417_sounds] +!snd_draw + +![wpn_ash12_sounds] +snd_empty = weapons\_dryfire\sniper_dry +snd_reload = weapons\ash12\ash12_reload +snd_reload_empty = weapons\ash12\ash12_reload_empty +snd_reload_misfire = weapons\ash12\ash12_unjam +snd_switch_mode = weapons\ak74\ak_firemode_switch + +![wpn_sig550_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload_misfire = weapons\sig550\sig550_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch +snd_reload_grenade = weapons\m16\AR_gl_reload + +![wpn_sig552_sounds] +!snd_reload +!snd_reload_empty + +![wpn_fal_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload_empty = weapons\fal\fal_reload_empty +snd_reload_misfire = weapons\fal\fal_unjam +snd_switch_mode = weapons\ak74\ak_firemode_switch + +![wpn_fnc_sounds] +snd_draw = weapons\ak74\ak74_draw +snd_holster = weapons\ak74\ak74_holster +snd_reload = weapons\fnc\fnc_reload +snd_reload_empty = weapons\fnc\fnc_reload_empty +snd_reload_misfire = weapons\fnc\fnc_unjam +snd_switch_mode = weapons\m16\AR_firemode_switch + +![wpn_scar_sounds] +snd_reload_empty = weapons\scar\scar_reload_empty +snd_reload_misfire = weapons\scar\scar_unjam +!snd_reload_grenade + +![wpn_m82_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload = weapons\m82\m82_reload +snd_reload_empty = weapons\m82\m82_reload_empty +snd_reload_misfire = weapons\m82\m82_unjam + +![wpn_m24_snd_shoot] +snd_2_layer = weapons\sv98\bolt + +![wpn_m24_snd_silncer_shot] +snd_2_layer = weapons\sv98\bolt + +![w_remington700_snd_shoot] +snd_2_layer = weapons\sv98\bolt + +![wpn_remington700_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload = weapons\sv98\sv98_reload +snd_reload_empty = weapons\sv98\sv98_reload_empty +snd_reload_misfire = weapons\sv98\sv98_unjam + +![wpn_m24_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload = weapons\sv98\sv98_reload +snd_reload_empty = weapons\sv98\sv98_reload_empty +snd_reload_misfire = weapons\sv98\sv98_unjam + +![wpn_g43_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_reload_empty = weapons\g43\g43_reload_empty +snd_reload_misfire = weapons\svd\svd_unjam + +![wpn_k98_sounds] +snd_draw = weapons\mosin\mosin_draw +snd_holster = weapons\mosin\mosin_holster +snd_open_weapon = weapons\k98\k98_open +snd_add_cartridge = weapons\k98\k98_load +snd_close_weapon = weapons\k98\k98_close +snd_reload_misfire = weapons\k98\k98_unjam + +![wpn_ak] +use_alt_aim_hud = false + +![wpn_ak_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062138, -0.015172, -0.107803 +hands_position_16x9 = 0.062138, -0.015172, -0.107803 +aim_hud_offset_pos = -0.075696, 0.031218, -0.209859 +aim_hud_offset_pos_16x9 = -0.075696, 0.031218, -0.209859 + aim_hud_offset_rot = 0.023298, 0.018525, 0 + aim_hud_offset_rot_16x9 = 0.023298, 0.018525, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.038031, -0.0153, -0.151593 +gl_hud_offset_pos_16x9 = -0.038031, -0.0153, -0.151593 +gl_hud_offset_rot = -0.090992, 0.012933, -0.004946 +gl_hud_offset_rot_16x9 = -0.090992, 0.012933, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_ak47_holster_arms, mask_ak47_idle +anm_hide_g = mask_ak47_holster_launcher_arms, mask_ak47_idle +anm_hide_w_gl = mask_ak47_holster_wgl_arms, mask_ak47_idle +anm_idle = mask_ak47_idle_arms, mask_ak47_idle +anm_idle_aim = mask_ak47_idle_ads_arms, mask_ak47_idle +anm_idle_aim_moving = mask_ak47_idle_ads_arms, mask_ak47_idle +anm_idle_aim_moving_crouch = mask_ak47_idle_ads_arms, mask_ak47_idle +anm_idle_g = mask_ak47_idle_launcher_arms, mask_ak47_idle +anm_idle_g_aim = mask_ak47_idle_ads_launcher_arms, mask_ak47_idle +anm_idle_moving = mask_ak47_walk_arms, mask_ak47_idle +anm_idle_moving_crouch = mask_ak47_walk_arms, mask_ak47_idle +anm_idle_moving_crouch_g_aim = mask_ak47_idle_ads_launcher_arms, mask_ak47_idle +anm_idle_moving_crouch_w_gl_aim = mask_ak47_idle_ads_wgl_arms, mask_ak47_idle +anm_idle_moving_crouch_w_gl = mask_ak47_walk_wgl_arms, mask_ak47_idle +anm_idle_moving_g = mask_ak47_walk_launcher_arms, mask_ak47_idle +anm_idle_moving_g_aim = mask_ak47_idle_ads_launcher_arms, mask_ak47_idle +anm_idle_moving_w_gl = mask_ak47_walk_wgl_arms, mask_ak47_idle +anm_idle_moving_w_gl_aim = mask_ak47_idle_ads_wgl_arms, mask_ak47_idle +anm_idle_sprint = mask_ak47_sprint_arms, mask_ak47_idle +anm_idle_sprint_g = mask_ak47_sprint_launcher_arms, mask_ak47_idle +anm_idle_sprint_w_gl = mask_ak47_sprint_wgl_arms, mask_ak47_idle +anm_idle_w_gl = mask_ak47_idle_wgl_arms, mask_ak47_idle +anm_idle_w_gl_aim = mask_ak47_idle_ads_wgl_arms, mask_ak47_idle +anm_reload = mask_ak47_reload_arms, mask_ak47_reload_gun +anm_reload_empty = mask_ak47_reload_empty_arms, mask_ak47_reload_empty_gun +anm_reload_g = mask_ak47_reload_launcher_arms, mask_ak47_reload_launcher_gun +anm_reload_w_gl = mask_ak47_reload_wgl_arms, mask_ak47_reload_gun +anm_reload_empty_w_gl = mask_ak47_reload_wgl_empty_arms, mask_ak47_reload_empty_gun +anm_shots = mask_ak47_shoot_arms, mask_ak47_shoot_gun +anm_shots_g = mask_ak47_shoot_launcher_arms, mask_ak47_idle +anm_shots_w_gl = mask_ak47_shoot_wgl_arms, mask_ak47_shoot_gun +anm_show = mask_ak47_draw_arms, mask_ak47_idle +anm_show_g = mask_ak47_draw_launcher_arms, mask_ak47_idle +anm_show_w_gl = mask_ak47_draw_wgl_arms, mask_ak47_idle +anm_switch = mask_ak47_switchgun_arms, mask_ak47_idle +anm_switch_g = mask_ak47_switchgl_arms, mask_ak47_idle +anm_reload_misfire = mask_ak47_unjam_arms, mask_ak47_unjam_gun +anm_reload_misfire_w_gl = mask_ak47_unjam_wgl_arms, mask_ak47_unjam_gun +anm_switch_mode = mask_ak47_switchmode_arms, mask_ak47_idle + +![wpn_aks_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 + aim_hud_offset_rot = 0.02344, 0.018525, 0 + aim_hud_offset_rot_16x9 = 0.02344, 0.018525, 0 + +![wpn_ak102] +use_alt_aim_hud = false + +![wpn_ak102_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.059369, -0.016308, -0.108652 +hands_position_16x9 = 0.059369, -0.016308, -0.108652 +aim_hud_offset_pos = -0.071649, 0.034342, -0.202451 +aim_hud_offset_pos_16x9 = -0.071649, 0.034342, -0.202451 +aim_hud_offset_rot = 0.024434, 0.018577, 0 +aim_hud_offset_rot_16x9 = 0.024434, 0.018577, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.040546, -0.006166, -0.108975 +gl_hud_offset_pos_16x9 = -0.040546, -0.006166, -0.108975 +gl_hud_offset_rot = -0.089545, 0.014206, -0.004946 +gl_hud_offset_rot_16x9 = -0.089545, 0.014206, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_102_holster_arms, mask_102_idle +anm_hide_empty = mask_102_holster_arms, mask_102_idle +anm_idle = mask_102_idle_arms, mask_102_idle +anm_idle_aim = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_empty = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving_crouch = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving_crouch_empty = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving_empty = mask_102_idle_ads_arms, mask_102_idle +anm_idle_empty = mask_102_idle_arms, mask_102_idle +anm_idle_moving = mask_102_walk_arms, mask_102_idle +anm_idle_moving_crouch = mask_102_walk_arms, mask_102_idle +anm_idle_moving_crouch_empty = mask_102_walk_arms, mask_102_idle +anm_idle_moving_empty = mask_102_walk_arms, mask_102_idle +anm_idle_sprint = mask_102_sprint_arms, mask_102_idle +anm_idle_sprint_empty = mask_102_sprint_arms, mask_102_idle +anm_reload = mask_102_reload_arms, mask_102_reload_gun +anm_reload_empty = mask_102_reload_empty_arms, mask_102_reload_empty_gun +anm_shot_l = mask_102_shoot_arms, mask_102_shoot_gun +anm_shots = mask_102_shoot_arms, mask_102_shoot_gun +anm_show = mask_102_draw_arms, mask_102_idle +anm_show_empty = mask_102_draw_arms, mask_102_idle +anm_switch_mode = mask_102_switchmode_arms, mask_102_idle +anm_reload_misfire = mask_102_unjam_arms, mask_102_unjam_gun + +![wpn_ak102_ac10632_hud] +aim_hud_offset_pos = -0.071649, 0.0119, -0.183674 +aim_hud_offset_pos_16x9 = -0.071649, 0.0119, -0.183674 +aim_hud_offset_rot = 0.016198, 0.01879, 0 +aim_hud_offset_rot_16x9 = 0.016198, 0.01879, 0 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 + +![wpn_ak102_acog_hud] +aim_hud_offset_pos = -0.071862, 0.014743, -0.198176 +aim_hud_offset_pos_16x9 = -0.071862, 0.014743, -0.198176 +aim_hud_offset_rot = 0.022731, 0.01879, 0 +aim_hud_offset_rot_16x9 = 0.022731, 0.01879, 0 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 + +![wpn_ak102_eot_hud] +aim_hud_offset_pos = -0.071649, 0.008773, -0.186521 +aim_hud_offset_pos_16x9 = -0.071649, 0.008773, -0.186521 +aim_hud_offset_rot = 0.016198, 0.01879, 0 +aim_hud_offset_rot_16x9 = 0.016198, 0.01879, 0 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 + +![wpn_ak102_1p29_hud] +aim_hud_offset_pos = -0.070583, 0.013893, -0.191637 +aim_hud_offset_pos_16x9 = -0.070583, 0.013893, -0.191637 +aim_hud_offset_rot = 0.016198, 0.01879, 0 +aim_hud_offset_rot_16x9 = 0.016198, 0.01879, 0 +anm_hide = mask_102_holster_arms, mask_102_idle +anm_hide_empty = mask_102_holster_arms, mask_102_idle +anm_idle = mask_102_idle_arms, mask_102_idle +anm_idle_aim = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_empty = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving_crouch = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving_crouch_empty = mask_102_idle_ads_arms, mask_102_idle +anm_idle_aim_moving_empty = mask_102_idle_ads_arms, mask_102_idle +anm_idle_empty = mask_102_idle_arms, mask_102_idle +anm_idle_moving = mask_102_walk_arms, mask_102_idle +anm_idle_moving_crouch = mask_102_walk_arms, mask_102_idle +anm_idle_moving_crouch_empty = mask_102_walk_arms, mask_102_idle +anm_idle_moving_empty = mask_102_walk_arms, mask_102_idle +anm_idle_sprint = mask_102_sprint_arms, mask_102_idle +anm_idle_sprint_empty = mask_102_sprint_arms, mask_102_idle +anm_reload = mask_102_reload_arms, mask_102_reload_gun +anm_reload_empty = mask_102_reload_empty_arms, mask_102_reload_empty_gun +anm_shot_l = mask_102_shoot_arms, mask_102_shoot_gun +anm_shots = mask_102_shoot_arms, mask_102_shoot_gun +anm_show = mask_102_draw_arms, mask_102_idle +anm_show_empty = mask_102_draw_arms, mask_102_idle +anm_switch_mode = mask_102_switchmode_arms, mask_102_idle +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 + +![wpn_ak102_kobra_hud] +aim_hud_offset_pos = -0.070797, 0.004223, -0.177427 +aim_hud_offset_pos_16x9 = -0.070797, 0.004223, -0.177427 +aim_hud_offset_rot = 0.016198, 0.01879, 0 +aim_hud_offset_rot_16x9 = 0.016198, 0.01879, 0 +!aim_hud_offset_pos_ + +![wpn_ak102_pso1_hud] +aim_hud_offset_pos = -0.062475, 0.020704, -0.154969 +aim_hud_offset_pos_16x9 = -0.062475, 0.020704, -0.154969 +aim_hud_offset_rot = 0.016198, 0.01879, 0 +aim_hud_offset_rot_16x9 = 0.016198, 0.01879, 0 + +![wpn_ak104] +use_alt_aim_hud = false + +![wpn_ak104_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.059369, -0.016308, -0.122306 +hands_position_16x9 = 0.059369, -0.016308, -0.122306 +aim_hud_offset_pos = -0.071649, 0.032638, -0.186521 +aim_hud_offset_pos_16x9 = -0.071649, 0.032638, -0.186521 +aim_hud_offset_rot = 0.024718, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.024718, 0.018364, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.040546, -0.006166, -0.108975 +gl_hud_offset_pos_16x9 = -0.040546, -0.006166, -0.108975 +gl_hud_offset_rot = -0.089545, 0.014206, -0.004946 +gl_hud_offset_rot_16x9 = -0.089545, 0.014206, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_104_holster_arms, mask_104_idle +anm_hide_empty = mask_104_holster_arms, mask_104_idle +anm_idle = mask_104_idle_arms, mask_104_idle +anm_idle_aim = mask_104_idle_ads_arms, mask_104_idle +anm_idle_aim_empty = mask_104_idle_ads_arms, mask_104_idle +anm_idle_aim_moving = mask_104_idle_ads_arms, mask_104_idle +anm_idle_aim_moving_crouch = mask_104_idle_ads_arms, mask_104_idle +anm_idle_aim_moving_crouch_empty = mask_104_idle_ads_arms, mask_104_idle +anm_idle_aim_moving_empty = mask_104_idle_ads_arms, mask_104_idle +anm_idle_empty = mask_104_idle_arms, mask_104_idle +anm_idle_moving = mask_104_walk_arms, mask_104_idle +anm_idle_moving_crouch = mask_104_walk_arms, mask_104_idle +anm_idle_moving_crouch_empty = mask_104_walk_arms, mask_104_idle +anm_idle_moving_empty = mask_104_walk_arms, mask_104_idle +anm_idle_sprint = mask_104_sprint_arms, mask_104_idle +anm_idle_sprint_empty = mask_104_sprint_arms, mask_104_idle +anm_reload = mask_104_reload_arms, mask_104_reload_gun +anm_reload_empty = mask_104_reload_empty_arms, mask_104_reload_empty_gun +anm_shot_l = mask_104_shoot_arms, mask_104_shoot_gun +anm_shots = mask_104_shoot_arms, mask_104_shoot_gun +anm_show = mask_104_draw_arms, mask_104_idle +anm_show_empty = mask_104_draw_arms, mask_104_idle +anm_switch_mode = mask_104_switchmode_arms, mask_104_idle +anm_reload_misfire = mask_104_unjam_arms, mask_104_unjam_gun + +![wpn_ak104_1p29_hud] +aim_hud_offset_pos = -0.072288, 0.009619, -0.186521 +aim_hud_offset_pos_16x9 = -0.072288, 0.009619, -0.186521 +aim_hud_offset_rot = 0.024718, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.024718, 0.018364, 0 + +![wpn_ak104_kobra_hud] +aim_hud_offset_pos = -0.07101, 0.005928, -0.176281 +aim_hud_offset_pos_16x9 = -0.07101, 0.005928, -0.176281 +aim_hud_offset_rot = 0.024718, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.024718, 0.018364, 0 + +![wpn_ak104_pso1_hud] +aim_hud_offset_pos = -0.063751, 0.015882, -0.136755 +aim_hud_offset_pos_16x9 = -0.063751, 0.015882, -0.136755 +aim_hud_offset_rot = 0.024718, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.024718, 0.018364, 0 + +![wpn_ak105] +use_alt_aim_hud = false + +![wpn_ak105_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.058091, -0.023408, -0.108652 +hands_position_16x9 = 0.058091, -0.023408, -0.108652 +aim_hud_offset_pos = -0.07101, 0.035478, -0.197325 +aim_hud_offset_pos_16x9 = -0.07101, 0.035478, -0.197325 +aim_hud_offset_rot = 0.024434, 0.018151, -0.000574 +aim_hud_offset_rot_16x9 = 0.024434, 0.018151, -0.000574 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.040546, -0.006166, -0.108975 +gl_hud_offset_pos_16x9 = -0.040546, -0.006166, -0.108975 +gl_hud_offset_rot = -0.089545, 0.014206, -0.004946 +gl_hud_offset_rot_16x9 = -0.089545, 0.014206, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_105_holster_arms, mask_105_idle +anm_hide_empty = mask_105_holster_arms, mask_105_idle +anm_idle = mask_105_idle_arms, mask_105_idle +anm_idle_aim = mask_105_idle_ads_arms, mask_105_idle +anm_idle_aim_empty = mask_105_idle_ads_arms, mask_105_idle +anm_idle_aim_moving = mask_105_idle_ads_arms, mask_105_idle +anm_idle_aim_moving_crouch = mask_105_idle_ads_arms, mask_105_idle +anm_idle_aim_moving_crouch_empty = mask_105_idle_ads_arms, mask_105_idle +anm_idle_aim_moving_empty = mask_105_idle_ads_arms, mask_105_idle +anm_idle_empty = mask_105_idle_arms, mask_105_idle +anm_idle_moving = mask_105_walk_arms, mask_105_idle +anm_idle_moving_crouch = mask_105_walk_arms, mask_105_idle +anm_idle_moving_crouch_empty = mask_105_walk_arms, mask_105_idle +anm_idle_moving_empty = mask_105_walk_arms, mask_105_idle +anm_idle_sprint = mask_105_sprint_arms, mask_105_idle +anm_idle_sprint_empty = mask_105_sprint_arms, mask_105_idle +anm_reload = mask_105_reload_arms, mask_105_reload_gun +anm_reload_empty = mask_105_reload_empty_arms, mask_105_reload_empty_gun +anm_shot_l = mask_105_shoot_arms, mask_105_shoot_gun +anm_shots = mask_105_shoot_arms, mask_105_shoot_gun +anm_show = mask_105_draw_arms, mask_105_idle +anm_show_empty = mask_105_draw_arms, mask_105_idle +anm_switch_mode = mask_105_switchmode_arms, mask_105_idle +anm_reload_misfire = mask_105_unjam_arms, mask_105_unjam_gun + +![wpn_ak105_1p29_hud] +aim_hud_offset_pos = -0.071436, 0.011894, -0.197325 +aim_hud_offset_pos_16x9 = -0.071436, 0.011894, -0.197325 +aim_hud_offset_rot = 0.024434, 0.018151, -0.000574 +aim_hud_offset_rot_16x9 = 0.024434, 0.018151, -0.000574 + +![wpn_ak105_kobra_hud] +aim_hud_offset_pos = -0.069945, 0.01162, -0.189076 +aim_hud_offset_pos_16x9 = -0.069945, 0.01162, -0.189076 +aim_hud_offset_rot = 0.024434, 0.018151, -0.000574 +aim_hud_offset_rot_16x9 = 0.024434, 0.018151, -0.000574 + +![wpn_ak105_pso1_hud] +aim_hud_offset_pos = -0.062277, 0.024402, -0.170304 +aim_hud_offset_pos_16x9 = -0.062277, 0.024402, -0.170304 +aim_hud_offset_rot = 0.024434, 0.018151, -0.000574 +aim_hud_offset_rot_16x9 = 0.024434, 0.018151, -0.000574 +!hands_position +!hands_position_16x9 + +![wpn_ash12] +use_alt_aim_hud = false +use_aim_bullet = true + +![wpn_ash12_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.058091, -0.018292, -0.047217 +hands_position_16x9 = 0.058091, -0.018292, -0.047217 +aim_hud_offset_pos = -0.07101, -0.011397, -0.152664 +aim_hud_offset_pos_16x9 = -0.07101, -0.011397, -0.152664 +aim_hud_offset_rot = 0.00427, 0.018151, 0 +aim_hud_offset_rot_16x9 = 0.00427, 0.018151, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.0704, -0.042807, -0.108975 +gl_hud_offset_pos_16x9 = -0.0704, -0.042807, -0.108975 +gl_hud_offset_rot = -0.092669, 0.016975, -0.004946 +gl_hud_offset_rot_16x9 = -0.092669, 0.016975, -0.004946 +lowered_hud_offset_pos = 0.013054, -0.050055, -0.0168 +lowered_hud_offset_pos_16x9 = 0.013054, -0.050055, -0.0168 +lowered_hud_offset_rot = 0.01946, -0.297447, 0.680849 +lowered_hud_offset_rot_16x9 = 0.01946, -0.297447, 0.680849 +*-- +anm_hide = mask_ash_holster_arms, mask_ash_idle +anm_hide_empty = mask_ash_holster_arms, mask_ash_idle +anm_idle = mask_ash_idle_arms, mask_ash_idle +anm_idle_aim = mask_ash_idle_ads_arms, mask_ash_idle +anm_idle_aim_empty = mask_ash_idle_ads_arms, mask_ash_idle +anm_idle_aim_moving = mask_ash_idle_ads_arms, mask_ash_idle +anm_idle_aim_moving_crouch = mask_ash_idle_ads_arms, mask_ash_idle +anm_idle_aim_moving_crouch_empty = mask_ash_idle_ads_arms, mask_ash_idle +anm_idle_aim_moving_empty = mask_ash_idle_ads_arms, mask_ash_idle +anm_idle_empty = mask_ash_idle_arms, mask_ash_idle +anm_idle_moving = mask_ash_walk_arms, mask_ash_idle +anm_idle_moving_crouch = mask_ash_walk_arms, mask_ash_idle +anm_idle_moving_crouch_empty = mask_ash_walk_arms, mask_ash_idle +anm_idle_moving_empty = mask_ash_walk_arms, mask_ash_idle +anm_idle_sprint = mask_ash_sprint_arms, mask_ash_idle +anm_idle_sprint_empty = mask_ash_sprint_arms, mask_ash_idle +anm_reload = mask_ash_reload_arms, mask_ash_reload_gun +anm_reload_empty = mask_ash_reload_empty_arms, mask_ash_reload_empty_gun +anm_shot_l = mask_ash_shoot_arms, mask_ash_shoot_gun +anm_shots = mask_ash_shoot_arms, mask_ash_shoot_gun +anm_show = mask_ash_draw_arms, mask_ash_idle +anm_show_empty = mask_ash_draw_arms, mask_ash_idle +anm_switch_mode = mask_ash_switchmode_arms, mask_ash_idle +anm_reload_misfire = mask_ash_unjam_arms, mask_ash_unjam_gun + +![wpn_ash12_ac10632_hud] +aim_hud_offset_pos = -0.071223, -0.035821, -0.152664 +aim_hud_offset_pos_16x9 = -0.071223, -0.035821, -0.152664 + +![wpn_ash12_acog_hud] +aim_hud_offset_pos = -0.07101, -0.024177, -0.197309 +aim_hud_offset_pos_16x9 = -0.07101, -0.024177, -0.197309 +aim_hud_offset_rot = 0.019038, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.019038, 0.018364, 0 + +![wpn_ash12_c-more_hud] +aim_hud_offset_pos = -0.071223, -0.034686, -0.152664 +aim_hud_offset_pos_16x9 = -0.071223, -0.034686, -0.152664 + +![wpn_ash12_eot_hud] +aim_hud_offset_pos = -0.071223, -0.039816, -0.152664 +aim_hud_offset_pos_16x9 = -0.071223, -0.039816, -0.152664 + +![wpn_aug] +use_alt_aim_hud = true + +![wpn_aug_hud] + hands_orientation = 1.0384, 1.194821, -0.100189 + hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 + hands_position = 0.067168, -0.001739, -0.059696 + hands_position_16x9 = 0.067168, -0.001739, -0.059696 + aim_hud_offset_pos = -0.080445, 0.019846, -0.152425 + aim_hud_offset_pos_16x9 = -0.080445, 0.019846, -0.152425 + aim_hud_offset_rot = 0.021576, 0.018724, -0.002268 + aim_hud_offset_rot_16x9 = 0.021576, 0.018724, -0.002268 + aim_hud_offset_alt_pos = -0.081432, 0.004794, -0.137625 + aim_hud_offset_alt_pos_16x9 = -0.081432, 0.004794, -0.137625 + aim_hud_offset_alt_rot = 0.019304, 0.0183, -0.006505 + aim_hud_offset_alt_rot_16x9 = 0.019304, 0.0183, -0.006505 +gl_hud_offset_pos = -0.016497, -0.004792, -0.151593 +gl_hud_offset_pos_16x9 = -0.016497, -0.004792, -0.151593 +gl_hud_offset_rot = -0.08588, 0.013572, -0.004946 +gl_hud_offset_rot_16x9 = -0.08588, 0.013572, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_aug_holster_arms, mask_aug_idle +anm_hide_empty = mask_aug_holster_arms, mask_aug_idle +anm_idle = mask_aug_idle_arms, mask_aug_idle +anm_idle_aim = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_empty = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving_crouch = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving_crouch_empty = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving_empty = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_empty = mask_aug_idle_arms, mask_aug_idle +anm_idle_moving = mask_aug_walk_arms, mask_aug_idle +anm_idle_moving_crouch = mask_aug_walk_arms, mask_aug_idle +anm_idle_moving_crouch_empty = mask_aug_walk_arms, mask_aug_idle +anm_idle_moving_empty = mask_aug_walk_arms, mask_aug_idle +anm_idle_sprint = mask_aug_sprint_arms, mask_aug_idle +anm_idle_sprint_empty = mask_aug_sprint_arms, mask_aug_idle +anm_reload = mask_aug_reload_arms, mask_aug_reload_gun +anm_reload_empty = mask_aug_reload_empty_arms, mask_aug_reload_empty_gun +anm_shot_l = mask_aug_shoot_arms, mask_aug_shoot_gun +anm_shots = mask_aug_shoot_arms, mask_aug_shoot_gun +anm_show = mask_aug_draw_arms, mask_aug_idle +anm_show_empty = mask_aug_draw_arms, mask_aug_idle +anm_reload_misfire = mask_aug_unjam_arms, mask_aug_unjam_gun +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_aug_a1_hud] + hands_orientation = 1.0384, 1.194821, -0.100189 + hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 + hands_position = 0.067168, -0.001739, -0.059696 + hands_position_16x9 = 0.067168, -0.001739, -0.059696 + aim_hud_offset_pos = -0.080445, 0.019846, -0.152425 + aim_hud_offset_pos_16x9 = -0.080445, 0.019846, -0.152425 + aim_hud_offset_rot = 0.021576, 0.018724, -0.002268 + aim_hud_offset_rot_16x9 = 0.021576, 0.018724, -0.002268 + aim_hud_offset_alt_pos = -0.081432, 0.004794, -0.137625 + aim_hud_offset_alt_pos_16x9 = -0.081432, 0.004794, -0.137625 + aim_hud_offset_alt_rot = 0.019304, 0.0183, -0.006505 + aim_hud_offset_alt_rot_16x9 = 0.019304, 0.0183, -0.006505 +gl_hud_offset_pos = -0.016497, -0.004792, -0.151593 +gl_hud_offset_pos_16x9 = -0.016497, -0.004792, -0.151593 +gl_hud_offset_rot = -0.08588, 0.013572, -0.004946 +gl_hud_offset_rot_16x9 = -0.08588, 0.013572, -0.004946 +lowered_hud_offset_pos = -0.010217, -0.018238, -0.01196 +lowered_hud_offset_pos_16x9 = -0.010217, -0.018238, -0.01196 +lowered_hud_offset_rot = -0.026327, -0.285488, 0.680849 +lowered_hud_offset_rot_16x9 = -0.026327, -0.285488, 0.680849 +anm_hide = mask_aug_holster_arms, mask_aug_idle +anm_hide_empty = mask_aug_holster_arms, mask_aug_idle +anm_idle = mask_aug_idle_arms, mask_aug_idle +anm_idle_aim = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_empty = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving_crouch = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving_crouch_empty = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_aim_moving_empty = mask_aug_idle_ads_arms, mask_aug_idle +anm_idle_empty = mask_aug_idle_arms, mask_aug_idle +anm_idle_moving = mask_aug_walk_arms, mask_aug_idle +anm_idle_moving_crouch = mask_aug_walk_arms, mask_aug_idle +anm_idle_moving_crouch_empty = mask_aug_walk_arms, mask_aug_idle +anm_idle_moving_empty = mask_aug_walk_arms, mask_aug_idle +anm_idle_sprint = mask_aug_sprint_arms, mask_aug_idle +anm_idle_sprint_empty = mask_aug_sprint_arms, mask_aug_idle +anm_reload = mask_aug_reload_arms, mask_aug_reload_gun +anm_reload_empty = mask_aug_reload_empty_arms, mask_aug_reload_empty_gun +anm_shot_l = mask_aug_shoot_arms, mask_aug_shoot_gun +anm_shots = mask_aug_shoot_arms, mask_aug_shoot_gun +anm_show = mask_aug_draw_arms, mask_aug_idle +anm_show_empty = mask_aug_draw_arms, mask_aug_idle +anm_reload_misfire = mask_aug_unjam_arms, mask_aug_unjam_gun +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_aug_a3] +use_aim_bullet = true + +![wpn_beretta_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.054592, 0.026411, -0.2 +aim_hud_offset_pos_16x9 = -0.054592, 0.026411, -0.2 +aim_hud_offset_rot = 0.02128, 0.029461, 0.001509 +aim_hud_offset_rot_16x9 = 0.02128, 0.029461, 0.001509 +anm_hide = mask_m9_holster_arms, mask_m9_idle +anm_hide_empty = mask_m9_holster_arms, mask_m9_idle_empty +anm_idle = mask_m9_idle_arms, mask_m9_idle +anm_idle_aim = mask_m9_idle_ads_arms, mask_m9_idle +anm_idle_aim_empty = mask_m9_idle_ads_arms, mask_m9_idle_empty +anm_idle_aim_moving = mask_m9_idle_ads_arms, mask_m9_idle +anm_idle_aim_moving_crouch = mask_m9_idle_ads_arms, mask_m9_idle +anm_idle_aim_moving_crouch_empty = mask_m9_idle_ads_arms, mask_m9_idle_empty +anm_idle_aim_moving_empty = mask_m9_idle_ads_arms, mask_m9_idle_empty +anm_idle_empty = mask_m9_idle_arms, mask_m9_idle_empty +anm_idle_moving = mask_m9_walk_arms, mask_m9_idle +anm_idle_moving_crouch = mask_m9_walk_arms, mask_m9_idle +anm_idle_moving_crouch_empty = mask_m9_walk_arms, mask_m9_idle_empty +anm_idle_moving_empty = mask_m9_walk_arms, mask_m9_idle_empty +anm_idle_sprint = mask_m9_sprint_arms, mask_m9_idle +anm_idle_sprint_empty = mask_m9_sprint_arms, mask_m9_idle_empty +anm_reload = mask_m9_reload_arms, mask_m9_reload_gun +anm_reload_empty = mask_m9_reload_empty_arms, mask_m9_reload_empty_gun +anm_shot_l = mask_m9_shoot_arms, mask_m9_shoot_last_gun +anm_shots = mask_m9_shoot_arms, mask_m9_shoot_gun +anm_show = mask_m9_draw_arms, mask_m9_idle +anm_show_empty = mask_m9_draw_arms, mask_m9_idle_empty +anm_reload_misfire = mask_m9_unjam_arms, mask_m9_unjam_gun +; anm_bore = mask_m9_bore_arms, mask_m9_idle +; anm_bore_empty = mask_m9_bore_arms, mask_m9_idle_empty +; anm_ammo_check = mask_m9_magcheck_arms, mask_m9_magcheck_gun +; anm_ammo_check_empty = mask_m9_bore_arms, mask_m9_idle_empty + +![wpn_colt1911_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.057361, 0.024139, -0.2 +aim_hud_offset_pos_16x9 = -0.057361, 0.024139, -0.2 +aim_hud_offset_rot = 0.007648, 0.030313, 0.000657 +aim_hud_offset_rot_16x9 = 0.007648, 0.030313, 0.000657 +anm_hide = mask_colt1911_holster_arms, mask_colt1911_idle +anm_hide_empty = mask_colt1911_holster_arms, mask_colt1911_idle_empty +anm_idle = mask_colt1911_idle_arms, mask_colt1911_idle +anm_idle_aim = mask_colt1911_idle_ads_arms, mask_colt1911_idle +anm_idle_aim_empty = mask_colt1911_idle_ads_arms, mask_colt1911_idle_empty +anm_idle_aim_moving = mask_colt1911_idle_ads_arms, mask_colt1911_idle +anm_idle_aim_moving_crouch = mask_colt1911_idle_ads_arms, mask_colt1911_idle +anm_idle_aim_moving_crouch_empty = mask_colt1911_idle_ads_arms, mask_colt1911_idle_empty +anm_idle_aim_moving_empty = mask_colt1911_idle_ads_arms, mask_colt1911_idle_empty +anm_idle_empty = mask_colt1911_idle_arms, mask_colt1911_idle_empty +anm_idle_moving = mask_colt1911_walk_arms, mask_colt1911_idle +anm_idle_moving_crouch = mask_colt1911_walk_arms, mask_colt1911_idle +anm_idle_moving_crouch_empty = mask_colt1911_walk_arms, mask_colt1911_idle_empty +anm_idle_moving_empty = mask_colt1911_walk_arms, mask_colt1911_idle_empty +anm_idle_sprint = mask_colt1911_sprint_arms, mask_colt1911_idle +anm_idle_sprint_empty = mask_colt1911_sprint_arms, mask_colt1911_idle_empty +anm_reload = mask_colt1911_reload_arms, mask_colt1911_reload_gun +anm_reload_empty = mask_colt1911_reload_empty_arms, mask_colt1911_reload_empty_gun +anm_shot_l = mask_colt1911_shoot_arms, mask_colt1911_shoot_last_gun +anm_shots = mask_colt1911_shoot_arms, mask_colt1911_shoot_gun +anm_show = mask_colt1911_draw_arms, mask_colt1911_idle +anm_show_empty = mask_colt1911_draw_arms, mask_colt1911_idle_empty +anm_reload_misfire = mask_colt1911_unjam_arms, mask_colt1911_unjam_gun +; anm_bore = mask_colt1911_bore_arms, mask_colt1911_idle +; anm_bore_empty = mask_colt1911_bore_arms, mask_colt1911_idle_empty +; anm_ammo_check = mask_colt1911_magcheck_arms, mask_colt1911_magcheck_gun +; anm_ammo_check_empty = mask_colt1911_bore_arms, mask_colt1911_idle_empty + +![wpn_cz75_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.05651, 0.024423, -0.2 +aim_hud_offset_pos_16x9 = -0.05651, 0.024423, -0.2 +aim_hud_offset_rot = 0.003104, 0.030526, 0.000941 +aim_hud_offset_rot_16x9 = 0.003104, 0.030526, 0.000941 +anm_hide = mask_cz75_holster_arms, mask_cz75_idle +anm_hide_empty = mask_cz75_holster_arms, mask_cz75_idle_empty +anm_idle = mask_cz75_idle_arms, mask_cz75_idle +anm_idle_aim = mask_cz75_idle_ads_arms, mask_cz75_idle +anm_idle_aim_empty = mask_cz75_idle_ads_arms, mask_cz75_idle_empty +anm_idle_aim_moving = mask_cz75_idle_ads_arms, mask_cz75_idle +anm_idle_aim_moving_crouch = mask_cz75_idle_ads_arms, mask_cz75_idle +anm_idle_aim_moving_crouch_empty = mask_cz75_idle_ads_arms, mask_cz75_idle_empty +anm_idle_aim_moving_empty = mask_cz75_idle_ads_arms, mask_cz75_idle_empty +anm_idle_empty = mask_cz75_idle_arms, mask_cz75_idle_empty +anm_idle_moving = mask_cz75_walk_arms, mask_cz75_idle +anm_idle_moving_crouch = mask_cz75_walk_arms, mask_cz75_idle +anm_idle_moving_crouch_empty = mask_cz75_walk_arms, mask_cz75_idle_empty +anm_idle_moving_empty = mask_cz75_walk_arms, mask_cz75_idle_empty +anm_idle_sprint = mask_cz75_sprint_arms, mask_cz75_idle +anm_idle_sprint_empty = mask_cz75_sprint_arms, mask_cz75_idle_empty +anm_reload = mask_cz75_reload_arms, mask_cz75_reload_gun +anm_reload_empty = mask_cz75_reload_empty_arms, mask_cz75_reload_empty_gun +anm_shot_l = mask_cz75_shoot_arms, mask_cz75_shoot_last_gun +anm_shots = mask_cz75_shoot_arms, mask_cz75_shoot_gun +anm_show = mask_cz75_draw_arms, mask_cz75_idle +anm_show_empty = mask_cz75_draw_arms, mask_cz75_idle_empty +anm_reload_misfire = mask_cz75_unjam_arms, mask_cz75_unjam_gun +; anm_bore = mask_cz75_bore_arms, mask_cz75_idle +; anm_bore_empty = mask_cz75_bore_arms, mask_cz75_idle_empty +; anm_ammo_check = mask_cz75_magcheck_arms, mask_cz75_magcheck_gun +; anm_ammo_check_empty = mask_cz75_bore_arms, mask_cz75_idle_empty + +![wpn_cz75_auto_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +safemode_anm = +safemode_anm2 = +lowered_hud_offset_pos = 0,0.1,0 +lowered_hud_offset_rot = 0.3,-0.1,0.1 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.053527, 0.027547, -0.207953 +aim_hud_offset_pos_16x9 = -0.053527, 0.027547, -0.207953 +aim_hud_offset_rot = 0.007648, 0.029246, -0.005875 +aim_hud_offset_rot_16x9 = 0.007648, 0.029246, -0.005875 +gl_hud_offset_pos = 0, 0, 0 +gl_hud_offset_rot = 0, 0, 0 +lean_hud_offset_pos = 0, 0, 0 +lean_hud_offset_rot = 0, 0, 0 +anm_hide = mask_cz75a_holster_arms, mask_cz75a_idle +anm_hide_empty = mask_cz75a_holster_arms, mask_cz75a_idle_empty +anm_idle = mask_cz75a_idle_arms, mask_cz75a_idle +anm_idle_aim = mask_cz75a_idle_ads_arms, mask_cz75a_idle +anm_idle_aim_empty = mask_cz75a_idle_ads_arms, mask_cz75a_idle_empty +anm_idle_aim_moving = mask_cz75a_idle_ads_arms, mask_cz75a_idle +anm_idle_aim_moving_crouch = mask_cz75a_idle_ads_arms, mask_cz75a_idle +anm_idle_aim_moving_crouch_empty = mask_cz75a_idle_ads_arms, mask_cz75a_idle_empty +anm_idle_aim_moving_empty = mask_cz75a_idle_ads_arms, mask_cz75a_idle_empty +anm_idle_empty = mask_cz75a_idle_arms, mask_cz75a_idle_empty +anm_idle_moving = mask_cz75a_walk_arms, mask_cz75a_idle +anm_idle_moving_crouch = mask_cz75a_walk_arms, mask_cz75a_idle +anm_idle_moving_crouch_empty = mask_cz75a_walk_arms, mask_cz75a_idle_empty +anm_idle_moving_empty = mask_cz75a_walk_arms, mask_cz75a_idle_empty +anm_idle_sprint = mask_cz75a_sprint_arms, mask_cz75a_idle +anm_idle_sprint_empty = mask_cz75a_sprint_arms, mask_cz75a_idle_empty +anm_reload = mask_cz75a_reload_arms, mask_cz75a_reload_gun +anm_reload_empty = mask_cz75a_reload_empty_arms, mask_cz75a_reload_empty_gun +anm_shot_l = mask_cz75a_shoot_arms, mask_cz75a_shoot_last_gun +anm_shots = mask_cz75a_shoot_arms, mask_cz75a_shoot_gun +anm_show = mask_cz75a_draw_arms, mask_cz75a_idle +anm_show_empty = mask_cz75a_draw_arms, mask_cz75a_idle_empty +anm_switch_mode = mask_cz75a_switchmode_arms, mask_cz75a_idle +anm_switch_mode_empty = mask_cz75a_switchmode_arms, mask_cz75a_idle_empty +anm_reload_misfire = mask_cz75a_unjam_arms, mask_cz75a_unjam_gun +; anm_bore = mask_cz75a_bore_arms, mask_cz75a_idle +; anm_bore_empty = mask_cz75a_bore_arms, mask_cz75a_idle_empty +; anm_ammo_check = mask_cz75a_magcheck_arms, mask_cz75a_magcheck_gun +; anm_ammo_check_empty = mask_cz75a_bore_arms, mask_cz75a_idle_empty + +![wpn_desert_eagle_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.053953, 0.017323, -0.2 +aim_hud_offset_pos_16x9 = -0.053953, 0.017323, -0.2 +aim_hud_offset_rot = 0.013896, 0.02946, 0.004915 +aim_hud_offset_rot_16x9 = 0.013896, 0.02946, 0.004915 +anm_hide = mask_deag_holster_arms, mask_deag_idle +anm_hide_empty = mask_deag_holster_arms, mask_deag_idle_empty +anm_idle = mask_deag_idle_arms, mask_deag_idle +anm_idle_aim = mask_deag_idle_ads_arms, mask_deag_idle +anm_idle_aim_empty = mask_deag_idle_ads_arms, mask_deag_idle_empty +anm_idle_aim_moving = mask_deag_idle_ads_arms, mask_deag_idle +anm_idle_aim_moving_crouch = mask_deag_idle_ads_arms, mask_deag_idle +anm_idle_aim_moving_crouch_empty = mask_deag_idle_ads_arms, mask_deag_idle_empty +anm_idle_aim_moving_empty = mask_deag_idle_ads_arms, mask_deag_idle_empty +anm_idle_empty = mask_deag_idle_arms, mask_deag_idle_empty +anm_idle_moving = mask_deag_walk_arms, mask_deag_idle +anm_idle_moving_crouch = mask_deag_walk_arms, mask_deag_idle +anm_idle_moving_crouch_empty = mask_deag_walk_arms, mask_deag_idle_empty +anm_idle_moving_empty = mask_deag_walk_arms, mask_deag_idle_empty +anm_idle_sprint = mask_deag_sprint_arms, mask_deag_idle +anm_idle_sprint_empty = mask_deag_sprint_arms, mask_deag_idle_empty +anm_reload = mask_deag_reload_arms, mask_deag_reload_gun +anm_reload_empty = mask_deag_reload_empty_arms, mask_deag_reload_empty_gun +anm_shot_l = mask_deag_shoot_arms, mask_deag_shoot_last_gun +anm_shots = mask_deag_shoot_arms, mask_deag_shoot_gun +anm_show = mask_deag_draw_arms, mask_deag_idle +anm_show_empty = mask_deag_draw_arms, mask_deag_idle_empty +anm_reload_misfire = mask_deag_unjam_arms, mask_deag_unjam_gun +; anm_bore = mask_deag_bore_arms, mask_deag_idle +; anm_bore_empty = mask_deag_bore_arms, mask_deag_idle_empty +; anm_ammo_check = mask_deag_magcheck_arms, mask_deag_magcheck_gun +; anm_ammo_check_empty = mask_deag_bore_arms, mask_deag_idle_empty + +![wpn_desert_eagle_nimble_hud] +aim_hud_offset_pos = -0.054379, 0.007667, -0.2 +aim_hud_offset_pos_16x9 = -0.054379, 0.007667, -0.2 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_fal] +use_alt_aim_hud = false +use_aim_bullet = true + +![wpn_fal_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.061499, -0.029662, -0.085628 +hands_position_16x9 = 0.061499, -0.029662, -0.085628 +aim_hud_offset_pos = -0.074415, 0.04201, -0.174554 +aim_hud_offset_pos_16x9 = -0.074415, 0.04201, -0.174554 +aim_hud_offset_rot = 0.02699, 0.018577, 0 +aim_hud_offset_rot_16x9 = 0.02699, 0.018577, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.073797, -0.04621, -0.108975 +gl_hud_offset_pos_16x9 = -0.073797, -0.04621, -0.108975 +gl_hud_offset_rot = -0.096929, 0.017618, -0.004946 +gl_hud_offset_rot_16x9 = -0.096929, 0.017618, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_fal_holster_arms, mask_fal_idle +anm_hide_empty = mask_fal_holster_arms, mask_fal_idle +anm_idle = mask_fal_idle_arms, mask_fal_idle +anm_idle_aim = mask_fal_idle_ads_arms, mask_fal_idle +anm_idle_aim_empty = mask_fal_idle_ads_arms, mask_fal_idle +anm_idle_aim_moving = mask_fal_idle_ads_arms, mask_fal_idle +anm_idle_aim_moving_crouch = mask_fal_idle_ads_arms, mask_fal_idle +anm_idle_aim_moving_crouch_empty = mask_fal_idle_ads_arms, mask_fal_idle +anm_idle_aim_moving_empty = mask_fal_idle_ads_arms, mask_fal_idle +anm_idle_empty = mask_fal_idle_arms, mask_fal_idle +anm_idle_moving = mask_fal_walk_arms, mask_fal_idle +anm_idle_moving_crouch = mask_fal_walk_arms, mask_fal_idle +anm_idle_moving_crouch_empty = mask_fal_walk_arms, mask_fal_idle +anm_idle_moving_empty = mask_fal_walk_arms, mask_fal_idle +anm_idle_sprint = mask_fal_sprint_arms, mask_fal_idle +anm_idle_sprint_empty = mask_fal_sprint_arms, mask_fal_idle +anm_reload = mask_fal_reload_arms, mask_fal_reload_gun +anm_reload_empty = mask_fal_reload_empty_arms, mask_fal_reload_empty_gun +anm_shot_l = mask_fal_shoot_arms, mask_fal_shoot_gun +anm_shots = mask_fal_shoot_arms, mask_fal_shoot_gun +anm_show = mask_fal_draw_arms, mask_fal_idle +anm_show_empty = mask_fal_draw_arms, mask_fal_idle +anm_switch_mode = mask_fal_switchmode_arms, mask_fal_idle +anm_reload_misfire = mask_fal_unjam_arms, mask_fal_unjam_gun + +![wpn_fal_ac10632_hud] +aim_hud_offset_pos = -0.074416, 0.020426, -0.158911 +aim_hud_offset_pos_16x9 = -0.074416, 0.020426, -0.158911 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_fal_acog_hud] +aim_hud_offset_pos = -0.074416, 0.021846, -0.158911 +aim_hud_offset_pos_16x9 = -0.074416, 0.021846, -0.158911 +aim_hud_offset_rot = 0.025002, 0.018577, 0 +aim_hud_offset_rot_16x9 = 0.025002, 0.018577, 0 + +![wpn_fal_c-more_hud] +aim_hud_offset_pos = -0.074628, 0.019574, -0.174554 +aim_hud_offset_pos_16x9 = -0.074628, 0.019574, -0.174554 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_fal_eot_hud] +aim_hud_offset_pos = -0.074415, 0.011904, -0.153804 +aim_hud_offset_pos_16x9 = -0.074415, 0.011904, -0.153804 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_famas3] +use_alt_aim_hud = true +use_aim_bullet = true + +![wpn_famas3_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.056782, -0.014521, -0.059123 +hands_position_16x9 = 0.056782, -0.014521, -0.059123 +aim_hud_offset_pos = -0.072006, 0.019439, -0.191667 +aim_hud_offset_pos_16x9 = -0.072006, 0.019439, -0.191667 +aim_hud_offset_rot = 0.027824, 0.018508, 0.002844 +aim_hud_offset_rot_16x9 = 0.027824, 0.018508, 0.002844 +aim_hud_offset_alt_pos = -0.072006, 0.019439, -0.191667 +aim_hud_offset_alt_pos_16x9 = -0.072006, 0.019439, -0.191667 +aim_hud_offset_alt_rot = 0.027824, 0.018508, 0.002844 +aim_hud_offset_alt_rot_16x9 = 0.027824, 0.018508, 0.002844 +gl_hud_offset_pos = -0.016497, -0.004792, -0.151593 +gl_hud_offset_pos_16x9 = -0.016497, -0.004792, -0.151593 +gl_hud_offset_rot = -0.08588, 0.013572, -0.004946 +gl_hud_offset_rot_16x9 = -0.08588, 0.013572, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_fmas_holster_arms, mask_fmas_idle +anm_hide_empty = mask_fmas_holster_arms, mask_fmas_idle +anm_idle = mask_fmas_idle_arms, mask_fmas_idle +anm_idle_aim = mask_fmas_idle_ads_arms, mask_fmas_idle +anm_idle_aim_empty = mask_fmas_idle_ads_arms, mask_fmas_idle +anm_idle_aim_moving = mask_fmas_idle_ads_arms, mask_fmas_idle +anm_idle_aim_moving_crouch = mask_fmas_idle_ads_arms, mask_fmas_idle +anm_idle_aim_moving_crouch_empty = mask_fmas_idle_ads_arms, mask_fmas_idle +anm_idle_aim_moving_empty = mask_fmas_idle_ads_arms, mask_fmas_idle +anm_idle_empty = mask_fmas_idle_arms, mask_fmas_idle +anm_idle_moving = mask_fmas_walk_arms, mask_fmas_idle +anm_idle_moving_crouch = mask_fmas_walk_arms, mask_fmas_idle +anm_idle_moving_crouch_empty = mask_fmas_walk_arms, mask_fmas_idle +anm_idle_moving_empty = mask_fmas_walk_arms, mask_fmas_idle +anm_idle_sprint = mask_fmas_sprint_arms, mask_fmas_idle +anm_idle_sprint_empty = mask_fmas_sprint_arms, mask_fmas_idle +anm_reload = mask_fmas_reload_arms, mask_fmas_reload_gun +anm_reload_empty = mask_fmas_reload_empty_arms, mask_fmas_reload_empty_gun +anm_shot_l = mask_fmas_shoot_arms, mask_fmas_shoot_gun +anm_shots = mask_fmas_shoot_arms, mask_fmas_shoot_gun +anm_show = mask_fmas_draw_arms, mask_fmas_idle +anm_show_empty = mask_fmas_draw_arms, mask_fmas_idle +anm_reload_misfire = mask_fmas_unjam_arms, mask_fmas_unjam_gun +anm_switch_mode = mask_fmas_switchmode_arms, mask_fmas_idle +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_famas3_ac10632_hud] +aim_hud_offset_pos = -0.072219, -0.030306, -0.17575 +aim_hud_offset_pos_16x9 = -0.072219, -0.030306, -0.17575 +aim_hud_offset_rot = 0.027824, 0.018508, 0.002844 +aim_hud_offset_rot_16x9 = 0.027824, 0.018508, 0.002844 + +![wpn_famas3_acog_hud] +aim_hud_offset_pos = -0.072006, -0.027472, -0.209873 +aim_hud_offset_pos_16x9 = -0.072006, -0.027472, -0.209873 +aim_hud_offset_rot = 0.0247, 0.018295, 0.002844 +aim_hud_offset_rot_16x9 = 0.0247, 0.018295, 0.002844 + +![wpn_famas3_eot_hud] +aim_hud_offset_pos = -0.072432, -0.028901, -0.176613 +aim_hud_offset_pos_16x9 = -0.072432, -0.028901, -0.176613 +aim_hud_offset_rot = 0.027824, 0.018508, 0.002844 +aim_hud_offset_rot_16x9 = 0.027824, 0.018508, 0.002844 + +![wpn_fn2000] +use_alt_aim_hud = true + +![wpn_fn2000_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 + hands_position = 0.066805, -0.009693, -0.059123 + hands_position_16x9 = 0.066805, -0.009693, -0.059123 + + aim_hud_offset_pos = -0.079728, 0.011487, -0.178587 + aim_hud_offset_pos_16x9 = -0.079728, 0.011487, -0.178587 + aim_hud_offset_rot = 0.021576, 0.018724, -0.002268 + aim_hud_offset_rot_16x9 = 0.021576, 0.018724, -0.002268 + + aim_hud_offset_alt_pos = -0.079431, -0.012086, -0.145711 + aim_hud_offset_alt_pos_16x9 = -0.079431, -0.012086, -0.145711 + aim_hud_offset_alt_rot = 0.015257, 0.018406, -0.002268 + aim_hud_offset_alt_rot_16x9 = 0.015257, 0.018406, -0.002268 + +gl_hud_offset_pos = -0.016497, -0.004792, -0.151593 +gl_hud_offset_pos_16x9 = -0.016497, -0.004792, -0.151593 +gl_hud_offset_rot = -0.08588, 0.013572, -0.004946 +gl_hud_offset_rot_16x9 = -0.08588, 0.013572, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_f2k_holster_arms, mask_f2k_idle +anm_hide_empty = mask_f2k_holster_arms, mask_f2k_idle +anm_idle = mask_f2k_idle_arms, mask_f2k_idle +anm_idle_aim = mask_f2k_idle_ads_arms, mask_f2k_idle +anm_idle_aim_empty = mask_f2k_idle_ads_arms, mask_f2k_idle +anm_idle_aim_moving = mask_f2k_idle_ads_arms, mask_f2k_idle +anm_idle_aim_moving_crouch = mask_f2k_idle_ads_arms, mask_f2k_idle +anm_idle_aim_moving_crouch_empty = mask_f2k_idle_ads_arms, mask_f2k_idle +anm_idle_aim_moving_empty = mask_f2k_idle_ads_arms, mask_f2k_idle +anm_idle_empty = mask_f2k_idle_arms, mask_f2k_idle +anm_idle_moving = mask_f2k_walk_arms, mask_f2k_idle +anm_idle_moving_crouch = mask_f2k_walk_arms, mask_f2k_idle +anm_idle_moving_crouch_empty = mask_f2k_walk_arms, mask_f2k_idle +anm_idle_moving_empty = mask_f2k_walk_arms, mask_f2k_idle +anm_idle_sprint = mask_f2k_sprint_arms, mask_f2k_idle +anm_idle_sprint_empty = mask_f2k_sprint_arms, mask_f2k_idle +anm_reload = mask_f2k_reload_arms, mask_f2k_reload_gun +anm_reload_empty = mask_f2k_reload_empty_arms, mask_f2k_reload_empty_gun +anm_shot_l = mask_f2k_shoot_arms, mask_f2k_shoot_gun +anm_shots = mask_f2k_shoot_arms, mask_f2k_shoot_gun +anm_show = mask_f2k_draw_arms, mask_f2k_idle +anm_show_empty = mask_f2k_draw_arms, mask_f2k_idle +anm_reload_misfire = mask_f2k_unjam_arms, mask_f2k_unjam_gun +anm_switch_mode = mask_f2k_switchmode_arms, mask_f2k_idle +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_fn2000_nimble] +use_alt_aim_hud = false + +![wpn_fn2000_nimble_hud] + aim_hud_offset_pos = -0.07994, 0.001973, -0.166218 + aim_hud_offset_pos_16x9 = -0.07994, 0.001973, -0.166218 +aim_hud_offset_rot = 0.021576, 0.018724, -0.002268 +aim_hud_offset_rot_16x9 = 0.021576, 0.018724, -0.002268 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 + +![wpn_fn57_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.054379, 0.029819, -0.2 +aim_hud_offset_pos_16x9 = -0.054379, 0.029819, -0.2 +aim_hud_offset_rot = 0.02128, 0.029461, 0.000657 +aim_hud_offset_rot_16x9 = 0.02128, 0.029461, 0.000657 +anm_hide = mask_57_holster_arms, mask_57_idle +anm_hide_empty = mask_57_holster_arms, mask_57_idle_empty +anm_idle = mask_57_idle_arms, mask_57_idle +anm_idle_aim = mask_57_idle_ads_arms, mask_57_idle +anm_idle_aim_empty = mask_57_idle_ads_arms, mask_57_idle_empty +anm_idle_aim_moving = mask_57_idle_ads_arms, mask_57_idle +anm_idle_aim_moving_crouch = mask_57_idle_ads_arms, mask_57_idle +anm_idle_aim_moving_crouch_empty = mask_57_idle_ads_arms, mask_57_idle_empty +anm_idle_aim_moving_empty = mask_57_idle_ads_arms, mask_57_idle_empty +anm_idle_empty = mask_57_idle_arms, mask_57_idle_empty +anm_idle_moving = mask_57_walk_arms, mask_57_idle +anm_idle_moving_crouch = mask_57_walk_arms, mask_57_idle +anm_idle_moving_crouch_empty = mask_57_walk_arms, mask_57_idle_empty +anm_idle_moving_empty = mask_57_walk_arms, mask_57_idle_empty +anm_idle_sprint = mask_57_sprint_arms, mask_57_idle +anm_idle_sprint_empty = mask_57_sprint_arms, mask_57_idle_empty +anm_reload = mask_57_reload_arms, mask_57_reload_gun +anm_reload_empty = mask_57_reload_empty_arms, mask_57_reload_empty_gun +anm_shot_l = mask_57_shoot_arms, mask_57_shoot_last_gun +anm_shots = mask_57_shoot_arms, mask_57_shoot_gun +anm_show = mask_57_draw_arms, mask_57_idle +anm_show_empty = mask_57_draw_arms, mask_57_idle_empty +anm_reload_misfire = mask_57_unjam_arms, mask_57_unjam_gun +; anm_bore = mask_57_bore_arms, mask_57_idle +; anm_bore_empty = mask_57_bore_arms, mask_57_idle_empty +; anm_ammo_check = mask_57_magcheck_arms, mask_57_magcheck_gun +; anm_ammo_check_empty = mask_57_bore_arms, mask_57_idle_empty + +![wpn_fnc] +use_alt_aim_hud = false +use_aim_bullet = true + +![wpn_fnc_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062351, 0.002443, -0.085628 +hands_position_16x9 = 0.062351, 0.002443, -0.085628 +aim_hud_offset_pos = -0.074841, 0.038034, -0.18222 +aim_hud_offset_pos_16x9 = -0.074841, 0.038034, -0.18222 +aim_hud_offset_rot = 0.028126, 0.01879, 0.002272 +aim_hud_offset_rot_16x9 = 0.028126, 0.01879, 0.002272 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.073584, -0.028602, -0.108975 +gl_hud_offset_pos_16x9 = -0.073584, -0.028602, -0.108975 +gl_hud_offset_rot = -0.044314, 0.017618, -0.004946 +gl_hud_offset_rot_16x9 = -0.044314, 0.017618, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_fnc_holster_arms, mask_fnc_idle +anm_hide_empty = mask_fnc_holster_arms, mask_fnc_idle +anm_idle = mask_fnc_idle_arms, mask_fnc_idle +anm_idle_aim = mask_fnc_idle_ads_arms, mask_fnc_idle +anm_idle_aim_empty = mask_fnc_idle_ads_arms, mask_fnc_idle +anm_idle_aim_moving = mask_fnc_idle_ads_arms, mask_fnc_idle +anm_idle_aim_moving_crouch = mask_fnc_idle_ads_arms, mask_fnc_idle +anm_idle_aim_moving_crouch_empty = mask_fnc_idle_ads_arms, mask_fnc_idle +anm_idle_aim_moving_empty = mask_fnc_idle_ads_arms, mask_fnc_idle +anm_idle_empty = mask_fnc_idle_arms, mask_fnc_idle +anm_idle_moving = mask_fnc_walk_arms, mask_fnc_idle +anm_idle_moving_crouch = mask_fnc_walk_arms, mask_fnc_idle +anm_idle_moving_crouch_empty = mask_fnc_walk_arms, mask_fnc_idle +anm_idle_moving_empty = mask_fnc_walk_arms, mask_fnc_idle +anm_idle_sprint = mask_fnc_sprint_arms, mask_fnc_idle +anm_idle_sprint_empty = mask_fnc_sprint_arms, mask_fnc_idle +anm_reload = mask_fnc_reload_arms, mask_fnc_reload_gun +anm_reload_empty = mask_fnc_reload_empty_arms, mask_fnc_reload_empty_gun +anm_shot_l = mask_fnc_shoot_arms, mask_fnc_shoot_gun +anm_shots = mask_fnc_shoot_arms, mask_fnc_shoot_gun +anm_show = mask_fnc_draw_arms, mask_fnc_idle +anm_show_empty = mask_fnc_draw_arms, mask_fnc_idle +anm_switch_mode = mask_fnc_switchmode_arms, mask_fnc_idle +anm_reload_misfire = mask_fnc_unjam_arms, mask_fnc_unjam_gun + + +![wpn_fnp45_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.053527, 0.024707, -0.2 +aim_hud_offset_pos_16x9 = -0.053527, 0.024707, -0.2 +aim_hud_offset_rot = 0.014748, 0.029885, 0.000657 +aim_hud_offset_rot_16x9 = 0.014748, 0.029885, 0.000657 +anm_hide = mask_fnp_holster_arms, mask_fnp_idle +anm_hide_empty = mask_fnp_holster_arms, mask_fnp_idle_empty +anm_idle = mask_fnp_idle_arms, mask_fnp_idle +anm_idle_aim = mask_fnp_idle_ads_arms, mask_fnp_idle +anm_idle_aim_empty = mask_fnp_idle_ads_arms, mask_fnp_idle_empty +anm_idle_aim_moving = mask_fnp_idle_ads_arms, mask_fnp_idle +anm_idle_aim_moving_crouch = mask_fnp_idle_ads_arms, mask_fnp_idle +anm_idle_aim_moving_crouch_empty = mask_fnp_idle_ads_arms, mask_fnp_idle_empty +anm_idle_aim_moving_empty = mask_fnp_idle_ads_arms, mask_fnp_idle_empty +anm_idle_empty = mask_fnp_idle_arms, mask_fnp_idle_empty +anm_idle_moving = mask_fnp_walk_arms, mask_fnp_idle +anm_idle_moving_crouch = mask_fnp_walk_arms, mask_fnp_idle +anm_idle_moving_crouch_empty = mask_fnp_walk_arms, mask_fnp_idle_empty +anm_idle_moving_empty = mask_fnp_walk_arms, mask_fnp_idle_empty +anm_idle_sprint = mask_fnp_sprint_arms, mask_fnp_idle +anm_idle_sprint_empty = mask_fnp_sprint_arms, mask_fnp_idle_empty +anm_reload = mask_fnp_reload_arms, mask_fnp_reload_gun +anm_reload_empty = mask_fnp_reload_empty_arms, mask_fnp_reload_empty_gun +anm_shot_l = mask_fnp_shoot_arms, mask_fnp_shoot_last_gun +anm_shots = mask_fnp_shoot_arms, mask_fnp_shoot_gun +anm_show = mask_fnp_draw_arms, mask_fnp_idle +anm_show_empty = mask_fnp_draw_arms, mask_fnp_idle_empty +anm_reload_misfire = mask_fnp_unjam_arms, mask_fnp_unjam_gun +; anm_bore = mask_fnp_bore_arms, mask_fnp_idle +; anm_bore_empty = mask_fnp_bore_arms, mask_fnp_idle_empty +; anm_ammo_check = mask_fnp_magcheck_arms, mask_fnp_magcheck_gun +; anm_ammo_check_empty = mask_fnp_bore_arms, mask_fnp_idle_empty + +![wpn_fnx45_hud] +aim_hud_offset_pos = -0.053527, 0.025843, -0.2 +aim_hud_offset_pos_16x9 = -0.053527, 0.025843, -0.2 +aim_hud_offset_rot = 0.020428, 0.030313, 0.000657 +aim_hud_offset_rot_16x9 = 0.020428, 0.030313, 0.000657 + +![wpn_fort500] +use_alt_aim_hud = false + +![wpn_fort500_hud] +hands_orientation = 0.8952, 1.066729, 0.808726 +hands_orientation_16x9 = 0.8952, 1.066729, 0.808726 +hands_position = 0.049954, -0.021429, 0.034643 +hands_position_16x9 = 0.049954, -0.021429, 0.034643 +aim_hud_offset_pos = -0.072538, 0.031327, -0.050567 +aim_hud_offset_pos_16x9 = -0.072538, 0.031327, -0.050567 +aim_hud_offset_rot = 0.013048, 0.01573, 0.019312 +aim_hud_offset_rot_16x9 = 0.013048, 0.01573, 0.019312 +aim_hud_offset_alt_pos = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_pos_16x9 = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_rot = 0.016172, 0.02702, 0.708521 +aim_hud_offset_alt_rot_16x9 = 0.016172, 0.02702, 0.708521 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_reload_misfire = mask_f500_unjam_arms, mask_f500_unjam_gun +anm_add_cartridge = mask_f500_load_arms, mask_f500_load_gun +anm_close = mask_f500_close_arms, mask_f500_close_gun +anm_hide = mask_f500_holster_arms, mask_f500_idle +anm_idle = mask_f500_idle_arms, mask_f500_idle +anm_idle_aim = mask_f500_idle_ads_arms, mask_f500_idle +anm_idle_aim_moving = mask_f500_idle_ads_arms, mask_f500_idle +anm_idle_aim_moving_crouch = mask_f500_idle_ads_arms, mask_f500_idle +anm_idle_moving = mask_f500_walk_arms, mask_f500_idle +anm_idle_sprint = mask_f500_sprint_arms, mask_f500_idle +anm_open = mask_f500_open_arms, mask_f500_open_gun +anm_shots = mask_f500_shoot_arms, mask_f500_shoot_gun +anm_show = mask_f500_draw_arms, mask_f500_idle +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 +!lean_hud_offset_pos +!lean_hud_offset_rot +!anm_idle_moving_crouch +!anm_reload + +![wpn_g36] +use_alt_aim_hud = false + +![wpn_g36_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.063416, -0.009776, -0.107808 +hands_position_16x9 = 0.063416, -0.009776, -0.107808 +aim_hud_offset_pos = -0.075271, -0.026482, -0.164624 +aim_hud_offset_pos_16x9 = -0.075271, -0.026482, -0.164624 +aim_hud_offset_rot = 0.01705, 0.018576, 0 +aim_hud_offset_rot_16x9 = 0.01705, 0.018576, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.075975, -0.092359, -0.151593 +gl_hud_offset_pos_16x9 = -0.075975, -0.092359, -0.151593 +gl_hud_offset_rot = -0.087016, 0.01911, -0.004946 +gl_hud_offset_rot_16x9 = -0.087016, 0.01911, -0.004946 +lowered_hud_offset_pos = 0.0075, -0.049485, -0.01196 +lowered_hud_offset_pos_16x9 = 0.0075, -0.049485, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_g36_holster_arms, mask_g36_idle +anm_hide_g = mask_g36_holster_launcher_arms, mask_g36_launcher_idle +anm_hide_w_gl = mask_g36_holster_wgl_arms, mask_g36_idle +anm_idle = mask_g36_idle_arms, mask_g36_idle +anm_idle_aim = mask_g36_idle_ads_arms, mask_g36_idle +anm_idle_aim_empty = mask_g36_idle_ads_arms, mask_g36_idle_empty +anm_idle_aim_moving = mask_g36_idle_ads_arms, mask_g36_idle +anm_idle_aim_moving_empty = mask_g36_idle_ads_arms, mask_g36_idle_empty +anm_idle_aim_moving_crouch = mask_g36_idle_ads_arms, mask_g36_idle +anm_idle_aim_moving_crouch_empty = mask_g36_idle_ads_arms, mask_g36_idle_empty +anm_idle_g = mask_g36_idle_launcher_arms, mask_g36_launcher_idle +anm_idle_g_aim = mask_g36_idle_ads_launcher_arms, mask_g36_launcher_idle +anm_idle_moving = mask_g36_walk_arms, mask_g36_idle +anm_idle_moving_crouch = mask_g36_walk_arms, mask_g36_idle +anm_idle_moving_crouch_g_aim = mask_g36_idle_ads_launcher_arms, mask_g36_launcher_idle +anm_idle_moving_crouch_w_gl_aim = mask_g36_idle_ads_wgl_arms, mask_g36_idle +anm_idle_moving_crouch_w_gl = mask_g36_walk_wgl_arms, mask_g36_idle +anm_idle_moving_g = mask_g36_walk_launcher_arms, mask_g36_launcher_idle +anm_idle_moving_g_aim = mask_g36_idle_ads_launcher_arms, mask_g36_launcher_idle +anm_idle_moving_w_gl = mask_g36_walk_wgl_arms, mask_g36_idle +anm_idle_moving_w_gl_aim = mask_g36_idle_ads_wgl_arms, mask_g36_idle +anm_idle_sprint = mask_g36_sprint_arms, mask_g36_idle +anm_idle_sprint_g = mask_g36_sprint_launcher_arms, mask_g36_launcher_idle +anm_idle_sprint_w_gl = mask_g36_sprint_wgl_arms, mask_g36_idle +anm_idle_w_gl = mask_g36_idle_wgl_arms, mask_g36_idle +anm_idle_w_gl_aim = mask_g36_idle_ads_wgl_arms, mask_g36_idle +anm_reload = mask_g36_reload_arms, mask_g36_reload_gun +anm_reload_empty = mask_g36_reload_empty_arms, mask_g36_reload_empty_gun +anm_reload_g = mask_g36_reload_launcher_arms, mask_g36_reload_launcher_gun +anm_reload_w_gl = mask_g36_reload_wgl_arms, mask_g36_reload_gun +anm_reload_empty_w_gl = mask_g36_reload_wgl_empty_arms, mask_g36_reload_empty_gun +anm_shots = mask_g36_shoot_arms, mask_g36_shoot_gun +anm_shot_l = mask_g36_shoot_arms, mask_g36_shoot_last_gun +anm_shot_w_gl_l = mask_g36_shoot_wgl_arms, mask_g36_shoot_last_gun +anm_shots_g = mask_g36_shoot_launcher_arms, mask_g36_launcher_idle +anm_shots_w_gl = mask_g36_shoot_wgl_arms, mask_g36_shoot_gun +anm_show = mask_g36_draw_arms, mask_g36_idle +anm_show_g = mask_g36_draw_launcher_arms, mask_g36_launcher_idle +anm_show_w_gl = mask_g36_draw_wgl_arms, mask_g36_idle +anm_switch = mask_g36_switchgun2_arms, mask_g36_switchgun2_gun +anm_switch_g = mask_g36_switchgl2_arms, mask_g36_switchgl2_gun +anm_reload_misfire = mask_g36_unjam_arms, mask_g36_unjam_gun +anm_reload_misfire_w_gl = mask_g36_unjam_wgl_arms, mask_g36_unjam_gun +anm_switch_mode = mask_g36_switchmode_arms, mask_g36_idle +anm_switch_mode_empty = mask_g36_switchmode_arms, mask_g36_idle_empty +anm_hide_empty = mask_g36_holster_arms, mask_g36_idle_empty +anm_idle_empty = mask_g36_idle_arms, mask_g36_idle_empty +anm_idle_moving_empty = mask_g36_walk_arms, mask_g36_idle_empty +anm_idle_moving_crouch_empty = mask_g36_walk_arms, mask_g36_idle_empty +anm_idle_sprint_empty = mask_g36_sprint_arms, mask_g36_idle_empty +anm_shots_empty = mask_g36_shoot_arms, mask_g36_shoot_last_gun +anm_show_empty = mask_g36_draw_arms, mask_g36_idle_empty +anm_idle_empty_w_gl = mask_g36_idle_wgl_arms, mask_g36_idle_empty +anm_hide_empty_w_gl = mask_g36_holster_wgl_arms, mask_g36_idle_empty +anm_idle_moving_crouch_empty_w_gl_aim = mask_g36_idle_ads_wgl_arms, mask_g36_idle_empty +anm_idle_moving_crouch_empty_w_gl = mask_g36_walk_wgl_arms, mask_g36_idle_empty +anm_idle_moving_empty_w_gl = mask_g36_walk_wgl_arms, mask_g36_idle_empty +anm_idle_moving_empty_w_gl_aim = mask_g36_idle_ads_wgl_arms, mask_g36_idle_empty +anm_idle_sprint_empty_w_gl = mask_g36_sprint_wgl_arms, mask_g36_idle_empty +anm_idle_empty_w_gl_aim = mask_g36_idle_ads_wgl_arms, mask_g36_idle_empty +anm_show_empty_w_gl = mask_g36_draw_wgl_arms, mask_g36_idle_empty +!anm_idle_moving_crouch_g + +![wpn_g36k_hud] +aim_hud_offset_pos = -0.075054, 0.007076, -0.206126 +aim_hud_offset_pos_16x9 = -0.075054, 0.007076, -0.206126 +aim_hud_offset_rot = 0.026422, 0.019216, 0 +aim_hud_offset_rot_16x9 = 0.026422, 0.019216, 0 + +![wpn_g36k_sk1_hud] +aim_hud_offset_pos = -0.075271, -0.026482, -0.164624 +aim_hud_offset_pos_16x9 = -0.075271, -0.026482, -0.164624 +aim_hud_offset_rot = 0.01705, 0.018576, 0 +aim_hud_offset_rot_16x9 = 0.01705, 0.018576, 0 + +![wpn_g3sg1] +use_alt_aim_hud = false + +![wpn_g3sg1_new_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.064481, -0.027955, -0.085628 +hands_position_16x9 = 0.064481, -0.027955, -0.085628 +aim_hud_offset_pos = -0.075909, 0.010477, -0.198465 +aim_hud_offset_pos_16x9 = -0.075909, 0.010477, -0.198465 +aim_hud_offset_rot = 0.024718, 0.018577, 0 +aim_hud_offset_rot_16x9 = 0.024718, 0.018577, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.043315, -0.01355, -0.108975 +gl_hud_offset_pos_16x9 = -0.043315, -0.01355, -0.108975 +gl_hud_offset_rot = -0.092669, 0.014419, -0.004946 +gl_hud_offset_rot_16x9 = -0.092669, 0.014419, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_g3_holster_arms, mask_sg1_idle +anm_hide_empty = mask_g3_holster_arms, mask_sg1_idle +anm_idle = mask_g3_idle_arms, mask_sg1_idle +anm_idle_aim = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_empty = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving_crouch = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving_crouch_empty = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving_empty = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_empty = mask_g3_idle_arms, mask_sg1_idle +anm_idle_moving = mask_g3_walk_arms, mask_sg1_idle +anm_idle_moving_crouch = mask_g3_walk_arms, mask_sg1_idle +anm_idle_moving_crouch_empty = mask_g3_walk_arms, mask_sg1_idle +anm_idle_moving_empty = mask_g3_walk_arms, mask_sg1_idle +anm_idle_sprint = mask_g3_sprint_arms, mask_sg1_idle +anm_idle_sprint_empty = mask_g3_sprint_arms, mask_sg1_idle +anm_reload = mask_g3_reload_arms, mask_sg1_reload_gun +anm_reload_empty = mask_g3_reload_empty_arms, mask_sg1_reload_empty_gun +anm_shot_l = mask_g3_shoot_arms, mask_sg1_shoot_gun +anm_shots = mask_g3_shoot_arms, mask_sg1_shoot_gun +anm_show = mask_g3_draw_arms, mask_sg1_idle +anm_show_empty = mask_g3_draw_arms, mask_sg1_idle +anm_switch_mode = mask_g3_switchmode_arms, mask_sg1_idle +anm_reload_misfire = mask_g3_unjam_arms, mask_sg1_unjam_gun +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_g3sg1_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.064481, -0.027955, -0.085628 +hands_position_16x9 = 0.064481, -0.027955, -0.085628 +aim_hud_offset_pos = -0.075909, 0.010477, -0.198465 +aim_hud_offset_pos_16x9 = -0.075909, 0.010477, -0.198465 +aim_hud_offset_rot = 0.024718, 0.018577, 0 +aim_hud_offset_rot_16x9 = 0.024718, 0.018577, 0 +gl_hud_offset_pos = -0.043315, -0.01355, -0.108975 +gl_hud_offset_pos_16x9 = -0.043315, -0.01355, -0.108975 +gl_hud_offset_rot = -0.092669, 0.014419, -0.004946 +gl_hud_offset_rot_16x9 = -0.092669, 0.014419, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_g3_holster_arms, mask_sg1_idle +anm_hide_empty = mask_g3_holster_arms, mask_sg1_idle +anm_idle = mask_g3_idle_arms, mask_sg1_idle +anm_idle_aim = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_empty = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving_crouch = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving_crouch_empty = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_aim_moving_empty = mask_g3_idle_ads_arms, mask_sg1_idle +anm_idle_empty = mask_g3_idle_arms, mask_sg1_idle +anm_idle_moving = mask_g3_walk_arms, mask_sg1_idle +anm_idle_moving_crouch = mask_g3_walk_arms, mask_sg1_idle +anm_idle_moving_crouch_empty = mask_g3_walk_arms, mask_sg1_idle +anm_idle_moving_empty = mask_g3_walk_arms, mask_sg1_idle +anm_idle_sprint = mask_g3_sprint_arms, mask_sg1_idle +anm_idle_sprint_empty = mask_g3_sprint_arms, mask_sg1_idle +anm_reload = mask_g3_reload_arms, mask_sg1_reload_gun +anm_reload_empty = mask_g3_reload_empty_arms, mask_sg1_reload_empty_gun +anm_shot_l = mask_g3_shoot_arms, mask_sg1_shoot_gun +anm_shots = mask_g3_shoot_arms, mask_sg1_shoot_gun +anm_show = mask_g3_draw_arms, mask_sg1_idle +anm_show_empty = mask_g3_draw_arms, mask_sg1_idle +anm_switch_mode = mask_g3_switchmode_arms, mask_sg1_idle +anm_reload_misfire = mask_g3_unjam_arms, mask_sg1_unjam_gun +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_g3] +use_alt_aim_hud = false + +![wpn_g3_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.064481, -0.027955, -0.085628 +hands_position_16x9 = 0.064481, -0.027955, -0.085628 +aim_hud_offset_pos = -0.076122, 0.037182, -0.198465 +aim_hud_offset_pos_16x9 = -0.076122, 0.037182, -0.198465 +aim_hud_offset_rot = 0.024718, 0.018577, 0 +aim_hud_offset_rot_16x9 = 0.024718, 0.018577, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.043315, -0.01355, -0.108975 +gl_hud_offset_pos_16x9 = -0.043315, -0.01355, -0.108975 +gl_hud_offset_rot = -0.092669, 0.014419, -0.004946 +gl_hud_offset_rot_16x9 = -0.092669, 0.014419, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_g3_holster_arms, mask_g3_idle +anm_hide_empty = mask_g3_holster_arms, mask_g3_idle +anm_idle = mask_g3_idle_arms, mask_g3_idle +anm_idle_aim = mask_g3_idle_ads_arms, mask_g3_idle +anm_idle_aim_empty = mask_g3_idle_ads_arms, mask_g3_idle +anm_idle_aim_moving = mask_g3_idle_ads_arms, mask_g3_idle +anm_idle_aim_moving_crouch = mask_g3_idle_ads_arms, mask_g3_idle +anm_idle_aim_moving_crouch_empty = mask_g3_idle_ads_arms, mask_g3_idle +anm_idle_aim_moving_empty = mask_g3_idle_ads_arms, mask_g3_idle +anm_idle_empty = mask_g3_idle_arms, mask_g3_idle +anm_idle_moving = mask_g3_walk_arms, mask_g3_idle +anm_idle_moving_crouch = mask_g3_walk_arms, mask_g3_idle +anm_idle_moving_crouch_empty = mask_g3_walk_arms, mask_g3_idle +anm_idle_moving_empty = mask_g3_walk_arms, mask_g3_idle +anm_idle_sprint = mask_g3_sprint_arms, mask_g3_idle +anm_idle_sprint_empty = mask_g3_sprint_arms, mask_g3_idle +anm_reload = mask_g3_reload_arms, mask_g3_reload_gun +anm_reload_empty = mask_g3_reload_empty_arms, mask_g3_reload_empty_gun +anm_shot_l = mask_g3_shoot_arms, mask_g3_shoot_gun +anm_shots = mask_g3_shoot_arms, mask_g3_shoot_gun +anm_show = mask_g3_draw_arms, mask_g3_idle +anm_show_empty = mask_g3_draw_arms, mask_g3_idle +anm_switch_mode = mask_g3_switchmode_arms, mask_g3_idle +anm_reload_misfire = mask_g3_unjam_arms, mask_g3_unjam_gun +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_g3_ac10632_hud] +aim_hud_offset_pos = -0.075909, -0.001187, -0.097518 +aim_hud_offset_pos_16x9 = -0.075909, -0.001187, -0.097518 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_g3_acog_hud] +aim_hud_offset_pos = -0.076122, 0.001368, -0.16946 +aim_hud_offset_pos_16x9 = -0.076122, 0.001368, -0.16946 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_g3_eot_hud] +aim_hud_offset_pos = -0.076541, -0.00118, -0.130494 +aim_hud_offset_pos_16x9 = -0.076541, -0.00118, -0.130494 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_g43] +rpm = 130 + +![wpn_g43_hud] +hands_orientation = 0.8352, 1.078466, 0.631676 +hands_orientation_16x9 = 0.8352, 1.078466, 0.631676 +hands_position = 0.056345, -0.02655, 0.031783 +hands_position_16x9 = 0.056345, -0.02655, 0.031783 +aim_hud_offset_pos = -0.071263, -0.001371, -0.21323 +aim_hud_offset_pos_16x9 = -0.071263, -0.001371, -0.21323 +aim_hud_offset_rot = 0.017592, 0.014878, 0.017607 +aim_hud_offset_rot_16x9 = 0.017592, 0.014878, 0.017607 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_g43_holster_arms, mask_g43_idle +anm_hide_empty = mask_g43_holster_arms, mask_g43_idle +anm_idle = mask_g43_idle_arms, mask_g43_idle +anm_idle_aim = mask_g43_idle_ads_arms, mask_g43_idle +anm_idle_aim_empty = mask_g43_idle_ads_arms, mask_g43_idle +anm_idle_aim_moving = mask_g43_idle_ads_arms, mask_g43_idle +anm_idle_aim_moving_crouch = mask_g43_idle_ads_arms, mask_g43_idle +anm_idle_aim_moving_crouch_empty = mask_g43_idle_ads_arms, mask_g43_idle +anm_idle_aim_moving_empty = mask_g43_idle_ads_arms, mask_g43_idle +anm_idle_empty = mask_g43_idle_arms, mask_g43_idle +anm_idle_moving = mask_g43_walk_arms, mask_g43_idle +anm_idle_moving_crouch = mask_g43_walk_arms, mask_g43_idle +anm_idle_moving_crouch_empty = mask_g43_walk_arms, mask_g43_idle +anm_idle_moving_empty = mask_g43_walk_arms, mask_g43_idle +anm_idle_sprint = mask_g43_sprint_arms, mask_g43_idle +anm_idle_sprint_empty = mask_g43_sprint_arms, mask_g43_idle +anm_reload = mask_g43_reload_arms, mask_g43_reload_gun +anm_reload_empty = mask_g43_reload_empty_arms, mask_g43_reload_empty_gun +anm_shot_l = mask_g43_shoot_arms, mask_g43_shoot_gun +anm_shots = mask_g43_shoot_arms, mask_g43_shoot_gun +anm_show = mask_g43_draw_arms, mask_g43_idle +anm_show_empty = mask_g43_draw_arms, mask_g43_idle +anm_switch_mode = mask_g43_switchmode_arms, mask_g43_idle +anm_reload_misfire = mask_g43_unjam_arms, mask_g43_unjam_gun +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot_16x9 + +![wpn_galil] +use_alt_aim_hud = true + +![wpn_galil_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062138, -0.015172, -0.120324 +hands_position_16x9 = 0.062138, -0.015172, -0.120324 + +aim_hud_offset_pos = -0.073566, 0.028378, -0.166613 +aim_hud_offset_pos_16x9 = -0.073566, 0.028378, -0.166613 +aim_hud_offset_rot = 0.027274, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.027274, 0.018364, 0 + +aim_hud_offset_alt_pos = -0.073566, 0.028378, -0.166613 +aim_hud_offset_alt_pos_16x9 = -0.073566, 0.028378, -0.166613 +aim_hud_offset_alt_rot = 0.027274, 0.018364, 0 +aim_hud_offset_alt_rot_16x9 = 0.027274, 0.018364, 0 + +gl_hud_offset_pos = -0.043315, -0.01355, -0.108975 +gl_hud_offset_pos_16x9 = -0.043315, -0.01355, -0.108975 +gl_hud_offset_rot = -0.092669, 0.014419, -0.004946 +gl_hud_offset_rot_16x9 = -0.092669, 0.014419, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_galil_holster_arms, mask_galil_idle +anm_hide_empty = mask_galil_holster_arms, mask_galil_idle +anm_idle = mask_galil_idle_arms, mask_galil_idle +anm_idle_aim = mask_galil_idle_ads_arms, mask_galil_idle +anm_idle_aim_empty = mask_galil_idle_ads_arms, mask_galil_idle +anm_idle_aim_moving = mask_galil_idle_ads_arms, mask_galil_idle +anm_idle_aim_moving_crouch = mask_galil_idle_ads_arms, mask_galil_idle +anm_idle_aim_moving_crouch_empty = mask_galil_idle_ads_arms, mask_galil_idle +anm_idle_aim_moving_empty = mask_galil_idle_ads_arms, mask_galil_idle +anm_idle_empty = mask_galil_idle_arms, mask_galil_idle +anm_idle_moving = mask_galil_walk_arms, mask_galil_idle +anm_idle_moving_crouch = mask_galil_walk_arms, mask_galil_idle +anm_idle_moving_crouch_empty = mask_galil_walk_arms, mask_galil_idle +anm_idle_moving_empty = mask_galil_walk_arms, mask_galil_idle +anm_idle_sprint = mask_galil_sprint_arms, mask_galil_idle +anm_idle_sprint_empty = mask_galil_sprint_arms, mask_galil_idle +anm_reload = mask_galil_reload_arms, mask_galil_reload_gun +anm_reload_empty = mask_galil_reload_empty_arms, mask_galil_reload_empty_gun +anm_shot_l = mask_galil_shoot_arms, mask_galil_shoot_gun +anm_shots = mask_galil_shoot_arms, mask_galil_shoot_gun +anm_show = mask_galil_draw_arms, mask_galil_idle +anm_show_empty = mask_galil_draw_arms, mask_galil_idle +anm_switch_mode = mask_galil_switchmode_arms, mask_galil_idle +anm_reload_misfire = mask_galil_unjam_arms, mask_galil_unjam_gun + +![wpn_ace21] +use_alt_aim_hud = false + +![wpn_ace21_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062138, -0.015172, -0.107803 +hands_position_16x9 = 0.062138, -0.015172, -0.107803 +aim_hud_offset_pos = -0.073992, 0.021558, -0.22492 +aim_hud_offset_pos_16x9 = -0.073992, 0.021558, -0.22492 +aim_hud_offset_rot = 0.022446, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.022446, 0.018364, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.016497, -0.004792, -0.151593 +gl_hud_offset_pos_16x9 = -0.016497, -0.004792, -0.151593 +gl_hud_offset_rot = -0.08588, 0.013572, -0.004946 +gl_hud_offset_rot_16x9 = -0.08588, 0.013572, -0.004946 +lowered_hud_offset_pos = -0.010217, -0.018238, -0.01196 +lowered_hud_offset_pos_16x9 = -0.010217, -0.018238, -0.01196 +lowered_hud_offset_rot = -0.026327, -0.285488, 0.680849 +lowered_hud_offset_rot_16x9 = -0.026327, -0.285488, 0.680849 +anm_hide = mask_ace_holster_arms, mask_ace_idle +anm_hide_empty = mask_ace_holster_arms, mask_ace_idle_empty +anm_idle = mask_ace_idle_arms, mask_ace_idle +anm_idle_aim = mask_ace_idle_ads_arms, mask_ace_idle +anm_idle_aim_empty = mask_ace_idle_ads_arms, mask_ace_idle_empty +anm_idle_aim_moving = mask_ace_idle_ads_arms, mask_ace_idle +anm_idle_aim_moving_crouch = mask_ace_idle_ads_arms, mask_ace_idle +anm_idle_aim_moving_crouch_empty = mask_ace_idle_ads_arms, mask_ace_idle_empty +anm_idle_aim_moving_empty = mask_ace_idle_ads_arms, mask_ace_idle_empty +anm_idle_empty = mask_ace_idle_arms, mask_ace_idle_empty +anm_idle_moving = mask_ace_walk_arms, mask_ace_idle +anm_idle_moving_crouch = mask_ace_walk_arms, mask_ace_idle +anm_idle_moving_crouch_empty = mask_ace_walk_arms, mask_ace_idle_empty +anm_idle_moving_empty = mask_ace_walk_arms, mask_ace_idle_empty +anm_idle_sprint = mask_ace_sprint_arms, mask_ace_idle +anm_idle_sprint_empty = mask_ace_sprint_arms, mask_ace_idle_empty +anm_reload = mask_ace_reload_arms, mask_ace_reload_gun +anm_reload_empty = mask_ace_reload_empty_arms, mask_ace_reload_empty_gun +anm_shot_l = mask_ace_shoot_arms, mask_ace_shoot_last_gun +anm_shots = mask_ace_shoot_arms, mask_ace_shoot_gun +anm_show = mask_ace_draw_arms, mask_ace_idle +anm_show_empty = mask_ace_draw_arms, mask_ace_idle_empty +anm_reload_misfire = mask_ace_unjam_arms, mask_ace_unjam_gun +anm_switch_mode = mask_ace_switchmode_arms, mask_ace_idle +!lean_hud_offset_pos +!lean_hud_offset_rot + +![wpn_ace21_ac10632_hud] +aim_hud_offset_pos = -0.074844, 0.00253, -0.22492 +aim_hud_offset_pos_16x9 = -0.074844, 0.00253, -0.22492 +aim_hud_offset_rot = 0.023582, 0.021133, 0 +aim_hud_offset_rot_16x9 = 0.023582, 0.021133, 0 + +![wpn_ace21_acog_hud] +aim_hud_offset_pos = -0.073779, 0.007913, -0.22492 +aim_hud_offset_pos_16x9 = -0.073779, 0.007913, -0.22492 +aim_hud_offset_rot = 0.022446, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.022446, 0.018364, 0 + +![wpn_ace21_eot_hud] +aim_hud_offset_pos = -0.073992, -0.001732, -0.202748 +aim_hud_offset_pos_16x9 = -0.073992, -0.001732, -0.202748 +aim_hud_offset_rot = 0.022446, 0.018364, 0 +aim_hud_offset_rot_16x9 = 0.022446, 0.018364, 0 + +![wpn_glock_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.054592, 0.026127, -0.2 +aim_hud_offset_pos_16x9 = -0.054592, 0.026127, -0.2 +aim_hud_offset_rot = 0.007364, 0.029887, 0.000657 +aim_hud_offset_rot_16x9 = 0.007364, 0.029887, 0.000657 +anm_hide = mask_glock_holster_arms, mask_glock_idle +anm_hide_empty = mask_glock_holster_arms, mask_glock_idle_empty +anm_idle = mask_glock_idle_arms, mask_glock_idle +anm_idle_aim = mask_glock_idle_ads_arms, mask_glock_idle +anm_idle_aim_empty = mask_glock_idle_ads_arms, mask_glock_idle_empty +anm_idle_aim_moving = mask_glock_idle_ads_arms, mask_glock_idle +anm_idle_aim_moving_crouch = mask_glock_idle_ads_arms, mask_glock_idle +anm_idle_aim_moving_crouch_empty = mask_glock_idle_ads_arms, mask_glock_idle_empty +anm_idle_aim_moving_empty = mask_glock_idle_ads_arms, mask_glock_idle_empty +anm_idle_empty = mask_glock_idle_arms, mask_glock_idle_empty +anm_idle_moving = mask_glock_walk_arms, mask_glock_idle +anm_idle_moving_crouch = mask_glock_walk_arms, mask_glock_idle +anm_idle_moving_crouch_empty = mask_glock_walk_arms, mask_glock_idle_empty +anm_idle_moving_empty = mask_glock_walk_arms, mask_glock_idle_empty +anm_idle_sprint = mask_glock_sprint_arms, mask_glock_idle +anm_idle_sprint_empty = mask_glock_sprint_arms, mask_glock_idle_empty +anm_reload = mask_glock_reload_arms, mask_glock_reload_gun +anm_reload_empty = mask_glock_reload_empty_arms, mask_glock_reload_empty_gun +anm_shot_l = mask_glock_shoot_arms, mask_glock_shoot_last_gun +anm_shots = mask_glock_shoot_arms, mask_glock_shoot_gun +anm_show = mask_glock_draw_arms, mask_glock_idle +anm_show_empty = mask_glock_draw_arms, mask_glock_idle_empty +anm_reload_misfire = mask_glock_unjam_arms, mask_glock_unjam_gun +anm_ammo_check = mask_glock_bore_arms, mask_glock_idle +anm_switch_mode = mask_glock_switchmode_arms, mask_glock_idle +anm_switch_mode_empty = mask_glock_switchmode_arms, mask_glock_idle_empty +; anm_bore = mask_glock_bore_arms, mask_glock_idle +; anm_bore_empty = mask_glock_bore_arms, mask_glock_idle_empty +; anm_ammo_check = mask_glock_magcheck_arms, mask_glock_magcheck_gun +; anm_ammo_check_empty = mask_glock_bore_arms, mask_glock_idle_empty + +![wpn_gsh18_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.056509, 0.030671, -0.2 +aim_hud_offset_pos_16x9 = -0.056509, 0.030671, -0.2 +aim_hud_offset_rot = 0.018156, 0.0301, 0.000657 +aim_hud_offset_rot_16x9 = 0.018156, 0.0301, 0.000657 +anm_hide = mask_gsh_holster_arms, mask_gsh_idle +anm_hide_empty = mask_gsh_holster_arms, mask_gsh_idle_empty +anm_idle = mask_gsh_idle_arms, mask_gsh_idle +anm_idle_aim = mask_gsh_idle_ads_arms, mask_gsh_idle +anm_idle_aim_empty = mask_gsh_idle_ads_arms, mask_gsh_idle_empty +anm_idle_aim_moving = mask_gsh_idle_ads_arms, mask_gsh_idle +anm_idle_aim_moving_crouch = mask_gsh_idle_ads_arms, mask_gsh_idle +anm_idle_aim_moving_crouch_empty = mask_gsh_idle_ads_arms, mask_gsh_idle_empty +anm_idle_aim_moving_empty = mask_gsh_idle_ads_arms, mask_gsh_idle_empty +anm_idle_empty = mask_gsh_idle_arms, mask_gsh_idle_empty +anm_idle_moving = mask_gsh_walk_arms, mask_gsh_idle +anm_idle_moving_crouch = mask_gsh_walk_arms, mask_gsh_idle +anm_idle_moving_crouch_empty = mask_gsh_walk_arms, mask_gsh_idle_empty +anm_idle_moving_empty = mask_gsh_walk_arms, mask_gsh_idle_empty +anm_idle_sprint = mask_gsh_sprint_arms, mask_gsh_idle +anm_idle_sprint_empty = mask_gsh_sprint_arms, mask_gsh_idle_empty +anm_reload = mask_gsh_reload_arms, mask_gsh_reload_gun +anm_reload_empty = mask_gsh_reload_empty_arms, mask_gsh_reload_empty_gun +anm_shot_l = mask_gsh_shoot_arms, mask_gsh_shoot_last_gun +anm_shots = mask_gsh_shoot_arms, mask_gsh_shoot_gun +anm_show = mask_gsh_draw_arms, mask_gsh_idle +anm_show_empty = mask_gsh_draw_arms, mask_gsh_idle_empty +anm_reload_misfire = mask_gsh_unjam_arms, mask_gsh_unjam_gun +; anm_bore = mask_gsh_bore_arms, mask_gsh_idle +; anm_bore_empty = mask_gsh_bore_arms, mask_gsh_idle_empty +; anm_ammo_check = mask_gsh_magcheck_arms, mask_gsh_magcheck_gun +; anm_ammo_check_empty = mask_gsh_bore_arms, mask_gsh_idle_empty + +![wpn_hk416_hud] + hands_orientation = 1.0384, 1.194821, -0.100189 + hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 + hands_position = 0.061342, -0.003579, -0.100541 + hands_position_16x9 = 0.061342, -0.003579, -0.100541 + + aim_hud_offset_pos = -0.074204, 0.022982, -0.195071 + aim_hud_offset_pos_16x9 = -0.074204, 0.022982, -0.195071 + aim_hud_offset_rot = 0.025499, 0.018576, 0.005964 + aim_hud_offset_rot_16x9 = 0.025499, 0.018576, 0.005964 + +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 + + gl_hud_offset_pos = -0.070747, -0.054148, -0.155567 + gl_hud_offset_pos_16x9 = -0.070747, -0.054148, -0.155567 + gl_hud_offset_rot = -0.090992, 0.012933, -0.004946 + gl_hud_offset_rot_16x9 = -0.090992, 0.012933, -0.004946 + +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 + +lean_hud_offset_pos = 0, 0, 0 +lean_hud_offset_rot = 0, 0, 0 + +anm_hide = mask_416_holster_arms, mask_416_idle +anm_hide_g = mask_416_holster_launcher_arms, mask_416_idle +anm_hide_w_gl = mask_416_holster_wgl_arms, mask_416_idle +anm_idle = mask_416_idle_arms, mask_416_idle +anm_idle_aim = mask_416_idle_ads_arms, mask_416_idle +anm_idle_aim_moving = mask_416_idle_ads_arms, mask_416_idle +anm_idle_aim_moving_crouch = mask_416_idle_ads_arms, mask_416_idle +anm_idle_g = mask_416_idle_launcher_arms, mask_416_idle +anm_idle_g_aim = mask_416_idle_ads_launcher_arms, mask_416_idle +anm_idle_moving = mask_416_walk_arms, mask_416_idle +anm_idle_moving_crouch = mask_416_walk_arms, mask_416_idle +anm_idle_moving_crouch_g_aim = mask_416_idle_ads_launcher_arms, mask_416_idle +anm_idle_moving_crouch_w_gl_aim = mask_416_idle_ads_wgl_arms, mask_416_idle +anm_idle_moving_crouch_w_gl = mask_416_walk_wgl_arms, mask_416_idle +anm_idle_moving_g = mask_416_walk_launcher_arms, mask_416_idle +anm_idle_moving_g_aim = mask_416_idle_ads_launcher_arms, mask_416_idle +anm_idle_moving_w_gl = mask_416_walk_wgl_arms, mask_416_idle +anm_idle_moving_w_gl_aim = mask_416_idle_ads_wgl_arms, mask_416_idle +anm_idle_sprint = mask_416_sprint_arms, mask_416_idle +anm_idle_sprint_g = mask_416_sprint_launcher_arms, mask_416_idle +anm_idle_sprint_w_gl = mask_416_sprint_wgl_arms, mask_416_idle +anm_idle_w_gl = mask_416_idle_wgl_arms, mask_416_idle +anm_idle_w_gl_aim = mask_416_idle_ads_wgl_arms, mask_416_idle +anm_reload = mask_416_reload_arms, mask_416_reload_gun +anm_reload_empty = mask_416_reload_empty_arms, mask_416_reload_empty_gun +anm_reload_g = mask_416_reload_launcher_arms, mask_416_reload_launcher_gun +anm_reload_w_gl = mask_416_reload_wgl_arms, mask_416_reload_gun +anm_reload_empty_w_gl = mask_416_reload_wgl_empty_arms, mask_416_reload_empty_gun +anm_shots = mask_416_shoot_arms, mask_416_shoot_gun +anm_shots_g = mask_416_shoot_launcher_arms, mask_416_idle +anm_shots_w_gl = mask_416_shoot_wgl_arms, mask_416_shoot_gun +anm_show = mask_416_draw_arms, mask_416_idle +anm_show_g = mask_416_draw_launcher_arms, mask_416_idle +anm_show_w_gl = mask_416_draw_wgl_arms, mask_416_idle +anm_switch = mask_416_switchgun_arms, mask_416_idle +anm_switch_g = mask_416_switchgl_arms, mask_416_idle +anm_reload_misfire = mask_416_unjam_arms, mask_416_unjam_gun +anm_reload_misfire_w_gl = mask_416_unjam_wgl_arms, mask_416_unjam_gun +anm_switch_mode = mask_416_switchmode_arms, mask_416_idle + +![wpn_hk416_ac10632_hud] + aim_hud_offset_pos = -0.074047, 0.018225, -0.195081 + aim_hud_offset_pos_16x9 = -0.074047, 0.018225, -0.195081 + aim_hud_offset_rot = 0.021168, 0.018576, 0.005964 + aim_hud_offset_rot_16x9 = 0.021168, 0.018576, 0.005964 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_hk416_acog_hud] + aim_hud_offset_pos = -0.074315, 0.018864, -0.210995 + aim_hud_offset_pos_16x9 = -0.074315, 0.018864, -0.210995 + aim_hud_offset_rot = 0.024647, 0.018789, 0.005964 + aim_hud_offset_rot_16x9 = 0.024647, 0.018789, 0.005964 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_hk416_eot_hud] + aim_hud_offset_pos = -0.074261, 0.014604, -0.195137 + aim_hud_offset_pos_16x9 = -0.074261, 0.014604, -0.195137 + aim_hud_offset_rot = 0.020742, 0.018576, 0.005964 + aim_hud_offset_rot_16x9 = 0.020742, 0.018576, 0.005964 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_hpsa_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.054592, 0.023287, -0.2 +aim_hud_offset_pos_16x9 = -0.054592, 0.023287, -0.2 +aim_hud_offset_rot = 0.003956, 0.030313, 0.001509 +aim_hud_offset_rot_16x9 = 0.003956, 0.030313, 0.001509 +anm_hide = mask_hpsa_holster_arms, mask_hpsa_idle +anm_hide_empty = mask_hpsa_holster_arms, mask_hpsa_idle_empty +anm_idle = mask_hpsa_idle_arms, mask_hpsa_idle +anm_idle_aim = mask_hpsa_idle_ads_arms, mask_hpsa_idle +anm_idle_aim_empty = mask_hpsa_idle_ads_arms, mask_hpsa_idle_empty +anm_idle_aim_moving = mask_hpsa_idle_ads_arms, mask_hpsa_idle +anm_idle_aim_moving_crouch = mask_hpsa_idle_ads_arms, mask_hpsa_idle +anm_idle_aim_moving_crouch_empty = mask_hpsa_idle_ads_arms, mask_hpsa_idle_empty +anm_idle_aim_moving_empty = mask_hpsa_idle_ads_arms, mask_hpsa_idle_empty +anm_idle_empty = mask_hpsa_idle_arms, mask_hpsa_idle_empty +anm_idle_moving = mask_hpsa_walk_arms, mask_hpsa_idle +anm_idle_moving_crouch = mask_hpsa_walk_arms, mask_hpsa_idle +anm_idle_moving_crouch_empty = mask_hpsa_walk_arms, mask_hpsa_idle_empty +anm_idle_moving_empty = mask_hpsa_walk_arms, mask_hpsa_idle_empty +anm_idle_sprint = mask_hpsa_sprint_arms, mask_hpsa_idle +anm_idle_sprint_empty = mask_hpsa_sprint_arms, mask_hpsa_idle_empty +anm_reload = mask_hpsa_reload_arms, mask_hpsa_reload_gun +anm_reload_empty = mask_hpsa_reload_empty_arms, mask_hpsa_reload_empty_gun +anm_shot_l = mask_hpsa_shoot_arms, mask_hpsa_shoot_last_gun +anm_shots = mask_hpsa_shoot_arms, mask_hpsa_shoot_gun +anm_show = mask_hpsa_draw_arms, mask_hpsa_idle +anm_show_empty = mask_hpsa_draw_arms, mask_hpsa_idle_empty +anm_reload_misfire = mask_hpsa_unjam_arms, mask_hpsa_unjam_gun +; anm_bore = mask_hpsa_bore_arms, mask_hpsa_idle +; anm_bore_empty = mask_hpsa_bore_arms, mask_hpsa_idle_empty +; anm_ammo_check = mask_hpsa_magcheck_arms, mask_hpsa_magcheck_gun +; anm_ammo_check_empty = mask_hpsa_bore_arms, mask_hpsa_idle_empty + +![wpn_k98] +rpm = 37 + +![wpn_k98_hud] +hands_orientation = 0.8352, 1.078466, 0.759685 +hands_orientation_16x9 = 0.8352, 1.078466, 0.759685 +hands_position = 0.049315, -0.015746, 0.010474 +hands_position_16x9 = 0.049315, -0.015746, 0.010474 +aim_hud_offset_pos = -0.06828, 0.040415, -0.156354 +aim_hud_offset_pos_16x9 = -0.06828, 0.040415, -0.156354 +aim_hud_offset_rot = 0.020432, 0.014878, 0.023287 +aim_hud_offset_rot_16x9 = 0.020432, 0.014878, 0.023287 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_reload_misfire = mask_k98_unjam_arms, mask_k98_unjam_gun +anm_add_cartridge = mask_k98_load_arms, mask_k98_load_gun +anm_close = mask_k98_close_arms, mask_k98_close_gun +anm_hide = mask_k98_holster_arms, mask_k98_idle +anm_idle = mask_k98_idle_arms, mask_k98_idle +anm_idle_aim = mask_k98_idle_ads_arms, mask_k98_idle +anm_idle_aim_moving = mask_k98_idle_ads_arms, mask_k98_idle +anm_idle_aim_moving_crouch = mask_k98_idle_ads_arms, mask_k98_idle +anm_idle_moving = mask_k98_walk_arms, mask_k98_idle +anm_idle_sprint = mask_k98_sprint_arms, mask_k98_idle +anm_open = mask_k98_open_arms, mask_k98_open_gun +anm_shots = mask_k98_shoot_arms, mask_k98_shoot_gun +anm_show = mask_k98_draw_arms, mask_k98_idle +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 +!anm_reload + +![scope_k98] +aim_hud_offset_pos = -0.066576, 0.0211, -0.171992 +aim_hud_offset_pos_16x9 = -0.066576, 0.0211, -0.171992 +aim_hud_offset_rot = 0.020432, 0.014878, 0.023287 +aim_hud_offset_rot_16x9 = 0.020432, 0.014878, 0.023287 + +![wpn_l96a1] +rpm = 36 + +![wpn_l96a1_hud] +hands_orientation = 0.8352, 1.078466, -0.402978 +hands_orientation_16x9 = 0.8352, 1.078466, -0.402978 +hands_position = 0.059541, -0.036774, 0.031783 +hands_position_16x9 = 0.059541, -0.036774, 0.031783 +aim_hud_offset_pos = -0.074244, -0.00049, -0.198162 +aim_hud_offset_pos_16x9 = -0.074244, -0.00049, -0.198162 +aim_hud_offset_rot = 0.017592, 0.015091, 0.021867 +aim_hud_offset_rot_16x9 = 0.017592, 0.015091, 0.021867 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_l96_holster_arms, mask_l96_idle +anm_hide_empty = mask_l96_holster_arms, mask_l96_idle +anm_idle = mask_l96_idle_arms, mask_l96_idle +anm_idle_aim = mask_l96_idle_ads_arms, mask_l96_idle +anm_idle_aim_empty = mask_l96_idle_ads_arms, mask_l96_idle +anm_idle_aim_moving = mask_l96_idle_ads_arms, mask_l96_idle +anm_idle_aim_moving_crouch = mask_l96_idle_ads_arms, mask_l96_idle +anm_idle_aim_moving_crouch_empty = mask_l96_idle_ads_arms, mask_l96_idle +anm_idle_aim_moving_empty = mask_l96_idle_ads_arms, mask_l96_idle +anm_idle_empty = mask_l96_idle_arms, mask_l96_idle +anm_idle_moving = mask_l96_walk_arms, mask_l96_idle +anm_idle_moving_crouch = mask_l96_walk_arms, mask_l96_idle +anm_idle_moving_crouch_empty = mask_l96_walk_arms, mask_l96_idle +anm_idle_moving_empty = mask_l96_walk_arms, mask_l96_idle +anm_idle_sprint = mask_l96_sprint_arms, mask_l96_idle +anm_idle_sprint_empty = mask_l96_sprint_arms, mask_l96_idle +anm_reload = mask_l96_reload_arms, mask_l96_reload_gun +anm_reload_empty = mask_l96_reload_empty_arms, mask_l96_reload_empty_gun +anm_shot_l = mask_l96_shoot_arms, mask_l96_shoot_gun +anm_shots = mask_l96_shoot_arms, mask_l96_shoot_gun +anm_show = mask_l96_draw_arms, mask_l96_idle +anm_show_empty = mask_l96_draw_arms, mask_l96_idle +anm_reload_misfire = mask_l96_unjam_arms, mask_l96_unjam_gun +!gl_hud_offset_pos +!gl_hud_offset_rot + +![wpn_lr300] +use_alt_aim_hud = false + +![wpn_lr300_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.061925, -0.010045, -0.107803 +hands_position_16x9 = 0.061925, -0.010045, -0.107803 +aim_hud_offset_pos = -0.073992, 0.005369, -0.202754 +aim_hud_offset_pos_16x9 = -0.073992, 0.005369, -0.202754 +aim_hud_offset_rot = 0.021026, 0.018576, 0.005964 +aim_hud_offset_rot_16x9 = 0.021026, 0.018576, 0.005964 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.070423, -0.069844, -0.141917 +gl_hud_offset_pos_16x9 = -0.070423, -0.069844, -0.141917 +gl_hud_offset_rot = -0.090992, 0.012933, -0.004946 +gl_hud_offset_rot_16x9 = -0.090992, 0.012933, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_lr3_holster_arms, mask_lr3_idle +anm_hide_g = mask_lr3_holster_launcher_arms, mask_lr3_idle +anm_hide_w_gl = mask_lr3_holster_wgl_arms, mask_lr3_idle +anm_idle = mask_lr3_idle_arms, mask_lr3_idle +anm_idle_aim = mask_lr3_idle_ads_arms, mask_lr3_idle +anm_idle_aim_moving = mask_lr3_idle_ads_arms, mask_lr3_idle +anm_idle_aim_moving_crouch = mask_lr3_idle_ads_arms, mask_lr3_idle +anm_idle_g = mask_lr3_idle_launcher_arms, mask_lr3_idle +anm_idle_g_aim = mask_lr3_idle_ads_launcher_arms, mask_lr3_idle +anm_idle_moving = mask_lr3_walk_arms, mask_lr3_idle +anm_idle_moving_crouch = mask_lr3_walk_arms, mask_lr3_idle +anm_idle_moving_crouch_g_aim = mask_lr3_idle_ads_launcher_arms, mask_lr3_idle +anm_idle_moving_crouch_w_gl_aim = mask_lr3_idle_ads_wgl_arms, mask_lr3_idle +anm_idle_moving_crouch_w_gl = mask_lr3_walk_wgl_arms, mask_lr3_idle +anm_idle_moving_g = mask_lr3_walk_launcher_arms, mask_lr3_idle +anm_idle_moving_g_aim = mask_lr3_idle_ads_launcher_arms, mask_lr3_idle +anm_idle_moving_w_gl = mask_lr3_walk_wgl_arms, mask_lr3_idle +anm_idle_moving_w_gl_aim = mask_lr3_idle_ads_wgl_arms, mask_lr3_idle +anm_idle_sprint = mask_lr3_sprint_arms, mask_lr3_idle +anm_idle_sprint_g = mask_lr3_sprint_launcher_arms, mask_lr3_idle +anm_idle_sprint_w_gl = mask_lr3_sprint_wgl_arms, mask_lr3_idle +anm_idle_w_gl = mask_lr3_idle_wgl_arms, mask_lr3_idle +anm_idle_w_gl_aim = mask_lr3_idle_ads_wgl_arms, mask_lr3_idle +anm_reload = mask_lr3_reload_arms, mask_lr3_reload_gun +anm_reload_empty = mask_lr3_reload_empty_arms, mask_lr3_reload_empty_gun +anm_reload_g = mask_lr3_reload_launcher_arms, mask_lr3_reload_launcher_gun +anm_reload_w_gl = mask_lr3_reload_wgl_arms, mask_lr3_reload_gun +anm_reload_empty_w_gl = mask_lr3_reload_wgl_empty_arms, mask_lr3_reload_empty_gun +anm_shots = mask_lr3_shoot_arms, mask_lr3_shoot_gun +anm_shots_g = mask_lr3_shoot_launcher_arms, mask_lr3_idle +anm_shots_w_gl = mask_lr3_shoot_wgl_arms, mask_lr3_shoot_gun +anm_show = mask_lr3_draw_arms, mask_lr3_idle +anm_show_g = mask_lr3_draw_launcher_arms, mask_lr3_idle +anm_show_w_gl = mask_lr3_draw_wgl_arms, mask_lr3_idle +anm_switch = mask_lr3_switchgun_arms, mask_lr3_idle +anm_switch_g = mask_lr3_switchgl_arms, mask_lr3_idle +anm_reload_misfire = mask_lr3_unjam_arms, mask_lr3_unjam_gun +anm_reload_misfire_w_gl = mask_lr3_unjam_wgl_arms, mask_lr3_unjam_gun +anm_switch_mode = mask_lr3_switchmode_arms, mask_lr3_idle + +![wpn_lr300_ac10632_hud] +aim_hud_offset_pos = -0.074205, 0.013036, -0.190526 +aim_hud_offset_pos_16x9 = -0.074205, 0.013036, -0.190526 +aim_hud_offset_rot = 0.020742, 0.018576, 0.005964 +aim_hud_offset_rot_16x9 = 0.020742, 0.018576, 0.005964 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_lr300_acog_hud] +aim_hud_offset_pos = -0.073353, 0.014177, -0.19251 +aim_hud_offset_pos_16x9 = -0.073353, 0.014177, -0.19251 +aim_hud_offset_rot = 0.021594, 0.018789, 0.005964 +aim_hud_offset_rot_16x9 = 0.021594, 0.018789, 0.005964 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_lr300_eot_hud] +aim_hud_offset_pos = -0.073992, 0.001963, -0.180589 +aim_hud_offset_pos_16x9 = -0.073992, 0.001963, -0.180589 +aim_hud_offset_rot = 0.020742, 0.018576, 0.005964 +aim_hud_offset_rot_16x9 = 0.020742, 0.018576, 0.005964 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_m16] +use_alt_aim_hud = false + +![wpn_m16_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.061925, -0.010045, -0.107803 +hands_position_16x9 = 0.061925, -0.010045, -0.107803 +aim_hud_offset_pos = -0.072288, 0.011904, -0.219265 +aim_hud_offset_pos_16x9 = -0.072288, 0.011904, -0.219265 +aim_hud_offset_rot = 0.015346, 0.018576, 0.009088 +aim_hud_offset_rot_16x9 = 0.015346, 0.018576, 0.009088 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.068938, -0.080913, -0.155567 +gl_hud_offset_pos_16x9 = -0.068938, -0.080913, -0.155567 +gl_hud_offset_rot = -0.090992, 0.012933, -0.004946 +gl_hud_offset_rot_16x9 = -0.090992, 0.012933, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_m16_holster_arms, mask_m16_idle +anm_hide_g = mask_m16_holster_launcher_arms, mask_m16_launcher_idle +anm_hide_w_gl = mask_m16_holster_wgl_arms, mask_m16_idle +anm_idle = mask_m16_idle_arms, mask_m16_idle +anm_idle_aim = mask_m16_idle_ads_arms, mask_m16_idle +anm_idle_aim_moving = mask_m16_idle_ads_arms, mask_m16_idle +anm_idle_aim_moving_crouch = mask_m16_idle_ads_arms, mask_m16_idle +anm_idle_g = mask_m16_idle_launcher_arms, mask_m16_launcher_idle +anm_idle_g_aim = mask_m16_idle_ads_launcher_arms, mask_m16_launcher_idle +anm_idle_moving = mask_m16_walk_arms, mask_m16_idle +anm_idle_moving_crouch = mask_m16_walk_arms, mask_m16_idle +anm_idle_moving_crouch_g_aim = mask_m16_idle_ads_launcher_arms, mask_m16_launcher_idle +anm_idle_moving_crouch_w_gl_aim = mask_m16_idle_ads_wgl_arms, mask_m16_idle +anm_idle_moving_crouch_w_gl = mask_m16_walk_wgl_arms, mask_m16_idle +anm_idle_moving_g = mask_m16_walk_launcher_arms, mask_m16_launcher_idle +anm_idle_moving_g_aim = mask_m16_idle_ads_launcher_arms, mask_m16_launcher_idle +anm_idle_moving_w_gl = mask_m16_walk_wgl_arms, mask_m16_idle +anm_idle_moving_w_gl_aim = mask_m16_idle_ads_wgl_arms, mask_m16_idle +anm_idle_sprint = mask_m16_sprint_arms, mask_m16_idle +anm_idle_sprint_g = mask_m16_sprint_launcher_arms, mask_m16_launcher_idle +anm_idle_sprint_w_gl = mask_m16_sprint_wgl_arms, mask_m16_idle +anm_idle_w_gl = mask_m16_idle_wgl_arms, mask_m16_idle +anm_idle_w_gl_aim = mask_m16_idle_ads_wgl_arms, mask_m16_idle +anm_reload = mask_m16_reload_arms, mask_m16_reload_gun +anm_reload_empty = mask_m16_reload_empty_arms, mask_m16_reload_empty_gun +anm_reload_g = mask_m16_reload_launcher_arms, mask_m16_reload_launcher_gun +anm_reload_w_gl = mask_m16_reload_wgl_arms, mask_m16_reload_gun +anm_reload_empty_w_gl = mask_m16_reload_wgl_empty_arms, mask_m16_reload_empty_gun +anm_shots = mask_m16_shoot_arms, mask_m16_shoot_gun +anm_shots_g = mask_m16_shoot_launcher_arms, mask_m16_launcher_idle +anm_shots_w_gl = mask_m16_shoot_wgl_arms, mask_m16_shoot_gun +anm_show = mask_m16_draw_arms, mask_m16_idle +anm_show_g = mask_m16_draw_launcher_arms, mask_m16_launcher_idle +anm_show_w_gl = mask_m16_draw_wgl_arms, mask_m16_idle +anm_switch = mask_m16_switchgun2_arms, mask_m16_switchgun2_gun +anm_switch_g = mask_m16_switchgl2_arms, mask_m16_switchgl2_gun +anm_reload_misfire = mask_m16_unjam_arms, mask_m16_unjam_gun +anm_reload_misfire_w_gl = mask_m16_unjam_wgl_arms, mask_m16_unjam_gun +anm_switch_mode = mask_m16_switchmode_arms, mask_m16_idle + +![wpn_m16_ac10632_hud] +aim_hud_offset_pos = -0.072288, 0.009346, -0.196218 +aim_hud_offset_pos_16x9 = -0.072288, 0.009346, -0.196218 +aim_hud_offset_rot = 0.020742, 0.018576, 0.006532 +aim_hud_offset_rot_16x9 = 0.020742, 0.018576, 0.006532 + +![wpn_m16_acog_hud] +aim_hud_offset_pos = -0.072288, -0.004006, -0.19365 +aim_hud_offset_pos_16x9 = -0.072288, -0.004006, -0.19365 +aim_hud_offset_rot = 0.022162, 0.019002, 0.005964 +aim_hud_offset_rot_16x9 = 0.022162, 0.019002, 0.005964 + +![wpn_m16_eot_hud] +aim_hud_offset_pos = -0.072288, 0.014459, -0.209286 +aim_hud_offset_pos_16x9 = -0.072288, 0.014459, -0.209286 +aim_hud_offset_rot = 0.020742, 0.018576, 0.005964 +aim_hud_offset_rot_16x9 = 0.020742, 0.018576, 0.005964 + +![wpn_m16a2_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.061925, -0.010045, -0.107803 +hands_position_16x9 = 0.061925, -0.010045, -0.107803 +aim_hud_offset_pos = -0.07101, 0.011905, -0.213267 +aim_hud_offset_pos_16x9 = -0.07101, 0.011905, -0.213267 +aim_hud_offset_rot = 0.023866, 0.018363, 0.005964 +aim_hud_offset_rot_16x9 = 0.023866, 0.018363, 0.005964 +gl_hud_offset_pos = -0.068512, -0.080932, -0.155567 +gl_hud_offset_pos_16x9 = -0.068512, -0.080932, -0.155567 +gl_hud_offset_rot = -0.090992, 0.012933, -0.004946 +gl_hud_offset_rot_16x9 = -0.090992, 0.012933, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +lean_hud_offset_pos = 0, 0, 0 +lean_hud_offset_rot = 0, 0, 0 +anm_hide = mask_a2_holster_arms, mask_a2_idle +anm_hide_g = mask_a2_holster_launcher_arms, mask_a2_launcher_idle +anm_hide_w_gl = mask_a2_holster_wgl_arms, mask_a2_idle +anm_idle = mask_a2_idle_arms, mask_a2_idle +anm_idle_aim = mask_a2_idle_ads_arms, mask_a2_idle +anm_idle_aim_moving = mask_a2_idle_ads_arms, mask_a2_idle +anm_idle_aim_moving_crouch = mask_a2_idle_ads_arms, mask_a2_idle +anm_idle_g = mask_a2_idle_launcher_arms, mask_a2_launcher_idle +anm_idle_g_aim = mask_a2_idle_ads_launcher_arms, mask_a2_launcher_idle +anm_idle_moving = mask_a2_walk_arms, mask_a2_idle +anm_idle_moving_crouch = mask_a2_walk_arms, mask_a2_idle +anm_idle_moving_crouch_g_aim = mask_a2_idle_ads_launcher_arms, mask_a2_launcher_idle +anm_idle_moving_crouch_w_gl_aim = mask_a2_idle_ads_wgl_arms, mask_a2_idle +anm_idle_moving_crouch_w_gl = mask_a2_walk_wgl_arms, mask_a2_idle +anm_idle_moving_g = mask_a2_walk_launcher_arms, mask_a2_launcher_idle +anm_idle_moving_g_aim = mask_a2_idle_ads_launcher_arms, mask_a2_launcher_idle +anm_idle_moving_w_gl = mask_a2_walk_wgl_arms, mask_a2_idle +anm_idle_moving_w_gl_aim = mask_a2_idle_ads_wgl_arms, mask_a2_idle +anm_idle_sprint = mask_a2_sprint_arms, mask_a2_idle +anm_idle_sprint_g = mask_a2_sprint_launcher_arms, mask_a2_launcher_idle +anm_idle_sprint_w_gl = mask_a2_sprint_wgl_arms, mask_a2_idle +anm_idle_w_gl = mask_a2_idle_wgl_arms, mask_a2_idle +anm_idle_w_gl_aim = mask_a2_idle_ads_wgl_arms, mask_a2_idle +anm_reload = mask_a2_reload_arms, mask_a2_reload_gun +anm_reload_empty = mask_a2_reload_empty_arms, mask_a2_reload_empty_gun +anm_reload_g = mask_a2_reload_launcher_arms, mask_a2_reload_launcher_gun +anm_reload_w_gl = mask_a2_reload_wgl_arms, mask_a2_reload_gun +anm_reload_empty_w_gl = mask_a2_reload_wgl_empty_arms, mask_a2_reload_empty_gun +anm_shots = mask_a2_shoot_arms, mask_a2_shoot_gun +anm_shots_g = mask_a2_shoot_launcher_arms, mask_a2_launcher_idle +anm_shots_w_gl = mask_a2_shoot_wgl_arms, mask_a2_shoot_gun +anm_show = mask_a2_draw_arms, mask_a2_idle +anm_show_g = mask_a2_draw_launcher_arms, mask_a2_launcher_idle +anm_show_w_gl = mask_a2_draw_wgl_arms, mask_a2_idle +anm_switch = mask_a2_switchgun2_arms, mask_a2_switchgun2_gun +anm_switch_g = mask_a2_switchgl2_arms, mask_a2_switchgl2_gun +anm_reload_misfire = mask_a2_unjam_arms, mask_a2_unjam_gun +anm_reload_misfire_w_gl = mask_a2_unjam_wgl_arms, mask_a2_unjam_gun +anm_switch_mode = mask_a2_switchmode_arms, mask_a2_idle + +![wpn_m24] +rpm = 36 + +![wpn_m24_hud] +hands_orientation = 0.8352, 1.078466, -0.046709 +hands_orientation_16x9 = 0.8352, 1.078466, -0.046709 +hands_position = 0.056345, -0.02655, 0.021515 +hands_position_16x9 = 0.056345, -0.02655, 0.021515 +aim_hud_offset_pos = -0.068281, 0.021955, -0.168863 +aim_hud_offset_pos_16x9 = -0.068281, 0.021955, -0.168863 +aim_hud_offset_rot = 0.017592, 0.015091, 0.021867 +aim_hud_offset_rot_16x9 = 0.017592, 0.015091, 0.021867 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_m24_holster_arms, mask_m24_idle +anm_hide_empty = mask_m24_holster_arms, mask_m24_idle +anm_idle = mask_m24_idle_arms, mask_m24_idle +anm_idle_aim = mask_m24_idle_ads_arms, mask_m24_idle +anm_idle_aim_empty = mask_m24_idle_ads_arms, mask_m24_idle +anm_idle_aim_moving = mask_m24_idle_ads_arms, mask_m24_idle +anm_idle_aim_moving_crouch = mask_m24_idle_ads_arms, mask_m24_idle +anm_idle_aim_moving_crouch_empty = mask_m24_idle_ads_arms, mask_m24_idle +anm_idle_aim_moving_empty = mask_m24_idle_ads_arms, mask_m24_idle +anm_idle_empty = mask_m24_idle_arms, mask_m24_idle +anm_idle_moving = mask_m24_walk_arms, mask_m24_idle +anm_idle_moving_crouch = mask_m24_walk_arms, mask_m24_idle +anm_idle_moving_crouch_empty = mask_m24_walk_arms, mask_m24_idle +anm_idle_moving_empty = mask_m24_walk_arms, mask_m24_idle +anm_idle_sprint = mask_m24_sprint_arms, mask_m24_idle +anm_idle_sprint_empty = mask_m24_sprint_arms, mask_m24_idle +anm_reload = mask_m24_reload_arms, mask_m24_reload_gun +anm_reload_empty = mask_m24_reload_empty_arms, mask_m24_reload_empty_gun +anm_shot_l = mask_m24_shoot_arms, mask_m24_shoot_gun +anm_shots = mask_m24_shoot_arms, mask_m24_shoot_gun +anm_show = mask_m24_draw_arms, mask_m24_idle +anm_show_empty = mask_m24_draw_arms, mask_m24_idle +anm_reload_misfire = mask_m24_unjam_arms, mask_m24_unjam_gun + +![wpn_m4] +use_alt_aim_hud = false + +![wpn_m4_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 + hands_position = 0.061342, -0.003579, -0.100541 + hands_position_16x9 = 0.061342, -0.003579, -0.100541 + + aim_hud_offset_pos = -0.073515, 0.019574, -0.181291 + aim_hud_offset_pos_16x9 = -0.073515, 0.019574, -0.181291 + aim_hud_offset_rot = 0.020387, 0.018576, 0.005964 + aim_hud_offset_rot_16x9 = 0.020387, 0.018576, 0.005964 + +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 + + gl_hud_offset_pos = -0.070058, -0.055781, -0.155567 + gl_hud_offset_pos_16x9 = -0.070058, -0.055781, -0.155567 + gl_hud_offset_rot = -0.090992, 0.012933, -0.004946 + gl_hud_offset_rot_16x9 = -0.090992, 0.012933, -0.004946 + +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 + +anm_hide = mask_m4_holster_arms, mask_m4_idle +anm_hide_g = mask_m4_holster_launcher_arms, mask_m4_launcher_idle +anm_hide_w_gl = mask_m4_holster_wgl_arms, mask_m4_idle +anm_idle = mask_m4_idle_arms, mask_m4_idle +anm_idle_aim = mask_m4_idle_ads_arms, mask_m4_idle +anm_idle_aim_moving = mask_m4_idle_ads_arms, mask_m4_idle +anm_idle_aim_moving_crouch = mask_m4_idle_ads_arms, mask_m4_idle +anm_idle_g = mask_m4_idle_launcher_arms, mask_m4_launcher_idle +anm_idle_g_aim = mask_m4_idle_ads_launcher_arms, mask_m4_launcher_idle +anm_idle_moving = mask_m4_walk_arms, mask_m4_idle +anm_idle_moving_crouch = mask_m4_walk_arms, mask_m4_idle +anm_idle_moving_crouch_g_aim = mask_m4_idle_ads_launcher_arms, mask_m4_launcher_idle +anm_idle_moving_crouch_w_gl_aim = mask_m4_idle_ads_wgl_arms, mask_m4_idle +anm_idle_moving_crouch_w_gl = mask_m4_walk_wgl_arms, mask_m4_idle +anm_idle_moving_g = mask_m4_walk_launcher_arms, mask_m4_launcher_idle +anm_idle_moving_g_aim = mask_m4_idle_ads_launcher_arms, mask_m4_launcher_idle +anm_idle_moving_w_gl = mask_m4_walk_wgl_arms, mask_m4_idle +anm_idle_moving_w_gl_aim = mask_m4_idle_ads_wgl_arms, mask_m4_idle +anm_idle_sprint = mask_m4_sprint_arms, mask_m4_idle +anm_idle_sprint_g = mask_m4_sprint_launcher_arms, mask_m4_launcher_idle +anm_idle_sprint_w_gl = mask_m4_sprint_wgl_arms, mask_m4_idle +anm_idle_w_gl = mask_m4_idle_wgl_arms, mask_m4_idle +anm_idle_w_gl_aim = mask_m4_idle_ads_wgl_arms, mask_m4_idle +anm_reload = mask_m4_reload_arms, mask_m4_reload_gun +anm_reload_empty = mask_m4_reload_empty_arms, mask_m4_reload_empty_gun +anm_reload_g = mask_m4_reload_launcher_arms, mask_m4_reload_launcher_gun +anm_reload_w_gl = mask_m4_reload_wgl_arms, mask_m4_reload_gun +anm_reload_empty_w_gl = mask_m4_reload_wgl_empty_arms, mask_m4_reload_empty_gun +anm_shots = mask_m4_shoot_arms, mask_m4_shoot_gun +anm_shots_g = mask_m4_shoot_launcher_arms, mask_m4_launcher_idle +anm_shots_w_gl = mask_m4_shoot_wgl_arms, mask_m4_shoot_gun +anm_show = mask_m4_draw_arms, mask_m4_idle +anm_show_g = mask_m4_draw_launcher_arms, mask_m4_launcher_idle +anm_show_w_gl = mask_m4_draw_wgl_arms, mask_m4_idle +anm_switch = mask_m4_switchgun2_arms, mask_m4_switchgun2_gun +anm_switch_g = mask_m4_switchgl2_arms, mask_m4_switchgl2_gun +anm_reload_misfire = mask_m4_unjam_arms, mask_m4_unjam_gun +anm_reload_misfire_w_gl = mask_m4_unjam_wgl_arms, mask_m4_unjam_gun +anm_switch_mode = mask_m4_switchmode_arms, mask_m4_idle +!anm_idle_moving_crouch_g + +![wpn_m4_ac10632_hud] + aim_hud_offset_pos = -0.072551, 0.016734, -0.191944 + aim_hud_offset_pos_16x9 = -0.072551, 0.016734, -0.191944 + aim_hud_offset_rot = 0.020671, 0.017357, -0.001974 + aim_hud_offset_rot_16x9 = 0.020671, 0.017357, -0.001974 + +![wpn_m4_acog_hud] + aim_hud_offset_pos = -0.073515, 0.003526, -0.197205 + aim_hud_offset_pos_16x9 = -0.073515, 0.003526, -0.197205 + aim_hud_offset_rot = 0.02486, 0.019054, 0.005964 + aim_hud_offset_rot_16x9 = 0.02486, 0.019054, 0.005964 + gl_hud_offset_pos = -0.070484, -0.077593, -0.155567 + gl_hud_offset_pos_16x9 = -0.070484, -0.077593, -0.155567 + gl_hud_offset_rot = -0.119109, 0.012933, -0.004946 + gl_hud_offset_rot_16x9 = -0.119109, 0.012933, -0.004946 + +![wpn_m4_eot_hud] + aim_hud_offset_pos = -0.074576, 0.013894, -0.202667 + aim_hud_offset_pos_16x9 = -0.074576, 0.013894, -0.202667 + aim_hud_offset_rot = 0.020316, 0.020541, 0.001419 + aim_hud_offset_rot_16x9 = 0.020316, 0.020541, 0.001419 + +![wpn_m4a1] +use_alt_aim_hud = false + +![wpn_m4a1_hud] + hands_orientation = 1.0384, 1.194821, -0.100189 + hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 + hands_position = 0.061342, -0.003579, -0.107081 + hands_position_16x9 = 0.061342, -0.003579, -0.107081 + + aim_hud_offset_pos = -0.074151, 0.017728, -0.183058 + aim_hud_offset_pos_16x9 = -0.074151, 0.017728, -0.183058 + aim_hud_offset_rot = 0.02486, 0.018364, 0.006319 + aim_hud_offset_rot_16x9 = 0.02486, 0.018364, 0.006319 + +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 + + gl_hud_offset_pos = -0.071396, -0.059757, -0.155567 + gl_hud_offset_pos_16x9 = -0.071396, -0.059757, -0.155567 + gl_hud_offset_rot = -0.090992, 0.012933, -0.004946 + gl_hud_offset_rot_16x9 = -0.090992, 0.012933, -0.004946 + +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 + +anm_hide = mask_m4a1_holster_arms, mask_m4a1_idle +anm_hide_g = mask_m4a1_holster_launcher_arms, mask_m4a1_launcher_idle +anm_hide_w_gl = mask_m4a1_holster_wgl_arms, mask_m4a1_idle +anm_idle = mask_m4a1_idle_arms, mask_m4a1_idle +anm_idle_aim = mask_m4a1_idle_ads_arms, mask_m4a1_idle +anm_idle_aim_moving = mask_m4a1_idle_ads_arms, mask_m4a1_idle +anm_idle_aim_moving_crouch = mask_m4a1_idle_ads_arms, mask_m4a1_idle +anm_idle_g = mask_m4a1_idle_launcher_arms, mask_m4a1_launcher_idle +anm_idle_g_aim = mask_m4a1_idle_ads_launcher_arms, mask_m4a1_launcher_idle +anm_idle_moving = mask_m4a1_walk_arms, mask_m4a1_idle +anm_idle_moving_crouch = mask_m4a1_walk_arms, mask_m4a1_idle +anm_idle_moving_crouch_g_aim = mask_m4a1_idle_ads_launcher_arms, mask_m4a1_launcher_idle +anm_idle_moving_crouch_w_gl_aim = mask_m4a1_idle_ads_wgl_arms, mask_m4a1_idle +anm_idle_moving_crouch_w_gl = mask_m4a1_walk_wgl_arms, mask_m4a1_idle +anm_idle_moving_g = mask_m4a1_walk_launcher_arms, mask_m4a1_launcher_idle +anm_idle_moving_g_aim = mask_m4a1_idle_ads_launcher_arms, mask_m4a1_launcher_idle +anm_idle_moving_w_gl = mask_m4a1_walk_wgl_arms, mask_m4a1_idle +anm_idle_moving_w_gl_aim = mask_m4a1_idle_ads_wgl_arms, mask_m4a1_idle +anm_idle_sprint = mask_m4a1_sprint_arms, mask_m4a1_idle +anm_idle_sprint_g = mask_m4a1_sprint_launcher_arms, mask_m4a1_launcher_idle +anm_idle_sprint_w_gl = mask_m4a1_sprint_wgl_arms, mask_m4a1_idle +anm_idle_w_gl = mask_m4a1_idle_wgl_arms, mask_m4a1_idle +anm_idle_w_gl_aim = mask_m4a1_idle_ads_wgl_arms, mask_m4a1_idle +anm_reload = mask_m4a1_reload_arms, mask_m4a1_reload_gun +anm_reload_empty = mask_m4a1_reload_empty_arms, mask_m4a1_reload_empty_gun +anm_reload_g = mask_m4a1_reload_launcher_arms, mask_m4a1_reload_launcher_gun +anm_reload_w_gl = mask_m4a1_reload_wgl_arms, mask_m4a1_reload_gun +anm_reload_empty_w_gl = mask_m4a1_reload_wgl_empty_arms, mask_m4a1_reload_empty_gun +anm_shots = mask_m4a1_shoot_arms, mask_m4a1_shoot_gun +anm_shots_g = mask_m4a1_shoot_launcher_arms, mask_m4a1_launcher_idle +anm_shots_w_gl = mask_m4a1_shoot_wgl_arms, mask_m4a1_shoot_gun +anm_show = mask_m4a1_draw_arms, mask_m4a1_idle +anm_show_g = mask_m4a1_draw_launcher_arms, mask_m4a1_launcher_idle +anm_show_w_gl = mask_m4a1_draw_wgl_arms, mask_m4a1_idle +anm_switch = mask_m4a1_switchgun2_arms, mask_m4a1_switchgun2_gun +anm_switch_g = mask_m4a1_switchgl2_arms, mask_m4a1_switchgl2_gun +anm_reload_misfire = mask_m4a1_unjam_arms, mask_m4a1_unjam_gun +anm_reload_misfire_w_gl = mask_m4a1_unjam_wgl_arms, mask_m4a1_unjam_gun +anm_switch_mode = mask_m4a1_switchmode_arms, mask_m4a1_idle +anm_switch_mode_w_gl = mask_m4a1_switchmode_wgl_arms, mask_m4a1_idle + +![wpn_m4a1_ac10632_hud] + aim_hud_offset_pos = -0.073889, 0.01645, -0.196499 + aim_hud_offset_pos_16x9 = -0.073889, 0.01645, -0.196499 + aim_hud_offset_rot = 0.025286, 0.018363, 0 + aim_hud_offset_rot_16x9 = 0.025286, 0.018363, 0 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_m4a1_acog_hud] + aim_hud_offset_pos = -0.074035, 0.00374, -0.193304 + aim_hud_offset_pos_16x9 = -0.074035, 0.00374, -0.193304 + aim_hud_offset_rot = 0.02557, 0.018257, 0 + aim_hud_offset_rot_16x9 = 0.02557, 0.018257, 0 + gl_hud_offset_pos = -0.071611, -0.066991, -0.151593 + gl_hud_offset_pos_16x9 = -0.071611, -0.066991, -0.151593 + +![wpn_m4a1_eot_hud] + aim_hud_offset_pos = -0.072878, 0.015456, -0.175271 + aim_hud_offset_pos_16x9 = -0.072878, 0.015456, -0.175271 + aim_hud_offset_rot = 0.025215, 0.016806, 0 + aim_hud_offset_rot_16x9 = 0.025215, 0.016806, 0 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_m4a1_acog_sk2_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_m4a1_eot_sk2_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_m4a1_acog_sk3_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_m4a1_eot_sk3_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_m4a1_acog_sk1_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_m4a1_eot_sk1_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_m82] +use_aim_bullet = true + +![wpn_m82_hud] +item_orientation = 0, 0, 0 +hands_orientation = 0.8352, 1.078466, -0.046709 +hands_orientation_16x9 = 0.8352, 1.078466, -0.046709 +hands_position = 0.056345, -0.02655, 0.031783 +hands_position_16x9 = 0.056345, -0.02655, 0.031783 +aim_hud_offset_pos = -0.071688, 0.007462, -0.196175 +aim_hud_offset_pos_16x9 = -0.071688, 0.007462, -0.196175 +aim_hud_offset_rot = 0.013616, 0.020842, -0.001742 +aim_hud_offset_rot_16x9 = 0.013616, 0.020842, -0.001742 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_m82_holster_arms, mask_m82_idle +anm_hide_empty = mask_m82_holster_arms, mask_m82_idle +anm_idle = mask_m82_idle_arms, mask_m82_idle +anm_idle_aim = mask_m82_idle_ads_arms, mask_m82_idle +anm_idle_aim_empty = mask_m82_idle_ads_arms, mask_m82_idle +anm_idle_aim_moving = mask_m82_idle_ads_arms, mask_m82_idle +anm_idle_aim_moving_crouch = mask_m82_idle_ads_arms, mask_m82_idle +anm_idle_aim_moving_crouch_empty = mask_m82_idle_ads_arms, mask_m82_idle +anm_idle_aim_moving_empty = mask_m82_idle_ads_arms, mask_m82_idle +anm_idle_empty = mask_m82_idle_arms, mask_m82_idle +anm_idle_moving = mask_m82_walk_arms, mask_m82_idle +anm_idle_moving_crouch = mask_m82_walk_arms, mask_m82_idle +anm_idle_moving_crouch_empty = mask_m82_walk_arms, mask_m82_idle +anm_idle_moving_empty = mask_m82_walk_arms, mask_m82_idle +anm_idle_sprint = mask_m82_sprint_arms, mask_m82_idle +anm_idle_sprint_empty = mask_m82_sprint_arms, mask_m82_idle +anm_reload = mask_m82_reload_arms, mask_m82_reload_gun +anm_reload_empty = mask_m82_reload_empty_arms, mask_m82_reload_empty_gun +anm_shot_l = mask_m82_shoot_arms, mask_m82_shoot_gun +anm_shots = mask_m82_shoot_arms, mask_m82_shoot_gun +anm_show = mask_m82_draw_arms, mask_m82_idle +anm_show_empty = mask_m82_draw_arms, mask_m82_idle +anm_reload_misfire = mask_m82_unjam_arms, mask_m82_unjam_gun +!gl_hud_offset_pos +!gl_hud_offset_rot + +![wpn_m98b] +rpm = 35 + +![wpn_m98b_new_hud] +hands_orientation = 0.8352, 1.078466, -0.402978 +hands_orientation_16x9 = 0.8352, 1.078466, -0.402978 +hands_position = 0.059541, -0.036774, 0.031783 +hands_position_16x9 = 0.059541, -0.036774, 0.031783 +aim_hud_offset_pos = -0.073392, 0.016836, -0.201563 +aim_hud_offset_pos_16x9 = -0.073392, 0.016836, -0.201563 +aim_hud_offset_rot = 0.01532, 0.01573, 0.000842 +aim_hud_offset_rot_16x9 = 0.01532, 0.01573, 0.000842 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_m98_holster_arms, mask_m98_idle +anm_hide_empty = mask_m98_holster_arms, mask_m98_idle +anm_idle = mask_m98_idle_arms, mask_m98_idle +anm_idle_aim = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_empty = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving_crouch = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving_crouch_empty = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving_empty = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_empty = mask_m98_idle_arms, mask_m98_idle +anm_idle_moving = mask_m98_walk_arms, mask_m98_idle +anm_idle_moving_crouch = mask_m98_walk_arms, mask_m98_idle +anm_idle_moving_crouch_empty = mask_m98_walk_arms, mask_m98_idle +anm_idle_moving_empty = mask_m98_walk_arms, mask_m98_idle +anm_idle_sprint = mask_m98_sprint_arms, mask_m98_idle +anm_idle_sprint_empty = mask_m98_sprint_arms, mask_m98_idle +anm_reload = mask_m98_reload_arms, mask_m98_reload_gun +anm_reload_empty = mask_m98_reload_empty_arms, mask_m98_reload_empty_gun +anm_shot_l = mask_m98_shoot_arms, mask_m98_shoot_gun +anm_shots = mask_m98_shoot_arms, mask_m98_shoot_gun +anm_show = mask_m98_draw_arms, mask_m98_idle +anm_show_empty = mask_m98_draw_arms, mask_m98_idle +anm_reload_misfire = mask_m98_unjam_arms, mask_m98_unjam_gun +!gl_hud_offset_pos +!gl_hud_offset_rot + +![wpn_m98b_hud] +hands_orientation = 0.8352, 1.078466, -0.402978 +hands_orientation_16x9 = 0.8352, 1.078466, -0.402978 +hands_position = 0.059541, -0.036774, 0.031783 +hands_position_16x9 = 0.059541, -0.036774, 0.031783 +aim_hud_offset_pos = -0.073392, 0.016836, -0.201563 +aim_hud_offset_pos_16x9 = -0.073392, 0.016836, -0.201563 +aim_hud_offset_rot = 0.01532, 0.01573, 0.000842 +aim_hud_offset_rot_16x9 = 0.01532, 0.01573, 0.000842 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_m98_holster_arms, mask_m98_idle +anm_hide_empty = mask_m98_holster_arms, mask_m98_idle +anm_idle = mask_m98_idle_arms, mask_m98_idle +anm_idle_aim = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_empty = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving_crouch = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving_crouch_empty = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_aim_moving_empty = mask_m98_idle_ads_arms, mask_m98_idle +anm_idle_empty = mask_m98_idle_arms, mask_m98_idle +anm_idle_moving = mask_m98_walk_arms, mask_m98_idle +anm_idle_moving_crouch = mask_m98_walk_arms, mask_m98_idle +anm_idle_moving_crouch_empty = mask_m98_walk_arms, mask_m98_idle +anm_idle_moving_empty = mask_m98_walk_arms, mask_m98_idle +anm_idle_sprint = mask_m98_sprint_arms, mask_m98_idle +anm_idle_sprint_empty = mask_m98_sprint_arms, mask_m98_idle +anm_reload = mask_m98_reload_arms, mask_m98_reload_gun +anm_reload_empty = mask_m98_reload_empty_arms, mask_m98_reload_empty_gun +anm_shot_l = mask_m98_shoot_arms, mask_m98_shoot_gun +anm_shots = mask_m98_shoot_arms, mask_m98_shoot_gun +anm_show = mask_m98_draw_arms, mask_m98_idle +anm_show_empty = mask_m98_draw_arms, mask_m98_idle +anm_reload_misfire = mask_m98_unjam_arms, mask_m98_unjam_gun +!gl_hud_offset_pos +!gl_hud_offset_rot + +![wpn_mk14] +use_alt_aim_hud = false + +![wpn_mk14] +fire_modes = 1, -1 + +![wpn_mk14_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.061499, -0.016592, -0.113484 +hands_position_16x9 = 0.061499, -0.016592, -0.113484 + aim_hud_offset_pos = -0.073137, 0.03207, -0.224851 + aim_hud_offset_pos_16x9 = -0.073137, 0.03207, -0.224851 + aim_hud_offset_rot = 0.011654, 0.01815, 0 + aim_hud_offset_rot_16x9 = 0.011654, 0.01815, 0 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.073797, -0.04621, -0.108975 +gl_hud_offset_pos_16x9 = -0.073797, -0.04621, -0.108975 +gl_hud_offset_rot = -0.096929, 0.017618, -0.004946 +gl_hud_offset_rot_16x9 = -0.096929, 0.017618, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_m14_holster_arms, mask_m14_idle +anm_hide_empty = mask_m14_holster_arms, mask_m14_idle_empty +anm_idle = mask_m14_idle_arms, mask_m14_idle +anm_idle_aim = mask_m14_idle_ads_arms, mask_m14_idle +anm_idle_aim_empty = mask_m14_idle_ads_arms, mask_m14_idle_empty +anm_idle_aim_moving = mask_m14_idle_ads_arms, mask_m14_idle +anm_idle_aim_moving_crouch = mask_m14_idle_ads_arms, mask_m14_idle +anm_idle_aim_moving_crouch_empty = mask_m14_idle_ads_arms, mask_m14_idle_empty +anm_idle_aim_moving_empty = mask_m14_idle_ads_arms, mask_m14_idle_empty +anm_idle_empty = mask_m14_idle_arms, mask_m14_idle_empty +anm_idle_moving = mask_m14_walk_arms, mask_m14_idle +anm_idle_moving_crouch = mask_m14_walk_arms, mask_m14_idle +anm_idle_moving_crouch_empty = mask_m14_walk_arms, mask_m14_idle_empty +anm_idle_moving_empty = mask_m14_walk_arms, mask_m14_idle_empty +anm_idle_sprint = mask_m14_sprint_arms, mask_m14_idle +anm_idle_sprint_empty = mask_m14_sprint_arms, mask_m14_idle_empty +anm_reload = mask_m14_reload_arms, mask_m14_reload_gun +anm_reload_empty = mask_m14_reload_empty_arms, mask_m14_reload_empty_gun +anm_shot_l = mask_m14_shoot_arms, mask_m14_shoot_last_gun +anm_shots = mask_m14_shoot_arms, mask_m14_shoot_gun +anm_show = mask_m14_draw_arms, mask_m14_idle +anm_show_empty = mask_m14_draw_arms, mask_m14_idle_empty +anm_switch_mode = mask_m14_switchmode_arms, mask_m14_idle +anm_switch_mode_empty = mask_m14_switchmode_arms, mask_m14_idle_empty +anm_reload_misfire = mask_m14_unjam_arms, mask_m14_unjam_gun + +![wpn_mk14_ac10632_hud] +aim_hud_offset_pos = -0.07335, 0.00651, -0.198697 +aim_hud_offset_pos_16x9 = -0.07335, 0.00651, -0.198697 +aim_hud_offset_rot = 0.010234, 0.018576, 0 +aim_hud_offset_rot_16x9 = 0.010234, 0.018576, 0 + +![wpn_mk14_acog_hud] +aim_hud_offset_pos = -0.073776, 0.015598, -0.215782 +aim_hud_offset_pos_16x9 = -0.073776, 0.015598, -0.215782 +aim_hud_offset_rot = 0.023866, 0.019854, 0 +aim_hud_offset_rot_16x9 = 0.023866, 0.019854, 0 + +![wpn_mk14_c-more_hud] +aim_hud_offset_pos = -0.073989, 0.005941, -0.174554 +aim_hud_offset_pos_16x9 = -0.073989, 0.005941, -0.174554 +aim_hud_offset_rot = 0.010234, 0.018576, 0 +aim_hud_offset_rot_16x9 = 0.010234, 0.018576, 0 + +![wpn_mk14_eot_hud] +aim_hud_offset_pos = -0.07335, -0.000306, -0.178815 +aim_hud_offset_pos_16x9 = -0.07335, -0.000306, -0.178815 +aim_hud_offset_rot = 0.010234, 0.018576, 0 +aim_hud_offset_rot_16x9 = 0.010234, 0.018576, 0 + +![wpn_mossberg590] +use_alt_aim_hud = false + +![wpn_mossberg590_hud] +hands_orientation = 0.8952, 1.066729, 0.808726 +hands_orientation_16x9 = 0.8952, 1.066729, 0.808726 +hands_position = 0.049954, -0.021429, 0.034643 +hands_position_16x9 = 0.049954, -0.021429, 0.034643 +aim_hud_offset_pos = -0.072538, 0.031327, -0.089199 +aim_hud_offset_pos_16x9 = -0.072538, 0.031327, -0.089199 +aim_hud_offset_rot = 0.019012, 0.016156, 0.017608 +aim_hud_offset_rot_16x9 = 0.019012, 0.016156, 0.017608 +aim_hud_offset_alt_pos = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_pos_16x9 = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_rot = 0.016172, 0.02702, 0.708521 +aim_hud_offset_alt_rot_16x9 = 0.016172, 0.02702, 0.708521 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_reload_misfire = mask_m590_unjam_arms, mask_m590_unjam_gun +anm_add_cartridge = mask_m590_load_arms, mask_m590_load_gun +anm_close = mask_m590_close_arms, mask_m590_close_gun +anm_hide = mask_m590_holster_arms, mask_m590_idle +anm_idle = mask_m590_idle_arms, mask_m590_idle +anm_idle_aim = mask_m590_idle_ads_arms, mask_m590_idle +anm_idle_aim_moving = mask_m590_idle_ads_arms, mask_m590_idle +anm_idle_aim_moving_crouch = mask_m590_idle_ads_arms, mask_m590_idle +anm_idle_moving = mask_m590_walk_arms, mask_m590_idle +anm_idle_sprint = mask_m590_sprint_arms, mask_m590_idle +anm_open = mask_m590_open_arms, mask_m590_open_gun +anm_shots = mask_m590_shoot_arms, mask_m590_shoot_gun +anm_show = mask_m590_draw_arms, mask_m590_idle +!anm_idle_moving_crouch +!anm_reload + +![wpn_mp133] +use_alt_aim_hud = false + +![wpn_mp133_hud] +hands_orientation = 0.8352, 1.078466, 0.759685 +hands_orientation_16x9 = 0.8352, 1.078466, 0.759685 +hands_position = 0.049315, -0.015746, 0.010474 +hands_position_16x9 = 0.049315, -0.015746, 0.010474 +aim_hud_offset_pos = -0.06828, 0.041267, -0.154934 +aim_hud_offset_pos_16x9 = -0.06828, 0.041267, -0.154934 +aim_hud_offset_rot = 0.0139, 0.015091, 0.023287 +aim_hud_offset_rot_16x9 = 0.0139, 0.015091, 0.023287 +aim_hud_offset_alt_pos = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_pos_16x9 = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_rot = 0.016172, 0.02702, 0.708521 +aim_hud_offset_alt_rot_16x9 = 0.016172, 0.02702, 0.708521 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_reload_misfire = mask_mp133_unjam_arms, mask_mp133_unjam_gun +anm_add_cartridge = mask_mp133_load_arms, mask_mp133_load_gun +anm_close = mask_mp133_close_arms, mask_mp133_close_gun +anm_hide = mask_mp133_holster_arms, mask_mp133_idle +anm_idle = mask_mp133_idle_arms, mask_mp133_idle +anm_idle_aim = mask_mp133_idle_ads_arms, mask_mp133_idle +anm_idle_aim_moving = mask_mp133_idle_ads_arms, mask_mp133_idle +anm_idle_aim_moving_crouch = mask_mp133_idle_ads_arms, mask_mp133_idle +anm_idle_moving = mask_mp133_walk_arms, mask_mp133_idle +anm_idle_moving_crouch = mask_mp133_walk_arms, mask_mp133_idle +anm_idle_sprint = mask_mp133_sprint_arms, mask_mp133_idle +anm_open = mask_mp133_open_arms, mask_mp133_open_gun +anm_shots = mask_mp133_shoot_arms, mask_mp133_shoot_gun +anm_show = mask_mp133_draw_arms, mask_mp133_idle +!anm_idle_moving_crouch +!anm_reload + +![wpn_mp153] +use_alt_aim_hud = false + +![wpn_mp153_hud] +hands_orientation = 0.8952, 1.066729, 0.808726 +hands_orientation_16x9 = 0.8952, 1.066729, 0.808726 +hands_position = 0.049954, -0.021429, 0.034643 +hands_position_16x9 = 0.049954, -0.021429, 0.034643 +aim_hud_offset_pos = -0.075945, 0.030759, -0.125396 +aim_hud_offset_pos_16x9 = -0.075945, 0.030759, -0.125396 +aim_hud_offset_rot = 0.008788, 0.016156, 0.017608 +aim_hud_offset_rot_16x9 = 0.008788, 0.016156, 0.017608 +aim_hud_offset_alt_pos = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_pos_16x9 = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_rot = 0.016172, 0.02702, 0.708521 +aim_hud_offset_alt_rot_16x9 = 0.016172, 0.02702, 0.708521 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_reload_misfire = mask_mp153_unjam_arms, mask_mp153_unjam_gun +anm_add_cartridge = mask_mp153_load_arms, mask_mp153_load_gun +anm_close = mask_mp153_close_arms, mask_mp153_close_gun +anm_hide = mask_mp153_holster_arms, mask_mp153_idle +anm_idle = mask_mp153_idle_arms, mask_mp153_idle +anm_idle_aim = mask_mp153_idle_ads_arms, mask_mp153_idle +anm_idle_aim_moving = mask_mp153_idle_ads_arms, mask_mp153_idle +anm_idle_aim_moving_crouch = mask_mp153_idle_ads_arms, mask_mp153_idle +anm_idle_moving = mask_mp153_walk_arms, mask_mp153_idle +anm_idle_sprint = mask_mp153_sprint_arms, mask_mp153_idle +anm_open = mask_mp153_open_arms, mask_mp153_open_gun +anm_shots = mask_mp153_shoot_arms, mask_mp153_shoot_gun +anm_show = mask_mp153_draw_arms, mask_mp153_idle +anm_switch_mode = mask_mp153_switchmode_arms, mask_mp153_idle + +!anm_idle_moving_crouch +!anm_reload + +![wpn_mp5] +use_alt_aim_hud = false + +![wpn_mp5_hud] +hands_orientation = 0.896, 1.03793, -0.089329 +hands_orientation_16x9 = 0.896, 1.03793, -0.089329 +hands_position = 0.051254, -0.032786, -0.077105 +hands_position_16x9 = 0.051254, -0.032786, -0.077105 +aim_hud_offset_pos = -0.067425, 0.026774, -0.176267 +aim_hud_offset_pos_16x9 = -0.067425, 0.026774, -0.176267 +aim_hud_offset_rot = 0.016456, 0.01509, -0.003946 +aim_hud_offset_rot_16x9 = 0.016456, 0.01509, -0.003946 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_mp5_holster_arms, mask_mp5_idle +anm_hide_empty = mask_mp5_holster_arms, mask_mp5_idle +anm_idle = mask_mp5_idle_arms, mask_mp5_idle +anm_idle_aim = mask_mp5_idle_ads_arms, mask_mp5_idle +anm_idle_aim_empty = mask_mp5_idle_ads_arms, mask_mp5_idle +anm_idle_aim_moving = mask_mp5_idle_ads_arms, mask_mp5_idle +anm_idle_aim_moving_crouch = mask_mp5_idle_ads_arms, mask_mp5_idle +anm_idle_aim_moving_crouch_empty = mask_mp5_idle_ads_arms, mask_mp5_idle +anm_idle_aim_moving_empty = mask_mp5_idle_ads_arms, mask_mp5_idle +anm_idle_empty = mask_mp5_idle_arms, mask_mp5_idle +anm_idle_moving = mask_mp5_walk_arms, mask_mp5_idle +anm_idle_moving_crouch = mask_mp5_walk_arms, mask_mp5_idle +anm_idle_moving_crouch_empty = mask_mp5_walk_arms, mask_mp5_idle +anm_idle_moving_empty = mask_mp5_walk_arms, mask_mp5_idle +anm_idle_sprint = mask_mp5_sprint_arms, mask_mp5_idle +anm_idle_sprint_empty = mask_mp5_sprint_arms, mask_mp5_idle +anm_reload = mask_mp5_reload_arms, mask_mp5_reload_gun +anm_reload_empty = mask_mp5_reload_empty_arms, mask_mp5_reload_empty_gun +anm_shot_l = mask_mp5_shoot_arms, mask_mp5_shoot_gun +anm_shots = mask_mp5_shoot_arms, mask_mp5_shoot_gun +anm_show = mask_mp5_draw_arms, mask_mp5_idle +anm_show_empty = mask_mp5_draw_arms, mask_mp5_idle +anm_switch_mode = mask_mp5_switchmode_arms, mask_mp5_idle +anm_reload_misfire = mask_mp5_unjam_arms, mask_mp5_unjam_gun +; anm_bore = mask_mp5_bore_arms, mask_mp5_idle +; anm_bore_empty = mask_mp5_bore_arms, mask_mp5_idle +; anm_ammo_check = mask_mp5_magcheck_arms, mask_mp5_magcheck_gun +; anm_ammo_check_empty = mask_mp5_magcheck_arms, mask_mp5_magcheck_gun + +![wpn_mp5_eot_hud] +aim_hud_offset_pos = -0.067638, -0.018425, -0.176267 +aim_hud_offset_pos_16x9 = -0.067638, -0.018425, -0.176267 +aim_hud_offset_rot = 0.016456, 0.01509, -0.003946 +aim_hud_offset_rot_16x9 = 0.016456, 0.01509, -0.003946 + +![wpn_mp5_ac10632_hud] +aim_hud_offset_pos = -0.067212, -0.014996, -0.185651 +aim_hud_offset_pos_16x9 = -0.067212, -0.014996, -0.185651 +aim_hud_offset_rot = 0.016456, 0.01509, -0.003946 +aim_hud_offset_rot_16x9 = 0.016456, 0.01509, -0.003946 + +![wpn_mp5_acog_hud] +aim_hud_offset_pos = -0.068064, -0.010438, -0.200434 +aim_hud_offset_pos_16x9 = -0.068064, -0.010438, -0.200434 +aim_hud_offset_rot = 0.018728, 0.015303, -0.003946 +aim_hud_offset_rot_16x9 = 0.018728, 0.015303, -0.003946 + +![wpn_mp5sd_hud] +hands_orientation = 0.896, 1.03793, -1.722396 +hands_orientation_16x9 = 0.896, 1.03793, -1.722396 +hands_position = 0.050828, -0.029369, -0.070555 +hands_position_16x9 = 0.050828, -0.029369, -0.070555 +aim_hud_offset_pos = -0.067212, 0.038423, -0.185073 +aim_hud_offset_pos_16x9 = -0.067212, 0.038423, -0.185073 +aim_hud_offset_rot = 0.021, 0.015942, -0.031241 +aim_hud_offset_rot_16x9 = 0.021, 0.015942, -0.031241 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = 0, 0, 0 +gl_hud_offset_pos_16x9 = 0, 0, 0 +gl_hud_offset_rot = 0, 0, 0 +gl_hud_offset_rot_16x9 = 0, 0, 0 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +lean_hud_offset_pos = 0, 0, 0 +lean_hud_offset_rot = 0, 0, 0 +anm_hide = mask_mp5sd_holster_arms, mask_mp5sd_idle +anm_hide_empty = mask_mp5sd_holster_arms, mask_mp5sd_idle +anm_idle = mask_mp5sd_idle_arms, mask_mp5sd_idle +anm_idle_aim = mask_mp5sd_idle_ads_arms, mask_mp5sd_idle +anm_idle_aim_empty = mask_mp5sd_idle_ads_arms, mask_mp5sd_idle +anm_idle_aim_moving = mask_mp5sd_idle_ads_arms, mask_mp5sd_idle +anm_idle_aim_moving_crouch = mask_mp5sd_idle_ads_arms, mask_mp5sd_idle +anm_idle_aim_moving_crouch_empty = mask_mp5sd_idle_ads_arms, mask_mp5sd_idle +anm_idle_aim_moving_empty = mask_mp5sd_idle_ads_arms, mask_mp5sd_idle +anm_idle_empty = mask_mp5sd_idle_arms, mask_mp5sd_idle +anm_idle_moving = mask_mp5sd_walk_arms, mask_mp5sd_idle +anm_idle_moving_crouch = mask_mp5sd_walk_arms, mask_mp5sd_idle +anm_idle_moving_crouch_empty = mask_mp5sd_walk_arms, mask_mp5sd_idle +anm_idle_moving_empty = mask_mp5sd_walk_arms, mask_mp5sd_idle +anm_idle_sprint = mask_mp5sd_sprint_arms, mask_mp5sd_idle +anm_idle_sprint_empty = mask_mp5sd_sprint_arms, mask_mp5sd_idle +anm_reload = mask_mp5sd_reload_arms, mask_mp5sd_reload_gun +anm_reload_empty = mask_mp5sd_reload_empty_arms, mask_mp5sd_reload_empty_gun +anm_shot_l = mask_mp5sd_shoot_arms, mask_mp5sd_shoot_gun +anm_shots = mask_mp5sd_shoot_arms, mask_mp5sd_shoot_gun +anm_show = mask_mp5sd_draw_arms, mask_mp5sd_idle +anm_show_empty = mask_mp5sd_draw_arms, mask_mp5sd_idle +anm_switch_mode = mask_mp5sd_switchmode_arms, mask_mp5sd_idle +anm_reload_misfire = mask_mp5sd_unjam_arms, mask_mp5sd_unjam_gun +; anm_bore = mask_mp5sd_bore_arms, mask_mp5sd_idle +; anm_bore_empty = mask_mp5sd_bore_arms, mask_mp5sd_idle +; anm_ammo_check = mask_mp5sd_magcheck_arms, mask_mp5sd_magcheck_gun +; anm_ammo_check_empty = mask_mp5sd_magcheck_arms, mask_mp5sd_magcheck_gun + +![wpn_mp5sd_eot_hud] +aim_hud_offset_pos = -0.067212, 0.007467, -0.163749 +aim_hud_offset_pos_16x9 = -0.067212, 0.007467, -0.163749 +aim_hud_offset_rot = 0.009072, 0.01509, -0.031241 +aim_hud_offset_rot_16x9 = 0.009072, 0.01509, -0.031241 +!anm_shots + +![wpn_mp5sd_ac10632_hud] +aim_hud_offset_pos = -0.066999, 0.011159, -0.172284 +aim_hud_offset_pos_16x9 = -0.066999, 0.011159, -0.172284 +aim_hud_offset_rot = 0.009072, 0.01509, -0.031241 +aim_hud_offset_rot_16x9 = 0.009072, 0.01509, -0.031241 +!anm_shots + +![wpn_mp5sd_acog_hud] +aim_hud_offset_pos = -0.066999, 0.013988, -0.163749 +aim_hud_offset_pos_16x9 = -0.066999, 0.013988, -0.163749 +aim_hud_offset_rot = 0.009072, 0.01509, -0.031241 +aim_hud_offset_rot_16x9 = 0.009072, 0.01509, -0.031241 +!anm_shots + +![wpn_mp7] +use_alt_aim_hud = false + +![wpn_mp7_hud] +hands_orientation = 0.896, 1.03793, -0.817882 +hands_orientation_16x9 = 0.896, 1.03793, -0.817882 +hands_position = 0.042072, -0.024554, -0.041033 +hands_position_16x9 = 0.042072, -0.024554, -0.041033 +aim_hud_offset_pos = -0.059335, 0.011447, -0.187607 +aim_hud_offset_pos_16x9 = -0.059335, 0.011447, -0.187607 +aim_hud_offset_rot = 0.017876, 0.014878, -0.01278 +aim_hud_offset_rot_16x9 = 0.017876, 0.014878, -0.01278 +aim_hud_offset_alt_pos = -0.098911, -0.054562, -0.077973 +aim_hud_offset_alt_pos_16x9 = -0.098911, -0.054562, -0.077973 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +lowered_hud_offset_pos = 0.005332, -0.035562, -0.01196 +lowered_hud_offset_pos_16x9 = 0.005332, -0.035562, -0.01196 +lowered_hud_offset_rot = -0.026327, -0.285488, 0.680849 +lowered_hud_offset_rot_16x9 = -0.026327, -0.285488, 0.680849 +anm_hide = mask_mp7_holster_arms, mask_mp7_idle +anm_hide_empty = mask_mp7_holster_arms, mask_mp7_idle +anm_idle = mask_mp7_idle_arms, mask_mp7_idle +anm_idle_aim = mask_mp7_idle_ads_arms, mask_mp7_idle +anm_idle_aim_empty = mask_mp7_idle_ads_arms, mask_mp7_idle +anm_idle_aim_moving = mask_mp7_idle_ads_arms, mask_mp7_idle +anm_idle_aim_moving_crouch = mask_mp7_idle_ads_arms, mask_mp7_idle +anm_idle_aim_moving_crouch_empty = mask_mp7_idle_ads_arms, mask_mp7_idle +anm_idle_aim_moving_empty = mask_mp7_idle_ads_arms, mask_mp7_idle +anm_idle_empty = mask_mp7_idle_arms, mask_mp7_idle +anm_idle_moving = mask_mp7_walk_arms, mask_mp7_idle +anm_idle_moving_crouch = mask_mp7_walk_arms, mask_mp7_idle +anm_idle_moving_crouch_empty = mask_mp7_walk_arms, mask_mp7_idle +anm_idle_moving_empty = mask_mp7_walk_arms, mask_mp7_idle +anm_idle_sprint = mask_mp7_sprint_arms, mask_mp7_idle +anm_idle_sprint_empty = mask_mp7_sprint_arms, mask_mp7_idle +anm_reload = mask_mp7_reload_arms, mask_mp7_reload_gun +anm_reload_empty = mask_mp7_reload_empty_arms, mask_mp7_reload_empty_gun +anm_shot_l = mask_mp7_shoot_arms, mask_mp7_shoot_gun +anm_shots = mask_mp7_shoot_arms, mask_mp7_shoot_gun +anm_show = mask_mp7_draw_arms, mask_mp7_idle +anm_show_empty = mask_mp7_draw_arms, mask_mp7_idle +anm_switch_mode = mask_mp7_switchmode_arms, mask_mp7_idle +anm_reload_misfire = mask_mp7_unjam_arms, mask_mp7_unjam_gun +; anm_bore = mask_mp7_bore_arms, mask_mp7_idle +; anm_bore_empty = mask_mp7_bore_arms, mask_mp7_idle +; anm_ammo_check = mask_mp7_magcheck_arms, mask_mp7_magcheck_gun +; anm_ammo_check_empty = mask_mp7_bore_arms, mask_mp7_idle + +![wpn_mp7_ac10632_hud] +aim_hud_offset_pos = -0.059335, 0.016854, -0.187607 +aim_hud_offset_pos_16x9 = -0.059335, 0.016854, -0.187607 +aim_hud_offset_rot = 0.017876, 0.014878, -0.01278 +aim_hud_offset_rot_16x9 = 0.017876, 0.014878, -0.01278 +!anm_idle_aim +!anm_shots + +![wpn_mp7_acog_hud] +aim_hud_offset_pos = -0.059548, 0.007471, -0.187607 +aim_hud_offset_pos_16x9 = -0.059548, 0.007471, -0.187607 +aim_hud_offset_rot = 0.01816, 0.014878, -0.01278 +aim_hud_offset_rot_16x9 = 0.01816, 0.014878, -0.01278 +!anm_hide +!anm_idle +!anm_idle_aim +!anm_idle_moving +!anm_idle_sprint +!anm_reload +!anm_shots +!anm_show + +![wpn_mp7_c-more_hud] +aim_hud_offset_pos = -0.059335, 0.019683, -0.187607 +aim_hud_offset_pos_16x9 = -0.059335, 0.019683, -0.187607 +aim_hud_offset_rot = 0.017876, 0.014878, -0.01278 +aim_hud_offset_rot_16x9 = 0.017876, 0.014878, -0.01278 +!anm_idle_aim +!anm_shots + +![wpn_mp7_eot_hud] +aim_hud_offset_pos = -0.059548, 0.005483, -0.187607 +aim_hud_offset_pos_16x9 = -0.059548, 0.005483, -0.187607 +aim_hud_offset_rot = 0.017876, 0.014878, -0.01278 +aim_hud_offset_rot_16x9 = 0.017876, 0.014878, -0.01278 +!anm_idle_aim +!anm_shots + +![wpn_oc33_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.055231, 0.028683, -0.217941 +aim_hud_offset_pos_16x9 = -0.055231, 0.028683, -0.217941 +aim_hud_offset_rot = 0.011908, 0.029887, -0.000479 +aim_hud_offset_rot_16x9 = 0.011908, 0.029887, -0.000479 +anm_hide = mask_oc33_holster_arms, mask_oc33_idle +anm_hide_empty = mask_oc33_holster_arms, mask_oc33_idle_empty +anm_idle = mask_oc33_idle_arms, mask_oc33_idle +anm_idle_aim = mask_oc33_idle_ads_arms, mask_oc33_idle +anm_idle_aim_empty = mask_oc33_idle_ads_arms, mask_oc33_idle_empty +anm_idle_aim_moving = mask_oc33_idle_ads_arms, mask_oc33_idle +anm_idle_aim_moving_crouch = mask_oc33_idle_ads_arms, mask_oc33_idle +anm_idle_aim_moving_crouch_empty = mask_oc33_idle_ads_arms, mask_oc33_idle_empty +anm_idle_aim_moving_empty = mask_oc33_idle_ads_arms, mask_oc33_idle_empty +anm_idle_empty = mask_oc33_idle_arms, mask_oc33_idle_empty +anm_idle_moving = mask_oc33_walk_arms, mask_oc33_idle +anm_idle_moving_crouch = mask_oc33_walk_arms, mask_oc33_idle +anm_idle_moving_crouch_empty = mask_oc33_walk_arms, mask_oc33_idle_empty +anm_idle_moving_empty = mask_oc33_walk_arms, mask_oc33_idle_empty +anm_idle_sprint = mask_oc33_sprint_arms, mask_oc33_idle +anm_idle_sprint_empty = mask_oc33_sprint_arms, mask_oc33_idle_empty +anm_reload = mask_oc33_reload_arms, mask_oc33_reload_gun +anm_reload_empty = mask_oc33_reload_empty_arms, mask_oc33_reload_empty_gun +anm_shot_l = mask_oc33_shoot_arms, mask_oc33_shoot_last_gun +anm_shots = mask_oc33_shoot_arms, mask_oc33_shoot_gun +anm_show = mask_oc33_draw_arms, mask_oc33_idle +anm_show_empty = mask_oc33_draw_arms, mask_oc33_idle_empty +anm_reload_misfire = mask_oc33_unjam_arms, mask_oc33_unjam_gun +anm_switch_mode = mask_oc33_switchmode_arms, mask_oc33_idle +anm_switch_mode_empty = mask_oc33_switchmode_arms, mask_oc33_idle_empty +; anm_bore = mask_oc33_bore_arms, mask_oc33_idle +; anm_bore_empty = mask_oc33_bore_arms, mask_oc33_idle_empty +; anm_ammo_check = mask_oc33_magcheck_arms, mask_oc33_magcheck_gun +; anm_ammo_check_empty = mask_oc33_bore_arms, mask_oc33_idle_empty + + +![wpn_p90] +use_alt_aim_hud = false + +![wpn_p90_hud] +hands_orientation = 0.896, 1.03793, 0.21354 +hands_orientation_16x9 = 0.896, 1.03793, 0.21354 +hands_position = 0.043138, -0.022276, -0.038217 +hands_position_16x9 = 0.043138, -0.022276, -0.038217 +aim_hud_offset_pos = -0.061033, 0.010027, -0.220048 +aim_hud_offset_pos_16x9 = -0.061033, 0.010027, -0.220048 +aim_hud_offset_rot = 0.01248, 0.016582, 0.006942 +aim_hud_offset_rot_16x9 = 0.01248, 0.016582, 0.006942 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +lowered_hud_offset_pos = -0.010217, -0.018238, -0.01196 +lowered_hud_offset_pos_16x9 = -0.010217, -0.018238, -0.01196 +lowered_hud_offset_rot = -0.026327, -0.285488, 0.680849 +lowered_hud_offset_rot_16x9 = -0.026327, -0.285488, 0.680849 +anm_hide = mask_p90_holster_arms, mask_p90_idle +anm_hide_empty = mask_p90_holster_arms, mask_p90_idle +anm_idle = mask_p90_idle_arms, mask_p90_idle +anm_idle_aim = mask_p90_idle_ads_arms, mask_p90_idle +anm_idle_aim_empty = mask_p90_idle_ads_arms, mask_p90_idle +anm_idle_aim_moving = mask_p90_idle_ads_arms, mask_p90_idle +anm_idle_aim_moving_crouch = mask_p90_idle_ads_arms, mask_p90_idle +anm_idle_aim_moving_crouch_empty = mask_p90_idle_ads_arms, mask_p90_idle +anm_idle_aim_moving_empty = mask_p90_idle_ads_arms, mask_p90_idle +anm_idle_empty = mask_p90_idle_arms, mask_p90_idle +anm_idle_moving = mask_p90_walk_arms, mask_p90_idle +anm_idle_moving_crouch = mask_p90_walk_arms, mask_p90_idle +anm_idle_moving_crouch_empty = mask_p90_walk_arms, mask_p90_idle +anm_idle_moving_empty = mask_p90_walk_arms, mask_p90_idle +anm_idle_sprint = mask_p90_sprint_arms, mask_p90_idle +anm_idle_sprint_empty = mask_p90_sprint_arms, mask_p90_idle +anm_reload = mask_p90_reload_arms, mask_p90_reload_gun +anm_reload_empty = mask_p90_reload_empty_arms, mask_p90_reload_empty_gun +anm_shot_l = mask_p90_shoot_arms, mask_p90_shoot_gun +anm_shots = mask_p90_shoot_arms, mask_p90_shoot_gun +anm_show = mask_p90_draw_arms, mask_p90_idle +anm_show_empty = mask_p90_draw_arms, mask_p90_idle +anm_switch_mode = mask_p90_switchmode_arms, mask_p90_idle +anm_reload_misfire = mask_p90_unjam_arms, mask_p90_unjam_gun +; anm_bore = mask_p90_bore_arms, mask_p90_idle +; anm_bore_empty = mask_p90_bore_arms, mask_p90_idle +; anm_ammo_check = mask_p90_magcheck_arms, mask_p90_idle +; anm_ammo_check_empty = mask_p90_magcheck_arms, mask_p90_idle + + +![wpn_p90_hud] +shell_point = 0.858182, -0.480072, -0.050288 + +![wpn_p90_ac10632_hud] +aim_hud_offset_pos = -0.060607, -0.014116, -0.220048 +aim_hud_offset_pos_16x9 = -0.060607, -0.014116, -0.220048 +aim_hud_offset_rot = 0.01248, 0.016582, 0.006942 +aim_hud_offset_rot_16x9 = 0.01248, 0.016582, 0.006942 + +![wpn_p90_acog_hud] +aim_hud_offset_pos = -0.061246, -0.006162, -0.220048 +aim_hud_offset_pos_16x9 = -0.061246, -0.006162, -0.220048 +aim_hud_offset_rot = 0.01958, 0.016795, 0.006942 +aim_hud_offset_rot_16x9 = 0.01958, 0.016795, 0.006942 + +![wpn_p90_eot_hud] +aim_hud_offset_pos = -0.061033, -0.021247, -0.220048 +aim_hud_offset_pos_16x9 = -0.061033, -0.021247, -0.220048 +aim_hud_offset_rot = 0.01248, 0.016582, 0.006942 +aim_hud_offset_rot_16x9 = 0.01248, 0.016582, 0.006942 + +![wpn_pkm_hud] + hands_orientation = 1.039681, 1.194821, -0.100189 + hands_orientation_16x9 = 1.039681, 1.194821, -0.100189 + hands_position = 0.063176, -0.045384, 0.052211 + hands_position_16x9 = 0.063176, -0.045384, 0.052211 + + aim_hud_offset_pos = -0.078766, 0.021332, -0.14411 + aim_hud_offset_pos_16x9 = -0.078766, 0.021332, -0.14411 + aim_hud_offset_rot = 0.024292, 0.018259, -0.003768 + aim_hud_offset_rot_16x9 = 0.024292, 0.018259, -0.003768 + +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 + +gl_hud_offset_pos = -0.073797, -0.04621, -0.108975 +gl_hud_offset_pos_16x9 = -0.073797, -0.04621, -0.108975 +gl_hud_offset_rot = -0.096929, 0.017618, -0.004946 +gl_hud_offset_rot_16x9 = -0.096929, 0.017618, -0.004946 + +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 + +anm_hide = mask_pkm_holster_arms, mask_pkm_idle +anm_hide_empty = mask_pkm_holster_arms, mask_pkm_idle_empty +anm_idle = mask_pkm_idle_arms, mask_pkm_idle +anm_idle_aim = mask_pkm_idle_ads_arms, mask_pkm_idle +anm_idle_aim_empty = mask_pkm_idle_ads_arms, mask_pkm_idle_empty +anm_idle_aim_moving = mask_pkm_idle_ads_arms, mask_pkm_idle +anm_idle_aim_moving_crouch = mask_pkm_idle_ads_arms, mask_pkm_idle +anm_idle_aim_moving_crouch_empty = mask_pkm_idle_ads_arms, mask_pkm_idle_empty +anm_idle_aim_moving_empty = mask_pkm_idle_ads_arms, mask_pkm_idle_empty +anm_idle_empty = mask_pkm_idle_arms, mask_pkm_idle_empty +anm_idle_moving = mask_pkm_walk_arms, mask_pkm_idle +anm_idle_moving_crouch = mask_pkm_walk_arms, mask_pkm_idle +anm_idle_moving_crouch_empty = mask_pkm_walk_arms, mask_pkm_idle_empty +anm_idle_moving_empty = mask_pkm_walk_arms, mask_pkm_idle_empty +anm_idle_sprint = mask_pkm_sprint_arms, mask_pkm_idle +anm_idle_sprint_empty = mask_pkm_sprint_arms, mask_pkm_idle_empty +anm_reload = mask_pkm_reload_arms, mask_pkm_reload_gun +anm_reload_empty = mask_pkm_reload_empty_arms, mask_pkm_reload_empty_gun +anm_shot_l = mask_pkm_shoot_arms, mask_pkm_shoot_last_gun +anm_shots = mask_pkm_shoot_arms, mask_pkm_shoot_gun +anm_show = mask_pkm_draw_arms, mask_pkm_idle +anm_show_empty = mask_pkm_draw_arms, mask_pkm_idle_empty +anm_switch_mode = mask_pkm_switchmode_arms, mask_pkm_idle +anm_switch_mode_empty = mask_pkm_switchmode_arms, mask_pkm_idle_empty +anm_reload_misfire = mask_pkm_unjam_arms, mask_pkm_unjam_gun +anm_reload_misfire_empty = mask_pkm_unjam_arms, mask_pkm_unjam_empty_gun + +![wpn_pkm_zulus_hud] + aim_hud_offset_pos = -0.078873, 0.001875, -0.14411 + aim_hud_offset_pos_16x9 = -0.078873, 0.001875, -0.14411 + aim_hud_offset_rot = 0.024292, 0.018259, -0.003768 + aim_hud_offset_rot_16x9 = 0.024292, 0.018259, -0.003768 + + hands_orientation = 1.039681, 1.194821, -0.100189 + hands_orientation_16x9 = 1.039681, 1.194821, -0.100189 + hands_position = 0.063176, -0.045384, 0.052211 + hands_position_16x9 = 0.063176, -0.045384, 0.052211 + +![wpn_pkp_hud] + aim_hud_offset_pos = -0.079296, 0.022752, -0.14411 + aim_hud_offset_pos_16x9 = -0.079296, 0.022752, -0.14411 + aim_hud_offset_rot = 0.010731, 0.01863, -0.003839 + aim_hud_offset_rot_16x9 = 0.010731, 0.01863, -0.003839 + +![wpn_protecta_hud] +hands_orientation = 0.8952, 1.066729, 0.808726 +hands_orientation_16x9 = 0.8952, 1.066729, 0.808726 +hands_position = 0.049954, -0.021429, 0.039149 +hands_position_16x9 = 0.049954, -0.021429, 0.039149 +aim_hud_offset_pos = -0.072964, -0.018658, -0.090945 +aim_hud_offset_pos_16x9 = -0.072964, -0.018658, -0.090945 +aim_hud_offset_rot = -0.022452, 0.018499, 0.026717 +aim_hud_offset_rot_16x9 = -0.022452, 0.018499, 0.026717 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_reload_misfire = mask_striker_unjam_arms, mask_striker_unjam_gun +anm_add_cartridge = mask_striker_load_arms, mask_striker_load_gun +anm_close = mask_striker_close_arms, mask_striker_close_gun +anm_hide = mask_striker_holster_arms, mask_striker_idle +anm_idle = mask_striker_idle_arms, mask_striker_idle +anm_idle_aim = mask_striker_idle_ads_arms, mask_striker_idle +anm_idle_aim_moving = mask_striker_idle_ads_arms, mask_striker_idle +anm_idle_aim_moving_crouch = mask_striker_idle_ads_arms, mask_striker_idle +anm_idle_moving = mask_striker_walk_arms, mask_striker_idle +anm_idle_sprint = mask_striker_sprint_arms, mask_striker_idle +anm_open = mask_striker_open_arms, mask_striker_open_gun +anm_shots = mask_striker_shoot_arms, mask_striker_shoot_gun +anm_show = mask_striker_draw_arms, mask_striker_idle + +![wpn_protecta_aim_hud] +aim_hud_offset_pos = -0.073177, -0.001902, -0.090945 +aim_hud_offset_pos_16x9 = -0.073177, -0.001902, -0.090945 +aim_hud_offset_rot = 0.016462, 0.018499, 0.026717 +aim_hud_offset_rot_16x9 = 0.016462, 0.018499, 0.026717 + +![wpn_remington700] +use_aim_bullet = true + +![wpn_remington700_hud] +hands_orientation = 0.8352, 1.078466, -0.046709 +hands_orientation_16x9 = 0.8352, 1.078466, -0.046709 +hands_position = 0.056345, -0.02655, 0.021515 +hands_position_16x9 = 0.056345, -0.02655, 0.021515 +aim_hud_offset_pos = -0.068068, 0.014571, -0.192744 +aim_hud_offset_pos_16x9 = -0.068068, 0.014571, -0.192744 +aim_hud_offset_rot = 0.017592, 0.015091, 0.021867 +aim_hud_offset_rot_16x9 = 0.017592, 0.015091, 0.021867 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +lean_hud_offset_pos = 0, 0, 0 +lean_hud_offset_rot = 0, 0, 0 +anm_hide = mask_r700_holster_arms, mask_r700_idle +anm_hide_empty = mask_r700_holster_arms, mask_r700_idle +anm_idle = mask_r700_idle_arms, mask_r700_idle +anm_idle_aim = mask_r700_idle_ads_arms, mask_r700_idle +anm_idle_aim_empty = mask_r700_idle_ads_arms, mask_r700_idle +anm_idle_aim_moving = mask_r700_idle_ads_arms, mask_r700_idle +anm_idle_aim_moving_crouch = mask_r700_idle_ads_arms, mask_r700_idle +anm_idle_aim_moving_crouch_empty = mask_r700_idle_ads_arms, mask_r700_idle +anm_idle_aim_moving_empty = mask_r700_idle_ads_arms, mask_r700_idle +anm_idle_empty = mask_r700_idle_arms, mask_r700_idle +anm_idle_moving = mask_r700_walk_arms, mask_r700_idle +anm_idle_moving_crouch = mask_r700_walk_arms, mask_r700_idle +anm_idle_moving_crouch_empty = mask_r700_walk_arms, mask_r700_idle +anm_idle_moving_empty = mask_r700_walk_arms, mask_r700_idle +anm_idle_sprint = mask_r700_sprint_arms, mask_r700_idle +anm_idle_sprint_empty = mask_r700_sprint_arms, mask_r700_idle +anm_reload = mask_r700_reload_arms, mask_r700_reload_gun +anm_reload_empty = mask_r700_reload_empty_arms, mask_r700_reload_empty_gun +anm_shot_l = mask_r700_shoot_arms, mask_r700_shoot_gun +anm_shots = mask_r700_shoot_arms, mask_r700_shoot_gun +anm_show = mask_r700_draw_arms, mask_r700_idle +anm_show_empty = mask_r700_draw_arms, mask_r700_idle +anm_reload_misfire = mask_r700_unjam_arms, mask_r700_unjam_gun + +![wpn_scar] +use_alt_aim_hud = false + +![wpn_scar_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062138, -0.015172, -0.085628 +hands_position_16x9 = 0.062138, -0.015172, -0.085628 +aim_hud_offset_pos = -0.076546, 0.001949, -0.14467 +aim_hud_offset_pos_16x9 = -0.076546, 0.001949, -0.14467 +aim_hud_offset_rot = 0.010518, 0.01879, -0.003697 +aim_hud_offset_rot_16x9 = 0.010518, 0.01879, -0.003697 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.075927, -0.070353, -0.108975 +gl_hud_offset_pos_16x9 = -0.075927, -0.070353, -0.108975 +gl_hud_offset_rot = -0.096929, 0.017618, -0.004946 +gl_hud_offset_rot_16x9 = -0.096929, 0.017618, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_scar_holster_arms, mask_scar_idle +anm_hide_g = mask_scar_holster_launcher_arms, mask_scar_idle +anm_hide_w_gl = mask_scar_holster_wgl_arms, mask_scar_idle +anm_idle = mask_scar_idle_arms, mask_scar_idle +anm_idle_aim = mask_scar_idle_ads_arms, mask_scar_idle +anm_idle_aim_empty = mask_scar_idle_ads_arms, mask_scar_idle_empty +anm_idle_aim_moving = mask_scar_idle_ads_arms, mask_scar_idle +anm_idle_aim_moving_empty = mask_scar_idle_ads_arms, mask_scar_idle_empty +anm_idle_aim_moving_crouch = mask_scar_idle_ads_arms, mask_scar_idle +anm_idle_aim_moving_crouch_empty = mask_scar_idle_ads_arms, mask_scar_idle_empty +anm_idle_g = mask_scar_idle_launcher_arms, mask_scar_idle +anm_idle_g_aim = mask_scar_idle_ads_launcher_arms, mask_scar_idle +anm_idle_moving = mask_scar_walk_arms, mask_scar_idle +anm_idle_moving_crouch = mask_scar_walk_arms, mask_scar_idle +anm_idle_moving_crouch_g_aim = mask_scar_idle_ads_launcher_arms, mask_scar_idle +anm_idle_moving_crouch_w_gl_aim = mask_scar_idle_ads_wgl_arms, mask_scar_idle +anm_idle_moving_crouch_w_gl = mask_scar_walk_wgl_arms, mask_scar_idle +anm_idle_moving_g = mask_scar_walk_launcher_arms, mask_scar_idle +anm_idle_moving_g_aim = mask_scar_idle_ads_launcher_arms, mask_scar_idle +anm_idle_moving_w_gl = mask_scar_walk_wgl_arms, mask_scar_idle +anm_idle_moving_w_gl_aim = mask_scar_idle_ads_wgl_arms, mask_scar_idle +anm_idle_sprint = mask_scar_sprint_arms, mask_scar_idle +anm_idle_sprint_g = mask_scar_sprint_launcher_arms, mask_scar_idle +anm_idle_sprint_w_gl = mask_scar_sprint_wgl_arms, mask_scar_idle +anm_idle_w_gl = mask_scar_idle_wgl_arms, mask_scar_idle +anm_idle_w_gl_aim = mask_scar_idle_ads_wgl_arms, mask_scar_idle +anm_reload = mask_scar_reload_arms, mask_scar_reload_gun +anm_reload_empty = mask_scar_reload_empty_arms, mask_scar_reload_empty_gun +anm_reload_g = mask_scar_reload_launcher_arms, mask_scar_reload_launcher_gun +anm_reload_w_gl = mask_scar_reload_wgl_arms, mask_scar_reload_gun +anm_reload_empty_w_gl = mask_scar_reload_wgl_empty_arms, mask_scar_reload_empty_gun +anm_shots = mask_scar_shoot_arms, mask_scar_shoot_gun +anm_shot_l = mask_scar_shoot_arms, mask_scar_shoot_last_gun +anm_shot_w_gl_l = mask_scar_shoot_wgl_arms, mask_scar_shoot_last_gun +anm_shots_g = mask_scar_shoot_launcher_arms, mask_scar_idle +anm_shots_w_gl = mask_scar_shoot_wgl_arms, mask_scar_shoot_gun +anm_show = mask_scar_draw_arms, mask_scar_idle +anm_show_g = mask_scar_draw_launcher_arms, mask_scar_idle +anm_show_w_gl = mask_scar_draw_wgl_arms, mask_scar_idle +anm_switch = mask_scar_switchgun_arms, mask_scar_idle +anm_switch_g = mask_scar_switchgl_arms, mask_scar_idle +anm_reload_misfire = mask_scar_unjam_arms, mask_scar_unjam_gun +anm_reload_misfire_w_gl = mask_scar_unjam_wgl_arms, mask_scar_unjam_gun +anm_switch_mode = mask_scar_switchmode_arms, mask_scar_idle +anm_switch_mode_empty = mask_scar_switchmode_arms, mask_scar_idle_empty +anm_hide_empty = mask_scar_holster_arms, mask_scar_idle_empty +anm_idle_empty = mask_scar_idle_arms, mask_scar_idle_empty +anm_idle_moving_empty = mask_scar_walk_arms, mask_scar_idle_empty +anm_idle_moving_crouch_empty = mask_scar_walk_arms, mask_scar_idle_empty +anm_idle_sprint_empty = mask_scar_sprint_arms, mask_scar_idle_empty +anm_shots_empty = mask_scar_shoot_arms, mask_scar_shoot_last_gun +anm_show_empty = mask_scar_draw_arms, mask_scar_idle_empty +anm_idle_empty_w_gl = mask_scar_idle_wgl_arms, mask_scar_idle_empty +anm_hide_empty_w_gl = mask_scar_holster_wgl_arms, mask_scar_idle_empty +anm_idle_moving_crouch_empty_w_gl_aim = mask_scar_idle_ads_wgl_arms, mask_scar_idle_empty +anm_idle_moving_crouch_empty_w_gl = mask_scar_walk_wgl_arms, mask_scar_idle_empty +anm_idle_moving_empty_w_gl = mask_scar_walk_wgl_arms, mask_scar_idle_empty +anm_idle_moving_empty_w_gl_aim = mask_scar_idle_ads_wgl_arms, mask_scar_idle_empty +anm_idle_sprint_empty_w_gl = mask_scar_sprint_wgl_arms, mask_scar_idle_empty +anm_idle_empty_w_gl_aim = mask_scar_idle_ads_wgl_arms, mask_scar_idle_empty +anm_show_empty_w_gl = mask_scar_draw_wgl_arms, mask_scar_idle_empty + +![wpn_scar_ac10632_hud] +aim_hud_offset_pos = -0.076333, 0.003653, -0.14467 +aim_hud_offset_pos_16x9 = -0.076333, 0.003653, -0.14467 +aim_hud_offset_rot = 0.010518, 0.01879, -0.003697 +aim_hud_offset_rot_16x9 = 0.010518, 0.01879, -0.003697 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_scar_acog_hud] +aim_hud_offset_pos = -0.076759, 0.012757, -0.14467 +aim_hud_offset_pos_16x9 = -0.076759, 0.012757, -0.14467 +aim_hud_offset_rot = 0.023014, 0.019429, -0.003697 +aim_hud_offset_rot_16x9 = 0.023014, 0.019429, -0.003697 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_scar_eot_hud] +aim_hud_offset_pos = -0.076759, -0.000323, -0.14467 +aim_hud_offset_pos_16x9 = -0.076759, -0.000323, -0.14467 +aim_hud_offset_rot = 0.010518, 0.01879, -0.003697 +aim_hud_offset_rot_16x9 = 0.010518, 0.01879, -0.003697 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_scar_ac10632_sk1_hud] +aim_hud_offset_pos = -0.076333, 0.003653, -0.14467 +aim_hud_offset_pos_16x9 = -0.076333, 0.003653, -0.14467 +aim_hud_offset_rot = 0.009932, 0.018723, -0.003685 +aim_hud_offset_rot_16x9 = 0.009932, 0.018723, -0.003685 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_scar_acog_sk1_hud] +aim_hud_offset_pos = -0.076759, 0.012757, -0.14467 +aim_hud_offset_pos_16x9 = -0.076759, 0.012757, -0.14467 +aim_hud_offset_rot = 0.023014, 0.019429, -0.003697 +aim_hud_offset_rot_16x9 = 0.023014, 0.019429, -0.003697 + +![wpn_scar_eot_sk1_hud] +aim_hud_offset_pos = -0.076759, -0.000323, -0.14467 +aim_hud_offset_pos_16x9 = -0.076759, -0.000323, -0.14467 +aim_hud_offset_rot = 0.009932, 0.018723, 6e-06 +aim_hud_offset_rot_16x9 = 0.009932, 0.018723, 6e-06 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_scar_ac10632_sk2_hud] +aim_hud_offset_pos = -0.076333, 0.003653, -0.14467 +aim_hud_offset_pos_16x9 = -0.076333, 0.003653, -0.14467 +aim_hud_offset_rot = 0.009932, 0.018723, -0.003685 +aim_hud_offset_rot_16x9 = 0.009932, 0.018723, -0.003685 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_scar_acog_sk2_hud] +aim_hud_offset_pos = -0.076759, 0.012757, -0.14467 +aim_hud_offset_pos_16x9 = -0.076759, 0.012757, -0.14467 +aim_hud_offset_rot = 0.023014, 0.019429, -0.003697 +aim_hud_offset_rot_16x9 = 0.023014, 0.019429, -0.003697 + +![wpn_scar_eot_sk2_hud] +aim_hud_offset_pos = -0.076759, -0.000323, -0.14467 +aim_hud_offset_pos_16x9 = -0.076759, -0.000323, -0.14467 +aim_hud_offset_rot = 0.009932, 0.018723, 6e-06 +aim_hud_offset_rot_16x9 = 0.009932, 0.018723, 6e-06 +!anm_idle_aim +!anm_idle_w_gl_aim +!anm_shots +!anm_shots_w_gl + +![wpn_sig220_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.054379, 0.029535, -0.2 +aim_hud_offset_pos_16x9 = -0.054379, 0.029535, -0.2 +aim_hud_offset_rot = 0.014464, 0.029886, 0.000657 +aim_hud_offset_rot_16x9 = 0.014464, 0.029886, 0.000657 +anm_hide = mask_sig220_holster_arms, mask_sig220_idle +anm_hide_empty = mask_sig220_holster_arms, mask_sig220_idle_empty +anm_idle = mask_sig220_idle_arms, mask_sig220_idle +anm_idle_aim = mask_sig220_idle_ads_arms, mask_sig220_idle +anm_idle_aim_empty = mask_sig220_idle_ads_arms, mask_sig220_idle_empty +anm_idle_aim_moving = mask_sig220_idle_ads_arms, mask_sig220_idle +anm_idle_aim_moving_crouch = mask_sig220_idle_ads_arms, mask_sig220_idle +anm_idle_aim_moving_crouch_empty = mask_sig220_idle_ads_arms, mask_sig220_idle_empty +anm_idle_aim_moving_empty = mask_sig220_idle_ads_arms, mask_sig220_idle_empty +anm_idle_empty = mask_sig220_idle_arms, mask_sig220_idle_empty +anm_idle_moving = mask_sig220_walk_arms, mask_sig220_idle +anm_idle_moving_crouch = mask_sig220_walk_arms, mask_sig220_idle +anm_idle_moving_crouch_empty = mask_sig220_walk_arms, mask_sig220_idle_empty +anm_idle_moving_empty = mask_sig220_walk_arms, mask_sig220_idle_empty +anm_idle_sprint = mask_sig220_sprint_arms, mask_sig220_idle +anm_idle_sprint_empty = mask_sig220_sprint_arms, mask_sig220_idle_empty +anm_reload = mask_sig220_reload_arms, mask_sig220_reload_gun +anm_reload_empty = mask_sig220_reload_empty_arms, mask_sig220_reload_empty_gun +anm_shot_l = mask_sig220_shoot_arms, mask_sig220_shoot_last_gun +anm_shots = mask_sig220_shoot_arms, mask_sig220_shoot_gun +anm_show = mask_sig220_draw_arms, mask_sig220_idle +anm_show_empty = mask_sig220_draw_arms, mask_sig220_idle_empty +anm_reload_misfire = mask_sig220_unjam_arms, mask_sig220_unjam_gun +anm_ammo_check = mask_sig220_bore_arms, mask_sig220_idle +; anm_bore = mask_sig220_bore_arms, mask_sig220_idle +; anm_bore_empty = mask_sig220_bore_arms, mask_sig220_idle_empty +; anm_ammo_check = mask_sig220_magcheck_arms, mask_sig220_magcheck_gun +; anm_ammo_check_empty = mask_sig220_bore_arms, mask_sig220_idle_empty + +![wpn_sig550] +use_alt_aim_hud = false + +![wpn_sig550_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062138, -0.015172, -0.110641 +hands_position_16x9 = 0.062138, -0.015172, -0.110641 +aim_hud_offset_pos = -0.07399, 0.025521, -0.157183 +aim_hud_offset_pos_16x9 = -0.07399, 0.025521, -0.157183 +aim_hud_offset_rot = 0.02273, 0.018577, -0.003697 +aim_hud_offset_rot_16x9 = 0.02273, 0.018577, -0.003697 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.073371, -0.031711, -0.108975 +gl_hud_offset_pos_16x9 = -0.073371, -0.031711, -0.108975 +gl_hud_offset_rot = -0.050863, 0.017405, -0.004946 +gl_hud_offset_rot_16x9 = -0.050863, 0.017405, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_550_holster_arms, mask_550_idle +anm_hide_g = mask_550_holster_launcher_arms, mask_550_idle +anm_hide_w_gl = mask_550_holster_wgl_arms, mask_550_idle +anm_idle = mask_550_idle_arms, mask_550_idle +anm_idle_aim = mask_550_idle_ads_arms, mask_550_idle +anm_idle_aim_empty = mask_550_idle_ads_arms, mask_550_idle_empty +anm_idle_aim_moving = mask_550_idle_ads_arms, mask_550_idle +anm_idle_aim_moving_empty = mask_550_idle_ads_arms, mask_550_idle_empty +anm_idle_aim_moving_crouch = mask_550_idle_ads_arms, mask_550_idle +anm_idle_aim_moving_crouch_empty = mask_550_idle_ads_arms, mask_550_idle_empty +anm_idle_g = mask_550_idle_launcher_arms, mask_550_idle +anm_idle_g_aim = mask_550_idle_ads_launcher_arms, mask_550_idle +anm_idle_moving = mask_550_walk_arms, mask_550_idle +anm_idle_moving_crouch = mask_550_walk_arms, mask_550_idle +anm_idle_moving_crouch_g_aim = mask_550_idle_ads_launcher_arms, mask_550_idle +anm_idle_moving_crouch_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle +anm_idle_moving_crouch_w_gl = mask_550_walk_wgl_arms, mask_550_idle +anm_idle_moving_g = mask_550_walk_launcher_arms, mask_550_idle +anm_idle_moving_g_aim = mask_550_idle_ads_launcher_arms, mask_550_idle +anm_idle_moving_w_gl = mask_550_walk_wgl_arms, mask_550_idle +anm_idle_moving_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle +anm_idle_sprint = mask_550_sprint_arms, mask_550_idle +anm_idle_sprint_g = mask_550_sprint_launcher_arms, mask_550_idle +anm_idle_sprint_w_gl = mask_550_sprint_wgl_arms, mask_550_idle +anm_idle_w_gl = mask_550_idle_wgl_arms, mask_550_idle +anm_idle_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle +anm_reload = mask_550_reload_arms, mask_550_reload_gun +anm_reload_empty = mask_550_reload_empty_arms, mask_550_reload_empty_gun +anm_reload_g = mask_550_reload_launcher_arms, mask_550_reload_launcher_gun +anm_reload_w_gl = mask_550_reload_wgl_arms, mask_550_reload_gun +anm_reload_empty_w_gl = mask_550_reload_wgl_empty_arms, mask_550_reload_empty_gun +anm_shots = mask_550_shoot_arms, mask_550_shoot_gun +anm_shot_l = mask_550_shoot_arms, mask_550_shoot_last_gun +anm_shot_w_gl_l = mask_550_shoot_wgl_arms, mask_550_shoot_last_gun +anm_shots_g = mask_550_shoot_launcher_arms, mask_550_idle +anm_shots_w_gl = mask_550_shoot_wgl_arms, mask_550_shoot_gun +anm_show = mask_550_draw_arms, mask_550_idle +anm_show_g = mask_550_draw_launcher_arms, mask_550_idle +anm_show_w_gl = mask_550_draw_wgl_arms, mask_550_idle +anm_switch = mask_550_switchgun_arms, mask_550_idle +anm_switch_g = mask_550_switchgl_arms, mask_550_idle +anm_reload_misfire = mask_550_unjam_arms, mask_550_unjam_gun +anm_reload_misfire_w_gl = mask_550_unjam_wgl_arms, mask_550_unjam_gun +anm_switch_mode = mask_550_switchmode_arms, mask_550_idle +anm_switch_mode_empty = mask_550_switchmode_arms, mask_550_idle_empty +anm_hide_empty = mask_550_holster_arms, mask_550_idle_empty +anm_idle_empty = mask_550_idle_arms, mask_550_idle_empty +anm_idle_moving_empty = mask_550_walk_arms, mask_550_idle_empty +anm_idle_moving_crouch_empty = mask_550_walk_arms, mask_550_idle_empty +anm_idle_sprint_empty = mask_550_sprint_arms, mask_550_idle_empty +anm_shots_empty = mask_550_shoot_arms, mask_550_shoot_last_gun +anm_show_empty = mask_550_draw_arms, mask_550_idle_empty +anm_idle_empty_w_gl = mask_550_idle_wgl_arms, mask_550_idle_empty +anm_hide_empty_w_gl = mask_550_holster_wgl_arms, mask_550_idle_empty +anm_idle_moving_crouch_empty_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle_empty +anm_idle_moving_crouch_empty_w_gl = mask_550_walk_wgl_arms, mask_550_idle_empty +anm_idle_moving_empty_w_gl = mask_550_walk_wgl_arms, mask_550_idle_empty +anm_idle_moving_empty_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle_empty +anm_idle_sprint_empty_w_gl = mask_550_sprint_wgl_arms, mask_550_idle_empty +anm_idle_empty_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle_empty +anm_show_empty_w_gl = mask_550_draw_wgl_arms, mask_550_idle_empty +!anm_idle_moving_crouch_g + +![wpn_sig550_ac10632_hud] +aim_hud_offset_pos = -0.074203, 0.013025, -0.174522 +aim_hud_offset_pos_16x9 = -0.074203, 0.013025, -0.174522 +aim_hud_offset_rot = 0.022162, 0.018364, -0.003697 +aim_hud_offset_rot_16x9 = 0.022162, 0.018364, -0.003697 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_sig550_eot_hud] +aim_hud_offset_pos = -0.074203, 0.004789, -0.163721 +aim_hud_offset_pos_16x9 = -0.074203, 0.004789, -0.163721 +aim_hud_offset_rot = 0.022162, 0.018364, -0.003697 +aim_hud_offset_rot_16x9 = 0.022162, 0.018364, -0.003697 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_sig550_acog_hud] +item_visual = anomaly_weapons\wpn_sig550\wpn_sig550_acog_hud.og +aim_hud_offset_pos = -0.074416, 0.000811, -0.166853 +aim_hud_offset_pos_16x9 = -0.074416, 0.000811, -0.166853 +aim_hud_offset_rot = 0.023866, 0.019855, -0.003697 +aim_hud_offset_rot_16x9 = 0.023866, 0.019855, -0.003697 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_sig550_eot_sk4_hud] +!aim_hud_offset_pos +!aim_hud_offset_pos_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 + +![wpn_sig550_luckygun_hud] +aim_hud_offset_pos = -0.074629, 0.030633, -0.17454 +aim_hud_offset_pos_16x9 = -0.074629, 0.030633, -0.17454 +aim_hud_offset_rot = 0.035226, 0.018364, -0.001727 +aim_hud_offset_rot_16x9 = 0.035226, 0.018364, -0.001727 +gl_hud_offset_pos = -0.073797, -0.033415, -0.108975 +gl_hud_offset_pos_16x9 = -0.073797, -0.033415, -0.108975 +gl_hud_offset_rot = -0.046603, 0.016979, -0.004946 +gl_hud_offset_rot_16x9 = -0.046603, 0.016979, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +lean_hud_offset_pos = 0, 0, 0 +lean_hud_offset_rot = 0, 0, 0 +anm_hide = mask_550_holster_arms, mask_550_idle +anm_hide_g = mask_550_holster_launcher_arms, mask_550_idle +anm_hide_w_gl = mask_550_holster_wgl_arms, mask_550_idle +anm_idle = mask_550_idle_arms, mask_550_idle +anm_idle_aim = mask_550_idle_ads_arms, mask_550_idle +anm_idle_aim_empty = mask_550_idle_ads_arms, mask_550_idle_empty +anm_idle_aim_moving = mask_550_idle_ads_arms, mask_550_idle +anm_idle_aim_moving_empty = mask_550_idle_ads_arms, mask_550_idle_empty +anm_idle_aim_moving_crouch = mask_550_idle_ads_arms, mask_550_idle +anm_idle_aim_moving_crouch_empty = mask_550_idle_ads_arms, mask_550_idle_empty +anm_idle_g = mask_550_idle_launcher_arms, mask_550_idle +anm_idle_g_aim = mask_550_idle_ads_launcher_arms, mask_550_idle +anm_idle_moving = mask_550_walk_arms, mask_550_idle +anm_idle_moving_crouch = mask_550_walk_arms, mask_550_idle +anm_idle_moving_crouch_g_aim = mask_550_idle_ads_launcher_arms, mask_550_idle +anm_idle_moving_crouch_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle +anm_idle_moving_crouch_w_gl = mask_550_walk_wgl_arms, mask_550_idle +anm_idle_moving_g = mask_550_walk_launcher_arms, mask_550_idle +anm_idle_moving_g_aim = mask_550_idle_ads_launcher_arms, mask_550_idle +anm_idle_moving_w_gl = mask_550_walk_wgl_arms, mask_550_idle +anm_idle_moving_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle +anm_idle_sprint = mask_550_sprint_arms, mask_550_idle +anm_idle_sprint_g = mask_550_sprint_launcher_arms, mask_550_idle +anm_idle_sprint_w_gl = mask_550_sprint_wgl_arms, mask_550_idle +anm_idle_w_gl = mask_550_idle_wgl_arms, mask_550_idle +anm_idle_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle +anm_reload = mask_550_reload_arms, mask_550_reload_gun +anm_reload_empty = mask_550_reload_empty_arms, mask_550_reload_empty_gun +anm_reload_g = mask_550_reload_launcher_arms, mask_550_reload_launcher_gun +anm_reload_w_gl = mask_550_reload_wgl_arms, mask_550_reload_gun +anm_reload_empty_w_gl = mask_550_reload_wgl_empty_arms, mask_550_reload_empty_gun +anm_shots = mask_550_shoot_arms, mask_550_shoot_gun +anm_shots_empty_w_gl = mask_550_shoot_wgl_arms, mask_550_shoot_last_gun +anm_shots_g = mask_550_shoot_launcher_arms, mask_550_idle +anm_shots_w_gl = mask_550_shoot_wgl_arms, mask_550_shoot_gun +anm_show = mask_550_draw_arms, mask_550_idle +anm_show_g = mask_550_draw_launcher_arms, mask_550_idle +anm_show_w_gl = mask_550_draw_wgl_arms, mask_550_idle +anm_switch = mask_550_switchgun_arms, mask_550_idle +anm_switch_g = mask_550_switchgl_arms, mask_550_idle +anm_reload_misfire = mask_550_unjam_arms, mask_550_unjam_gun +anm_reload_misfire_w_gl = mask_550_unjam_wgl_arms, mask_550_unjam_gun +anm_switch_mode = mask_550_switchmode_arms, mask_550_idle +anm_switch_mode_empty = mask_550_switchmode_arms, mask_550_idle_empty +anm_hide_empty = mask_550_holster_arms, mask_550_idle_empty +anm_idle_empty = mask_550_idle_arms, mask_550_idle_empty +anm_idle_moving_empty = mask_550_walk_arms, mask_550_idle_empty +anm_idle_moving_crouch_empty = mask_550_walk_arms, mask_550_idle_empty +anm_idle_sprint_empty = mask_550_sprint_arms, mask_550_idle_empty +anm_shots_empty = mask_550_shoot_arms, mask_550_shoot_last_gun +anm_show_empty = mask_550_draw_arms, mask_550_idle_empty +anm_idle_empty_w_gl = mask_550_idle_wgl_arms, mask_550_idle_empty +anm_hide_empty_w_gl = mask_550_holster_wgl_arms, mask_550_idle_empty +anm_idle_moving_crouch_empty_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle_empty +anm_idle_moving_crouch_empty_w_gl = mask_550_walk_wgl_arms, mask_550_idle_empty +anm_idle_moving_empty_w_gl = mask_550_walk_wgl_arms, mask_550_idle_empty +anm_idle_moving_empty_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle_empty +anm_idle_sprint_empty_w_gl = mask_550_sprint_wgl_arms, mask_550_idle_empty +anm_idle_empty_w_gl_aim = mask_550_idle_ads_wgl_arms, mask_550_idle_empty +anm_show_empty_w_gl = mask_550_draw_wgl_arms, mask_550_idle_empty +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 + +![wpn_sig550_ac10632_luckygun_hud] +aim_hud_offset_pos = -0.074416, 0.017285, -0.184489 +aim_hud_offset_pos_16x9 = -0.074416, 0.017285, -0.184489 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_sig550_acog_luckygun_hud] +aim_hud_offset_pos = -0.074416, -5.2e-05, -0.200445 +aim_hud_offset_pos_16x9 = -0.074416, -5.2e-05, -0.200445 +aim_hud_offset_rot = 0.02415, 0.018151, -0.001727 +aim_hud_offset_rot_16x9 = 0.02415, 0.018151, -0.001727 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_sig550_eot_luckygun_hud] +aim_hud_offset_pos = -0.074842, 0.00847, -0.170838 +aim_hud_offset_pos_16x9 = -0.074842, 0.00847, -0.170838 +!hands_position +!hands_position_16x9 +!hands_orientation +!hands_orientation_16x9 +!aim_hud_offset_rot +!aim_hud_offset_rot_16x9 +!gl_hud_offset_pos +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot +!gl_hud_offset_rot_16x9 + +![wpn_sig550_sniper_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062138, -0.015172, -0.085628 +hands_position_16x9 = 0.062138, -0.015172, -0.085628 +aim_hud_offset_pos = -0.074416, 0.000811, -0.14467 +aim_hud_offset_pos_16x9 = -0.074416, 0.000811, -0.14467 +aim_hud_offset_rot = 0.022162, 0.018364, -0.003697 +aim_hud_offset_rot_16x9 = 0.022162, 0.018364, -0.003697 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 + +![wpn_sig552] +use_alt_aim_hud = false + +![wpn_sig552_hud] +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.062138, -0.015172, -0.110641 +hands_position_16x9 = 0.062138, -0.015172, -0.110641 +aim_hud_offset_pos = -0.074203, 0.026373, -0.157183 +aim_hud_offset_pos_16x9 = -0.074203, 0.026373, -0.157183 +aim_hud_offset_rot = 0.02131, 0.018577, -0.003697 +aim_hud_offset_rot_16x9 = 0.02131, 0.018577, -0.003697 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +gl_hud_offset_pos = -0.073797, -0.04621, -0.108975 +gl_hud_offset_pos_16x9 = -0.073797, -0.04621, -0.108975 +gl_hud_offset_rot = -0.096929, 0.017618, -0.004946 +gl_hud_offset_rot_16x9 = -0.096929, 0.017618, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_552_holster_arms, mask_552_idle +anm_hide_empty = mask_552_holster_arms, mask_552_idle_empty +anm_idle = mask_552_idle_arms, mask_552_idle +anm_idle_aim = mask_552_idle_ads_arms, mask_552_idle +anm_idle_aim_empty = mask_552_idle_ads_arms, mask_552_idle_empty +anm_idle_aim_moving = mask_552_idle_ads_arms, mask_552_idle +anm_idle_aim_moving_crouch = mask_552_idle_ads_arms, mask_552_idle +anm_idle_aim_moving_crouch_empty = mask_552_idle_ads_arms, mask_552_idle_empty +anm_idle_aim_moving_empty = mask_552_idle_ads_arms, mask_552_idle_empty +anm_idle_empty = mask_552_idle_arms, mask_552_idle_empty +anm_idle_moving = mask_552_walk_arms, mask_552_idle +anm_idle_moving_crouch = mask_552_walk_arms, mask_552_idle +anm_idle_moving_crouch_empty = mask_552_walk_arms, mask_552_idle_empty +anm_idle_moving_empty = mask_552_walk_arms, mask_552_idle_empty +anm_idle_sprint = mask_552_sprint_arms, mask_552_idle +anm_idle_sprint_empty = mask_552_sprint_arms, mask_552_idle_empty +anm_reload = mask_552_reload_arms, mask_552_reload_gun +anm_reload_empty = mask_552_reload_empty_arms, mask_552_reload_empty_gun +anm_shot_l = mask_552_shoot_arms, mask_552_shoot_last_gun +anm_shots = mask_552_shoot_arms, mask_552_shoot_gun +anm_show = mask_552_draw_arms, mask_552_idle +anm_show_empty = mask_552_draw_arms, mask_552_idle_empty +anm_switch_mode = mask_552_switchmode_arms, mask_552_idle +anm_switch_mode_empty = mask_552_switchmode_arms, mask_552_idle_empty +anm_reload_misfire = mask_552_unjam_arms, mask_552_unjam_gun + +![wpn_sig552_ac10632_hud] +aim_hud_offset_pos = -0.074202, 0.010202, -0.174554 +aim_hud_offset_pos_16x9 = -0.074202, 0.010202, -0.174554 +aim_hud_offset_rot = 0.020742, 0.01879, 0 +aim_hud_offset_rot_16x9 = 0.020742, 0.01879, 0 + +![wpn_sig552_acog_hud] +aim_hud_offset_pos = -0.074415, -0.003724, -0.174554 +aim_hud_offset_pos_16x9 = -0.074415, -0.003724, -0.174554 +aim_hud_offset_rot = 0.022446, 0.019855, 0 +aim_hud_offset_rot_16x9 = 0.022446, 0.019855, 0 + +![wpn_sig552_eot_hud] +aim_hud_offset_pos = -0.074415, 0.004226, -0.174554 +aim_hud_offset_pos_16x9 = -0.074415, 0.004226, -0.174554 +aim_hud_offset_rot = 0.023866, 0.019216, 0 +aim_hud_offset_rot_16x9 = 0.023866, 0.019216, 0 + +![wpn_spas12] +use_alt_aim_hud = false + +![wpn_spas12_hud] +hands_orientation = 0.8952, 1.066729, 0.808726 +hands_orientation_16x9 = 0.8952, 1.066729, 0.808726 +hands_position = 0.049954, -0.021429, 0.087485 +hands_position_16x9 = 0.049954, -0.021429, 0.087485 +aim_hud_offset_pos = -0.070408, 0.025079, -0.050567 +aim_hud_offset_pos_16x9 = -0.070408, 0.025079, -0.050567 +aim_hud_offset_rot = 0.008504, 0.015943, 0.013084 +aim_hud_offset_rot_16x9 = 0.008504, 0.015943, 0.013084 +aim_hud_offset_alt_pos = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_pos_16x9 = -0.100061, -0.051047, -0.1853 +aim_hud_offset_alt_rot = 0.016172, 0.02702, 0.708521 +aim_hud_offset_alt_rot_16x9 = 0.016172, 0.02702, 0.708521 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_reload_misfire = mask_spas12_unjam_arms, mask_spas12_unjam_gun +anm_add_cartridge = mask_spas12_load_arms, mask_spas12_load_gun +anm_close = mask_spas12_close_arms, mask_spas12_close_gun +anm_hide = mask_spas12_holster_arms, mask_spas12_idle +anm_idle = mask_spas12_idle_arms, mask_spas12_idle +anm_idle_aim = mask_spas12_idle_ads_arms, mask_spas12_idle +anm_idle_aim_moving = mask_spas12_idle_ads_arms, mask_spas12_idle +anm_idle_aim_moving_crouch = mask_spas12_idle_ads_arms, mask_spas12_idle +anm_idle_moving = mask_spas12_walk_arms, mask_spas12_idle +anm_idle_sprint = mask_spas12_sprint_arms, mask_spas12_idle +anm_open = mask_spas12_open_arms, mask_spas12_open_gun +anm_shots = mask_spas12_shoot_arms, mask_spas12_shoot_gun +anm_show = mask_spas12_draw_arms, mask_spas12_idle + +![wpn_sr25_hud] +item_orientation = 0, 0, 0 +hands_orientation = 1.0384, 1.194821, -0.100189 +hands_orientation_16x9 = 1.0384, 1.194821, -0.100189 +hands_position = 0.061925, -0.009776, -0.085628 +hands_position_16x9 = 0.061925, -0.009776, -0.085628 +aim_hud_offset_pos = -0.074202, 0.023266, -0.207766 +aim_hud_offset_pos_16x9 = -0.074202, 0.023266, -0.207766 +aim_hud_offset_rot = 0.01989, 0.018577, 0.002272 +aim_hud_offset_rot_16x9 = 0.01989, 0.018577, 0.002272 +gl_hud_offset_pos = -0.072519, -0.054164, -0.108975 +gl_hud_offset_pos_16x9 = -0.072519, -0.054164, -0.108975 +gl_hud_offset_rot = -0.052266, 0.014621, -0.004946 +gl_hud_offset_rot_16x9 = -0.052266, 0.014621, -0.004946 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_sr25_holster_arms, mask_sr25_idle +anm_hide_g = mask_sr25_holster_launcher_arms, mask_sr25_launcher_idle +anm_hide_w_gl = mask_sr25_holster_wgl_arms, mask_sr25_idle +anm_idle = mask_sr25_idle_arms, mask_sr25_idle +anm_idle_aim = mask_sr25_idle_ads_arms, mask_sr25_idle +anm_idle_aim_moving = mask_sr25_idle_ads_arms, mask_sr25_idle +anm_idle_aim_moving_crouch = mask_sr25_idle_ads_arms, mask_sr25_idle +anm_idle_g = mask_sr25_idle_launcher_arms, mask_sr25_launcher_idle +anm_idle_g_aim = mask_sr25_idle_ads_launcher_arms, mask_sr25_launcher_idle +anm_idle_moving = mask_sr25_walk_arms, mask_sr25_idle +anm_idle_moving_crouch = mask_sr25_walk_arms, mask_sr25_idle +anm_idle_moving_crouch_g_aim = mask_sr25_idle_ads_launcher_arms, mask_sr25_launcher_idle +anm_idle_moving_crouch_w_gl_aim = mask_sr25_idle_ads_wgl_arms, mask_sr25_idle +anm_idle_moving_crouch_w_gl = mask_sr25_walk_wgl_arms, mask_sr25_idle +anm_idle_moving_g = mask_sr25_walk_launcher_arms, mask_sr25_launcher_idle +anm_idle_moving_g_aim = mask_sr25_idle_ads_launcher_arms, mask_sr25_launcher_idle +anm_idle_moving_w_gl = mask_sr25_walk_wgl_arms, mask_sr25_idle +anm_idle_moving_w_gl_aim = mask_sr25_idle_ads_wgl_arms, mask_sr25_idle +anm_idle_sprint = mask_sr25_sprint_arms, mask_sr25_idle +anm_idle_sprint_g = mask_sr25_sprint_launcher_arms, mask_sr25_launcher_idle +anm_idle_sprint_w_gl = mask_sr25_sprint_wgl_arms, mask_sr25_idle +anm_idle_w_gl = mask_sr25_idle_wgl_arms, mask_sr25_idle +anm_idle_w_gl_aim = mask_sr25_idle_ads_wgl_arms, mask_sr25_idle +anm_reload = mask_sr25_reload_arms, mask_sr25_reload_gun +anm_reload_empty = mask_sr25_reload_empty_arms, mask_sr25_reload_empty_gun +anm_reload_g = mask_sr25_reload_launcher_arms, mask_sr25_reload_launcher_gun +anm_reload_w_gl = mask_sr25_reload_wgl_arms, mask_sr25_reload_gun +anm_reload_empty_w_gl = mask_sr25_reload_wgl_empty_arms, mask_sr25_reload_empty_gun +anm_shots = mask_sr25_shoot_arms, mask_sr25_shoot_gun +anm_shots_g = mask_sr25_shoot_launcher_arms, mask_sr25_launcher_idle +anm_shots_w_gl = mask_sr25_shoot_wgl_arms, mask_sr25_shoot_gun +anm_show = mask_sr25_draw_arms, mask_sr25_idle +anm_show_g = mask_sr25_draw_launcher_arms, mask_sr25_launcher_idle +anm_show_w_gl = mask_sr25_draw_wgl_arms, mask_sr25_idle +anm_switch = mask_sr25_switchgun2_arms, mask_sr25_switchgun2_gun +anm_switch_g = mask_sr25_switchgl2_arms, mask_sr25_switchgl2_gun +anm_reload_misfire = mask_sr25_unjam_arms, mask_sr25_unjam_gun +anm_reload_misfire_w_gl = mask_sr25_unjam_wgl_arms, mask_sr25_unjam_gun +anm_switch_mode = mask_sr25_switchmode_arms, mask_sr25_idle + +![wpn_trg] +rpm = 36 + +![wpn_trg_hud] +hands_orientation = 0.8352, 1.078466, -0.555507 +hands_orientation_16x9 = 0.8352, 1.078466, -0.555507 +hands_position = 0.056345, -0.02655, 0.031783 +hands_position_16x9 = 0.056345, -0.02655, 0.031783 +aim_hud_offset_pos = -0.070197, 0.001214, -0.199295 +aim_hud_offset_pos_16x9 = -0.070197, 0.001214, -0.199295 +aim_hud_offset_rot = 0.017592, 0.015091, 0.021867 +aim_hud_offset_rot_16x9 = 0.017592, 0.015091, 0.021867 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_trg_holster_arms, mask_trg_idle +anm_hide_empty = mask_trg_holster_arms, mask_trg_idle +anm_idle = mask_trg_idle_arms, mask_trg_idle +anm_idle_aim = mask_trg_idle_ads_arms, mask_trg_idle +anm_idle_aim_empty = mask_trg_idle_ads_arms, mask_trg_idle +anm_idle_aim_moving = mask_trg_idle_ads_arms, mask_trg_idle +anm_idle_aim_moving_crouch = mask_trg_idle_ads_arms, mask_trg_idle +anm_idle_aim_moving_crouch_empty = mask_trg_idle_ads_arms, mask_trg_idle +anm_idle_aim_moving_empty = mask_trg_idle_ads_arms, mask_trg_idle +anm_idle_empty = mask_trg_idle_arms, mask_trg_idle +anm_idle_moving = mask_trg_walk_arms, mask_trg_idle +anm_idle_moving_crouch = mask_trg_walk_arms, mask_trg_idle +anm_idle_moving_crouch_empty = mask_trg_walk_arms, mask_trg_idle +anm_idle_moving_empty = mask_trg_walk_arms, mask_trg_idle +anm_idle_sprint = mask_trg_sprint_arms, mask_trg_idle +anm_idle_sprint_empty = mask_trg_sprint_arms, mask_trg_idle +anm_reload = mask_trg_reload_arms, mask_trg_reload_gun +anm_reload_empty = mask_trg_reload_empty_arms, mask_trg_reload_empty_gun +anm_shot_l = mask_trg_shoot_arms, mask_trg_shoot_gun +anm_shots = mask_trg_shoot_arms, mask_trg_shoot_gun +anm_show = mask_trg_draw_arms, mask_trg_idle +anm_show_empty = mask_trg_draw_arms, mask_trg_idle +anm_switch_mode = mask_trg_switchmode_arms, mask_trg_idle +anm_reload_misfire = mask_trg_unjam_arms, mask_trg_unjam_gun +!gl_hud_offset_pos +!gl_hud_offset_rot + +![wpn_ump45] +use_alt_aim_hud = false + +![wpn_ump45_hud] +hands_orientation = 0.896, 1.03793, -0.694137 +hands_orientation_16x9 = 0.896, 1.03793, -0.694137 +hands_position = 0.050828, -0.029369, -0.070555 +hands_position_16x9 = 0.050828, -0.029369, -0.070555 +aim_hud_offset_pos = -0.067425, 0.019089, -0.163749 +aim_hud_offset_pos_16x9 = -0.067425, 0.019089, -0.163749 +aim_hud_offset_rot = 0.00538, 0.015942, -0.006536 +aim_hud_offset_rot_16x9 = 0.00538, 0.015942, -0.006536 +aim_hud_offset_alt_pos = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_pos_16x9 = -0.116378, -0.05655, -0.151283 +aim_hud_offset_alt_rot = 0.015909, 0.030719, 0.701131 +aim_hud_offset_alt_rot_16x9 = 0.015909, 0.030719, 0.701131 +lowered_hud_offset_pos = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_pos_16x9 = 0.003027, -0.026468, -0.01196 +lowered_hud_offset_rot = -0.068984, -0.399412, 0.680849 +lowered_hud_offset_rot_16x9 = -0.068984, -0.399412, 0.680849 +anm_hide = mask_ump_holster_arms, mask_ump_idle +anm_hide_empty = mask_ump_holster_arms, mask_ump_idle +anm_idle = mask_ump_idle_arms, mask_ump_idle +anm_idle_aim = mask_ump_idle_ads_arms, mask_ump_idle +anm_idle_aim_empty = mask_ump_idle_ads_arms, mask_ump_idle +anm_idle_aim_moving = mask_ump_idle_ads_arms, mask_ump_idle +anm_idle_aim_moving_crouch = mask_ump_idle_ads_arms, mask_ump_idle +anm_idle_aim_moving_crouch_empty = mask_ump_idle_ads_arms, mask_ump_idle +anm_idle_aim_moving_empty = mask_ump_idle_ads_arms, mask_ump_idle +anm_idle_empty = mask_ump_idle_arms, mask_ump_idle +anm_idle_moving = mask_ump_walk_arms, mask_ump_idle +anm_idle_moving_crouch = mask_ump_walk_arms, mask_ump_idle +anm_idle_moving_crouch_empty = mask_ump_walk_arms, mask_ump_idle +anm_idle_moving_empty = mask_ump_walk_arms, mask_ump_idle +anm_idle_sprint = mask_ump_sprint_arms, mask_ump_idle +anm_idle_sprint_empty = mask_ump_sprint_arms, mask_ump_idle +anm_reload = mask_ump_reload_arms, mask_ump_reload_gun +anm_reload_empty = mask_ump_reload_empty_arms, mask_ump_reload_empty_gun +anm_shot_l = mask_ump_shoot_arms, mask_ump_shoot_gun +anm_shots = mask_ump_shoot_arms, mask_ump_shoot_gun +anm_show = mask_ump_draw_arms, mask_ump_idle +anm_show_empty = mask_ump_draw_arms, mask_ump_idle +anm_switch_mode = mask_ump_switchmode_arms, mask_ump_idle +anm_reload_misfire = mask_ump_unjam_arms, mask_ump_unjam_gun +; anm_bore = mask_ump_bore_arms, mask_ump_idle +; anm_bore_empty = mask_ump_bore_arms, mask_ump_idle +; anm_ammo_check = mask_ump_magcheck_arms, mask_ump_magcheck_gun +; anm_ammo_check_empty = mask_ump_bore_arms, mask_ump_idle + +![wpn_ump45_ac10632_hud] +aim_hud_offset_pos = -0.067425, 0.00148, -0.142421 +aim_hud_offset_pos_16x9 = -0.067425, 0.00148, -0.142421 +aim_hud_offset_rot = 0.009072, 0.01509, -0.003946 +aim_hud_offset_rot_16x9 = 0.009072, 0.01509, -0.003946 + +![wpn_ump45_acog_hud] +aim_hud_offset_pos = -0.066999, 0.006876, -0.142421 +aim_hud_offset_pos_16x9 = -0.066999, 0.006876, -0.142421 +aim_hud_offset_rot = 0.012764, 0.015303, -0.003946 +aim_hud_offset_rot_16x9 = 0.012764, 0.015303, -0.003946 + +![wpn_ump45_eot_hud] +aim_hud_offset_pos = -0.067424, -0.00562, -0.142421 +aim_hud_offset_pos_16x9 = -0.067424, -0.00562, -0.142421 +aim_hud_offset_rot = 0.009072, 0.01509, -0.003946 +aim_hud_offset_rot_16x9 = 0.009072, 0.01509, -0.003946 + +![wpn_ump45_ac10632_sk1_hud] +aim_hud_offset_pos = -0.067425, 0.00148, -0.142421 +aim_hud_offset_pos_16x9 = -0.067425, 0.00148, -0.142421 +aim_hud_offset_rot = 0.009072, 0.01509, -0.003946 +aim_hud_offset_rot_16x9 = 0.009072, 0.01509, -0.003946 + +![wpn_ump45_acog_sk1_hud] +aim_hud_offset_pos = -0.066999, 0.006876, -0.142421 +aim_hud_offset_pos_16x9 = -0.066999, 0.006876, -0.142421 +aim_hud_offset_rot = 0.012764, 0.015303, -0.003946 +aim_hud_offset_rot_16x9 = 0.012764, 0.015303, -0.003946 + +![wpn_ump45_custom_acog] +aim_hud_offset_pos = -0.066999, 0.006876, -0.142421 +aim_hud_offset_pos_16x9 = -0.066999, 0.006876, -0.142421 +aim_hud_offset_rot = 0.012764, 0.015303, -0.003946 +aim_hud_offset_rot_16x9 = 0.012764, 0.015303, -0.003946 + +![wpn_ump45_eot_sk1_hud] +aim_hud_offset_pos = -0.067424, -0.00562, -0.142421 +aim_hud_offset_pos_16x9 = -0.067424, -0.00562, -0.142421 +aim_hud_offset_rot = 0.009072, 0.01509, -0.003946 +aim_hud_offset_rot_16x9 = 0.009072, 0.01509, -0.003946 + +![wpn_usas12_hud] +hands_orientation = 0.8352, 1.078466, 0.631676 +hands_orientation_16x9 = 0.8352, 1.078466, 0.631676 +hands_position = 0.056345, -0.02655, 0.055965 +hands_position_16x9 = 0.056345, -0.02655, 0.055965 +aim_hud_offset_pos = -0.073606, 0.003202, -0.158042 +aim_hud_offset_pos_16x9 = -0.073606, 0.003202, -0.158042 +aim_hud_offset_rot = 0.008788, 0.014878, 0.020163 +aim_hud_offset_rot_16x9 = 0.008788, 0.014878, 0.020163 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +anm_hide = mask_usas_holster_arms, mask_usas_idle +anm_hide_empty = mask_usas_holster_arms, mask_usas_idle +anm_idle = mask_usas_idle_arms, mask_usas_idle +anm_idle_aim = mask_usas_idle_ads_arms, mask_usas_idle +anm_idle_aim_empty = mask_usas_idle_ads_arms, mask_usas_idle +anm_idle_aim_moving = mask_usas_idle_ads_arms, mask_usas_idle +anm_idle_aim_moving_crouch = mask_usas_idle_ads_arms, mask_usas_idle +anm_idle_aim_moving_crouch_empty = mask_usas_idle_ads_arms, mask_usas_idle +anm_idle_aim_moving_empty = mask_usas_idle_ads_arms, mask_usas_idle +anm_idle_empty = mask_usas_idle_arms, mask_usas_idle +anm_idle_moving = mask_usas_walk_arms, mask_usas_idle +anm_idle_moving_crouch = mask_usas_walk_arms, mask_usas_idle +anm_idle_moving_crouch_empty = mask_usas_walk_arms, mask_usas_idle +anm_idle_moving_empty = mask_usas_walk_arms, mask_usas_idle +anm_idle_sprint = mask_usas_sprint_arms, mask_usas_idle +anm_idle_sprint_empty = mask_usas_sprint_arms, mask_usas_idle +anm_reload = mask_usas_reload_arms, mask_usas_reload_gun +anm_reload_empty = mask_usas_reload_empty_arms, mask_usas_reload_empty_gun +anm_shot_l = mask_usas_shoot_arms, mask_usas_shoot_gun +anm_shots = mask_usas_shoot_arms, mask_usas_shoot_gun +anm_show = mask_usas_draw_arms, mask_usas_idle +anm_show_empty = mask_usas_draw_arms, mask_usas_idle +anm_switch_mode = mask_usas_switchmode_arms, mask_usas_idle +anm_reload_misfire = mask_usas_unjam_arms, mask_usas_unjam_gun +!gl_hud_offset_pos_16x9 +!gl_hud_offset_rot_16x9 + +![wpn_usp45_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.054592, 0.028399, -0.2 +aim_hud_offset_pos_16x9 = -0.054592, 0.028399, -0.2 +aim_hud_offset_rot = 0.016452, 0.029461, 0.000657 +aim_hud_offset_rot_16x9 = 0.016452, 0.029461, 0.000657 +anm_hide = mask_usp_holster_arms, mask_usp_idle +anm_hide_empty = mask_usp_holster_arms, mask_usp_idle_empty +anm_idle = mask_usp_idle_arms, mask_usp_idle +anm_idle_aim = mask_usp_idle_ads_arms, mask_usp_idle +anm_idle_aim_empty = mask_usp_idle_ads_arms, mask_usp_idle_empty +anm_idle_aim_moving = mask_usp_idle_ads_arms, mask_usp_idle +anm_idle_aim_moving_crouch = mask_usp_idle_ads_arms, mask_usp_idle +anm_idle_aim_moving_crouch_empty = mask_usp_idle_ads_arms, mask_usp_idle_empty +anm_idle_aim_moving_empty = mask_usp_idle_ads_arms, mask_usp_idle_empty +anm_idle_empty = mask_usp_idle_arms, mask_usp_idle_empty +anm_idle_moving = mask_usp_walk_arms, mask_usp_idle +anm_idle_moving_crouch = mask_usp_walk_arms, mask_usp_idle +anm_idle_moving_crouch_empty = mask_usp_walk_arms, mask_usp_idle_empty +anm_idle_moving_empty = mask_usp_walk_arms, mask_usp_idle_empty +anm_idle_sprint = mask_usp_sprint_arms, mask_usp_idle +anm_idle_sprint_empty = mask_usp_sprint_arms, mask_usp_idle_empty +anm_reload = mask_usp_reload_arms, mask_usp_reload_gun +anm_reload_empty = mask_usp_reload_empty_arms, mask_usp_reload_empty_gun +anm_shot_l = mask_usp_shoot_arms, mask_usp_shoot_last_gun +anm_shots = mask_usp_shoot_arms, mask_usp_shoot_gun +anm_show = mask_usp_draw_arms, mask_usp_idle +anm_show_empty = mask_usp_draw_arms, mask_usp_idle_empty +anm_reload_misfire = mask_usp_unjam_arms, mask_usp_unjam_gun +; anm_bore = mask_usp_bore_arms, mask_usp_idle +; anm_bore_empty = mask_usp_bore_arms, mask_usp_idle_empty +; anm_ammo_check = mask_usp_magcheck_arms, mask_usp_magcheck_gun +; anm_ammo_check_empty = mask_usp_bore_arms, mask_usp_idle_empty + +![wpn_usp_match_hud] +aim_hud_offset_pos = -0.054379, 0.033795, -0.2 +aim_hud_offset_pos_16x9 = -0.054379, 0.033795, -0.2 +aim_hud_offset_rot = 0.018724, 0.029461, 0.000657 +aim_hud_offset_rot_16x9 = 0.018724, 0.029461, 0.000657 + +![wpn_wa2000] +rpm = 125 +use_aim_bullet = true + +![wpn_wa2000_hud] +hands_orientation = 0.8352, 1.078466, 0.631676 +hands_orientation_16x9 = 0.8352, 1.078466, 0.631676 +hands_position = 0.056132, -0.03252, 0.049136 +hands_position_16x9 = 0.056132, -0.03252, 0.049136 +aim_hud_offset_pos = -0.069985, 0.001753, -0.21323 +aim_hud_offset_pos_16x9 = -0.069985, 0.001753, -0.21323 +aim_hud_offset_rot = 0.017592, 0.014878, 0.017607 +aim_hud_offset_rot_16x9 = 0.017592, 0.014878, 0.017607 +lowered_hud_offset_pos = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_pos_16x9 = 0.002268, -0.028712, 0.005698 +lowered_hud_offset_rot = 0.032564, -0.305277, 0.55196 +lowered_hud_offset_rot_16x9 = 0.032564, -0.305277, 0.55196 +gl_hud_offset_pos = 0, 0, 0 +gl_hud_offset_rot = 0, 0, 0 +anm_hide = mask_w2k_holster_arms, mask_w2k_idle +anm_hide_empty = mask_w2k_holster_arms, mask_w2k_idle +anm_idle = mask_w2k_idle_arms, mask_w2k_idle +anm_idle_aim = mask_w2k_idle_ads_arms, mask_w2k_idle +anm_idle_aim_empty = mask_w2k_idle_ads_arms, mask_w2k_idle +anm_idle_aim_moving = mask_w2k_idle_ads_arms, mask_w2k_idle +anm_idle_aim_moving_crouch = mask_w2k_idle_ads_arms, mask_w2k_idle +anm_idle_aim_moving_crouch_empty = mask_w2k_idle_ads_arms, mask_w2k_idle +anm_idle_aim_moving_empty = mask_w2k_idle_ads_arms, mask_w2k_idle +anm_idle_empty = mask_w2k_idle_arms, mask_w2k_idle +anm_idle_moving = mask_w2k_walk_arms, mask_w2k_idle +anm_idle_moving_crouch = mask_w2k_walk_arms, mask_w2k_idle +anm_idle_moving_crouch_empty = mask_w2k_walk_arms, mask_w2k_idle +anm_idle_moving_empty = mask_w2k_walk_arms, mask_w2k_idle +anm_idle_sprint = mask_w2k_sprint_arms, mask_w2k_idle +anm_idle_sprint_empty = mask_w2k_sprint_arms, mask_w2k_idle +anm_reload = mask_w2k_reload_arms, mask_w2k_reload_gun +anm_reload_empty = mask_w2k_reload_empty_arms, mask_w2k_reload_empty_gun +anm_shot_l = mask_w2k_shoot_arms, mask_w2k_shoot_gun +anm_shots = mask_w2k_shoot_arms, mask_w2k_shoot_gun +anm_show = mask_w2k_draw_arms, mask_w2k_idle +anm_show_empty = mask_w2k_draw_arms, mask_w2k_idle +anm_switch_mode = mask_w2k_switchmode_arms, mask_w2k_idle +anm_reload_misfire = mask_w2k_unjam_arms, mask_w2k_unjam_gun + +![wpn_walther_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +hands_orientation = 1.7112, 0.901851, -0.262217 +hands_orientation_16x9 = 1.7112, 0.901851, -0.262217 +hands_position = 0.060237, -0.048682, -0.018523 +hands_position_16x9 = 0.060237, -0.048682, -0.018523 +lowered_hud_offset_pos_16x9 = 0.017258, 0.066488, 0 +lowered_hud_offset_rot_16x9 = 0.305961, -0.073337, 0.1 +aim_hud_offset_pos = -0.054166, 0.027263, -0.2 +aim_hud_offset_pos_16x9 = -0.054166, 0.027263, -0.2 +aim_hud_offset_rot = 0.01276, 0.029887, 0.000657 +aim_hud_offset_rot_16x9 = 0.01276, 0.029887, 0.000657 +anm_hide = mask_p99_holster_arms, mask_p99_idle +anm_hide_empty = mask_p99_holster_arms, mask_p99_idle_empty +anm_idle = mask_p99_idle_arms, mask_p99_idle +anm_idle_aim = mask_p99_idle_ads_arms, mask_p99_idle +anm_idle_aim_empty = mask_p99_idle_ads_arms, mask_p99_idle_empty +anm_idle_aim_moving = mask_p99_idle_ads_arms, mask_p99_idle +anm_idle_aim_moving_crouch = mask_p99_idle_ads_arms, mask_p99_idle +anm_idle_aim_moving_crouch_empty = mask_p99_idle_ads_arms, mask_p99_idle_empty +anm_idle_aim_moving_empty = mask_p99_idle_ads_arms, mask_p99_idle_empty +anm_idle_empty = mask_p99_idle_arms, mask_p99_idle_empty +anm_idle_moving = mask_p99_walk_arms, mask_p99_idle +anm_idle_moving_crouch = mask_p99_walk_arms, mask_p99_idle +anm_idle_moving_crouch_empty = mask_p99_walk_arms, mask_p99_idle_empty +anm_idle_moving_empty = mask_p99_walk_arms, mask_p99_idle_empty +anm_idle_sprint = mask_p99_sprint_arms, mask_p99_idle +anm_idle_sprint_empty = mask_p99_sprint_arms, mask_p99_idle_empty +anm_reload = mask_p99_reload_arms, mask_p99_reload_gun +anm_reload_empty = mask_p99_reload_empty_arms, mask_p99_reload_empty_gun +anm_shot_l = mask_p99_shoot_arms, mask_p99_shoot_last_gun +anm_shots = mask_p99_shoot_arms, mask_p99_shoot_gun +anm_show = mask_p99_draw_arms, mask_p99_idle +anm_show_empty = mask_p99_draw_arms, mask_p99_idle_empty +anm_reload_misfire = mask_p99_unjam_arms, mask_p99_unjam_gun +; anm_bore = mask_p99_bore_arms, mask_p99_idle +; anm_bore_empty = mask_p99_bore_arms, mask_p99_idle_empty +; anm_ammo_check = mask_p99_magcheck_arms, mask_p99_magcheck_gun +; anm_ammo_check_empty = mask_p99_bore_arms, mask_p99_idle_empty + +![wpn_walther_sk1_hud] +item_position = 0, 0, 0 +item_orientation = 0, 0, 0 +aim_hud_offset_pos = -0.054379, 0.022719, -0.2 +aim_hud_offset_pos_16x9 = -0.054379, 0.022719, -0.2 +aim_hud_offset_rot = 0.005376, 0.030313, 0.000657 +aim_hud_offset_rot_16x9 = 0.005376, 0.030313, 0.000657 + +![wpn_binoc] +!scope_dynamic_zoom + +![wpn_binoc_inv] +scope_dynamic_zoom = off + +![wpn_dynamo_hand] +use_aim_bullet = true + +![stationary_mgun] +use_aim_bullet = true + diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_wpn_sd_upgraded_sounds_jsrs_4_0_patch_dltx.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_wpn_sd_upgraded_sounds_jsrs_4_0_patch_dltx.ltx new file mode 100644 index 000000000..44df153bd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_wpn_sd_upgraded_sounds_jsrs_4_0_patch_dltx.ltx @@ -0,0 +1,3 @@ +![wpn_bolt_sil_upgraded] +snd_5_layer = weapons\sv98\bolt + diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_wpn_sniper_sounds_jsrs_4_0_patch_dltx.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_wpn_sniper_sounds_jsrs_4_0_patch_dltx.ltx new file mode 100644 index 000000000..7bb11aedc --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/configs/mod_system_wpn_sniper_sounds_jsrs_4_0_patch_dltx.ltx @@ -0,0 +1,24 @@ +![wpn_m98_snd_shoot] +snd_8_layer = weapons\sv98\bolt + +![wpn_m98_snd_shoot_actor] +snd_6_layer = weapons\sv98\bolt + +![wpn_m24_snd_shoot] +snd_8_layer = weapons\sv98\bolt + +![wpn_m24_snd_shoot_actor] +snd_6_layer = weapons\sv98\bolt + +![wpn_trg_snd_shoot] +snd_8_layer = weapons\sv98\bolt + +![wpn_trg_snd_shoot_actor] +snd_6_layer = weapons\sv98\bolt + +![wpn_l96_snd_shoot] +snd_8_layer = weapons\sv98\bolt + +![wpn_l96_snd_shoot_actor] +snd_6_layer = weapons\sv98\bolt + diff --git a/mods/MRAA + Blindside Military Pack/gamedata/configs/unlocalizers/unlocalizer_mag_check.ltx b/mods/MRAA + Blindside Military Pack/gamedata/configs/unlocalizers/unlocalizer_mag_check.ltx new file mode 100644 index 000000000..5f79c0d41 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/configs/unlocalizers/unlocalizer_mag_check.ltx @@ -0,0 +1,2 @@ +[ammo_check_mcm] +busy_hands_fix \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_abakan_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_abakan_hud_animation.omf new file mode 100644 index 000000000..61c405bc6 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_abakan_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ace21_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ace21_hud_animation.omf new file mode 100644 index 000000000..9d221dc5f Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ace21_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_aek971_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_aek971_hud_animation.omf new file mode 100644 index 000000000..94ddb7044 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_aek971_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak102_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak102_hud_animation.omf new file mode 100644 index 000000000..d1cf93736 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak102_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak104_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak104_hud_animation.omf new file mode 100644 index 000000000..386702816 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak104_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak105_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak105_hud_animation.omf new file mode 100644 index 000000000..a800f1876 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak105_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak_hud_animation.omf new file mode 100644 index 000000000..208b8bc50 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ak_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ash12_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ash12_hud_animation.omf new file mode 100644 index 000000000..d728e4e38 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ash12_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_aug_a1_new_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_aug_a1_new_hud_animation.omf new file mode 100644 index 000000000..0d3cde78e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_aug_a1_new_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_beretta92fs_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_beretta92fs_hud_animation.omf new file mode 100644 index 000000000..ae626eb37 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_beretta92fs_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_colt1911_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_colt1911_hud_animation.omf new file mode 100644 index 000000000..d8975e3aa Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_colt1911_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_cz75_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_cz75_hud_animation.omf new file mode 100644 index 000000000..699f42cca Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_cz75_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_cz75a_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_cz75a_hud_animation.omf new file mode 100644 index 000000000..0480b26de Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_cz75a_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_desert_eagle_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_desert_eagle_hud_animation.omf new file mode 100644 index 000000000..e5878ca56 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_desert_eagle_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fal_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fal_hud_animation.omf new file mode 100644 index 000000000..580a68866 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fal_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_famas_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_famas_hud_animation.omf new file mode 100644 index 000000000..328bda348 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_famas_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fn2000_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fn2000_hud_animation.omf new file mode 100644 index 000000000..b9155640e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fn2000_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fn57_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fn57_hud_animation.omf new file mode 100644 index 000000000..c937e8d28 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fn57_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fnc_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fnc_hud_animation.omf new file mode 100644 index 000000000..7d47af03e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fnc_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fnp45_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fnp45_hud_animation.omf new file mode 100644 index 000000000..8cc19a95e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fnp45_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fort500_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fort500_hud_animation.omf new file mode 100644 index 000000000..646ecf218 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_fort500_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g36k_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g36k_hud_animation.omf new file mode 100644 index 000000000..553952f9e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g36k_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g3_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g3_hud_animation.omf new file mode 100644 index 000000000..7b6e6b2c3 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g3_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g3sg1_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g3sg1_hud_animation.omf new file mode 100644 index 000000000..6262314cf Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g3sg1_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g43_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g43_hud_animation.omf new file mode 100644 index 000000000..be51f44b6 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_g43_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_galil_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_galil_hud_animation.omf new file mode 100644 index 000000000..9975f2ff8 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_galil_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_glock_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_glock_hud_animation.omf new file mode 100644 index 000000000..283187d68 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_glock_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_gsh18_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_gsh18_hud_animation.omf new file mode 100644 index 000000000..85819d465 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_gsh18_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_hk416_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_hk416_hud_animation.omf new file mode 100644 index 000000000..c8a93f9b0 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_hk416_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_hpsa_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_hpsa_hud_animation.omf new file mode 100644 index 000000000..455a27af5 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_hpsa_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_kar98k_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_kar98k_hud_animation.omf new file mode 100644 index 000000000..b57f071a5 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_kar98k_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_l96_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_l96_hud_animation.omf new file mode 100644 index 000000000..3e0ca137f Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_l96_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_lr300_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_lr300_hud_animation.omf new file mode 100644 index 000000000..a062de949 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_lr300_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m16_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m16_hud_animation.omf new file mode 100644 index 000000000..31378155a Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m16_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m16a2_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m16a2_hud_animation.omf new file mode 100644 index 000000000..60b6e3c45 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m16a2_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m24_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m24_hud_animation.omf new file mode 100644 index 000000000..298713500 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m24_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m4_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m4_hud_animation.omf new file mode 100644 index 000000000..61f0b78d8 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m4_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m4a1_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m4a1_hud_animation.omf new file mode 100644 index 000000000..edb38c279 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m4a1_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m82_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m82_hud_animation.omf new file mode 100644 index 000000000..46345060e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m82_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m98b_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m98b_hud_animation.omf new file mode 100644 index 000000000..03bfa0c85 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_m98b_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mk14_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mk14_hud_animation.omf new file mode 100644 index 000000000..8a6975a35 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mk14_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mosin_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mosin_hud_animation.omf new file mode 100644 index 000000000..6b8e8a16d Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mosin_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mossberg590_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mossberg590_hud_animation.omf new file mode 100644 index 000000000..8d510e4c0 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mossberg590_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp133_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp133_hud_animation.omf new file mode 100644 index 000000000..55366255a Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp133_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp153_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp153_hud_animation.omf new file mode 100644 index 000000000..e834eee2e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp153_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp5_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp5_hud_animation.omf new file mode 100644 index 000000000..4ea04880f Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp5_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp5sd_hud_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp5sd_hud_hud_animation.omf new file mode 100644 index 000000000..d029326a4 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp5sd_hud_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp7_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp7_hud_animation.omf new file mode 100644 index 000000000..fa65e471d Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_mp7_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_oc33_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_oc33_hud_animation.omf new file mode 100644 index 000000000..1fe8923a6 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_oc33_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p220_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p220_hud_animation.omf new file mode 100644 index 000000000..b570d0ce6 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p220_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p90_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p90_hud_animation.omf new file mode 100644 index 000000000..1d48bca76 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p90_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p99_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p99_hud_animation.omf new file mode 100644 index 000000000..dccd0212b Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_p99_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_pkm_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_pkm_hud_animation.omf new file mode 100644 index 000000000..2283d1a74 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_pkm_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_protecta_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_protecta_hud_animation.omf new file mode 100644 index 000000000..7ee6662e1 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_protecta_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_remington700_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_remington700_hud_animation.omf new file mode 100644 index 000000000..1a8bdaa62 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_remington700_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_scar_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_scar_hud_animation.omf new file mode 100644 index 000000000..d64b7d322 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_scar_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sig550_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sig550_hud_animation.omf new file mode 100644 index 000000000..247f31ade Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sig550_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sig552_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sig552_hud_animation.omf new file mode 100644 index 000000000..64028228e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sig552_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_spas12_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_spas12_hud_animation.omf new file mode 100644 index 000000000..56fd771af Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_spas12_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sr25_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sr25_hud_animation.omf new file mode 100644 index 000000000..7df640a1f Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_sr25_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_trg_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_trg_hud_animation.omf new file mode 100644 index 000000000..126ab7ddb Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_trg_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ump45_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ump45_hud_animation.omf new file mode 100644 index 000000000..0fe393b69 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_ump45_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_usas12_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_usas12_hud_animation.omf new file mode 100644 index 000000000..4fc98495a Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_usas12_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_usp45_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_usp45_hud_animation.omf new file mode 100644 index 000000000..e7936cefb Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_usp45_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_wa2000_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_wa2000_hud_animation.omf new file mode 100644 index 000000000..55e6bc27b Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_animation/wpn_wa2000_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ace21_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ace21_hud_animation.omf new file mode 100644 index 000000000..c1fcaaeb0 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ace21_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak102_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak102_hud_animation.omf new file mode 100644 index 000000000..48b04f46c Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak102_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak104_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak104_hud_animation.omf new file mode 100644 index 000000000..03d6943a7 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak104_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak105_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak105_hud_animation.omf new file mode 100644 index 000000000..c37c95721 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak105_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak_hud_animation.omf new file mode 100644 index 000000000..91e378295 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ak_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ash12_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ash12_hud_animation.omf new file mode 100644 index 000000000..a193b5807 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ash12_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_aug_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_aug_hud_animation.omf new file mode 100644 index 000000000..ff71cfd91 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_aug_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_beretta_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_beretta_hud_animation.omf new file mode 100644 index 000000000..e2d64a85c Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_beretta_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_colt_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_colt_hud_animation.omf new file mode 100644 index 000000000..41196b50c Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_colt_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_cz75_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_cz75_hud_animation.omf new file mode 100644 index 000000000..62b4ea856 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_cz75_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_desert_eagle_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_desert_eagle_hud_animation.omf new file mode 100644 index 000000000..e4f4bff90 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_desert_eagle_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fal_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fal_hud_animation.omf new file mode 100644 index 000000000..3ee0197a1 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fal_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_famas_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_famas_hud_animation.omf new file mode 100644 index 000000000..aa8fd0097 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_famas_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fn2000_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fn2000_hud_animation.omf new file mode 100644 index 000000000..d6f4fbb3d Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fn2000_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fn57_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fn57_hud_animation.omf new file mode 100644 index 000000000..09f3fd819 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fn57_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fnc_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fnc_hud_animation.omf new file mode 100644 index 000000000..0cf203f95 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fnc_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fnp45_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fnp45_hud_animation.omf new file mode 100644 index 000000000..6a43ec614 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fnp45_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fort500_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fort500_hud_animation.omf new file mode 100644 index 000000000..c55c4a6a7 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_fort500_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g36k_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g36k_hud_animation.omf new file mode 100644 index 000000000..5547c2f9f Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g36k_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g3_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g3_hud_animation.omf new file mode 100644 index 000000000..cc3f3fb9c Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g3_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g43_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g43_hud_animation.omf new file mode 100644 index 000000000..40bce0832 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_g43_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_galil_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_galil_hud_animation.omf new file mode 100644 index 000000000..7e30e3063 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_galil_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_glock_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_glock_hud_animation.omf new file mode 100644 index 000000000..b643ab6a4 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_glock_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_gsh18_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_gsh18_hud_animation.omf new file mode 100644 index 000000000..071d3ad65 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_gsh18_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_hk416_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_hk416_animation.omf new file mode 100644 index 000000000..f4f77a0b8 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_hk416_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_hpsa_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_hpsa_hud_animation.omf new file mode 100644 index 000000000..af52475b7 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_hpsa_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_kar98k_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_kar98k_hud_animation.omf new file mode 100644 index 000000000..2bf363129 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_kar98k_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_l96_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_l96_hud_animation.omf new file mode 100644 index 000000000..f45593c4a Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_l96_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_lr300_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_lr300_hud_animation.omf new file mode 100644 index 000000000..0c776da9e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_lr300_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m16_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m16_hud_animation.omf new file mode 100644 index 000000000..a6118a954 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m16_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m16a2_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m16a2_hud_animation.omf new file mode 100644 index 000000000..7271fb350 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m16a2_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m24_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m24_hud_animation.omf new file mode 100644 index 000000000..605fca9bd Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m24_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m4_hud_amimation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m4_hud_amimation.omf new file mode 100644 index 000000000..d9087321d Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m4_hud_amimation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m4a1_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m4a1_hud_animation.omf new file mode 100644 index 000000000..ff4b27578 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m4a1_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m82_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m82_hud_animation.omf new file mode 100644 index 000000000..78c712b3b Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m82_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m98b_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m98b_hud_animation.omf new file mode 100644 index 000000000..b80d24012 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_m98b_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mk14_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mk14_hud_animation.omf new file mode 100644 index 000000000..3bf1aafef Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mk14_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mossberg590_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mossberg590_hud_animation.omf new file mode 100644 index 000000000..733358fd4 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mossberg590_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp133_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp133_hud_animation.omf new file mode 100644 index 000000000..f784db70c Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp133_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp153_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp153_hud_animation.omf new file mode 100644 index 000000000..2f4d2f47f Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp153_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp5_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp5_hud_animation.omf new file mode 100644 index 000000000..8ff8eda89 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp5_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp5sd_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp5sd_hud_animation.omf new file mode 100644 index 000000000..56e8256b8 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp5sd_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp7_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp7_hud_animation.omf new file mode 100644 index 000000000..4ae414f8f Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_mp7_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_nimble_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_nimble_hud_animation.omf new file mode 100644 index 000000000..f92a8ddd1 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_nimble_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_oc33_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_oc33_hud_animation.omf new file mode 100644 index 000000000..c60c70119 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_oc33_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_other_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_other_hud_animation.omf new file mode 100644 index 000000000..d0818a1dd Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_other_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p220_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p220_hud_animation.omf new file mode 100644 index 000000000..25e0f53ee Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p220_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p90_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p90_hud_animation.omf new file mode 100644 index 000000000..2f9dc2c9c Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p90_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p99_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p99_hud_animation.omf new file mode 100644 index 000000000..7105d8711 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_p99_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_pkm_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_pkm_hud_animation.omf new file mode 100644 index 000000000..15d6405b9 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_pkm_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_protecta_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_protecta_hud_animation.omf new file mode 100644 index 000000000..67dfc277a Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_protecta_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_remington700_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_remington700_hud_animation.omf new file mode 100644 index 000000000..9c003b1f2 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_remington700_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_scar_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_scar_hud_animation.omf new file mode 100644 index 000000000..84cb42134 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_scar_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sg550_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sg550_hud_animation.omf new file mode 100644 index 000000000..ef76114de Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sg550_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sg552_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sg552_hud_animation.omf new file mode 100644 index 000000000..899872f65 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sg552_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_spas12_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_spas12_hud_animation.omf new file mode 100644 index 000000000..d51b1e8a1 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_spas12_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sr25_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sr25_hud_animation.omf new file mode 100644 index 000000000..ecde2acbc Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_sr25_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_trg_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_trg_hud_animation.omf new file mode 100644 index 000000000..0293ec01b Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_trg_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ump45_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ump45_hud_animation.omf new file mode 100644 index 000000000..a649c87af Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_ump45_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_usas12_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_usas12_hud_animation.omf new file mode 100644 index 000000000..3f0e84c98 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_usas12_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_usp_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_usp_hud_animation.omf new file mode 100644 index 000000000..a8237b097 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_usp_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_wa2000_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_wa2000_hud_animation.omf new file mode 100644 index 000000000..b390961cb Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/hud_hands_animation/wpn_hand_wa2000_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_ac10632_hud.ogf new file mode 100644 index 000000000..4b9865287 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe393ff79a2a26af2a3a318b698db68492f55eb5c42113994c41aab5f306ef5a +size 907097 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_acog_hud.ogf new file mode 100644 index 000000000..bd8c4dead --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2e9b0f6cc83ae0cf77763b10bba467de7638b436be7e033eac86f78409cd62cd +size 1142217 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_eot_hud.ogf new file mode 100644 index 000000000..27460c03c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ceb162cb14a11a01ddf02d932282c5ca7f6a65e874d8ae7e62cc437d84d2429d +size 981895 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_hud.ogf new file mode 100644 index 000000000..012e2012c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ace21/wpn_ace21_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:228882e5505be8d700e2a712a9cfc41c1e3e55f1b7dcc7579c70a7c65be81cb4 +size 500379 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak/wpn_ak_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak/wpn_ak_hud.ogf new file mode 100644 index 000000000..0bbd3db33 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak/wpn_ak_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:48f28d93be65e89ef95f8e173370d54821b11def36a2092b921fc26412f37ec0 +size 1217787 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak/wpn_aks_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak/wpn_aks_hud.ogf new file mode 100644 index 000000000..1de465614 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak/wpn_aks_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c3a71daed97891240af7788b0fe1457424e2d03768c8b3a405c07a17d37b91d +size 1208962 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_1p29_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_1p29_hud.ogf new file mode 100644 index 000000000..f9732e3df --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_1p29_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d629fd9ba210a512e9ac8e2ce75064c8a5a9d08a2bb7735fa0fea0bc5f83610 +size 1179459 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_ac10632_hud.ogf new file mode 100644 index 000000000..5e35475ed --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2fe9850b5f054861b9d336c04ebfdcac6b725c0bf354aa3bcb20fd84efa8e26d +size 1278446 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_acog_hud.ogf new file mode 100644 index 000000000..009df7759 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:34202d7fde1238cf698554d08018f8bd24b96e495856041b1325aae2619a4ae7 +size 1461946 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_eot_hud.ogf new file mode 100644 index 000000000..fde97ea0f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14686ecd0dbf1d1a900b1dcfb742abe275b4135dc7391a08ea9b697c8cf08bd0 +size 1350781 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_hud.ogf new file mode 100644 index 000000000..58d9c2af1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7c0fa79bc6688acc0c3cfe98059c638f2e3975b734a3bfc6df10ee70676b916 +size 1008861 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_hud_animation.omf new file mode 100644 index 000000000..0f11f2943 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_kobra_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_kobra_hud.ogf new file mode 100644 index 000000000..22f4954fe --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_kobra_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0941bbf62631afc13fcba293177ca717b54d70a9d73f5174f04f02413ff03447 +size 1125517 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_pso1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_pso1_hud.ogf new file mode 100644 index 000000000..da9781f58 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak102/wpn_ak102_pso1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1f1e8e01e00955471e2667454a005a7eb650b34ad013da15e25910da3f2d1e79 +size 1287426 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_1p29_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_1p29_hud.ogf new file mode 100644 index 000000000..e9abd16c3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_1p29_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c866e16678d3d443473552c64ecab5f6a98e8ad661d8f1d12efdf68d30f5dcb +size 1183801 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_hud.ogf new file mode 100644 index 000000000..4005dedd6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07e6bc3d360ae4e313cfcf7521c004e264a4c4a189e7683e5aaab42ac9c3cec3 +size 962148 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_kobra_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_kobra_hud.ogf new file mode 100644 index 000000000..eda8a5510 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_kobra_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9952a92183a65a8f0ffabe428022574a762e380bc7e5ba8a23defc7a0bc35829 +size 1140495 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_pso1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_pso1_hud.ogf new file mode 100644 index 000000000..00aeb7d78 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak104/wpn_ak104_pso1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac2cc7561c46299c1103cd14fe3bf6c28c11f22c54322a7fae00f2da03a54456 +size 1291808 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_1p29_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_1p29_hud.ogf new file mode 100644 index 000000000..1fae68fb7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_1p29_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:226a624ae0d67ced02c82cddfa51a0c865bf10a706f36eec268fc30b2ffdd158 +size 1170036 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_hud.ogf new file mode 100644 index 000000000..8317885c1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8337352b1926a457e142f785e10441ac477fc9034267b8c684ca22cc5b2beb3b +size 1276668 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_hud_animation.omf new file mode 100644 index 000000000..80e072c12 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_kobra_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_kobra_hud.ogf new file mode 100644 index 000000000..b7ebf4778 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ak105/wpn_ak105_kobra_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c72286505c075ebc5a105ff405a05105c4e28955d9a6e20b83a2b6f8608b433 +size 1972115 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_acog_hud.ogf new file mode 100644 index 000000000..9548fe742 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c5bc79899eea1accf2dc87a624d3e03fe215300240657aad81f6f61cb22cc338 +size 607484 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_barska_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_barska_hud.ogf new file mode 100644 index 000000000..355b591f5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_barska_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67daf98b66433d2a1a50f856ad94e97e23525928ee46b96dd7320afb3360e8f6 +size 805677 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_c-more_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_c-more_hud.ogf new file mode 100644 index 000000000..1813301ba --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_c-more_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c5a6dd01df608a010f2b04d6727285e81321a4f6e056ed5f912bee46d2f84e3 +size 601167 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_eot_hud.ogf new file mode 100644 index 000000000..93c583a57 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:336a8d1ad413cee0b5fc26a9de8feb60b505b71d58a34f4166d9effd61bf7ee3 +size 373750 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_hud.ogf new file mode 100644 index 000000000..0e1a9b11d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ash12/wpn_ash12_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b4c133fde648f83d1b58b415509d5b71a2b8c756a45301a88a904500ecbc88e8 +size 481400 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_hud.ogf new file mode 100644 index 000000000..3cd015008 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d676f32eab88457f851928ad8678945a847961144d395d60e8de8e6a21e0fa7a +size 401775 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk1_hud.ogf new file mode 100644 index 000000000..f22b45c30 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df95639e3065f2f35e129c80baabf81e99b189d1f78871628524b1cb217fdea1 +size 401783 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk2_hud.ogf new file mode 100644 index 000000000..6c7a9adb5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4a38f118ac7bda5b4ecd260ef8c7f49da45c30f8073f720c692039ca001c7084 +size 401783 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk3_hud.ogf new file mode 100644 index 000000000..00edc45a7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:203a227769688287dbcb13e16c74c2b04451a1557a9e15ddc802d26882d8d2a6 +size 401783 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk4_hud.ogf new file mode 100644 index 000000000..19bf828ca --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c086320ff3333bfab264585c9f9937a751920bdcb446d0ee986c26efc913a8cc +size 401783 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk5_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk5_hud.ogf new file mode 100644 index 000000000..9261ca70f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a1/wpn_aug_a1_sk5_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:935d971b59f5a49c20931f87a99f5ac11100ca8a068516e02ec61e08bb3f93b1 +size 401783 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_acog_hud.ogf new file mode 100644 index 000000000..eab07d205 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5d1e7599af20c9a09f7a87270f59e3135eab6997192118da0d240b46231c7d4 +size 1690045 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_barska_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_barska_hud.ogf new file mode 100644 index 000000000..ca11edf95 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_barska_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0816cf5212f884278dbf2a02e8c79bee45e6c89c1500e11a2de2b3ba0597f7f +size 2075354 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_c-more_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_c-more_hud.ogf new file mode 100644 index 000000000..807212512 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_c-more_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d62172dcc8315dd5e36c8de36a140ceb5fb264641242951be5e45e9782dd043f +size 1737790 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_eot_hud.ogf new file mode 100644 index 000000000..8e20a3082 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef8c9268cddbcd5198626cc25cc23ad56f3527b27b7100720b5aac65cfd87e1e +size 1497679 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_hud.ogf new file mode 100644 index 000000000..d7537f04d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_aug_a3/wpn_aug_a3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba22f8ce1a7738245d6c7bac8869642202759c07e492a82c140603993156a3d6 +size 1061919 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_axe/wpn_axe3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_axe/wpn_axe3_hud.ogf new file mode 100644 index 000000000..40d4d08d1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_axe/wpn_axe3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2937bef2d0d3b285d35d1ace5de075db2a24339a7e65ca30e5eb7d375e7dd20 +size 185872 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_axe/wpn_axe_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_axe/wpn_axe_hud.ogf new file mode 100644 index 000000000..9f18b1c10 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_axe/wpn_axe_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c0bd29116d434db3d98de3ca73a7838a3f6243b2e689be886ed53b73c44fa48 +size 337778 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_hud.ogf new file mode 100644 index 000000000..c4770f3a9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f0f6449c162c7fffe46d3d5f659ca8a12db74809751cf19ced1f89ba0b26f8a5 +size 293037 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk1_hud.ogf new file mode 100644 index 000000000..54b6276e4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:abc3b5ced30fa7fe0a32f3f9978b654312ef371b9acdbf34cc1b8e97eda4260a +size 292985 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk2_hud.ogf new file mode 100644 index 000000000..956550a65 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ae3698874e4416aff0667a6779ee75bee728c7980089c45f805768adb3d55dc +size 292985 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk3_hud.ogf new file mode 100644 index 000000000..329b4227d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_beretta92fs/wpn_beretta92fs_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b7fe5e621c9de6f408b0164ca8475c5d9ebce426cd12eda8d2fa836c5b2bc82 +size 293045 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_hud.ogf new file mode 100644 index 000000000..18789ddd1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:192c7c9d7527a0fc6c51a26e32ebc890462d0703a572da0e080985323128d6ef +size 197812 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk1_hud.ogf new file mode 100644 index 000000000..33a535200 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5979b01a601bca5efe8d674d3d89c25f83488b7574b53b077d128a7fe6828641 +size 197816 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk2_hud.ogf new file mode 100644 index 000000000..3d81ea95a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5fbfb2e4976f417a7fe00160d9f052ed99da3a32eb446eb9fd5023b96d5fc1b4 +size 197816 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk3_hud.ogf new file mode 100644 index 000000000..c768d8253 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b2b188a0707245ab312ecda6b2680c786d3e0f3c1c1874a65fdd534dfc8d367 +size 197816 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk4_hud.ogf new file mode 100644 index 000000000..cc70911c4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2c54426e63357327bdfcc2a9d28cb724655a4cc2f93d70e57526b6999c7401a3 +size 197816 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk5_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk5_hud.ogf new file mode 100644 index 000000000..3909487a9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk5_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b6730ec454c673949b42f65e05655dbbb4b1cd6838a0e6db1128c6192a373984 +size 197816 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk6_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk6_hud.ogf new file mode 100644 index 000000000..3ceb5f894 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk6_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d078ba686d065c39b856c91751689cf02ce3dc66042315ec019d86cf6c74326 +size 197816 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk7_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk7_hud.ogf new file mode 100644 index 000000000..66b18f81c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt1911_sk7_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e620f533073ffe0b356029b05960aaee5322eb329f9eb41708396a23b1c007de +size 197816 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt_kimber_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt_kimber_hud.ogf new file mode 100644 index 000000000..a4079c1f6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_colt1911/wpn_colt_kimber_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20cd0c64c254659ea0b7c2401cb6875d2f1af1ad4025d12f0385a6efb10ee110 +size 351658 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_auto_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_auto_hud.ogf new file mode 100644 index 000000000..5ab36b18b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_auto_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b23b744cd93ee286c8ccde9e7d56f4e144bf296d42347ae6bc4107036049bdd +size 1131147 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_hud.ogf new file mode 100644 index 000000000..339bc3d54 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dc4c6f0b3bbd9a5e067961197670319e5c9b857835cc55fb50bf7b9f6ebb17eb +size 320644 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_sk1_hud.ogf new file mode 100644 index 000000000..c041f749f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_cz75/wpn_cz75_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5be917995d9be38238b02a19a66e6a9af3a5e7f5d595f4d26bc14b9877bd75b5 +size 321852 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_hud.ogf new file mode 100644 index 000000000..78da0e4d6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3edd70b9d7f0160deae101c527d9e1a3888b2aa5707c4cd85a2945d022acf58a +size 379319 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_nimble_hud.ogf new file mode 100644 index 000000000..0570ae458 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:664bad38e09e921febeaf566af05409b566e58e23120e4bae2ab337790f592e7 +size 573999 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk1_hud.ogf new file mode 100644 index 000000000..2fc12559d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:541ad471a1afbf18914f1b05df59592a46fc426d370f946d04a4ac4943f36d08 +size 379323 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk2_hud.ogf new file mode 100644 index 000000000..8f6b8b67d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3b772e09b96976c562835acf8956a704a809127b5e1acac40611338a3ee58f9f +size 379323 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk3_hud.ogf new file mode 100644 index 000000000..07fd59ab7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_desert_eagle/wpn_desert_eagle_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fbfd7bafc1a29091b0df486cc8ab4ee6105c71a0749cb135a9dbc5b6b458eee2 +size 379323 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_dynamo_hand/wpn_dynamo_hand_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_dynamo_hand/wpn_dynamo_hand_hud.ogf new file mode 100644 index 000000000..1867257fc --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_dynamo_hand/wpn_dynamo_hand_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:26d5439d62a6828e6a767fe7e0caaa56a6e23df2f26c341aa83cc2c90e8f7549 +size 394185 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_acog_hud.ogf new file mode 100644 index 000000000..51ced049e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:93c7ade21d824d2283834fb53b17ea31aa54813f680789fc0e0e752ec605e9a4 +size 632251 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_barska_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_barska_hud.ogf new file mode 100644 index 000000000..68b6bb5ec --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_barska_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:57ff6477ef03e5bb39805765cbe15bd44725df383fc2e4f0137bdb4d1ec34a94 +size 881984 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_c-more_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_c-more_hud.ogf new file mode 100644 index 000000000..beb19547a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_c-more_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:122c07365e4c8d787ea646b1cadea6c9f3bac657c9b8e212a29f93e7bde1197b +size 681194 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_eot_hud.ogf new file mode 100644 index 000000000..6bda90915 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:985db18f04a71fcea283a3c79fe30431e3ae67af3574776caa9f3d2efa1a01bd +size 576226 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_hud.ogf new file mode 100644 index 000000000..39ef9ee88 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fal/wpn_fal_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4363b057e742af992855dc42c03c356b6c771476398608acec877718f102390f +size 701306 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_ac10632_hud.ogf new file mode 100644 index 000000000..3dceb538b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3695e46defcdc05a6d4474cfb0d1f136565303cef46bf49b6030ca7ffe701d66 +size 437046 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_acog_hud.ogf new file mode 100644 index 000000000..80d52b10d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3176e41b93506b56697149748e0abb4f6cf8c16d63697ceb24444811c614f65a +size 601166 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_eot_hud.ogf new file mode 100644 index 000000000..2dc9b5102 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ca709b4c67857cae479b8c5bd15b8bb5e5c70177d3a911ecd57ace42ba31d273 +size 466552 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_hud.ogf new file mode 100644 index 000000000..f0681dac4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_famas/wpn_famas3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:853350d923a7f577404276cbed881911b2ece4cdf363cdde0c563b6e12950f92 +size 552134 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_hud.ogf new file mode 100644 index 000000000..7da994b1a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae1309da4c4a6345fe62218445257a21f464def6e61431b4cd6721e55c0b5864 +size 584155 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_nimble_hud.ogf new file mode 100644 index 000000000..bbf3e56ca --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:570032c3f47bcee25fafb67288133de91913cd6c1727b19b4d3bdd8cf112263f +size 544944 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_sk1_hud.ogf new file mode 100644 index 000000000..c047141d2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9eaa6b72bad567d7c47c12a399a97e0e1f41b8c2b0e3763fc4a7534feb782abb +size 569276 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_sk2_hud.ogf new file mode 100644 index 000000000..2564c082e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn2000/wpn_fn2000_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c57de5007533a8c2e3bb7af8d83c36b210fe6e920beafe239d438708baaaf7e9 +size 569276 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn57/wpn_fn57_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn57/wpn_fn57_hud.ogf new file mode 100644 index 000000000..29e3cf20f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fn57/wpn_fn57_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:152d4ed78e4cd41309917d3fdfeb951b7a639db18de0c4964f5ae118b3f92fce +size 252573 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnc/wpn_fnc_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnc/wpn_fnc_hud.ogf new file mode 100644 index 000000000..d91ea30af --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnc/wpn_fnc_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d9d1423e4a4f93c35402b709a5d2bed57b6c089f8cb68bb21487624abbb93b14 +size 740329 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_hud.ogf new file mode 100644 index 000000000..10665d055 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:750f4b1b166c9c36bcc94bb479e6a04f79737554ab6e6e5353d018dfa77e9c40 +size 299797 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_sk1_hud.ogf new file mode 100644 index 000000000..ad5150543 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6f688acc680989a629f27ce08802cd75408782ec9bb093ae1a43e8a58b842b8 +size 299925 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_sk2_hud.ogf new file mode 100644 index 000000000..d019afcfa --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnp45_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b90f545999675376a6ea71e44b46764199418633ca9d33b9b2360f89bfe72cf2 +size 299685 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_hud.ogf new file mode 100644 index 000000000..54defac98 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be509b1b535ee37c061de126f0d761c2fb7facb366263fcf05809707c44b9303 +size 441228 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_sk1_hud.ogf new file mode 100644 index 000000000..acfd5c6fd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9bc347be135474fddc37d8feb35c48d6be22064919e0045408704c31006cb91d +size 441236 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_sk2_hud.ogf new file mode 100644 index 000000000..0a0800e6c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fnp45/wpn_fnx45_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9b4cfda3197aec4b62af8d76cf6755334c88688a76943cd3c8c3266cf37dca0a +size 441236 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fort500/wpn_fort500_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fort500/wpn_fort500_hud.ogf new file mode 100644 index 000000000..e96ace1cf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_fort500/wpn_fort500_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:332b2e075ef48f059bc6c0a531e6e960684c6595d377c8d75840416873983932 +size 341731 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_ac10632_hud.ogf new file mode 100644 index 000000000..494f875a0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa920c451f04d1c719094cac0ad8d3b88d3ecc08f0b588d18ae67a5fa485a930 +size 909882 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_acog_hud.ogf new file mode 100644 index 000000000..a1633da35 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c86089d20952c5a81d15673daf4eb0cc05c5b5d7427b68e8455744f16387ffce +size 1021742 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_eot_hud.ogf new file mode 100644 index 000000000..09194479d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be7d8490b1e6832187866a898060aaff8fc9ad89820d497043e220a221eac37c +size 965687 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_hud.ogf new file mode 100644 index 000000000..796ddac77 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3/wpn_g3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50efdb67a87573ee38fb00676e9f6233f94f24341a92670e4065ef6710ebf166 +size 1092159 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_hud.ogf new file mode 100644 index 000000000..cfa450e39 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0e4e69d9287b0dad82251254bb7ab0ac156924d573cc7ba6affaf58f618339d9 +size 1113374 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_sk1_hud.ogf new file mode 100644 index 000000000..0a7da7727 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3c8d8134cb394c33eb1037375db30152c71d55ab726de054bc3e9546668a2104 +size 1113382 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_sk2_hud.ogf new file mode 100644 index 000000000..b0c7c9faa --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5d84de7ca5ead5fd4e16647dae0a8ea89c9b2cc848d11a31ad61a38d710d9efd +size 1113382 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36k_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36k_hud.ogf new file mode 100644 index 000000000..376e09f91 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36k_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e65d4a98a4de6c299e72c5b31eebd8b28e3c413623014d023a1fb912af842448 +size 906243 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36k_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36k_sk1_hud.ogf new file mode 100644 index 000000000..89fef4f12 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g36/wpn_g36k_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:117f3883ef88c433591d27745b075da493f61b8a87f8166c75f447916f1ac37b +size 906247 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3sg1/wpn_g3sg1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3sg1/wpn_g3sg1_hud.ogf new file mode 100644 index 000000000..835ffcabd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3sg1/wpn_g3sg1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0debaaaff735b95c2723df9fb04eb0018de006d1754eb62e65cc84de25652950 +size 853519 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3sg1/wpn_g3sg1_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3sg1/wpn_g3sg1_sk1_hud.ogf new file mode 100644 index 000000000..d02ef974b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g3sg1/wpn_g3sg1_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b7ebafbab49c50e4f14312b4b10481124ff378cb216879c0e8eb6d89a693cf12 +size 832771 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g43/wpn_g43_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g43/wpn_g43_hud.ogf new file mode 100644 index 000000000..aeb880e21 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_g43/wpn_g43_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a04fdcc1ce36584ff0d8745174c64a9e4aa9645b1a0eedeaca37f8e59e6affe +size 429623 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_hud.ogf new file mode 100644 index 000000000..4e21e2e1e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a0174f03c1a4d10e83a96acf079b0c24f5c5b88497d642577128df9a544fb346 +size 1064503 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_sk1_hud.ogf new file mode 100644 index 000000000..1c5662871 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3563e186f53d2aa82ecf9c26b75b7ec248ffad2feb12cd2c02084fb9191e961a +size 1064631 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_sk2_hud.ogf new file mode 100644 index 000000000..005dfe1d8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_galil/wpn_galil_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af708bc3e4f173e3d6f3bce5f1dfde12f7e9a2c471b2b4c0ee2bf9c4aa449055 +size 1064631 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gauss/wpn_gauss_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gauss/wpn_gauss_hud.ogf new file mode 100644 index 000000000..896f0aa1f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gauss/wpn_gauss_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b895bc9050993e8d2f3b4d7e1cc6569dd9603328b7d86d9e82fd6c1c8aef9bf +size 963293 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_hud.ogf new file mode 100644 index 000000000..836bb193b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:286f3168cac058d3f844665fca8412835de1c18dc1fe713bf8101eebc45225fb +size 299626 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_sk1_hud.ogf new file mode 100644 index 000000000..f83279400 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da2ff464ddc49d17622a76a98795ada6eff339dda69b05074edf5dfdbb5c2d75 +size 299634 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_sk2_hud.ogf new file mode 100644 index 000000000..6a678875b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_glock/wpn_glock_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d63745b7dd14ae3eb4171fdd31f3a0d396f02dba6bcf6ed54395de3f5012f4e +size 299634 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gsh18/wpn_gsh18_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gsh18/wpn_gsh18_hud.ogf new file mode 100644 index 000000000..297a2495b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gsh18/wpn_gsh18_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:efbe391f4a9e6a8a2f8a709783db5c3b994a426dbb402e6ec1a55c81250073d6 +size 996613 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gsh18/wpn_gsh18_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gsh18/wpn_gsh18_sk1_hud.ogf new file mode 100644 index 000000000..14f197ed3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_gsh18/wpn_gsh18_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41dbcb5a461b352c2b50615475bfb8c4f1cac7d404d3ebdb9c17e593d2318272 +size 996621 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_ac10632_hud.ogf new file mode 100644 index 000000000..feac46540 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc3a85e8be3ea542ce9c3a7db91961eca3844cc6674ae055e31ab445390eb42f +size 948997 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_acog_hud.ogf new file mode 100644 index 000000000..26a18982e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:67127c01478d729a0d5899ac89804a443a24cbd5729dae33307180c0408f1f5c +size 1110297 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_eot_hud.ogf new file mode 100644 index 000000000..f9b9e8006 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:134c9724fe09ad1776ead39da46340cc22b94ab1562b2a7c9375bab5fc4380f3 +size 917123 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_hud.ogf new file mode 100644 index 000000000..d23a23df6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk416/wpn_hk416_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:92e63c86232d2324d9350ea3fdb0b3426ffec660ed91d5417d0612e6cd1b3c29 +size 1013840 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_acog_hud.ogf new file mode 100644 index 000000000..80c1a1cbb --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c967da9aeb04441b4dd4cdc60e61798d7d70284b8e439e8af6a7063d39321d5 +size 898229 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_anim.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_anim.omf new file mode 100644 index 000000000..d5c63c1d6 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_anim.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_eotech_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_eotech_hud.ogf new file mode 100644 index 000000000..11bd2f2db --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_eotech_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:50ba0f02f28c915c5c143485bad3ce40cbb4ef601aeb5764320ac5dded2a16a3 +size 899607 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_hud.ogf new file mode 100644 index 000000000..2108ae128 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hk417/wpn_hk417_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f76e48e5832a3b100732c295f0f31670053c94a0644517813add8a2edde43c5b +size 811328 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hpsa/wpn_hpsa_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hpsa/wpn_hpsa_hud.ogf new file mode 100644 index 000000000..5413155f6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hpsa/wpn_hpsa_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eeebee00ab6fbbe83856582c96e67f212bce48fc012f79547a952db595135b27 +size 414703 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hpsa/wpn_hpsa_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hpsa/wpn_hpsa_sk1_hud.ogf new file mode 100644 index 000000000..0064a3180 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_hpsa/wpn_hpsa_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:11d2fc6cdfc73e157479c5f8f7d00a96ceaa3e71a20f025c4eab1676b2ad5ab3 +size 414711 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_kar98k/wpn_kar98k_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_kar98k/wpn_kar98k_hud.ogf new file mode 100644 index 000000000..226bc2065 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_kar98k/wpn_kar98k_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:151759097a383302903d9f64e61572501f2b91344236bd5af18995b8f7cecd41 +size 769997 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_combat_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_combat_hud.ogf new file mode 100644 index 000000000..aa1395d92 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_combat_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f0e0b1c84a5c61da999f513603aef4680dd87dea33d15add057911134f92c28 +size 102942 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_hud.ogf new file mode 100644 index 000000000..4eb2e2bf2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5b7f5c8fdc07eb7d4052032133349742e6f97b308b9e1a8aa2abb7c6e103571c +size 162075 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_hunting_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_hunting_hud.ogf new file mode 100644 index 000000000..08defb2c4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_hunting_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe4cd07109a16dc03fed021f595247d223f1d62badadce4a5c00a51e2df4b1d7 +size 189287 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_nr40_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_nr40_hud.ogf new file mode 100644 index 000000000..0f5f2ff1b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_nr40_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7aed617bbee0d08543769174f9bc3a971300a094de25a4e331e8f0dc36ee6318 +size 91830 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_swat_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_swat_hud.ogf new file mode 100644 index 000000000..000dd3a59 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife/wpn_knife_swat_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0b799d5d7496a58ff96a74f49c256f260ce1c9967386e60631e5b7906460105f +size 219904 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_axe_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_axe_hud.ogf new file mode 100644 index 000000000..fe7d0f2bf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_axe_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:36c05ba2a887add530a7aa0a793c54fd1223dd0d7307a0f0f744f20e2ee68c82 +size 23322 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_hand_knife_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_hand_knife_hud_animation.omf new file mode 100644 index 000000000..a21e770f9 Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_hand_knife_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_2_hud.ogf new file mode 100644 index 000000000..e661f8be6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75858f85b8cae93a3c1d5280360607ffb8e9edcc28653165225ad39e7010b88c +size 100115 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_3_hud.ogf new file mode 100644 index 000000000..1fd8bca5f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d608358357c51def620a2bfb057f69f5828b7b6e24a871cad59ee971fcd53ec +size 189288 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_4_hud.ogf new file mode 100644 index 000000000..bae2ac5c4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:194eeb852775fe8256470cc9507d9279fcfa4dc94c0a9d9de6f2e75a4f4db829 +size 347701 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_5_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_5_hud.ogf new file mode 100644 index 000000000..d73cc3159 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_5_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d709328b0bbba64ab03c034b00516fa64ebf50dd97b9328ecae965028ec1868 +size 110864 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_hud.ogf new file mode 100644 index 000000000..fa1a5adca --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab84dbc1a30e883de329dad42467bfe030294670cabe23a56ee8c7a58ed65a07 +size 44381 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_hud_animation.omf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_hud_animation.omf new file mode 100644 index 000000000..fb3b5d73e Binary files /dev/null and b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_knife_m/wpn_knife_hud_animation.omf differ diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_hud.ogf new file mode 100644 index 000000000..3ea2c1ff4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe958aab7f226e4ec35d87cd120f92d1623ca12af0c9e1d8f5683660dffd000a +size 581325 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_sk1_hud.ogf new file mode 100644 index 000000000..eb5b8394f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:31a8f59d2fe3ce3a3710d9bda5c3e34e7e4f89c3ed9b354c33ab0abfc81d6131 +size 557295 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_sk2_hud.ogf new file mode 100644 index 000000000..bdd42b4b8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_l96/wpn_l96_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b13bdf1105739117f60e6b53a674131aeb420c223d844498cb235b338de5704 +size 557295 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_hud.ogf new file mode 100644 index 000000000..117c218f8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:70be29dd5560f57c61e7f73fae246f2e5220678f7d1e8b096734f42c65e4b29e +size 1024818 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_sk1_hud.ogf new file mode 100644 index 000000000..cb116d949 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b8f74585b1051f171cd69e176f19d6b4679ac2b3abecbc82af1d8ac0e52a8fa8 +size 1024826 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_sk2_hud.ogf new file mode 100644 index 000000000..400fb74dd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_ac10632_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2211a6f9d26f90a1726a45625d0d3c73ab85e2041676f46ee779d8380acc108d +size 1024826 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_hud.ogf new file mode 100644 index 000000000..6854675ba --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:feb4ab585bbade46b4e548e0cd1ce18a7573fb41919957cd50c6b874c68097f4 +size 1200698 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_sk1_hud.ogf new file mode 100644 index 000000000..0a7b0b87f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8b8ea45352b2c21b4d160e1bff7ab93bdfa869084f6aa4a3f26ba7811fa75fc0 +size 1200706 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_sk2_hud.ogf new file mode 100644 index 000000000..4ca9bd952 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_acog_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da32edbd6f72a4e9969862d1ff388df90ff9f358a3d1ff1f1dafcd2bfe596f97 +size 1200706 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_hud.ogf new file mode 100644 index 000000000..a30c647f0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e72b7ae4bc819729efc4e39be5d490533b0cf7bc67191698801d534b09e1c60 +size 996184 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_sk1_hud.ogf new file mode 100644 index 000000000..aa578d9f2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:effd9d37ed7df48b9abe7fe80e78db609941cc107cfebadffedbcdf619617531 +size 996192 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_sk2_hud.ogf new file mode 100644 index 000000000..377c3a29b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_eot_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a7083cef407d55cfb350c832807e1360fd7e6feb69f162093c70d1b1bce7f672 +size 996192 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_hud.ogf new file mode 100644 index 000000000..ceeb1823f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33e091fa2f8dc5c24d8fc0aa8b0cf93b5817eda19348f9f40d6f0feefdc9ff46 +size 1220684 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_sk1_hud.ogf new file mode 100644 index 000000000..ca37492ed --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ec78a6286955126d68db2db8ce59202c1c33c12e710d2cda09d62165a04bdec +size 1220452 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_sk2_hud.ogf new file mode 100644 index 000000000..4b873dfad --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_lr300/wpn_lr300_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae2260bc761b24626adbd76e3854debf5c42d7ab878d857003bbdf875fb352b9 +size 1220452 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_acog_hud.ogf new file mode 100644 index 000000000..1b110d95a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bfb006d71896d84f8d73292f4e2952c4181190602ace7ba8f773909e8892cb5f +size 1001147 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_barska_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_barska_hud.ogf new file mode 100644 index 000000000..1694f8f8b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_barska_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79bea8e58051facf19b88b979f6c015829a04a67df616819c3cb33d2013eafde +size 1556899 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_c-more_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_c-more_hud.ogf new file mode 100644 index 000000000..cea104759 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_c-more_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f5a4320ef2e72f6557e736c870c0c0ba8f8638585337dc27aa212213f0afa7f +size 1328059 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_eot_hud.ogf new file mode 100644 index 000000000..6ca42a836 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12f88a186ff11804dfe08405eed8f093cbf1bd1fe9bf57e542f8d534054db803 +size 945242 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_hud.ogf new file mode 100644 index 000000000..6f770d46f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m14/wpn_mk14_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:049f323fa16757e6c7dfc01da8b591d7bfa13640e6a63d254a6b4d8c9f63208c +size 1192212 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_ac10632_hud.ogf new file mode 100644 index 000000000..fb35fc6ac --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a582e6b15bddd445dc47693e263c6112332afa053d393944d61050959124bd01 +size 1420772 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_acog_hud.ogf new file mode 100644 index 000000000..ecd08a1d7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b17e9e121a5ae6c7ce0938fec5f2ce0b0d9f0583bd9f197388a2e1d848d101d8 +size 1671854 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_eot_hud.ogf new file mode 100644 index 000000000..e97ef1462 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b2e4386a7d60164705f8e5975164531777cae5c8a90d59b3a09c270f22f68e1a +size 1351458 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_hud.ogf new file mode 100644 index 000000000..678078356 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:22a0c85d1f29ecf1cbafc52ad51edb6d20528451af225f0def649879bc018a8e +size 1391422 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16a2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16a2_hud.ogf new file mode 100644 index 000000000..1194f0b07 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m16/wpn_m16a2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ada60cd0eae9808bd37139f51f3eefabe831c9731334a78247afe9e9a794fd3 +size 681615 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m24/wpn_m24_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m24/wpn_m24_hud.ogf new file mode 100644 index 000000000..01a16ef75 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m24/wpn_m24_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dbc69dd66f64b9fde58a1902d2a6aed0e53e2566d2426dcef262827637e23ac4 +size 552506 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_ac10632_hud.ogf new file mode 100644 index 000000000..a5e8e59b1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b155b2dd726f138245c066279a110521b069cd750004b8ef586482f0be1abb6d +size 3070010 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_acog_hud.ogf new file mode 100644 index 000000000..2439411f7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8acfe62baaf1b8ab1db3a25151d3d1c5ce4b321b8622f0cb133aadbbac561a17 +size 3305935 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_eot_hud.ogf new file mode 100644 index 000000000..7d56e5bb7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7d69c9159f4b91cdded2d7bf88173695048ba69cd4966d5cb303bafca58842ab +size 3172967 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_hud.ogf new file mode 100644 index 000000000..28698386a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m249/wpn_m249_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2469e8766ac9d7f1cf4fa5bd880c9e9d904c937243bbebe32721e988d30e26d +size 1909651 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_ac10632_hud.ogf new file mode 100644 index 000000000..9d7c3ff6d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c7001dc790c5c0a3aafa0fd60546be8db0a8d4ac64082e1c7a84ea75512afb4 +size 998781 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_acog_hud.ogf new file mode 100644 index 000000000..21032645d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:927f692e36c03c3d976a30d63ad2284408ed9eb592517bd1f496a7bc8c431fd7 +size 1097286 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_eot_hud.ogf new file mode 100644 index 000000000..93a6d85ce --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3da73b3fac2faf344cc6175a64331bbaf09bf4643eb0c048f372af3afcd219e9 +size 863047 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_hud.ogf new file mode 100644 index 000000000..35b10fdb2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4/wpn_m4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c7f48272361f0b42b08f1f8b3fad135ccc58f1d3020034d3688b2d89c40b01e +size 1105046 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_hud.ogf new file mode 100644 index 000000000..f12c70614 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:855062bb67d775ba1055e91b63ddc20b132c8bc012a0385ad6faff611b6ac49e +size 1054207 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk1_hud.ogf new file mode 100644 index 000000000..90e82843a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b837ead2f2f35065e1d816dbe8e8bea439977b83a0639d2ccbefb478d42e299f +size 1074495 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk2_hud.ogf new file mode 100644 index 000000000..249827ecf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef31eaab97109aca65509b434f961fc273124c09b490502f1cde21bbce3ed906 +size 1074495 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk3_hud.ogf new file mode 100644 index 000000000..e333b15b3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_ac10632_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:17bfe29b67be3dcc5700039af8fea31c2671c336266ce77d3c76bbcae08b2015 +size 1074495 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_hud.ogf new file mode 100644 index 000000000..8476da6ef --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79189adcd9695152c7b4de2fd3f86c130164f8ad8f40c3b083a99e4ce0946867 +size 1279805 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk1_hud.ogf new file mode 100644 index 000000000..79cfee010 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3cac87f7008ee8a6f5dbc761ffede975285c205693dac679eb15895495e68a29 +size 1303993 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk2_hud.ogf new file mode 100644 index 000000000..0bde74d76 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cb078d95aa8f456ad71bbc93648d9eebc492db302f68339dcd9b5b53b65d3585 +size 1303993 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk3_hud.ogf new file mode 100644 index 000000000..854482ac9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_acog_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79a7dff20d4b142160ccf1a90bdef6373bee3081be0518a51e9fa3e187c06904 +size 1303993 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_hud.ogf new file mode 100644 index 000000000..2e12e5cd9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:270fdfdf3dabe1bc0ebb78ec82ba847c2cf944bffa104c77b82c91a0df1b79e6 +size 1247754 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk1_hud.ogf new file mode 100644 index 000000000..bd6352fbe --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ac9366c37067b64439ee01e319cdad4411005a3f9c35d8a49753388acbdadec9 +size 1288262 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk2_hud.ogf new file mode 100644 index 000000000..ea17cec05 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12ae4ecde4075a9641b2c0b884bb0ae7d004dee3e76ce05cbad6c7b9f935cf0d +size 1288262 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk3_hud.ogf new file mode 100644 index 000000000..8c4a3dccd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_eot_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83d94cae55224ec51ae60dd22c5fe1f0d304f53d9280f414e8e2b424ae67fd82 +size 1288262 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_hud.ogf new file mode 100644 index 000000000..bf08a40e3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e798f081cd7af1a8c77ff645bb20b6b7f335ccd1b430a5ec901d8b296bbaceb9 +size 1086212 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk1_hud.ogf new file mode 100644 index 000000000..7cf2759be --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c64d1c6921ed401db888abb6645914fac093b4963abeff358a85dbe7ce07dd71 +size 1105960 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk2_hud.ogf new file mode 100644 index 000000000..ecc35a1b5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5568795938ed506cc759ce7f06a99aa0444295dc1c84a030bdc7e50d32191905 +size 1106140 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk3_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk3_hud.ogf new file mode 100644 index 000000000..c449f6e73 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m4a1/wpn_m4a1_sk3_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:60ada63fac4cea69046c37e79026bd2b6a078041029489042b3ceed72756d600 +size 1106500 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m60/wpn_m60_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m60/wpn_m60_hud.ogf new file mode 100644 index 000000000..3be4680be --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m60/wpn_m60_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fcc80510bd16840dab0104af235cf74896b72ff7bfed04c5a5928b7242d2420 +size 659260 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m79/wpn_m79_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m79/wpn_m79_hud.ogf new file mode 100644 index 000000000..af03270f0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m79/wpn_m79_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:557b84fe83a03145f26732cd0f8f2a5a5a5153626fc5e4a7ff418f15ed88ad5e +size 233936 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m82/wpn_m82_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m82/wpn_m82_hud.ogf new file mode 100644 index 000000000..8f216745d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m82/wpn_m82_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:75e1de9ddfd3093697c223d2350993ed81614b27d11da429a599ca541bfeccc7 +size 1095089 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m98b/wpn_m98b_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m98b/wpn_m98b_hud.ogf new file mode 100644 index 000000000..07b0619be --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_m98b/wpn_m98b_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e325f73da797a11d1eddb58f83a5d54c638da1c2b3ec93bcc7a2c814bfd48e48 +size 791948 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mossberg590/wpn_mossberg590_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mossberg590/wpn_mossberg590_hud.ogf new file mode 100644 index 000000000..4f0021fdb --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mossberg590/wpn_mossberg590_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1ea51c62ddb8ef367e5c7f436385679cea9907c6d2b3ee50ef015c9e66e33040 +size 284590 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mossberg590/wpn_mossberg590_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mossberg590/wpn_mossberg590_sk1_hud.ogf new file mode 100644 index 000000000..7c509e48b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mossberg590/wpn_mossberg590_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00cda6202e457c1019a12e5bb1ceffa6087a748f7ebce7789c03151e4aff7b9f +size 284594 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp133/wpn_mp133_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp133/wpn_mp133_hud.ogf new file mode 100644 index 000000000..11129210a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp133/wpn_mp133_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6045995d925125e9c9cf8bbc028c74d71c559be21f20adc7a20a48e4d9c89d78 +size 394155 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp153/wpn_mp153_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp153/wpn_mp153_hud.ogf new file mode 100644 index 000000000..51cce7459 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp153/wpn_mp153_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e6da46658ba37ad7f39d99eb3a79b9f4a924fbc5b2ea4594e2fad0f186a400f7 +size 455304 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_hud.ogf new file mode 100644 index 000000000..2bfb30ed5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fc8f1fe96cfd3b04773f2b963526770149e3501937bfda27981afb76c32b98f5 +size 1378390 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_nimble_hud.ogf new file mode 100644 index 000000000..92d49bfd8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c4e45fd30e0028d41498c34c105e3618fe11cb742b333c63c9bb5400e7569e99 +size 1378397 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_sk1_hud.ogf new file mode 100644 index 000000000..033710ad0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:985af09f85024864bd56f0635a392df7dd070364243c39d32dbe5667e6011a4b +size 1378394 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_sk2_hud.ogf new file mode 100644 index 000000000..b46342501 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_ac10632_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:63bff4b616f49ae21efa8e2edf75c70d17b0c4e70948f616c79b7bcabfe3d9f8 +size 1378394 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_hud.ogf new file mode 100644 index 000000000..0923202d7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:00921d36644f510951715042a480beb1b1c9562b560ae64d97ec614b3599ac8f +size 1601586 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_nimble_hud.ogf new file mode 100644 index 000000000..f6b6b5227 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d150cb199baf7bd65e1ef1d72ca223afe127e6cf8965f5467d47435d6cde0f90 +size 1601593 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_sk1_hud.ogf new file mode 100644 index 000000000..b9586250a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:522838d4f2eba442518a79b7c5f35b3253e4f6c16aa5108c9a9daa3a9128f88c +size 1601590 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_sk2_hud.ogf new file mode 100644 index 000000000..e21e9a0e1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_acog_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:20a0021f478d7f3a33ff78bb75ad374c572d64b40d98a9b9432e7a31679f6231 +size 1601590 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_hud.ogf new file mode 100644 index 000000000..407d3e600 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f397d08213cd40be7eaaeb22c2de8642ca55ac8b0ccbf7a3055c2939b06d810d +size 1471240 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_nimble_hud.ogf new file mode 100644 index 000000000..fe232cf39 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5af89080cc83a28f4467b2c2e512897bb423e28e902cade5c47de91efd931322 +size 1471247 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_sk1_hud.ogf new file mode 100644 index 000000000..515e7c5d8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:397364abf73a97bdd8c0a7cda8ec98fa44d20f2c4c216ed650c543c0cfbf51d8 +size 1471244 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_sk2_hud.ogf new file mode 100644 index 000000000..1678a71bf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_eot_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3fb5102a2c6d585478edd58efe13ad8ce2d69cde023a2436b5be61a2303aba98 +size 1471244 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_hud.ogf new file mode 100644 index 000000000..f909b174a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2910b7952d9cd30a39d043a40fe8cd2c6a9f809a0cecc67a44ccbbd008a7c0d7 +size 619197 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_nimble_hud.ogf new file mode 100644 index 000000000..f1eddb1ca --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:49f94e71a775393306ee6ba64765b75b1ef91a04f460d606818aaba4a77eba12 +size 619204 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_sk1_hud.ogf new file mode 100644 index 000000000..3785d6591 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bd82cf4406d18876ea1bff8b6746355a32674d1ae8cdfef544290ef97cfa5be2 +size 619201 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_sk2_hud.ogf new file mode 100644 index 000000000..3f6c821a1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5/wpn_mp5_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9dd092e59d4969a7db0c597547d3d1277a096507db2cc215876cfc9a3e970f91 +size 619201 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_hud.ogf new file mode 100644 index 000000000..7ec7eafe0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bc24d84778359721a0d3a32f7408db825170e5155a44872d074c6a641ceef1ca +size 634659 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_sk1_hud.ogf new file mode 100644 index 000000000..5abbae8c6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55cf79d55275c3241787d254eaadf614eb0814f55a8b9b19de91ceba883dc400 +size 634667 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_sk2_hud.ogf new file mode 100644 index 000000000..3e7887e3b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_ac10632_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ade94005ce7b29c61dd92dc974f8f2a213bfdeb06ed01062ced6421839cc039d +size 634667 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_hud.ogf new file mode 100644 index 000000000..63e95c315 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ce436f03b0d5cb96592f233dd48f24b95bbf66bf40918fc753238f3044ef64d8 +size 746519 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_sk1_hud.ogf new file mode 100644 index 000000000..304d6ea8e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ae9ec7be0574f078c5ca899adbb30ae756506ffddd03246d240342e3d7cf1138 +size 746527 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_sk2_hud.ogf new file mode 100644 index 000000000..323d8ddbe --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_acog_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33336ab954ff3c3d628a791c63f7c732ead698d4e4e4c5328be03756541e4f8d +size 746527 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_hud.ogf new file mode 100644 index 000000000..c64dae419 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0dcd9781100194db2920fdc4cf9d09715fbec285c990b73ba6d766b69ef72f53 +size 690494 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_sk1_hud.ogf new file mode 100644 index 000000000..dcac959f9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c8ef6877d11944ff637f74499e3c00a249d0225f6238f86f885c5964fe5beffa +size 690502 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_sk2_hud.ogf new file mode 100644 index 000000000..639cb97c1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_eot_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13fe2973c4c23a3637825af7a8b5a4163bbfa9087ec233630576cf935edbd922 +size 690502 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_hud.ogf new file mode 100644 index 000000000..7d2486f63 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:85089ca1c2ebe10804090384ceab69526ebb2573c022a4fce944ada0a82021f9 +size 780936 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_sk1_hud.ogf new file mode 100644 index 000000000..75791d437 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:14cc980d6a3598a7b3add2c61278577370151f0b31dcd8781f8d14933e8c75cb +size 780944 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_sk2_hud.ogf new file mode 100644 index 000000000..9a183dade --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp5sd/wpn_mp5sd_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6b516f69d03869d1a683ab01f353b68aa23b1764e93e592baec7d75c93fa7819 +size 780944 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_ac10632_hud.ogf new file mode 100644 index 000000000..a29df010f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:347f8881df35fa206f620f97dd26d38504e74714cae41c153a865d850d26686d +size 717112 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_acog_hud.ogf new file mode 100644 index 000000000..c51a5f8aa --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:71c027e820ed76c785057fead40692f75a26acd3028b72b4bc9c4ce5c41787d8 +size 890655 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_c-more_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_c-more_hud.ogf new file mode 100644 index 000000000..6ffa9e8be --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_c-more_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d6714c4add42320b13e938dc4ee52d56db52b8843adf97d395378cca4696aef1 +size 871311 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_eotech_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_eotech_hud.ogf new file mode 100644 index 000000000..bb0981c4f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_eotech_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3d342b32b95cd8fa566d5021e77eb8f7dc1ff203d3a75fef3ae56d34cc2ceadc +size 631326 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_hud.ogf new file mode 100644 index 000000000..1e307f3ee --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_mp7/wpn_mp7_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a2833873d91a293e7b111babf380d75d73b2acb1fb334a34d1a200e9f5464c87 +size 668480 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_oc33/wpn_oc33_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_oc33/wpn_oc33_hud.ogf new file mode 100644 index 000000000..66e8b32be --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_oc33/wpn_oc33_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f7aab8f4da30a423ba612257c7bebbbb67782a6b1a5c18a07fb7fda0ea9f2a0d +size 425675 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_oc33/wpn_oc33_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_oc33/wpn_oc33_sk1_hud.ogf new file mode 100644 index 000000000..f49bfd60d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_oc33/wpn_oc33_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d610bea014ff48bbb5749a858d575b43fef1ea278f3d712841bde865195af7a1 +size 425683 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_ac10632_hud.ogf new file mode 100644 index 000000000..2ea33d6a4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0f804e6541da2fefb4eb6be40d15c779abe782bc795edfb4fabd06d0a515d859 +size 942234 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_acog_hud.ogf new file mode 100644 index 000000000..509b56b3a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27b99b71d4a142eabff0b49c3250301d7cb620403711a73ee65c61243be6c74a +size 1177688 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_eot_hud.ogf new file mode 100644 index 000000000..3c73a7aee --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12040ba7d8b51a70f016bbc033f9abdcc284f979ebc6e77852d4fa0bca3e13c1 +size 1035759 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_hud.ogf new file mode 100644 index 000000000..2a5e4a081 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_p90/wpn_p90_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:728f999ec57e4ad03aa08c896b1e105a9648f9785181f7f59aaac9b2ab59364d +size 544029 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pb/wpn_pb_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pb/wpn_pb_hud.ogf new file mode 100644 index 000000000..4f1f439b0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pb/wpn_pb_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:169ca78035708344684a1042b98a5aab3e3c83794f1a9ebb666c305f7225602b +size 1440196 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pb/wpn_pb_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pb/wpn_pb_sk1_hud.ogf new file mode 100644 index 000000000..0ce38a02b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pb/wpn_pb_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e73e921a0123e0c53081ffc3c7c6ac6f07f34378e163e0310ef2d40ce6254c40 +size 1440200 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkm_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkm_hud.ogf new file mode 100644 index 000000000..627969c8f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkm_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5bf64cb91ab44413fe4232b0b76a26d026e003490f0b3ece420eab5bb8ad1da7 +size 1046795 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkm_zulus_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkm_zulus_hud.ogf new file mode 100644 index 000000000..902426a9b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkm_zulus_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6da07b586f76339988b923e84d010cd5a09216b3b5b2acec1432669522007ad1 +size 1196887 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkp_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkp_hud.ogf new file mode 100644 index 000000000..5cebff81e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pkm/wpn_pkp_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:01dd8035efb480c89e785cc049084ae64e435df9df4014908896c5edd0630024 +size 1046408 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_actor_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_actor_hud.ogf new file mode 100644 index 000000000..fad8884ef --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_actor_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a13f10aa920e258985fbb86ce7abbd3f21488e9b8efd23e09c94511caafaa794 +size 542804 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_hud.ogf new file mode 100644 index 000000000..f34fce3b4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:689756bd318854c12f5dabf4eec2b674072cd78a71492162d2d095314306bf7a +size 542806 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_sk1_hud.ogf new file mode 100644 index 000000000..f6a2f60f1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pm_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e02c84bf1b30aa8d7c73d19d17961795603a3c0ee7eb99abaaaeb5ad7b822798 +size 542810 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pmm_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pmm_hud.ogf new file mode 100644 index 000000000..1a839a98c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_pm/wpn_pmm_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5923a600d27bd4937268ca839bb5e329056bf41966dee909c1228d9b8bc8bef +size 405866 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_aim_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_aim_hud.ogf new file mode 100644 index 000000000..559c4d047 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_aim_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13ee7cf115c1c0556fd9c239f5d47f4d8b4765371550fc59149247e96e5a98aa +size 643206 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_hud.ogf new file mode 100644 index 000000000..762082668 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f884adb558c572c75be17f4609a02016a0198e628fbacb236141c31fc4259e06 +size 427518 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_nimble_hud.ogf new file mode 100644 index 000000000..b795f6e6c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a747a3d1c20ed0b02d983cbf884a5cb1d9fd88ad3df7a8bcc3639b87bd566e0 +size 506206 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_sk1_hud.ogf new file mode 100644 index 000000000..ed6743e78 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:772c15e07645ca0ae59b8cdd987f35375fed934b71e35275a442fd031bde0d19 +size 430297 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_sk2_hud.ogf new file mode 100644 index 000000000..9cd4c19f8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_protecta/wpn_protecta_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:62d34c2b51933b03ccaee79f1b4b4bf414090d5a998af94883da4fd2fd15b701 +size 430297 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_remington700/wpn_remington700_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_remington700/wpn_remington700_hud.ogf new file mode 100644 index 000000000..f0e65a009 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_remington700/wpn_remington700_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35ad6a867edde0937326c284ad96038d4fc064fc4502b8398f6d18da5abc03ce +size 419864 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rg6/wpn_rg6_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rg6/wpn_rg6_hud.ogf new file mode 100644 index 000000000..4d07bc4fe --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rg6/wpn_rg6_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b5df88a34dce76ca8669d7c57056b1b108c3c3775517b06c1b975ca5b1564299 +size 218188 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpd/wpn_rpd_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpd/wpn_rpd_hud.ogf new file mode 100644 index 000000000..c6207d4cf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpd/wpn_rpd_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e7acd0d27c86904e91ee7bd04ef9f75609cb250cb0ca5e0b93a3af26e85f3178 +size 487517 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpg7/wpn_rpg7_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpg7/wpn_rpg7_hud.ogf new file mode 100644 index 000000000..147f2f9bf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpg7/wpn_rpg7_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:77c41ceb0bdc4bcc77e678b74bf2b8ff8b174636e4c3367508a3cce8cd70e7bf +size 514467 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_1p29_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_1p29_hud.ogf new file mode 100644 index 000000000..e6ca5636a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_1p29_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:881560624bbaf3581a7f851cbb507446de4743d8af42b86a7681c77ba3d69c67 +size 1375961 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_hud.ogf new file mode 100644 index 000000000..0790157b8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c33ffdcfff5a1915229ab210f424ddcb2bf32573fa0e92c4b839256772c1093 +size 1490105 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_kobra_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_kobra_hud.ogf new file mode 100644 index 000000000..8608c765f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_kobra_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24e68a6d25c0487fa5386a2c92bc18bb3db6cc5d4ca5a402010a4daa2fc281fe +size 1207714 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_sk1_hud.ogf new file mode 100644 index 000000000..ea2e1e843 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk74_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06d1261d06b71863ed855aab16dacf39d7ccf2849fb8b74ffe6171e43cd463a4 +size 1490597 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk_hud.ogf new file mode 100644 index 000000000..e74b5739b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ef4bd9d34464cab93ec29ddd6ff88673e3a75cbf3fac6054c7931e9865053514 +size 1017548 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk_sk1_hud.ogf new file mode 100644 index 000000000..4f45c4751 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_rpk/wpn_rpk_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69fefe4f2c7fdbc2afd4ade67f90953d291c9556f972f759634541c245c4c8c4 +size 1017360 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_hud.ogf new file mode 100644 index 000000000..efddeebe4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7447e8dbeb269fd0ca924b37c9bb61b0e8b257a90f271266c91371234209f779 +size 934490 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_sk1_hud.ogf new file mode 100644 index 000000000..03f2abff2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e0af2350de9741c6dcdb2e25cce9d97a772d6e63c180b35de2ee9738b0054ec9 +size 934498 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_sk2_hud.ogf new file mode 100644 index 000000000..7f48a6e4b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_ac10632_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b54f56acf4a27cd04a336037ba159684dd3bf6f3a15fea56398f0807404475b +size 934498 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_hud.ogf new file mode 100644 index 000000000..78f334f5a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d70bb827c03f6c72fc779ee751351e277255cef90ee2dbc5ab96521d9f075a8f +size 1095070 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_sk1_hud.ogf new file mode 100644 index 000000000..a6def59a1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:37d0b15e0dbab27b9790a3f6722d92d32a390f9065e4a98805f276aca855b3d5 +size 1095078 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_sk2_hud.ogf new file mode 100644 index 000000000..680bc59bf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_acog_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:471ef320ff4b1b6380d427d9c8836226d54b295372c8a059a1e60baf959362a8 +size 1095078 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_hud.ogf new file mode 100644 index 000000000..83a8280b9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:547ac46fdaa0c0bab6169f7c03cf42bfd0723bac62c1276dbaa4c743166d790e +size 904833 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_sk1_hud.ogf new file mode 100644 index 000000000..a80572553 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ab33ef16833e16071fd3fb9ed1edeb378751ecbead7cae94ec848ded9b42f933 +size 904841 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_sk2_hud.ogf new file mode 100644 index 000000000..75e8f5941 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_eot_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4fab37ddbbaf02f3e5c75105dd55f8a77082637d2491edd336188806d176863d +size 904844 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_hud.ogf new file mode 100644 index 000000000..540820d1b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d02ee947a8a5adc18c8f8e5874540b227acce51683aff94f07acffbbb36ebbd1 +size 1217284 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_sk1_hud.ogf new file mode 100644 index 000000000..9fca81521 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4981fca368922ce7f3a472b51526b54e8b8ebe6204e3aa0e8fe4f8315349e01 +size 1217292 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_sk2_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_sk2_hud.ogf new file mode 100644 index 000000000..cbb299f34 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_scar/wpn_scar_sk2_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6c458471b5060b082c11342307d628ec2e4c1c4b36b5d5289cd235c1fc9f27da +size 1217292 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_hud.ogf new file mode 100644 index 000000000..864bcfa76 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b36d7ae9095a368aa52b29b538b6b99fa30067184ed579814cbe3f9fefd65ba1 +size 446925 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_nimble_hud.ogf new file mode 100644 index 000000000..df8f140a1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c06336085cdb5d7119d0e7a3e94e4b49ae734d640812bec7b5d00e079ed83e38 +size 446726 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_sk1_hud.ogf new file mode 100644 index 000000000..86074ec72 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig220/wpn_sig220_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0289a73b5329f79343c123d79db3e5847255a0a73c52504009fc8b4620e2370 +size 446603 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_hud.ogf new file mode 100644 index 000000000..0771a1145 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:29b74309e2a3ac9aad780a3c8bc2d9ebd1f4210924a867cc53322f3e6dad5940 +size 1246182 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_luckygun_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_luckygun_hud.ogf new file mode 100644 index 000000000..bd2fb9867 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_luckygun_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7ffbabff5dc04349c4f2a38cc4079ede11ec31e21aa6708147f6eadd43027b92 +size 1498337 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_sk1_hud.ogf new file mode 100644 index 000000000..1bcdd20b6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55c4b077f84b1e8d8b9f40940467af42a1bf0a8bb812ed7d3c3d006a20c2492b +size 1246194 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_sk4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_sk4_hud.ogf new file mode 100644 index 000000000..cf95b6758 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_ac10632_sk4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bac82e2a74974bfc4f92f3aec591b45f36fe0b6891d0425797cca546d29adf5c +size 1246194 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_hud.ogf new file mode 100644 index 000000000..1433c97bc --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc84f59545166b9c01fc3571c09b070e17a4e645475c7549b89302ea7a52a90d +size 1475301 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_luckygun_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_luckygun_hud.ogf new file mode 100644 index 000000000..009c8b245 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_luckygun_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4461ef6ab8244ebaeb866e3d96eb7bd475104dd8421c7ca13b8279b78dae3a8 +size 1743956 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_sk1_hud.ogf new file mode 100644 index 000000000..3d979b35f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be9b5e74a4b29e228da23d2879bb2fa27eeb4024f6df484ca382cd5ef6771086 +size 1475313 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_sk4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_sk4_hud.ogf new file mode 100644 index 000000000..34be5356e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_acog_sk4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:059ccdd88e12b9e94c6816c92e6b1283bfbb39e2bf9acad74bec9311827186ce +size 1475313 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_hud.ogf new file mode 100644 index 000000000..e9c627241 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:316b2f5d7fd35f3529115da91a3dbf5a63479a89282150ebf2bedf89760c3bba +size 2437468 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_luckygun_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_luckygun_hud.ogf new file mode 100644 index 000000000..8b20a4ba0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_luckygun_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:79d7811b2036652b4af45644ba6d97a51e88118fd571630eaa647203fdca1adc +size 1396023 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_sk1_hud.ogf new file mode 100644 index 000000000..041f38f58 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f5395db7678ad0c5a38cf89f6892135fe500fc95b717db512c7a896bde430732 +size 2437480 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_sk4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_sk4_hud.ogf new file mode 100644 index 000000000..6139a84d7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_eot_sk4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:055d476e769b25d5874251518be181fea1346796dd4d6fe9574f4354d792fd4b +size 2437480 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_hud.ogf new file mode 100644 index 000000000..c041e3b6b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f3569bc529f705acc7ae7c3842a69ab17f50c86edd592a8088798ba81e4adb2 +size 1369670 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_luckygun_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_luckygun_hud.ogf new file mode 100644 index 000000000..3a8b383b0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_luckygun_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:808b1e46576d9ccc725ee261600374487694dcfa1081edd67d36d4ad6bc2f91d +size 1531782 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sk1_hud.ogf new file mode 100644 index 000000000..0b8b2be6f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1c5896a7b35204e5fae045d6d6773a6c1d759d355056adbb2ae7e7939a2c1801 +size 1369682 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sk4_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sk4_hud.ogf new file mode 100644 index 000000000..ecd9580fe --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sk4_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:318ea21d72e6c51b578ed88fc5add8658843c98c52bdc8be30f851021cb54f28 +size 1369682 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sniper_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sniper_hud.ogf new file mode 100644 index 000000000..d8474acc1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig550/wpn_sig550_sniper_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a8ff1ce0d85249db38a90829ce6bff1143fe9c7ae724d378c658a97783705a15 +size 1363048 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_ac10632_hud.ogf new file mode 100644 index 000000000..ced7791ee --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b41f4964a2d0c2b769356b507840d3fdb96387dee1e9cb5224b2a0539d7c2b5a +size 1220063 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_acog_hud.ogf new file mode 100644 index 000000000..3c83970b8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:73d8080431a0614d160fe838f685cf0fb10a12cdd4f0a7671a03f061346b16f6 +size 1463765 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_eot_hud.ogf new file mode 100644 index 000000000..66868f8d0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bd77051f66112de26faa15cd2afc01534361381d887a5f396e19e620ebd6ea2 +size 1165929 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_hud.ogf new file mode 100644 index 000000000..5b66497f1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sig552/wpn_sig552_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:10808264bc6c6bac796d8e48585f4c7554039caca5a7386bbe95794f422b7a59 +size 1273642 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_hud.ogf new file mode 100644 index 000000000..6e97cfdc7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:30dcbae32480b7a63acf7fc1f925250d55ae804f9068d9a9b5c11cc3bf05660c +size 504363 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_nimble_hud.ogf new file mode 100644 index 000000000..b86576279 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:55525ea67bdca2edb4d316aaa7462aca20ed77b436ddf94a40357f58fedf5472 +size 504370 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_sk1_hud.ogf new file mode 100644 index 000000000..a05c15d00 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_spas12/wpn_spas12_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:07f80935c7127e3408d3f6b54312729c27acd4077aa0759bf9d8ad6e002d0955 +size 504367 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sr25/wpn_sr25_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sr25/wpn_sr25_hud.ogf new file mode 100644 index 000000000..b3b1650f9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_sr25/wpn_sr25_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:033bc229046d7852d5b1454b40b29ab308827d5c247e60d94a4f892fbc717015 +size 1029128 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_trg/wpn_trg_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_trg/wpn_trg_hud.ogf new file mode 100644 index 000000000..67962756e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_trg/wpn_trg_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fa0ff1a863fa11b27a574ee132828e1e6dea12d19d7b10cba4403c5536efb6ef +size 676006 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_ac10632_hud.ogf new file mode 100644 index 000000000..dd30212ab --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:eabdfe4bb9c2f8e84ab248b85c0e7f82a743da65600e4e9a40451e1bad9b2fbd +size 658050 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_ac10632_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_ac10632_sk1_hud.ogf new file mode 100644 index 000000000..8bddcedd7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_ac10632_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:aac49b779648765f0f07cb0e9e68cc0d2633b3567e46837aeaa18eaae44f824f +size 658058 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_acog_hud.ogf new file mode 100644 index 000000000..27e07d0d5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1cb3602d23c4bcae53426c3d11d97b67e6c5ab90eb84bb2fefa057a8a1ada584 +size 818570 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_acog_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_acog_sk1_hud.ogf new file mode 100644 index 000000000..d7e11b4a7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_acog_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0a3d44a04fdaae3f6c22d87ddba14a7ba29784aa144d638884212f61ec6b6b59 +size 818578 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_eot_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_eot_hud.ogf new file mode 100644 index 000000000..4cd656748 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_eot_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4e00de8e3e85dbd88ac0aa6b3e8734a377c6070c7e9a7c36574c57b3c6418c5 +size 658036 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_eot_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_eot_sk1_hud.ogf new file mode 100644 index 000000000..53807ec9e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_eot_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e867cafbe8ee5d2f07067c11553634595b9c17a43283d594a63d205d5e6b8537 +size 658044 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_hud.ogf new file mode 100644 index 000000000..43f1eccc1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c2865d249f24b5ab76a4f4fb986c4759faa2b204a51dfc8c31fe21c3c08ddb7d +size 805702 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_sk1_hud.ogf new file mode 100644 index 000000000..5cd446494 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_ump45/wpn_ump45_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:83fcaa4894328fe79a619124a2f8ce1de51b93199acd9c496f91682ee3051e9f +size 788626 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usas12/wpn_usas12_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usas12/wpn_usas12_hud.ogf new file mode 100644 index 000000000..75c6044f1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usas12/wpn_usas12_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c071bf1c1dece9152de7e215cdd38507a8b8bf4e2abca8a0d3c4b66bc6fbd54b +size 481509 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp45_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp45_hud.ogf new file mode 100644 index 000000000..6756c439b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp45_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df0788868b2dcb6a1f9ae8b96c4481d9f1b19fc480eff5e3064bcc9e24903c11 +size 392684 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp45_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp45_sk1_hud.ogf new file mode 100644 index 000000000..46c14d8f5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp45_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b760078d38144179cfd528cbbf8a4b453845aa55f1f2c86152e9c2ad9d9f239d +size 392692 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp_match_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp_match_hud.ogf new file mode 100644 index 000000000..82cf2eea0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp_match_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:35d54ec0d030407b29ded1c2e9efbb29cdfca26d91a7a077299a3a7c3762f574 +size 288793 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp_nimble_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp_nimble_hud.ogf new file mode 100644 index 000000000..4a131d6bb --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_usp45/wpn_usp_nimble_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:316d986bb1fdc89288cecf8c72072d6eedb42322037a905de0a4bc45af54fe05 +size 289575 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_wa2000/wpn_wa2000_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_wa2000/wpn_wa2000_hud.ogf new file mode 100644 index 000000000..4332ce9dd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_wa2000/wpn_wa2000_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:341ca0bc5f5ba4e5ca7cc9d7b419da05ab40d4ad5d699360bea08acfb8575602 +size 529036 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_walter99/wpn_walter99_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_walter99/wpn_walter99_hud.ogf new file mode 100644 index 000000000..b0c43e088 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_walter99/wpn_walter99_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7c28ca196c368d13be9a8530a40b835ad56e88bc49526d20ce8fb83521eb82ab +size 262591 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_walter99/wpn_walter99_sk1_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_walter99/wpn_walter99_sk1_hud.ogf new file mode 100644 index 000000000..484320487 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_walter99/wpn_walter99_sk1_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1aa603bbd7794ebfd71b611b1a4c1b0c5e36d74c5e7cfbd6b092bac69303e54d +size 236075 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_acog_hud.ogf new file mode 100644 index 000000000..004344d6a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:12e10b4af522cba066534d767f227cfeaa95efe52b6b73a99d0d99cb59b5f69c +size 940597 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_eotech_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_eotech_hud.ogf new file mode 100644 index 000000000..cb447ff96 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_eotech_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fe39245e921aa129c4467afecb6c22858526098e180f049fe8b8910f4d80739d +size 815132 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_hud.ogf new file mode 100644 index 000000000..22c5c5d2d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/old/wpn_xm8_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e34c353b9b6a1c2b8703f8be9e5e4d39a7a1ce5fe4bf7e6c7e9954c0cea8a67 +size 716891 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_ac10632_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_ac10632_hud.ogf new file mode 100644 index 000000000..2ff4a6e57 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_ac10632_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:496722c95b97e5cc304feb68a49397e204166472d5874d7b214309afa9c0826f +size 717361 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_ac11090_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_ac11090_hud.ogf new file mode 100644 index 000000000..cca6f69a2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_ac11090_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:997a5eeeaa1c9f93e371b2321c6df4f70e9a2010f11bc6941ebda2a35cbc298a +size 898748 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_acog_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_acog_hud.ogf new file mode 100644 index 000000000..79013ae37 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_acog_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:df2f1c8785291696e46bf4094e18e6c395e468692024fbc16d1e3bc065b3984b +size 957423 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_c-more_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_c-more_hud.ogf new file mode 100644 index 000000000..3422a3ac3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_c-more_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e10f08b4e86c6fb6738917abc1e0ca46184a9e305a2516c8691b95c61549e8e9 +size 1063931 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_eotech_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_eotech_hud.ogf new file mode 100644 index 000000000..82fc7fff7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_eotech_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:21ac25be0c1b3d3d1870d90b1e3b4c47a91121660f40566887470a3d737a877b +size 824374 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_hud.ogf b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_hud.ogf new file mode 100644 index 000000000..22c5c5d2d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/meshes/anomaly_weapons/wpn_xm8/wpn_xm8_hud.ogf @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e34c353b9b6a1c2b8703f8be9e5e4d39a7a1ce5fe4bf7e6c7e9954c0cea8a67 +size 716891 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/ads_reloads.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/ads_reloads.script new file mode 100644 index 000000000..aefac736d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/ads_reloads.script @@ -0,0 +1,40 @@ +function is_valid_wpn(wpn) + local section = wpn:section() + local has_tristate_reload = ini_sys:r_string_ex(section,"tri_state_reload") + + -- Ignore weapons that are not jammed / at max ammo capacity + local casted_wpn = wpn:cast_Weapon() + if (not casted_wpn) or (not casted_wpn:IsMisfire() and casted_wpn:GetAmmoElapsed() == casted_wpn:GetAmmoMagSize()) then + return false + end + + if has_tristate_reload then + if animation_common.has_animation(section, "anm_open_aim") then + return true + else + return false + end + else + if animation_common.has_animation(section, "anm_reload_aim") then + return true + else + return false + end + end +end + +function on_before_key_press(key, bind, dis, flags) + if bind ~= key_bindings.kWPN_RELOAD then return end + local wpn = db.actor:item_in_slot(db.actor:active_slot()) + if not wpn then return end + if not is_valid_wpn(wpn) then return end + if wpn:get_state() == 7 then return end + + wpn:switch_state(7) + flags.ret_value = false +end + +function on_game_start() + if magazines then return end + RegisterScriptCallback("on_before_key_press", on_before_key_press) +end \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/animation_common.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/animation_common.script new file mode 100644 index 000000000..a14111134 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/animation_common.script @@ -0,0 +1,130 @@ +-- Might want to extend this to track flags based on IDs since detectors have animations too +-- Likely overkill unless someone implements custom anims for them +FLAGS = {} + +local active_flags = {} + +-- Export: Flags +function get_flag(flag) + return active_flags[flag] +end + +function set_flag(flag) + active_flags[flag] = true +end + +function remove_flag(flag) + active_flags[flag] = nil +end + +function add_flag(flag) + -- Exit early if it already exists + if FLAGS[flag] then return end + FLAGS[flag] = #FLAGS +end + +local anim_mutators = {} + +-- Export: Animation Mutators +function add_anim_mutator(functor, priority) + -- Add mutator func to list of mutators + table.insert(anim_mutators, {functor=functor, priority=priority}) + + -- Sort anim_mutators again + table.sort(anim_mutators, function(a,b) return a.priority < b.priority end) +end + +function has_animation(section, anm) + local hud_section = ini_sys:r_string_ex(section,"hud") or section + return SYS_GetParam(0, hud_section, anm) +end + +function mutate_anim(anm_table, anm_suffix, section) + local new_anm = anm_table.anm_name .. anm_suffix + if has_animation(section, new_anm) then + anm_table.anm_name = new_anm + return true + end + return false +end + +-- Sounds +local sound_object_by_sec_by_path = {} +function get_safe_sound_object(path, sec) + assert(path, "path to sound file was nil") + assert(sec, "item section was nil") + + if sound_object_by_sec_by_path[sec] == nil then + sound_object_by_sec_by_path[sec] = {} + end + local snd_obj = sound_object(path) + sound_object_by_sec_by_path[sec][path] = snd_obj + return snd_obj +end + +function stop_all_sound_object(sec) + -- printf("stop_all_sound_object(sec): %s", sec) + for section, list in pairs(sound_object_by_sec_by_path) do + for path, v in pairs(list) do + if section == sec and v:playing() then + -- printf("sec: %s| Stopping: %s", sec, path) + v:stop() + end + end + sound_object_by_sec_by_path[sec] = nil + end +end + +function get_sound_from_anm(anm_name) -- TODO: allow sound volume to be defined in config + return anm_name:gsub("anm_", "scripted_snd_") +end + +-- Probably worth adding an ordered list of functions with conditions that can mutate anm_table +-- and use this script as source of truth for about-to-be-played animations since callback order is random between scripts +---@param anm_table {anm_name: string, anm_mixin: boolean, anm_mixin2: boolean, anm_state: integer, anm_speed: number, anm_end: number} +---@param item game_object +function actor_on_hud_animation_play(anm_table, item) + if not item then return end + stop_all_sound_object(item:section()) + local section = item:section() + + -- Execute each mutator functor in turn, ordered by priority + for i, mutator in ipairs(anim_mutators) do + local stop = mutator.functor(anm_table, item) + if stop then break end + end + + -- Sound: Check if weapon has a valid scripted sound in config + local anm_name = anm_table.anm_name + + local snd_name = get_sound_from_anm(anm_name) + + local snd_value = SYS_GetParam(0, section, snd_name) + if not snd_value then return end + + -- Look for actor-specific sounds if they exist + if item:parent() and item:parent():id() == AC_ID then + local snd_value_actor = SYS_GetParam(0, section, snd_name .. "_actor") + if snd_value_actor then + snd_value = snd_value_actor + end + end + + local snd_values = str_explode(snd_value,",") + local snd_path = snd_values[1] + local never_cancel = snd_values[2] + + -- Play sound + local snd_obj = get_safe_sound_object( snd_path, item:section() ) + if not snd_obj then return end + + if never_cancel then + snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0, 1.0) + else + snd_obj:play(db.actor, 0, sound_object.s2d) + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_hud_animation_play",actor_on_hud_animation_play) +end diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/aol_anim_transitions.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/aol_anim_transitions.script new file mode 100644 index 000000000..959a37ab5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/aol_anim_transitions.script @@ -0,0 +1,169 @@ +local common = animation_common + +valid_anims = {} +local mutate_anim = animation_common.mutate_anim +function animation_common.mutate_anim(anm_table, anm_suffix, section) + table.insert(valid_anims, anm_suffix) + return mutate_anim(anm_table, anm_suffix, section) +end + +transitions = { +} + +function add_strict_transition(hud_section, start_anm, end_anm, transition_anm) + if not (hud_section and start_anm and end_anm and transition_anm) then + printf("[ERROR] aol_anim_transitions: Could not add new transition (a parameter was nil)") + return + end + + -- Make sure transitions is properly set as a table of tables + transitions[hud_section] = transitions[hud_section] or {} + transitions[hud_section][start_anm] = transitions[hud_section][start_anm] or {} + + transitions[hud_section][start_anm][end_anm] = transition_anm +end + +pattern_transitions = { +} + +function add_pattern_transition(hud_section, start_anm, end_anm, transition_anm, priority) + priority = priority or 25565 + if not (hud_section and start_anm and end_anm and transition_anm) then + printf("[ERROR] aol_anim_transitions: Could not add new transition (a parameter was nil)") + return + end + + pattern_transitions[hud_section] = pattern_transitions[hud_section] or {} + table.insert(pattern_transitions[hud_section], { + ["start_anm"] = start_anm, + ["end_anm"] = end_anm, + ["transition_anm"] = transition_anm, + ["priority"] = priority + }) +end + +local ini_items = ini_file("system.ltx") +local function itr(section) + local is_hud_section = section:match('_hud$') + if is_hud_section then + local line_count = ini_items:line_count(section) + for i=0,line_count-1 do + local result, id, value = ini_items:r_line_ex(section,i,"","") + + local is_strict_transition = id:match("^ts_strict_") + if is_strict_transition then + local anm_names = str_explode(value,",") + add_strict_transition(section, anm_names[1], anm_names[2], anm_names[3]) + end + + local is_pattern_transition = id:match("^ts_pattern_") + if is_pattern_transition then + local anm_names = str_explode(value,",") + add_pattern_transition(section, anm_names[1], anm_names[2], anm_names[3], anm_names[4]) + end + end + end + return false +end +ini_items:section_for_each(itr) +table.sort(pattern_transitions, function(a,b) return a["priority"] < b["priority"] end) + +local previous_anms = {} + +function set_strict_transition(anm_table, hud_section) + -- Make sure item has transitions + local item_transitions = transitions[hud_section] + if not (item_transitions) then + -- previous_anms[hud_section] = anm_table.anm_name + return false + end + + -- Make sure there is a previous anm to check + local start_anm = previous_anms[hud_section] + if not start_anm then + -- previous_anms[hud_section] = anm_table.anm_name + return false + end + + -- Get transition anm from table + local end_anm = anm_table.anm_name + local transition_anm = item_transitions[start_anm] and item_transitions[start_anm][end_anm] + if not (transition_anm) then + -- previous_anms[hud_section] = anm_table.anm_name + return false + end + + -- Re-add valid suffixes from previous mutations + for i, anm_suffix in ipairs(valid_anims) do + if animation_common.has_animation(hud_section, transition_anm .. anm_suffix) then + transition_anm = transition_anm .. anm_suffix + end + end + + anm_table.anm_name = transition_anm + return true +end + +function set_pattern_transition(anm_table, hud_section) + -- Make sure item has transitions + local item_transitions = pattern_transitions[hud_section] + if not item_transitions then + return false + end + + -- Make sure there is a previous anm to check + local start_anm = previous_anms[hud_section] + if not start_anm then + -- previous_anms[hud_section] = anm_table.anm_name + return false + end + + + local end_anm = anm_table.anm_name + for _, transition in ipairs(item_transitions) do + local transition_anm = transition["transition_anm"] + -- Re-add valid suffixes from previous mutations + for i, anm_suffix in ipairs(valid_anims) do + if animation_common.has_animation(hud_section, transition_anm .. anm_suffix) then + transition_anm = transition_anm .. anm_suffix + end + end + + if end_anm:match(transition["end_anm"]) and + start_anm:match(transition["start_anm"]) and + start_anm ~= transition_anm and + end_anm ~= transition_anm and + start_anm ~= end_anm then + + anm_table.anm_name = transition_anm + return true + end + end + return false +end + +function anm_transitions(anm_table, item) + -- printf("ITEM: " .. item:section() .. " | ANM: " .. anm_table.anm_name) + local hud_section = SYS_GetParam(0, item:section(), "hud", nil) + if not hud_section then + return + end + + local has_strict_transition = set_strict_transition(anm_table, hud_section) + + if not has_strict_transition then + set_pattern_transition(anm_table, hud_section) + end + + -- Track now playing animation + previous_anms[hud_section] = anm_table.anm_name + + -- Clear valid anims + valid_anims = {} + + -- printf("ITEM: " .. item:section() .. " | ANM: " .. anm_table.anm_name) +end + +function on_game_start() + common.add_anim_mutator(anm_transitions, 999) +end \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/aol_sprint_cancel.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/aol_sprint_cancel.script new file mode 100644 index 000000000..2c66d7a42 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/aol_sprint_cancel.script @@ -0,0 +1,47 @@ +-- The idea is to stop the walk2sprint animation if the player stops sprinting during the animation + +-- Use my transition animations script as 'truth' for currently playing animation +-- Likely to break if multiple scripts are using actor_on_hud_animation_play, but should be good enough for transition animations specifically +local current_animation = "" +local stop_animation = false + +-- Slightly cleaner string equivalence check which should ignore variants like _empty or _jammed +function isAnimationEqualTo(anim_name) + if current_animation:match(anim_name) then + return true + end + return false +end + +aol_anim_transitions_anm_transitions = aol_anim_transitions.anm_transitions +function aol_anim_transitions.anm_transitions(anm_table, item) + local prev_name = anm_table.anm_name + aol_anim_transitions_anm_transitions(anm_table, item) + -- Restore original animation (probably idle) if previous animation was cancelled + -- This should prevent sprint2walk from playing if its counterpart walk2sprint was cancelled + if stop_animation then + stop_animation = false + if (isAnimationEqualTo("anm_walk2sprint") or isAnimationEqualTo("anm_sprint2walk")) then + anm_table.anm_name = prev_name + end + end + current_animation = anm_table.anm_name +end + +-- Detect if the player is not sprinting during the walk2sprint animation +-- Firebreath: added the elseif in because sometimes the player stops sprint animation +-- when interrupted by small obstacles like stairs +function actor_on_movement_changed(num) + if stop_animation then return end + if (not IsMoveState("mcSprint") and isAnimationEqualTo("anm_walk2sprint")) then + stop_animation = true + game.stop_hud_motion() + elseif (IsMoveState("mcSprint") and isAnimationEqualTo("anm_sprint2walk")) then + stop_animation = true + game.stop_hud_motion() + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_movement_changed",actor_on_movement_changed) +end diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/loadouts_injector.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/loadouts_injector.script new file mode 100644 index 000000000..76b43c4dc --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/loadouts_injector.script @@ -0,0 +1,255 @@ +-- custom loadouts +local custom_loadouts = { + name = {}, + squad = {}, + visual = {} +} +local custom_weapons = {} +local ini_npc_loadouts = ini_file("loadouts\\npc_importer.ltx") +local ini_wep_loadouts = ini_file("loadouts\\wep_importer.ltx") +local ini_loadouts = ini_file("items\\settings\\npc_loadouts\\npc_loadouts.ltx") +local scope_chance = {} +local MAX_ITER = 10 +local factions = { + ["stalker"] = true, + ["csky"] = true, + ["dolg"] = true, + ["ecolog"] = true, + ["freedom"] = true, + ["killer"] = true, + ["army"] = true, + ["bandit"]= true, + ["monolith"] = true, + ["renegade"] = true, + ["isg"] = true, + ["zombied"] = true, + ["greh"] = true +} + +local ranks = { + ["novice"] = true, + ["trainee"] = true, + ["experienced"] = true, + ["professional"] = true, + ["veteran"] = true, + ["expert"] = true, + ["master"] = true, + ["legend"] = true, +} + +local slots = { + + ["primary"] = "primary", + ["p"] = "primary", + ["secondary"] = "secondary", + ["s"] = "secondary", + ["extra"] = "extra", + ["e"] = "extra", +} + +function preload() + + tmp = ini_loadouts:r_string_ex("settings","scope_chance") + if tmp then + tmp = str_explode(tmp,",") + for i=1,#tmp do + scope_chance[i] = tonumber(tmp[i]) or 0 + end + end + + custom_loadouts.meta = {} + ini_npc_loadouts:section_for_each(function(section) + local loadouts = ini_npc_loadouts:r_string_ex(section, "loadout_sec") + loadouts = str_explode(loadouts, ",") + local weapons = ini_npc_loadouts:r_string_ex(section, "weapons_sec") + -- skip if loadout/weapons not defined (bad section) + if is_empty(loadouts) or not weapons then return end + if not ini_wep_loadouts:section_exist(weapons) then return end + local n = ini_wep_loadouts:line_count(weapons) + + for i=0,n-1 do + local _, id, value = ini_wep_loadouts:r_line_ex(weapons,i) + --printf("Adding custom weapon %s", id) + if not custom_weapons[id] then + tmp = str_explode(id,":") + if tmp and tmp[1] and ini_sys:section_exist(tmp[1]) then + custom_weapons[id] = {} + custom_weapons[id].sec = tmp[1] + custom_weapons[id].attachment = tmp[2] or "0" + custom_weapons[id].ammo_type = tmp[3] or "0" + custom_weapons[id].chance = tonumber(tmp[4]) or 50 + end + end + end + for k,loadout in pairs(loadouts) do + add_weapons_to_loadout(loadout, weapons) + end + end) +end + +function add_weapons_to_loadout(loadout, weapons) + --printf("Adding %s section of weapons to %s", weapons, loadout) + tokens = str_explode(loadout, "_") + if not (#tokens == 2 or #tokens == 3) then + --printf("Invalid length") + return end + if not tokens[3] then tokens[3] = "primary" end + if not factions[tokens[1]] then + --printf("%s not faction", tokens[1]) + return end + if not ranks[tokens[2]] then + --printf("%s not rank", tokens[2]) + return end + if not slots[tokens[3]] then + --printf("%s not slot", tokens[3]) + return end + faction, rank, slot = unpack(tokens) + slot = slots[slot] + if not custom_loadouts[faction] then custom_loadouts[faction] = {} end + if not custom_loadouts[faction][rank] then custom_loadouts[faction][rank] = {} end + if not custom_loadouts[faction][rank][slot] then custom_loadouts[faction][rank][slot] = {} end + + local n = ini_wep_loadouts:line_count(weapons) + --printf("Adding %s weapons for %s %s %s", n, faction, rank, slot) + for i=0,n-1 do + local _, id, value = ini_wep_loadouts:r_line_ex(weapons,i) + if custom_weapons[id] then + l = custom_loadouts[faction][rank][slot] + l[#l+1] = id + end + end + +end + +function get_table(comm, rank, slot) + if not custom_loadouts[comm] then return {} end + if not custom_loadouts[comm][rank] then return {} end + return custom_loadouts[comm][rank][slot] or {} +end + +CreateItem = xrs_rnd_npc_loadout.create_item_on_npc +function xrs_rnd_npc_loadout.create_item_on_npc(se_npc, squad_name, comm, rank, visual, player_id, slot_type) + -- Get loadout section + local loadout = ini_loadouts:r_string_ex("loadouts_per_squad",squad_name) or ini_loadouts:r_string_ex("loadouts_per_name",se_npc:section_name()) or ini_loadouts:r_string_ex("loadouts_per_visual",visual) or (comm .. "_" .. rank) + if (not ini_loadouts:section_exist(loadout)) then + loadout = comm + if (not ini_loadouts:section_exist(loadout)) then + loadout = "default" + end + end + + -- Get slot section + local slot = ini_loadouts:r_string_ex(loadout,slot_type) + --printf("Reading entries for slot %s, for %s %s %s", slot, comm, rank, slot_type) + local vanilla_loadout_entries = not (slot and ini_loadouts:section_exist(slot)) and 0 or ini_loadouts:line_count(slot) + local custom_tbl = get_table(comm, rank, slot_type) + if not custom_tbl or is_empty(custom_tbl) then + --printf("Defaulting to vanilla loadout") + CreateItem(se_npc, squad_name, comm, rank, visual, player_id, slot_type) + return + end + -- randomly pick entries from this range + -- if the range is in vanilla loadout entries, roll from there + -- otherwise + local to_pick = vanilla_loadout_entries + #custom_tbl + --printf("Picking from %s + %s entries", vanilla_loadout_entries, #custom_tbl) + local pick = nil + local iterations = 0 + while not pick and iterations < MAX_ITER do + local p = math.random(to_pick) + if p > vanilla_loadout_entries then + local new_entry = p - vanilla_loadout_entries + local wpn = custom_weapons[custom_tbl[new_entry]] + if math.random(100) < wpn.chance then + pick = p + break + end + elseif math.random(100) < 50 then + pick = p + break + end + iterations = iterations + 1 + end + if not pick then pick = math.random(to_pick) end + local weapon_entry + if pick > vanilla_loadout_entries then + pick = pick - vanilla_loadout_entries + id = custom_tbl[pick] + if id then + weapon_entry = custom_weapons[id] + end + end + if weapon_entry then + create_item(se_npc, weapon_entry) + else + CreateItem(se_npc, squad_name, comm, rank, visual, player_id, slot_type) + end +end + +function create_item(se_npc, item_data) + + local section = item_data.sec + local ammo_typ = item_data.ammo_type + local attachment = item_data.attachment + -- Items + if (slot_type == "extra") then + alife_create_item(section, se_npc) + -- Weapons + else + -- Add random scope + local cha = game_difficulties.get_eco_factor("scope_chance") or scope_chance[ game_difficulties.get_eco_factor("type") or 1 ] + cha = cha * 100 + if ini_sys:line_exist(section,"scopes") and (math.random(100) <= cha) then + local scopes = parse_list(ini_sys, section, "scopes") + if scopes and (#scopes > 0) then + local pick_scope = scopes[math.random(#scopes)] + if pick_scope and ini_sys:section_exist(section .. "_" .. pick_scope) then + section = section .. "_" .. pick_scope + end + end + end + local se_wpn = alife_create_item(section, se_npc) + if (se_wpn) then + local ammos = parse_list(ini_sys, section, "ammo_class") + + local ct = ammos and #ammos + local ammo_type = (ammos and ammo_typ and ammo_typ == "r" and ct and math.random(0,ct-1)) or (ammos and ammo_typ and tonumber(ammo_typ)) or 0 + local ammo_section = ammo_type and ammos[ammo_type+1] + + if not (ammo_section) then + ammo_type = 0 + ammo_section = ammo_type and ammos[ammo_type+1] + printe("! ERROR: NPC Loadouts | wrong ammo_type set for [%s], missing value in ammo_class", section) + end + if (attachment or ammo_typ) then + local data = utils_stpk.get_weapon_data(se_wpn) + + local flag = tonumber(attachment) or 0 + if (attachment == "r") then + flag = 0 + if (utils_data.read_from_ini(nil,section,"scope_status","float",nil)) then + flag = flag + 1 + end + + if (utils_data.read_from_ini(nil,section,"grenade_launcher_status","float",nil)) then + flag = flag + 2 + end + + if (utils_data.read_from_ini(nil,section,"silencer_status","float",nil)) then + flag = flag + 4 + end + + flag = math.random(0,flag) + end + + data.addon_flags = flag + data.ammo_type = ammo_type + utils_stpk.set_weapon_data(data,se_wpn) + end + end + end +end + +function on_game_start() + preload() +end \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/shotgun_reload_fix.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/shotgun_reload_fix.script new file mode 100644 index 000000000..675738f75 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/shotgun_reload_fix.script @@ -0,0 +1,11 @@ +function actor_on_hud_animation_play(anm_table) + + if (anm_table.anm_name == "anm_add_cartridge") then + anm_table.anm_mixin = false + end + +end + +function on_game_start() + RegisterScriptCallback("actor_on_hud_animation_play", actor_on_hud_animation_play) +end \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/shotgun_unjam_fix.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/shotgun_unjam_fix.script new file mode 100644 index 000000000..f1cc7c949 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/shotgun_unjam_fix.script @@ -0,0 +1,58 @@ +common = animation_common + +function block_shotgun_reload(anm_table, item) + -- Ignore weapons without unjam animation + if not common.has_animation(item:section(), "anm_reload_misfire") then + return + end + + -- Exit early + if not (IsShotgun(item) + and anm_table.anm_name == "anm_open" + and item:cast_Weapon():IsMisfire()) then + return + end + + -- Cancel shotgun reload + anm_table.anm_name = "$cancel" + + -- Play unjam animation and sound + CreateTimeEvent("shotgun_unjam_fix", "start_unjam", 0.001, function(wpn) + wpn:play_hud_motion("anm_reload_misfire", true, 0, 1, 0) + + -- Allow sound cancel if animation is interrupted + local sound_path = SYS_GetParam(0, wpn:section(), "snd_reload_misfire") + if sound_path then + local sound = common.get_safe_sound_object(sound_path, wpn:section()) + sound:play(db.actor, 0, sound_object.s2d) + end + + common.set_flag("SHOTGUN_UNJAM") + return true + end, item) + + -- Stop checks for variants + return true +end +common.add_anim_mutator(block_shotgun_reload, -9999) + +function actor_on_hud_animation_end(item,section,motion,state,slot) + -- Clear jam when unjam anim ends + if common.get_flag("SHOTGUN_UNJAM") then + item:cast_Weapon():SetMisfire(false) + common.remove_flag("SHOTGUN_UNJAM") + end +end + +-- Stop unjam spam +function on_before_key_press(dik, bind, dis, flags) + if bind == key_bindings.kWPN_RELOAD + and common.get_flag("SHOTGUN_UNJAM") then + flags.ret_value = false + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_hud_animation_end",actor_on_hud_animation_end) + RegisterScriptCallback("on_before_key_press",on_before_key_press) +end \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_ammo.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_ammo.script new file mode 100644 index 000000000..1b372944d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_ammo.script @@ -0,0 +1,12 @@ +local common = animation_common + +-- Animation: Append with '_ammoX' if weapon has X amount of ammo left +local function anm_ammo(anm_table, item) + local section = item:section() + local ammo_amount = item:get_ammo_in_magazine() + + local suffix = "_ammo" .. ammo_amount + + common.mutate_anim(anm_table, suffix, section) +end +common.add_anim_mutator(anm_ammo, 3.5) \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_core.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_core.script new file mode 100644 index 000000000..a441ba1d0 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_core.script @@ -0,0 +1,128 @@ +local common = animation_common + +-- Flags +common.add_flag("SHOTGUN_PUMP") + +------------------------------------------------- +-- Animation Mutators +------------------------------------------------- +-- Animation: Append animation name with '_empty' if weapon is empty and has valid anim for it +local function anm_empty(anm_table, item) + local section = item:section() + if IsWeapon(item) and item.get_ammo_in_magazine then + local ammo = item:get_ammo_in_magazine() + -- check if weapon is empty + if ammo == 0 then + -- check if anim is defined in config + common.mutate_anim(anm_table, "_empty", section) + common.set_flag("SHOTGUN_PUMP") + end + end +end +common.add_anim_mutator(anm_empty, 1) + +-- Animation: Append with '_g' if weapon has a grenade launcher and can fire a grenade +-- Append with '_w_gl' if weapon has a grenade launcher, but is not in GL mode (can fire bullets) +-- Append with '_alt' if weapon does not have a GL, but is in alt aim mode +local function anm_alt_modes(anm_table, item) + local section = item:section() + local alt = item:weapon_in_grenade_mode() + local has_gl = utils_item.has_attached_gl(item) + + if alt and has_gl then + common.mutate_anim(anm_table, "_g", section) + elseif has_gl then + common.mutate_anim(anm_table, "_w_gl", section) + elseif alt then + common.mutate_anim(anm_table, "_alt", section) + end +end +common.add_anim_mutator(anm_alt_modes, 1.1) + +-- Animation: Append with '_aim' is player is aiming down sights +local function anm_ads(anm_table, item) + local section = item:section() + + local wpn = item:cast_Weapon() + if not wpn then return end + + if wpn:IsZoomed() then + common.mutate_anim(anm_table, "_aim", section) + end +end +common.add_anim_mutator(anm_ads, 1.3) + +-- Animation: Append with '_jammed' if weapon misfires (vanilla) or fails to eject (WPO) +-- Append with '_superjammed' if magazine needs to be removed before unjam (WPO) +local function anm_jammed(anm_table, item) + local section = item:section() + local jam_type = nil + -- Check for WPO jams + if arti_jamming then + local jam_status = arti_jamming.get_jam_status(item:id()) + if jam_status == arti_jamming.JamType.FailureToEject then + jam_type = "_jammed" + elseif jam_status == arti_jamming.JamType.DoubleFeed then + jam_type = "_superjammed" + end + end + -- Check for vanilla jams (vanilla jams appear in anm_shots before WPO catches them) + if not jam_type then + local wpn = item:cast_Weapon() + if not wpn then return end + + jam_type = item:cast_Weapon():IsMisfire() and "_jammed" or nil + end + if jam_type then + local success = common.mutate_anim(anm_table, jam_type, section) + + -- Fallback to '_jammed' if '_superjammed' does not exist + if not success and jam_type == "_superjammed" then + common.mutate_anim(anm_table, jam_type, section) + end + end +end +common.add_anim_mutator(anm_jammed, 2) + +-- Animation: Prepend with _pump if performing empty reload +local function anm_pump(anm_table, item) + local section = item:section() + if common.get_flag("SHOTGUN_PUMP") then + if anm_table.anm_name == "anm_close" then + common.mutate_anim(anm_table, "_pump", section) + + -- Clear flag + common.remove_flag("SHOTGUN_PUMP") + elseif string.find(anm_table.anm_name, "anm_hide") then + common.remove_flag("SHOTGUN_PUMP") + end + end +end +common.add_anim_mutator(anm_pump, 3) + +-- Animation: Randomly select between variants of the same animation +local function anm_variants(anm_table, item) + local section = item:section() + local variants = {anm_table.anm_name} + local i = 2 + while (true) do + local anm_variant = anm_table.anm_name .. "_variant" .. (i-1) + if common.has_animation(section, anm_variant) then + variants[i] = "_variant" .. (i-1) + else + break + end + i = i + 1 + end + if #variants > 1 then + local rand_i = random_number(1, #variants) + common.mutate_anim(anm_table, variants[rand_i], section) + end +end +common.add_anim_mutator(anm_variants, 4) + +------------------------------------------------- +-- Callbacks +------------------------------------------------- +function on_game_start() +end \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_detectors.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_detectors.script new file mode 100644 index 000000000..30bb8cdad --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/uni_anim_detectors.script @@ -0,0 +1,198 @@ +-- Animation: Append with '_quick' for detectors if: +-- - weapon in main hand is reloading or unjamming +-- - player is climbing +-- - switching to PDA +-- - quick throwing grenades +-- - wiping mask +-- - toggling headlamp +-- - playing an FDDA animation + +local common = animation_common +common.add_flag("QUICK_DETECTOR") + +-- Flag to force _quick when hiding detectors +force_quick = false + +-- Compatibility for FDDA: Use '_quick' if an FDDA animation is about to play +if enhanced_animations then + fdda_anim_prepare = enhanced_animations.anim_prepare + function enhanced_animations.anim_prepare() + force_quick = true + fdda_anim_prepare() + end + + fdda_call_my_slot_back = enhanced_animations.call_my_slot_back + function enhanced_animations.call_my_slot_back() + local result = fdda_call_my_slot_back() + if result == true then + force_quick = false + end + return result + end + + fdda_bp_call_my_slot_back = zzz_ea_addon_backpack.call_my_slot_back + function zzz_ea_addon_backpack.call_my_slot_back() + local result = fdda_bp_call_my_slot_back() + if result == true then + force_quick = false + end + return result + end +end + +-- Switching to PDA (PDA keybind) +-- Beefs nvg switch +function on_key_press(dik) + local bind = dik_to_bind(dik) + + -- Quickhide detector when switching on beefs nvgs + if z_beefs_nvgs and bind == key_bindings.kNIGHT_VISION and db.actor:active_detector() then + force_quick = true + return + end + + -- PDA keybind + if bind ~= key_bindings.kACTIVE_JOBS then return end + + -- Detector drawn + if not db.actor:active_detector() then return end + + -- PDA equipped + if not db.actor:item_in_slot(8) then return end + + force_quick = true +end + +-- Switching to PDA (Map keybind) +function actor_on_first_update() + local activate_slot = db.actor.activate_slot + db.actor.activate_slot = function(self, slot_num) + if slot_num == 8 and db.actor:active_detector() then + force_quick = true + end + activate_slot(self, slot_num) + end +end + +-- Toggling headlamp +local Hit_TorchToggle = actor_effects.Hit_TorchToggle +function actor_effects.Hit_TorchToggle() + -- Check if headlamp is equipped. No need for battery check + if (not actor_effects.allow_animation()) or (not item_device.can_toggle_torch()) then + return + end + + force_quick = true + + Hit_TorchToggle() +end + +-- Wiping Mask +local Hit_MaskCleaning = actor_effects.Hit_MaskCleaning +function actor_effects.Hit_MaskCleaning() + -- Check if mask overlay is ON + if (not actor_effects.allow_animation()) or (not actor_effects.is_mask_on()) then + return + end + + force_quick = true + + Hit_MaskCleaning() +end + +-- Quick throw grenade +local Hit_GrenadeQuickthrow = actor_effects.Hit_GrenadeQuickthrow +function actor_effects.Hit_GrenadeQuickthrow() + if (not actor_effects.allow_animation()) + or (not db.actor:item_in_slot(4)) + or db.actor:get_current_holder() ~= nil + then + return + end + + force_quick = true + + Hit_GrenadeQuickthrow() +end + +---@param item game_object +local function is_item_valid(item) + -- valid if item is equipped detector + local player_detector = db.actor:active_detector() + if player_detector and item:id() == player_detector:id() then + return true + end + + return false +end + +---@param anm_table any +---@param item game_object +local function anm_quick_detector(anm_table, item) + -- cancel if parent is not player + local parent = item:parent() + if not parent then return end + if parent:id() ~= AC_ID then return end + + -- cancel if not valid item + if not is_item_valid(item) then return end + + -- Add 'quick' if previous anim was also quick (intended for holster-draw pairs) + if common.get_flag("QUICK_DETECTOR") then + if string.find(anm_table.anm_name, "show") then + common.mutate_anim(anm_table, "_quick", item:section()) + end + common.remove_flag("QUICK_DETECTOR") + return + end + + local is_state_valid = { + [4] = true, -- inspect + [7] = true, -- reload + [8] = true, -- misfire + } + + -- Add 'quick' suffix if above conditions are fulfilled + local player_wpn = db.actor:active_item() + if ( + string.find(anm_table.anm_name, "hide") + and ( + player_wpn and is_state_valid[player_wpn:get_state()] + or IsMoveState("mcClimb") + or force_quick + ) + ) then + common.mutate_anim(anm_table, "_quick", item:section()) + common.set_flag("QUICK_DETECTOR") + force_quick = false + end +end +common.add_anim_mutator(anm_quick_detector, 5) + +-- Use anim mutator to hide detector during inspect animations (added by Utjan) +local inspected_wpn +---@param anm_table any +---@param item game_object +local function inspect_hides_detector(anm_table, item) + -- cancel if parent is not player + local parent = item:parent() + if not parent then return end + if parent:id() ~= AC_ID then return end + + if string.find(anm_table.anm_name, "bore") then + local active_det = db.actor:active_detector() + if active_det then + active_det:switch_state(2) + inspected_wpn = item + end + elseif inspected_wpn and inspected_wpn:id() == item:id() then + inspected_wpn = nil + db.actor:show_detector(true) + end +end +common.add_anim_mutator(inspect_hides_detector, 6) + +function on_game_start() + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) + RegisterScriptCallback("on_key_press", on_key_press) +end diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/unjam_motion_mark.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/unjam_motion_mark.script new file mode 100644 index 000000000..ee5595b17 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/unjam_motion_mark.script @@ -0,0 +1,21 @@ +-- Clear jam mid animation with motion marks +---@param state number +---@param mark string +---@param hud_item game_object +---@param owner game_object +function actor_on_hud_animation_mark(state, mark, hud_item, owner) + if mark == "clear_jam" then + if not hud_item or not owner then return end + + local wpn = hud_item:cast_Weapon() + if not wpn then return end + + if owner:id() ~= AC_ID then return end + + wpn:SetMisfire(false) + end +end + +function on_game_start() + RegisterScriptCallback("actor_on_hud_animation_mark",actor_on_hud_animation_mark) +end diff --git a/mods/MRAA + Blindside Military Pack/gamedata/scripts/utjan_mag_check.script b/mods/MRAA + Blindside Military Pack/gamedata/scripts/utjan_mag_check.script new file mode 100644 index 000000000..f8b69d950 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/scripts/utjan_mag_check.script @@ -0,0 +1,93 @@ +local common = animation_common + +do_ammo_check_anim = nil + +if ammo_check_mcm then + base_check_Ammo = ammo_check_mcm.check_Ammo + function ammo_check_mcm.check_Ammo() + if ammo_check_mcm.busy_hands_fix then + base_check_Ammo() + return + end + + if ammo_check_mcm.actor_on_hud_animation_play then + printf("!Old mag check script (ammo_check_mcm) detected. Remove it to get full features of mag checks") + base_check_Ammo() + return + end + + local weapon = db.actor:active_item() + + -- ends if no weapon is in hand etc. + if (weapon == nil or (not IsWeapon(weapon)) or IsItem("fake_ammo_wpn", nil, weapon)) then + base_check_Ammo() + return + end + + local currentState = weapon:get_state() + if not (currentState == 0 or weapon:weapon_in_grenade_mode()) then + base_check_Ammo() + return + end + + -- if magazine weapon + local currentAmmo = weapon:get_ammo_in_magazine() + if (currentAmmo == nil) then + base_check_Ammo() + return + end + + local anm_ammo_check = common.has_animation(weapon:section(), "anm_ammo_check") + if not anm_ammo_check then + base_check_Ammo() + return + end + + if do_ammo_check_anim then return end -- If an ammo check is already happening, don't do anything + + if ammo_check_mcm.busy_hands_fix ~= nil then -- If busy_hands_fix is unlocalized + local prev_hands_fix = ammo_check_mcm.busy_hands_fix + ammo_check_mcm.busy_hands_fix = true + base_check_Ammo() + ammo_check_mcm.busy_hands_fix = prev_hands_fix + else -- Else fall back to workaround + local prev_hands_fix = ui_mcm.get("rax_ammo_check/busy_hands_fix") + ui_mcm.set("rax_ammo_check/busy_hands_fix", true) + ammo_check_mcm.on_option_change() + base_check_Ammo() + ui_mcm.set("rax_ammo_check/busy_hands_fix", prev_hands_fix) + ammo_check_mcm.on_option_change() + end + + do_ammo_check_anim = 1 + weapon:switch_state(4) + + CreateTimeEvent("mag_check", "mag_check_reset", 3, function() + do_ammo_check_anim = nil + return true + end) + end +end + +-- Catch the inspect weapon state switch and do the ammo check animation instead +function mag_check_animation(anm_table, obj) + if not (do_ammo_check_anim == 1 and obj and obj:get_state() == 4) then return end + + local is_supported, has_mag_data + if magazine_binder then + is_supported = magazine_binder.is_supported_weapon(obj:section()) + has_mag_data = magazine_binder.get_mag_loaded(obj:id()) + end + if is_supported and not has_mag_data and common.has_animation(obj:section(), "anm_ammo_check_no_mag") then + anm_table.anm_name = "anm_ammo_check_no_mag" + else + anm_table.anm_name = "anm_ammo_check" + end + do_ammo_check_anim = 2 +end + +if ammo_check_mcm.actor_on_hud_animation_play then + printf("!Old mag check script (ammo_check_mcm) detected. Remove it to get full features of mag checks") +else + common.add_anim_mutator(mag_check_animation, 0.1) +end \ No newline at end of file diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_reload.ogg new file mode 100644 index 000000000..975c9f10f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:850ee4a1ef7be3da62be1403f497a15b3e34783616194240a5515326f830fdb8 +size 123710 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_reload_empty.ogg new file mode 100644 index 000000000..54d4d10ef --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:27fd9709840aad13a73b4811d569a06aaec8a6d59c941d8bea63b7034a048aef +size 152593 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_unjam.ogg new file mode 100644 index 000000000..10c84ee84 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ace21/ace21_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e63f0b68352cb741836cdc78f536e3d4d78cb0415abf11a23c557a1e3dfb01d +size 51315 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_empty_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_empty_reload.ogg new file mode 100644 index 000000000..8031907a8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_empty_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc5b8ad3dd1aedc4f1ca483d0052b5aa7e4bd5e312000d13c367643fe15c084e +size 162229 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_reload.ogg new file mode 100644 index 000000000..cb20e3b08 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d05e30e5b79f4ef585a5bae3a0d611e6aca59fe0eb1efcd1d388d8495112e5b3 +size 127860 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_unjam.ogg new file mode 100644 index 000000000..04821a7aa --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak/akm_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5c8454ac05b25e43e509d22e35fce66b5a1dcf469d2222b169719b374ba9a205 +size 56054 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_draw.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_draw.ogg new file mode 100644 index 000000000..43b95da12 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_draw.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b471e29cf5bf75e93fb60c86c23c7bbf4b4a9e3ff7f7aa8a9d78125520df0fbc +size 36273 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_empty_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_empty_reload.ogg new file mode 100644 index 000000000..2db35bef2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_empty_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:970bd2bc7ecf7ef134bdf098f2829686b20de720fdf9e6d4f045ff8d6951f4b2 +size 159371 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_grenload_mraa.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_grenload_mraa.ogg new file mode 100644 index 000000000..5d5628422 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_grenload_mraa.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6ef9c3edbd2b0f73acb03bef676bc8d39b3163a67182c3d73f09020ebcb1c4e7 +size 78610 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_holster.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_holster.ogg new file mode 100644 index 000000000..a2ef2f1bf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_holster.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a5e4b1d965215f8360249979b1386ddeba71d68486ff6df11c755e336cf2ea62 +size 44904 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_reload_mraa.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_reload_mraa.ogg new file mode 100644 index 000000000..5a8cf5503 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_reload_mraa.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:da2678c62a9d0d54e0ee236cc7057baacd20aacd19f14061fa598d90082bf70d +size 126056 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_unjam_mraa.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_unjam_mraa.ogg new file mode 100644 index 000000000..9679e2942 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak74_unjam_mraa.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f56cd8c165df0e4ad81f5af4d7e3b7ffcab6d2b1bffe52e570cd1202f42f095e +size 58355 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak_firemode_switch.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak_firemode_switch.ogg new file mode 100644 index 000000000..8448b5f07 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ak74/ak_firemode_switch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:44136b8523b381f9a904e4aca03c0fda865b98b343062ff7bd9c23428503bef9 +size 10737 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_reload.ogg new file mode 100644 index 000000000..1594311ee --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e5db964fd014009e7f05ac01bfe7eb5c6ef2db646f903de04ac19ec28d959bf9 +size 131278 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_reload_empty.ogg new file mode 100644 index 000000000..0249e1de8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7ebe7a229445703441492ecf15dba1f80a91c11ef38be02b2bca795c57d99ca +size 171880 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_unjam.ogg new file mode 100644 index 000000000..62e5a3867 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ash12/ash12_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc4996dfaffde7f6ccd9af47dda1c4eb8d5f7df229c1e2ccdb428a752022efa1 +size 55779 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_reload.ogg new file mode 100644 index 000000000..d026235a8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c6664e3e4ee4e49d43a3e2724830ea84903053e274937ff770157dde078b2681 +size 116636 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_reload_empty.ogg new file mode 100644 index 000000000..9a90abf32 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4dc69cbaed9317d0c0fc0bb6844ba23494546fb96a8519326d498db9df0d6682 +size 146552 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_unjam.ogg new file mode 100644 index 000000000..d08b8bd1c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/aug/aug_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:af92e5f8461e8fe46a62908fc708231c7a58c64205f0cb5587d7a1c450a3af1e +size 54998 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/beretta_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/beretta_reload.ogg new file mode 100644 index 000000000..511fb2da5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/beretta_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:631be17a25bc85565af73bd51ca3c82d806debb095e52ba4ff9d9bb419c51468 +size 102225 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/beretta_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/beretta_reload_empty.ogg new file mode 100644 index 000000000..093590f8e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/beretta_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4ce910f7ed4ce4ab5d679d09fd60d81ea2d3dc517addbf8f8169440bce3882ab +size 108122 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_draw.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_draw.ogg new file mode 100644 index 000000000..d0f67f87f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_draw.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:28b30b9fca560440bcb6b58b42b2a3bb16e7db8c6f17cd254c5754f6da399edc +size 27925 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_holster.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_holster.ogg new file mode 100644 index 000000000..a4feff239 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_holster.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a83282afee284a629476aeeec05a1d3bb83a9c87c4e1ec28a599dacc6acab437 +size 29840 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_magcheck.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_magcheck.ogg new file mode 100644 index 000000000..47dd8c90e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_magcheck.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:389f3847caebee3285ef27d5028766176dc8325c1051f5926d078e7229f26823 +size 17706 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_unjam.ogg new file mode 100644 index 000000000..c3c14e6e9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/beretta/pistol_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:443dac7478221daf9515b5874c037416729aa3794bb7822963474928ae6bfdd4 +size 50917 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/colt/colt_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/colt/colt_reload.ogg new file mode 100644 index 000000000..0864836c9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/colt/colt_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:290dff631084cd664d30ac22b84a290ffd89d2b78d3dfa9cb525c45de53d1f38 +size 101600 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/colt/colt_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/colt/colt_reload_empty.ogg new file mode 100644 index 000000000..c2250ed92 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/colt/colt_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:06f866e594b8001f3f0f407b793ab025d1c01b5de3b705fcbdf2457a54751708 +size 108671 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/cz75/cz75_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/cz75/cz75_reload.ogg new file mode 100644 index 000000000..e2b0dd3aa --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/cz75/cz75_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38c375c8acf39f7fd10ff14de8770765f8050384208acdbd8c2181c09e8b2c75 +size 101568 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/cz75/cz75_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/cz75/cz75_reload_empty.ogg new file mode 100644 index 000000000..4ce7f7f48 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/cz75/cz75_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ed2cdcacbadfbc78a6fc0e1109b4515fc6ca5e3cc6e11fdc23cc32af84cc41e7 +size 108818 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/de/de_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/de/de_reload.ogg new file mode 100644 index 000000000..a72f36496 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/de/de_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f34a042c43a26643e4fd50b48838cd4cbdf0f1276f7f8c4357cb268851e862ac +size 103224 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/de/de_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/de/de_reload_empty.ogg new file mode 100644 index 000000000..8a65b8ef3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/de/de_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6fc04dfcf5e0066199a2a11eab69e77d15e3dfbb859609defde5ffb9fba885a6 +size 110327 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_reload.ogg new file mode 100644 index 000000000..38187ec25 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1d1102565fedb273c477b7080e839e20b6466bc7eeef7ec99df8cd68bd3d23ae +size 122592 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_reload_empty.ogg new file mode 100644 index 000000000..1aff10dd8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:e133e9d242ebaa80558fc7bc5a5b80c8fad1d0be0162af43a091a85624e591fe +size 139109 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_unjam.ogg new file mode 100644 index 000000000..f9f156586 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fal/fal_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24c517693322e42f54a64e1f92b8216271134c6a231fc9bba14899caadce1cfe +size 62403 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_reload.ogg new file mode 100644 index 000000000..8b2020acc --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7757cd1cbfb1f5fa5304fa1591fa2b2a1ccf9c1892a891de9d4f52fc3bd24ec6 +size 115756 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_reload_empty.ogg new file mode 100644 index 000000000..abbb65689 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cc2a9950861c0e2cb0422522dd4d2d7c439f50728af590a690fe7bc3de585240 +size 152462 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_unjam.ogg new file mode 100644 index 000000000..235d33201 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/famas/famas_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:433843866d676d0652cd0030edd548fc72aecc53cf0fb32f8053233d99e1464d +size 53787 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_reload.ogg new file mode 100644 index 000000000..db4cc5f1c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6a29359457a4b83962e5413fb006c255608ac9317dc850ce06842db688ade40d +size 116753 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_reload_empty.ogg new file mode 100644 index 000000000..bc8f03629 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:45440745be5f16f897bccd24fe137977aec8b4b05c932e65d1bbf01710cddd5c +size 154172 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_unjam.ogg new file mode 100644 index 000000000..6a5081157 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn2000/fn2000_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:884151e71c797c389a1682b5043e56cb73ded89feaad3574e6f0cab5a8db0bda +size 53491 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn57/fn57_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn57/fn57_reload.ogg new file mode 100644 index 000000000..7e21c508f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn57/fn57_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6221477b9dcd3cf40acb9e090754ef056e8a85c1fdbf52ed3ce8c41bd1077ef9 +size 101298 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn57/fn57_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn57/fn57_reload_empty.ogg new file mode 100644 index 000000000..d16889268 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fn57/fn57_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c7723b5f7ae776150f1c8bfef3bc98b8ec243b765373ae7340cd2f04be733209 +size 107896 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_reload.ogg new file mode 100644 index 000000000..8214e3caa --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0bae307e0f7d6ba4a6294e5013e7ea1b9257e59ac8a1a7b16b73a3b8dc448947 +size 125554 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_reload_empty.ogg new file mode 100644 index 000000000..4fbf88f16 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:24a0b7ce4f1916ca6f9e22c277370bb296761e50ec6285dd1d61aab9461a4075 +size 156546 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_unjam.ogg new file mode 100644 index 000000000..114a106f4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnc/fnc_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f4d8b75120992e8fdc5c2d6b3b3d388ef2cb5c0ca2191d98a3ba94d73cdcfdc5 +size 60605 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnp45/fnp45_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnp45/fnp45_reload.ogg new file mode 100644 index 000000000..9a8175f12 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnp45/fnp45_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7889c6d8d18b0b18afbd85baa8bf2492e111e667060fe9fda62e4daecf7e59cc +size 101739 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnp45/fnp45_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnp45/fnp45_reload_empty.ogg new file mode 100644 index 000000000..12271b085 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fnp45/fnp45_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c831f58e22ea2607a37daab22564c481b3904fdfbf895e9cfc8ecc3e0f59d013 +size 108126 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fort/fort_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fort/fort_reload.ogg new file mode 100644 index 000000000..8a2a8ddb5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fort/fort_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f95399b6c7b3962752d457356e06294c4c010ae9956afcd7b5140caf83ec7ff +size 102416 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fort/fort_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fort/fort_reload_empty.ogg new file mode 100644 index 000000000..5007d5be7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/fort/fort_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:fb3233cfc6c17f289a0081839ebf32207d51e72bff81c368bc7473c153ea635d +size 108582 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_reload.ogg new file mode 100644 index 000000000..097184d4a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0c1dfc34d33b62c9edc5a8b5d506597af98c899a9ff279f149c410bcf81f9a70 +size 120625 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_reload_empty.ogg new file mode 100644 index 000000000..606ce9716 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:32d9c6b1fd7a7f8e7a928d014acd1bace88da1bb3b1da823d0739888e890bca7 +size 155209 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_unjam.ogg new file mode 100644 index 000000000..8cd51b92c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g3/g3_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6e9a6d92b823cfa1067178e7afd2c4e9b9a92ba64ce128bf2bf8b1a58e13f9c4 +size 54998 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_reload.ogg new file mode 100644 index 000000000..48e691289 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba65e40437932285b0e978808912ac6b2626a0af440bcf4bd872811ef2ec1008 +size 120545 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_reload_empty.ogg new file mode 100644 index 000000000..fccf8a20a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:5f921d122aba6ad9d4ee61f46e0b3ac3c07e1d335765e0f4107baf9258ece804 +size 153538 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_unjam.ogg new file mode 100644 index 000000000..a45b59b06 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g36/g36_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7458bdd489f3b9f2c2d88dc2691e40f91a6eeeb1b6f74b87b9a6dd5a6d507b74 +size 56406 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g43/g43_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g43/g43_reload.ogg new file mode 100644 index 000000000..f5cec46f9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g43/g43_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7e36a9cd1a45849ef43a5863afe6e257c3ae9b2aac32296a8a8762868e241234 +size 119435 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g43/g43_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g43/g43_reload_empty.ogg new file mode 100644 index 000000000..4c8f4b061 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/g43/g43_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69dd8381db5a69813671e3c87f75283d02b0cd43e279b8abf78926cc1201ced0 +size 146532 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/glock/glock_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/glock/glock_reload.ogg new file mode 100644 index 000000000..4104df053 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/glock/glock_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:59ef7e162f79bf9d699a3414b7aafa44a09093da9ed8dd0a37e657b19bda4890 +size 100616 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/glock/glock_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/glock/glock_reload_empty.ogg new file mode 100644 index 000000000..5515f1e7a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/glock/glock_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:918f3e9108ebc07032d29cb93d6091f4b1af0530906238cd90a0099b12ce8eba +size 107465 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/gsh18/gsh18_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/gsh18/gsh18_reload.ogg new file mode 100644 index 000000000..3e5747180 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/gsh18/gsh18_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:839978c04058828ab08ae7b792ce921ab21456251a2ffa1b3c9dafd6d390faad +size 102832 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/gsh18/gsh18_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/gsh18/gsh18_reload_empty.ogg new file mode 100644 index 000000000..dade1d77f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/gsh18/gsh18_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1141f6dc618789e04d16ec4bf10d3d5e8ff1d3f91ca5668980efb49fe9ee54b7 +size 108536 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/bolt.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/bolt.ogg new file mode 100644 index 000000000..3decbe49d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:279a65639158400137ef3d2ffb7c9851432bd221b5c5c7ffe7fdea3ee09866a7 +size 31174 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_close.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_close.ogg new file mode 100644 index 000000000..32949c2b3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_close.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d2a87efee5b6827efc272550c48860a077e9ac0556ac34ce435e8e2c26c7d82a +size 41869 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_load.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_load.ogg new file mode 100644 index 000000000..d0eb3abf2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_load.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9a6ea0b6af7b8c51855b2bd25c3ad7b93d0a44db3dbcbca577488cb8179caeb5 +size 36580 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_open.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_open.ogg new file mode 100644 index 000000000..4c267f1b3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_open.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:41d866b9a586ff0f4b998030680522952231e93eb138921f1dc359364150af6d +size 49568 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_unjam.ogg new file mode 100644 index 000000000..5273ef0ad --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/k98/k98_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:192a2e5d0822a77477cf119a123465a340479193fd39c41c9b68953ed75f6b43 +size 55982 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_reload.ogg new file mode 100644 index 000000000..00fda9fad --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b9dc43d2faddcadfc694844e5a180b7dd559de9520860b6914a3b69cefdea275 +size 128508 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_reload_empty.ogg new file mode 100644 index 000000000..fc08750b3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ad3326d79ea03f3ca55d2373bf15f85ab56bafabd88ba63649c5a4a40ef34268 +size 137048 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_unjam.ogg new file mode 100644 index 000000000..740e65fde --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m14/m14_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:026db36c8458212174b52615f760969d8023c6a253b7ba47e941f8d0e3cd1f35 +size 52241 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_empty_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_empty_reload.ogg new file mode 100644 index 000000000..b9f198148 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_empty_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6cefa06d8b2d7895927edcc3633992e880b2b506d65bc53d85cd1750dc1a80f1 +size 145274 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_firemode_switch.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_firemode_switch.ogg new file mode 100644 index 000000000..a3a4a68c2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_firemode_switch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:95c41ce4012f06784e64a587d6ba604e48551fded165c365a940b720a9df6387 +size 7030 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_gl_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_gl_reload.ogg new file mode 100644 index 000000000..8cb3cc9f5 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_gl_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1aebd108cd49060c5d2233c2cc889e8c854ffb5fcdbcd79cd023628502b2cc7b +size 121276 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_reload.ogg new file mode 100644 index 000000000..825b45ef1 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ecfe8fe6b668ff10c087bdf03cc8df221beb4fb19d6d3f04a6a8af47274dab55 +size 124511 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_unjam.ogg new file mode 100644 index 000000000..85eab6fdf --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m16/AR_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8a76008d690d1647ae396c338ae96b16b80560cce818e707c729ae5f065d87a7 +size 65914 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_reload.ogg new file mode 100644 index 000000000..96eea909f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:884547d6619f8e5f86ee117c9a55cd694d5ffc4e699d718a0b2152fff0ff0dd1 +size 126527 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_reload_empty.ogg new file mode 100644 index 000000000..45205cc6c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9f9e44c6990a5dd8d4e98c29b0bcfd408860dc9f74bb42bf1322e6a65f4c06ce +size 165632 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_unjam.ogg new file mode 100644 index 000000000..0c3bd2418 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/m82/m82_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3093a3f58b0e6acbcf2351b355fed1504d6fa9882972cd3e09f38e661eab9d7e +size 66456 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_close.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_close.ogg new file mode 100644 index 000000000..ace54f9a7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_close.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d752e5d8662d6cd0b3f2516011dc9e7c0f1a7ffec2df84c06f6fc75305b7b58f +size 30355 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_draw.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_draw.ogg new file mode 100644 index 000000000..9b23c9aaa --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_draw.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:0d6198dca0f4ea5467ff8e16166e268ad11a443dbcc5cc3ab6e39f6381406982 +size 40559 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_holster.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_holster.ogg new file mode 100644 index 000000000..16fed2029 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_holster.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8456f10dfbe3b02b408d128aa4d6f6ad5c7a1f4328c710fe42c6b171a646ec1c +size 44545 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_open.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_open.ogg new file mode 100644 index 000000000..6e30da6bd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_open.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:46b53fb105ca8055ecb76c8d1967c8f325632b12f68dafabae4047d2117cca8a +size 24011 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_reload.ogg new file mode 100644 index 000000000..287b0d2e4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d59fd4b8f2d119c034b39d2db7fcdf0a8a9768078a640830109281c578c848c0 +size 36224 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_reload_end.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_reload_end.ogg new file mode 100644 index 000000000..ace54f9a7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_reload_end.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d752e5d8662d6cd0b3f2516011dc9e7c0f1a7ffec2df84c06f6fc75305b7b58f +size 30355 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_unjam.ogg new file mode 100644 index 000000000..e97c4507e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mossberg/mossberg_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a94eae808b3f7168c62e50efd1b897b272108fa433358f5b98862232d2d994bf +size 29347 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_draw.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_draw.ogg new file mode 100644 index 000000000..04d97c2e3 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_draw.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ea3bc6d92e996b9ddbabbfdea5d52a5a62669ac08f2dba6912f667483729496f +size 33766 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_firemode_switch.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_firemode_switch.ogg new file mode 100644 index 000000000..e58e04d16 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_firemode_switch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ba87a8940c7b89d1fb37979ec16dd959ac2eac6e9a4221c08e1afaddc7c970cd +size 7934 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_holster.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_holster.ogg new file mode 100644 index 000000000..b3ed72bb9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_holster.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8450237bca83b31e90a38865217b51b519f760f6858947928e700b1a49a014e7 +size 35280 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_reload.ogg new file mode 100644 index 000000000..00a1b38cd --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:47e34d9c29bb880afaaea0a0f02f65ee5086e123a679f7465f630563a3ca0704 +size 97645 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_reload_empty.ogg new file mode 100644 index 000000000..9842b0a71 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:b0f2f904458fd70eae2a12fed5cc8bd83640f15d44040e22b7e23d36f7950bee +size 128896 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_unjam.ogg new file mode 100644 index 000000000..36aa6bf18 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp5/mp5_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a9efcd8635c35350321700359834c7ba7036b5af0c275aa51cb966d3980ca633 +size 54982 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_reload.ogg new file mode 100644 index 000000000..b95d2ae22 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:9d3ca044537f3f8ff352ec8ea2b27c7c52f03458c441898846d207d9a0be54af +size 109701 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_reload_empty.ogg new file mode 100644 index 000000000..4d7a29a72 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:42b211f7a3ada11aa8581396e4cfd3e90090f15003cd8bb563be74816efcf813 +size 134183 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_unjam.ogg new file mode 100644 index 000000000..bdeba8d3a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/mp7/mp7_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:bb2b93b052eb6b921b34f230a6c182f79bebdc45b7010659566e587ef32b8423 +size 55027 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_reload.ogg new file mode 100644 index 000000000..ed2201fd8 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:86c12454b19ba36355d5a7c0fbe184ff6c1770b6e6fec9c09b5c1b5bd315b85e +size 135827 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_reload_empty.ogg new file mode 100644 index 000000000..513b5af9c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:debb8d16728be778777f311ff876425ba5eb91ee23d6d431884d860621917bab +size 160199 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_unjam.ogg new file mode 100644 index 000000000..c122d3ee7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/p90/p90_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:882d7739fdc976a7f188934ad0d9a6a1f0c12fb3acad667c9558bd91f74be979 +size 51735 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_reload.ogg new file mode 100644 index 000000000..608f7a47e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:69caa6fe3368abddbc62ebf15f2b7340aa2d5058cf98c9676191d18876475f39 +size 320858 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_reload_empty.ogg new file mode 100644 index 000000000..1218111bb --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1e1589203be1761ab345ceb1fd94fb19bb8f72da46776f5d13a16ad8a9c72632 +size 293814 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_unjam.ogg new file mode 100644 index 000000000..aef7ad008 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pkm/pkm_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1b6e32a4228a67ebfc164cc842ff7cd1bb2a4e8d27b6c7099442d749d28f8c1c +size 83237 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/aps_firemode_switch.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/aps_firemode_switch.ogg new file mode 100644 index 000000000..37fa35a0a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/aps_firemode_switch.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2f4b2eaa7c9e15efdd29b22f30eca46fb82d3964eea5001a4f454e0703385cc6 +size 12950 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/pm_reload_empty_mraa.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/pm_reload_empty_mraa.ogg new file mode 100644 index 000000000..62dcfb511 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/pm_reload_empty_mraa.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:7bdb21d997612a49de3c10d8c705c6e82cf039ac477daf15c9be8a97b79eff58 +size 107778 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/pm_reload_mraa.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/pm_reload_mraa.ogg new file mode 100644 index 000000000..fb3bd9d69 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/pm/pm_reload_mraa.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:98f39093e09bf89f78611ac3a2ffb69d93fbeb5e785dc2e5ff0b6c126fbe9b70 +size 101196 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_close.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_close.ogg new file mode 100644 index 000000000..dd682e565 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_close.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c86190e2de1e69722ed4a4de3cade605bb24b08863a8696dfdc8fb72cf82625 +size 71442 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_load.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_load.ogg new file mode 100644 index 000000000..2b6640ceb --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_load.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8d1683ce19e5318b8abb1cdf2b7078c50b94b01a82e84c8bc56d35bcbe2d187a +size 66258 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_unjam.ogg new file mode 100644 index 000000000..825d1da2c --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/protecta/protecta_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:33973fef28b3e553b49f934c8e50befc8c207a53158045a19b5c3f809a154c78 +size 65618 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_reload.ogg new file mode 100644 index 000000000..16184849b --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:38633c3cfedae4566d866c3e2107ce580ec8585c4b709e570a68420ed5b943ef +size 121367 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_reload_empty.ogg new file mode 100644 index 000000000..fd94e37e6 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:3e468163f156f0daa91fc47e1461a4bebad547a10055dc9fe85300efe3d36a8c +size 139754 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_unjam.ogg new file mode 100644 index 000000000..f1787b7f2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/scar/scar_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:954fe4e7cf354ab84ca0d7885ac0bf577bbe2fbfce1c24780b1aeaa6c5809312 +size 61940 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig220/sig220_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig220/sig220_reload.ogg new file mode 100644 index 000000000..87358a51d --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig220/sig220_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:f70512c9f903f639dc6fbba3cfe5e118e7eeeb6761ea7fe4e59004d85931d1b8 +size 100818 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig220/sig220_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig220/sig220_reload_empty.ogg new file mode 100644 index 000000000..b6a8cd24a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig220/sig220_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8c1b2fc32ff44e15a45e0ded6227978863b6bf1da674626f46640189e767ce6f +size 107374 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_reload.ogg new file mode 100644 index 000000000..a476c175a --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:58286c10faf5ef2009f1d166adca3cddc41fb82c20efe18efd2c13f6ec42c1ed +size 122792 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_reload_empty.ogg new file mode 100644 index 000000000..034fb4791 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:be98691f2b2c72a4cdde4967019c6abffc11703d9619a6eb40421cd23a91ddbb +size 138624 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_unjam.ogg new file mode 100644 index 000000000..8cf9f72ff --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sig550/sig550_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c972cb2d81816a1cafb666201996b350de7fc283fe165d4d72ef66a1ccb2b5dc +size 60355 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/spas12/spas12_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/spas12/spas12_unjam.ogg new file mode 100644 index 000000000..7accc11ee --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/spas12/spas12_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:8eb7005bf2ca0953053d3f41bcdaa0ba1d8b6e5e0ee5c752223dfdcfb87196ca +size 49932 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sv98/bolt.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sv98/bolt.ogg new file mode 100644 index 000000000..f136c3e1e --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/sv98/bolt.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4d4d6f4f0e7878ddbabc85b6bf5519a2d59d423d6fc6fb13519ab5cc11c969b3 +size 31231 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ump45/ump45_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ump45/ump45_reload.ogg new file mode 100644 index 000000000..325ee379f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ump45/ump45_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4c63b1b75ed5ccf01f0d33ea0704a59cd50cb7f5ee8fc24e64ad907151800b45 +size 98058 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ump45/ump45_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ump45/ump45_reload_empty.ogg new file mode 100644 index 000000000..0f8ce0ca7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/ump45/ump45_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:1946e737ec7fd6bbfc1e042814a5ea19dd97f752e246cf77a40ce3aa18035f64 +size 118171 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_reload.ogg new file mode 100644 index 000000000..f2aecac86 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d0085167d0098108a624dbdf0f90d720482ff294614cf4633d47bf8cdc812b6a +size 135535 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_reload_empty.ogg new file mode 100644 index 000000000..79fcc5969 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:89ca4b31b5c20ebb427cc301e53b7c99627c32dc73a85198f65a9efff72268d1 +size 179851 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_unjam.ogg new file mode 100644 index 000000000..57e6ecdc4 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usas12/usas12_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4f838fc6a6425f3dd063b5426591c468cb24111cf4a87abfc0acc15736dc7430 +size 57989 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usp/usp_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usp/usp_reload.ogg new file mode 100644 index 000000000..dc50a4ce9 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usp/usp_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:cd2a1faf2de540d624e365f2d351dab90ca80a2fc50daf05d978e15a6a399c2d +size 102517 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usp/usp_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usp/usp_reload_empty.ogg new file mode 100644 index 000000000..4a08c7b2f --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/usp/usp_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:318bad2eda165e6123efd1656b45b8398f35e3846f09438414f37a751e1cb563 +size 108311 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_reload.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_reload.ogg new file mode 100644 index 000000000..48298ffeb --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_reload.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:919924fd809886c901baa5c02e4ad2fe9ebaaa1df321a80f4229cff96d462f50 +size 127316 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_reload_empty.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_reload_empty.ogg new file mode 100644 index 000000000..ec2866ba2 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_reload_empty.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:4b2c4faecb68850afec13112e8bb98f72fa7bb38274f7a28861a9cf5ba6816f4 +size 157534 diff --git a/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_unjam.ogg b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_unjam.ogg new file mode 100644 index 000000000..1e5e5c763 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/gamedata/sounds/weapons/wa2000/wa2000_unjam.ogg @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:d568b14f0600b573631032f542995cf93ab2ba2738e43ffce61b4c50eef1306f +size 52741 diff --git a/mods/MRAA + Blindside Military Pack/meta.ini b/mods/MRAA + Blindside Military Pack/meta.ini new file mode 100644 index 000000000..4af5217c7 --- /dev/null +++ b/mods/MRAA + Blindside Military Pack/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2025.1.15.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=MRAA-v1.3.1-_-Blindside-MilPack-Merge.7z +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=false +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2025-01-15T23:12:58Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Shader 3D Scopes Editor/gamedata/configs/mod_system_custom s3ds_settings.ltx.old b/mods/Shader 3D Scopes Editor/gamedata/configs/mod_system_custom s3ds_settings.ltx.old new file mode 100644 index 000000000..e6b518561 --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/configs/mod_system_custom s3ds_settings.ltx.old @@ -0,0 +1,29 @@ + +; The file suffix ".old" ensures that this file is not loaded by the game. +; To reactivate it simply delete ".old" from the file name. + +; This file provides a simple example for custom shader param settings including +; custom color values. "lens_blue" and "scope_green" have been declared as +; custom scope/reticle colors. Note that lens colors consist of three values whereas +; reticle colors constist of four values. + +;-------------------------------------------------------------------------------------- + +![s3ds_colors] + lens_blue = 0.79, 1, 1 + + +![markswitch_colors] + scope_green = 0.14, 0.81, 0.25, 1 + + +![wpn_m24] + s3ds_chroma_power = 0.02 + s3ds_dirt_intensity = 2.8 + s3ds_lens_color = lens_blue + +![wpn_m82] + ms_colors = scope_black, scope_green + ms_count = 2 + s3ds_reticle_type = 1 + \ No newline at end of file diff --git a/mods/Shader 3D Scopes Editor/gamedata/configs/text/eng/shader_scopes_editor.xml b/mods/Shader 3D Scopes Editor/gamedata/configs/text/eng/shader_scopes_editor.xml new file mode 100644 index 000000000..1b57d6af2 --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/configs/text/eng/shader_scopes_editor.xml @@ -0,0 +1,253 @@ + + + + + + + Shader 3D Scopes Editor + + + + + SHADER PARAMETER CONTENTS: \n + SP 1: Reticle Size, Eye Relief, Exit Pupil Diameter, Enable 1. Focal Plane \n + SP 2: 0, 0, Disable Image Scale Up, ZOOM_FACTOR or 1.5 \n + SP 3: Image Type, Reticle Type, Lens Dirt, Chromatic Abberation \n + SP 4: Lens Color (r,g,b), 0 (1 if NVG blur is enabled) + + + + + + S3DS Params + + + MS Params + + + + + Reticle Size + + + \n \nSize of the image on the scope lens + + + Eye Relief + + + \n \nDistance between camera and scope lens at which the projected shadow ring around the lens appears + + + Exit Pupil Diameter + + + \n \nDiameter of the "light disk" projected onto the lens + + + Enable 1. Focal Plane + + + \n \nEnable this to make the reticle scale up when zooming in. \n \nEffect only shows at higher magnification levels. + + + Reflection Hue + + + \n \nHue of the lens reflection \n \nAdjust when not aiming to see the reflection on the scope lens. + + + Disable Image Scale Up + + + \n \nDisables image scale up inside scope at minimal FOV magnification. Needed for 1x optic sights and 1-Nx LPVO scopes. \n \nEffect only shows at low magnification levels. + + + Image Type + + + \n \nBackground image processor \n \n + 0 - None \n + 1 - NV-scope (with ms_count = 2 becomes switchable on/off) \n + 2 - Thermal scope (with ms_count = 2 becomes switchable white-hot/black-hot, with ms_count = 3 becomes also switchable on/off) + + + + None + + + NV-scope + + + Thermal scope + + + Reticle Type + + + \n \nReticle processor \n \n + 0 - None \n + 1 - LED illuminated reticle \n + 2 - Masked LED illuminated reticle (red channel is regular black reticle, green channel is illuminated area) \n + 3 - ACOG, sun illuminated reticle (red channel is regular black reticle, green channel is illuminated area, blue channel is gray text) \n + 4 - ELCAN Specter, LED illuminated reticle with zoom switch (red channel is regular black reticle, green channel is illuminated area 1, blue channel is illuminated area 2). + Use with ms_count = 3 and ms_colors = scope_black, scope_red_dim, scope_red \n + 5 - 1P59 Giperon scope (red channel at first focal plane, green channel at second focal plane, blue channel rotated by zoom), has LED illumination \n + 6 - Screen (used for classic thermal scopes, disables parallax shadow and circle sight bound) \n + 7 - Projected reticle (additive blend mode, use for NVs and magnifiers of reflex/holographic sights) \n + + + + Lens Dirt Intensity + + + \n \nVisiblity of lens dirt texture + + + Chromatic Abberation + + + \n \nIntensity of the "rainbow" - effect at the edges of the scope lens image + + + Lens Color + + + \n \nGives the lens image a slight color tint. \n \nDarker custom color values darken the overall image! + + + None + + + Old yellow + + + Russian blue + + + Contrast yellow + + + + + MS Reticle Count + + + \n \nNumber of different collimator/scope reticles \n \nThis control has no real function but the value you select will be saved in cache_dbg.ltx. + + + 1 + + + 2 + + + 3 + + + 4 + + + MS Reticle Colors + + + \n \nList of colors for reticle illumination \n \nMake sure that reticle type is not set to zero, otherwise this control won't have any effect. + + + None + + + Scope black + + + Scope red + + + Scope red dim + + + + + You have to run the game in debug mode in order to use S3DS Editor. + + + Hold the weapon you want to edit in your hands first! + + + + + Reset + + + Value reset to default + + + Reset All + + + All values reset to default + + + Resume + + + Shader 3D scope adjust mode is stopped + + + Copy + + + Copied edited values + + + Copied all values + + + Paste + + + No values are copied yet! + + + Applied copied values + + + Apply + + + %s: no changes were made + + + %s: section is saved in cache_dbg.ltx + + + 3D shader scope adjust mode is still active + + + + + Press H for Info + + + + %c[ui_gray_1]Shader 3D Scopes Editor + \nby Private Pirate + \n \n%c[pda_green]About%c[ui_gray_2] + \nShader 3D Scopes Editor allows you to change all shader parameter values within one window. It basically works and behaves the same as Weapon Hud Editor. All changes apply in real time for proper visual feedback. You can edit multiple weapons and switch between them, the editor remembers all changes you make. + \n \n%c[pda_green]Saving values%c[ui_gray_2] + \nBy pressing "Apply" the editor saves all CHANGED values in %c[ui_gray_3]gamedata/configs/cache_dbg.ltx%c[ui_gray_2] in your S.T.A.L.K.E.R. Anomaly root folder. From there you can copy/paste them into other files. It is recommended to use DLTXified files (%c[ui_gray_3]mod_system_your_file_name.ltx%c[ui_gray_2]), be it weapon ltx files or unique ones. + \n \n%c[pda_green]Saving custom color values%c[ui_gray_2] + \nThe editor lets you tweak the lens color and reticle color to get custom colors. In order to use the custom colors follow these steps: + \n1: Create a new ltx file e.g. %c[ui_gray_3]mod_system_scope_colors.ltx%c[ui_gray_2]. + \n2: Open the file and add the following line: %c[ui_gray_3]![s3ds_colors]%c[ui_gray_2] (lens color) or %c[ui_gray_3]![markswitch_colors]%c[ui_gray_2] (reticle color). + \n3: Add a new color name underneath, e.g. "lens_blue" (lens color) or "scope_green" (reticle color). + \n4: Add the %c[ui_gray_3]s3ds_lens_color%c[ui_gray_2] or %c[ui_gray_3]ms_colors%c[ui_gray_2] values from cache_dbg.ltx to the new color like this: %c[ui_gray_3]lens_blue = 0.79, 1, 1%c[ui_gray_2] + \n5: Specify the desired COLOR NAMES (not their values) in the same or in another file underneath the corresponding weapon section. Done. + \n \nYou can check %c[ui_gray_3]mod_system_3ds_colors.ltx%c[ui_gray_2] and %c[ui_gray_3]mod_system_3ds_scopes.ltx%c[ui_gray_2] in Shader 3D Scopes addon folder or + \n%c[ui_gray_3]mod_system_custom_s3ds_settings.ltx.old%c[ui_gray_2] in Shader 3D Scopes Editor addon folder for reference. + \n \n%c[pda_red]Attention%c[ui_gray_2] + \nSome scopes have illuminable reticles (e.g. black/red). The editor doesn't allow you to edit both reticle colors at the same time. You have to set the first color first, save the values and paste them into their destination file. Repeat the process for the second color. + \n \n \n \nPress H to close the info window. + + + \ No newline at end of file diff --git a/mods/Shader 3D Scopes Editor/gamedata/configs/text/eng/shader_scopes_editor_mcm.xml b/mods/Shader 3D Scopes Editor/gamedata/configs/text/eng/shader_scopes_editor_mcm.xml new file mode 100644 index 000000000..73cd98813 --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/configs/text/eng/shader_scopes_editor_mcm.xml @@ -0,0 +1,29 @@ + + + + + + + 3D Scopes Editor + + + + + Shader 3D Scopes Editor + + + Open Editor Keybind + + + Copy Mode + + + "Copy edited" mode copies only edited values while "Copy all" mode copies all values. \n \nSome parameter variables completely change the appearance of the scope lens image such as image type and especially reticle type. Copy/pasting values from one gun to another where these two values differ can lead to undesired results such as black scope lens images or missing reticles. In this case you have to manually set the variables to their correct values. \n \nOnly use the second mode if you know what you're doing! + + + Copy edited + + + Copy all + + \ No newline at end of file diff --git a/mods/Shader 3D Scopes Editor/gamedata/configs/ui/ui_shader_scopes_editor_16.xml b/mods/Shader 3D Scopes Editor/gamedata/configs/ui/ui_shader_scopes_editor_16.xml new file mode 100644 index 000000000..37e8868f8 --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/configs/ui/ui_shader_scopes_editor_16.xml @@ -0,0 +1,160 @@ + + + + + + + + ui\shader_scopes_editor\background.dds + + + ui_inGame2_opt_slider_bar_back + + + ui_inGame2_opt_slider_bar_back + + + + <text font="graffiti22" r="250" g="255" b="255" a="255" align="c" complex_mode="1"/> + + + + ui_inGame2_opt_slider_bar_back + + + ui_inGame2_opt_slider_bar_back + + + + + + + + + + + + + ui\shader_scopes_editor\background.dds + + + + ui_button_ordinary + + + + + ui\shader_scopes_editor\background.dds + + + + ui_button_ordinary + + + + + + + ui\shader_scopes_editor\background.dds + + + + ui_inGame2_opt_slider_bar_back + + + + + + + + + + <text font="letterica16" r="250" g="255" b="255" a="255" align="l"/> + + + + ui\shader_scopes_editor\reticle_size_1.dds + + + + ui\shader_scopes_editor\reticle_size_2.dds + + + + + ui_button_ordinary + + + + + + + + + + + + ui_inGame2_checkbox + + + + + ui_radio + + + + + + + ui_inGame2_opt_slider_bar_back + + + + + + + + + + + + + + + ui_button_ordinary + + + + + ui_button_ordinary + + + + + ui_button_ordinary + + + + + ui_button_ordinary + + + + + ui_button_ordinary + + + + + + + + + ui\shader_scopes_editor\help_background.dds + + + + + + + \ No newline at end of file diff --git a/mods/Shader 3D Scopes Editor/gamedata/scripts/shader_scopes_editor.script b/mods/Shader 3D Scopes Editor/gamedata/scripts/shader_scopes_editor.script new file mode 100644 index 000000000..fe7770233 --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/scripts/shader_scopes_editor.script @@ -0,0 +1,951 @@ +--======================================================== +-- +-- Shader 3D Scopes Editor Script by Private Pirate v1.1.0 +-- +--======================================================== + + +function on_game_start() + RegisterScriptCallback("on_key_press", on_key_press) + RegisterScriptCallback("actor_on_first_update", actor_on_first_update) + RegisterScriptCallback("on_option_change", on_option_change) + RegisterScriptCallback("save_state", save_state) + RegisterScriptCallback("load_state", load_state) +end + + +--;-- VARIABLES AND TABLES --------------------------------------------------------------------------------------- + +local shader_parameters = { + ["s3ds_reticle_size"] = {text = "sse_reticle_size", def = 4, typ = "track", index = 1, min = 0.5, max = 10, step = 0.1}, + ["s3ds_eye_relief"] = {text = "sse_eye_relief", def = 4, typ = "track", index = 2, min = 1, max = 10, step = 0.01}, + ["s3ds_exit_pupil"] = {text = "sse_exit_pupil", def = 0.3, typ = "track", index = 3, min = 0.1, max = 5, step = 0.01}, + ["s3ds_ffp"] = {text = "sse_ffp", def = 0, typ = "check", index = 4}, + ["s3ds_reflection_hue"] = {text = "sse_refl_hue", def = 0.65, typ = "track", index = 5, min = 0, max = 1, step = 0.01}, + ["s3ds_min_zoom_1x"] = {text = "sse_min_zoom", def = 0, typ = "check", index = 6}, + ["s3ds_image_type"] = {text = "sse_image_type", def = 0, typ = "radio", index = 7, content = {{"image_type_1",0}, {"image_type_2",1}, {"image_type_3",2}}}, + ["s3ds_reticle_type"] = {text = "sse_reticle_type", def = 0, typ = "track", index = 8, min = 0, max = 7, step = 1}, + ["s3ds_dirt_intensity"] = {text = "sse_lens_dirt", def = 0, typ = "track", index = 9, min = 0, max = 10, step = 0.1}, + ["s3ds_chroma_power"] = {text = "sse_chroma_power", def = 0, typ = "track", index = 10, min = 0, max = 0.2, step = 0.01}, + ["s3ds_lens_color"] = {text = "sse_lens_color", def = "1,1,1", typ = "radio", index = 11, content = {{"lens_none","1,1,1"}, {"lens_old_yellow","0.95,0.91,0.83"}, {"lens_russian_blue","0.93,0.96,1"}, {"lens_contrast_yellow","1,0.95,0.3"}}}, + ["ms_count"] = {text = "sse_reticle_count", def = 1, typ = "radio", index = 12, content = {{"ms_count_1",1}, {"ms_count_2",2}, {"ms_count_3",3}, {"ms_count_4",4}}}, + ["ms_colors"] = {text = "sse_ret_colors", def = "0,0,0,0", typ = "radio", index = 13, content = {{"no_clr","0,0,0,0"}, {"scope_black","0,0,0,1"}, {"scope_red","1,0.2,0.2,1"}, {"scope_red_dim","0.4,0.05,0.05,1"}}}, +} + + +local data -- sorted shader_parameters table +local ext_val -- S3DS shader param preset of current weapon (only those who are actually in use, NOT IN CORRECT ORDER) +local ext_val_ms -- mark switch shader param preset of current weapon (only those who are actually in use, NOT IN CORRECT ORDER) +local curr_val = {} -- sorted version of ext_val +local cache = {} -- cache weapon specific Shader Parameter values + +--general +local debug_mode = DEV_DEBUG or DEV_DEBUG_DEV +local keybind = shader_scopes_editor_mcm.get_config("keybind") +local copy_mode = shader_scopes_editor_mcm.get_config("copy_mode") +local ZOOM_FACTOR = z_3d_scopes_mcm.get_config("zoom_factor") +local NVG_BLUR = z_3d_scopes_mcm.get_config("nvg_blur") +local show_help_wnd = false + +-- weapon related variables +local active_item +local is_wpn +local wpn +local section +local last_wpn + +-- Utilities +local precision = 2 -- allowed numbers of zeroes +local functor = function(t,a,b) return t[a].index < t[b].index end +local m_floor = math.floor +local str_format = string.format +local lens_clr_index = shader_parameters["s3ds_lens_color"].index -- better than calling in functions +local ms_cnt_index = shader_parameters["ms_count"].index -- better than calling in functions +local ms_clr_index = shader_parameters["ms_colors"].index -- better than calling in functions + +function shallow_copy(src) -- retains independence when passing values between arrays, otherwise changing src array changes dst array when src = dst + local dst = {} + for k, v in pairs(src) do + dst[k] = v + end + return dst +end + +function conv_to_arr(str) + local arr = {} + for val in string.gmatch(str, "[^,]+") do + arr[#arr + 1] = tonumber(val) + end + return arr +end + + +--;-- MAIN FUNCTIONS --------------------------------------------------------------------------------------------- + +function on_option_change() + keybind = shader_scopes_editor_mcm.get_config("keybind") + copy_mode = shader_scopes_editor_mcm.get_config("copy_mode") + ZOOM_FACTOR = z_3d_scopes_mcm.get_config("zoom_factor") + NVG_BLUR = z_3d_scopes_mcm.get_config("nvg_blur") +end + + +function save_state(m_data) + m_data.cache = cache +end + + +function load_state(m_data) + if (m_data.cache) then + cache = m_data.cache + end +end + + +function on_key_press(key) + if (not debug_mode) then + if (key == keybind) then + actor_menu.set_msg(1, game.translate_string("sse_no_dbg_msg"), 5) + end + return + end + + active_item = db.actor:active_item() + is_wpn = IsWeapon(active_item) + wpn = is_wpn and active_item + if (wpn) then + wpn_section = wpn:section() + end + + if (key == keybind) then + if (wpn) then + get_params(wpn) + show_ui() + actor_menu.set_msg(1, game.translate_string("sse_help_msg"), 2) + else + actor_menu.set_msg(1, game.translate_string("sse_no_wpn_msg"),5) + end + + elseif (key == DIK_keys.DIK_K) then + printf("lens_clr_index = "..lens_clr_index) + printf("ms_cnt_index = "..ms_cnt_index) + printf("ms_clr_index = "..ms_clr_index) + + printe("cache[wpn_section]") + for i, v in ipairs(cache[wpn_section]) do + printf(i.." : "..tostring(v)) + end + end +end + + +-- sort shader_parameters table by index when read by game and write into new table "data" +function actor_on_first_update() + + data = { + param = {}, + text = {}, + def = {}, + typ = {}, + index = {}, + min = {}, + max = {}, + step = {}, + content = {}, + } + + for key, v in spairs(shader_parameters, functor) do + data.param[#data.param + 1] = key + data.text[#data.text + 1] = v.text + data.def[#data.def + 1] = v.def + data.typ[#data.typ + 1] = v.typ + data.index[#data.index + 1] = v.index + data.min[#data.min + 1] = v.min or "nil" -- has to be filled otherwise order is not given anymore, nil doesn't work but "nil" does + data.max[#data.max + 1] = v.max or "nil" + data.step[#data.step + 1] = v.step or "nil" + data.content[#data.content + 1] = v.content or "nil" + end +end + + +-- get Shader Parameter preset values of active weapon, write into new array along with default values, called when UI opens +function get_params(wpn) + ext_val = z_3d_scopes.parse_parameters(wpn) --> NOT IN ORDER + ext_val_ms = z_mark_switch.parse_parameters(wpn) --> NOT IN ORDER + + -- replace curr_val[i] with curr_val[key] to get array with preset + default param values + for i, key in ipairs(data.param) do + curr_val[i] = (ext_val[key] or ext_val_ms[key]) or data.def[i] --> COMPLETE AND IN CORRECT ORDER + end + + cache_values() +end + + +-- cache (default) values of currently active weapon +function cache_values() + + -- create new key with name of weapon section + if (not cache[wpn_section]) then + cache[wpn_section] = {} + end + + -- check whether cache[wpn_section] contains values, if not fill with preset values + for i = 1, #curr_val do + if (not cache[wpn_section][i]) then + cache[wpn_section][i] = curr_val[i] + end + end + + update_shader_on_open_ui() +end + +-- update Shader Parameters when switching weapons and then reopening UI or when pasting copied values +function update_shader_on_open_ui() + + -- Shader Parameter 1 + if (cache[wpn_section][1] ~= curr_val[1] or + cache[wpn_section][2] ~= curr_val[2] or + cache[wpn_section][3] ~= curr_val[3] or + cache[wpn_section][4] ~= curr_val[4]) then + get_console():execute("s3ds_param_1 "..cache[wpn_section][1]..", "..cache[wpn_section][2]..", "..cache[wpn_section][3]..", "..cache[wpn_section][4]) + end + + -- Shader Parameter 2 + if (cache[wpn_section][5] ~= curr_val[5] or + cache[wpn_section][6] ~= curr_val[6]) then + get_console():execute("s3ds_param_2 "..cache[wpn_section][5]..", 0, "..cache[wpn_section][6]..", "..(ZOOM_FACTOR or 1.5)) + end + + -- Shader Parameter 3 + if (cache[wpn_section][7] ~= curr_val[7] or + cache[wpn_section][8] ~= curr_val[8] or + cache[wpn_section][9] ~= curr_val[9] or + cache[wpn_section][10] ~= curr_val[10]) then + get_console():execute("s3ds_param_3 "..cache[wpn_section][7]..", "..cache[wpn_section][8]..", "..cache[wpn_section][9]..", "..cache[wpn_section][10]) + end + + -- Shader Parameter 4 + if (cache[wpn_section][11] ~= curr_val[11]) then + get_console():execute("s3ds_param_4 "..cache[wpn_section][11]..", "..(NVG_BLUR and 1 or 0)) + end + + -- Marks Switch Parameter 1 + if (cache[wpn_section][12] ~= curr_val[12]) then + get_console():execute("markswitch_count "..cache[wpn_section][12]) + end + + -- Mark Switch Parameter 2 + if (cache[wpn_section][13] ~= curr_val[13]) then + get_console():execute("markswitch_color "..cache[wpn_section][13]) + end +end + +--;-- EDITOR MENU UI --------------------------------------------------------------------------------------------- + +GUI = nil -- instance, don't touch! + +-- open UI Window +function show_ui() + if (not GUI) then + GUI = ShaderScopesEditor() + end + + if (GUI and (not GUI:IsShown())) then + GUI:ShowDialog(true) + Register_UI("ShaderScopesEditor", "shader_scopes_editor", GUI) + end +end + + +class "ShaderScopesEditor" (CUIScriptWnd) + +function ShaderScopesEditor:__init() super() + self:InitControls() + self:InitCallBacks() +end + + +function ShaderScopesEditor:__finalize() +end + + +function ShaderScopesEditor:InitControls() + self:SetWndRect(Frect():set(0,0,1024,768)) + self:SetAutoDelete(true) + + self.xml = CScriptXmlInit() + local xml = self.xml + xml:ParseFile("ui_shader_scopes_editor_16.xml") + + -- UI Window + self.dialog = xml:InitStatic("SSE", self) + self.background = xml:InitStatic("SSE:background", self.dialog) + self.line_1_1 = xml:InitStatic("SSE:background:line_1_1", self.background) + self.line_1_2 = xml:InitStatic("SSE:background:line_1_2", self.background) + self.title = xml:InitTextWnd("SSE:background:title", self.background) + self.title:SetText(game.translate_string("sse_menu_title")) + self.line_2_1 = xml:InitStatic("SSE:background:line_2_1", self.background) + self.line_2_2 = xml:InitStatic("SSE:background:line_2_2", self.background) + + + -- Shader Parameter Description + self.desc = xml:InitTextWnd("SSE:desc", self.dialog) + self.desc:SetText(game.translate_string("sse_desc")) + + + self.main_wnd = xml:InitStatic("SSE:main_wnd", self.dialog) + + -- tab selection and buttons + self.tab_select = xml:InitStatic("SSE:tab_select", self.dialog) + + self.tab_1_bg = xml:InitStatic("SSE:tab_select:background_1", self.tab_select) + self.tab_1 = xml:Init3tButton("SSE:tab_select:tab_1", self.tab_select) + self.tab_1:TextControl():SetText(game.translate_string("sse_tab_1")) + self:Register(self.tab_1, "tab_1") + + self.tab_2_bg = xml:InitStatic("SSE:tab_select:background_2", self.tab_select) + self.tab_2_bg:Show(false) + self.tab_2 = xml:Init3tButton("SSE:tab_select:tab_2", self.tab_select) + self.tab_2:TextControl():SetText(game.translate_string("sse_tab_2")) + self:Register(self.tab_2, "tab_2") + + -- bottom line + self.line_3 = xml:InitStatic("SSE:line_3", self.dialog) + + + -- S3DS param windows (scroll view) --------------------------------------- + self.s3ds_wnd = xml:InitScrollView("SSE:scroll_view", self.dialog) + self.s3ds_wnd:Clear() + + -- parameter windows + self.wnd = {} + self.value = {} + + for i = 1, lens_clr_index do + local _st = xml:InitStatic("SSE:window", nil) + self.wnd[i] = {} + self.wnd[i].window = _st + + -- Shader Parameter name, reference images + self.wnd[i].title = xml:InitTextWnd("SSE:window:title", _st) + self.wnd[i].title:SetText(game.translate_string(data.text[i])) + -- self.wnd[i].tex_1 = xml:InitStatic("SSE:window:texture_1", _st) + -- self.wnd[i].tex_2 = xml:InitStatic("SSE:window:texture_2", _st) + + self:Register_Btn_Reset(i, xml, _st) + + self.value[i] = cache[wpn_section][i] + + -- trackbars + if (data.typ[i] == "track") then + self:Register_Trackbar(i, xml, _st) + + -- checkboxes + elseif (data.typ[i] == "check") then + self:Register_Check(i, xml, _st) + + -- multiple checkboxes + elseif (data.typ[i] == "radio") then + self:Register_Radio_Check(i, xml, _st) + end + + self.wnd[i].devider = xml:InitStatic("SSE:window:devider", _st) + + if (data.param[i] == "s3ds_lens_color") then + self:Add_Color_Sliders(i, xml, _st) + end + + self.s3ds_wnd:AddWindow(_st, true) + _st:SetAutoDelete(true) + end + + -- Mark Switch param window ----------------------------------------------- + self.ms_wnd = xml:InitStatic("SSE:ms_wnd", self.dialog) + + for i = ms_cnt_index, (#data.param) do + local _st = xml:InitStatic("SSE:window", nil) + self.wnd[i] = {} + self.wnd[i].window = _st + + local pos = self.wnd[i].window:GetWndPos() + local offset = self.wnd[1].window:GetHeight() + self.wnd[i].window:SetWndPos(vector2():set(pos.x, pos.y + (i - ms_cnt_index) * offset)) + + self.wnd[i].title = xml:InitTextWnd("SSE:window:title", _st) + self.wnd[i].title:SetText(game.translate_string(data.text[i])) + + self:Register_Btn_Reset(i, xml, _st) + + self.value[i] = cache[wpn_section][i] + + self:Register_Radio_Check(i, xml, _st) + + if (data.param[i] == "ms_colors") then + self:Add_Color_Sliders(i, xml, _st) + end + + self.wnd[i].devider = xml:InitStatic("SSE:window:devider", _st) + + _st:SetAutoDelete(true) + self.ms_wnd:AttachChild(_st) + end + + self.ms_wnd:Show(false) + + + -- hint window on hover over window title + self.hint_wnd = utils_ui.UIHint(self) + + -- help window with instructions and info + self.help_wnd = xml:InitStatic("help_wnd", self) + self.help_wnd:SetAutoDelete(false) + self.help_text = xml:InitTextWnd("help_wnd:text_wnd", self.help_wnd) + self.help_text:SetText(game.translate_string("sse_help_text")) + self.help_text:AdjustHeightToText() + self.help_wnd:Show(false) + + -- Buttons + self.copy_cache = {} -- saves copied values + + self.btn_reset_all = xml:Init3tButton("SSE:btn_reset_all", self.dialog) + self:Register(self.btn_reset_all, "btn_reset_all") + self.btn_reset_all:TextControl():SetText(game.translate_string("sse_btn_reset_all")) + + self.btn_resume = xml:Init3tButton("SSE:btn_resume", self.dialog) + self:Register(self.btn_resume, "btn_resume") + self.btn_resume:TextControl():SetText(game.translate_string("sse_btn_resume")) + + self.btn_copy = xml:Init3tButton("SSE:btn_copy", self.dialog) + self:Register(self.btn_copy, "btn_copy") + self.btn_copy:TextControl():SetText(game.translate_string("sse_btn_copy")) + + self.btn_paste = xml:Init3tButton("SSE:btn_paste", self.dialog) + self:Register(self.btn_paste, "btn_paste") + self.btn_paste:TextControl():SetText(game.translate_string("sse_btn_paste")) + + self.btn_apply = xml:Init3tButton("SSE:btn_apply", self.dialog) + self:Register(self.btn_apply, "btn_apply") + self.btn_apply:TextControl():SetText(game.translate_string("sse_btn_apply")) +end + + +----------------------- +-- Ctrl Init Functions +----------------------- + + +function ShaderScopesEditor:Register_Btn_Reset(i, xml, handler) + + local btn_reset_id = "btn_reset_"..i + self.wnd[i][btn_reset_id] = xml:Init3tButton("SSE:window:btn_reset", handler) + self:Register(self.wnd[i][btn_reset_id], btn_reset_id) + self.wnd[i][btn_reset_id]:TextControl():SetText(game.translate_string("sse_btn_reset")) + + local _wrapper = function(handler) + self:OnButton_Reset(i) + end + self:AddCallback(btn_reset_id, ui_events.BUTTON_CLICKED, _wrapper, self) +end + + +function ShaderScopesEditor:Register_Trackbar(i, xml, handler) + + self.wnd[i].trackbar = xml:InitTrackBar("SSE:window:trackbar", handler) + + -- assign current Shader Parameter values to trackbars when initiating UI + self.value[i] = clamp(self.value[i], data.min[i], data.max[i]) + self.wnd[i].trackbar:SetOptFBounds(data.min[i], data.max[i]) + self.wnd[i].trackbar:SetFValue(self.value[i]) + self.wnd[i].trackbar:SetStep(data.step[i]) + + -- number display next to trackbar + self.wnd[i].value = xml:InitTextWnd("SSE:window:track_value", handler) + self.wnd[i].value:SetText(self.value[i]) +end + + +function ShaderScopesEditor:Register_Check(i, xml, handler) + + local check_id = "checkbox_"..i + self.wnd[i][check_id] = xml:InitCheck("SSE:window:checkbox", handler) + if (self.value[i] == 1) then + self.wnd[i][check_id]:SetCheck(true) + else + self.wnd[i][check_id]:SetCheck(false) + end + self:Register(self.wnd[i][check_id], check_id) + + local _wrapper = function(handler) + self:OnButton_Check(i, check_id) + end + self:AddCallback(check_id, ui_events.BUTTON_CLICKED, _wrapper, self) +end + + +function ShaderScopesEditor:Register_Radio_Check(i, xml, handler) + + local count = #data.content[i] -- count entries + local offset = m_floor(self.wnd[i].window:GetWidth()/count) + for j = 1, count do + + -- checkboxes + local radio_check_id = "radio_check_"..i.."_"..j + self.wnd[i][radio_check_id] = xml:InitCheck("SSE:window:radio_check", handler) + + local pos = self.wnd[i][radio_check_id]:GetWndPos() + self.wnd[i][radio_check_id]:SetWndPos(vector2():set(pos.x + offset*(j-1 + 0.5) - 17, pos.y)) + + -- compare values set initial states of radio check buttons + local set_check + if (self.value[i] ~= data.content[i][j][2]) then + set_check = false + else + set_check = true + end + self.wnd[i][radio_check_id]:SetCheck(set_check) + + -- text windows + local radio_text_id = "radio_text_"..i.."_"..j + self.wnd[i][radio_text_id] = xml:InitTextWnd("SSE:window:radio_text", handler) + self.wnd[i][radio_text_id]:SetText(game.translate_string("sse_lst_"..data.content[i][j][1])) + + pos = self.wnd[i][radio_text_id]:GetWndPos() + self.wnd[i][radio_text_id]:SetWndPos(vector2():set(pos.x + offset*(j-1 + 0.5) - 17, pos.y)) + + self:Register(self.wnd[i][radio_check_id], radio_check_id) + + local _wrapper = function(_st) + self:OnRadio_Check(radio_check_id, i, j) + end + self:AddCallback(radio_check_id, ui_events.BUTTON_CLICKED, _wrapper, self) + end +end + + +function ShaderScopesEditor:Add_Color_Sliders(i, xml, handler) + + local size = {} + size.w = self.wnd[i].window:GetWidth() + size.h = self.wnd[i].window:GetHeight() + self.wnd[i].window:SetWndSize(vector2():set(size.w, 2*size.h)) + + -- convert color value string to array to assign values + self.value[i] = conv_to_arr(self.value[i]) + + -- init custom trackbars + self.wnd[i].trackbar = {} + self.wnd[i].color = {} + self.wnd[i].value = {} + local colors = {"R", "G", "B"} + for j = 1, 3 do + self.wnd[i].trackbar[j] = xml:InitTrackBar("SSE:ms_wnd:trackbar", handler) + + -- assign current Shader Parameter values to trackbars when initiating UI + self.value[i][j] = clamp(self.value[i][j], 0, 1) + self.wnd[i].trackbar[j]:SetOptFBounds(0, 1) + self.wnd[i].trackbar[j]:SetFValue(self.value[i][j]) + self.wnd[i].trackbar[j]:SetStep(0.01) + + -- color letter and number display next to trackbar + self.wnd[i].color[j] = xml:InitTextWnd("SSE:window:track_value", handler) + self.wnd[i].color[j]:SetText(colors[j]) + self.wnd[i].value[j] = xml:InitTextWnd("SSE:window:track_value", handler) + self.wnd[i].value[j]:SetText(self.value[i][j]) + + local track_pos = self.wnd[i].trackbar[j]:GetWndPos() + local value_pos = self.wnd[i].value[j]:GetWndPos() + + self.wnd[i].color[j]:SetWndPos(vector2():set(value_pos.x - 250, value_pos.y + 25*(j-1) + 40)) + self.wnd[i].trackbar[j]:SetWndPos(vector2():set(track_pos.x, track_pos.y + 25*(j-1) + 40)) + self.wnd[i].value[j]:SetWndPos(vector2():set(value_pos.x, value_pos.y + 25*(j-1) + 40)) + end +end + + +-------------------- +-- Button Callbacks +-------------------- + +function ShaderScopesEditor:InitCallBacks() + self:AddCallback("tab_1", ui_events.BUTTON_CLICKED, self.OnTab_S3DS, self) + self:AddCallback("tab_2", ui_events.BUTTON_CLICKED, self.OnTab_MS, self) + self:AddCallback("btn_reset_all", ui_events.BUTTON_CLICKED, self.OnButton_Reset_All, self) + self:AddCallback("btn_resume", ui_events.BUTTON_CLICKED, self.OnButton_Resume, self) + self:AddCallback("btn_copy", ui_events.BUTTON_CLICKED, self.OnButton_Copy, self) + self:AddCallback("btn_paste", ui_events.BUTTON_CLICKED, self.OnButton_Paste, self) + self:AddCallback("btn_apply", ui_events.BUTTON_CLICKED, self.Save_Params, self) +end + + +function ShaderScopesEditor:OnButton_Reset(i) + self.value[i] = curr_val[i] + self:Update_Ctrl(self.value) + self:Update_Shader(i) + self:Send_Msg(game.translate_string("sse_btn_reset_msg"), 2) +end + +-- show S3DS window +function ShaderScopesEditor:OnTab_S3DS() + if (not self.s3ds_wnd:IsShown()) then + self.s3ds_wnd:Show(true) + self.tab_1_bg:Show(true) + self.ms_wnd:Show(false) + self.tab_2_bg:Show(false) + end +end + + +-- show Mark Switch window +function ShaderScopesEditor:OnTab_MS() + if (not self.ms_wnd:IsShown()) then + self.s3ds_wnd:Show(false) + self.tab_1_bg:Show(false) + self.ms_wnd:Show(true) + self.tab_2_bg:Show(true) + end +end + + +function ShaderScopesEditor:OnButton_Check(i, check_id) + + local val = self.wnd[i][check_id]:GetCheck() + if (val) then + val = 1 + else + val = 0 + end + + if (val ~= self.value[i]) then + self.value[i] = val + self:Update_Shader(i) + end +end + + +function ShaderScopesEditor:OnRadio_Check(radio_check_id, i, j) + + -- turn other check buttons off when pressing a button + local val = self.wnd[i][radio_check_id]:GetCheck() + if (val) then + for n = 1, #data.content[i] do + local id = "radio_check_"..i.."_"..n + if (n ~= j) then + self.wnd[i][id]:SetCheck(false) + end + end + + self.value[i] = data.content[i][j][2] + self:Update_Shader(i) + else + self.wnd[i][radio_check_id]:SetCheck(true) + end + + -- update custom color sliders + if (i == lens_clr_index or i == ms_clr_index) then + data.content[i][j][2] = conv_to_arr(data.content[i][j][2]) + + for k = 1, 3 do + self.wnd[i].trackbar[k]:SetFValue(data.content[i][j][2][k]) + self.wnd[i].value[k]:SetText(data.content[i][j][2][k]) + end + + data.content[i][j][2] = table.concat(data.content[i][j][2], ",") + end +end + + +-- discard all changes and apply Shader Parameter preset values to active weapon +function ShaderScopesEditor:OnButton_Reset_All() + + cache[wpn_section] = {} + + self:Update_Ctrl(curr_val) + + -- reinitiate cache values of active weapon + cache[wpn_section] = shallow_copy(curr_val) + + z_3d_scopes.update_shader(wpn) + z_mark_switch.update_shader(wpn, z_mark_switch.parse_parameters(wpn)) + self:Send_Msg(game.translate_string("sse_btn_reset_all_msg"), 2) +end + + +-- discard all changes and close UI (reopening UI brings back changed values) +function ShaderScopesEditor:OnButton_Resume() + z_3d_scopes.update_shader(wpn) + z_mark_switch.update_shader(wpn, z_mark_switch.parse_parameters(wpn)) + GUI:HideDialog() + GUI:Show(false) + Unregister_UI("ShaderScopesEditor") + self:Send_Msg(game.translate_string("sse_btn_resume_msg"), 5) +end + + +function ShaderScopesEditor:OnButton_Copy() + self.copy_cache = {} -- empty cache + + if (copy_mode == 1) then + for i, v in pairs(cache[wpn_section]) do + if (v ~= curr_val[i]) then + self.copy_cache[i] = v + end + end + self:Send_Msg(game.translate_string("sse_btn_copy_msg_1"), 2) + else + self.copy_cache = cache[wpn_section] + self:Send_Msg(game.translate_string("sse_btn_copy_msg_2"), 2) + end +end + + +function ShaderScopesEditor:OnButton_Paste() + if (not next(self.copy_cache)) then + self:Send_Msg(game.translate_string("sse_btn_paste_msg_1"), 2) + return + end + + -- shallow_copy() is necessary, otherwise changing values in copied section changes values in pasted section + if (copy_mode == 1) then + for i, v in pairs(shallow_copy(self.copy_cache)) do + cache[wpn_section][i] = v + end + else + cache[wpn_section] = shallow_copy(self.copy_cache) + end + + self:Update_Ctrl(cache[wpn_section]) + update_shader_on_open_ui() + self:Send_Msg(game.translate_string("sse_btn_paste_msg_2"), 2) +end + + +-- Show hint message on button press +function ShaderScopesEditor:Send_Msg(str, dur) + printf("3D Shader Scopes Editor: "..str) + actor_menu.set_msg(1, str, dur) +end + + +--------------------------------- +-- Update UI and 3D Scope Shader +--------------------------------- + +function ShaderScopesEditor:Update_Ctrl(arr) + for i, val in ipairs(arr) do + if (data.typ[i] == "track") then + self.value[i] = clamp(val, data.min[i], data.max[i]) + self.wnd[i].trackbar:SetFValue(val) + self.wnd[i].value:SetText(val) + + elseif (data.typ[i] == "check") then + local check_id = "checkbox".."_"..i + self.value[i] = val + + if (val == 1) then + self.wnd[i][check_id]:SetCheck(true) + else + self.wnd[i][check_id]:SetCheck(false) + end + + elseif (data.typ[i] == "radio") then + self.value[i] = val + for n = 1, #data.content[i] do + local id = "radio_check_"..i.."_"..n + if (data.content[i][n][2] == self.value[i]) then + self.wnd[i][id]:SetCheck(true) + else + self.wnd[i][id]:SetCheck(false) + end + end + end + + -- custom color sliders + if (i == lens_clr_index or i == ms_clr_index) then + for j = 1, 3 do + if (type(self.value[i]) == "string") then + self.value[i] = conv_to_arr(self.value[i]) + end + if (type(val) == "string") then + val = conv_to_arr(val) + end + + self.value[i][j] = clamp(val[j], 0, 1) + self.wnd[i].trackbar[j]:SetFValue(val[j]) + self.wnd[i].value[j]:SetText(val[j]) + end + val = table.concat(val, ",") + self.value[i] = table.concat(self.value[i], ",") + end + end +end + + +function ShaderScopesEditor:Update() + CUIScriptWnd.Update(self) + + -- check active weapon to update values in UI on weapon switch + if (not last_wpn or last_wpn ~= wpn_section) then + last_wpn = wpn_section + + self:Update_Ctrl(cache[wpn_section]) + return + end + + -- show hint on hover (from ui_options.script) + for i,ctrl in ipairs(self.wnd) do + if ctrl.title:IsCursorOverWindow() then + local str = data.text[i].."_desc" + local str_t = game.translate_string(str) + if (str ~= str_t) then + self.hint_wnd:Update(str_t) + end + return + end + end + self.hint_wnd:Update() + + -- hack to simulate tracing method for trackbar value changes (from ui_ctrl_lighting.script) + for i,ctrl in ipairs(self.wnd) do + if (data.typ[i] == "track") then + if ctrl.trackbar:IsCursorOverWindow() then + local val = round_idp(ctrl.trackbar:GetFValue(), precision) -- round value from UI controls + if (val ~= self.value[i]) then + self.value[i] = val + self.wnd[i].value:SetText(val) + self:Update_Shader(i) + end + end + end + end + + -- custom color sliders + for i = lens_clr_index, ms_clr_index do + if (i ~= ms_cnt_index) then + for j = 1, 3 do + if (self.wnd[i].trackbar[j]:IsCursorOverWindow()) then + local val = round_idp(self.wnd[i].trackbar[j]:GetFValue(), precision) -- round value from UI controls + + if (type(self.value[i]) == "string") then + self.value[i] = conv_to_arr(self.value[i]) + end + + if (val ~= self.value[i][j]) then + self.value[i][j] = val + self.wnd[i].value[j]:SetText(val) + self.value[i] = table.concat(self.value[i], ",") + self:Update_Shader(i) + end + end + end + end + end + + -- toggle help window + if (self.show_help_wnd) then + self.help_wnd:Show(true) + else + self.help_wnd:Show(false) + end + +end + + +-- apply Shader Parameter values and update cache +function ShaderScopesEditor:Update_Shader(i) + + if (self.value[i] ~= cache[wpn_section][i]) then + -- Shader Parameter 1 + if (i <= 4) then + get_console():execute("s3ds_param_1 "..self.value[1]..", "..self.value[2]..", "..self.value[3]..", "..self.value[4]) + + -- Shader Parameter 2 + elseif (i == 5 or i == 6) then + get_console():execute("s3ds_param_2 "..self.value[5]..", 0, "..self.value[6]..", "..(ZOOM_FACTOR or 1.5)) + + -- Shader Parameter 3 + elseif (i >= 7 and i <= 10) then + get_console():execute("s3ds_param_3 "..self.value[7]..", "..self.value[8]..", "..self.value[9]..", "..self.value[10]) + + -- Shader Parameter 4 + elseif (i == 11) then + get_console():execute("s3ds_param_4 "..self.value[11]..", "..(NVG_BLUR and 1 or 0)) + + -- Marks Switch Parameter 1 + elseif (i == 12) then + get_console():execute("markswitch_count "..self.value[12]) + + -- Mark Switch Parameter 2 + elseif (i == 13) then + get_console():execute("markswitch_color "..self.value[13]) + end + end + + -- update cache + cache[wpn_section][i] = self.value[i] +end + + +-- close UI +function ShaderScopesEditor:OnKeyboard(dik, keyboard_action) + + -- close UI Window + if (keyboard_action == ui_events.WINDOW_KEY_PRESSED) then + if (dik == DIK_keys.DIK_ESCAPE) then + GUI:HideDialog() + GUI:Show(false) + Unregister_UI("ShaderScopesEditor") + actor_menu.set_msg(1, game.translate_string("sse_escape_msg"),5) + + elseif (dik == DIK_keys.DIK_H) then + show_help_wnd = not show_help_wnd + self.show_help_wnd = show_help_wnd + end + end +end + + +-- save changed Shader Parameter values to cache_dbg.ltx +function ShaderScopesEditor:Save_Params() + + local ini_cc = ui_debug_launcher.ini_cc + self.save_cache = {} + self.save_cache[wpn_section] = {} + + for i = 1, #data.param do + if (cache[wpn_section][i] ~= curr_val[i]) then + self.save_cache[wpn_section][i] = {} + self.save_cache[wpn_section][i][1] = data.param[i] + + if (type(cache[wpn_section][i]) == "string") then + for j, cont in ipairs(data.content[i]) do + if (cache[wpn_section][i] == tostring(cont[2])) then + self.save_cache[wpn_section][i][2] = data.content[i][j][1] + break + else + self.save_cache[wpn_section][i][2] = tostring(cache[wpn_section][i].."(custom_color, set_custom_name)") + end + end + else + self.save_cache[wpn_section][i][2] = cache[wpn_section][i] + end + end + end + + if (not next(self.save_cache[wpn_section])) then + self:Send_Msg(str_format(game.translate_string("sse_btn_apply_msg_1"), wpn_section), 2) + else + local par, val -- parameter name, parameter value + for sec,v in pairs(self.save_cache) do + for i,w in pairs(v) do + if (w) then + par = w[1] + val = w[2] + ini_cc:w_value(sec, par, val) + end + end + end + ini_cc:save() + self:Send_Msg(str_format(game.translate_string("sse_btn_apply_msg_2"), wpn_section), 2) + end +end \ No newline at end of file diff --git a/mods/Shader 3D Scopes Editor/gamedata/scripts/shader_scopes_editor_mcm.script b/mods/Shader 3D Scopes Editor/gamedata/scripts/shader_scopes_editor_mcm.script new file mode 100644 index 000000000..a2a3d9c7d --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/scripts/shader_scopes_editor_mcm.script @@ -0,0 +1,24 @@ +--======================================================== +-- +-- Shader 3D Scopes Editor - MCM Script +-- +--======================================================== + +function on_mcm_load() + op = { id = "SSE", sh = true, gr = { + { id = "title", type = "slide", link = "ui_options_slider_gameplay_diff", text = "ui_mcm_SSE_title", size = {512,50}, spacing = 20 }, + { id = "keybind", type = "key_bind", val = 2, def = DIK_keys.DIK_M }, + { id = "copy_mode", type = "radio_h", val = 2, def = 1, content = {{1, "copy_mode_1"}, {2, "copy_mode_2"} } }, + } + } + return op +end + +local defaults = { + ["keybind"] = DIK_keys.DIK_M, + ["copy_mode"] = 1, + } + +function get_config(key) + if ui_mcm then return ui_mcm.get("SSE/"..key) else return defaults[key] end +end \ No newline at end of file diff --git a/mods/Shader 3D Scopes Editor/gamedata/textures/ui/shader_scopes_editor/background.dds b/mods/Shader 3D Scopes Editor/gamedata/textures/ui/shader_scopes_editor/background.dds new file mode 100644 index 000000000..2fbb63525 --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/textures/ui/shader_scopes_editor/background.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2ce9aff5639b9d32feb6a7b3b7735a35e344e075ff98bd6c200cd554917b69c5 +size 220928 diff --git a/mods/Shader 3D Scopes Editor/gamedata/textures/ui/shader_scopes_editor/help_background.dds b/mods/Shader 3D Scopes Editor/gamedata/textures/ui/shader_scopes_editor/help_background.dds new file mode 100644 index 000000000..9c7f4ea1f --- /dev/null +++ b/mods/Shader 3D Scopes Editor/gamedata/textures/ui/shader_scopes_editor/help_background.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:13d28c066993eb71636dea512a4ad529e86285bcdaf9a8510dcda57d29068357 +size 220928 diff --git a/mods/Shader 3D Scopes Editor/meta.ini b/mods/Shader 3D Scopes Editor/meta.ini new file mode 100644 index 000000000..61fbd7e2e --- /dev/null +++ b/mods/Shader 3D Scopes Editor/meta.ini @@ -0,0 +1,28 @@ +[General] +gameName=stalkeranomaly +modid=0 +version=d2025.1.15.0 +newestVersion= +category="-1," +nexusFileStatus=1 +installationFile=Shader_3D_Scopes_Editor.1.7z +repository=Nexus +ignoredVersion= +comments= +notes= +nexusDescription= +url= +hasCustomURL=true +lastNexusQuery= +lastNexusUpdate= +nexusLastModified=2025-01-15T22:27:29Z +nexusCategory=0 +converted=false +validated=false +color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) +tracked=0 + +[installedFiles] +1\modid=0 +1\fileid=0 +size=1 diff --git a/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_colors.ltx b/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_colors.ltx index 20673a002..8c192d276 100644 --- a/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_colors.ltx +++ b/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_colors.ltx @@ -4,6 +4,7 @@ scope_red_dim = 0.4, 0.05, 0.05, 1 @[s3ds_colors] + lens_clear = 1, 1, 1 lens_old_yellow = 0.95, 0.91, 0.83 lens_russian_blue = 0.93, 0.96, 1 lens_contrast_yellow = 1, 0.95, 0.3 diff --git a/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_defaults.ltx b/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_defaults.ltx new file mode 100644 index 000000000..e8e1818ba --- /dev/null +++ b/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_defaults.ltx @@ -0,0 +1,12 @@ +@[s3ds_defaults] + s3ds_reticle_size = 4 + s3ds_eye_relief = 4 + s3ds_exit_pupil = 0.3 + s3ds_ffp = 0 + s3ds_reflection_hue = 0.65 + s3ds_min_zoom_1x = 0 + s3ds_image_type = 0 + s3ds_reticle_type = 0 + s3ds_dirt_intensity = 0 + s3ds_chroma_power = 0 + s3ds_lens_color = lens_clear diff --git a/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_scopes.ltx b/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_scopes.ltx index 973918611..1b28c0ff4 100644 --- a/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_scopes.ltx +++ b/mods/Shader 3D Scopes/gamedata/configs/mod_system_3ds_scopes.ltx @@ -4,6 +4,7 @@ ; s3ds_exit_pupil - exit pupil diameter relative to ocular lens diameter, or parallax shadow diameter (default 0.3) ; s3ds_ffp - enable first focal plane feature, reticle sizes up while zooming. Can be 0 or 1 (default 0) +; s3ds_reflection_hue - hue parameter of lens reflections, range [0 .. 1] (default 0.65) ; s3ds_min_zoom_1x - at minimal FOV magnification, disable image scale up inside scope. Needed for 1x optic sights and 1-Nx LPVO scopes. Can be 0 or 1 (default 0) ; s3ds_image_type - background image processor (default 0) @@ -15,6 +16,7 @@ ; 1 - LED illuminated reticle ; 2 - Masked LED illuminated reticle (red channel is regular black reticle, green channel is illuminated area) ; 3 - ACOG, sun illuminated reticle (red channel is regular black reticle, green channel is illuminated area, blue channel is gray text) +; Use ms_colors parameter to set illumination color ; 4 - ELCAN Specter, LED illuminated reticle with zoom switch (red channel is regular black reticle, green channel is illuminated area 1, blue channel is illuminated area 2). ; Use with ms_count = 3 and ms_colors = scope_black, scope_red_dim, scope_red ; 5 - 1P59 Giperon scope (red channel at first focal plane, green channel at second focal plane, blue channel rotated by zoom), has LED illumination @@ -39,18 +41,22 @@ ![1p29] s3ds_reticle_size = 4.6 s3ds_eye_relief = 2 + s3ds_reflection_hue = 0.75 ![acog] s3ds_reticle_size = 3.9 s3ds_eye_relief = 1.7 s3ds_reticle_type = 3 s3ds_dirt_intensity = 0.1 + s3ds_reflection_hue = 0.55 + ms_colors = scope_red ![ps01] s3ds_reticle_size = 4.7 s3ds_eye_relief = 2 s3ds_reticle_type = 1 s3ds_dirt_intensity = 0.5 + s3ds_reflection_hue = 0.75 ms_count = 2 ms_colors = scope_black, scope_red @@ -59,6 +65,7 @@ s3ds_eye_relief = 2 s3ds_reticle_type = 1 s3ds_dirt_intensity = 0.2 + s3ds_reflection_hue = 0.75 ms_count = 2 ms_colors = scope_black, scope_red @@ -68,6 +75,7 @@ s3ds_reticle_size = 2.2 s3ds_eye_relief = 4 s3ds_chroma_power = 0.04 + s3ds_reflection_hue = 0.15 ![wpn_fn2000] s3ds_reticle_size = 2.5 @@ -77,10 +85,12 @@ ![wpn_g36] s3ds_reticle_size = 2.2 s3ds_eye_relief = 2.5 + s3ds_reflection_hue = 0.7 ![wpn_g3sg1] s3ds_reticle_size = 4.3 s3ds_eye_relief = 2.4 + s3ds_reflection_hue = 0.2 ![wpn_g43] s3ds_reticle_size = 3.3 @@ -98,22 +108,25 @@ ![wpn_l85] s3ds_reticle_size = 3 s3ds_eye_relief = 2.2 + s3ds_exit_pupil = 0.6 ![wpn_l96a1] s3ds_reticle_size = 5 s3ds_eye_relief = 2.2 s3ds_chroma_power = 0.01 + s3ds_reflection_hue = 0.55 ![wpn_m24] s3ds_reticle_size = 5 s3ds_eye_relief = 2.2 s3ds_ffp = 1 - s3ds_chroma_power = 0.01 + s3ds_reflection_hue = 0.55 ![wpn_m82] s3ds_reticle_size = 5 s3ds_eye_relief = 2.2 s3ds_ffp = 1 + s3ds_reflection_hue = 0.55 ![wpn_m98b] s3ds_reticle_size = 5 @@ -140,6 +153,7 @@ s3ds_eye_relief = 0.7 s3ds_reticle_type = 2 s3ds_lens_color = lens_russian_blue + s3ds_reflection_hue = 0.75 ms_count = 2 ms_colors = scope_black, scope_red @@ -147,6 +161,7 @@ s3ds_reticle_size = 4.1 s3ds_eye_relief = 1.7 s3ds_reticle_type = 5 + s3ds_reflection_hue = 0.75 ms_count = 2 ms_colors = scope_black, scope_red @@ -169,6 +184,7 @@ s3ds_reticle_size = 4.7 s3ds_eye_relief = 2 s3ds_reticle_type = 1 + s3ds_reflection_hue = 0.75 ms_count = 2 ms_colors = scope_black, scope_red @@ -177,10 +193,14 @@ s3ds_eye_relief = 0.7 s3ds_reticle_type = 2 s3ds_lens_color = lens_russian_blue + s3ds_reflection_hue = 0.75 ms_count = 2 ms_colors = scope_black, scope_red ![wpn_wa2000] s3ds_reticle_size = 5 s3ds_eye_relief = 2.2 - s3ds_ffp = 1 + s3ds_reticle_type = 2 + s3ds_chroma_power = 0.01 + ms_count = 2 + ms_colors = scope_black, scope_red diff --git a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m24/wpn_m24_hud.ogf b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m24/wpn_m24_hud.ogf index c724bdcfa..cf541d9af 100644 --- a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m24/wpn_m24_hud.ogf +++ b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m24/wpn_m24_hud.ogf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6a7e0a382feb5cc6cb4361499667cc4e0c30ad8b0871d6ee9bf5439fd400b756 -size 799414 +oid sha256:71493ebb0b1a4d8bd3f5d22af460ab716b979107de4c939f4f52edd779f9520f +size 799416 diff --git a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m82/wpn_m82_hud.ogf b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m82/wpn_m82_hud.ogf index b2835ba7c..b0ff942a0 100644 --- a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m82/wpn_m82_hud.ogf +++ b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_m82/wpn_m82_hud.ogf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:29b52cbde9510f59c90c29d4a345949283562b6ce86ee814fbe4296a860586ca -size 1107288 +oid sha256:2ab01e19b0a25403e0fec511a5445de5a23c0123724983120f6bb968a1aeb88d +size 1107287 diff --git a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_sr25/wpn_sr25_hud.ogf b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_sr25/wpn_sr25_hud.ogf index f7480b02a..101cb90ff 100644 --- a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_sr25/wpn_sr25_hud.ogf +++ b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_sr25/wpn_sr25_hud.ogf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8deeb173fdb797bd5b2e9c62a85eb597bf13bcfc5dd31a4efd7fbda2a3a062d1 -size 992327 +oid sha256:c351b4afaaf497e605002899b78ab7a60f4991678c663971390b3a4ca6f01a28 +size 992326 diff --git a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_trg/wpn_trg_hud.ogf b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_trg/wpn_trg_hud.ogf index 26ff6d37d..52c74c11f 100644 --- a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_trg/wpn_trg_hud.ogf +++ b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_trg/wpn_trg_hud.ogf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7ac07e32238c95f805b7f592b3009dbd4097ecc1c8bc42a7f7485503c9eff77a -size 577523 +oid sha256:90323dcfc5f1f86d0523e255f17b9bc56e127d4220b9d4570552b629159ba755 +size 577521 diff --git a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_wa2000/wpn_wa2000_hud.ogf b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_wa2000/wpn_wa2000_hud.ogf index 729879fdf..731dbb4fc 100644 --- a/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_wa2000/wpn_wa2000_hud.ogf +++ b/mods/Shader 3D Scopes/gamedata/meshes/anomaly_weapons/wpn_wa2000/wpn_wa2000_hud.ogf @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6b609508e8af760815aa54b00bed65b262e788ece657ec965fa379d0877352f9 +oid sha256:02ce768e8e02b6e0a898cb4d7f6d99f425154cede992d7651f2e6de07d15e446 size 540381 diff --git a/mods/Shader 3D Scopes/gamedata/scripts/z_3d_scopes.script b/mods/Shader 3D Scopes/gamedata/scripts/z_3d_scopes.script index 46ac0e2cb..04ad3358e 100644 --- a/mods/Shader 3D Scopes/gamedata/scripts/z_3d_scopes.script +++ b/mods/Shader 3D Scopes/gamedata/scripts/z_3d_scopes.script @@ -4,7 +4,7 @@ Link : https://www.moddb.com/mods/stalker-anomaly/addons/shader-3d-scopes Author : party_50 Date : 01.03.2024 - Last Edit : 07.10.2024 + Last Edit : 07.01.2025 ===================================================================== --]] @@ -17,6 +17,7 @@ local ALL_PARAMETERS = { s3ds_exit_pupil = "float", s3ds_ffp = "float", + s3ds_reflection_hue = "float", s3ds_min_zoom_1x = "float", s3ds_image_type = "float", @@ -93,6 +94,9 @@ function parse_parameters(wpn) if not values[key] then values[key] = parse_key(sight_section, key, type) end + if not values[key] then + values[key] = parse_key("s3ds_defaults", key, type) + end end return values @@ -110,14 +114,14 @@ function update_shader(wpn) get_console():execute( "s3ds_param_1 " .. - get(info, "s3ds_reticle_size", "4") .. ", " .. - get(info, "s3ds_eye_relief", "4") .. ", " .. - get(info, "s3ds_exit_pupil", "0.3") .. ", " .. + get(info, "s3ds_reticle_size", "0") .. ", " .. + get(info, "s3ds_eye_relief", "0") .. ", " .. + get(info, "s3ds_exit_pupil", "0") .. ", " .. get(info, "s3ds_ffp", "0")) get_console():execute( "s3ds_param_2 " .. - "0, " .. + get(info, "s3ds_reflection_hue", "0") .. ", " .. "0, " .. get(info, "s3ds_min_zoom_1x", "0") .. ", " .. (ZOOM_FACTOR or 1.5)) @@ -127,11 +131,11 @@ function update_shader(wpn) get(info, "s3ds_image_type", "0") .. ", " .. get(info, "s3ds_reticle_type", "0") .. ", " .. get(info, "s3ds_dirt_intensity", "0") .. ", " .. - get(info, "s3ds_chroma_power", "0.02")) + get(info, "s3ds_chroma_power", "0")) get_console():execute( "s3ds_param_4 " .. - get(info, "s3ds_lens_color", "1, 1, 1") .. ", " .. + get(info, "s3ds_lens_color", "0, 0, 0") .. ", " .. (NVG_BLUR and 1 or 0)) end diff --git a/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.ps b/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.ps index 2e0df20e8..516c0538f 100644 --- a/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.ps +++ b/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.ps @@ -4,7 +4,7 @@ Link : https://www.moddb.com/mods/stalker-anomaly/addons/shader-3d-scopes Authors : LVutner, party_50 Date : 01.03.2024 - Last Edit : 26.10.2024 + Last Edit : 07.01.2025 ===================================================================== */ @@ -30,8 +30,7 @@ Texture2D s_prev_frame; Texture2D s_inside; Texture2D s_dirt; -TextureCube s_env0; -TextureCube s_env1; +TextureCube s_reflection; float4 m_hud_params; float4 m_hud_fov_params; @@ -48,12 +47,13 @@ struct vf { float4 hpos : SV_Position; float2 tc0 : TEXCOORD0; - float3 v_pos : TEXCOORD1; - float3 v_nrm : TEXCOORD2; - float3 w_pos : TEXCOORD3; - float3 w_nrm : TEXCOORD4; - float3 v_dir : TEXCOORD5; - float3 v_sun : TEXCOORD6; + float3 w_pos : POSITION1; + float3 w_nrm : NORMAL1; + float3 v_pos : POSITION0; + float3 v_nrm : NORMAL0; + float3 T : TANGENT0; + float3 B : BINORMAL0; + float3 N : NORMAL2; }; float3x3 cotangent_frame(float3 N, float3 P, float2 uv) @@ -94,7 +94,7 @@ float2 project(float2 tc, float2 tangent, float distance, float size) return parallax_tc; } -float4 blur_sample(Texture2D tex, SamplerState samp, float2 uv) +float4 blur_sample(Texture2D tex, float2 uv) { float4 color = float4(0, 0, 0, 0); float blur_amount = 0.006; @@ -119,7 +119,7 @@ float4 blur_sample(Texture2D tex, SamplerState samp, float2 uv) for (int i = 0; i < 9; i++) { - color += tex.Sample(samp, uv + offsets[i] * blur_amount + dither) * weights[i]; + color += tex.Sample(smp_base, uv + offsets[i] * blur_amount + dither) * weights[i]; } return color; @@ -135,14 +135,14 @@ float3 chroma_sample(float2 lens_tc, float2 back_tc, float current_fov, float po float step = i / 16.0; float2 delta = lens_tc - 0.5; - float zoom_multiplier = min(1, 0.005 * (180 / current_fov)); + float zoom_multiplier = min(1, 0.004 * (180 / current_fov)); delta = sign(delta) * pow(abs(delta), 3.5) * (2 * power + zoom_multiplier); float2 coord = back_tc + (step - 0.5) * delta; float3 weight = float3(step, 1.0 - abs(step + step - 1.0), 1.0 - step); weight = lerp(float3(0.5, 0.5, 0.5), weight, 2.0); - float3 color = s_prev_frame.Sample(smp_rtlinear, coord).rgb; + float3 color = s_prev_frame.Sample(smp_base, coord).rgb; color_sum += color * color * weight; weight_sum += weight; @@ -155,7 +155,7 @@ float3 back_image_sample(float2 lens_tc, float2 back_tc, float current_fov, floa { if (nvg_blur && floor(shader_param_8.x) != 0) { - return blur_sample(s_prev_frame, smp_rtlinear, back_tc); + return blur_sample(s_prev_frame, back_tc); } return chroma_sample(lens_tc, back_tc, current_fov, power); @@ -164,11 +164,11 @@ float3 back_image_sample(float2 lens_tc, float2 back_tc, float current_fov, floa float3 apply_nvg(float2 tc, float3 img) { img = BlackandWhite(img); - img = Brightness(img, 0.45, 6); + img = Brightness(img, 0.45, 7); img = clamp(img, 0, 1); img = LevelsPass(img); - img = Grain2(img, tc); img = Grain1(img, tc); + img = Grain2(img, tc); return img; } @@ -233,23 +233,62 @@ float4 rgba_blend(float4 b, float4 a) return float4(nc, na); } -float3 sample_sky(float3 dir) -{ - dir.y = (dir.y - max(cos(dir.x) * 0.65, cos(dir.z) * 0.65)) * 2.1; - dir.y -= -0.35; - - float3 sky0 = s_env0.SampleLevel(smp_base, dir, 0).xyz; - float3 sky1 = s_env1.SampleLevel(smp_base, dir, 0).xyz; - - return lerp(sky0, sky1, L_ambient.w); -} - float4 sample_specular(float3 pnt, float3 normal, float3 light_direction) { - float w = pow(abs(dot(normalize(pnt + light_direction), normal)), 256); + float w = pow(abs(dot(normalize(pnt + light_direction), normal)), 1024); return float4(L_sun_color.rgb * w, w); } +float3 sample_reflections(float2 tc, float parallax_factor, float fov_factor, float specular_factor, float dirt_factor, float3x3 TBNw_inv, float3 w_pos, float3 w_nrm, float lum) +{ + float3 normalmap = float3(tc - 0.5, 1); + normalmap.xy *= fov_factor; + float3 lensnormal = normalize(float3(dot(normalmap, TBNw_inv[0]), dot(normalmap, TBNw_inv[1]), dot(normalmap, TBNw_inv[2]))); + + float3 reflections = s_reflection.SampleLevel(smp_base, reflect(normalize(normalize(w_pos - eye_position) - normalize(w_nrm) * parallax_factor), lensnormal), 0).xyz; + float angle_factor = (dot(normalize(w_pos - eye_position), normalize(w_nrm)) + 1) / 2; + reflections *= smoothstep(0, 0.03, angle_factor) * smoothstep(0, 1, lum) * 0.15; + reflections *= pow(1 - dirt_factor, 10); + + float4 specular = sample_specular( + normalize(normalize(w_pos - eye_position) - normalize(w_nrm) * parallax_factor), + normalize(float3(dot(normalmap, TBNw_inv[0]), dot(normalmap, TBNw_inv[1]), dot(normalmap, TBNw_inv[2]))), + normalize(L_sun_dir_w) + ) * 4; + specular.w *= L_material.g * smoothstep(0, 0.03, angle_factor); + specular.w = min(1, specular.w); + specular.w *= pow(1 - dirt_factor, 10); + specular.w *= specular_factor; + + return reflections + specular.rgb * specular.a; +} + +float3 HSVtoRGB(float3 hsv) +{ + if (hsv.y == 0.0) + return hsv.z; + + float i = floor(hsv.x * 6.0); + float f = hsv.x * 6.0 - i; + float p = hsv.z * (1.0 - hsv.y); + float q = hsv.z * (1.0 - f * hsv.y); + float t = hsv.z * (1.0 - (1.0 - f) * hsv.y); + + i = fmod(i, 6.0); + + if (i == 0.0) + return float3(hsv.z, t, p); + else if (i == 1.0) + return float3(q, hsv.z, p); + else if (i == 2.0) + return float3(p, hsv.z, t); + else if (i == 3.0) + return float3(p, q, hsv.z); + else if (i == 4.0) + return float3(t, p, hsv.z); + return float3(hsv.z, p, q); +} + float4 main(vf I) : SV_Target { float RETICLE_SIZE = s3ds_param_1.x; @@ -259,6 +298,7 @@ float4 main(vf I) : SV_Target float MIN_ZOOM_FOV = m_hud_fov_params.y * 0.75; float MAX_ZOOM_FOV = m_hud_fov_params.x * 0.75; + float REFLECTION_HUE = s3ds_param_2.x; int MIN_ZOOM_1X = s3ds_param_2.z; float ZOOM_FACTOR = s3ds_param_2.w; @@ -302,34 +342,35 @@ float4 main(vf I) : SV_Target float4 mark_texture = float4(0, 0, 0, 0); if (reticle_tc.x >= 0 && reticle_tc.x <= 1 && reticle_tc.y >= 0 && reticle_tc.y <= 1) { - mark_texture = s_base.Sample(smp_rtlinear, reticle_tc); + mark_texture = s_base.Sample(smp_base, clamp(reticle_tc, 0, 1)); } + float4 giperon_sfp; if (RETICLE_TYPE == RT_GIPERON) { - float finder = s_base.Sample(smp_rtlinear, reticle_lens_tc).g; - float reticle = mark_texture.r; + mark_texture = mark_texture.r; + float finder = s_base.Sample(smp_base, clamp(reticle_lens_tc, 0, 1)).g; float shift_3x = 0.053; float angle = -PI * (zoom_part + shift_3x) / (1 + shift_3x); float2 tc = reticle_lens_tc - 0.5; tc = float2(tc.x * cos(angle) - tc.y * sin(angle), tc.x * sin(angle) + tc.y * cos(angle)); tc += 0.5; - float numbers = s_base.Sample(smp_rtlinear, tc + fisheye(I.tc0, V_tangent.xy)).b; - mark_texture = float4(0, 0, 0, max(numbers, max(finder, reticle))); + float numbers = s_base.Sample(smp_base, clamp(tc + fisheye(I.tc0, V_tangent.xy), 0, 1)).b; + giperon_sfp = float4(0, 0, 0, max(finder, numbers)); } if (RETICLE_TYPE == RT_ACOG) { float3 black = float3(0, 0, 0); - float3 color = float3(1, 0.2, 0.2); float3 text = float3(0.3, 0.3, 0.3); float tritium_lum = 0.2; - mark_texture = rgba_blend(rgba_blend(float4(black, mark_texture.r), float4(color * max(tritium_lum, lum * 2), mark_texture.g)), float4(text, mark_texture.b * lum)); + mark_texture = rgba_blend(rgba_blend(float4(black, mark_texture.r), float4(markswitch_color.rgb * max(tritium_lum, lum * 2), mark_texture.g)), float4(text, mark_texture.b * lum)); } if (RETICLE_TYPE == RT_LED || RETICLE_TYPE == RT_GIPERON) { mark_texture = float4(markswitch_color.rgb, mark_texture.a); + giperon_sfp = float4(markswitch_color.rgb, giperon_sfp.a); } if (RETICLE_TYPE == RT_SPECTER) @@ -371,19 +412,19 @@ float4 main(vf I) : SV_Target // Parallax shadow float2 exit_pupil_tc = project(I.tc0, V_tangent.xy, -EYE_RELIEF, EXIT_PUPIL); - float4 shadow_texture = sample_shadow(exit_pupil_tc, SHADOW_WIDTH); + float4 shadow_texture = sample_shadow(exit_pupil_tc, SHADOW_WIDTH + 0.02 * (current_zoom - 1)); // LED-illuminated inside walls - float4 inside = s_inside.Sample(smp_rtlinear, (reticle_lens_tc - 0.5) * 0.62 + 0.5); + float4 inside = s_inside.Sample(smp_base, clamp((reticle_lens_tc - 0.5) * 0.62 + 0.5, 0, 1)); inside = float4(markswitch_color.rgb * inside.r, inside.a); - if (RETICLE_TYPE == RT_SCREEN || RETICLE_TYPE == RT_SPECTER) { + if (RETICLE_TYPE == RT_SCREEN || RETICLE_TYPE == RT_SPECTER || RETICLE_TYPE == RT_ACOG || FFP) { inside = float4(0, 0, 0, 0); } - + // Dirt texture - float4 dirt = s_dirt.Sample(smp_rtlinear, I.tc0); + float4 dirt = s_dirt.Sample(smp_base, I.tc0); dirt.a *= DIRT_INTENSITY; - + // Back image float2 screen_tc = I.hpos.xy * screen_res.zw; float zoom = lerp(1, IMAGE_SIZE, m_hud_params.x); @@ -391,7 +432,7 @@ float4 main(vf I) : SV_Target float2 scope_tc = (1.0 / zoom) * (screen_tc.xy - 0.5) + 0.5; V_tangent.x = V_tangent.x / screen_res.x * screen_res.y; scope_tc = scope_tc + V_tangent.xy * shift; - + if (RETICLE_TYPE == RT_SPECTER) { float smooth_zoom_part = smoothstep(0, 1, zoom_part); if (distance(I.tc0, float2(0.5 + smooth_zoom_part * 3, 0.5)) <= 1) @@ -399,7 +440,7 @@ float4 main(vf I) : SV_Target if (distance(I.tc0, float2(-2.5 + smooth_zoom_part * 3, 0.5)) <= 1) scope_tc.x += 0.2 * (1 - smooth_zoom_part); } - + float3 back; if (IMAGE_TYPE == IT_THERMAL && markswitch_current.x < 2) { float pixelate = int(current_zoom); @@ -413,37 +454,21 @@ float4 main(vf I) : SV_Target back = back_image_sample(I.tc0, scope_tc, ogse_c_screen.x, CHROMA_POWER, NVG_BLUR); back *= LENS_COLOR; } - + if (IMAGE_TYPE == IT_THERMAL) { back *= lcd_effect(I.hpos); } - + if (IMAGE_TYPE == IT_NV && markswitch_current.x == 0) { back = apply_nvg(scope_tc, back); } // Reflections - float3 normalmap = float3(I.tc0.xy, 1) * 2 - 1; - float3x3 TBNw = cotangent_frame(I.w_nrm, I.w_pos, I.tc0.xy); - float3x3 TBNw_inv = transpose(TBNw); - float3 lensnormal = normalize(float3(dot(normalmap, TBNw_inv[0]), dot(normalmap, TBNw_inv[1]), dot(normalmap, TBNw_inv[2]))); + float3x3 TBNw_inv = transpose(float3x3(I.T, I.B, I.N)); + float3 reflections = sample_reflections(I.tc0.xy, 0, 1, 2, dirt.a, TBNw_inv, I.w_pos, I.w_nrm, lum) * HSVtoRGB(float3(REFLECTION_HUE, 0.2, 1)); + reflections += sample_reflections(I.tc0.xy, 100, 2, 0.2, dirt.a, TBNw_inv, I.w_pos, I.w_nrm, lum) * HSVtoRGB(float3(REFLECTION_HUE - 0.1, 0.9, 1)); + reflections += sample_reflections(I.tc0.xy, 40, -3, 0.2, dirt.a, TBNw_inv, I.w_pos, I.w_nrm, lum) * HSVtoRGB(float3(REFLECTION_HUE + 0.1, 0.5, 1)); - float3 reflections = sample_sky(reflect(normalize(I.w_pos - eye_position), lensnormal)); - float angle_factor = (dot(normalize(I.w_pos - eye_position), normalize(I.w_nrm)) + 1) / 2; - reflections *= smoothstep(0, 0.03, angle_factor) * smoothstep(0, 1, lum) * 0.15; - reflections *= pow(1 - dirt.a, 10); - - // Specular light - float3x3 TBN_inv = transpose(TBN); - float4 specular = sample_specular( - normalize(I.v_dir), - normalize(float3(dot(normalmap, TBN_inv[0]), dot(normalmap, TBN_inv[1]), dot(normalmap, TBN_inv[2]))), - normalize(I.v_sun) - ) * 4; - specular.w *= L_material.g * smoothstep(-0.001, 0.03, angle_factor); - specular.w = min(1, specular.w); - specular.w *= pow(1 - dirt.a, 10); - // Vignette float4 vignette = float4(0, 0, 0, smoothstep(0.4, 2, 2 * length(I.tc0.xy - float2(0.5, 0.5)))); @@ -453,23 +478,30 @@ float4 main(vf I) : SV_Target final_scope = lerp(final_scope, mark_shadow_blue.xyz, mark_shadow_blue.w * BlackandWhite(back)); } final_scope = lerp(final_scope, vignette.xyz, vignette.w); - final_scope = lerp(final_scope, mark_shadow.xyz, mark_shadow.w); - final_scope = lerp(final_scope, inside.xyz, inside.w); if (RETICLE_TYPE == RT_ADDITIVE) { final_scope += mark_texture.xyz * mark_texture.w; } + else if (RETICLE_TYPE == RT_GIPERON || FFP) + { + final_scope = lerp(final_scope, mark_texture.xyz, mark_texture.w); + } + final_scope = lerp(final_scope, mark_shadow.xyz, mark_shadow.w); + final_scope = lerp(final_scope, inside.xyz, inside.w); if (RETICLE_TYPE != RT_SCREEN) { final_scope = lerp(final_scope, shadow_texture.xyz, shadow_texture.w); } - if (RETICLE_TYPE != RT_ADDITIVE) + if (!(RETICLE_TYPE == RT_ADDITIVE || RETICLE_TYPE == RT_GIPERON || FFP)) { final_scope = lerp(final_scope, mark_texture.xyz, mark_texture.w); } + if (RETICLE_TYPE == RT_GIPERON) + { + final_scope = lerp(final_scope, giperon_sfp.xyz, giperon_sfp.w); + } final_scope = lerp(final_scope, zoom_switch_shadow.xyz, zoom_switch_shadow.w); - final_scope = max(final_scope, reflections); - final_scope += specular.xyz * specular.w; + final_scope += reflections; final_scope = lerp(final_scope, dirt.xyz, dirt.w); return float4(final_scope, 1.0); diff --git a/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.s b/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.s index d7b14a082..ad6c9c734 100644 --- a/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.s +++ b/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.s @@ -8,13 +8,12 @@ function normal(shader, t_base, t_second, t_detail) : distort(true) : scopelense(3) shader:dx10texture("s_base", t_base) - shader:dx10texture("s_env0", "$user$sky0") - shader:dx10texture("s_env1", "$user$sky1") shader:dx10texture("s_prev_frame", "$user$generic_temp") shader:dx10texture("s_tonemap", "$user$tonemap") shader:dx10texture("s_heat", "$user$heat") shader:dx10texture("s_position", "$user$generic2") shader:dx10texture("s_inside", "wpn\\scope_utility\\inside") shader:dx10texture("s_dirt", "wpn\\scope_utility\\dirt") - shader:dx10sampler("smp_rtlinear") + shader:dx10texture("s_reflection", "wpn\\scope_utility\\reflection") + shader:dx10sampler("smp_base") end \ No newline at end of file diff --git a/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.vs b/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.vs index 8fc292b3d..86be00ccf 100644 --- a/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.vs +++ b/mods/Shader 3D Scopes/gamedata/shaders/r3/models_scope_reticle.vs @@ -5,12 +5,13 @@ struct vf { float4 hpos : SV_Position; float2 tc0 : TEXCOORD0; - float3 v_pos : TEXCOORD1; - float3 v_nrm : TEXCOORD2; - float3 w_pos : TEXCOORD3; - float3 w_nrm : TEXCOORD4; - float3 v_dir : TEXCOORD5; - float3 v_sun : TEXCOORD6; + float3 w_pos : POSITION1; + float3 w_nrm : NORMAL1; + float3 v_pos : POSITION0; + float3 v_nrm : NORMAL0; + float3 T : TANGENT0; + float3 B : BINORMAL0; + float3 N : NORMAL2; }; vf _main (v_model v) @@ -20,15 +21,16 @@ vf _main (v_model v) o.hpos = mul(m_WVP, v.P); o.tc0 = v.tc.xy; + o.w_pos = mul(m_W, v.P).xyz; + o.w_nrm = mul(m_W, v.N).xyz; + o.v_pos = mul(m_WV, v.P).xyz; o.v_nrm = mul(m_WV, v.N).xyz; - o.w_pos = mul(m_W, v.P).xyz; - o.w_nrm = mul(m_W, v.N).xyz; + o.T = mul(m_W, v.T).xyz; + o.B = mul(m_W, v.B).xyz; + o.N = mul(m_W, v.N).xyz; - o.v_dir = mul(m_V, normalize(o.w_pos - eye_position)); - o.v_sun = mul(m_V, L_sun_dir_w); - return o; } diff --git a/mods/Shader 3D Scopes/gamedata/shaders/r3/nv_utils.h b/mods/Shader 3D Scopes/gamedata/shaders/r3/nv_utils.h index f1a4caf4c..d49b26310 100644 --- a/mods/Shader 3D Scopes/gamedata/shaders/r3/nv_utils.h +++ b/mods/Shader 3D Scopes/gamedata/shaders/r3/nv_utils.h @@ -184,18 +184,20 @@ float fade( float t ) } float pnoise3D( float3 p, float t, float grainSize ) -{ +{ float3 pi = permONE * floor( p ) + permHALF; pi.xy *= permTexSize; pi.xy = round(( pi.xy - permHALF ) / grainSize ) * grainSize; pi.xy /= permTexSize; - float3 pf = frac( p ); + // Magic constatns + float3 pf = float3(-0.1, 0.1, 0); // = frac( p ); // Noise contributions from (x=0, y=0), z=0 and z=1 float perm00 = rnm( pi.xy, t ).x; float3 grad000 = samplerPermTex(float2( perm00, pi.z )).xyz * 4.0 - 1.0; float n000 = dot( grad000, pf ); float3 grad001 = samplerPermTex(float2( perm00, pi.z + permONE )).xyz * 4.0 - 1.0; float n001 = dot( grad001, pf - float3( 0.0, 0.0, 1.0 )); + //return n001; // Noise contributions from (x=0, y=1), z=0 and z=1 float perm01 = rnm( pi.xy + float2( 0.0, permONE ), t ).y ; float3 grad010 = samplerPermTex(float2( perm01, pi.z )).xyz * 4.0 - 1.0; @@ -203,13 +205,13 @@ float pnoise3D( float3 p, float t, float grainSize ) float3 grad011 = samplerPermTex(float2( perm01, pi.z + permONE )).xyz * 4.0 - 1.0; float n011 = dot( grad011, pf - float3( 0.0, 1.0, 1.0 )); // Noise contributions from (x=1, y=0), z=0 and z=1 - float perm10 = rnm( pi.xy + float2( permONE, 0.0 ), t ).z ; + float perm10 = rnm( pi.xy + float2( permONE, 0.0 ), t ).z; float3 grad100 = samplerPermTex(float2( perm10, pi.z )).xyz * 4.0 - 1.0; float n100 = dot( grad100, pf - float3( 1.0, 0.0, 0.0 )); float3 grad101 = samplerPermTex(float2( perm10, pi.z + permONE )).xyz * 4.0 - 1.0; float n101 = dot( grad101, pf - float3( 1.0, 0.0, 1.0 )); // Noise contributions from (x=1, y=1), z=0 and z=1 - float perm11 = rnm( pi.xy + float2( permONE, permONE ), t ).w ; + float perm11 = rnm( pi.xy + float2( permONE, permONE ), t ).w; float3 grad110 = samplerPermTex(float2( perm11, pi.z )).xyz * 4.0 - 1.0; float n110 = dot( grad110, pf - float3( 1.0, 1.0, 0.0 )); float3 grad111 = samplerPermTex(float2( perm11, pi.z + permONE )).xyz * 4.0 - 1.0; @@ -233,11 +235,11 @@ float3 doGrain(float3 color, float2 texcoord, float grainIntLow, float grainDensity) { - float timer = timers.x % 1000.0f; + float timer = timers.x % 1000.0f; float2 uv = texcoord.xy * float2( screen_res.x, screen_res.y ); float3 noise = pnoise3D( float3( uv.xy, 1 ), timer, grainSize ); noise.y = pnoise3D( float3( uv.xy, 2 ), timer, grainSize ); - noise.z = pnoise3D( float3( uv.xy, 3 ), timer, grainSize ); + noise.z = pnoise3D( float3( uv.xy, 3 ), timer, grainSize ); // Old, practically does the same as grainAmount below // Added back on request @@ -255,11 +257,31 @@ float3 doGrain(float3 color, float2 texcoord, color.xyz = lerp( color.xyz, color.xyz + ( noise.xyz ), grainAmount ); return float3( color.xyz ); } - + +float3 Grain1(float3 color, float2 texcoord) +{ + float grainSize=3.0; + float grainAmount=0.500000; + float grainIntensity=0.300000; + float grainColor=0.000000; + float grainIntHigh=0.000000; + float grainIntLow=0.500000; + float grainDensity=10.000000; + + return doGrain(color, texcoord, + grainSize, + grainAmount, + grainIntensity, + grainColor, + grainIntHigh, + grainIntLow, + grainDensity); +} + float3 Grain2(float3 color, float2 texcoord) { - float grainSize = 2.0; - float grainAmount=0.023000 * 0.00004; + float grainSize=2.0; + float grainAmount=0.4; float grainIntensity=1.000000; float grainColor=0.000000; float grainIntHigh=0.000000; @@ -275,25 +297,3 @@ float3 Grain2(float3 color, float2 texcoord) grainIntLow, grainDensity); } - -////////////////////////////////////////////////////////////////////////////////////// - -float3 Grain1(float3 color, float2 texcoord) -{ - float grainSize=1.0; - float grainAmount=0.500000; - float grainIntensity=0.300000; - float grainColor=0.000000; - float grainIntHigh=0.000000; - float grainIntLow=0.500000; - float grainDensity=10.000000; - - return doGrain(color, texcoord, - grainSize, - grainAmount, - grainIntensity, - grainColor, - grainIntHigh, - grainIntLow, - grainDensity); -} diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_duplex.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_duplex.dds index bcd1fec4e..4e2c4edc6 100644 --- a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_duplex.dds +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_duplex.dds @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:acc5f7c4d0adc1edbb652dd0044197a63c911200f326501101b230899d5b66d2 +oid sha256:6188c6860108e57dc74104f5bd65ff67b17a6496b0a26916a4d97794383d8dd2 size 1398256 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_mildot.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_mildot.dds index 573ce7dcb..95deab3ba 100644 --- a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_mildot.dds +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_mildot.dds @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:20aff7a50187c00e916ba43effb0a58046aa3595ebc109a1e3960e89932f5cb2 +oid sha256:90d874fba14682e72153d4def28ff61cd64ffa6e06534ce7e99c0091eb596901 size 5592560 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_tmoa.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_tmoa.dds index 5bc4229c5..22cf958b6 100644 --- a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_tmoa.dds +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_tmoa.dds @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:235d848664d197d96cdb1515da9b89fe87a4f2c33509ad337ce40399147efb83 +oid sha256:f72080395cb8dd5192b5dbb051e8ef7430b3f4060c96e37f12ae2755236999c8 size 5592560 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_tmr.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_tmr.dds new file mode 100644 index 000000000..689f21cbf --- /dev/null +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/leupold_tmr.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2b9adfa376e4cd8d4946272075ed005e9c6020271bc135fba6bbe68ce5dcca9d +size 5592560 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1.dds index 17666397c..0a7b7184d 100644 --- a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1.dds +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1.dds @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bc823411b185bbb4f9ce3c33ff3fe7b8e3253a28ae2f41c0c2103aa5bc13b46b +oid sha256:24c2e495b2dc2c8ca034a1cf63bb1330cc38c0b237911282f3fc1929f631e8bf size 5592560 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1m21.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1m21.dds index 2db03835a..77438b528 100644 --- a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1m21.dds +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/pso1m21.dds @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3d333b179a8ea91d0c68204e2b7b316980cd4732ee56cd39a273a768a321f3ec +oid sha256:e8cd1ac1d8ecda953b59e55e53dd5b82ae6be998c7c637b44551f67e466e7c9c size 5592560 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/zeiss_conquest.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/zeiss_conquest.dds new file mode 100644 index 000000000..7dbd7d128 --- /dev/null +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/zeiss_conquest.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:6bb3ae9b4003b2688782fcab6bc517b1f0dcd528ca27bdcc6167db86c4b99b3a +size 1398256 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/zeiss_findot.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/zeiss_findot.dds new file mode 100644 index 000000000..7ddc80e55 --- /dev/null +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_reticles/zeiss_findot.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a4a7ff1a2e1fff4632a70fb9af211ad1612106d6dcb5b2d66807a585ecef392e +size 3145904 diff --git a/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_utility/reflection.dds b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_utility/reflection.dds new file mode 100644 index 000000000..a9e6f7eca --- /dev/null +++ b/mods/Shader 3D Scopes/gamedata/textures/wpn/scope_utility/reflection.dds @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:a06330a19767f443924cabeb195508081e266a53b292adc82e23c165f1c40c79 +size 33056 diff --git a/mods/Shader 3D Scopes/meta.ini b/mods/Shader 3D Scopes/meta.ini index d1325bfe3..d1ad3a92a 100644 --- a/mods/Shader 3D Scopes/meta.ini +++ b/mods/Shader 3D Scopes/meta.ini @@ -1,12 +1,12 @@ [General] gameName=stalkeranomaly modid=0 -version=d2024.12.3.0 +version=d2025.1.15.0 newestVersion= category="-1," nexusFileStatus=1 -installationFile=shader-3d-scopes.24.zip -repository= +installationFile=shader-3d-scopes.29.zip +repository=Nexus ignoredVersion= comments= notes= @@ -22,11 +22,11 @@ validated=false color=@Variant(\0\0\0\x43\0\xff\xff\0\0\0\0\0\0\0\0) tracked=0 +[Plugins] +BAIN%20Installer\option0=DOF effect (optional) +BAIN%20Installer\option1=Main + [installedFiles] 1\modid=0 size=1 1\fileid=0 - -[Plugins] -BAIN%20Installer\option0=DOF effect (optional) -BAIN%20Installer\option1=Main diff --git a/profiles/Default/modlist.txt b/profiles/Default/modlist.txt index 999673ad2..23c246790 100644 --- a/profiles/Default/modlist.txt +++ b/profiles/Default/modlist.txt @@ -15,10 +15,12 @@ +Beefs NVGs +Shader Driven Scopes +Enhanced Shaders Color Grading ++Corpse Twitching +Corpse Fauna +Hollywood FX -Visuals and Effects_separator +New Levels ++Dynamic Zone Transitions +Usable Bar Doors -Location Edits_separator +Mysteries of the Zone Dialogue Unlocker @@ -74,12 +76,15 @@ +Alternative Pseudodogs and Psy-Dogs +Alternative Blind Dogs -Creatures & NPCs_separator ++Animated Lead Box ++Artifacts Inspection +Immersive Skinning +Faster Headlamp Toggle +Headgear Animations +Outfit Animations +Body Search Animation +Dynamic Viewmodel ++MRAA + Blindside Military Pack +Blindside's Weapon Reanimation and Rebalance - Military -Mask's Reanimated Anomaly Arsenal +Weapon Inertia Expanded @@ -114,6 +119,7 @@ +Scroll Fix +Dead Air XR Danger -Bug Fixes & Optimizations_separator +-Shader 3D Scopes Editor -Shader 3D Scopes +Parallax Reflex Sights +Mark Switch