addHook("PlayerThink", function(player)
if (player.mo) and (player.mo.skin == "gargoyle")
and player.powers[pw_super]			
	player.mo.flags = $|MF_NOGRAVITY|MF_SLIDEME
	player.jumpfactor = 0
	player.normalspeed = 20*FRACUNIT
	player.mo.color = SKINCOLOR_CRIMSON
end
if (player.mo) and not (player.mo.skin == "gargoyle")
and not player.spectator
and not player.powers[pw_super]
	player.mo.flags = $ & ~(MF_NOGRAVITY|MF_SLIDEME)
end
if (player.mo) and (player.mo.skin == "gargoyle")
and not player.spectator
and not player.powers[pw_super]
	player.mo.flags = $ & ~(MF_NOGRAVITY|MF_SLIDEME)
	player.jumpfactor = 1*FRACUNIT/4*3
	player.normalspeed = 10*FRACUNIT
end
if (player.mo) and not (player.mo.skin == "gargoyle")
and not player.spectator
and player.powers[pw_super]
	player.mo.flags = $ & ~(MF_NOGRAVITY|MF_SLIDEME)
end
end)

addHook("PlayerThink", function(player)
if (not player.mo or player.mo.skin != "gargoyle")
	return
end

//Flying
if (player.mo and player.pflags & PF_JUMPDOWN) //Holding jump
and player.powers[pw_super] // And Super
and not (player.pflags & PF_USEDOWN) //And not holding spin
	P_SetObjectMomZ(player.mo, FRACUNIT*20, false) //Go up!
end

if (player.mo and player.pflags & PF_USEDOWN) //Holding spin
and player.powers[pw_super] // And Super
and not (player.pflags & PF_JUMPDOWN) //And not holding jump
	P_SetObjectMomZ(player.mo, FRACUNIT*-20, false) //Go down!
end
		
if not (player.mo and player.pflags & PF_JUMPDOWN)
and not (player.pflags & PF_USEDOWN)
and player.powers[pw_super]
and (player.mo)
	P_SetObjectMomZ(player.mo, 0, false) //Stop Z movement
end
end)
