actor "FN M240" : RGUWeapon
{
  obituary "%k fed %o with lead from the M240."
  inventory.pickupmessage "You got the FN M240 light machinegun. Shred them all the fuck apart!!!!"
  //attacksound "mg4/fire1"
  weapon.selectionorder 1
  weapon.ammotype "M240Clip"
  weapon.ammouse 1
  weapon.ammogive 0
  weapon.ammotype2 "M240Ammo"
  weapon.ammouse2 0
  weapon.ammogive2 0
  -NOAUTOFIRE
  states
  {
  Ready:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    M24A A 0 A_PlaySoundEx("weapon/draw","SoundSlot5")
    M24A BCDEFGH 2
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24A IJKLMNO 2 A_WeaponReady(WRF_ALLOWZOOM)
	M4CD A 0 A_JumpIfInventory("M240Token",1,"Reload")
    M24A P 0 A_JumpIfNoAmmo("Reload")
	M4CC F 0 A_JumpIfInventory("weapondropper",1,"DropWeapon")
    M24A P 0 A_JumpIfInventory("Aiming",1,5)
    M24A P 0 A_JumpIfInventory("Reloading",1,"Reload")
    M24A P 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    M24A P 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24A P 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+19
    M24C F 0 A_JumpIfInventory("Reloading",1,"Reload")
  ReadyAim:
    M24C F 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    M24C F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	G18A I 0 A_JumpIfInventory("weapondropper",1,"AltFire3")
    M24C F 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+25
  Deselect:
    M24A P 0 A_PlaySoundEx("weapon/down","SoundSlot5")
    M24A P 0 A_TakeInventory("Aiming",1)
    M24A P 0 A_TakeInventory("Reloading",1)
    M24A P 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    M24A P 0 A_ZoomFactor(1.0)
    M24A P 0 A_Lower
    M24A P 1 A_Lower
    Goto Deselect+5
  Select:
    M24A A 0 A_Raise
    Loop
  Fire:
    M24B A 0 A_JumpIfInventory("Aiming",1,"FireAim")
    M24B A 0 A_JumpIfNoAmmo("ReloadStart")
    M24B A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-8.00,8.00), 1, 0, 4, 0, frandom(-8.00,8.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  Hold:
    M24B A 0 A_JumpIfInventory("Aiming",1,"HoldAim")
    M24B A 0 A_JumpIfNoAmmo("ReloadStart")
    M24B A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Hold_SteadyAim")
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-11.00,11.00), 1, 0, 4, 0, frandom(-11.00,11.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  FireAim:
    M24D A 0 A_PlayWeaponSound("m240/fire")
    M24D A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,0,2)
    M24D A 0 BRIGHT A_GunFlash
    M24D A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-1.95,1.95), 1, 0, 4, 0, frandom(-1.95,1.95))
	M24D A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24D BC 1
	M24D C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24D DEF 1 A_ReFire
    Goto Ready+25
    M24D D 0 A_JumpIfNoAmmo("ReloadStart")
    M24D DEF 1 A_ReFire
    Goto Ready+25
  HoldAim:
    M24D A 0 A_PlayWeaponSound("m240/fire")
    M24D A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,0,2)
    M24D A 0 BRIGHT A_GunFlash
    M24D A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-3.30,3.30), 1, 0, 4, 0, frandom(-3.30,3.30))
	M24D A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24D BC 1
	M24D C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24D DEF 1 A_ReFire
    Goto Ready+25
    M24D D 0 A_JumpIfNoAmmo("ReloadStart")
    M24D DEF 1 A_ReFire
    Goto Ready+25
  Reload: //AltFire:
    M24E A 0 A_JumpIfInventory("M240Clip",100,2)
    M24E A 0 A_JumpIfInventory("M240Ammo",1,"ReloadStart")
    M24E A 0 A_TakeInventory("Reloading",1)
    M24E A 0 A_JumpIfInventory("Aiming",1,"ReadyAim")
    Goto Ready+22
  ReloadStart:
    M24E A 0 ACS_NamedExecuteAlways("RefSpeak",0,0,0,0)
    M24E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim")
    M24E A 0 A_JumpIfInventory("Perk1_SOH",1,"ReloadStart_SOH")
	M24E A 0 A_JumpIfInventory("M240Token",1,"Reload2")
    M24E A 3 A_PlaySoundEx("m240/reload1","SoundSlot5")
    M24E BCDEFGHI 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E JKLMNOPQ 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24E RSTUVWXY 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E Z 3 A_PlaySoundEx("m240/reload2","SoundSlot5")
    M24F ABCDEFGH 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F I 3 A_PlaySoundEx("m240/reload3","SoundSlot5")
	M24F I 0 A_FireCustomMissile("EmptyLMGMagSpawner",0,0,0,-4)
	M24F I 0 A_GiveInventory("M240Token",1)
	goto Reload2
  Reload2:
    M24F JKLMNOPQR 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24F STUV 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F W 3 A_PlaySoundEx("m240/reload4","SoundSlot5")
    M24F XYZ 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G ABCDEFG 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G HIJ 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24G K 3 A_PlaySoundEx("m240/reload5","SoundSlot5")
    M24G L 3 A_TakeInventory("Reloading",1)
    M24G M 3
    Goto ReloadAmmo
  ReloadAmmo:
    M24G P 0 A_JumpIfInventory("M240Clip",100,"ReloadEnd")
	M24G P 0 A_TakeInventory("M240Token",1)
    M24G P 0 A_JumpIfInventory("M240Ammo",1,1)
    Goto ReloadEnd
    M24G P 0 A_GiveInventory("M240Clip",1)
    M24G P 0 A_TakeInventory("M240Ammo",1)
    Goto ReloadAmmo
  ReloadEnd:
    M24G NOPQRST 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G U 3 A_PlaySoundEx("m240/reload6","SoundSlot5")
    M24G VWXYZ 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24H ABCDEFG 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24H JIKLMNO 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    U46D B 0 A_ReFire
    Goto Ready+19
  Zoom:
  PostReloadAlt:
    M24C F 0 A_ZoomFactor(1.2)
    M24C E 0 A_GiveInventory("Aiming",1)
	M24C A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    M24C ABCDEF 2
    Goto AltHold
  AltFireHoldAim:
    "####" "#" 0 A_JumpIfInventory("M240Clip",1,1)
	Goto Reload
    M24D A 0 A_PlayWeaponSound("m240/fire")
	GRNA L 0 A_TakeInventory("M240Clip",1)
    M24D A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,0,2)
    M24D A 0 BRIGHT A_GunFlash
    M24D A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-3.30,3.30), 1, 0, 4, 0, frandom(-3.30,3.30))
	M24D A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24D BC 1
	M24D C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	"####" "#" 0 A_JumpIfInventory("M240Clip",1,1)
	Goto Reload
    M24D DEF 1 A_ReFire
    Goto Ready+25
  AltHold:
    M24C F 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
	M4CA C 0 A_JumpIfInventory("FireHeld",1,"AltFireHoldAim")
	M4CA C 0 A_JumpIfInventory("Reloading",1,"Reload")
	U45A L 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    U45A L 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	G18A I 0 A_JumpIfInventory("weapondropper",1,"AltFire3")
	M4CA F 0 A_Refire("AltHold")
	M4CA C 0 A_JumpIfInventory("Aiming",1,"AltFire2")
	Goto Ready+25
  AltFire:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    M4CD A 0 A_JumpIfInventory("M240Token",1,"Reload")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"AltHold")
    M24C A 0 A_JumpIfInventory("Aiming",1,"AltFire2")
    M24C A 0 A_ZoomFactor(1.2)
    M24C AB 2
    M24C B 0 A_GiveInventory("Aiming",1)
    M24C CDEF 2
    M24C F 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    M24C F 0 A_Refire
    Goto Ready+25
  AltFire2:
    M24C F 0 A_ZoomFactor(1.0)
    M24C FE 2
    M24C E 0 A_TakeInventory("Aiming",1)
    M24C DCBA 2
    M24C A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	M24A PPPP 1
    M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    Goto Ready+19
  AltFire3:
    M24C F 0 A_ZoomFactor(1.0)
    M24C FE 2
    M24C E 0 A_TakeInventory("Aiming",1)
    M24C DCBA 2
    M24C A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    M24C A 0 A_Refire
	goto DropWeapon
  ReloadStartAim:
    M24C F 0 A_ZoomFactor(1.0)
    M24C FE 2
    M24C E 0 A_TakeInventory("Aiming",1)
    M24C DCBA 2
    M24C A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    Goto ReloadStart+2
  Flash:
    TNT1 A 2 bright A_Light1
    TNT1 A 0 bright A_Light0
    stop
  Spawn:
    WEP2 G 0
    WEP2 G 0 A_SpawnItem("M240Drop")
    stop
  ReloadStart_SOH:
    M24E A 0 A_JumpIfInventory("M240Token",1,"Reload3")
    M24E A 2 A_PlaySoundEx("m240/reloadsoh1","SoundSlot5")
    M24E BCDEFGHI 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E JKLMNOPQ 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24E RSTUVWXY 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E Z 2 A_PlaySoundEx("m240/reload2","SoundSlot5")
    M24F ABCDEFGH 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F I 2 A_PlaySoundEx("m240/reload3","SoundSlot5")
	M24F I 0 A_FireCustomMissile("EmptyLMGMagSpawner",0,0,0,-4)
	M24F I 0 A_GiveInventory("M240Token",1)
	goto Reload3
  Reload3:
    M24F JKLMNOPQR 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24F STUV 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F W 2 A_PlaySoundEx("m240/reload4","SoundSlot5")
    M24F XYZ 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G ABCDEFG 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G HIJ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24G K 2 A_PlaySoundEx("m240/reload5","SoundSlot5")
    M24G L 2 A_TakeInventory("Reloading",1)
    M24G M 2
    Goto ReloadAmmo_SOH
  ReloadAmmo_SOH:
    M24G P 0 A_JumpIfInventory("M240Clip",100,"ReloadEnd_SOH")
	M24G P 0 A_TakeInventory("M240Token",1)
    M24G P 0 A_JumpIfInventory("M240Ammo",1,1)
    Goto ReloadEnd_SOH
    M24G P 0 A_GiveInventory("M240Clip",1)
    M24G P 0 A_TakeInventory("M240Ammo",1)
    Goto ReloadAmmo_SOH
  ReloadEnd_SOH:
    M24G NOPQRST 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G U 2 A_PlaySoundEx("m240/reload6","SoundSlot5")
    M24G VWXYZ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24H ABCDEFG 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24H JIKLMNO 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    U46D B 0 A_ReFire
    Goto Ready+19
  Fire_SteadyAim:
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-6.00,6.00), 1, 0, 4, 0, frandom(-6.00,6.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  Hold_SteadyAim:
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-9.00,9.00), 1, 0, 4, 0, frandom(-9.00,9.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  FragGrenade:
    U45F A 0 ACS_NamedExecuteAlways("RefSpeak",0,1,0,0)
    U45F A 0 A_ZoomFactor(1.0)
    U45A L 0 A_TakeInventory("Aiming",1)
    U45A L 0 A_TakeInventory("Reloading",1)
    U45F A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
	M4CA J 0 A_JumpIfInventory("ThrowingStun",1,"StunGrenade")
	M4CA J 0 A_JumpIfInventory("ThrowingIncd",1,"IncGrenade")
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"FragGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("GrenadeAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("FragGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
    Goto Ready+2
  FragGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("GrenadeAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("FragGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
    Goto Ready+2
  KnifeAttack:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    U45F A 0 A_ZoomFactor(1.0)
    U45A L 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    U45A L 0 A_TakeInventory("Aiming",1)
    U45A L 0 A_TakeInventory("Reloading",1)
    U45F A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"KnifeAttack_SOH")
    U45C A 0 A_JumpIfInventory("Perk3_Commando",1,"KnifeAttack_Commando")
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",104)
    KNFA DEFGHIJKL 1
    TNT1 A 20
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    Goto Ready+2
  KnifeAttack_Commando:
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",160)
    KNFA DEFGHIJKL 1
    TNT1 A 20
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    Goto Ready+2
  KnifeAttack_SOH:
    U45C A 0 A_JumpIfInventory("Perk3_Commando",1,"KnifeAttack_SOH_Commando")
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",104)
    KNFA DEFGHIJKL 1
    TNT1 A 10
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    Goto Ready+2
  KnifeAttack_SOH_Commando:
    KNFA A 0 ACS_NamedExecuteAlways("RefSlash",0,0,0,0)
    KNFA AB 1
    KNFA B 0 A_PlaySound("knife/swing")
    KNFA C 1 A_CustomPunch(102,1,0,"KnifePuff",160)
    KNFA DEFGHIJKL 1
    TNT1 A 10
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
    Goto Ready+2
  StunGrenade:
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"StunGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("StunAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("StunGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
    Goto Ready+2
  IncGrenade:
    U45A L 0 A_JumpIfInventory("Perk1_SOH_Pro",1,"IncGrenade_SOH")
    GRNA ABC 2
    GRNA D 2 A_PlaySound("grenade/pinpull")
    GRNA EFGH 2
    TNT1 A 15
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 2
    GRNA L 0 A_TakeInventory("IncdAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 2 A_FireCustomMissile("IncGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 2
    Goto Ready+2
  StunGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("StunAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("StunGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
    Goto Ready+2
  IncGrenade_SOH:
    GRNA ABC 1
    GRNA D 1 A_PlaySound("grenade/pinpull")
    GRNA EFGH 1
    TNT1 A 10
    TNT1 A 0 A_PlaySound("grenade/throw")
    GRNA A 0 A_PlaySoundEx("us/grenades","Voice")
    GRNA IJK 1
    GRNA L 0 A_TakeInventory("IncdAmmo",1)
    GRNA L 0 A_TakeInventory("ThrowingGrenade",1)
	GRNA L 0 A_TakeInventory("ThrowingStun",1)
	GRNA L 0 A_TakeInventory("ThrowingIncd",1)
    U45A L 0 A_TakeInventory("Aiming",1)
    GRNA L 0 A_TakeInventory("KnifeAttack",1)
    GRNA L 1 A_FireCustomMissile("IncGrenade",frandom(-2.00,2.00),0,0,16,0,frandom(-1.50,1.50))
    GRNA MN 1
    Goto Ready+2
  DropWeapon:
    M24A ONMLKJIHGFEDCB 2 A_WeaponReady(WRF_NOPRIMARY)
	M24A A 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CC F 0 A_JumpIfInventory("weapondropper",2,"ThrowWeapon")
    KNFA A 0 ACS_NamedExecuteAlways("RefDropW",0,0,0,0)
	GRNA L 0 A_TakeInventory("weapondropper",1)
	M4CB A 0 A_FireCustomMissile("M240Dropped",0,0,7,2)
	stop
  ThrowWeapon:
    GRNA IKMN 1
	KNFA B 0 A_PlaySound("knife/swing")
    KNFA A 0 ACS_NamedExecuteAlways("RefDropW",0,0,0,0)
	GRNA L 0 A_TakeInventory("weapondropper",2)
	M4CB A 0 A_FireCustomMissile("M240Thrown",0,0,7,2)
	stop
  }
}

actor M240Clip : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 0
    inventory.maxamount 100
    ammo.backpackamount 0
    ammo.backpackmaxamount 100
    +IGNORESKILL
}
actor "FN M240 Ex Mags" : "FN M240"
{
  obituary "%k fed %o with lead from the M240."
  inventory.pickupmessage "You got the FN M240 light machinegun."
  //attacksound "mg4/fire1"
  weapon.selectionorder 1
  weapon.ammotype "M240Clip2"
  weapon.ammouse 1
  weapon.ammogive 0
  weapon.ammotype2 "M240Ammo"
  weapon.ammouse2 0
  weapon.ammogive2 0
  -NOAUTOFIRE
  states
  {
  Ready:
    GRNA L 0 A_TakeInventory("weapondropper",2)
    M24A A 0 A_PlaySoundEx("weapon/draw","SoundSlot5")
    M24A BCDEFGH 2
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24A IJKLMNO 2 A_WeaponReady(WRF_ALLOWZOOM)
	M4CD A 0 A_JumpIfInventory("M240Token",1,"Reload")
    M24A P 0 A_JumpIfNoAmmo("Reload")
	M4CC F 0 A_JumpIfInventory("weapondropper",1,"DropWeapon")
    M24A P 0 A_JumpIfInventory("Aiming",1,5)
    M24A P 0 A_JumpIfInventory("Reloading",1,"Reload")
    M24A P 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    M24A P 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24A P 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+19
    M24C F 0 A_JumpIfInventory("Reloading",1,"Reload")
  ReadyAim:
    M24C F 0 A_JumpIfInventory("ThrowingGrenade",1,"FragGrenade")
    M24C F 0 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	G18A I 0 A_JumpIfInventory("weapondropper",1,"AltFire3")
    M24C F 1 A_WeaponReady(WRF_NOBOB|WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
    Goto Ready+25
  Reload: //AltFire:
    M24E A 0 A_JumpIfInventory("M240Clip2",200,2)
    M24E A 0 A_JumpIfInventory("M240Ammo",1,"ReloadStart")
    M24E A 0 A_TakeInventory("Reloading",1)
    M24E A 0 A_JumpIfInventory("Aiming",1,"ReadyAim")
    Goto Ready+22
  ReloadStart:
    M24E A 0 ACS_NamedExecuteAlways("RefSpeak",0,0,0,0)
    M24E A 0 A_JumpIfInventory("Aiming",1,"ReloadStartAim")
    M24E A 0 A_JumpIfInventory("Perk1_SOH",1,"ReloadStart_SOH")
	M24E A 0 A_JumpIfInventory("M240Token",1,"Reload2")
    M24E A 3 A_PlaySoundEx("m240/reload1","SoundSlot5")
    M24E BCDEFGHI 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E JKLMNOPQ 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24E RSTUVWXY 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E Z 3 A_PlaySoundEx("m240/reload2","SoundSlot5")
    M24F ABCDEFGH 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F I 3 A_PlaySoundEx("m240/reload3","SoundSlot5")
	M24F I 0 A_FireCustomMissile("EmptyLMGMagExtSpawner",0,0,0,-4)
	M24F I 0 A_GiveInventory("M240Token",1)
	goto Reload2
  Reload2:
    M24F JKLMNOPQR 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24F STUV 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F W 3 A_PlaySoundEx("m240/reload4","SoundSlot5")
    M24F XYZ 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G ABCDEFG 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G HIJ 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24G K 3 A_PlaySoundEx("m240/reload5","SoundSlot5")
    M24G L 3 A_TakeInventory("Reloading",1)
    M24G M 3
    Goto ReloadAmmo
  ReloadAmmo:
    M24G P 0 A_JumpIfInventory("M240Clip2",200,"ReloadEnd")
	M24G P 0 A_TakeInventory("M240Token",1)
    M24G P 0 A_JumpIfInventory("M240Ammo",1,1)
    Goto ReloadEnd
    M24G P 0 A_GiveInventory("M240Clip2",1)
    M24G P 0 A_TakeInventory("M240Ammo",1)
    Goto ReloadAmmo
  ReloadEnd:
    M24G NOPQRST 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G U 3 A_PlaySoundEx("m240/reload6","SoundSlot5")
    M24G VWXYZ 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24H ABCDEFG 3 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24H JIKLMNO 3 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    U46D B 0 A_ReFire
    Goto Ready+19
  ReloadStartAim:
    M24C F 0 A_ZoomFactor(1.0)
    M24C FE 2
    M24C E 0 A_TakeInventory("Aiming",1)
    M24C DCBA 2
    M24C A 0 ACS_NamedExecuteAlways("RefSpeed",0,0,0,0)
    Goto ReloadStart+2
  ReloadStart_SOH:
    M24E A 0 A_JumpIfInventory("M240Token",1,"Reload3")
    M24E A 2 A_PlaySoundEx("m240/reloadsoh1","SoundSlot5")
    M24E BCDEFGHI 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E JKLMNOPQ 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24E RSTUVWXY 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24E Z 2 A_PlaySoundEx("m240/reload2","SoundSlot5")
    M24F ABCDEFGH 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F I 2 A_PlaySoundEx("m240/reload3","SoundSlot5")
	M24F I 0 A_FireCustomMissile("EmptyLMGMagExtSpawner",0,0,0,-4)
	M24F I 0 A_GiveInventory("M240Token",1)
	goto Reload3
  Reload3:
    M24F JKLMNOPQR 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24F STUV 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24F W 2 A_PlaySoundEx("m240/reload4","SoundSlot5")
    M24F XYZ 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G ABCDEFG 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G HIJ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24G K 2 A_PlaySoundEx("m240/reload5","SoundSlot5")
    M24G L 2 A_TakeInventory("Reloading",1)
    M24G M 2
    Goto ReloadAmmo_SOH
  ReloadAmmo_SOH:
    M24G P 0 A_JumpIfInventory("M240Clip2",200,"ReloadEnd_SOH")
	M24G P 0 A_TakeInventory("M240Token",1)
    M24G P 0 A_JumpIfInventory("M240Ammo",1,1)
    Goto ReloadEnd_SOH
    M24G P 0 A_GiveInventory("M240Clip2",1)
    M24G P 0 A_TakeInventory("M240Ammo",1)
    Goto ReloadAmmo_SOH
  ReloadEnd_SOH:
    M24G NOPQRST 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24G U 2 A_PlaySoundEx("m240/reload6","SoundSlot5")
    M24G VWXYZ 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
    M24H ABCDEFG 2 A_WeaponReady(WRF_NOBOB|WRF_NOFIRE)
    M24H JIKLMNO 2 A_JumpIfInventory("KnifeAttack",1,"KnifeAttack")
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    U46D B 0 A_ReFire
    Goto Ready+19
  AltFireHoldAim:
    "####" "#" 0 A_JumpIfInventory("M240Clip2",1,1)
	Goto Reload
    M24D A 0 A_PlayWeaponSound("m240/fire")
	GRNA L 0 A_TakeInventory("M240Clip2",1)
    M24D A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,0,2)
    M24D A 0 BRIGHT A_GunFlash
    M24D A 1 BRIGHT A_FireCustomMissile("HHCBM240", frandom(-3.30,3.30), 1, 0, 4, 0, frandom(-3.30,3.30))
	M24D A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24D BC 1
	M24D C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	"####" "#" 0 A_JumpIfInventory("M240Clip2",1,1)
	Goto Reload
    M24D DEF 1 A_ReFire
    Goto Ready+25
  }
}

actor M240Clip2 : Ammo
{
    inventory.icon "CLIPA0"
    inventory.amount 0
    inventory.maxamount 200
    ammo.backpackamount 0
    ammo.backpackmaxamount 200
    +IGNORESKILL
}

actor M240ExMags : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}
actor "FN M240 Grip" : "FN M240"
{
  obituary "%k fed %o with lead from the M240."
  inventory.pickupmessage "You got the FN M240 light machinegun."
  //attacksound "mg4/fire1"
  weapon.selectionorder 1
  weapon.ammotype "M240Clip"
  weapon.ammouse 1
  weapon.ammogive 0
  weapon.ammotype2 "M240Ammo"
  weapon.ammouse2 0
  weapon.ammogive2 0
  -NOAUTOFIRE
  states
  {
  Fire:
    M24B A 0 A_JumpIfInventory("Aiming",1,"FireAim")
    M24B A 0 A_JumpIfNoAmmo("ReloadStart")
    M24B A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Fire_SteadyAim")
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240G", frandom(-6.00,6.00), 1, 0, 4, 0, frandom(-6.00,6.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  Hold:
    M24B A 0 A_JumpIfInventory("Aiming",1,"HoldAim")
    M24B A 0 A_JumpIfNoAmmo("ReloadStart")
    M24B A 0 A_JumpIfInventory("Perk3_SteadyAim",1,"Hold_SteadyAim")
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240G", frandom(-8.00,8.00), 1, 0, 4, 0, frandom(-8.00,8.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  FireAim:
    M24D A 0 A_PlayWeaponSound("m240/fire")
    M24D A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,0,2)
    M24D A 0 BRIGHT A_GunFlash
    M24D A 1 BRIGHT A_FireCustomMissile("HHCBM240G", frandom(-1.65,1.65), 1, 0, 4, 0, frandom(-1.65,1.65))
	M24D A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24D BC 1
	M24D C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24D DEF 1 A_ReFire
    Goto Ready+25
    M24D D 0 A_JumpIfNoAmmo("ReloadStart")
    M24D DEF 1 A_ReFire
    Goto Ready+25
  HoldAim:
    M24D A 0 A_PlayWeaponSound("m240/fire")
    M24D A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,0,2)
    M24D A 0 BRIGHT A_GunFlash
    M24D A 1 BRIGHT A_FireCustomMissile("HHCBM240G", frandom(-2.10,2.10), 1, 0, 4, 0, frandom(-2.10,2.10))
	M24D A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24D BC 1
	M24D C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24D DEF 1 A_ReFire
    Goto Ready+25
    M24D D 0 A_JumpIfNoAmmo("ReloadStart")
    M24D DEF 1 A_ReFire
    Goto Ready+25
  Fire_SteadyAim:
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240G", frandom(-4.00,4.00), 1, 0, 4, 0, frandom(-4.00,4.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  Hold_SteadyAim:
    M24B A 0 A_PlayWeaponSound("m240/fire")
    M24B A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,6,4)
    M24B A 0 BRIGHT A_GunFlash
    M24B A 1 BRIGHT A_FireCustomMissile("HHCBM240G", frandom(-6.00,6.00), 1, 0, 4, 0, frandom(-6.00,6.00))
	M24B A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24B A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24B BC 1
	M24B C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,8,31-(Sin(Pitch)*25),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	M4CA C 0 A_JumpIfInventory("AltFireHeld",1,"PostReloadAlt")
    M24B D 0 A_JumpIfInventory("M240Ammo",1,4)
    M24B DEF 1 A_ReFire
    Goto Ready+19
    M24B D 0 A_JumpIfNoAmmo("ReloadStart")
    M24B DEF 1 A_ReFire
    Goto Ready+19
  AltFireHoldAim:
    "####" "#" 0 A_JumpIfInventory("M240Clip",1,1)
	Goto Reload
    M24D A 0 A_PlayWeaponSound("m240/fire")
	GRNA L 0 A_TakeInventory("M240Clip",1)
    M24D A 0 A_FireCustomMissile("WeaponSmokePuff_LMGMuzzle",0,0,0,2)
    M24D A 0 BRIGHT A_GunFlash
    M24D A 1 BRIGHT A_FireCustomMissile("HHCBM240G", frandom(-2.10,2.10), 1, 0, 4, 0, frandom(-2.10,2.10))
	M24D A 0 A_SpawnItemEx("RifleCasing",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(2,4),FRandom(3,6),-Sin(Pitch)*FRandom(3,6),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
    M24D A 0 BRIGHT ACS_NamedExecuteAlways("RefKick",0,0,0,0)
    M24D BC 1
	M24D C 0 A_SpawnItemEx("RifleLink",Cos(Pitch)*30,-4,34-(Sin(Pitch)*43),Cos(Pitch)*FRandom(1,2),FRandom(1,3),-Sin(Pitch)*FRandom(1,3),0,SXF_NOCHECKPOSITION|SXF_TRANSFERPITCH)
	"####" "#" 0 A_JumpIfInventory("M240Clip",1,1)
	Goto Reload
    M24D DEF 1 A_ReFire
    Goto Ready+25
  }
}

actor M240Grip : Inventory
{
    inventory.amount 0
    inventory.maxamount 1
}

actor M240Pickup : CustomInventory
{
  inventory.pickupmessage "You got the FN M240 light machinegun."
  inventory.pickupsound "hbar/bolt"
  +INVENTORY.AUTOACTIVATE
  //inventory.respawntics 70
  scale 0.17
  States
  {
  Spawn:
    WEP2 G -1
    stop
  Pickup:
    WEP2 G 0
    WEP2 G 0 A_JumpIf((ACS_NamedExecuteWithResult("RefCheckVar",0,0,0)) == 1, "PickupStay")
    WEP2 G 0 A_JumpIfInventory("FN M240",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it
    WEP2 G 0 A_JumpIfInventory("FN M240 Ex Mags",1,"AmmoPickup")
    WEP2 G 0 A_JumpIfInventory("FN M240 Grip",1,"AmmoPickup")
    WEP2 G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEP2 G 0 A_JumpIfInventory("MaxWeaponsFilled",51,"FailPickup2")
	WEP2 G 0 A_GiveInventory("MaxWeaponsFilled",50)
	WEAP J 0 A_GiveInventory("BIGGRINSound",1)
    WEP2 G 0 ACS_NamedExecuteWithResult("RefPickU",33,0,0)
    stop
  PickupStay:
    WEP2 G 0
    WEP2 G 0 A_JumpIfInventory("FN M240",1,"FailPickup") // If the player already has this weapon, they get more ammo for it
    WEP2 G 0 A_JumpIfInventory("FN M240 Ex Mags",1,"FailPickup")
    WEP2 G 0 A_JumpIfInventory("FN M240 Grip",1,"FailPickup")
    WEP2 G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEP2 G 0 A_JumpIfInventory("MaxWeaponsFilled",51,"FailPickup2")
	WEP2 G 0 A_GiveInventory("MaxWeaponsFilled",50)
	WEAP J 0 A_GiveInventory("BIGGRINSound",1)
    WEP2 G 0 ACS_NamedExecuteWithResult("RefPickU",33,0,0)
    WEP2 G 0 ACS_NamedExecuteWithResult("RefPickC",33,0,0)
    WEP2 G 0 A_PlaySound("hbar/bolt")
    fail
  AmmoPickup:
    WEP2 G 0
    WEP2 G 0 A_JumpIfInventory("M240Ammo",0,"FailPickup")
    WEP2 G 0 A_GiveInventory("M240Ammo",100)
    stop
  OneManArmy:
    WEP2 G 0
	WEP2 G 0 A_JumpIfInventory("MaxWeaponsFilled",88,"FailPickup2")
	WEP2 G 0 A_GiveInventory("MaxWeaponsFilled",50)
	WEAP J 0 A_GiveInventory("BIGGRINSound",1)
	WEP2 G 0 ACS_NamedExecuteWithResult("RefPickU",33,0,0)
	stop
  FailPickup:
    WEP2 G 1
    fail
  FailPickup2:
    WEP2 G 1
    WEP2 G 0 ACS_NamedExecuteAlways("RefSlots",0,33,0,0)
    fail
  }
}

actor M240Drop : M240Pickup
{
  States
  {
  Spawn:
    WEP2 G -1
    stop
  Pickup:
    WEP2 G 0
    WEP2 G 0 A_JumpIfInventory("FN M240",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it
    WEP2 G 0 A_JumpIfInventory("FN M240 Ex Mags",1,"AmmoPickup")
    WEP2 G 0 A_JumpIfInventory("FN M240 Grip",1,"AmmoPickup")
    WEP2 G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEP2 G 0 A_JumpIfInventory("MaxWeaponsFilled",51,"FailPickup2")
	WEP2 G 0 A_GiveInventory("MaxWeaponsFilled",50)
	WEAP J 0 A_GiveInventory("BIGGRINSound",1)
    WEP2 G 0 ACS_NamedExecuteWithResult("RefPickU",33,0,0)
    stop
  }
}

actor M240Drop2 : M240Drop
{
  States
  {
  Spawn:
    WEP2 G -1
    stop
  Pickup:
    WEP2 G 0
    WEP2 G 0 A_JumpIfInventory("FN M240",1,"AmmoPickup") // If the player already has this weapon, they get more ammo for it
    WEP2 G 0 A_JumpIfInventory("FN M240 Ex Mags",1,"AmmoPickup")
    WEP2 G 0 A_JumpIfInventory("FN M240 Grip",1,"AmmoPickup")
    WEP2 G 0 A_JumpIfInventory("Perk1_OneManArmy",1,"OneManArmy")
    WEP2 G 0 A_JumpIfInventory("MaxWeaponsFilled",51,"FailPickup2")
	WEP2 G 0 A_GiveInventory("MaxWeaponsFilled",50)
	WEAP J 0 A_GiveInventory("BIGGRINSound",1)
    WEP2 G 0 ACS_NamedExecuteWithResult("RefPickU",33,0,0)
    stop
  AmmoPickup:
    WEP2 G 0
    stop
  }
}

actor HHCBM240 : HHBullet
{
  damage (random(25,31))
  Speed 400
  damagetype "LMG"
  States
  {
  Spawn:
    TNT1 A 15
    stop
  Death:
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    stop
  XDeath:
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 5 A_PlaySound("generic/ricochets")
    stop
  Crash:
    TNT1 A 0 A_GiveToTarget("HitIndicator",1)
    TNT1 A 0 A_SpawnItemEx("ImpactSmokePuff_2", 0, 0, 0, 0, 0, 0, 0, 128, 0)
    TNT1 A 5 A_PlaySound("generic/ricochet")
    stop
  }
}

actor HHCBM240G : HHCBM240
{
  damage (random(26,33))
}