local function FinalDemoLifeIcon(v, stplyr)
	hud.disable("lives")
	if not stplyr.mo return end
	if gamemap == 749 return end
	if gametyperules & GTR_RINGSLINGER then return end
	
	if not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		local face = v.getSprite2Patch(stplyr.mo.skin, SPR2_XTRA, (stplyr.powers[pw_super] != 0), 0, 0)
		v.drawScaled(16*FRACUNIT, 177*FRACUNIT, FRACUNIT/2, face, V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS, v.getColormap(stplyr.mo.skin, stplyr.mo.color))
	end
end


hud.add(FinalDemoLifeIcon)


local function FinalDemoLifeX(v, stplyr)
	if not stplyr.mo return end
	if gamemap == 749 return end
	if gametyperules & GTR_RINGSLINGER then return end
	
	if not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		local livex = v.cachePatch("STFINLX")
		v.draw(41, 185, livex, V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	end
end

hud.add(FinalDemoLifeX)

// Skin names.
// Please note that not all of them are available, since those
// names are shown as patches and not in-font texts.
local function CharNames(v, stplyr)
	if not stplyr.mo return end
	if gamemap == 749 return end
	if gametyperules & GTR_RINGSLINGER then return end
	
	if stplyr.mo.skin == "sonic"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "tails"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STTAILSN"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "knuckles"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STKNUXNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "amy"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("AMYNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "fang"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("FANGNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "metalsonic"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("METALNME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "modernsonic"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "silver"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SILVERNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "shadow"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SHDWNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "bean"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("BEANNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "tangle"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("TANGLENM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "spongebob"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SPONGEBO"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "milne"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("MILNENME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "flare"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("FLRENAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "feels"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("FEELSNME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "cacee"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("CACEENME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "wido"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("WIDONAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "nasya"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("NASYANME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "flame"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("FLMENAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "spyro"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SPYRONME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "sparks"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SPARKSNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "aether"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("AETHERNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "inazuma"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("INAZUMAN"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "skip"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SKIPNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "samus"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SAMUSNME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "honey"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("HONEYNME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "hinote"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("HINONAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "pierre"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("PIERRENM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "robe"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("ROBENAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "ivory"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("IVORYNME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "derp"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("DERPNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "kanade"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("KANADENM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "dirk"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("DIRKNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "whirl"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("WHIRLNME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "werehog"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "gemma"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("GEMMANME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "cyan"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("CYANNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "eggpack"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("EGGMNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "jasper"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("JSPRNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "daniel"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("DANIELNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "corvus"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("CORVUSNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "hms123311"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("HMSHNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "ericsson"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("ERICSONM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "handdrawn"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "lessunique"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STTAILSN"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "chrispymarriage"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STKNUXNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "more_like_amy"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("AMYNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "mighty"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("MGHTNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "msonic"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "vesola"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("VESOLANM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "espio"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("ESPIONME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "cacodemon"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("CACONAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "ssnsonichd"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "ssntailshd"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STTAILSN"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "maimy"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("MAIMYNME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "roy"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("ROYFNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "jacob"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STJACOB"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "cersei"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STCERSEI"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "blaze"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("BLAZENME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "marine"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("MARINAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "ronald"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STRONALD"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "astroboy"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("ASTRONME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "hybridsonic"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "adventuresonic"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "sms"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("SMSNAME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "mario"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("MARIONME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "luigi"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("LUIGINME"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "mesonic"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STSONIC"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "metails"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STTAILSN"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	elseif stplyr.mo.skin == "meknux"
	and not (stplyr.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.draw(16, 167, v.cachePatch("STKNUXNM"),V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	end
end

hud.add(CharNames)

// Below is a script written to fix an issue that causes Adventure Sonic to re-enable the
// original "X", character hudname and number from the original SRB2's life counter.
// However, there's a twist: The WHOLE life number code has to be rewritten.

-- Re here, this was oringinally a fucking 400 line elseif chain.
-- This has been replaced with something normal.
local function FDLifeCounter(v, p)
	if not p.mo return end
	if gamemap == 749 return end
	if gametyperules & GTR_RINGSLINGER then return end
	
	if not (p.powers[pw_carry] == CR_NIGHTSMODE)
	and not (maptol & TOL_NIGHTS)
		v.drawNum(65, 182, p.lives, V_SNAPTOLEFT|V_SNAPTOBOTTOM|V_PERPLAYER|V_HUDTRANS)
	end
end

hud.add(FDLifeCounter)
hud.disable("lives")