ACTOR QSGspawner: CustomInventory  
{
 scale 0.8
 radius 24
 height 24
 +THRUACTORS +FORCEXYBILLBOARD
 Inventory.PickupSound "CLIPINSS"
 Inventory.PickupMessage "You got the fuckin' Quad Shotgun! (Slot 3)"
 Mass 1
    States
    {

	 Spawn:
		FRZR A 0
		QSG2 A 1
		TNT1 A 0 A_ChangeFlag("THRUACTORS", 0)
		TNT1 A 0 A_SpawnItem("FakeQSGSprite")
		Loop
	Pickup:
	    TNT1 A 0
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "Purist")
		TNT1 A 0 A_GiveInventory("CannonShotgun", 1)
		TNT1 A 0 A_GiveInventory("AmmoShell", 12)
		TNT1 A 0 A_GiveInventory("QSGAmmo", 4)
		Stop
	Purist:
	    TNT1 A 0 A_GiveInventory("ClassicSSG", 1)
		TNT1 A 0 A_GiveInventory("AmmoShell", 12)
		Stop
    }
}

ACTOR FakeQSGSprite: RifleSpawner
{
 Scale 0.8
 +NOGRAVITY
 +FLOAT +NOCLIP +NOINTERACTION
 VisibleToPlayerClass BDoomer, Doomer2, TacticalDoomer
 States
    {

	 Spawn:
		QSG2 A 0
		QSG2 A 1
		Stop
    }
}

actor SSGSpawnerReplacer: BasicWeaponPickup Replaces  SuperShotgun
{
    States
    {

	 Spawn:
		SGN2 A 0
		MARN A 0 ACS_NamedExecuteAlways("BDDisableNewGuns", 0, 0, 0, 0)//Check if advanced decorations are disabled.
		SGN2 A 2
		TNT1 A 0 A_Jump(48, "Spawn2")
		TNT1 A 0 A_Jump(64, "Spawn3")
		
	Vanilla:	
	Spawn1:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("SSGSpawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 1
		TNT1 A -1
		Stop
	
	 Spawn2:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("AssaultShotgun",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 1
		TNT1 A -1
		Stop
		
	Spawn3:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx ("QSGspawner",0,0,0,0,0,0,0,SXF_NOCHECKPOSITION | SXF_TRANSFERAMBUSHFLAG ,0)
		TNT1 A 1
		TNT1 A -1
		Stop
     }
}

