actor Pistol1 : DoomWeapon 
{
  Game Doom
  Weapon.SelectionOrder 1900
  Weapon.AmmoUse1 1
  scale 0.04
  Weapon.AmmoGive2 20
  Decal BulletChip
  Weapon.AmmoType1 "PistolLoaded"
  Weapon.AmmoType2 "PistolClip"
  Weapon.upsound "pistup"
  Obituary "$OB_MPPISTOL"
  Weapon.BobSpeed 2.5
  Weapon.BobRangeY 0.3
  Weapon.BobRangeX 0.0
  +WEAPON.WIMPY_WEAPON
  +Weapon.NoAutofire
  +WEAPON.NOAUTOAIM
  +Weapon.Ammo_Optional
  Inventory.Pickupmessage "$PICKUP_PISTOL_DROPPED" // "Picked up a pistol."
  Tag "$TAG_PISTOL"
  States
  {
  Ready:
	TNT1 A 0   
	TNT1 A 0 A_Jumpifnoammo("EmptyReady")
    MM91 A 1 A_WeaponReady(WRF_ALLOWRELOAD)
    Loop
  Deselect:
    MM91 A 1 A_Lower
    Loop
  Select:
    MM91 A 1 A_Raise
    Loop
	EmptyReady:
	MM91 A 1 A_WeaponReady(WRF_ALLOWRELOAD)
	Loop
	Dryfire:
	MM91 A 2 A_PlayWeaponSound("DRYFIRE")
	Goto Reload
  Fire:
    TNT1 A 0 A_JumpIfnoAmmo("Dryfire")
	TNT1 A 0 A_PlayWeaponSound("PISTFIR")
    TNT1 A 0 A_AlertMonsters
	TNT1 A 0 A_FireCustomMissile(PistolCasingSpawner,0,0,8,0)
	MM91 B 1 A_FireBullets(1, 1, -1, 12, "CustomPuff1")
	MM91 B 0 A_PlaySound("weapons/pistol", CHAN_WEAPON)
    MM91 C 1 Bright A_Light(3)
	MM91 D 1
	TNT1 A 0 A_Gunflash
	MM91 A 1 A_WeaponReady
    Goto Ready
	Reload:
  MM91 A 0 A_JumpIfInventory("PistolLoaded", 12, 2)
  MM91 A 0 A_JumpIfInventory("PistolClip", 1, "ReloadWork")
  MM91 A 0
  Goto Ready
  ReloadWork:
	TNT1 A 0 A_PlayWeaponSound("PTCLIPOU")
	MM91 E 4
	MM91 A 1
	ReloadLoop:
    TNT1 A 0 A_TakeInventory("PistolClip", 1)
    TNT1 A 0 A_GiveInventory("PistolLoaded", 1)
    TNT1 A 0 A_JumpIfInventory("PistolLoaded", 12, "ReloadFinish")
    TNT1 A 0 A_JumpIfInventory("PistolClip", 1, "ReloadLoop")
	ReloadFinish:
	TNT1 A 0 A_PlayWeaponSound("PTCLIPIN")
	MM91 F 4 A_playsound("pistrel1")
	MM91 G 4 A_playsound("pistrel2")
	MM91 D 4 A_ResetReloadCounter
	MM91 A 1 A_playsound("pistrel3")
	Goto Ready
  Flash:
    TNT1 A 0 Bright A_Light1
    Goto LightDone
    TNT1 A 0 Bright A_Light1
    Goto LightDone
  Spawn:
    MM91 H -1
    Stop
  }
}

Actor Pistol9mmBullet : StandartBullet { Damage 7 DeathSound "9MMRIC" }

ACTOR PistolLoaded : Ammo
{
 Inventory.MaxAmount 12
 +IGNORESKILL
 inventory.icon ICO2A0
}

ACTOR PistolClip : Ammo
{
  scale 0.2
  +IGNORESKILL
  Inventory.PickupMessage "Got some pistol Ammo"
  Inventory.PickupSound "misc/9mm_pickUp"
  Inventory.Amount 12
  Inventory.MaxAmount 500
  Ammo.BackpackAmount 24
  Ammo.BackpackMaxAmount 999
  Inventory.Icon "PCLIA0"
  States
  {
  Spawn:
    PCLI A -1
    Stop
  }
}

ACTOR PistolAmmoBox :PistolClip replaces clipbox
{
  scale 1.0
  Game Doom
  Inventory.PickupMessage "Picked up a Pistol Ammobox."
  Inventory.Amount 500
  States
  {
  Spawn:
    AMMO A -1
    Stop
  }
}

Actor PistolCasingSpawner : FastProjectile
{
	+CLIENTSIDEONLY
	Radius 1
	Height 1
	Speed 14
	Health 270
	Scale 0.2
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 1
		TNT1 A 0 A_Turn(Health)
		TNT1 A 0 A_Jump(256,"Missile")
	Missile:
		TNT1 A 0 A_SpawnItemEx(PistolCasing,0,0,0,FRandom(2,4),0,FRandom(1,2),FRandom(-10,10),SXF_TRANSFERSCALE)
		Stop
	}
}