// Enfield bolt-action pistol-caliber carbine.
// Sprite and sound from No One Lives Forever, edited by WildWeasel.
// Pickup sprite by WildWeasel.

ACTOR EnfieldLoaded : Ammo
{
	+IGNORESKILL
	Inventory.MaxAmount 10
	Inventory.Icon "ENFPA0"
}

    ACTOR Enfield : Weapon replaces Chainsaw
    {
       Weapon.AmmoType1 "EnfieldLoaded"
       Weapon.AmmoUse1 1
       Weapon.AmmoGive1 0
       Weapon.AmmoType2 "MauserAmmo"
       Weapon.AmmoGive2 5
       Weapon.AmmoUse2 0
       Weapon.BobStyle InverseSmooth
       Weapon.BobSpeed 2.2
       Weapon.BobRangeY 0.5
       Weapon.BobRangeX 0.7
       Tag "Lee-Enfield SMLE"
       Inventory.PickupMessage "You got the Lee-Enfield SMLE!"
       +AMMO_OPTIONAL
       +NOAUTOFIRE
       +NOALERT
       States
       {
       Spawn:
          ENFP A -1
          Stop
       Select:
		ENFG A 0 A_Raise
          ENFG A 1 A_Raise
          Loop
       Deselect:
		ENFG A 0 A_Lower
          ENFG A 1 A_Lower
          Loop
       Ready:
          ENFG A 1 A_WeaponReady(WRF_ALLOWRELOAD)
          Loop
       Fire:
          ENFG A 0 A_JumpIfNoAmmo("Dryfire")
          ENFF A 0 A_PlayWeaponSound("Enfield/Fire")
          ENFF A 1 Bright Offset(0,40) A_FireCustomMissile("EnfieldTracer",0,1)
          ENFF B 1 Bright Offset(0,50) A_GunFlash
          ENFG A 0 A_AlertMonsters
          ENFG A 1 Offset(0,45) A_SetPitch(pitch - 4.0)
          ENFG A 1 Offset(0,40) A_SetPitch(pitch - 2.0)
          ENFG A 1 Offset(0,36) A_SetPitch(pitch + 1.0)
          ENFG A 1 Offset(0,34) A_SetPitch(pitch + 1.0)
          ENFG A 1 Offset(0,33) A_SetPitch(pitch + 0.5)
          ENFG A 1 Offset(-2,33) A_PlaySound("Enfield/boltback",CHAN_ITEM)
          ENFG A 1 Offset(-4,34)
          ENFG A 1 Offset(-6,35)
          ENFG A 2 Offset(-8,36)
          ENFG A 2 Offset(-4,42)
          ENFG A 1 Offset(0,51)
          ENFG A 1 Offset(4,60)
          ENFG A 2 Offset(5,74)
          ENFG A 3 Offset(6,76)
          ENFG A 2 Offset(5,74) A_PlaySound("Enfield/boltfwd",CHAN_ITEM)
          ENFG A 1 Offset(4,60)
          ENFG A 1 Offset(0,51)
          ENFG A 1 Offset(-4,42)
          ENFG A 2 Offset(-8,36)
          ENFG A 1 Offset(-6,35)
          ENFG A 1 Offset(-4,34)
          ENFG A 1 Offset(-2,33)
          Goto Ready
       Dryfire:
          ENFG A 1
       Reload:
          ENFG A 0 A_JumpIfInventory("EnfieldLoaded",10,3)
          ENFG A 0 A_JumpIfInventory("EnfieldLoaded",5,"Halfloaded")
          ENFG A 0 A_JumpIfInventory("MauserAmmo",1,"FullReload")
          ENFG A 1
          Goto Ready
       Halfloaded:
          ENFG A 0 A_JumpIfInventory("MauserAmmo",1,"HalfReload")
          ENFG A 1
          Goto Ready
       FullReload:
          ENFG A 1 Offset(-2,33) A_PlaySound("Enfield/boltback",CHAN_ITEM)
          ENFG A 1 Offset(-4,34)
          ENFG A 1 Offset(-6,35)
          ENFG A 2 Offset(-8,36)
          ENFG A 2 Offset(-4,42)
          ENFG A 1 Offset(0,51)
          ENFG A 1 Offset(4,60)
          ENFG A 2 Offset(5,74)
          ENFG A 3 Offset(6,76)
          ENFG A 5
       ReloadWork:
          TNT1 A 0 A_TakeInventory("MauserAmmo",1)
          TNT1 A 0 A_GiveInventory("EnfieldLoaded",1)
          TNT1 A 0 A_JumpIfInventory("EnfieldLoaded",5,"ReloadFinish")
          TNT1 A 0 A_JumpIfInventory("MauserAmmo",1,"ReloadWork")
       ReloadFinish:
          ENFG A 1 Offset(6,80) A_PlaySound("Enfield/load",CHAN_ITEM)
          ENFG A 1 Offset(6,84)
          ENFG A 1 Offset(6,87)
          ENFG A 1 Offset(7,90)
          ENFG A 1 Offset(8,92)
          ENFG A 1 Offset(9,88)
          ENFG A 1 Offset(8,82)
          ENFG A 1 Offset(7,77)
          TNT1 A 0 A_JumpIfInventory("MauserAmmo",1,1)
          Goto ReloadOnlyOneClip
          ENFG A 5 Offset(6,75)
       ReloadWork2:
          TNT1 A 0 A_TakeInventory("MauserAmmo",1)
          TNT1 A 0 A_GiveInventory("EnfieldLoaded",1)
          TNT1 A 0 A_JumpIfInventory("EnfieldLoaded",10,"ReloadFinish2")
          TNT1 A 0 A_JumpIfInventory("MauserAmmo",1,"ReloadWork2")
       ReloadFinish2:
          ENFG A 1 Offset(6,80) A_PlaySound("Enfield/load",CHAN_ITEM)
          ENFG A 1 Offset(6,84)
          ENFG A 1 Offset(6,87)
          ENFG A 1 Offset(7,90)
          ENFG A 1 Offset(8,92)
          ENFG A 1 Offset(9,88)
          ENFG A 1 Offset(8,82)
          ENFG A 1 Offset(7,77)
       ReloadOnlyOneClip:
          ENFG A 2 Offset(5,74) A_PlaySound("Enfield/boltfwd",CHAN_ITEM)
          ENFG A 1 Offset(4,60)
          ENFG A 1 Offset(0,51)
          ENFG A 1 Offset(-4,42)
          ENFG A 2 Offset(-8,36)
          ENFG A 1 Offset(-6,35)
          ENFG A 1 Offset(-4,34)
          ENFG A 1 Offset(-2,33)
          Goto Ready
       HalfReload:
          ENFG A 1 Offset(-2,33) A_PlaySound("Enfield/boltback",CHAN_ITEM)
          ENFG A 1 Offset(-4,34)
          ENFG A 1 Offset(-6,35)
          ENFG A 2 Offset(-8,36)
          ENFG A 2 Offset(-4,42)
          ENFG A 1 Offset(0,51)
          ENFG A 1 Offset(4,60)
          ENFG A 2 Offset(5,74)
          ENFG A 3 Offset(6,76)
          ENFG A 5
          Goto ReloadWork2
       Flash:
          TNT1 A 2 BRIGHT A_Light2
          TNT1 A 2 BRIGHT A_Light1
          TNT1 A 0 A_Light0
          Stop
       }
    }