// --------------------------------------------------------------------------
//
//	Updated weapon replacers
//
// --------------------------------------------------------------------------

//Spawn a Chainsaw if player doesn't have one, otherwise, spawn a random weapon.
ACTOR U_ChainsawReplacer : CustomInventory Replaces Chainsaw
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItemEx("EvidenceCheckerChainsaw", 0, 0, 0, 0, 0, 0, 0, SXF_NOCHECKPOSITION)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		Goto Singleplayer
	Singleplayer:
		TNT1 A 0 A_SpawnItem("U_ClassicSaw") //Purists always gets the Chainsaw.
		TNT1 A 0 A_JumpIfInventory("U_Chainsaw",1,"SpawnNewWeapon",AAPTR_PLAYER1)								
		TNT1 A 0 A_SpawnItem("U_Chainsaw")
		Stop
	SpawnNewWeapon:
		TNT1 A 0 A_SpawnItem("RandomWeapon")
		Stop
	DeathMatch:
		TNT1 A 0 A_SpawnItem("U_Chainsaw")
		TNT1 A 0 A_SpawnItem("U_ClassicSaw")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

//Spawn a Shotgun if player doesn't have one, otherwise, 60% Shotgun, 40% C-4 or SMG.
ACTOR U_ShotgunReplacer : CustomInventory Replaces Shotgun
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		TNT1 A 0 												//Spawn SSG on Dooms secret maps. Continue otherwise.
		TNT1 A 0 A_JumpIf(x == 1600 && y == 1152, "SpawnSSG")	//Doom E1M9
		TNT1 A 0 A_JumpIf(x == 576 && y == -896, "SpawnSSG")	//Doom E2M9
		TNT1 A 0 A_JumpIf(x == -432 && y == 208, "SpawnSSG")	//Doom E3M9
		TNT1 A 0 A_JumpIf(x == 176 && y == -64, "SpawnSSG")		//Doom E4M9
		TNT1 A 0 A_JumpIf(x == -4400 && y == 1192, "SpawnSSG")	//Freedoom E1M9
		TNT1 A 0 A_JumpIf(x == -480 && y == 64, "SpawnSSG")		//Freedoom E2M9
		TNT1 A 0 A_JumpIf(x == 3848 && y == -2888, "SpawnSSG")	//Freedoom E3M9
		TNT1 A 0 A_JumpIf(x == 280 && y == -152, "SpawnSSG")	//Freedoom E4M9
		TNT1 A 0 A_JumpIf(x == 576 && y == -1168, "SpawnSSG")	//DTWID E1M9
		TNT1 A 0 A_JumpIf(x == 224 && y == 0, "SpawnSSG")		//DTWID E2M9
		TNT1 A 0 A_JumpIf(x == -784 && y == 976, "SpawnSSG")	//DTWID E3M9
		Goto Singleplayer
	Singleplayer:
		TNT1 A 0 A_JumpIfInventory("U_Shotgun",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Jump(103,"SpawnNewWeapon")
		TNT1 A 0 A_SpawnItem("U_Shotgun")
		TNT1 A 0 A_SpawnItem("U_ClassicShotgun")
		Stop
	SpawnNewWeapon:
		TNT1 A 0 A_Jump(128,4)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,6)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("C4Weapon")
		TNT1 A 0 A_SpawnItem("U_ClassicShotgun")
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,0)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_SMG")
		TNT1 A 0 A_SpawnItem("U_ClassicShotgun")
		Stop
	SpawnSSG:
		TNT1 A 0 A_SpawnItem("U_SSG")
		TNT1 A 0 A_SpawnItem("U_ClassicSSG")
		Stop
	DeathMatch:
		TNT1 A 0 A_SpawnItem("U_Shotgun")
		TNT1 A 0 A_SpawnItem("U_ClassicShotgun")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

//Spawn a SSG if player doesn't have one, otherwise, 70% SSG, 30% Automatic Shotgun or Assault Shotgun.
ACTOR U_SSGReplacer : CustomInventory Replaces SuperShotgun
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		Goto Singleplayer		
	Singleplayer:
		TNT1 A 0 A_JumpIfInventory("U_SSG",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Jump(77,"SpawnNewWeapon")
		TNT1 A 0 A_SpawnItem("U_SSG")
		TNT1 A 0 A_SpawnItem("U_ClassicSSG")
		Stop
	SpawnNewWeapon:
		TNT1 A 0 A_Jump(128,4)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,3)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("AutoShotgun")
		TNT1 A 0 A_SpawnItem("U_ClassicSSG")
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,1)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_AssaultShotgun")
		TNT1 A 0 A_SpawnItem("U_ClassicSSG")
		Stop
	DeathMatch:
		TNT1 A 0 A_SpawnItem("U_SSG")
		TNT1 A 0 A_SpawnItem("U_ClassicSSG")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

//Spawn a Minigun if player doesn't have one, otherwise, 70% Minigun, 30% Revolver or Machinegun.
ACTOR U_ChaingunReplacer : CustomInventory Replaces Chaingun
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		Goto Singleplayer
	Singleplayer:
		TNT1 A 0 A_JumpIfInventory("U_Minigun",1,2,AAPTR_PLAYER1)	
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Jump(77,"SpawnNewWeapon")
		TNT1 A 0 A_SpawnItem("U_Minigun")
		TNT1 A 0 A_SpawnItem("U_ClassicChaingun")
		Stop
	SpawnNewWeapon:
		TNT1 A 0 A_Jump(128,4)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,2)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("Revolver")
		TNT1 A 0 A_SpawnItem("U_ClassicChaingun")
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,2)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_Machinegun")
		TNT1 A 0 A_SpawnItem("U_ClassicChaingun")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("U_Minigun")
		TNT1 A 0 A_SpawnItem("U_ClassicChaingun")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

//Spawn a Rocket Launcher if player doesn't have one, otherwise, 70% RL, 30% Sniper Rifle or Grenade Launcher.
ACTOR U_RocketLauncherReplacer : CustomInventory Replaces RocketLauncher
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		Goto Singleplayer
	Singleplayer:
		TNT1 A 0 A_JumpIfInventory("U_RocketLauncher",1,2,AAPTR_PLAYER1)	
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Jump(77,"SpawnNewWeapon")
		TNT1 A 0 A_SpawnItem("U_RocketLauncher")
		TNT1 A 0 A_SpawnItem("U_ClassicRocketLauncher")
		Stop
	SpawnNewWeapon:
		TNT1 A 0 A_Jump(128,4)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,3)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_GrenadeLauncher")
		TNT1 A 0 A_SpawnItem("U_ClassicRocketLauncher")
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,4)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("SniperRifle")
		TNT1 A 0 A_SpawnItem("U_ClassicRocketLauncher")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("U_RocketLauncher")
		TNT1 A 0 A_SpawnItem("U_ClassicRocketLauncher")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

//Spawn a Plasma Rifle if player doesn't have one, otherwise, 70% Plasma Rifle, 30% Railgun.
ACTOR U_PlasmaRifleReplacer : CustomInventory Replaces PlasmaRifle
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		Goto Singleplayer
	Singleplayer:
		TNT1 A 0 A_JumpIfInventory("U_PlasmaRifle",1,2,AAPTR_PLAYER1)
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Jump(77,"SpawnNewWeapon")
		TNT1 A 0 A_SpawnItem("U_PlasmaRifle")
		TNT1 A 0 A_SpawnItem("U_ClassicPlasmaRifle")
		Stop
	SpawnNewWeapon:
		TNT1 A 0 A_Jump(128,4)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,5)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_Railgun")
		TNT1 A 0 A_SpawnItem("U_ClassicPlasmaRifle")
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,5)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_Railgun")
		TNT1 A 0 A_SpawnItem("U_ClassicPlasmaRifle")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("U_PlasmaRifle")
		TNT1 A 0 A_SpawnItem("U_ClassicPlasmaRifle")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

//Spawn the BFG 9000 if player doesn't have one, otherwise, 70% BFG 9000, 29% BFG 10000, 1% Unmaker.
Actor U_BFGReplacer : CustomInventory Replaces BFG9000
{
    States
    {
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		TNT1 A 0 A_JumpIf(x == 2368 && y == -1216, "Nazi")
		TNT1 A 0 Thing_ChangeTID(0,736)
		TNT1 A 3
		TNT1 A 0 A_JumpIfInventory("NaziVerificate1", 1, "Nazi")
		Goto Singleplayer
	Singleplayer:
		TNT1 A 0 A_JumpIfInventory("U_BFG9000",1,2,AAPTR_PLAYER1)		
		TNT1 A 0 A_Jump(256,2)
		TNT1 A 0 A_Jump(77,"SpawnNewWeapon")
		TNT1 A 0 A_SpawnItem("U_BFG9000")
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		Stop
	SpawnNewWeapon:
		TNT1 A 0 A_Jump(9,4)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,5)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_BFG10000")
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		Stop
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,4)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_Unmaker")
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		Stop
	Nazi:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,10)==0, "Singleplayer")
		TNT1 A 0 A_SpawnItem("U_HitlersBuzzsaw")
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("U_BFG9000")
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

ACTOR U_UnmakerSpawner : CustomInventory Replaces UnmakerSpawner
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch") //Check gametype.
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		Goto SpawnUnmaker
	SpawnUnmaker:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,4)==0, "SpawnBFG10k") //Unmaker enabled?
		TNT1 A 0 A_SpawnItem("U_Unmaker")
		Stop
	SpawnBFG10k:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,5)==0, "SpawnBFG9k") //BFG 10000 enabled?
		TNT1 A 0 A_SpawnItem("U_BFG10000")
		Stop
	SpawnBFG9k:
		TNT1 A 0 A_SpawnItem("U_BFG9000") //Seems both Unmaker and BFG 10000 is disabeld. Spawn a BFG 9000.
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("U_Unmaker")
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

Actor HellishMissileLauncherReplacer : CustomInventory Replaces HellishMissileLauncher
{
    States
    {
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "Purist", AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,8)==0, "Purist")
		TNT1 A 0 A_SpawnItem("U_HellishMissileLauncher")
		Stop
	Purist:
		TNT1 A 0 A_CustomMissile("RevenantLauncherDummy", 7, 0, random (0, 360), 2, random (30, 150))
		Stop
	DM:
		TNT1 A 0 A_SpawnItem("U_HellishMissileLauncher")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

Actor FlameCannonReplacer : CustomInventory replaces FlameCannon
{
    States
    {
	Spawn:
		TNT1 A 0
		TNT1 A 0 ACS_ExecuteAlways(719, 0, 0, 0, 0)
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "Purist", AAPTR_PLAYER1)
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,7)==0, "Purist")
		TNT1 A 0 A_SpawnItem("U_FlameCannon")
		Stop
	Purist:
		TNT1 A 0 A_CustomMissile("FlameCannonDummy", 7, 0, random (0, 360), 2, random (30, 150))
		Stop
	DM:
		TNT1 A 0 A_SpawnItem("U_FlameCannon")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}


// --------------------------------------------------------------------------
//
//	Updated weapon spawners
//
// --------------------------------------------------------------------------

ACTOR U_PistolSpawner: CustomInventory replaces PistolSpawner
{
	Scale 0.6
	Inventory.PickupMessage "You got the Pistol!"
	Inventory.PickupSound "weapons/pistolup"
    States
    {
	Spawn:
		BERT A -1
		Stop
	Pickup:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 4)			//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,1)==1, "Update")	//Pistol enabled?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,0)==1, "Update")	//SMG enabled?
		TNT1 A 0 A_JumpIfInventory("U_MP40", 1, "Update")				//Have MP40?
	    TNT1 A 0 A_GiveInventory("RifleMagazine", 10)
		Stop
	Update:
		TNT1 A 0 A_GiveInventory("Beretta", 1)
		Stop
    }
}

ACTOR U_SMGSpawner: CustomInventory replaces SMGSpawner
{
	Scale 0.9
    Inventory.PickupSound "CLIPIN"
	Inventory.Pickupmessage "You got the Sub Machinegun!"
    States
    {
	Spawn:
		SMGZ A -1
		Stop
	Pickup:
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "Purist")	//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,0)==1, "SMG")		//SMG enabled?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,1)==1, "9mm")		//Pistol enabled?
		TNT1 A 0 A_JumpIfInventory("U_MP40", 1, "9mm")					//Have MP40?
	    TNT1 A 0 A_GiveInventory("RifleMagazine", 10)
		Stop
	Purist:
		TNT1 A 0 A_GiveInventory("U_ClassicSMG", 1)
		Stop
	SMG:
		TNT1 A 0 A_GiveInventory("U_SMG", 1)
		Stop
	9mm:
		TNT1 A 0 A_GiveInventory("9mmMagazine", 10)
		Stop
    }
}

ACTOR U_RifleSpawner: CustomInventory Replaces RifleSpawner
{
	scale 0.8
	Inventory.PickupMessage "$GOTRIFLE"
	Inventory.PickupSound "CLIPIN"
	States
	{
 	Spawn:
		RIFL A -1
		Stop
	Pickup:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,6)==0, "Purist")
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, "Purist")
		TNT1 A 0 A_GiveInventory("U_Rifle", 1)
		Stop
	Purist:
		TNT1 A 0 A_GiveInventory("RifleMagazine", 10)
		Stop
	}
}

ACTOR U_MinigunSpawner: CustomInventory Replaces DropedChaingunSpawner
{
	States
	{
 	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("U_Minigun")
		TNT1 A 0 A_SpawnItem("U_ClassicChaingun")
		Stop
	}
}

ACTOR U_ShotgunSpawner: CustomInventory Replaces ShotgunSpawnerDroped
{
	States
	{
 	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("U_Shotgun")
		TNT1 A 0 A_SpawnItem("U_ClassicShotgun")
		Stop
	}
}

Actor RandomWeapon : CustomInventory
{
	states
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_Jump(256, "Spawn1", "Spawn2", "Spawn3", "Spawn4", "Spawn5", "Spawn6", "Spawn7", "Spawn8", "Spawn9", "Spawn10")
		Goto Spawn1
	Spawn1:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,2)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("Revolver")
		stop
	Spawn2:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,3)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("AutoShotgun")
		stop
	Spawn3:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,4)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("SniperRifle")
		stop
	Spawn4:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,5)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("U_Railgun")
		stop
	Spawn5:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,6)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("C4Weapon")
		stop
	Spawn6:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,0)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("U_SMG")
		stop
	Spawn7:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,1)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("U_AssaultShotgun")
		stop
	Spawn8:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,2)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("U_Machinegun")
		stop
	Spawn9:
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,3)==0, "Spawn")
		TNT1 A 0 A_SpawnItem("U_GrenadeLauncher")
		stop
	Spawn10: //To prevent infinite looping, there's also a chance to spawn a Berserk pack.
		TNT1 A 0 A_SpawnItem("Berserk")
		stop
	}
}


// --------------------------------------------------------------------------
//
//	Ammunition spawners
//
// --------------------------------------------------------------------------

ACTOR Clip_Replacer : CustomInventory Replaces Clip
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch")		 //Check gametype.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 4, AAPTR_PLAYER1) //Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,1)==1, "Randomizer")	 //Pistol enabled?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,0)==1, "Randomizer")	 //SMG enabled?
		TNT1 A 0 A_JumpIfInventory("U_MP40", 1, "Randomizer", AAPTR_PLAYER1) //Have MP40?
		TNT1 A 0 A_SpawnItem("RifleMagazine")
		Stop
	Randomizer: //50% 9mmMag, 50% RifleMag
		TNT1 A 0 A_Jump(128, 2)
		TNT1 A 0 A_SpawnItem("9mmMagazine")
		Stop
		TNT1 A 0 A_SpawnItem("RifleMagazine")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("RifleMagazine")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

ACTOR Shell_Replacer : CustomInventory Replaces Shell
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch")		//Check gametype.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 3, AAPTR_PLAYER1)//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,3)==1, "Randomizer")	//Automatic Shotgun enabled?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,1)==1, "Randomizer")	//Assault Shotgun enabled?
		TNT1 A 0 A_SpawnItem("AmmoShell")
		Stop
	Randomizer: //20% GreenShell, 80% Shell
		TNT1 A 0 A_Jump(51, 2)
		TNT1 A 0 A_SpawnItem("AmmoShell")
		Stop
		TNT1 A 0 A_SpawnItem("GreenShell")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("AmmoShell")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

ACTOR ShellBox_Replacer : CustomInventory Replaces ShellBox
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch")		//Check gametype.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 3, AAPTR_PLAYER1)//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,3)==1, "Randomizer")	//Automatic Shotgun enabled?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,1)==1, "Randomizer")	//Assault Shotgun enabled?
		TNT1 A 0 A_SpawnItem("AmmoShellBox2")
		Stop
	Randomizer: //20% GreenShellBox, 80% ShellBox
		TNT1 A 0 A_Jump(51, 2)
		TNT1 A 0 A_SpawnItem("AmmoShellBox2")
		Stop
		TNT1 A 0 A_SpawnItem("GreenShellBox")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("AmmoShellBox2")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

ACTOR ClipBox_Replacer : CustomInventory Replaces ClipBox
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch")		//Check gametype.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,2)==1, "Randomizer")	//Revolver enabled?
		TNT1 A 0 A_SpawnItem("MinigunBox")
		Stop
	Randomizer: //25% RevolverBullets or RifleBox, 75% MinigunBox
		TNT1 A 0 A_Jump(64, 2, 3)
		TNT1 A 0 A_SpawnItem("MinigunBox")
		Stop
		TNT1 A 0 A_SpawnItem("RevolverBullets")
		Stop
		TNT1 A 0 A_SpawnItem("RifleBox")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("MinigunBox")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}
/*
ACTOR RocketAmmo_Replacer : CustomInventory Replaces RocketAmmo
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch")		//Check gametype.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,6)==1, "Randomizer")	//C-4 enabled?
		TNT1 A 0 A_SpawnItem("AmmoRocket")
		Stop
	Randomizer: //5% C4, 95% RocketAmmo
		TNT1 A 0 A_Jump(13, 2)
		TNT1 A 0 A_SpawnItem("AmmoRocket")
		Stop
		TNT1 A 0 A_SpawnItem("C4Ammo")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("AmmoRocket")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}
*/
ACTOR Cell_Replacer : CustomInventory Replaces Cell
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch")		//Check gametype.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,5)==1, "Randomizer")	//Railgun enabled?
		TNT1 A 0 A_SpawnItem("AmmoCell")
		Stop
	Randomizer: //10% RailCore, 90% Cell
		TNT1 A 0 A_Jump(26, 2)
		TNT1 A 0 A_SpawnItem("AmmoCell")
		Stop
		TNT1 A 0 A_SpawnItem("RailCore")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("AmmoCell")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

ACTOR CellPack_Replacer : CustomInventory Replaces CellPack
{
	States
	{
	Spawn:
		TNT1 A 0
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1047)==1, "Deathmatch")		//Check gametype.
		TNT1 A 0 A_JumpIfInventory("IsPlayingAsPurist", 1, 2, AAPTR_PLAYER1)//Is purist?
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,5)==1, "Randomizer")	//Railgun enabled?
		TNT1 A 0 A_SpawnItem("AmmoCell")
		Stop
	Randomizer: //10% RailPack, 90% Cell
		TNT1 A 0 A_Jump(26, 2)
		TNT1 A 0 A_SpawnItem("AmmoCellPack")
		Stop
		TNT1 A 0 A_SpawnItem("RailPack")
		Stop
	Deathmatch:
		TNT1 A 0 A_SpawnItem("AmmoCellPack")
		TNT1 A -1
	Pickup:
		TNT1 A 0 A_GiveInventory("DummyToken", 1)
		Stop
	}
}

/*
// --------------------------------------------------------------------------
//
//	Map specific spawners BYHAE
//
// --------------------------------------------------------------------------

//Hellgun
//StockedHellRifle

ACTOR U_RailgunSpawner1: CustomInventory Replaces M2Plasma
{
	States
	{
 	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("U_ClassicPlasmaRifle")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1001,3)==0, "RandomWeapon")
		TNT1 A 0 A_SpawnItem("U_Railgun")
		Stop
	RandomWeapon:
		TNT1 A 0 A_SpawnItem("RandomWeapon")
		Stop
	}
}
ACTOR U_RailgunSpawner2 : U_RailgunSpawner1 Replaces M2PlasmaRifle
{
}

ACTOR U_BFG10kSpawner: CustomInventory Replaces FreezerRifle
{
	States
	{
 	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("U_ClassicBFG9000")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,5)==0, "RandomWeapon")
		TNT1 A 0 A_SpawnItem("U_BFG10000")
		Stop
	RandomWeapon:
		TNT1 A 0 A_SpawnItem("RandomWeapon")
		Stop
	}
}

ACTOR U_GrenadelauncherSpawner1: CustomInventory Replaces GrenLauncher
{
	States
	{
 	Spawn:
		TNT1 A 0
		TNT1 A 0 A_SpawnItem("U_ClassicRocketLauncher")
		TNT1 A 0 A_JumpIf(ACS_ExecuteWithResult(1010,3)==0, "RandomWeapon")
		TNT1 A 0 A_SpawnItem("U_GrenadeLauncher")
		Stop
	RandomWeapon:
		TNT1 A 0 A_SpawnItem("RandomWeapon")
		Stop
	}
}
ACTOR U_GrenadelauncherSpawner2 : U_GrenadelauncherSpawner1 Replaces Grenadelauncher
{
}

ACTOR U_StockedShotgun : CustomInventory replaces StockedShotgun
{
    Inventory.PickupSound "weapons/sgpump"
	Inventory.PickupMessage "$GOTSHOTGUN"
	States
	{
	Spawn:
		Z7ST A -1
		Stop
	Pickup:
        TNT1 A 0 A_GiveInventory ("U_Shotgun")
		Stop
	}
}

ACTOR U_StockedRifle : CustomInventory replaces StockedRifle
{
    Inventory.PickupSound "CLIPIN"
	Inventory.Pickupmessage "$GOTRIFLE"
	States
	{
	Spawn:
		Z7ST B -1
		Stop
	Pickup:
        TNT1 A 0 A_GiveInventory ("U_Rifle")
		Stop
	}
}
*/