//// --------------------------------------------------------------------------
//
// Revolver
//ready+12
// --------------------------------------------------------------------------

ACTOR Revolver : BrutalWeapon
{
	Weapon.AmmoUse1 0
	Weapon.AmmoGive1 0
	Weapon.AmmoUse2 0
	Weapon.AmmoGive2 0
	Weapon.AmmoType1 "50Ammo"
	Weapon.AmmoType2 "RevolverAmmo"
	Weapon.Kickback 70
	Obituary "%o was shot down by %k's revolver."
    AttackSound "None"
    Inventory.PickupSound "CLIPIN"
	Inventory.Pickupmessage "$GOTREVOLVER"
	+WEAPON.WIMPY_WEAPON
    +WEAPON.NOAUTOAIM
    +FORCEXYBILLBOARD
    +WEAPON.NOALERT
    +WEAPON.NOAUTOFIRE
    Scale 0.4
	 tag "Kriegerhand  .500 S&W"
	States
	{    
	PickUp:
	TNT1 A 0
	TNT1 A 0 A_Playsound("PICKUPONELINER")
	TNT1 A 0
	Stop

	INSPECT:	
		BADF A 0
		BADF A 0 A_TakeInventory("neverfoundrevolver", 1)
		BADF A 0 A_TakeInventory("JustStartedGame", 1)
		RVIN A 0 A_PLAYSOUND("Weapons/Revolver/Click1",1)
		TNT1 A 0 A_InspectReady
		RVIN ABCDE 1 A_InspectReady
		RVIN EFGHHIJJJJJJJJJ 1 A_InspectReady
		RVIN KLMNOPQ 1 A_InspectReady
		TNT1 A 0 A_InspectReady
		RVIN A 0 A_PlaySound("Weapons/Revolver/Open", 1)
		RVIN A 0 A_overlay(3,"Tiltright4")
		RVIN RST 1 A_InspectReady
		RVIN UVWXYZ 1 A_InspectReady
		TNT1 A 0 A_InspectReady
		TNT1 A 0 a_GIVEINVENTORY("REVOLVERAMMO",6)
		RVIN ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 1 A_InspectReady
		RV1N ABC 1 A_InspectReady
		RV1N D 1 A_SETPITCH(PITCH+1)
		RV1N E 1 A_SETANGLE(ANGLE-1)
		RV1N F 1 A_SETPITCH(PITCH+1)
		RV1N G 1 A_SETANGLE(ANGLE-1)
		RV1N H 1 A_SETPITCH(PITCH+1)
		RV1N I 1 A_SETANGLE(ANGLE-1)
		RV1N JKL 1 A_SETANGLE(ANGLE+1)
		RV1N MNO 1 A_SETPITCH(PITCH-1)
		TNT1 A 0 A_InspectReady
		RVIN A 0 A_overlay(3,"Tiltleft4")
		RV1N PQRS 1 A_InspectReady
		RVIN A 0 A_PlaySoundEx("Weapons/Revolver/Close", 1)
		RV1N T 1 A_QuakeEx(1, 1, 1, 3, 0, 64, "", 0, 0, 0, 0, 0, 0, 1)
		RV1N UVW 1 A_InspectReady
		RV1N XYZ 1 A_InspectReady
		TNT1 A 0 
		RV1S ABCDEFGHI 1 A_InspectReady
		RVIN A 0 A_PLAYSOUND("REVODRY",1)
		RV1S JKLMNOPQ 1 A_InspectReady
		GOTO READY3
		
		Tiltleft4:
		TNT1 AAAAAAAA 1 A_setroll(roll+0.5)
		Stop
		
		Tiltright4:
		TNT1 AAAAAAAA 1 A_setroll(roll-0.5)
		Stop
	
	Steady:
	TNT1 A 1
	Goto Ready3
	
	Ready:
	SelectAnimation:
	TNT1 A 0 A_JumpIfInventory("ExecuteDownedEnemy", 1, "DoExecution")
	TNT1 A 0
		//Inspect check
		TNT1 A 0 a_jumpif(GetCVAR("weaponinspect") == 1,2)
		TNT1 A 0 A_JumpIfInventory("neverfoundrevolver",1,"Inspect")
		//
	TNT1 A 0 A_JumpIfInventory("GoFatality", 1, "Steady")
    TNT1 A 0 A_PlaySound("revolver/draw")
	R4V1 UTSRR 1
	Ready3:
        R1V1 E 0 A_JumpIfInventory("GoFatality", 1, "Steady")
        R1V1 E 0 A_JumpIfInventory("Kicking",1,"DOKICKREVOLVER")
		R1V1 E 1 A_WeaponReadyLit
		Goto Ready3
		
    Ready2:
		R1V1 E 1 A_WeaponReadyLit
        R1V1 E 0 A_JumpIfInventory("Kicking",1,"DOKICKREVOLVER")
		Loop
		
	Deselect:
		TNT1 A 0 A_JumpIfInventory("weaponbroke", 1, "DeselectCONTINUE")
        R4V1 
		RSTU 1
		R4V1 U 1 OFFSET(0,36)
   DESELECTCONTINUE:
		TNT1 A 0 A_TakeInventory("revolverselected", 1)
		TNT1 A 0 A_TakeInventory("throwtoken", 1)
		TNT1 A 0 A_TakeInventory("slashtoken", 1)
		TNT1 A 0 A_TakeInventory("flaretoken",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_Lower
	Wait
	
	goingtoaction:
		R4V1 RSTU 1
		R4V1 U 1 OFFSET(0,36)
		TNT1 A 0 A_TakeInventory("throwtoken", 1)
		TNT1 A 0 A_TakeInventory("slashtoken", 1)
		TNT1 A 0 A_TakeInventory("flaretoken",1)
		TNT1 A 0 A_TakeInventory("TossGrenade", 1)
		TNT1 A 0 A_JumpIfInventory("weargasmask", 1, "wearanimation")
		TNT1 A 0 A_JumpIfInventory("removegasmask", 1, "removeanimation")
		TNT1 A 0 A_JumpIfInventory("battledrugtoken",1,"drugshot")
		TNT1 A 0 A_JumpIfInventory("BANDAGETOKEN",1,"BANDAGE")
		goto repair

	Select: 
		TNT1 A 0  A_Overlay(-10,"FirstPersonLegsStand")
		TNT1 A 0 {if(GetCVAR("bd_SmartCrosshairs") == 1){A_SetCrosshair(GetCVAR("RevolverCrosshair"));}else{A_SetCrosshair(0);}}		
		TNT1 A 0 a_removelight(1)
		TNT1 A 0 A_removelight(2)	
		TNT1 A 0 SetPlayerProperty(0,0,2)
		TNT1 A 0 A_SetRoll(0)
		TNT1 A 0 A_Takeinventory("StartDualWield",1)
		TNT1 A 0 A_Giveinventory("GoSpecial",1)
		TNT1 A 0 ACS_NAMEDEXECUTE("WEAPONSELECT",0)
	TNT1 A 0
	TNT1 A 0 A_Raise
	TNT1 AAAAAAAAAAAAAAAAAAA 0 A_Raise
	Goto SelectAnimation
	
    Fire:
        TNT1 A 0 A_JumpIfInventory("RevolverAmmo",1,2)
		TNT1 A 0 A_PlaySound("REVODRY")
        Goto Reload
        TNT1 AAAA 0
		
		//DURABILITY CHECK
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 4)
		PIST F 0 A_Takeinventory("RevolverDurability",1)
		PIST F 0 A_JumpIfInventory("RevolverDurability",30, 2)
		PIST F 0 A_Jump(127,"Firejammed","Firejammed", "Misfire")
		///
		
		RIFG A 0 A_JumpIfInventory("norecoil", 1, "firenorecoil")
		R4V1 A 1 A_AlertMonsters
		TNT1 A 0 A_PlaySound("revolver/fire",1)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		R4V1 B 1 A_FireProjectile("revolverTracer", frandom(-0.3,0.3), 0, 0,2)
		SHTN A 0 A_SpawnItemEx("PlayerMuzzle1",30,5,30)
		TNT1 A 0 A_overlay(4,"SpendRound",false)
		SHTN A 0 A_Quake(2, 22, 0, 400, "")
		R4V1 A 0 A_SetPitch(pitch-5)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		
		R4V1 CD 1 A_SetPitch(pitch-2)
		TNT1 AA 0 A_SetANgle(angle+random(-3, 3))
		R4V1 A 0 A_ZoomFactor(0.9)
        R4V1 EF 1 A_SetPitch(pitch-2)
		R4V1 G 1 
		R4V1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("RevolverAmmo",1)
        R4V1 HH 1 A_SetPitch(pitch+2)
		R4V1 IJKLMNOPQ 1 A_SetPitch(pitch+0.5)
		R1V1 E 5
		R1V1 E 6 A_WeaponReady(1)
		//DURABILITY CHECK 2
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 2)
		PIST F 0 A_JumpIfInventory("RevolverDurability",1, 1)
		goto weaponbreak
		////
		TNT1 A 0
		Goto Ready3
		
		
		FireJammed:
		R4V1 A 1 A_AlertMonsters
		TNT1 A 0 A_PlaySound("revolver/fire",1)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		R4V1 B 1 A_FireProjectile("revolverTracer", frandom(-2.5,2.5), 0)
		SHTN A 0 A_SpawnItemEx("PlayerMuzzle1",30,5,30)
		TNT1 A 0 A_overlay(4,"SpendRound",false)
		
		SHTN A 0 A_Quake(5, 20, 0, 400, "")
		R4V1 A 0 A_SetPitch(pitch-6)
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		
		R4V1 CD 1 A_SetPitch(pitch-3)
		TNT1 AA 0 A_SetANgle(angle+random(-8, 8))
		R4V1 A 0 A_ZoomFactor(0.9)
        R4V1 EF 1 A_SetPitch(pitch-3)
		R4V1 G 1 
		R4V1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("RevolverAmmo",1)
        R4V1 HH 1 A_SetPitch(pitch+3)
		R4V1 IJKLMNOPQ 1 A_SetPitch(pitch+0.5)
		R1V1 E 5
		R1V1 E 6 A_WeaponReady(1)
		Goto Ready3
	
	
	///
	///FIRE NO RECOIL
	///
	
	FIRENORECOIL:
		TNT1 AAAA 0
		R4V1 A 1 A_AlertMonsters
		TNT1 A 0 A_PlaySound("revolver/fire",1)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		R4V1 B 1 A_FireProjectile("revolverTracer", frandom(-0.3,0.3), 0, 0, 2)
		SHTN A 0 A_SpawnItemEx("PlayerMuzzle1",30,5,30)
		TNT1 A 0 A_overlay(4,"SpendRound",false)
		
		SHTN A 0 A_Quake(2, 22, 0, 400, "")
		R4V1 A 0 
		TNT1 A 0 A_FireCustomMissile("ShakeYourAss", 0, 0, 0, 0)
		TNT1 A 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
		R4V1 A 0 
		R4V1 CD 1 
		TNT1 AA 0 A_SetANgle(angle+random(-1, 1))
		R4V1 A 0 A_ZoomFactor(0.9)
        R4V1 E 1 
		R4V1 FG 1 
		R4V1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("RevolverAmmo",1)
        R4V1 H 1
		R4V1 HIJKLMNOPQ 1
		R1V1 E 6 A_WeaponReady(1)
		Goto Ready3
	
		
  AltFire:
        TNT1 A 0 A_JumpIfInventory("RevolverAmmo",1,2)
        Goto Reload
		
		//DURABILITY CHECK
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 4)
		PIST F 0 A_Takeinventory("RevolverDurability",1)
		PIST F 0 A_JumpIfInventory("RevolverDurability",30, 2)
		PIST F 0 A_Jump(50,"Misfire2")
		///
		
		RIFG A 0 A_JumpIfInventory("norecoil", 1, "ALTNORECOIL")
      R5V1 AB 1 A_AlertMonsters
      TNT1 A 0 A_PlaySound("revolver/fire",1)
      R5V1 C 1 A_FireProjectile("revolverTracer", frandom(-3.5,3.5), 0,0,0,0,frandom(-1,1))
	  SHTN A 0 A_SpawnItemEx("PlayerMuzzle1",30,5,30)
	  TNT1 A 0 A_overlay(4,"SpendRound",false)
	  R5V1 D 0 A_SetPitch(pitch-4)
	  R5V1 D 1 A_SetPitch(pitch-4)
      TNT1 J 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
	  
	  SHTN A 0 A_Quake(2, 20, 0, 400, "")
		R4V1 EE 1 a_setpitch(pitch-3)
		TNT1 AA 0 A_SetANgle(angle+random(-3, 3))
		R4V1 A 0 A_ZoomFactor(0.9)
        R4V1 FF 1 A_SetPitch(pitch+2.5)
		R4V1 A 0 A_ZoomFactor(1.0)
        R5V1 GG 1 A_SetPitch(pitch+2.5)
	    TNT1 A 0 A_Takeinventory("RevolverAmmo",1)
	    REVF M 0 Offset(0,46) A_Refire
		R1V1 D 0 Offset(0,44)
		R1V1 D 0 Offset(0,41)
		R1V1 D 0 Offset(0,37)
		R1V1 D 0 Offset(0,35)
		R1V1 D 0 Offset(0,34)
		R1V1 D 0 Offset(0,33)
      R5V1 G 7 A_WeaponReady(1)
	  
	  //DURABILITY CHECK 2
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 2)
		PIST F 0 A_JumpIfInventory("RevolverDurability",1, 1)
		goto weaponbreak
	 ////
	 
	  TNT1 A 0
      Goto Ready3
		TNT1 A 0 A_JumpIfInventory("RevolverAmmo",1,2)
        Goto Reload
	
	///
	/// ALT NO RECOIL
	///
	
	ALTNORECOIL:
      R5V1 AB 1 A_AlertMonsters
      TNT1 A 0 A_PlaySound("revolver/fire",1)
      R5V1 C 1 A_FireProjectile("revolverTracer", frandom(-3.5,3.5), 0,0,0,0,frandom(-1,1))
	  SHTN A 0 A_SpawnItemEx("PlayerMuzzle1",30,5,30)
	  R5V1 D 1 
      TNT1 J 0 A_FireCustomMissile("YellowFlareSpawn",0,0,0,0)
	  
	  SHTN A 0 A_Quake(2, 20, 0, 400, "")
		R4V1 EE 1 
		TNT1 AA 0 A_SetANgle(angle+random(-1, 1))
		R4V1 A 0 A_ZoomFactor(0.9)
        R4V1 F 1 
		R4V1 F 1 
		R4V1 A 0 A_ZoomFactor(1.0)
        R5V1 G 1 
      R5V1 G 1
	    TNT1 A 0 A_Takeinventory("RevolverAmmo",1)
	    REVF M 0 Offset(0,46) A_Refire
		R1V1 D 0 Offset(0,44)
		R1V1 D 0 Offset(0,41)
		R1V1 D 0 Offset(0,37)
		R1V1 D 0 Offset(0,35)
		R1V1 D 0 Offset(0,34)
		R1V1 D 0 Offset(0,33)
      R5V1 G 7 A_WeaponReady(1)
      Goto Ready3
TNT1 A 0 A_JumpIfInventory("RevolverAmmo",1,2)
        Goto Reload

	WeaponCheckOverlay:
		TNT1 A 5
		PISA D 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, 1)
		Stop
	WeaponCheck2:
		TNT1 A 1
		PISA D 0 ACS_NamedExecutealways("revolverdurabilitycheck", 0)
		PISA D 0 ACS_NamedExecutealways("revolvermagcheck", 0)
		PISA D 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, "WeaponCheck2")
		stop	
	NoAmmoUnload:
	    PISA D 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, 1)
		goto Noammo
		TNT1 A 0 A_Overlay(98,"WeaponCheckOverlay",false)
	NoAmmo:
		TNT1 A 0 A_PlaySound("REVODRY")
	Noammo2:
		R4V1 N 15
		PISA D 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, "Noammo2")
		Goto Ready3
	
    Reload:
		R4V1 N 5 A_WeaponReady
		TNT1 A 0 A_Takeinventory("Reloading",1)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		PIST F 0 A_JumpIfInventory("REPAIRMODE",1,"KITREPAIR")
		
		TNT1 A 0 A_JumpIfInventory("RevolverAmmo",6,"ready3")
        TNT1 A 0 A_JumpIfInventory("50AMMO",1,3)
        Goto NoAmmo
        TNT1 AAA 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_GiveInventory ("Pumping", 1)
		TNT1 A 0 A_Takeinventory("Reloading",1)
        R6V1 ABCDEFGHI 1 a_setangle(angle-0.2)
		TNT1 A 0 a_gunflash("tiltrevoload")
		R6V1 J 1 
        TNT1 A 0 A_PlaySoundEx("Weapons/Revolver/Open", "Auto")
		R6V1 MN 1 a_setangle(angle+1)
		R6V1 OPQRST 1 
		TNT1 A 0 A_PlaySoundEx("Weapons/Revolver/Click2", "Auto")

		
	Spentcasings:
		TNT1 A 0 A_jumpifinventory("spentrounds",6,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",5,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",4,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",3,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",2,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",1,6)
		goto SpentCasings2
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)		
	SpentCasings2:
		TNT1 A 0 A_overlay (5,"removespentrounds", false)
		R6V1 UVWXYZ 1 a_setpitch(pitch+0.3)
		REVR IJ 1
		
		InsertingBullets:
		SHTN A 0
		SHTN A 0 A_JumpIfInventory("50ammo",1,2)
        Goto Continuereload
		SHTN A 0
		SSHR A 0 A_TakeInventory("Reloading", 1)
        SHTN A 0 A_JumpIfInventory("Revolverammo",6,"Continuereload")
        SHTN A 0 A_Giveinventory("Revolverammo",1)
		SHTN A 0 A_Takeinventory("50ammo",1)
        
	InsertBulletAnimation:	
		SHTN A 0
		SHTN A 0 A_jumpifinventory("isdoomguy",1,"fastinsert")
		REVR ABC 1 a_SETPITCH(PITCH+0.5)
		SHTN A 0 A_PlaySound("REVOLOAD")
        REVR D 2 
        REVR EFG 2 A_WeaponReady(WRF_NOBOB)
		REVR H 1 a_SETPITCH(PITCH-1.5)
		TNT1 A 0 a_jump(256,"insertcontinue")
		
	fastinsert:
		REVR ABC 1 a_SETPITCH(PITCH+0.5)
        REVR D 1 A_PlaySound("REVOLOAD")
        REVR EFG 1 A_WeaponReady(WRF_NOBOB)
		REVR H 1 a_SETPITCH(PITCH-1.5)
		TNT1 A 0 a_jump(256,"insertcontinue")
		
	insertcontinue:
        SHTN A 0 A_JumpIfInventory("Kicking",1,"DOKICKREVOLVERReloading")
		SHTN A 0 A_JumpIfInventory("IsRunning",1,"CheckSprint")
		SHTN A 0 A_JumpIfInventory("RevolverAmmo",6,"FinishedInserting")
        Goto InsertingBullets
		
	FinishedInserting:
		SHTN A 0 A_Takeinventory("Reloading",1)
		SHTN A 0 A_Takeinventory("Reloading",1)
		
	  Continuereload:
	    TNT1 A 0 A_PlaySoundEx("CYLNSPIN", "Auto")
		TNT1 A 0 
        R7V1 ABC 1
		R7V1 DEF 1 A_setroll(roll+0.5)
		R7V1 GHIJKLM 1 A_setroll(roll+0.5)
		TNT1 A 0 A_PlaySoundEx("Weapons/Revolver/Close", "Auto")
		TNT1 A 0 A_QuakeEx(1, 1, 1, 1, 0, 64, "", 0, 0, 0, 0, 0, 0, 1)
		R7V1 NOPQR 1 A_setroll(roll-1)
		R7V1 STUVWXYZ 1
		TNT1 A 0 A_TakeInventory("revolverunloaded", 1)
		Goto ready3
	
	Tiltrevoload:
		TNT1 AAAAAA 1 A_setroll(roll-1)
		TNT1 AAAAAAA 1
		TNT1 AAAAAA 1 A_setroll(roll+1)
		Stop
		
 	Spawn:
		TNT1 A 0
		TNT1 A 0 
		RVIC A -1
		Stop
		
	CheckSprint:
		R1V1 E 1 A_WeaponReady(WRF_NOFIRE)
		R1V1 D 0 A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		R1V1 D 0 A_JumpIfInventory("IsTacticalClass", 1, "StartSprint")
		Goto Ready3
		
	CheckSprint2:
		R1V1 E 1 A_WeaponReady(WRF_NOFIRE)
		R1V1 D 0 A_JumpIfInventory("IsStandingStill", 1, "Ready3")
		R1V1 D 0 A_JumpIfInventory("IsTacticalClass", 1, "StartSprint")
		Goto Ready2	
		
	StartSprint:
		//R4V1 R 1 A_WeaponReady(WRF_NOFIRE)
		R7V1 M 0 A_Takeinventory("Zoomed",1)
		R6V1 E 0 A_Takeinventory("ADSmode",1)
		R6V1 E 0 A_ZoomFactor(1.0)
		R4V1 STU 1
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 70, "Trip")
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 1400, "Trip")
		
	Sprinting:	
		R6V1 E 0 offset(-9,32) 
		R6V1 E 0 offset(-9,32) A_JumpIfInventory("IsStandingStill", 1, "Ready3")
				TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 100, "StopSprintTired")
		R6V1 E 0 offset(-9,32) A_JumpIfInventory("UsedStamina", 2000, "StopSprintTired")
		PLAY A 0 offset(-9,32) ACS_ExecuteAlways(852, 0, 0, 0, 0)//Makes player faster.
		R6V1 E 0 offset(-9,32) A_JumpIfInventory("Powerstrength2", 1, 2)
		R6V1 E 0 offset(-9,32) A_GiveInventory("UsedStamina", 7)
		R6V1 E 0 offset(-9,32)
		R4V1 V 1 offset(-9,34) A_SetPitch(pitch -0.5)
		R4V1 V 1 offset(-6,36) A_SetPitch(pitch -0.5)
		R4V1 V 1 offset(-3,38) A_SetPitch(pitch -0.5)
		R4V1 V 1 offset(0,38) A_SetPitch(pitch -0.5)
		R4V1 V 1 offset(3,36) A_SetPitch(pitch -0.5)
		R4V1 V 1 offset(6,34) A_SetPitch(pitch -0.5)
		R4V1 V 1 offset(9,32) A_SetPitch(pitch -0.5)
		R7V1 N 0 offset(9,32) A_WeaponReady(WRF_NOBOB)
		R7V1 N 0 A_JumpIfInventory("Kicking",1,"DOKICKREVOLVER")
        R7V1 N 0 A_JumpIfInventory("Taunting",1,"Taunt")
        R6V1 E 0 
		R6V1 E 0 offset(-9,32) A_GiveInventory("UsedStamina", 6)
		R6V1 E 0 offset(9,33) A_SpawnItemEx("FootStep", 0, 0, 2, 0, 0, -4)
		R4V1 V 1 offset(9,34) A_SetPitch(pitch +0.5)
		R4V1 V 1 offset(6,36) A_SetPitch(pitch +0.5)
		R4V1 V 1 offset(3,38) A_SetPitch(pitch +0.5)
		R4V1 V 1 offset(0,38) A_SetPitch(pitch +0.5)
		R4V1 V 1 offset(-3,36) A_SetPitch(pitch +0.5)
		R4V1 V 1 offset(-6,34) A_SetPitch(pitch +0.5)
		R4V1 V 1 offset(-9,32) A_SetPitch(pitch +0.5)
		R6V1 E 0 offset(-9,32) A_WeaponReady(WRF_NOBOB)
		R6V1 E 0 offset(-9,32) A_JumpIfInventory("IsRunning", 1, "Sprinting")
		Goto StopSprint
		
	StopSprintTired:
		R4V1 V 1
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		R1V1 D 0 A_PlaySound("Tired", 2)
		R7V1 OPQRST 1 A_WeaponReady
		R1V1 E 25
		Goto Ready3
		
	StopSprint:
		R4V1 VUTSR 1
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 70, "StopSprintTired")
		TNT1 A 0 A_JumpIfInventory("UsedStamina", 1400, "StopSprintTired")
		PLAY A 0 ACS_ExecuteAlways(853, 0, 0, 0, 0)//Makes player slower.
		Goto Ready3
		
	
		////////////////////////////////////////Unloading	

	AlreadyUnloaded:
		R6V1 JIHGFEDCBA 1
		R6V1 A 20
		goto Ready3

	SpendRound:
		TNT1 A 0 A_GiveInventory ("spentrounds", 1)
		stop

	RemoveSpentRounds:
		TNT1 A 0 A_takeinventory("spentrounds",6)
		stop

	DrumRounds:
		TNT1 A 0 A_jumpifinventory("revolverammo",6,4)
		TNT1 A 0 A_jumpifinventory("revolverammo",3,4)
		TNT1 A 0 A_jumpifinventory("revolverammo",2,4)
		TNT1 A 0 A_jumpifinventory("revolverammo",1,4)
		//
		TNT1 A 0 //full
		stop
		RV1S R 2 // 5-3 rounds
		stop
		RV1S S 2 // 2 rounds
		stop
		RV1S T 2// 1 round
		stop
			
	CheckDrum:
		TNT1 A 0 A_jumpifinventory("spentrounds",6,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",5,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",4,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",3,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",2,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",1,6)
		goto CheckDrumHold
		
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)	
		
	CheckDrumHold:
		TNT1 A 0 A_overlay (5,"removespentrounds", false)
		TNT1 A 0 A_overlay(2,"DrumRounds",false)
		R6V1 K 1 a_weaponready(WRF_NOFIRE | WRF_NOSWITCH)	
		TNT1 A 0 A_JumpIFInventory("FirearmsdurabilityOFF", 1, 2)
		TNT1 A 0 ACS_NAMEDEXECUTEalways("REVOLVERDURABILITYCHECK",0)
		TNT1 A 0 ACS_NAMEDEXECUTEalways("REVOLVERMAGCHECK",0)
		PISA D 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, "CHECKDRUMHOLD")
		
		TNT1 A 0 A_PlaySoundEx("Weapons/Revolver/CLOSE", 1)
		R6V1 JIHGFEDCBA 1
		goto Ready3
	
	User4:
		R1V1 E 1 A_WeaponReady
		TNT1 A 0 A_ZoomFactor(1.0)
		TNT1 A 0 A_Takeinventory("ADSmode",1)
		TNT1 A 0 A_Takeinventory("Zoomed",1)
        TNT1 A 0 A_JumpIfInventory("RevolverAmmo",1,1)
        Goto noammoUnload
        TNT1 A 0
		TNT1 A 0 A_Takeinventory("Zoomed",1)
		
		R6V1 ABCDEFGHI 1
		R6V1 J 1
		TNT1 A 0 A_PlaySoundEx("Weapons/Revolver/Open", 1)
		TNT1 A 0 A_JumpIf(GetPlayerInput(INPUT_BUTTONS) & BT_USER4, "CheckDrum")
		TNT1 A 0 A_JumpIfInventory("revolverunloaded", 1, "AlreadyUnloaded")
		TNT1 A 0 a_setroll(roll-1)      
		R6V1 KL 1 a_setroll(roll-1)
		TNT1 A 0 a_overlay(6,"SpentCasingsUnload",true)
		R6V1 MNOPQRS 1 
		TNT1 A 0 A_PlaySoundEx("Weapons/Revolver/Click2", "Auto")
		R6V1 TUVWXYZ 1 
		REVR IJ 1
		
		REVR ABC 1 A_SETPITCH(PITCH+1)
		REVR D 16 A_PlaySoundEx("MAGGRAB3", 1)
		REVR EFG 1 A_SETPITCH(PITCH-1)
		REVR H 1 
		
	    TNT1 A 0 A_PlaySoundEx("CYLNSPIN", 1)
        R7V1 ABC 1
		REVR KLMNOPQRS 1
		TNT1 A 0 A_QuakeEx(1, 1, 1, 3, 0, 64, "", 0, 0, 0, 0, 0, 0, 1)
		TNT1 A 0 A_PlaySoundEx("Weapons/Revolver/Close", "Auto")
		R7V1 MNO 1 a_setroll(roll+1)
		R7V1 PQRSTUVWXYZ 1
		goto RemoveBullets

		
	SpentCasingsUnload:
		TNT1 A 0 A_jumpifinventory("spentrounds",6,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",5,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",4,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",3,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",2,6)
		TNT1 A 0 A_jumpifinventory("spentrounds",1,6)
		goto SpentCasingsUnload2
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)
		TNT1 A 0 A_FireCustomMissile("RifleCaseSpawn",-2,0,8,0)	
	SpentcasingsUnload2:
		TNT1 A 0 A_GiveInventory ("Pumping", 1)
		TNT1 A 0 A_overlay (5,"removespentrounds", false)
		stop
		
	RemoveBullets:
		TNT1 AAAA 0
		TNT1 A 0 A_JumpIfInventory("RevolverAmmo",1,3)
		Goto FinishUnload
        TNT1 AAAAAA 0
		TNT1 A 0 A_Takeinventory("RevolverAmmo",1)
		TNT1 A 0 A_Giveinventory("50AMMO",1)
		Goto RemoveBullets
	
	FInishUnload:
		R1V1 E 1
		//TNT1 A 0 A_PlaySound("barrel/close", 1)
		TNT1 A 0 A_GiveInventory("revolverunloaded", 1)
		Goto Ready3		
////////////////////////////////////////Unloading	

	Misfire:
		R4V1 OP 2
		TNT1 A 0 A_PLAYSOUND("DRYFIRE")
		R4V1 Q 8 
		RV1S GHI 1 
		RVIN A 0 A_PLAYSOUND("REVODRY",1)
		RV1S JKLMNOPQ 1
		GOTO READY3
		
	Misfire2:
		R5V1 AB 1
		TNT1 A 0 A_PLAYSOUND("DRYFIRE")
		R5V1 EFG 1
		GOTO READY3
		
	WEAPONBREAK:
		TNT1 A 0 a_print("your Revolver has broken!")
		R4V1 RSTU 1
		TNT1 A 0 a_SPAWNITEM("brokenrevolver",0,0)
		TNT1 A 1
		 TNT1 A 0 a_RADIUSGIVE("hasbeendropped",90, RGF_OBJECTS | RGF_NOSIGHT, 1, "brokenREVOLVER")
		TNT1 A 0 ACS_namedexecute("BROKENDISARM",0)
		TNT1 AAA 1 a_weaponready
		Wait	
		
	KITREPAIR:
		TNT1 A 0 A_JumpIFInventory("survivalkituses",1, 2)
		PIST F 0 A_Jump(256,"kitbroke")
		R1V1 E 5
		
		TNT1 A 0 A_JumpIFInventory("REVOLVERDurability",100, "NoNeedRepair")
		PIST F 0 A_JumpIfInventory("scrapmetal",1, 2)
		PIST F 0 A_Jump(256,"outofmetal")
		
	KITREPAIR2:
		PIST F 0 A_GIVEinventory("REVOLVERDurability",30)
		BADF A 0 A_Takeinventory("survivalkituses",1)
		BADF A 0 A_Takeinventory("scrapmetal",1)
		TNT1 A 0 A_playsound("WIRECUT",1)
		R4V1 RRSTU 1
		TNT1 A 17
		R4V1 UTSRR 1
		
		TNT1 A 0 A_JumpIFInventory("survivalkituses",1, 2)
		PIST F 0 A_Jump(256,"kitbroke")
		R1V1 E 2
		goto Ready3

	DoKICKREVOLVER:
		TNT1 A 0 A_JumpIfInventory("isdoomguy", 1, 4)
		TNT1 A 0 A_JumpIfInventory("LARGESTAMINA", 1, 2)
		TNT1 A 0 A_JumpifInventory("UsedStamina",95,4)
		TNT1 A 0 A_JumpifInventory("UsedStamina",1995,3)
		TNT1 A 0 A_overlay(3,"KICKREVOLVER")
		TNT1 A 0 a_Jump(256,"Dokick")
		goto Ready3
		TNT1 A 0 A_overlay(3,"KICKREVOLVERtired")
		TNT1 A 0 a_Jump(256,"Dokick")
		goto Ready3	
	KICKREVOLVER:
		R4V1 RST 1
		R4V1 U 12 
		R4V1 TSR 1 
		TNT1 A 0 A_JumpIfInventory("Airkicking", 1, 2)
		TNT1 A 0 A_JumpIfInventory("isSliding", 1, 2)
		stop
		R4V1 R 10
		STOP
		R4V1 RSTU 1
		R4V1 U 1 OFFSET(0,36)
		TNT1 A 5
		STOP
		
	KICKREVOLVERtired:
		R4V1 RST 2 
		R4V1 U 37 
		R4V1 TSR 2 
		STOP	

	}
}
 

Actor spentrounds : Inventory {inventory.maxamount 6}

ACTOR RevolverAmmo : Ammo
{
   Inventory.Amount 0
   Inventory.MaxAmount 6
   Ammo.BackpackAmount 0
   Ammo.BackpackMaxAmount 6
}