// Twink's gift freeslots and stuff 
// AKA states hell!!!!

freeslot(
"sfx_grant",
"SPR2_PWSH",
"SPR2_PGRT",
"S_PPEACH_WISH",
"S_PPEACH_GRANT_START",
"S_PPEACH_GRANT",
"SPR_TWNK",
"SPR_TWNA",
"SPR_TWNF",
"SPR_TWGT",
"S_TWINK_APPEAR_START",
"S_TWINK_APPEAR1",
"S_TWINK_APPEAR2",
"S_TWINK_APPEAR3",
"S_TWINK_APPEAR4",
"S_TWINK",
"S_TWINK_FOCUS",
"S_TWINK_GRANT",
"S_TWINK_DISAPPEAR_START",
"S_TWINK_DISAPPEAR1",
"S_TWINK_DISAPPEAR2",
"S_TWINK_DISAPPEAR3",
"S_TWINK_DISAPPEAR4",
"MT_TWINK",
"SPR_TWNS",
"S_TWINK_SPARKLE",
"MT_TWINK_SPARKLE"
)

states[S_PPEACH_WISH] = {
		sprite = SPR_PLAY,
		frame = SPR2_PWSH,
		tics = 84,
		nextstate = S_PPEACH_GRANT_START
}

states[S_PPEACH_GRANT_START] = {
		sprite = SPR_PLAY,
		frame = SPR2_PGRT,
		tics = 1,
		nextstate = S_PPEACH_GRANT
}

states[S_PPEACH_GRANT] = {
		sprite = SPR_PLAY,
		frame = SPR2_PGRT,
		tics = 25,
		nextstate = S_PLAY_STND
}
states[S_TWINK_APPEAR_START] = {
		sprite = SPR_TWNK,
		frame = A|FF_TRANS80,
		tics = 1,
		nextstate = S_TWINK_APPEAR1
}
		
states[S_TWINK_APPEAR1] = {
		sprite = SPR_TWNK,
		frame = A|FF_TRANS80,
		tics = 3,
		nextstate = S_TWINK_APPEAR2
}

states[S_TWINK_APPEAR2] = {
		sprite = SPR_TWNK,
		frame = A|FF_TRANS60,
		tics = 4,
		nextstate = S_TWINK_APPEAR3
}

states[S_TWINK_APPEAR3] = {
		sprite = SPR_TWNA,
		frame = FF_TRANS40,
		tics = 4,
		nextstate = S_TWINK_APPEAR4
}

states[S_TWINK_APPEAR4] = {
		sprite = SPR_TWNA,
		frame = FF_TRANS20,
		tics = 4,
		nextstate = S_TWINK
}

states[S_TWINK] = {
		sprite = SPR_TWNK,
		frame = A|FF_ANIMATE,
		tics = 40,
		var1 = B,
		var2 = 8,
		nextstate = S_TWINK_FOCUS
}

states[S_TWINK_FOCUS] = {
		sprite = SPR_TWNF,
		tics = 28,
		nextstate = S_TWINK_GRANT
}

states[S_TWINK_GRANT] = {
		sprite = SPR_TWGT,
		tics = 25,
		nextstate = S_TWINK_DISAPPEAR_START
}

states[S_TWINK_DISAPPEAR_START] = {
		sprite = SPR_TWNK,
		frame = A|FF_TRANS20,
		tics = 1,
		nextstate = S_TWINK_DISAPPEAR1
}

states[S_TWINK_DISAPPEAR1] = {
		sprite = SPR_TWNK,
		frame = A|FF_TRANS20,
		tics = 3,
		nextstate = S_TWINK_DISAPPEAR2
}

states[S_TWINK_DISAPPEAR2] = {
		sprite = SPR_TWNK,
		frame = A|FF_TRANS40,
		tics = 4,
		nextstate = S_TWINK_DISAPPEAR3
}

states[S_TWINK_DISAPPEAR3] = {
		sprite = SPR_TWNA,
		frame = FF_TRANS60,
		tics = 4,
		nextstate = S_TWINK_DISAPPEAR4
}

states[S_TWINK_DISAPPEAR4] = {
		sprite = SPR_TWNA,
		frame = FF_TRANS80,
		tics = 4,
		nextstate = S_NULL
}

mobjinfo[MT_TWINK] = {
	doomednum = -1,
	spawnstate = S_TWINK_APPEAR_START,
	radius = FRACUNIT*51,
	height = FRACUNIT*51,
	flags = MF_NOCLIP|MF_NOGRAVITY
}

states[S_TWINK_SPARKLE] = {
		sprite = SPR_TWNS,
		frame = A|FF_ANIMATE,
		tics = 18,
		var1 = F,
		var2 = 1,
		nextstate = S_NULL
}

mobjinfo[MT_TWINK_SPARKLE] = {
	doomednum = -1,
	spawnstate = S_TWINK_SPARKLE,
	radius = FRACUNIT*51,
	height = FRACUNIT*51,
	flags = MF_NOCLIP|MF_NOGRAVITY
}