-- Various helper tools + init variables.

freeslot("sfx_hmtart")

if not (hmt_toggleablemapvalue) then
	print("\x88".."--------------------------------------------------------")
	print("\x89".."HMT has successfully been loaded!")
	print("\x88".."Version: Goldrush")
	print("\x89".."HMT is still in an ".."\x84".."ALPHA ".."\x89".."phase!")
	print("\x8C".."Please contact haya_#7447 about problems.")
	print("\x88".."--------------------------------------------------------")
else
	print("\x82".."HMT is already loaded.")
	return
end

rawset(_G, "hmt_dprint", function(string, err)
	if err then
		print("\x85".."ERROR: "..string)
		return
	end
	print("\x8A"..string)
end)

rawset(_G, "hmt_alert", function(string, sound)
	if sound then
		S_StartSound(nil, sfx_hmtart)
	end
	chatprint("\x83"..string, false)
end)

rawset(_G, "hmt_alertcons", function(string, sound)
	if sound then
		S_StartSound(nil, sfx_hmtart)
	end
	print("\x83"..string)
end)

rawset(_G, "hmt_toggleablemapvalue", {Off = 0, Depends = 1, On = 2})

rawset(_G, "HMT_CheckVariable", function(varname)
	-- forced off
	if CV_FindVar(varname) and CV_FindVar(varname).value == 0 then return false end
	-- forced on
	if CV_FindVar(varname) and CV_FindVar(varname).value == 2 then return true end
	
	-- Check for either a cvar or mapheader variable name.
	if mapheaderinfo[gamemap][varname] then return true end
	return false
end)

rawset(_G, "HMT_CheckVariableValue", function(varname, condition)
	-- Check for either a cvar or mapheader variable name.
	if mapheaderinfo[gamemap][varname] and mapheaderinfo[gamemap][varname] == condition then return true end
	return false
end)

rawset(_G, "HMT_GetNumPlayers", function()
	local pnum = 0
	for player in players.iterate do
		if player.spectator or player.pflags & PF_TIMEOVER then continue end
		pnum = $ + 1
	end
	return pnum
end)

rawset(_G, "HMT_GetNumPlayers2", function()
	local pnum = 0
	for player in players.iterate do
		if player.spectator then continue end
		pnum = $ + 1
	end
	return pnum
end)

rawset(_G, "HMT_GetNumPlayers3", function()
	local pnum = 0
	for player in players.iterate do
		pnum = $ + 1
	end
	return pnum
end)