return Def.StepsDisplayList {
	Name="StepsDisplayListRow";
	CurrentSongChangedMessageCommand=function(self)
		local song = GAMESTATE:GetCurrentSong();
		if song and self:GetZoomX() == 0 then
			self:playcommand("Show");
		elseif not song and self:GetZoomX() == 1 then
			self:playcommand("Hide");
		end;
	end;

	CursorP1 = Def.ActorFrame {
		InitCommand=cmd(x,-128+16;player,PLAYER_1);
		PlayerJoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_1 then
				self:visible(true);
				(cmd(zoom,0;bounceend,0.3;zoom,1))(self);
			end;
	 	end;
	 	PlayerUnjoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_1 then
				self:visible(true);
				(cmd(bouncebegin,0.3;zoom,0))(self);
			end;
		end;
--[[ 		LoadActor(THEME:GetPathG("_StepsDisplayListRow","Cursor")) .. {
			InitCommand=cmd(diffuse,PlayerColor(PLAYER_1));
		}; --]]
		LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. {
			InitCommand=cmd(x,20;diffuse,PlayerColor(PLAYER_1));
			OnCommand=cmd(thump,1;effectmagnitude,1,1.25,1;effectclock,'beat';);
		};
		LoadFont("Common Normal") .. {
			Text="P1";
			InitCommand=cmd(x,-4;diffuse,PlayerColor(PLAYER_1);shadowlength,1);
			OnCommand=cmd(zoom,0.75);
		};
	};
	CursorP2 = Def.ActorFrame {
		InitCommand=cmd(x,128-16;player,PLAYER_2);
		PlayerJoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_2 then
				self:visible(true);
				(cmd(zoom,0;bounceend,0.3;zoom,1))(self);
			end;
		end;
		PlayerUnjoinedMessageCommand=function(self, params)
			if params.Player == PLAYER_2 then
				self:visible(true);
				(cmd(bouncebegin,0.3;zoom,0))(self);
			end;
		end;
--[[ 		LoadActor(THEME:GetPathG("_StepsDisplayListRow","Cursor")) .. {
			InitCommand=cmd(diffuse,PlayerColor(PLAYER_2);zoomx,-1);
		}; --]]
		LoadActor(THEME:GetPathG("_StepsDisplayListRow","arrow")) .. {
			InitCommand=cmd(x,-20;diffuse,PlayerColor(PLAYER_2);zoomx,-1);
			OnCommand=cmd(thump,1;effectmagnitude,1,1.25,1;effectclock,'beat';);
		};
		LoadFont("Common Normal") .. {
			Text="P2";
			InitCommand=cmd(x,8;diffuse,PlayerColor(PLAYER_2);shadowlength,1);
			OnCommand=cmd(zoom,0.75);
		};
	};
	CursorP1Frame = Def.Actor{
		ChangeCommand=cmd(stoptweening;decelerate,0.125);
	};
	CursorP2Frame = Def.Actor{
		ChangeCommand=cmd(stoptweening;decelerate,0.125);
	};
};