ACTOR PPSH41 : DoomWeapon
{
  scale 0.8
  Weapon.SelectionOrder 600
  Weapon.SlotNumber 4
  weapon.kickback 60
  Weapon.AmmoType "PPSHAmmo"
  Weapon.AmmoUse1 0
  Weapon.AmmoGive1 0
  weapon.ammotype2 "PPSHClip"
  weapon.ammouse2 1
  weapon.ammogive2 71
  Weapon.BobStyle InverseSmooth
	Weapon.BobSpeed 2.2
	Weapon.BobRangeY 0.5
	Weapon.BobRangeX 0.7
  Decal "BulletChip"
  Tag "PPSh-41"
  Inventory.PickupMessage "You got the PPSh-41! (slot 4)"
  ConversationID 188
  +Ammo_Optional
  	+Alt_Ammo_Optional
	+WEAPON.PRIMARY_USES_BOTH
	+Weapon.NoAlert
  States
  {
  Ready:
    PPSG A 1 A_WeaponReady(WRF_ALLOWRELOAD)
    Loop
  Deselect:
	PPSG A 0 A_Lower
    PPSG A 1 A_Lower
    Loop
  Select:
	PPSG A 0 A_Raise
    PPSG A 1 A_Raise
    Loop
  Fire:
		PPSG A 0 A_JumpIfInventory("PPSHAmmo",1,1)
		Goto Dryfire
		PPSG A 0 A_GunFlash
		TNT1 A 0 A_Jump(250,2)
		TNT1 A 0 A_PlaySound("*taunt", CHAN_VOICE)
		PPSF B 0 A_PlayWeaponSound("PPSH/fire")
		PPSF B 0 A_TakeInventory("PPSHAmmo",1)
		PPSF A 1 bright A_FireCustomMissile("PPSHTracer",frandom(-2.5,2.5),0,0,0,0,frandom(-1.0,1.0))
		PPSF B 1 bright Offset(0,38) A_SetPitch(pitch - 0.6)
		PPSG A 0 A_AlertMonsters
		PPSF C 1 A_Refire
		PPSG A 1 Offset(0,42) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,44) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,43) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,40) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,36) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,32) A_WeaponReady(WRF_NOBOB)
		Goto Ready
	Hold:
		PPSG A 0 A_JumpIfInventory("PPSHAmmo",1,1)
		Goto Dryfire
		PPSG A 0 A_GunFlash
		TNT1 A 0 A_Jump(250,2)
		TNT1 A 0 A_PlaySound("*taunt", CHAN_VOICE)
		PPSG A 0 A_PlayWeaponSound("PPSH/fire")
		PPSG A 0 A_TakeInventory("PPSHAmmo",1)
		PPSF A 1 bright A_FireCustomMissile("PPSHTracer",frandom(-2.5,2.5),0,0,0,0,frandom(-1.0,1.0))
		PPSF B 1 bright Offset(0,50) A_SetPitch(pitch - 0.8)
		PPSG A 0 A_AlertMonsters
		PPSF C 1 A_Refire
		PPSG A 1 Offset(0,52) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,54) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,53) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,50) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,46) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,41) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,35) A_WeaponReady(WRF_NOBOB)
		PPSG A 1 Offset(0,32) A_WeaponReady(WRF_NOBOB)
		Goto Ready
  Dryfire:
		PPSG A 1
	Reload:
		PPSG A 0 A_JumpIfInventory("PPSHAmmo",71,2)
		PPSG A 0 A_JumpIfNoAmmo(1)
		Goto ProperReload
		PPSG A 1
		Goto Ready
  ProperReload:
	PPSG A 0 A_Jump(128,2)
	PPSG A 0 A_PlaySound("*taunt", CHAN_VOICE)
		PPSG A 1 Offset(0,35) A_PlaySound("ppsh/reload",CHAN_ITEM)
		PPSG A 1 Offset(0,38)
		PPSG A 1 Offset(0,44)
		PPSG B 1 Offset(0,52)
		PPSG B 1 Offset(-1,54)
		PPSG B 1 Offset(-2,56)
		PPSG B 1 Offset(-3,58)
		PPSG B 1 Offset(-4,58)
		PPSG B 1 Offset(-4,57)
		PPSG B 1 Offset(-3,54)
		PPSG B 1 Offset(-3,51)
		PPSG B 1 Offset(-3,53)
		PPSG B 1 Offset(-3,55)
		PPSG B 1 Offset(-3,56)
	ReloadLoop:
		TNT1 A 0 A_TakeInventory("PPSHClip",1,TIF_NOTAKEINFINITE)
		TNT1 A 0 A_GiveInventory("PPSHAmmo",1)
		TNT1 A 0 A_JumpIfInventory("PPSHAmmo",71,"ReloadFinish")
    TNT1 A 0 A_JumpIfNoAmmo("ReloadFinish")
    Goto ReloadLoop
	ReloadFinish:
		PPSG B 1 Offset(-3,57)
		PPSG B 1 Offset(-3,59)
		PPSG B 1 Offset(-3,63)
		PPSG B 1 Offset(-3,67)
		PPSG A 1 Offset(-3,65)
		PPSG A 1 Offset(-3,62)
		PPSG A 1 Offset(-3,58)
		PPSG A 1 Offset(-3,55)
		PPSG A 1 Offset(-2,53)
		PPSG A 1 Offset(-2,49)
		PPSG A 1 Offset(-2,46)
		PPSG A 1 Offset(-2,45)
		PPSG A 1 Offset(-1,44)
		PPSG A 1 Offset(-1,46)
		PPSG A 1 Offset(-1,47)
		PPSG A 1 Offset(0,49) A_WeaponReady(1)
		PPSG A 1 Offset(0,44) A_WeaponReady(1)
		PPSG A 1 Offset(0,38) A_WeaponReady(1)
		PPSG A 1 Offset(0,35) A_WeaponReady(1)
		PPSG A 1 Offset(0,32) A_WeaponReady(1)
		Goto Ready
  Flash:
    TNT1 A 3 A_Light2
    TNT1 A 3 A_Light1
    TNT1 A 0 A_Light0
    Goto LightDone
  Spawn:
    PPSH A -1
    Stop
  }
}

ACTOR PPSHClip : Ammo
{
	Inventory.Amount 71
	Inventory.MaxAmount 284
	Ammo.BackpackAmount 71
	Ammo.BackpackMaxAmount 568
	Inventory.PickupMessage "Picked up a box of 7.62mm Tokarev ammo."
	Inventory.Icon "PPSAA0"
	States
	{
	Spawn:
		PPSA A -1
		Stop
	}
}

ACTOR PPSHAmmo : Ammo
{
	+IGNORESKILL
	Inventory.MaxAmount 71
	Inventory.Icon "PPSHA0"
}

ACTOR PPSHSpawner replaces PlasmaRifle
{
	DropItem "PPSH41"
	DropItem "PPSHClip"
	DropItem "PPSHClip"
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1 A_Fall
		Stop
	}
}