// Constants
const int flashlightVert = 18;
const int flashlightHoriz = 0; // 36 for over-the-shoulder effect

// Actors
ACTOR FlashlightSpawner : CustomInventory
{
	States
	{
	Pickup:
		TNT1 A 0 A_CustomMissile("FlashLightBeam1", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam2", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam3", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam4", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam5", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam6", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam7", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam8", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam9", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam10", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam11", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam12", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam13", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam14", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam15", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam16", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam17", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam18", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		TNT1 A 0 A_CustomMissile("FlashLightBeam19", flashlightVert, flashlightHoriz, 0, 2, ACS_NamedExecuteWithResult("PointerPitch", 0))
		Stop
	}
}

ACTOR FlashLightBeam
{
	+NOGRAVITY
	+NOCLIP
	+NOBLOCKMAP
	+DONTSPLASH
	+THRUACTORS
	Renderstyle None
	Radius 1
	Height 1
	States 
	{
	Spawn:
		TNT1 AABC 1
		Stop
	}
}

ACTOR FlashLightBeam1 : FlashLightBeam
{
	Speed  1
}

ACTOR FlashLightBeam2 : FlashLightBeam
{
	Speed  2
}

ACTOR FlashLightBeam3 : FlashLightBeam
{
	Speed  3
}

ACTOR FlashLightBeam4 : FlashLightBeam
{
	Speed  4
}

ACTOR FlashLightBeam5 : FlashLightBeam
{
	Speed  5
}

ACTOR FlashLightBeam6 : FlashLightBeam
{
	Speed  7
}

ACTOR FlashLightBeam7 : FlashLightBeam
{
	Speed  9
}

ACTOR FlashLightBeam8 : FlashLightBeam
{
	Speed  12
}

ACTOR FlashLightBeam9 : FlashLightBeam
{
	Speed  16
}

ACTOR FlashLightBeam10 : FlashLightBeam
{
	Speed  21
}

ACTOR FlashLightBeam11 : FlashLightBeam
{
	Speed  28
}

ACTOR FlashLightBeam12 : FlashLightBeam
{
	Speed  37
}

ACTOR FlashLightBeam13 : FlashLightBeam
{
	Speed  49
}

ACTOR FlashLightBeam14 : FlashLightBeam
{
	Speed  65
}

ACTOR FlashLightBeam15 : FlashLightBeam
{
	Speed  87
}

ACTOR FlashLightBeam16 : FlashLightBeam
{
	Speed  116
}

ACTOR FlashLightBeam17 : FlashLightBeam
{
	Speed  155
}

ACTOR FlashLightBeam18 : FlashLightBeam
{
	Speed  207
}

ACTOR FlashLightBeam19 : FlashLightBeam
{
	Speed  276
}