diff --git a/resources/plugins/Soundhandler/Plugin_Soundhandler.lua b/resources/plugins/Soundhandler/Plugin_Soundhandler.lua new file mode 100644 index 00000000..ae4d6c00 --- /dev/null +++ b/resources/plugins/Soundhandler/Plugin_Soundhandler.lua @@ -0,0 +1,833 @@ +-- Do not edit this line or the following line +-- assert(loadfile("C:\\Users\\Taco\\Documents\\Github\\SoundHandler\\SoundHandlerByTaco.lua"))() +MESSAGE:New("*SOUNDHANDLER 0.1 LOADING*", 5, "MISSION", false):ToAll():ToLog() + +Soundhandler_options = { + ["SoundsToGroupOnly"] = true, + ["ShipSamSounds"] = false, + ["RedShootingSounds"] = true, + ["Debug"] = false +} + +----------------------------------------------------------------------------------------------------------------------------------- +-- USER SETTINGS +----------------------------------------------------------------------------------------------------------------------------------- +-- On/Off? +SoundHandler = true +-- Do you want ALL Clients to hear sounds, or only those associated with the sound event? +SoundOnlyToGroup = Soundhandler_options + .SoundsToGroupOnly -- true means only the affected group will hear the sound. False will play to all. If no valid group is associated with the EVENT, sound will play to all. +-- Quick fix: SAMs and Red Missiles will play to Target Group ONLY + +-- Do you want ship firing SAMs to play SAM Sounds? +ShipSamSounds = Soundhandler_options.ShipSamSounds -- true means they will play sounds with each missile launched + +-- Do you want red airplanes to play sounds when they fire their gun cannons? +PlayRedShootingGuns = Soundhandler_options.RedShootingSounds -- true means they will play sounds with each gun burst + +----------------------------------------------------------------------------------------------------------------------------------- +-- DEBUG +----------------------------------------------------------------------------------------------------------------------------------- +SoundDebug = Soundhandler_options.Debug -- Will enable messages on-screen and in log + +if SoundDebug then + trigger.action.outText("---SOUND DEBUG IS ON!---", 10) + + if SoundHandler then + trigger.action.outText("Soundhandler ON!", 10) + else + trigger.action.outText("Soundhandler OFF!", 10) + end + + if SoundOnlyToGroup then + trigger.action.outText("Sounds will only play to the involved GROUP", 10) + else + trigger.action.outText("Sounds will play to ALL Clients", 10) + end + + if ShipSamSounds then + trigger.action.outText("Ships firing SAMs will play sounds", 10) + else + trigger.action.outText("Ships firing SAMs will NOT play sounds", 10) + end + + if PlayRedShootingGuns then + trigger.action.outText("Red Airplane Gun Bursts will play sounds", 10) + else + trigger.action.outText("Red Airplane Gun Bursts will NOT play sounds", 10) + end +end + +-- Debug output to DCS log +env.info("--------- SoundsToGroupOnly=" .. tostring(SoundOnlyToGroup) .. + " | ShipSamSounds=" .. tostring(ShipSamSounds) .. + " | RedShootingSounds=" .. tostring(PlayRedShootingGuns) .. + " | Debug=" .. tostring(SoundDebug)) + +----------------------------------------------------------------------------------------------------------------------------------- +-- SOUNDS FILEPATH +----------------------------------------------------------------------------------------------------------------------------------- +SoundFilePath = "" +----------------------------------------------------------------------------------------------------------------------------------- +-- SOUND FILES +----------------------------------------------------------------------------------------------------------------------------------- +-- Global Sound Tables (make sure you have all these files, named exactly like these, loaded into the .mix file) +Sounds = {} +-- A2A Kill Sound Table +Sounds.Air_Unit_Sound_Table = { "AAGoodKill", "AAKill4", "AAKillGoodhiton1", "AAKillSplash", "AAKillSplashone", + "AASplashOne", "AASplashOne_2" } +-- Red Jet Missile Sound Table +Sounds.RedMissile_Sound_Table = { "Misil1", "Misil2", "Misil3", "Misil4", "Misil5", "Misil6" } +-- Red Ground Unit Dead Sound Table +Sounds.Ground_Unit_Sound_Table = { "AGKillBOOM1", "AGKillCOMEONBABY", "AGKillGoodBOOM", "AGKillSeeTheSmoke", + "AGKill_TARGET_DESTROYED", "AGKillBeautiful_beautiful", "AGKillMotherFucker" } +-- SAM Sound Table +Sounds.SamSoundTable = { "SAM1", "SAM2", "SAM3", "SAM4", "SAM5", "SAM6", "SAM7", "Defending", "Singer" } +-- Balistic Missile Launch Table +Sounds.Ballistic = { "SCUD_Long", "Fireball" } +-- AGM_154 Sound Table +Sounds.PigsAway_Sound_Table = { "PigsAway", "PigsAway2" } +-- Paveway_Sound_Table for LGBs +Sounds.Paveway_Sound_Table = { "Paveway" } +-- Bruiser Sound Table for Harpoons +Sounds.Bruiser_Sound_Table = { "Bruiser", "Bruiser2", "Bruiser3" } +-- Fox 2 Sound Table +Sounds.Fox2_Sound_Table = { "Fox2A", "Fox2B", "Fox2C", "Fox2D", "Fox2E" } +-- Fox 3 Sound Table +Sounds.Fox3_Sound_Table = { "Fox3A", "Fox3B", "Fox3C", "Fox3D", "Fox3E", "Fox3F" } +-- Fox 1 Sound Table +Sounds.Fox1_Sound_Table = { "Fox1A", "Fox1B" } +-- Magnum Sound Table +Sounds.Magnum_Sound_Table = { "Magnum", "Magnum2" } +-- Rifle Sound Table +Sounds.Rifle_Sound_Table = { "RifleA", "RifleB", "RifleC", "RifleD", "RifleE" } +-- Pickle Sound Table +Sounds.Pickle_Sound_Table = { "Pickle1", "Pickle2", "Pickle3", "Pickle4", "Pickle5", "Pickle6", "Pickle7" } +-- Blue Air Unit Dead Sound Table +Sounds.Blue_Air_Unit_Sound_Table = { "OhJesus", "SOS_Beacon", "HitEjecting1", "HitEjecting2", "HitEjecting3" } -- just for fun +-- Blue Guns Sounds +Sounds.Blue_Guns_Table = { "BlueGuns1", "BlueGuns2", "BlueGuns3" } +-- Red Guns Sounds +Sounds.Red_Guns_Table = { "Guns_Break_Right", "Guns_Break_Left" } +-- Blue Decoy Sounds +Sounds.Decoy_Table = { "A2G_Duck1" } +-- Blue Cruise Missile Sounds +Sounds.CruiseMissile_Table = { "A2G_Greyhound1" } +-- Red Anti-Ship Missile Sounds +Sounds.Vampires_Table = { "A2G_Vampires1" } +-- Blue Tomahawk/Ship-Launched Cruise Missile Sounds +Sounds.Tomahawk_Table = { "S2G_Tomahawk1" } +-- Friendly Fire Sounds +Sounds.Friendly_Fire_Table = { "FriendlyFire1", "FriendlyFire2" } +-- Friendly SAM Sounds +Sounds.Friendly_SAM_Table = { "BirdsAway" } + +----------------------------------------------------------------------------------------------------------------------------------- +-- PRINT SOUNDS +----------------------------------------------------------------------------------------------------------------------------------- +if SoundDebug then + for _, tbl in pairs(Sounds) do + local txt = UTILS.OneLineSerialize(tbl) + env.info("EventData Debug: " .. txt) + trigger.action.outText("Sounds Loaded: " .. txt, 10) + end +end + +----------------------------------------------------------------------------------------------------------------------------------- +-- EVENT HANDLERS +----------------------------------------------------------------------------------------------------------------------------------- + +EventHandler = EVENTHANDLER:New() +EventHandler:HandleEvent(EVENTS.Shot) +EventHandler:HandleEvent(EVENTS.Kill) +EventHandler:HandleEvent(EVENTS.Dead) + +----------------------------------------------------------------------------------------------------------------------------------- +-- KILL EVENTS +----------------------------------------------------------------------------------------------------------------------------------- +function EventHandler:OnEventKill(EventData) + -- UTILS.PrintTableToLog(EventData) + + if SoundHandler then + if SoundDebug then + BASE:I("---------KILL DETECTED: EVALUATING FOR COALITION & TYPE----------") + BASE:I(EventData) + end + + -- KILL SECTION (BLUE KILLS RED) + if EventData.IniCoalition == coalition.side.BLUE or EventData.TgtCoalition == coalition.side.RED then + if SoundDebug then BASE:I("BLUE UNIT KILLED RED...") end + if (EventData.TgtCategory == 0 or EventData.TgtCategory == 1) and EventData.TgtObjectCategory == 1 and + GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then -- 0 is plane, 1 is helo https://wiki.hoggitworld.com/view/DCS_Class_Unit + if SoundDebug then BASE:I("...AIRPLANE") end + + random_Air_Unit_Sound = Sounds.Air_Unit_Sound_Table[math.random(1, #Sounds.Air_Unit_Sound_Table)] + local Air_Unit_Sound_Ogg = random_Air_Unit_Sound .. ".ogg" + -- Sound Chosen + RedA2ASound = USERSOUND:New(SoundFilePath .. Air_Unit_Sound_Ogg) + -- Determine who to play sound to + if EventData.IniGroup and SoundOnlyToGroup then + local SoundGroup = EventData.IniGroup + if SoundDebug then + BASE:I("-----SOUNDFILE PLAYED is " .. + random_Air_Unit_Sound .. " TO " .. SoundGroup:GetName()) + end + RedA2ASound:ToGroup(SoundGroup) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Air_Unit_Sound .. " TO " .. + SoundGroup:GetName(), 10) + end + else + RedA2ASound:ToCoalition(coalition.side.BLUE) + if SoundDebug then BASE:I("-----SOUNDFILE PLAYED is " .. random_Air_Unit_Sound .. " TO ALL-----") end + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Air_Unit_Sound .. " TO ALL", 10) + end + end + end + + if EventData.IniGroupName then -- If we don't have an IniGroupName, then don't proceed + if EventData.TgtCategory == 2 and EventData.IniCoalition ~= EventData.TgtCoalition and + GROUP:FindByName(EventData.IniGroupName):IsAirPlane() and EventData.TgtObjectCategory == 1 then -- TgtCategory 2 is Ground, TgtObjectCategory is Unit + if SoundDebug then BASE:I("...GROUND UNIT (KILLED BY A BLUE AIRPLANE)") end + + math.random() + random_Ground_Unit_Sound = Sounds.Ground_Unit_Sound_Table[math.random(1, + #Sounds.Ground_Unit_Sound_Table)] + local Ground_Unit_Sound_Ogg = random_Ground_Unit_Sound .. ".ogg" + -- Sound Chosen + RedGroundKillSound = USERSOUND:New(SoundFilePath .. Ground_Unit_Sound_Ogg) + -- Determine who to play sound to + if EventData.IniGroup and SoundOnlyToGroup then + local SoundGroup = EventData.IniGroup + BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. SoundGroup:GetName()) + RedGroundKillSound:ToGroup(SoundGroup) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. + SoundGroup:GetName(), 10) + end + else + RedGroundKillSound:ToCoalition(coalition.side.BLUE) + BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL-----") + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL", + 10) + end + end + end + else + env.info("-----No EventData.IniGroupName-----") + end + + if EventData.IniGroupName then -- If we don't have an IniGroupName, then don't proceed + if EventData.TgtCategory == 3 and EventData.TgtObjectCategory == 1 and + GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then -- 3 is Ship + BASE:I("...SHIP") + math.random() + random_Ground_Unit_Sound = Sounds.Ground_Unit_Sound_Table[math.random(1, + #Sounds.Ground_Unit_Sound_Table)] + local Ground_Unit_Sound_Ogg = random_Ground_Unit_Sound .. ".ogg" + -- Sound Chosen + RedGroundKillSound = USERSOUND:New(SoundFilePath .. Ground_Unit_Sound_Ogg) + -- Determine who to play sound to + if EventData.IniGroup and SoundOnlyToGroup then + local SoundGroup = EventData.IniGroup + BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. SoundGroup:GetName()) + RedGroundKillSound:ToGroup(SoundGroup) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. + SoundGroup:GetName(), 10) + end + else + RedGroundKillSound:ToCoalition(coalition.side.BLUE) + BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL-----") + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL", + 10) + end + end + end + else + env.info("-----No EventData.IniGroupName-----") + end + end + + -- Blue Dead, and/or Initiated by Red, and its a Plane + if (EventData.IniCoalition == coalition.side.RED and EventData.TgtCoalition == coalition.side.BLUE) and + EventData.TgtCategory == 0 then + if EventData.TgtGroupName then + BASE:I("---------BLUE UNIT GOT KILLED---------(" .. EventData.TgtGroupName .. ")") + else + BASE:I("---------BLUE UNIT GOT KILLED--------- (No Name)") + end + random_Blue_Air_Unit_Sound = Sounds.Blue_Air_Unit_Sound_Table[math.random(1, + #Sounds.Blue_Air_Unit_Sound_Table)] + local Blue_Air_Unit_Sound_Ogg = random_Blue_Air_Unit_Sound .. ".ogg" + + A2GSound = USERSOUND:New(SoundFilePath .. Blue_Air_Unit_Sound_Ogg) + A2GSound:ToCoalition(coalition.side.BLUE) + BASE:I("---------SOUNDFILE PLAYED---------is " .. Blue_Air_Unit_Sound_Ogg) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Blue_Air_Unit_Sound_Ogg .. " TO ALL", 10) + end + end + + -- Blue Dead, and Initiated by Blue, and its a Plane + if (EventData.IniCoalition == coalition.side.BLUE and EventData.TgtCoalition == coalition.side.BLUE) and + EventData.TgtCategory == 0 then + if EventData.TgtGroupName then + BASE:I("---------BLUE ON BLUE---------(" .. EventData.TgtGroupName .. ")") + else + BASE:I("---------BLUE ON BLUE--------- (No Name)") + end + random_Friendly_Fire_Sound = Sounds.Friendly_Fire_Table[math.random(1, #Sounds.Friendly_Fire_Table)] + local Friendly_Fire_Sound_Ogg = random_Friendly_Fire_Sound .. ".ogg" + FFSound = USERSOUND:New(SoundFilePath .. Friendly_Fire_Sound_Ogg) + + if EventData.IniGroup and SoundOnlyToGroup then + local SoundGroup = EventData.IniGroup + BASE:I("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO " .. SoundGroup:GetName()) + FFSound:ToGroup(SoundGroup) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO " .. + SoundGroup:GetName(), 10) + end + else + FFSound:ToCoalition(coalition.side.BLUE) + BASE:I("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO ALL-----") + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Friendly_Fire_Sound .. " TO ALL", 10) + end + end + end + end -- end of If SoundHandler +end -- KILL EventHandler Function End + +----------------------------------------------------------------------------------------------------------------------------------- +-- DEAD EVENTS +----------------------------------------------------------------------------------------------------------------------------------- +function EventHandler:OnEventDead(EventData) + if SoundHandler then + if SoundDebug then + BASE:I("---------DEAD DETECTED: EVALUATING FOR COALITION & TYPE----------") + BASE:I(EventData) + end + + -- STATIC SECTION + if EventData.IniObjectCategory == 3 then -- STATIC DEAD + if EventData.IniCoalition == 1 then -- RED STATIC DEAD + BASE:I("RED STATIC DEAD") + random_Ground_Unit_Sound = + Sounds.Ground_Unit_Sound_Table[math.random(1, #Sounds.Ground_Unit_Sound_Table)] + local Ground_Unit_Sound_Ogg = random_Ground_Unit_Sound .. ".ogg" + -- Sounnd Chosen + RedStaticKillSound = USERSOUND:New(SoundFilePath .. Ground_Unit_Sound_Ogg) + -- Determine who to play sound to + if EventData.IniGroup and SoundOnlyToGroup then + local SoundGroup = EventData.IniGroup + BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. SoundGroup:GetName()) + RedStaticKillSound:ToGroup(SoundGroup) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO " .. + SoundGroup:GetName(), 10) + end + elseif not EventData.IniGroup and SoundOnlyToGroup then + env.info("-----NO EventData.IniGroup Available-----") + end + + if not SoundOnlyToGroup then + env.info("-----SOUND INTENDED FOR ALL-----") + RedStaticKillSound:ToCoalition(coalition.side.BLUE) + BASE:I("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL-----") + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. random_Ground_Unit_Sound .. " TO ALL", 10) + end + end + end + + if EventData.IniCoalition == 2 then -- BLUE STATIC DEAD + -- Consider if we want sounds for this + BASE:I("---------BLUE STATIC DEAD, NO SOUND FOR NOW----------") + end + end -- Static Logic End + end -- End of If Soundhandler +end -- DEAD EventHandler Function End + +----------------------------------------------------------------------------------------------------------------------------------- +-- SHOT EVENTS +----------------------------------------------------------------------------------------------------------------------------------- +function EventHandler:OnEventShot(EventData) + if SoundDebug then + BASE:I("---------SHOT DETECTED: EVALUATING FOR COALITION & WEAPON----------") + -- UTILS.PrintTableToLog(EventData) + BASE:I(EventData) + end + math.random() + local WeaponDesc = EventData.Weapon:getDesc() + if SoundDebug then + BASE:I({ WeaponDesc }) + end + local Brevity = "none" + soundDelay = false + if SoundHandler then + -- Weapon data. + local _weapon = EventData.Weapon:getTypeName() -- should be the same as Event.WeaponTypeName + local _weaponStrArray = UTILS.Split(_weapon, "%.") + local _weaponName = _weaponStrArray[#_weaponStrArray] + + -- Weapon descriptor. + local desc = EventData.Weapon:getDesc() + + -- Weapon category: 0=SHELL, 1=MISSILE, 2=ROCKET, 3=BOMB (Weapon.Category.X) + local weaponcategory = desc.category + local weaponguidance = WeaponDesc.guidance + + -- Debug info. + + if SoundDebug then + BASE:I("-----PREPARING GENERAL SHOT INFORMATION...------") + + if EventData.IniUnitName then + BASE:I("EVENT SHOT: Ini unit = " .. EventData.IniUnitName) + end + if EventData.IniGroupName then + BASE:I("EVENT SHOT: Ini group = " .. EventData.IniGroupName) + end + + BASE:I("EVENT SHOT: Weapon type = " .. _weapon) + BASE:I("EVENT SHOT: Weapon name = " .. _weaponName) + + if weaponcategory then + BASE:I("EVENT SHOT: Weapon category = " .. weaponcategory) + else + BASE:I('NO WEAPON CATEGORY VALUE') + end + if weaponguidance then + BASE:I("EVENT SHOT: Weapon guidance = " .. weaponguidance) + else + BASE:I('NO WEAPON GUIDANCE VALUE') + end + end + + -- Blue and a SAM + + if EventData.IniCoalition == 2 and GROUP:FindByName(EventData.IniGroupName):IsSAM() then + BASE:I("BLUE SAM SHOT CONFIRMED") + RandomBlueSamSound = Sounds.Friendly_SAM_Table[math.random(1, #Sounds.Friendly_SAM_Table)] + Brevity = tostring(RandomBlueSamSound) + BASE:I("---------RANDOM FRIENDLY SAM SOUND IS " .. Brevity) + end + + -- Blue and an Airplane + if EventData.IniCoalition == 2 and GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then + BASE:I("BLUE AIRPLANE SHOT CONFIRMED") + + -- We want a specific sound for a glide weapon, so it needs to be added manually. + if _weapon == "AGM_154" or _weapon == "AGM_154A" then + math.random() + RandomPigsAwaySound = Sounds.PigsAway_Sound_Table[math.random(1, #Sounds.PigsAway_Sound_Table)] + Brevity = tostring(RandomPigsAwaySound) + BASE:I("---------RANDOM PIGS AWAY SOUND IS " .. Brevity) + + -- DCS mis-classifies the GBU_32_V_2B, so it needs to be added manually. + + -- Duck for ADMs + elseif string.find(_weapon, "ADM", 1, true) then + math.random() + RandomDuckSound = Sounds.Decoy_Table[math.random(1, #Sounds.Decoy_Table)] + Brevity = tostring(RandomDuckSound) + BASE:I("---------RANDOM DUCK SOUND IS " .. Brevity) + elseif WeaponDesc.category == 3 and WeaponDesc.guidance == 1 or _weapon == "GBU_32_V_2B" or + string.find(_weapon, "MK", 1, true) or string.find(_weapon, "ROCKEYE", 1, true) then + math.random() + math.random() + RandomPickleSound = Sounds.Pickle_Sound_Table[math.random(1, #Sounds.Pickle_Sound_Table)] + Brevity = tostring(RandomPickleSound) + BASE:I("---------RANDOM PICKLE SOUND (3, 1, Specific) IS " .. Brevity) + elseif WeaponDesc.category == 3 and WeaponDesc.guidance == 7 then + -- LASER GUIDED SOUND TABLES + math.random() + RandomPavewaySound = Sounds.Paveway_Sound_Table[math.random(1, #Sounds.Paveway_Sound_Table)] + Brevity = tostring(RandomPavewaySound) + BASE:I("---------RANDOM PAVEWAY SOUND IS " .. Brevity) + + -- DCS mis-classifies the Harpoon, so it needs to be added manually. + elseif _weapon == "AGM_84D" then + math.random() + RandomBruiserSound = Sounds.Bruiser_Sound_Table[math.random(1, #Sounds.Bruiser_Sound_Table)] + Brevity = tostring(RandomBruiserSound) + BASE:I("---------RANDOM BRUISER SOUND IS " .. Brevity) + + -- Cruise Missiles are "Greyhound". + elseif _weapon == "AGM_84H" or string.find(_weapon, "84E", 1, true) then + math.random() + RandomGreyhoundSound = Sounds.CruiseMissile_Table[math.random(1, #Sounds.CruiseMissile_Table)] + Brevity = tostring(RandomGreyhoundSound) + BASE:I("---------RANDOM GREYHOUND SOUND IS " .. Brevity) + elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 2 then + math.random() + RandomFox2Sound = Sounds.Fox2_Sound_Table[math.random(1, #Sounds.Fox2_Sound_Table)] + Brevity = tostring(RandomFox2Sound) + BASE:I("---------FOX 2 SOUND----------" .. Brevity) + elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 3 then + math.random() + RanddomFox3Sound = Sounds.Fox3_Sound_Table[math.random(1, #Sounds.Fox3_Sound_Table)] + Brevity = tostring(RanddomFox3Sound) + BASE:I("---------FOX 3 SOUND----------" .. Brevity) + elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 4 then + math.random() + RanddomFox1Sound = Sounds.Fox1_Sound_Table[math.random(1, #Sounds.Fox1_Sound_Table)] + Brevity = tostring(RanddomFox1Sound) + BASE:I("---------Fox 1 SOUND----------") + elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 5 and WeaponDesc.missileCategory == 6 then + RandomMagnumSound = Sounds.Magnum_Sound_Table[math.random(1, #Sounds.Magnum_Sound_Table)] + Brevity = tostring(RandomMagnumSound) + BASE:I("---------MAGNUM SOUND IS " .. Brevity) + elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 7 or string.find(_weapon, "65", 1, true) then + math.random() + RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)] + Brevity = tostring(RandomRifleSound) + BASE:I("---------RIFLE SOUND (Includes Zuni Rockets)----------") + + -- "0" = Shells + elseif WeaponDesc.category == 0 then + math.random() + RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)] + Brevity = tostring(RandomRifleSound) + BASE:I("---------GUNS SOUND----------") + + -- If we still don't know what kind it is, and its a missile, let's call it a Rifle + elseif WeaponDesc.category == 1 then + math.random() + RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)] + Brevity = tostring(RandomRifleSound) + BASE:I("---------RIFLE SOUND (UNKNOWN MISSILE)----------") + + -- Rockets = Rifle (for lack of a better brevity code) + elseif WeaponDesc.category == 2 then + math.random() + RandomRifleSound = Sounds.Rifle_Sound_Table[math.random(1, #Sounds.Rifle_Sound_Table)] + Brevity = tostring(RandomRifleSound) + BASE:I("---------ROCKET SOUND (RIFLE FOR NOW))----------") + + -- If we still don't know what kind it is, and its a bomb, let's call it a Pickle + elseif WeaponDesc.category == 3 then + math.random() + RandomPickleSound = Sounds.Pickle_Sound_Table[math.random(1, #Sounds.Pickle_Sound_Table)] + Brevity = tostring(RandomPickleSound) + BASE:I("---------RANDOM PICKLE (UNKNOWN) SOUND IS " .. Brevity) + end + end + + if EventData.IniCoalition == 2 and GROUP:FindByName(EventData.IniGroupName):IsShip() then + BASE:I("BLUE NAVAL SHOT CONFIRMED") + + if string.find(_weapon, "BGM_109B", 1, true) then + RandomTomahawkSound = Sounds.Tomahawk_Table[math.random(1, #Sounds.Tomahawk_Table)] + Brevity = tostring(RandomTomahawkSound) + BASE:I("---------BLUE TOMAHAWK SOUND IS: " .. Brevity) + end + end + + -- LOGIC FOR RED AIRPLANE SHOTS + -- if Red and an Airplane + if EventData.IniCoalition == 1 and GROUP:FindByName(EventData.IniGroupName):IsAirPlane() then + BASE:I("RED PLANE SHOT CONFIRMED") + soundDelay = true + BASE:I("DELAY ACTIVATED") + + if WeaponDesc.category == 1 and WeaponDesc.guidance == 2 then + RandomRedMissileSound = Sounds.RedMissile_Sound_Table[math.random(1, #Sounds.RedMissile_Sound_Table)] + Brevity = tostring(RandomRedMissileSound) + BASE:I("---------RED MISSILE (Fox2) SOUND----------" .. Brevity) + elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 3 then + RandomRedMissileSound = Sounds.RedMissile_Sound_Table[math.random(1, #Sounds.RedMissile_Sound_Table)] + Brevity = tostring(RandomRedMissileSound) + BASE:I("---------RED MISSILE (Fox2) SOUND----------" .. Brevity) + elseif WeaponDesc.category == 1 and WeaponDesc.guidance == 4 then + RandomRedMissileSound = Sounds.RedMissile_Sound_Table[math.random(1, #Sounds.RedMissile_Sound_Table)] + Brevity = tostring(RandomRedMissileSound) + BASE:I("---------RED MISSILE (Fox1) SOUND----------") + elseif (WeaponDesc.category == 1 and WeaponDesc.missileCategory == 4) or + string.find(_weapon, "X_22", 1, true) or string.find(_weapon, "X_35", 1, true) or + string.find(_weapon, "X_31A", 1, true) or string.find(_weapon, "YJ_83K", 1, true) or + string.find(_weapon, "YJ_12", 1, true) or _weapon == "AGM_84D" then + RandomRedAntiShipSound = Sounds.Vampires_Table[math.random(1, #Sounds.Vampires_Table)] + Brevity = tostring(RandomRedAntiShipSound) + BASE:I("---------RED VAMPIRES SOUND----------") + end -- End of Red Shot Classification + end -- End of Red Aerial Shot Logic + + -- LOGIC FOR RED GROUND MISSILES + if ShipSamSounds then + if EventData.IniCoalition == 1 and + (GROUP:FindByName(EventData.IniGroupName):IsGround() or + GROUP:FindByName(EventData.IniGroupName):IsShip()) and WeaponDesc.category == 1 and + not string.find(_weapon, "SA48N6", 1, true) and not string.find(_weapon, "SCUD_RAKETA", 1, true) then + BASE:I("RED GROUND OR SHIP SHOT CONFIRMED") + soundDelay = true + BASE:I("DELAY ACTIVATED") + + -- if string.find(_weapon, "SA48N6", 1, true) then + -- BASE:I("-----WEAPON SOUND KNOWN BUT SUPPRESSED-----") + -- BASE:I("DELAY ACTIVATED, BUT NO SOUND") + -- end + + RandomSamSound = Sounds.SamSoundTable[math.random(1, #Sounds.SamSoundTable)] + Brevity = tostring(RandomSamSound) + BASE:I("---------RED SAM SOUND----------" .. Brevity) + end + else + if EventData.IniCoalition == 1 and GROUP:FindByName(EventData.IniGroupName):IsGround() and + WeaponDesc.category == 1 and not string.find(_weapon, "SA48N6", 1, true) and + not string.find(_weapon, "SCUD_RAKETA", 1, true) then + BASE:I("RED GROUND (NOT SHIP) SHOT CONFIRMED") + soundDelay = true + BASE:I("DELAY ACTIVATED") + + -- if string.find(_weapon, "SA48N6", 1, true) then + -- BASE:I("-----WEAPON SOUND KNOWN BUT SUPPRESSED-----") + -- end + + if string.find(_weapon, "SCUD_RAKETA", 1, true) then + BASE:I("-----SCUD LAUNCH (NO SOUND PROGRAMMED)-----") + end + + RandomSamSound = Sounds.SamSoundTable[math.random(1, #Sounds.SamSoundTable)] + Brevity = tostring(RandomSamSound) + BASE:I("---------RED SAM SOUND----------" .. Brevity) + end + end + + -- LOGIC FOR RED SCUD / BALLISTIC MISSILE LAUNCHES + -- if Red and an Airplane + if EventData.IniCoalition == 1 and string.find(_weapon, "SCUD_RAKETA", 1, true) then + BASE:I("RED SCUD LAUNCH CONFIRMED") + + RandomBallisticMissileSound = Sounds.Ballistic[math.random(1, #Sounds.Ballistic)] + Brevity = tostring(RandomBallisticMissileSound) + BASE:I("---------RED BALLISTIC MISSILE SOUND----------" .. Brevity) + end -- End of Red Scud Launch + + -- Let's put it into Sound + if Brevity ~= "none" then + BASE:I("-----soundDelay value = " .. tostring(soundDelay) .. "-----") + + -- Its a Blue Weapon Event + if EventData.IniCoalition == 2 and EventData.IniGroup then + local BrevitySound = Brevity .. ".ogg" + WeaponSound = USERSOUND:New(SoundFilePath .. BrevitySound) + + -- Determine Who to Play Sound to + if SoundOnlyToGroup then + local SoundGroup = EventData.IniGroup + WeaponSound:ToGroup(SoundGroup) + + if SoundDebug then + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName()) + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(), + 10) + end + else + WeaponSound:ToCoalition(coalition.side.BLUE) + + if SoundDebug then + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL") + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO ALL", 10) + end + end + end + + -- Excluded Sounds, sounds we want to play to all Blue clients regardless of who fires + if EventData.IniCoalition == 2 and EventData.IniGroup:IsShip() then + WeaponSound:ToCoalition(coalition.side.BLUE) + if SoundDebug then + BASE:I("--------- (EXCLUDED EVENT) SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL") + end + end + + -- Its a Red Weapon Event (SAM, on incoming missile) + if EventData.IniCoalition == 1 then + env.info("-----Red Shot-----") + if EventData.TgtGroup then + env.info("-----TargetGroup Object Available-----") + local BrevitySound = Brevity .. ".ogg" + WeaponSound = USERSOUND:New(SoundFilePath .. BrevitySound) + + local function DelayedSound() + local SoundGroup = EventData.TgtGroup + if SoundGroup then + WeaponSound:ToGroup(SoundGroup) + end + end + local soundDelayTime = math.random(3, 7) + env.info("-----soundDelayTime =" .. soundDelayTime .. "-----") + TIMER:New(DelayedSound):Start(soundDelayTime) + + if SoundDebug then + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName() .. + " ONLY") + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(), + 10) + end + + -- Sound can play if its SCUD (but not other un-guided things like Artillery) + elseif string.find(_weapon, "SCUD_RAKETA", 1, true) then + env.info("-----TargetGroup Object NOT Available Sound ToAll(Must be a SCUD) -----") + + local BrevitySound = Brevity .. ".ogg" + WeaponSound = USERSOUND:New(SoundFilePath .. BrevitySound) + WeaponSound:ToCoalition(coalition.side.BLUE) + + if SoundDebug then + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO All") + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO All", 10) + end + end + end -- End of Red Shot Event + end -- Sound Action End + soundDelay = false -- reset value + if SoundDebug then + env.info("-----soundDelay value reset to false-----") + end + else + env.info("-----SOUNDHANDLER OFF------") + end +end -- Function End + +BASE:I("-----MISSILE/BOMB SOUNDS SET------") + +----------------------------------------------------------------------------------------------------------------------------------- +-- SHOOTING (RAPID FIRE) EVENT +----------------------------------------------------------------------------------------------------------------------------------- + +ShootingEventHandler = EVENTHANDLER:New() +ShootingEventHandler:HandleEvent(EVENTS.ShootingStart) + +function ShootingEventHandler:OnEventShootingStart(EventData) + if SoundDebug then + BASE:I("-----RAPID GUNS SHOOTING START, EVALUATING------") + end + local txt = UTILS.OneLineSerialize(EventData) + env.info("Guns Shooting EventData Debug: " .. txt) + local ShooterGroupName = EventData.IniGroupName + local ShooterUnitName = EventData.IniUnitName + if ShooterGroupName ~= nil and ShooterUnitName ~= nil then + ShooterGroup = GROUP:FindByName(ShooterGroupName) + ShooterUnit = UNIT:FindByName(ShooterUnitName) + end + + if ShooterGroup:IsAirPlane() and ShooterUnit:IsClient() then + BASE:I("BLUE AIRPLANE GUNS DETECTED (FROM CLIENT)") + math.random() + Blue_Guns_Sound = Sounds.Blue_Guns_Table[math.random(1, #Sounds.Blue_Guns_Table)] + Brevity = tostring(Blue_Guns_Sound) + BASE:I("---------RANDOM BLUE GUNS SOUND SELECTED IS: " .. Brevity) + + local GunsSound = Brevity .. ".ogg" + -- Sound Chosen + GunsSound = USERSOUND:New(SoundFilePath .. GunsSound) + + -- Determine Who to Play Sound to + if SoundOnlyToGroup and EventData.IniGroup then + local SoundGroup = EventData.IniGroup + GunsSound:ToGroup(SoundGroup) + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName()) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(), 10) + end + else + GunsSound:ToCoalition(coalition.side.BLUE) + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL") + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO ALL", 10) + end + end + end + + if ShooterGroup:IsAirPlane() and EventData.IniCoalition == 1 and PlayRedShootingGuns then + BASE:I("-----RED AIRPLANE GUNS DETECTED (AT CLIENT)------") + math.random() + Red_Guns_Sound = Sounds.Red_Guns_Table[math.random(1, #Sounds.Red_Guns_Table)] + Brevity = tostring(Red_Guns_Sound) + BASE:I("---------RANDOM RED GUNS SOUND SELECTED IS: " .. Brevity) + + local GunsSound = Brevity .. ".ogg" + -- Sound Chosen + GunsSound = USERSOUND:New(SoundFilePath .. GunsSound) + -- Determine Who to Play Sound to + if SoundOnlyToGroup and EventData.TgtGroup then + local SoundGroup = EventData.TgtGroup + GunsSound:ToGroup(SoundGroup) + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO " .. SoundGroup:GetName()) + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO " .. SoundGroup:GetName(), 10) + end + else + GunsSound:ToCoalition(coalition.side.BLUE) + BASE:I("---------SOUNDFILE PLAYED---------is " .. Brevity .. " TO ALL") + if SoundDebug then + trigger.action.outText("-----SOUNDFILE PLAYED is " .. Brevity .. " TO ALL", 10) + end + end + end +end + +BASE:I("-----GUN SHOOTING SOUNDS SET------") + + +----------------------------------------------------------------- +-- MENU FOR SETTINGS +----------------------------------------------------------------- + +-- PARENT MENU ENTRY + +local SettingsMenu = MENU_MISSION:New("SoundHandler Settings") + +-- Toggle Debug On/Off +local function SoundhandlerOnOff(boolean) + SoundHandler = boolean + env.info("-----SoundHandler On = " .. tostring(boolean) .. "-----") + + if boolean == true then + trigger.action.outText("**Soundhandler ON**", 5) + end + if boolean == false then + trigger.action.outText("--Soundhandler OFF--", 5) + end +end + +local OnOrOff = MENU_MISSION:New("On or Off", SettingsMenu) +local SoundHandlerOn = MENU_MISSION_COMMAND:New("On", OnOrOff, SoundhandlerOnOff, true) -- #MENU +local SoundHandlerOff = MENU_MISSION_COMMAND:New("Off", OnOrOff, SoundhandlerOnOff, false) -- #MENU + +-- Toggle Debug On/Off +local function SwitchDebug(boolean) + SoundDebug = boolean + env.info("-----SoundDebug Now = " .. tostring(boolean) .. "-----") +end + +local SoundDebugMenu = MENU_MISSION:New("Sound Debug", SettingsMenu) +local SoundDebugMenuTrue = MENU_MISSION_COMMAND:New("On", SoundDebugMenu, SwitchDebug, true) -- #MENU +local SoundDebugMenuFalse = MENU_MISSION_COMMAND:New("Off", SoundDebugMenu, SwitchDebug, false) -- #MENU + +-- Switch To Whom Sounds Play To +local function SwitchSoundsToGroup(boolean) + SoundOnlyToGroup = boolean + env.info("-----SoundOnlyToGroup Now = " .. tostring(boolean) .. "-----") + + if boolean == true then + -- trigger.action.outText("**Sounds Play To Group Only**", 5) + end + if boolean == false then + trigger.action.outText("--Sounds Play To All--", 5) + end +end + +local SoundsToGroupAll = MENU_MISSION:New("Sounds To Group or All", SettingsMenu) +local GroupTrue = MENU_MISSION_COMMAND:New("Play Sounds to Group Only", SoundsToGroupAll, SwitchSoundsToGroup, true) -- #MENU +local GroupFalse = MENU_MISSION_COMMAND:New("Play Sounds to All", SoundsToGroupAll, SwitchSoundsToGroup, false) -- #MENU + +BASE:I("-----SOUNDHANDLER SETTING SET------") + +MESSAGE:New("*SOUNDHANDLER LOADED*", 5, "MISSION", false):ToAll():ToLog() diff --git a/resources/plugins/Soundhandler/SoundFiles/A2G_Duck1.ogg b/resources/plugins/Soundhandler/SoundFiles/A2G_Duck1.ogg new file mode 100644 index 00000000..ca757f8b Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/A2G_Duck1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/A2G_Greyhound1.ogg b/resources/plugins/Soundhandler/SoundFiles/A2G_Greyhound1.ogg new file mode 100644 index 00000000..1e26fd3b Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/A2G_Greyhound1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/A2G_Vampires1.ogg b/resources/plugins/Soundhandler/SoundFiles/A2G_Vampires1.ogg new file mode 100644 index 00000000..7b9b91d9 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/A2G_Vampires1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AAGoodKill.ogg b/resources/plugins/Soundhandler/SoundFiles/AAGoodKill.ogg new file mode 100644 index 00000000..84126817 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AAGoodKill.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AAKill4.ogg b/resources/plugins/Soundhandler/SoundFiles/AAKill4.ogg new file mode 100644 index 00000000..3ff14d39 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AAKill4.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AAKillGoodhiton1.ogg b/resources/plugins/Soundhandler/SoundFiles/AAKillGoodhiton1.ogg new file mode 100644 index 00000000..af13a21a Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AAKillGoodhiton1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AAKillSplash.ogg b/resources/plugins/Soundhandler/SoundFiles/AAKillSplash.ogg new file mode 100644 index 00000000..a330f8ec Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AAKillSplash.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AAKillSplashone.ogg b/resources/plugins/Soundhandler/SoundFiles/AAKillSplashone.ogg new file mode 100644 index 00000000..bd8fbe70 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AAKillSplashone.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AASplashOne.ogg b/resources/plugins/Soundhandler/SoundFiles/AASplashOne.ogg new file mode 100644 index 00000000..1e5b9898 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AASplashOne.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AASplashOne_2.ogg b/resources/plugins/Soundhandler/SoundFiles/AASplashOne_2.ogg new file mode 100644 index 00000000..cf6d560c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AASplashOne_2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AGKillBOOM1.ogg b/resources/plugins/Soundhandler/SoundFiles/AGKillBOOM1.ogg new file mode 100644 index 00000000..1d039a8c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AGKillBOOM1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AGKillBeautiful_beautiful.ogg b/resources/plugins/Soundhandler/SoundFiles/AGKillBeautiful_beautiful.ogg new file mode 100644 index 00000000..43e87769 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AGKillBeautiful_beautiful.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AGKillCOMEONBABY.ogg b/resources/plugins/Soundhandler/SoundFiles/AGKillCOMEONBABY.ogg new file mode 100644 index 00000000..cc2c04a6 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AGKillCOMEONBABY.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AGKillGoodBOOM.ogg b/resources/plugins/Soundhandler/SoundFiles/AGKillGoodBOOM.ogg new file mode 100644 index 00000000..fdf2e8f3 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AGKillGoodBOOM.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AGKillMotherFucker.ogg b/resources/plugins/Soundhandler/SoundFiles/AGKillMotherFucker.ogg new file mode 100644 index 00000000..3c5e9c2f Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AGKillMotherFucker.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AGKillSeeTheSmoke.ogg b/resources/plugins/Soundhandler/SoundFiles/AGKillSeeTheSmoke.ogg new file mode 100644 index 00000000..ae29c958 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AGKillSeeTheSmoke.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AGKill_TARGET_DESTROYED.ogg b/resources/plugins/Soundhandler/SoundFiles/AGKill_TARGET_DESTROYED.ogg new file mode 100644 index 00000000..6d7d6fb7 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AGKill_TARGET_DESTROYED.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AllPush.ogg b/resources/plugins/Soundhandler/SoundFiles/AllPush.ogg new file mode 100644 index 00000000..c39add7f Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AllPush.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AllReady.ogg b/resources/plugins/Soundhandler/SoundFiles/AllReady.ogg new file mode 100644 index 00000000..18216c1e Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AllReady.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/AllStart.ogg b/resources/plugins/Soundhandler/SoundFiles/AllStart.ogg new file mode 100644 index 00000000..3a1941e2 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/AllStart.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Arco_CheckingIn.ogg b/resources/plugins/Soundhandler/SoundFiles/Arco_CheckingIn.ogg new file mode 100644 index 00000000..91321fe6 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Arco_CheckingIn.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Arco_Gunny.ogg b/resources/plugins/Soundhandler/SoundFiles/Arco_Gunny.ogg new file mode 100644 index 00000000..6ab072f4 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Arco_Gunny.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Arco_LeavingFreq.ogg b/resources/plugins/Soundhandler/SoundFiles/Arco_LeavingFreq.ogg new file mode 100644 index 00000000..e43b8d78 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Arco_LeavingFreq.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Arco_Not_Gunny.ogg b/resources/plugins/Soundhandler/SoundFiles/Arco_Not_Gunny.ogg new file mode 100644 index 00000000..8ef47895 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Arco_Not_Gunny.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/BOMBS_OFF.ogg b/resources/plugins/Soundhandler/SoundFiles/BOMBS_OFF.ogg new file mode 100644 index 00000000..118de300 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/BOMBS_OFF.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Bloodhound_CheckingIn.ogg b/resources/plugins/Soundhandler/SoundFiles/Bloodhound_CheckingIn.ogg new file mode 100644 index 00000000..490c30d4 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Bloodhound_CheckingIn.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Bloodhound_LeavingFreq.ogg b/resources/plugins/Soundhandler/SoundFiles/Bloodhound_LeavingFreq.ogg new file mode 100644 index 00000000..864cd473 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Bloodhound_LeavingFreq.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/BlueGuns1.ogg b/resources/plugins/Soundhandler/SoundFiles/BlueGuns1.ogg new file mode 100644 index 00000000..04b6d794 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/BlueGuns1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/BlueGuns2.ogg b/resources/plugins/Soundhandler/SoundFiles/BlueGuns2.ogg new file mode 100644 index 00000000..5045d023 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/BlueGuns2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/BlueGuns3.ogg b/resources/plugins/Soundhandler/SoundFiles/BlueGuns3.ogg new file mode 100644 index 00000000..4417624e Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/BlueGuns3.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Bruiser.ogg b/resources/plugins/Soundhandler/SoundFiles/Bruiser.ogg new file mode 100644 index 00000000..ca69d1d8 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Bruiser.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Bruiser2.ogg b/resources/plugins/Soundhandler/SoundFiles/Bruiser2.ogg new file mode 100644 index 00000000..7c16c4de Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Bruiser2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Bruiser3.ogg b/resources/plugins/Soundhandler/SoundFiles/Bruiser3.ogg new file mode 100644 index 00000000..435500e5 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Bruiser3.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/ChevyEscortComplete.ogg b/resources/plugins/Soundhandler/SoundFiles/ChevyEscortComplete.ogg new file mode 100644 index 00000000..a6a9d95d Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/ChevyEscortComplete.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/ChevyEscortSaddled.ogg b/resources/plugins/Soundhandler/SoundFiles/ChevyEscortSaddled.ogg new file mode 100644 index 00000000..3bebcedd Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/ChevyEscortSaddled.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/ColtEscortComplete.ogg b/resources/plugins/Soundhandler/SoundFiles/ColtEscortComplete.ogg new file mode 100644 index 00000000..b28ec358 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/ColtEscortComplete.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/ColtEscortSaddled.ogg b/resources/plugins/Soundhandler/SoundFiles/ColtEscortSaddled.ogg new file mode 100644 index 00000000..89674651 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/ColtEscortSaddled.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/CoordinatesReceived.ogg b/resources/plugins/Soundhandler/SoundFiles/CoordinatesReceived.ogg new file mode 100644 index 00000000..7bdc47fd Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/CoordinatesReceived.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Default_CheckingIn.ogg b/resources/plugins/Soundhandler/SoundFiles/Default_CheckingIn.ogg new file mode 100644 index 00000000..72ba31a7 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Default_CheckingIn.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Default_LeavingFreq.ogg b/resources/plugins/Soundhandler/SoundFiles/Default_LeavingFreq.ogg new file mode 100644 index 00000000..77df999d Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Default_LeavingFreq.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Defending.ogg b/resources/plugins/Soundhandler/SoundFiles/Defending.ogg new file mode 100644 index 00000000..d13a6a39 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Defending.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/DodgeEscortComplete.ogg b/resources/plugins/Soundhandler/SoundFiles/DodgeEscortComplete.ogg new file mode 100644 index 00000000..3bac8d6f Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/DodgeEscortComplete.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/DodgeEscortSaddled.ogg b/resources/plugins/Soundhandler/SoundFiles/DodgeEscortSaddled.ogg new file mode 100644 index 00000000..f094d4fe Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/DodgeEscortSaddled.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fireball.ogg b/resources/plugins/Soundhandler/SoundFiles/Fireball.ogg new file mode 100644 index 00000000..92e0da28 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fireball.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox1A.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox1A.ogg new file mode 100644 index 00000000..a183450d Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox1A.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox1B.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox1B.ogg new file mode 100644 index 00000000..066df5eb Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox1B.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox2A.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox2A.ogg new file mode 100644 index 00000000..968ed8a3 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox2A.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox2B.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox2B.ogg new file mode 100644 index 00000000..d6946987 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox2B.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox2C.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox2C.ogg new file mode 100644 index 00000000..2fad6fb6 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox2C.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox2D.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox2D.ogg new file mode 100644 index 00000000..1d71a386 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox2D.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox2E.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox2E.ogg new file mode 100644 index 00000000..37ef5b74 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox2E.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox3A.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox3A.ogg new file mode 100644 index 00000000..927dad1d Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox3A.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox3B.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox3B.ogg new file mode 100644 index 00000000..aeb272d5 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox3B.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox3C.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox3C.ogg new file mode 100644 index 00000000..703326b4 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox3C.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox3D.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox3D.ogg new file mode 100644 index 00000000..b8ae7570 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox3D.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox3E.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox3E.ogg new file mode 100644 index 00000000..cd339b4c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox3E.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Fox3F.ogg b/resources/plugins/Soundhandler/SoundFiles/Fox3F.ogg new file mode 100644 index 00000000..138b5df4 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Fox3F.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/FriendlyFire1.ogg b/resources/plugins/Soundhandler/SoundFiles/FriendlyFire1.ogg new file mode 100644 index 00000000..d787638b Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/FriendlyFire1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/FriendlyFire2.ogg b/resources/plugins/Soundhandler/SoundFiles/FriendlyFire2.ogg new file mode 100644 index 00000000..0e9a3e1b Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/FriendlyFire2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/HackingSound.ogg b/resources/plugins/Soundhandler/SoundFiles/HackingSound.ogg new file mode 100644 index 00000000..9548e87c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/HackingSound.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/HitEjecting1.ogg b/resources/plugins/Soundhandler/SoundFiles/HitEjecting1.ogg new file mode 100644 index 00000000..92a953e6 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/HitEjecting1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/HitEjecting2.ogg b/resources/plugins/Soundhandler/SoundFiles/HitEjecting2.ogg new file mode 100644 index 00000000..4a49979c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/HitEjecting2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/HitEjecting3.ogg b/resources/plugins/Soundhandler/SoundFiles/HitEjecting3.ogg new file mode 100644 index 00000000..e8b40dbb Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/HitEjecting3.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/ILS_RESET.ogg b/resources/plugins/Soundhandler/SoundFiles/ILS_RESET.ogg new file mode 100644 index 00000000..f045bfca Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/ILS_RESET.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/LaserOff.ogg b/resources/plugins/Soundhandler/SoundFiles/LaserOff.ogg new file mode 100644 index 00000000..ed42cd1b Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/LaserOff.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Magnum.ogg b/resources/plugins/Soundhandler/SoundFiles/Magnum.ogg new file mode 100644 index 00000000..240f5141 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Magnum.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Magnum2.ogg b/resources/plugins/Soundhandler/SoundFiles/Magnum2.ogg new file mode 100644 index 00000000..199dd03a Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Magnum2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Mauler_CheckingIn.ogg b/resources/plugins/Soundhandler/SoundFiles/Mauler_CheckingIn.ogg new file mode 100644 index 00000000..28a2c9bc Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Mauler_CheckingIn.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Mauler_LeavingFreq.ogg b/resources/plugins/Soundhandler/SoundFiles/Mauler_LeavingFreq.ogg new file mode 100644 index 00000000..9a5631c0 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Mauler_LeavingFreq.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Misil1.ogg b/resources/plugins/Soundhandler/SoundFiles/Misil1.ogg new file mode 100644 index 00000000..05ff34b1 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Misil1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Misil2.ogg b/resources/plugins/Soundhandler/SoundFiles/Misil2.ogg new file mode 100644 index 00000000..a77ad2d3 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Misil2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Misil3.ogg b/resources/plugins/Soundhandler/SoundFiles/Misil3.ogg new file mode 100644 index 00000000..b7abd46c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Misil3.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Misil4.ogg b/resources/plugins/Soundhandler/SoundFiles/Misil4.ogg new file mode 100644 index 00000000..b0a27cdf Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Misil4.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Misil5.ogg b/resources/plugins/Soundhandler/SoundFiles/Misil5.ogg new file mode 100644 index 00000000..66339805 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Misil5.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Misil6.ogg b/resources/plugins/Soundhandler/SoundFiles/Misil6.ogg new file mode 100644 index 00000000..542556d8 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Misil6.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/NavyOne_CheckingIn.ogg b/resources/plugins/Soundhandler/SoundFiles/NavyOne_CheckingIn.ogg new file mode 100644 index 00000000..76c44193 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/NavyOne_CheckingIn.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/NavyOne_LeavingFreq.ogg b/resources/plugins/Soundhandler/SoundFiles/NavyOne_LeavingFreq.ogg new file mode 100644 index 00000000..f0609ce3 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/NavyOne_LeavingFreq.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/OhJesus.ogg b/resources/plugins/Soundhandler/SoundFiles/OhJesus.ogg new file mode 100644 index 00000000..738f8056 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/OhJesus.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Paveway.ogg b/resources/plugins/Soundhandler/SoundFiles/Paveway.ogg new file mode 100644 index 00000000..35b678f0 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Paveway.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Pickle1.ogg b/resources/plugins/Soundhandler/SoundFiles/Pickle1.ogg new file mode 100644 index 00000000..d14d8998 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Pickle1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Pickle2.ogg b/resources/plugins/Soundhandler/SoundFiles/Pickle2.ogg new file mode 100644 index 00000000..1d167a78 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Pickle2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Pickle3.ogg b/resources/plugins/Soundhandler/SoundFiles/Pickle3.ogg new file mode 100644 index 00000000..a3bd0429 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Pickle3.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Pickle4.ogg b/resources/plugins/Soundhandler/SoundFiles/Pickle4.ogg new file mode 100644 index 00000000..74847a7e Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Pickle4.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Pickle5.ogg b/resources/plugins/Soundhandler/SoundFiles/Pickle5.ogg new file mode 100644 index 00000000..8c492a7a Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Pickle5.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Pickle6.ogg b/resources/plugins/Soundhandler/SoundFiles/Pickle6.ogg new file mode 100644 index 00000000..9f2ec805 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Pickle6.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Pickle7.ogg b/resources/plugins/Soundhandler/SoundFiles/Pickle7.ogg new file mode 100644 index 00000000..118de300 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Pickle7.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/PigsAway.ogg b/resources/plugins/Soundhandler/SoundFiles/PigsAway.ogg new file mode 100644 index 00000000..e3d06612 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/PigsAway.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/PigsAway2.ogg b/resources/plugins/Soundhandler/SoundFiles/PigsAway2.ogg new file mode 100644 index 00000000..70e16d13 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/PigsAway2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/PoweringOffSound.ogg b/resources/plugins/Soundhandler/SoundFiles/PoweringOffSound.ogg new file mode 100644 index 00000000..2b41ba3b Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/PoweringOffSound.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/RECOVER_AIRCRAFT.ogg b/resources/plugins/Soundhandler/SoundFiles/RECOVER_AIRCRAFT.ogg new file mode 100644 index 00000000..8ef29d3b Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/RECOVER_AIRCRAFT.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/RifleA.ogg b/resources/plugins/Soundhandler/SoundFiles/RifleA.ogg new file mode 100644 index 00000000..d3a3a09e Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/RifleA.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/RifleB.ogg b/resources/plugins/Soundhandler/SoundFiles/RifleB.ogg new file mode 100644 index 00000000..5fb9dfb2 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/RifleB.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/RifleC.ogg b/resources/plugins/Soundhandler/SoundFiles/RifleC.ogg new file mode 100644 index 00000000..30f3ae6d Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/RifleC.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/RifleD.ogg b/resources/plugins/Soundhandler/SoundFiles/RifleD.ogg new file mode 100644 index 00000000..227340d1 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/RifleD.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/RifleE.ogg b/resources/plugins/Soundhandler/SoundFiles/RifleE.ogg new file mode 100644 index 00000000..ffb7924c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/RifleE.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SAM1.ogg b/resources/plugins/Soundhandler/SoundFiles/SAM1.ogg new file mode 100644 index 00000000..2f656d2d Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SAM1.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SAM2.ogg b/resources/plugins/Soundhandler/SoundFiles/SAM2.ogg new file mode 100644 index 00000000..d05478c5 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SAM2.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SAM3.ogg b/resources/plugins/Soundhandler/SoundFiles/SAM3.ogg new file mode 100644 index 00000000..b784a800 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SAM3.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SAM4.ogg b/resources/plugins/Soundhandler/SoundFiles/SAM4.ogg new file mode 100644 index 00000000..74e1132f Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SAM4.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SAM5.ogg b/resources/plugins/Soundhandler/SoundFiles/SAM5.ogg new file mode 100644 index 00000000..7827d144 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SAM5.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SAM6.ogg b/resources/plugins/Soundhandler/SoundFiles/SAM6.ogg new file mode 100644 index 00000000..edb52de0 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SAM6.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SAM7.ogg b/resources/plugins/Soundhandler/SoundFiles/SAM7.ogg new file mode 100644 index 00000000..209090c8 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SAM7.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SCUD_Long.ogg b/resources/plugins/Soundhandler/SoundFiles/SCUD_Long.ogg new file mode 100644 index 00000000..762afa16 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SCUD_Long.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SHELL_REPORTING.ogg b/resources/plugins/Soundhandler/SoundFiles/SHELL_REPORTING.ogg new file mode 100644 index 00000000..bb133279 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SHELL_REPORTING.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SOS_Beacon.ogg b/resources/plugins/Soundhandler/SoundFiles/SOS_Beacon.ogg new file mode 100644 index 00000000..61d78354 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SOS_Beacon.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SPLASH_2_MIG-29.ogg b/resources/plugins/Soundhandler/SoundFiles/SPLASH_2_MIG-29.ogg new file mode 100644 index 00000000..de691af4 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SPLASH_2_MIG-29.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell11OnStation.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell11OnStation.ogg new file mode 100644 index 00000000..d1563243 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell11OnStation.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell11RTB.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell11RTB.ogg new file mode 100644 index 00000000..d7755e63 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell11RTB.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell11Startup.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell11Startup.ogg new file mode 100644 index 00000000..1e13bd9f Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell11Startup.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell12OnStation.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell12OnStation.ogg new file mode 100644 index 00000000..887d1782 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell12OnStation.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell12RTB.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell12RTB.ogg new file mode 100644 index 00000000..24ed5b3a Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell12RTB.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell12Startup.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell12Startup.ogg new file mode 100644 index 00000000..def41e3a Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell12Startup.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell_CheckingIn.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell_CheckingIn.ogg new file mode 100644 index 00000000..c3852516 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell_CheckingIn.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Shell_LeavingFreq.ogg b/resources/plugins/Soundhandler/SoundFiles/Shell_LeavingFreq.ogg new file mode 100644 index 00000000..6455fdc2 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Shell_LeavingFreq.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Singer.ogg b/resources/plugins/Soundhandler/SoundFiles/Singer.ogg new file mode 100644 index 00000000..2e0730f5 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Singer.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/SoLongGayBoys.ogg b/resources/plugins/Soundhandler/SoundFiles/SoLongGayBoys.ogg new file mode 100644 index 00000000..8bb989da Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/SoLongGayBoys.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/TACAN_RESET.ogg b/resources/plugins/Soundhandler/SoundFiles/TACAN_RESET.ogg new file mode 100644 index 00000000..4cf26b92 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/TACAN_RESET.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/TargetLost.ogg b/resources/plugins/Soundhandler/SoundFiles/TargetLost.ogg new file mode 100644 index 00000000..4b65f516 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/TargetLost.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/TargetSmoke.ogg b/resources/plugins/Soundhandler/SoundFiles/TargetSmoke.ogg new file mode 100644 index 00000000..adb4c1a8 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/TargetSmoke.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco11OnStation.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco11OnStation.ogg new file mode 100644 index 00000000..7f67abbf Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco11OnStation.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco11RTB.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco11RTB.ogg new file mode 100644 index 00000000..e377fe3e Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco11RTB.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco11Startup.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco11Startup.ogg new file mode 100644 index 00000000..3d49ef41 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco11Startup.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco12OnStation.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco12OnStation.ogg new file mode 100644 index 00000000..bca51029 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco12OnStation.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco12RTB.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco12RTB.ogg new file mode 100644 index 00000000..cb1d0112 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco12RTB.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco12Startup.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco12Startup.ogg new file mode 100644 index 00000000..c50835e0 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco12Startup.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco_CheckingIn.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco_CheckingIn.ogg new file mode 100644 index 00000000..cca2a717 Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco_CheckingIn.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Texaco_LeavingFreq.ogg b/resources/plugins/Soundhandler/SoundFiles/Texaco_LeavingFreq.ogg new file mode 100644 index 00000000..7d6ca53c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Texaco_LeavingFreq.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/Tomahawk Out.ogg b/resources/plugins/Soundhandler/SoundFiles/Tomahawk Out.ogg new file mode 100644 index 00000000..c8b17c5e Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/Tomahawk Out.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/tankerTurnSound.ogg b/resources/plugins/Soundhandler/SoundFiles/tankerTurnSound.ogg new file mode 100644 index 00000000..69dec19c Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/tankerTurnSound.ogg differ diff --git a/resources/plugins/Soundhandler/SoundFiles/walkietalkie2.ogg b/resources/plugins/Soundhandler/SoundFiles/walkietalkie2.ogg new file mode 100644 index 00000000..41dac1ea Binary files /dev/null and b/resources/plugins/Soundhandler/SoundFiles/walkietalkie2.ogg differ diff --git a/resources/plugins/Soundhandler/Soundhandler-config.lua b/resources/plugins/Soundhandler/Soundhandler-config.lua new file mode 100644 index 00000000..7d974c96 --- /dev/null +++ b/resources/plugins/Soundhandler/Soundhandler-config.lua @@ -0,0 +1,20 @@ +-- configuration file for Soundhandler Plugin +-- +-- This configuration is tailored for a mission generated by DCS Retribution +-- see https://github.com/dcs-retribution/dcs-retribution +------------------------------------------------------------------------------------------------------------------------------------------------------------- + + +-- Autolase plugin - configuration +if dcsRetribution then + -- retrieve specific options values + if dcsRetribution.plugins then + if dcsRetribution.plugins.Soundhandler then + env.info("------DCSRetribution|Soundhandler plugin - Setting Up------") + Soundhandler_options.SoundsToGroupOnly = dcsRetribution.plugins.Soundhandler.SoundsToGroupOnly + Soundhandler_options.ShipSamSounds = dcsRetribution.plugins.Soundhandler.ShipSamSounds + Soundhandler_options.RedShootingSounds = dcsRetribution.plugins.Soundhandler.RedShootingSounds + Soundhandler_options.Debug = dcsRetribution.plugins.Soundhandler.Debug + end + end +end diff --git a/resources/plugins/Soundhandler/plugin.json b/resources/plugins/Soundhandler/plugin.json new file mode 100644 index 00000000..38e8d031 --- /dev/null +++ b/resources/plugins/Soundhandler/plugin.json @@ -0,0 +1,121 @@ +{ + "nameInUI": "Soundhandler", + "defaultValue": true, + "specificOptions": [ + { + "nameInUI": "Play Sounds to Involved Group Only", + "mnemonic": "SoundsToGroupOnly", + "defaultValue": true + }, + { + "nameInUI": "Play SAM Sounds for Ship Surface to Air Missiles", + "mnemonic": "ShipSamSounds", + "defaultValue": true + }, + { + "nameInUI": "Play Sounds for Red Jet Cannons", + "mnemonic": "RedShootingSounds", + "defaultValue": true + }, + { + "nameInUI": "Debug Mode", + "mnemonic": "Debug", + "defaultValue": false + } + ], + "scriptsWorkOrders": [ + { + "file": "Plugin_Soundhandler.lua", + "mnemonic": "Soundhandler" + } + ], + "configurationWorkOrders": [ + { + "file": "Soundhandler-config.lua", + "mnemonic": "Soundhandler-config" + } + ], + "otherResourceFiles": [ + "SoundFiles/AAGoodKill.ogg", + "SoundFiles/AAKill4.ogg", + "SoundFiles/AAKillGoodhiton1.ogg", + "SoundFiles/AAKillSplash.ogg", + "SoundFiles/AAKillSplashone.ogg", + "SoundFiles/AASplashOne.ogg", + "SoundFiles/AASplashOne_2.ogg", + "SoundFiles/Misil1.ogg", + "SoundFiles/Misil2.ogg", + "SoundFiles/Misil3.ogg", + "SoundFiles/Misil4.ogg", + "SoundFiles/Misil5.ogg", + "SoundFiles/Misil6.ogg", + "SoundFiles/AGKillBOOM1.ogg", + "SoundFiles/AGKillCOMEONBABY.ogg", + "SoundFiles/AGKillGoodBOOM.ogg", + "SoundFiles/AGKillSeeTheSmoke.ogg", + "SoundFiles/AGKill_TARGET_DESTROYED.ogg", + "SoundFiles/AGKillBeautiful_beautiful.ogg", + "SoundFiles/AGKillMotherFucker.ogg", + "SoundFiles/SAM1.ogg", + "SoundFiles/SAM2.ogg", + "SoundFiles/SAM3.ogg", + "SoundFiles/SAM4.ogg", + "SoundFiles/SAM5.ogg", + "SoundFiles/SAM6.ogg", + "SoundFiles/SAM7.ogg", + "SoundFiles/Defending.ogg", + "SoundFiles/Singer.ogg", + "SoundFiles/SCUD_Long.ogg", + "SoundFiles/Fireball.ogg", + "SoundFiles/PigsAway.ogg", + "SoundFiles/PigsAway2.ogg", + "SoundFiles/Paveway.ogg", + "SoundFiles/Bruiser.ogg", + "SoundFiles/Bruiser2.ogg", + "SoundFiles/Bruiser3.ogg", + "SoundFiles/Fox2A.ogg", + "SoundFiles/Fox2B.ogg", + "SoundFiles/Fox2C.ogg", + "SoundFiles/Fox2D.ogg", + "SoundFiles/Fox2E.ogg", + "SoundFiles/Fox3A.ogg", + "SoundFiles/Fox3B.ogg", + "SoundFiles/Fox3C.ogg", + "SoundFiles/Fox3D.ogg", + "SoundFiles/Fox3E.ogg", + "SoundFiles/Fox3F.ogg", + "SoundFiles/Fox1A.ogg", + "SoundFiles/Fox1B.ogg", + "SoundFiles/Magnum.ogg", + "SoundFiles/Magnum2.ogg", + "SoundFiles/RifleA.ogg", + "SoundFiles/RifleB.ogg", + "SoundFiles/RifleC.ogg", + "SoundFiles/RifleD.ogg", + "SoundFiles/RifleE.ogg", + "SoundFiles/Pickle1.ogg", + "SoundFiles/Pickle2.ogg", + "SoundFiles/Pickle3.ogg", + "SoundFiles/Pickle4.ogg", + "SoundFiles/Pickle5.ogg", + "SoundFiles/Pickle6.ogg", + "SoundFiles/Pickle7.ogg", + "SoundFiles/OhJesus.ogg", + "SoundFiles/SOS_Beacon.ogg", + "SoundFiles/HitEjecting1.ogg", + "SoundFiles/HitEjecting2.ogg", + "SoundFiles/HitEjecting3.ogg", + "SoundFiles/BlueGuns1.ogg", + "SoundFiles/BlueGuns2.ogg", + "SoundFiles/BlueGuns3.ogg", + "SoundFiles/Guns_Break_Right.ogg", + "SoundFiles/Guns_Break_Left.ogg", + "SoundFiles/A2G_Duck1.ogg", + "SoundFiles/A2G_Greyhound1.ogg", + "SoundFiles/A2G_Vampires1.ogg", + "SoundFiles/S2G_Tomahawk1.ogg", + "SoundFiles/FriendlyFire1.ogg", + "SoundFiles/FriendlyFire2.ogg", + "SoundFiles/BirdsAway.ogg" + ] +} \ No newline at end of file diff --git a/resources/plugins/plugins.json b/resources/plugins/plugins.json index 7d50095f..ab1552ea 100644 --- a/resources/plugins/plugins.json +++ b/resources/plugins/plugins.json @@ -10,6 +10,7 @@ "lotatc", "skynetiads", "splashdamage2", + "MooseSoundhandler" "MooseAutolase", "MooseMarkerOps" ] \ No newline at end of file