//Tornado
freeslot("MT_TORNADO_DECOR", "S_TORNADO_DECOR", "SPR_TADO")

mobjinfo[MT_TORNADO_DECOR] = {
        doomednum = 1717,
        spawnstate = S_TORNADO_DECOR,
		deathstate = S_FBOMB_EXPL1,
		deathsound = sfx_s3k4e,
        spawnhealth = 1000,
        speed = 1,
        radius = 128*FRACUNIT,
        height = 128*FRACUNIT,
        dispoffset = 0,
        mass = 100,
        damage = 0,
        flags = MF_SOLID|MF_NOGRAVITY
}
states[S_TORNADO_DECOR] = {SPR_TADO, A, -1, nil, 0, 0, S_TORNADO_DECOR}

addHook("MobjThinker", function(mo)
	if mo
	and mo.valid
	and mo.type == MT_TORNADO_DECOR
	and mo.health
		if not (mo.eflags & MFE_TOUCHWATER)
		and not (mo.eflags & MFE_UNDERWATER)
		mo.flags = $1 & ~MF_NOGRAVITY
			if (leveltime % 5) == 1
			local steam = P_SpawnMobj(mo.x + FRACUNIT*P_SignedRandom()/4, mo.y + FRACUNIT*P_SignedRandom()/4, mo.z+mo.height, MT_PARTICLE)
			steam.state = S_TRAINSTEAM
			steam.frame = P_RandomRange(0, 1)|FF_TRANS50
			steam.tics = TICRATE*4
			steam.destscale = FRACUNIT*32
			steam.scalespeed = FRACUNIT/32
			P_SetScale(steam, FRACUNIT)
			//steam.momx = P_SignedRandom()*32
			//steam.momy = -64*FRACUNIT
			steam.momz = 4*FRACUNIT
			end
		else
		mo.flags = $1|MF_NOGRAVITY
		P_SetObjectMomZ(mo, -FRACUNIT/2)
			if (leveltime % 5) == 1
			local steam = P_SpawnMobj(mo.x + FRACUNIT*P_SignedRandom()/4, mo.y + FRACUNIT*P_SignedRandom()/4, mo.z+mo.height, MT_PARTICLE)
			steam.state = S_TRAINSTEAM
			steam.frame = P_RandomRange(0, 1)|FF_TRANS50
			steam.tics = TICRATE*4
			steam.destscale = FRACUNIT*32
			steam.scalespeed = FRACUNIT/32
			P_SetScale(steam, FRACUNIT)
			//steam.momx = P_SignedRandom()*32
			//steam.momy = -64*FRACUNIT
			steam.momz = 4*FRACUNIT
			end
			if mo.z+mo.height < mo.watertop
				for player in players.iterate
					if player.mo
					and player.mo.valid
					S_StartSound(player.mo, mo.info.deathsound, player)
					end
				end
			P_KillMobj(mo)
			//S_StartSound(mo, mo.info.deathsound)
			end
		end
	end
end, MT_TORNADO_DECOR)