addHook("PlayerThink", function(player)
		if (player.mo) and (player.mo.skin == "gargoyle")
		and player.powers[pw_super]			
			player.mo.flags = $1|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 = $1 & ~(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 = $1 & ~(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 = $1 & ~(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)
