-- this separator works only in case of outfox default theme with 0% mini.
local param = ...
local pe = param.pe and param.pe or {true,false}
local color = param.color and param.color or {1,1,1,1}
local mode = param.mode and param.mode or 'alpha'
local wr = SCREEN_WIDTH/1280
local sw, sh = SCREEN_WIDTH, SCREEN_HEIGHT
local scx, scy = SCREEN_CENTER_X, SCREEN_CENTER_Y
local lanes = {-152,-87,-49,-19,19,49,87,117,155}
local stealth
local pn = GAMESTATE:GetMasterPlayerNumber() and tonumber(string.sub(GAMESTATE:GetMasterPlayerNumber(),-1,-1)) or 1

local function pa_fmod(int, base)
	return int - math.floor(int/base)*base
end

local af = Def.ActorFrame{
Name='PlayerOrig',
InitCommand=function(self)
	local zoom = 1.5
	zoom = SCREENMAN:GetTopScreen():GetChild('PlayerP'..pn):GetZoom()
	self:fov(90):visible(false):zoom(zoom)
	if ActorFrame.fardistz then self:fardistz(sw*1.5) end
end}

-- Single/Versus compatibility.
local IsSingle = false
local IsVersus = false
if GAMESTATE:GetCurrentStyle():GetStepsType() == 'StepsType_Dance_Single' then
	IsSingle = true

	if pe[1] and pe[2] then
		IsVersus = true
	end
end

af[#af+1] = Def.ActorProxy{
	Name='NoteField',
	-- In this system, InitCommands in FG things are executed at beat 0. We can use SCREENMAN:GetTopScreen() in InitCommand.
	InitCommand=function(self)
		self:SetTarget(SCREENMAN:GetTopScreen():GetChild('PlayerP'..pn):GetChild('NoteField')):visible(true)
		SCREENMAN:GetTopScreen():GetChild('PlayerP'..pn):visible(false):fov(90):basezoom(1/wr)
	end
}
af[#af+1] = Def.ActorProxy{
	Name='Combo',
	InitCommand=function(self)
		self:SetTarget(SCREENMAN:GetTopScreen():GetChild('PlayerP'..pn):GetChild('Combo')):visible(true)
		SCREENMAN:GetTopScreen():GetChild('PlayerP'..pn):visible(false):fov(90):basezoom(1/wr)
	end
}
af[#af+1] = Def.ActorProxy{
	Name='Judgment',
	InitCommand=function(self)
		self:SetTarget(SCREENMAN:GetTopScreen():GetChild('PlayerP'..pn):GetChild('Judgment')):visible(true)
		SCREENMAN:GetTopScreen():GetChild('PlayerP'..pn):visible(false):fov(90):basezoom(1/wr)
	end
}
return af