ACTOR CannonShotgun : BrutalWeapon
{
	Game Doom
   Weapon.Kickback 76
	Weapon.SelectionOrder 1600
	Weapon.AmmoGive1 4	
	Weapon.AmmoGive2 0
	Weapon.AmmoType1 "AmmoShell"
	Weapon.AmmoType2 "QSGAmmo"
	Weapon.AmmoUse1 0
	Weapon.AmmoUse2 0
	Weapon.SlotNumber 3
    +WEAPON.NOAUTOAIM
	+WEAPON.NOAUTOFIRE
	+FORCEXYBILLBOARD
	Inventory.PickupMessage "You got the fuckin' Quad Shotgun! (Slot 3)"
	Obituary "$OB_MPSSHOTGUN"
    Inventory.PickupSound "CLIPINSS"
	Scale 0.9
	Tag "Quad Shotgun"
	States
	{
	
	KickingFlash:
	QSR2 KLMNOOOOOOOONMLK 1
	stop
	
	AirKickingFlash:
	    QSR2 KLMNOOOOOOOOOONMLK 1 //18
	    stop
	
	 SlideKickingStart:
	    QSR2 KLMNO 1
	    QSR2 OO 17 //39 total
	    Stop

	 SlideKickingEnd:
	    QSR2 OOOOOONMLK 1 //10
	    Stop
		
		Inspect:
		TNT1 A 0 Offset(20,48) //A_FireCustomMissile("SmokeSpawner",0,0,0,5)
        TNT1 A 0 Offset(10,36) //A_FireCustomMissile("SmokeSpawner",0,0,0,5)
		QSGR ABCDEFFFEDCGHIJ 1 A_WeaponReady(WRF_ALLOWRELOAD)
        TNT1 A 0 A_PlaySound("weapons/sshoto")
		QSGF P 0 A_JumpIfInventory("HasUnloaded", 1, 3)
		QSGR W 1 Offset(5,37)
        QSGR W 1 Offset(3,35)
		QSGR W 1 Offset(2,34)
		QSGR W 1 Offset(1,33)
		QSGR W 1 Offset(0,32)
		QSGR W 18 A_WeaponReady(WRF_ALLOWRELOAD)
		QSGR XYZ 1 A_WeaponReady(WRF_ALLOWRELOAD)
		TNT1 A 0 A_PlaySound("weapons/sshotc")
		QSR2 FGHIJ 1 A_WeaponReady(WRF_ALLOWRELOAD)
		QSGF P 0 A_TakeInventory("Reloading",1)
		Goto Ready
		
    SelectAnimation:    
	Ready:
	Ready3:
	    QSGF P 1 A_WeaponReady(WRF_ALLOWRELOAD)
        QSGF P 0 A_JumpIfInventory("Kicking",1,"DoKick")
        QSGF P 0 A_JumpIfInventory("Taunting",1,"Taunt")
		QSGF P 0 A_JumpIfInventory("Salute1", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("Salute2", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("Reloading",1,"Reload")
		QSGF P 0 A_JumpIfInventory("Unloading",1,"Unload")
		QSGF P 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")	
		QSGF P 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		Loop
		
		
	CheckSprint:
		QSGP A 1 A_WeaponReady(WRF_NOFIRE)
		QSGF P 0 A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		QSGF P 0 A_JumpIfInventory("IsTacticalClass", 1, "StartSprint")
		Goto Ready
		
	StartSprint:
		QSGP A 1 A_WeaponReady(WRF_NOFIRE)
		QSGF P 0 A_Takeinventory("Zoomed",1)
		QSGF P 0 A_Takeinventory("ADSmode",1)
		QSGF P 0 A_ZoomFactor(1.0)
		QSGF P 0 A_JumpIfInventory("UsedStamina", 40, "StopSprintTired")
		
	Sprinting:	
		QSGP A 0 offset(-9,32) 
		QSGF P 0 offset(-9,32) A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		QSGF P 0 offset(-9,32) A_JumpIfInventory("UsedStamina", 100, "StopSprintTired")
		PLAY A 0 offset(-9,32) ACS_ExecuteAlways(852, 0, 0, 0, 0)//Makes player faster.
		QSGF P 0 offset(-9,32) A_JumpIfInventory("PowerStrength", 1, 2)
		QSGF P 0 offset(-9,32) A_GiveInventory("UsedStamina", 8)
		QSGF P 0 offset(-9,32)
		QSGS G 1 offset(-9,34) A_SetPitch(pitch -0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(-6,36) A_SetPitch(pitch -0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(-3,38) A_SetPitch(pitch -0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(0,38) A_SetPitch(pitch -0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(3,36) A_SetPitch(pitch -0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(6,34) A_SetPitch(pitch -0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(9,32) A_SetPitch(pitch -0.5, SPF_INTERPOLATE)
		QSGF P 0 offset(9,32) A_WeaponReady(WRF_NOBOB)
		QSGF P 0 A_JumpIfInventory("Kicking",1,"DoKick")
        QSGF P 0 A_JumpIfInventory("Taunting",1,"Taunt")
        QSGF P 0 A_JumpIfInventory("Reloading",1,"Reload")
		QSGF P 0 offset(-9,32) A_GiveInventory("UsedStamina", 8)
		QSGF P 0 offset(9,33) A_SpawnItemEx("FootStep", 0, 0, 2, 0, 0, -4)
		QSGS G 1 offset(9,34) A_SetPitch(pitch +0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(6,36) A_SetPitch(pitch +0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(3,38) A_SetPitch(pitch +0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(0,38) A_SetPitch(pitch +0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(-3,36) A_SetPitch(pitch +0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(-6,34) A_SetPitch(pitch +0.5, SPF_INTERPOLATE)
		QSGS G 1 offset(-9,32) A_SetPitch(pitch +0.5, SPF_INTERPOLATE)
		QSGF P 0 offset(-9,32) A_WeaponReady(WRF_NOBOB)
		QSGF P 0 offset(-9,32) A_JumpIfInventory("IsRunning", 1, "Sprinting")
		
		Goto StopSprint
	StopSprintTired:
		QSGS G 1
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		QSGF P 0 A_PlaySound("Tired", 2)
		QSGF P 0 A_TakeInventory("UsedStamina", 2)
		QSGF P 5 A_WeaponReady
		QSGF P 0 A_TakeInventory("UsedStamina", 2)
		QSGF P 5 A_WeaponReady
		QSGF P 0 A_TakeInventory("UsedStamina", 2)
		QSGF P 5 A_WeaponReady
		QSGF P 0 A_TakeInventory("UsedStamina", 2)
		QSGF P 5 A_WeaponReady
		QSGF P 0 A_TakeInventory("UsedStamina", 2)
		QSGF P 5 A_WeaponReady
		Goto Ready
	StopSprint:
		QSGS G 1
		QSGF P 0 A_JumpIfInventory("UsedStamina", 60, "StopSprintTired")
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		Goto Ready
		
	Deselect:
		QSGF P 0 A_Takeinventory("Zoomed",1)
        QSGF P 0 A_ZoomFactor(1.0)
		QSGF P 0 A_TakeInventory("TossGrenade", 1)
		QSGS FEDCBA 1
		TNT1 AAAAAAAAAAAAAAAAAA 0 A_Lower
		TNT1 A 1 A_Lower
		Wait
	Select:
		QSGF P 0 A_Giveinventory("GoSpecial",1)
		QSGF P 0 A_Takeinventory("FistsSelected",1)
		QSGF P 0 A_Takeinventory("SawSelected",1)
		QSGF P 0 A_Takeinventory("ShotgunSelected",1)
		QSGF P 0 A_Giveinventory("SSGSelected",1)
		QSGF P 0 A_Takeinventory("MinigunSelected",1)
		QSGF P 0 A_Takeinventory("PlasmaGunSelected",1)
		QSGF P 0 A_Takeinventory("RocketLauncherSelected",1)
		QSGF P 0 A_Takeinventory("GrenadeLauncherSelected",1)
		QSGF P 0 A_Takeinventory("BFGSelected",1)
		QSGF P 0 A_Takeinventory("BFG10kSelected",1)
		QSGF P 0 A_Takeinventory("RailGunSelected",1)
		QSGF P 0 A_Takeinventory("SubMachineGunSelected",1)
		QSGF P 0 A_Takeinventory("RevenantLauncherSelected",1)
		QSGF P 0 A_Takeinventory("LostSoulSelected",1)
		QSGF P 0 A_Takeinventory("FlameCannonSelected",1)
		QSGF P 0 A_Takeinventory("HasBarrel",1) 
		QSGF P 0 A_TakeInventory("TossGrenade", 1)
		TNT1 AAAAAAAAAAAAA 0 A_Raise
		QSGF P 0 A_GunFlash
		QSGS ABCDEF 1
		QSGF P 0 A_PlaySound("weapons/sshotc")
		Goto Ready
		

	NoAmmo:
		QSGF P 0
		QSGF P 0 A_ZoomFactor(1.0)
		QSGF P 0 A_Takeinventory("Zoomed",1)
		QSGF P 0 A_Takeinventory("ADSmode",1)
		TNT1 A 0 A_PlaySound("weapons/empty", 4)
		NoAmmo2:
		QSGF P 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")
	    QSGF P 0 A_JumpIfInventory("Taunting",1,"Taunt")
		QSGF P 0 A_JumpIfInventory("Salute1", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("Salute2", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		QSGF P 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
		QSGF P 0 A_JumpIfInventory("Kicking",1,"DoKick")
		QSGF P 3 A_WeaponReady(WRF_ALLOWRELOAD | WRF_NOFIRE)
		QSGF P 0 A_JumpIfInventory("Reloading",1,"Reload")
		TNT1 A 0 A_JumpIfInventory("NoAutoReload", 1, "NoAmmo2")
		QSGF P 0 A_JumpIfInventory("AmmoShell",2,"Reload")
		QSGF P 0 A_JumpIfInventory("FiredPrimary",1,"NoAmmo2")
		Goto Ready3
		
	 Fire:
		QSGF P 0 A_TakeInventory("Reloading",1)
		QSGF P 0 A_JumpIfInventory("QSGAlt",1,"AltFire")
		QSGF P 0 A_JumpIfInventory("QSGAmmo", 4, 1)
		Goto NoAmmo
		//QSGF P 0 A_JumpIfInventory("QSGAmmo", 2, 1)
		//Goto AltFire
		QSGF P 0 A_TakeInventory("QSGAmmo", 4)
		
		QSGF P 0 A_ZoomFactor(1.4)
		QSGF P 0 A_Recoil(5)
		QSGF P 0
		QSGF P 0 A_FireCustomMissile("DistantFireSoundSSG", random(-1,1), 0, 0, -12, 0, random(-1,1))
		SHO9 A 0 A_firebullets (0,0,1,40,"shotpuff",FBF_NORANDOM,300)
        SHO9 A 0 BRIGHT A_playsound("QSHFIRE", 5)
		TNT1 AAAAAAAAAAAAAAAAAA 0 A_FireCustomMissile("DecorativeTracer", random(-14,14), 0, 0, -12, 0, random(-7,7))
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 BRIGHT A_FireCustomMissile("ShotgunParticles", random(-19,19), 0, -1, 0, 0, random(-9,9))
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 BRIGHT A_FireCustomMissile("ShotgunParticles2", random(-19,19), 0, -1, 0, 0, random(-9,9))
		QSGF P 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
		QSGF B 1 BRIGHT
		QSGF P 0 A_FireBullets (10, 1, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		QSGF P 0 A_FireBullets (6, 3, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		QSGF P 0 A_FireBullets (15, 5, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		QSGF P 0 A_FireBullets (8, 6, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		
		TNT1 AA 0
		QSGF P 0 A_SetPitch(pitch-8, SPF_INTERPOLATE)
        QSGF C 1 BRIGHT
		TNT1 A 0 A_SetPitch(pitch-8, SPF_INTERPOLATE)
		QSGF P 0 A_ZoomFactor(1.00)
		//QSGF PA 0 A_FireCustomMissile("GunFireSmokE", 0, 0, 2, 0, 0, 0)
		//QSGF PA 0 A_FireCustomMissile("GunFireSmoke", 0, 0, -2, 0, 0, 0)
        QSGF P 0 A_TakeInventory("QSGAlt",1)
        QSGF P 0 A_TakeInventory("Reloading",1)
    
		QSGF EFFGGGGHIJKLMNOP 1 A_SetPitch(pitch+1, SPF_INTERPOLATE)
		QSGF PP 1 A_ReFire
		
		QSGF P 0 A_JumpIfInventory("IsNOTTacticalClass", 1, 15)//Tactical Mode takes more time
		QSGF AAA 0 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
		QSGF PPPP 1 A_WeaponReady(WRF_NOFIRE | WRF_NOBOB)
		QSGF P 1 A_JumpIfInventory("Reloading",1,"Reload")
		QSGF P 0 A_JumpIfInventory("Kicking",1,"DoKick")
        QSGF P 0 A_JumpIfInventory("Taunting",1,"Taunt")
		QSGF P 0 A_JumpIfInventory("Salute1", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("Salute2", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")	
		QSGF P 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		QSGF P 1 A_WeaponReady(WRF_NOFIRE | WRF_NOBOB)
		Goto NoAmmo2
		
		
		
		
		
	Reload:	
		QSGF P 0
		
		QSGF P 0 A_TakeInventory("Reloading",1)
		
		
		QSGF P 0 A_JumpIfInventory("QSGAlt", 1, "Reload2")//Check if still has a shell on 4 barrel
		
		
		QSGF P 0 A_JumpIfInventory("QSGAmmo", 4, "Inspect")//Check if still has a shell on 4 barrel
		
		
		QSGF P 0 A_JumpIfInventory("AmmoShell", 2, 1)//Check if has any ammo left to reload
		Goto Ready
		
		
		QSGF P 0 A_JumpIfInventory("AmmoShell", 4, 1)//Check if has ammo to reload 4 shells
		Goto Reload2
		
		
		//Reload 4 barrels
		
		TNT1 A 0 Offset(20,48) //A_FireCustomMissile("SmokeSpawner",0,0,0,5)
        TNT1 A 0 Offset(10,36) //A_FireCustomMissile("SmokeSpawner",0,0,0,5)
		QSGR ABCDEFFFEDCGHIJ 1
		QSGF P 0 A_GiveInventory ("Pumping", 1)
        
        TNT1 A 0 A_PlaySound("weapons/sshoto")
		QSGF P 0 A_JumpIfInventory("HasUnloaded", 1, 3)
		TNT1 AAAA 0 A_FireCustomMissile("SSGCaseSpawner",0,0,-10, -20)
		QSGR K 1 Offset(5,37)
        QSGR K 1 Offset(3,35)
		QSGR K 1 Offset(2,34)
		QSGR K 1 Offset(1,33)
		QSGR K 1 Offset(0,32)
		QSGR K 3
		QSGR L 2
		QSGR MN 1
		  QSGR O 1 A_playsound("weapons/sshotl")
		  QSGR O 1 Offset(1,33)
		  QSGF P 0 A_TakeInventory("AmmoShell", 2)
		  QSGF P 0 A_GiveInventory("QSGAmmo", 2)
		  QSGR P 1
		  QSGR P 1 Offset(1,33)
		  QSGR QR 1
		  QSGR S 1 Offset(4,36)
		  QSGR S 1 Offset(2,34)
		  QSGR SSSSSSSTUV 1 
		  QSR2 A 1 A_playsound("weapons/sshotl")
		  QSGF P 0 A_TakeInventory("AmmoShell", 2)
		  QSGF P 0 A_GiveInventory("QSGAmmo", 2)
		  QSR2 B 1 
		  QSR2 B 1 Offset(10,42)
		  QSR2 B 1 Offset(20,52)
		  QSR2 B 1 Offset(30,62)
		  QSR2 FGHIJ 1 Offset(0,32)
		  QSGF P 0 A_PlaySound("weapons/sshotc")
		  QSGR A 0 A_GiveInventory ("Pumping", 1)
			
		QSGF P 0 A_GiveInventory ("Pumping", 1)
		QSGF P 0 A_PlaySound("weapons/sshotc")
		QSGF P 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		QSGF P 0 A_GiveInventory ("Pumping", 1)
		QSGF P 0 A_TakeInventory("QSGAlt",1)
		QSGF P 0 A_ReFire
		QSGF P 1 Offset(3,35)
		QSGF P 1 Offset(2,34)
        Goto Ready
		

AltFire:
		QSGF P 0 A_TakeInventory("Reloading",1)
		QSGF P 0 A_JumpIfInventory("QSGAmmo", 2, 1)
		Goto NoAmmo
		QSGF P 0 A_JumpIfInventory("QSGAlt",1,"AltFire2")
		
		QSGF P 0 A_TakeInventory("QSGAmmo", 2)
		QSGF P 0 A_GiveInventory("QSGAlt",1)
		QSGF P 0 A_ZoomFactor(1.2)
		QSGF P 0 A_JumpIfInventory("PowerStrength", 1, 2)
		QSGF P 0 A_Recoil(3)
		QSGF P 0
		QSGF P 0 A_FireCustomMissile("DistantFireSoundSSG", random(-1,1), 0, 0, -12, 0, random(-1,1))
		SHO9 A 0 A_firebullets (0,0,1,40,"shotpuff",FBF_NORANDOM,300)
        SHO9 A 0 BRIGHT A_playsound("SSHFIRE", 5)
		TNT1 AAAAAAAAAAA 0 A_FireCustomMissile("DecorativeTracer", random(-10,10), 0, 0, -12, 0, random(-5,5))
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 BRIGHT A_FireCustomMissile("ShotgunParticles", random(-19,19), 0, -1, 0, 0, random(-9,9))
		TNT1 AAAAAAAAAAAAA 0 BRIGHT A_FireCustomMissile("ShotgunParticles2", random(-19,19), 0, -1, 0, 0, random(-9,9))
		QSGF P 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
		QSGF B 1 BRIGHT
		QSGF P 0 A_FireBullets (10, 1, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		QSGF P 0 A_FireBullets (6, 3, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		
		QSGF P 0 A_JumpIfInventory("IsNOTTacticalClass", 1, 3)//Tactical Mode deals extra damage
		SHTN A 0 A_FireBullets (11, 3, 10, 13, "ShotgunPuff2", FBF_NORANDOM)
		QSGF P 0 A_SetPitch(pitch-8, SPF_INTERPOLATE)
		TNT1 AA 0
		QSGF P 0 A_SetPitch(pitch-11, SPF_INTERPOLATE)
		TNT1 A 0 Offset(0,36)
        QSGF B 1 BRIGHT
		TNT1 A 0 Offset(0,32)
		QSGF P 0 A_ZoomFactor(1.00)
		//QSGF PA 0 A_FireCustomMissile("GunFireSmokE", 0, 0, 2, 0, 0, 0)
		//QSGF PA 0 A_FireCustomMissile("GunFireSmoke", 0, 0, -2, 0, 0, 0)
        QSGF P 0 A_TakeInventory("Reloading",1)
    
		QSGF DEEHHHIKLMO 1 A_SetPitch(pitch+1, SPF_INTERPOLATE)
		
		QSGF P 0 A_JumpIfInventory("IsNOTTacticalClass", 1, 15)//Tactical Mode takes more time
		QSGF PPPP 1 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
		QSGF PP 1 A_WeaponReady(WRF_NOFIRE | WRF_NOBOB)
		QSGF PPP 1 A_JumpIfInventory("Reloading",1,"Reload")
		QSGF P 0 A_JumpIfInventory("Kicking",1,"DoKick")
        QSGF P 0 A_JumpIfInventory("Taunting",1,"Taunt")
		QSGF P 0 A_JumpIfInventory("Salute1", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("Salute2", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")	
		QSGF P 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		QSGF P 1 A_WeaponReady(WRF_NOFIRE | WRF_NOBOB)
        Goto Ready

	AltFire2:
		QSGF P 0 A_TakeInventory("Reloading",1)
		QSGF P 0 A_JumpIfInventory("QSGAmmo", 2, 1)
		Goto NoAmmo

		
		QSGF P 0 A_TakeInventory("QSGAmmo", 2)
		QSGF P 0 A_ZoomFactor(1.2)
		QSGF P 0 A_JumpIfInventory("PowerStrength", 1, 2)
		QSGF P 0 A_Recoil(3)
		QSGF P 0
		QSGF P 0 A_FireCustomMissile("DistantFireSoundSSG", random(-1,1), 0, 0, -12, 0, random(-1,1))
		SHO9 A 0 A_firebullets (0,0,1,40,"shotpuff",FBF_NORANDOM,300)
        SHO9 A 0 BRIGHT A_playsound("SSHFIRE", 5)
		TNT1 AAAAAAAAAAA 0 A_FireCustomMissile("DecorativeTracer", random(-10,10), 0, 0, -12, 0, random(-5,5))
		TNT1 AAAAAAAAAAAAAAAAAAAA 0 BRIGHT A_FireCustomMissile("ShotgunParticles", random(-19,19), 0, -1, 0, 0, random(-9,9))
		TNT1 AAAAAAAAAAAAA 0 BRIGHT A_FireCustomMissile("ShotgunParticles2", random(-19,19), 0, -1, 0, 0, random(-9,9))
		QSGF P 0 A_SpawnItemEx("PlayerMuzzle2",30,5,27)
		QSGF A 1 BRIGHT
		QSGF P 0 A_FireBullets (10, 1, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		QSGF P 0 A_FireBullets (6, 3, 9, 13, "ShotgunPuff", FBF_NORANDOM)
		
		QSGF P 0 A_JumpIfInventory("IsNOTTacticalClass", 1, 3)//Tactical Mode deals extra damage
		SHTN A 0 A_FireBullets (11, 3, 10, 13, "ShotgunPuff2", FBF_NORANDOM)
		QSGF P 0 A_SetPitch(pitch-8, SPF_INTERPOLATE)
		TNT1 AA 0
		QSGF P 0 A_SetPitch(pitch-11, SPF_INTERPOLATE)
		TNT1 A 0 Offset(0,36)
        QSGF A 1 BRIGHT
		TNT1 A 0 Offset(0,32)
		QSGF P 0 A_ZoomFactor(1.00)
        QSGF P 0 A_TakeInventory("QSGAlt",1)
        QSGF P 0 A_TakeInventory("Reloading",1)
    
		QSGF DEEHHHIKLMO 1 A_SetPitch(pitch+1, SPF_INTERPOLATE)
		
		QSGF P 0 A_JumpIfInventory("IsNOTTacticalClass", 1, 15)//Tactical Mode takes more time
		QSGF PP 1 A_SetPitch(pitch+0.5, SPF_INTERPOLATE)
		QSGF PP 1 A_WeaponReady(WRF_NOFIRE | WRF_NOBOB)
		QSGF PPP 1 A_JumpIfInventory("Reloading",1,"Reload")
		QSGF P 0 A_JumpIfInventory("Kicking",1,"DoKick")
        QSGF P 0 A_JumpIfInventory("Taunting",1,"Taunt")
		QSGF P 0 A_JumpIfInventory("Salute1", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("Salute2", 1, "Salute")
		QSGF P 0 A_JumpIfInventory("TossGrenade",1,"TossGrenade")	
		QSGF P 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		QSGF P 1 A_WeaponReady(WRF_NOFIRE | WRF_NOBOB)
		QSGF P 0 A_TakeInventory("QSGAlt", 1)
		TNT1 A 0 A_JumpIfInventory("NoAutoReload", 1, "NoAmmo")
		Goto Reload
		TNT1 AA 0
		Goto Ready
        
	Reload2:
	    QSGF P 0 A_JumpIfInventory("AmmoShell", 1, 1)
		Goto NoAmmo
		QSGF P 0 A_TakeInventory("Reloading",1)
		QSGF P 0 A_JumpIfInventory("AmmoShell",2,1)
		Goto NoAmmo
		QSGF P 0 A_TakeInventory("QSGAlt",1)
		QSGR ABCDEFFFEDCGHIJ 1
        TNT1 A 0 A_PlaySound("weapons/sshoto")
		QSGF PA 0 A_FireCustomMissile("SSGCaseSpawner",0,0,-10, -20)
		QSGR S 1 Offset(2,34)
		QSGR S 1 Offset(1,33)
		QSGR S 1 Offset(0,32)
		QSGR S 3
		QSGR TUV 1
		QSR2 A 1 A_playsound("weapons/sshotl")
		QSR2 B 1 
		QSR2 B 1 Offset(10,42)
		QSR2 B 1 Offset(20,52)
		QSR2 B 1 Offset(30,62)
        QSR2 FGHIJ 1 Offset(0,32)
		QSGF P 0 A_GiveInventory ("Pumping", 1)
        QSGF P 0 A_PlaySound("weapons/sshotc")
		QSGF P 0 A_TakeInventory("AmmoShell", 2)
		QSGF P 0 A_GiveInventory("QSGAmmo", 2)
		QSGF P 0 A_ReFire
		QSGF P 2
	  Goto Ready

	Spawn:
		QSG2 A -1
		Stop
	
    
		
	
	Unload:
		QSGF P 1 A_WeaponReady
		QSGF P 0 A_ZoomFactor(1.0)
		QSGF P 0 A_Takeinventory("Unloading",1)
		QSGF P 0 A_Takeinventory("ADSmode",1)
		QSGF P 0 A_Takeinventory("Zoomed",1)
        QSGF P 0 A_JumpIfInventory("QSGAmmo",1,3)
        Goto Ready
        TNT1 AAA 0
		QSGF P 0 A_Takeinventory("Zoomed",1)
		QSGF P 0 A_GiveInventory ("Pumping", 1)
		QSGF P 0 A_Takeinventory("Unloading",1)
		
	RemoveBullets:
		TNT1 AAAA 0
		QSGF P 0 A_JumpIfInventory("QSGAmmo",1,3)
		Goto FinishUnload
        TNT1 AAAAAA 0
		QSGF P 0 A_Takeinventory("QSGAmmo",1)
		QSGF P 0 A_Giveinventory("AmmoShell",1)
		Goto RemoveBullets
	
	FInishUnload:
		QSGR A 2 Offset(20,48) //A_FireCustomMissile("SmokeSpawner",0,0,0,5)
        QSGR A 2 Offset(10,36) //A_FireCustomMissile("SmokeSpawner",0,0,0,5)
		QSGR ABCDE 1
		SHTZ FG 1
		TNT1 A 0 A_PlaySound("weapons/sshoto")
		QSGR IJ 1
        QSGR K 2
		TNT1 A 20
		QSGF P 0 A_GiveInventory("HasUnloaded", 1)
		QSGF P 0 A_Takeinventory("Unloading",1)
		QSR2 F 2 Offset(20,46)
		QSR2 G 2 Offset(1,33)
        
		QSGF P 0 A_GiveInventory ("Pumping", 1)
        QSGF P 0 A_PlaySound("weapons/sshotc")
        QSR2 HI 1
		QSR2 J 1
		Goto Ready
	}
}

ACTOR QSGAmmo : Ammo
{
   Inventory.Amount 0
   Inventory.MaxAmount 4
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 4
   Inventory.Icon "QSG2A0"
}

//Actor SSGWeaponSpawner : RandomSpawner replaces SuperShotgun
//{
//	DropItem "SSG" 256 1
//	DropItem "CannonShotgun" 256 1
//	DropItem "AssaultShotgun" 256 1
//}

Actor QSGalt: Inventory
{
inventory.maxamount 1
}