freeslot("MT_YUEMBLEM", "sfx_yusfxz")
--Far reaching sound.
sfxinfo[sfx_yusfxz] = {flags = SF_X8AWAYSOUND|SF_X2AWAYSOUND|SF_X4AWAYSOUND,}

--Assign numbers to each emblem on load.
addHook("MapLoad", function()
	for mt in mapthings.iterate do
		if mt.type == mobjinfo[MT_EMBLEM].doomednum
			local ghs = P_SpawnMobj(mt.x*FRACUNIT, mt.y*FRACUNIT, 0, MT_YUEMBLEM)
			if mt.angle != nil
				ghs.yuemblem = mt.angle+1 
			else
				ghs.yuemblem = 10
			end
			ghs.yuemblemztime = 2
			ghs.yuemblemz = mt.z
			ghs.scale = 110000
			ghs.yuemblemangle = 0
		end
	end
end)

--The emblem itself
addHook("MobjThinker", function(s)
	if s.valid and s.yuemblem and (s.yuemblem != nil)
	
		if s.yuemblemztime
		s.yuemblemztime = $-1
		--After 2 tics, move yourself up to your correct Z location and become collectible.
			if not s.yuemblemztime
				if s.yuemblemz != nil
				s.flags = MF_NOGRAVITY|MF_NOCLIPHEIGHT|MF_SPECIAL
				s.z = s.floorz+(s.yuemblemz*FRACUNIT)
				s.spriteyoffset = 19*FRACUNIT
				s.yuemblemz = nil
				end
			end
		end
		--speen
		if not s.health
			if not s.fuse
				s.fuse = 45
			elseif s.fuse < 36
				s.frame = A|FF_PAPERSPRITE|TR_TRANS90-((s.fuse*FRACUNIT)/4)
			end
			s.yuemblemangle = $+ANGLE_45
			s.angle = s.yuemblemangle
		else
			s.yuemblemangle = $+ANG10
			s.angle = s.yuemblemangle
		end	
	end
end, MT_YUEMBLEM)


--Hide yourself, they can't know we're secretly still here.
addHook("MobjThinker", function(s)
	if s.valid
	s.flags = $|MF2_DONTDRAW
	end
end, MT_EMBLEM)


--Broadcast serverwide message. You got one, you absolute chad!

addHook("TouchSpecial", function(emblem, s)
	if emblem and emblem.valid and emblem.health
	and s and s.valid and s.player
		emblem.health = 0
		emblem.state = S_YUEMBLEMGET
		emblem.fuse = 45
		emblem.destscale = $*99
		S_StartSound(s, sfx_yusfxz)
		P_AddPlayerScore(s.player, 5000)
			if emblem.yuemblem
			print("\x82"+s.player.name+" has collected Emblem\x87 "+emblem.yuemblem+"\x82"+"!")
			end
		return true
	end
end, MT_YUEMBLEM)
