Add a real High Scores screen.
(cherry picked from commit 4c5bfa5e0eb351a0d90c70413a7cd8622007d188)
@@ -0,0 +1 @@
|
||||
Common Bold
|
||||
@@ -0,0 +1 @@
|
||||
Common Normal
|
||||
@@ -0,0 +1 @@
|
||||
Common Normal
|
||||
@@ -0,0 +1,100 @@
|
||||
local t = Def.ActorFrame {
|
||||
InitCommand=cmd(runcommandsonleaves,cmd(ztest,true));
|
||||
};
|
||||
|
||||
t[#t+1] = LoadActor("frame") .. {
|
||||
InitCommand=cmd(diffusealpha,0.1;);
|
||||
};
|
||||
|
||||
|
||||
t[#t+1] = Def.TextBanner {
|
||||
InitCommand=cmd(x,-196;y,0;Load,"TextBannerHighScores");
|
||||
SetCommand=function(self, params)
|
||||
if params.Song then
|
||||
self:SetFromSong( params.Song );
|
||||
self:diffuse( SONGMAN:GetSongColor(params.Song) );
|
||||
else
|
||||
self:SetFromString( params.Course:GetTitle() );
|
||||
self:diffuse( SONGMAN:GetCourseColor(params.Course) );
|
||||
end
|
||||
end;
|
||||
};
|
||||
|
||||
local NumColumns = THEME:GetMetric(Var "LoadingScreen", "NumColumns");
|
||||
|
||||
local c;
|
||||
local Scores = Def.ActorFrame {
|
||||
InitCommand = function(self)
|
||||
c = self:GetChildren();
|
||||
end;
|
||||
};
|
||||
t[#t+1] = Scores;
|
||||
|
||||
for idx=1,NumColumns do
|
||||
local x_pos = -60 + 80 * (idx-1);
|
||||
Scores[#Scores+1] = LoadFont(Var "LoadingScreen","Name") .. {
|
||||
Name = idx .. "Name";
|
||||
InitCommand=cmd(x,x_pos;y,6;shadowlengthx,0;shadowlengthy,2;shadowcolor,color("#000000");maxwidth,68;);
|
||||
};
|
||||
Scores[#Scores+1] = LoadFont(Var "LoadingScreen","Score") .. {
|
||||
Name = idx .. "Score";
|
||||
InitCommand=cmd(x,x_pos;y,-10;shadowlengthx,0;shadowlengthy,2;shadowcolor,color("#000000");maxwidth,68;);
|
||||
};
|
||||
Scores[#Scores+1] = LoadActor("filled") .. {
|
||||
Name = idx .. "Filled";
|
||||
InitCommand=cmd(x,x_pos;);
|
||||
};
|
||||
Scores[#Scores+1] = LoadActor("empty") .. {
|
||||
Name = idx .. "Empty";
|
||||
InitCommand=cmd(x,x_pos;);
|
||||
};
|
||||
|
||||
end
|
||||
|
||||
local sNoScoreName = THEME:GetMetric("Common", "NoScoreName");
|
||||
|
||||
Scores.SetCommand=function(self, params)
|
||||
local pProfile = PROFILEMAN:GetMachineProfile();
|
||||
|
||||
for name, child in pairs(c) do
|
||||
child:visible(false);
|
||||
end
|
||||
for idx=1,NumColumns do
|
||||
c[idx .. "Empty"]:visible(true);
|
||||
end
|
||||
|
||||
local Current = params.Song or params.Course;
|
||||
if Current then
|
||||
for idx, CurrentItem in pairs(params.Entries) do
|
||||
if CurrentItem then
|
||||
local hsl = pProfile:GetHighScoreList(Current, CurrentItem);
|
||||
local hs = hsl and hsl:GetHighScores();
|
||||
--[[Warn( tostring(CurrentItem:GetStepsType()) .. ", " ..
|
||||
tostring(CurrentItem:GetDifficulty()) .. ": " ..
|
||||
tostring(hsl) .. ", " ..
|
||||
tostring(#hs) );]]
|
||||
local name = c[idx .. "Name"];
|
||||
local score = c[idx .. "Score"];
|
||||
local filled = c[idx .. "Filled"];
|
||||
local empty = c[idx .. "Empty"];
|
||||
|
||||
--assert( c[sNameType], sNameType );
|
||||
--assert( c[sScoreType], sScoreType );
|
||||
|
||||
name:visible( true );
|
||||
score:visible( true );
|
||||
filled:visible( true );
|
||||
empty:visible( false );
|
||||
if hs and #hs > 0 then
|
||||
name:settext( hs[1]:GetName() );
|
||||
score:settext( FormatPercentScore( hs[1]:GetPercentDP() ) );
|
||||
else
|
||||
name:settext( sNoScoreName );
|
||||
score:settext( FormatPercentScore( 0 ) );
|
||||
end
|
||||
end
|
||||
end;
|
||||
end
|
||||
end;
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 628 B |
|
After Width: | Height: | Size: 721 B |
|
After Width: | Height: | Size: 3.6 KiB |
@@ -1643,6 +1643,10 @@ No=NO
|
||||
Yes=YES
|
||||
Cancel=CANCEL
|
||||
|
||||
[ScreenHighScores]
|
||||
HeaderText=High Scores
|
||||
HeaderSubText=Who's the top dog?
|
||||
|
||||
[ScreenRanking]
|
||||
|
||||
[ScreenSMOnlineLogin]
|
||||
@@ -1910,10 +1914,41 @@ dance-solo=solo
|
||||
dance-threepanel=3panel
|
||||
dance-routine=routine
|
||||
lights-cabinet=Lights
|
||||
# SSC
|
||||
#
|
||||
Dance_Single=Single
|
||||
Dance_Double=Double
|
||||
Dance_Couple=Couple
|
||||
Dance_Solo=Solo
|
||||
Dance_Routine=Routine
|
||||
Dance_Threepanel=3 Panels
|
||||
Pump_Single=Single
|
||||
Pump_Double=Double
|
||||
Pump_Halfdouble=Half-Double
|
||||
Pump_Couple=Couple
|
||||
Pump_Routine=Routine
|
||||
Kb7_Single=KB7
|
||||
Ez2_Single=Single
|
||||
Ez2_Double=Double
|
||||
Ez2_Real=Real
|
||||
Para_Single=Single
|
||||
Ds3ddx_Single=Single
|
||||
Bm_Single5=5 Keys
|
||||
Bm_Double5=10 Keys
|
||||
Bm_Single7=7 Keys
|
||||
Bm_Double7=14 Keys
|
||||
Maniax_Single=Single
|
||||
Maniax_Double=Double
|
||||
Techno_Single4=Single 4
|
||||
Techno_Single5=Single 5
|
||||
Techno_Single8=Single 8
|
||||
Techno_Double4=Double 4
|
||||
Techno_Double5=Double 5
|
||||
Techno_Double8=Double 8
|
||||
Pnm_Five=5 Button
|
||||
Pnm_Nine=9 Button
|
||||
Guitar_Five=5 Frets
|
||||
Karaoke=Karaoke
|
||||
Lights_Cabinet=Lights
|
||||
|
||||
[TapNoteScore]
|
||||
AvoidMine=Avoid Mine
|
||||
|
||||
@@ -42,7 +42,7 @@ Branch = {
|
||||
end,
|
||||
NoiseTrigger = function()
|
||||
local hour = Hour()
|
||||
return hour > 3 and hour < 6 and "ScreenNoise" or "ScreenInit"
|
||||
return hour > 3 and hour < 6 and "ScreenNoise" or "ScreenHighScores"
|
||||
end,
|
||||
TitleMenu = function()
|
||||
-- home mode is the most assumed use of sm-ssc.
|
||||
|
||||
@@ -39,6 +39,9 @@ CourseDifficultiesToShow="easy,medium,hard"
|
||||
# be shown in lights mode! So don't hide it here.
|
||||
StepsTypesToHide=""
|
||||
|
||||
# Score placeholder for ScreenHighScores
|
||||
NoScoreName="STEP"
|
||||
|
||||
# The number of entries before "Various" is shown on the BPMDisplay, etc.
|
||||
MaxCourseEntriesBeforeShowVarious=10
|
||||
|
||||
@@ -1497,6 +1500,11 @@ ArtistOnCommand=visible,false
|
||||
ArtistPrependString="/"
|
||||
AfterSetCommand=%TextBannerAfterSet
|
||||
|
||||
[TextBannerHighScores]
|
||||
Fallback="TextBanner"
|
||||
AfterSetCommand=%TextBannerHighScoreAfterSet
|
||||
|
||||
|
||||
[WheelNotifyIcon]
|
||||
ShowTraining=false
|
||||
BlinkPlayersBest=true
|
||||
@@ -4503,6 +4511,34 @@ AllowStyleTypes="TwoPlayersTwoSides"
|
||||
MinSecondsToStep=0
|
||||
MinSecondsToMusic=0
|
||||
|
||||
[ScreenHighScores]
|
||||
Fallback="ScreenAttract"
|
||||
Class="ScreenHighScores"
|
||||
NextScreen="ScreenInit"
|
||||
PrevScreen="ScreenDemonstration"
|
||||
StartScreen=Branch.TitleMenu()
|
||||
|
||||
TimerSeconds=-1
|
||||
|
||||
HighScoresType="HighScoresType_AllSteps"
|
||||
MaxItemsToShow=50
|
||||
NumColumns=5
|
||||
ColumnDifficulty1="Difficulty_Beginner"
|
||||
ColumnDifficulty2="Difficulty_Easy"
|
||||
ColumnDifficulty3="Difficulty_Medium"
|
||||
ColumnDifficulty4="Difficulty_Hard"
|
||||
ColumnDifficulty5="Difficulty_Challenge"
|
||||
ColumnStepsType1=GAMEMAN:GetFirstStepsTypeForGame(GAMESTATE:GetCurrentGame())
|
||||
ColumnStepsType2=GAMEMAN:GetFirstStepsTypeForGame(GAMESTATE:GetCurrentGame())
|
||||
ColumnStepsType3=GAMEMAN:GetFirstStepsTypeForGame(GAMESTATE:GetCurrentGame())
|
||||
ColumnStepsType4=GAMEMAN:GetFirstStepsTypeForGame(GAMESTATE:GetCurrentGame())
|
||||
ColumnStepsType5=GAMEMAN:GetFirstStepsTypeForGame(GAMESTATE:GetCurrentGame())
|
||||
ScrollerItemsToDraw=7
|
||||
ScrollerSecondsPerItem=0.4
|
||||
ManualScrolling=false
|
||||
ScrollerOnCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y+36;SetMask,608,40
|
||||
ScrollerItemTransformFunction=function(self,offset,itemIndex,numItems) self:y(46.1*offset) end
|
||||
|
||||
[ScreenNoise]
|
||||
Fallback="ScreenAttract"
|
||||
Class="ScreenAttract"
|
||||
|
||||
|
After Width: | Height: | Size: 878 B |
@@ -0,0 +1,40 @@
|
||||
local t = LoadFallbackB();
|
||||
|
||||
local StepsType = ToEnumShortString( GAMEMAN:GetFirstStepsTypeForGame(GAMESTATE:GetCurrentGame()) );
|
||||
local stString = THEME:GetString("StepsType",StepsType);
|
||||
|
||||
local NumColumns = THEME:GetMetric(Var "LoadingScreen", "NumColumns");
|
||||
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
InitCommand=cmd(x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y-160);
|
||||
Def.Quad {
|
||||
InitCommand=cmd(zoomto,SCREEN_WIDTH, 56);
|
||||
OnCommand=cmd(diffuse,color("#333333");diffusealpha,0.75;fadebottom,0.35;fadetop,0.35);
|
||||
};
|
||||
};
|
||||
|
||||
for i=1,NumColumns do
|
||||
local st = THEME:GetMetric(Var "LoadingScreen","ColumnStepsType" .. i);
|
||||
local dc = THEME:GetMetric(Var "LoadingScreen","ColumnDifficulty" .. i);
|
||||
local s = GetCustomDifficulty( st, dc );
|
||||
|
||||
t[#t+1] = Def.ActorFrame {
|
||||
InitCommand=cmd(x,SCREEN_CENTER_X-60 + 80 * (i-1);y,SCREEN_CENTER_Y-160);
|
||||
LoadActor("_difficulty frame") .. {
|
||||
OnCommand=cmd(diffuse,CustomDifficultyToColor(s);zoomtowidth,80);
|
||||
};
|
||||
LoadFont("Common Normal") .. {
|
||||
InitCommand=cmd(uppercase,true;settext,CustomDifficultyToLocalizedString(s));
|
||||
OnCommand=cmd(zoom,0.75;diffuse,CustomDifficultyToColor(s);shadowlength,1);
|
||||
};
|
||||
};
|
||||
end
|
||||
|
||||
t[#t+1] = LoadFont("Common Bold") .. {
|
||||
InitCommand=cmd(settext,stString;x,SCREEN_CENTER_X-220;y,SCREEN_CENTER_Y-160);
|
||||
OnCommand=cmd(zoom,0.75;skewx,-0.125;shadowlength,1);
|
||||
};
|
||||
|
||||
t.OnCommand=cmd(draworder,105);
|
||||
|
||||
return t;
|
||||
@@ -0,0 +1 @@
|
||||
_blank
|
||||
@@ -19,11 +19,17 @@ t[#t+1] = Def.ActorFrame {
|
||||
LoadActor(THEME:GetPathB("_frame","3x3"),"rounded black",64,16);
|
||||
LoadFont("Common Normal") .. {
|
||||
InitCommand=cmd(y,-1;shadowlength,1;playcommand,"Set");
|
||||
CurrentSongChangedMessageCommand=cmd(playcommand,"Set");
|
||||
CurrentCourseChangedMessageCommand=cmd(playcommand,"Set");
|
||||
CurrentStepsP1ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
CurrentStepsP2ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
CurrentTraiP1ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
CurrentTraiP2ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
SetCommand=function(self)
|
||||
if GAMESTATE:GetCurrentCourse() then
|
||||
self:settext( GAMESTATE:GetCurrentStageIndex()+1 .. " / " .. GAMESTATE:GetCurrentCourse():GetEstimatedNumStages() );
|
||||
elseif GAMESTATE:IsEventMode() then
|
||||
if GAMESTATE:IsEventMode() then
|
||||
self:settextf("Stage %s", curStageIndex+1);
|
||||
elseif GAMESTATE:GetPlayMode() == 'PlayMode_Endless' or 'PlayMode_Oni' or 'Nonstop' then
|
||||
self:settextf("%i / %i", curStageIndex , GAMESTATE:GetCurrentCourse():GetEstimatedNumStages());
|
||||
else
|
||||
if THEME:GetMetric(curScreen,"StageDisplayUseShortString") then
|
||||
self:settextf("%s", ToEnumShortString(curStage));
|
||||
|
||||
@@ -0,0 +1,104 @@
|
||||
local t = Def.ActorFrame {
|
||||
FOV=90;
|
||||
InitCommand=cmd(runcommandsonleaves,cmd(ztest,true));
|
||||
};
|
||||
|
||||
t[#t+1] = LoadActor("frame") .. {
|
||||
InitCommand=cmd(diffusealpha,0.25);
|
||||
};
|
||||
|
||||
|
||||
t[#t+1] = Def.TextBanner {
|
||||
InitCommand=cmd(x,-292;Load,"TextBannerHighScores");
|
||||
SetCommand=function(self, params)
|
||||
if params.Song then
|
||||
self:SetFromSong( params.Song );
|
||||
self:diffuse( SONGMAN:GetSongColor(params.Song) );
|
||||
else
|
||||
self:SetFromString( params.Course:GetTitle() );
|
||||
self:diffuse( SONGMAN:GetCourseColor(params.Course) );
|
||||
end
|
||||
end;
|
||||
};
|
||||
|
||||
local NumColumns = THEME:GetMetric(Var "LoadingScreen", "NumColumns");
|
||||
|
||||
local c;
|
||||
local Scores = Def.ActorFrame {
|
||||
InitCommand = function(self)
|
||||
c = self:GetChildren();
|
||||
end;
|
||||
};
|
||||
t[#t+1] = Scores;
|
||||
|
||||
for idx=1,NumColumns do
|
||||
local x_pos = -60 + 80 * (idx-1);
|
||||
Scores[#Scores+1] = LoadFont(Var "LoadingScreen","Name") .. {
|
||||
Name = idx .. "Name";
|
||||
InitCommand=cmd(x,x_pos;y,8;shadowlength,1;maxwidth,68);
|
||||
OnCommand=cmd(zoom,0.75);
|
||||
};
|
||||
Scores[#Scores+1] = LoadFont(Var "LoadingScreen","Score") .. {
|
||||
Name = idx .. "Score";
|
||||
InitCommand=cmd(x,x_pos;y,-9;shadowlength,1;maxwidth,68);
|
||||
OnCommand=cmd(zoom,0.75);
|
||||
};
|
||||
Scores[#Scores+1] = LoadActor("filled") .. {
|
||||
Name = idx .. "Filled";
|
||||
InitCommand=cmd(x,x_pos;);
|
||||
};
|
||||
Scores[#Scores+1] = LoadActor("empty") .. {
|
||||
Name = idx .. "Empty";
|
||||
InitCommand=cmd(x,x_pos;);
|
||||
OnCommand=cmd(zoom,0.75);
|
||||
};
|
||||
|
||||
end
|
||||
|
||||
local sNoScoreName = THEME:GetMetric("Common", "NoScoreName");
|
||||
|
||||
Scores.SetCommand=function(self, params)
|
||||
local pProfile = PROFILEMAN:GetMachineProfile();
|
||||
|
||||
for name, child in pairs(c) do
|
||||
child:visible(false);
|
||||
end
|
||||
for idx=1,NumColumns do
|
||||
c[idx .. "Empty"]:visible(true);
|
||||
end
|
||||
|
||||
local Current = params.Song or params.Course;
|
||||
if Current then
|
||||
for idx, CurrentItem in pairs(params.Entries) do
|
||||
if CurrentItem then
|
||||
local hsl = pProfile:GetHighScoreList(Current, CurrentItem);
|
||||
local hs = hsl and hsl:GetHighScores();
|
||||
--[[Warn( tostring(CurrentItem:GetStepsType()) .. ", " ..
|
||||
tostring(CurrentItem:GetDifficulty()) .. ": " ..
|
||||
tostring(hsl) .. ", " ..
|
||||
tostring(#hs) );]]
|
||||
local name = c[idx .. "Name"];
|
||||
local score = c[idx .. "Score"];
|
||||
local filled = c[idx .. "Filled"];
|
||||
local empty = c[idx .. "Empty"];
|
||||
|
||||
--assert( c[sNameType], sNameType );
|
||||
--assert( c[sScoreType], sScoreType );
|
||||
|
||||
name:visible( true );
|
||||
score:visible( true );
|
||||
filled:visible( true );
|
||||
empty:visible( false );
|
||||
if hs and #hs > 0 then
|
||||
name:settext( hs[1]:GetName() );
|
||||
score:settext( FormatPercentScore( hs[1]:GetPercentDP() ) );
|
||||
else
|
||||
name:settext( sNoScoreName );
|
||||
score:settext( FormatPercentScore( 0 ) );
|
||||
end
|
||||
end
|
||||
end;
|
||||
end
|
||||
end;
|
||||
|
||||
return t;
|
||||
|
After Width: | Height: | Size: 628 B |
|
After Width: | Height: | Size: 721 B |
|
After Width: | Height: | Size: 3.6 KiB |
@@ -1,9 +1,6 @@
|
||||
return Def.CourseContentsList {
|
||||
MaxSongs = 4;
|
||||
NumItemsToDraw = 8; -- xxx: Doesn't scroll anymore.
|
||||
--[[ InitCommand=cmd(x,SCREEN_CENTER_X+160;y,SCREEN_CENTER_Y+91);
|
||||
OnCommand=cmd(zoomy,0;bounceend,0.3;zoom,1);
|
||||
OffCommand=cmd(zoomy,1;bouncebegin,0.3;zoomy,0); --]]
|
||||
NumItemsToDraw = 8;
|
||||
ShowCommand=cmd(bouncebegin,0.3;zoomy,1);
|
||||
HideCommand=cmd(linear,0.3;zoomy,0);
|
||||
SetCommand=function(self)
|
||||
@@ -11,9 +8,12 @@ return Def.CourseContentsList {
|
||||
self:PositionItems();
|
||||
self:SetTransformFromHeight(44);
|
||||
self:SetCurrentAndDestinationItem(0);
|
||||
-- self:SetDestinationItem( self:GetNumItems()-2 );
|
||||
--
|
||||
MESSAGEMAN:Broadcast("SystemMessage",{ Text ="Test" });
|
||||
--
|
||||
self:SetDestinationItem(4);
|
||||
self:SetLoop(false);
|
||||
self:SetMask(270,0);
|
||||
self:SetMask(270,44*4);
|
||||
end;
|
||||
CurrentTrailP1ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
CurrentTrailP2ChangedMessageCommand=cmd(playcommand,"Set");
|
||||
@@ -22,14 +22,11 @@ return Def.CourseContentsList {
|
||||
InitCommand=cmd(setsize,270,44);
|
||||
|
||||
LoadActor(THEME:GetPathG("CourseEntryDisplay","bar")) .. {
|
||||
-- InitCommand=cmd(diffusetopedge,Color("Invisible"));
|
||||
SetSongCommand=function(self, params)
|
||||
if params.Difficulty then
|
||||
-- self:diffuse( SONGMAN:GetSongColor(params.Song) );
|
||||
self:diffuse( CustomDifficultyToColor(params.Difficulty) );
|
||||
else
|
||||
self:diffuse( color("#FFFFFF") );
|
||||
-- self:diffuse( CustomDifficultyToColor(params.Difficulty) );
|
||||
end
|
||||
|
||||
(cmd(finishtweening;diffusealpha,0;sleep,0.125*params.Number;linear,0.125;diffusealpha,1;linear,0.05;glow,color("1,1,1,0.5");decelerate,0.1;glow,color("1,1,1,0")))(self);
|
||||
@@ -68,14 +65,6 @@ return Def.CourseContentsList {
|
||||
end;
|
||||
};
|
||||
|
||||
--[[ LoadFont("CourseEntryDisplay","number") .. {
|
||||
InitCommand=cmd(x,114+8;y,-12;shadowlength,1);
|
||||
SetSongCommand=function(self, params)
|
||||
self:settext(string.format("#%i", params.Number));
|
||||
|
||||
(cmd(finishtweening;zoom,0.5;zoomy,0.5*1.5;diffusealpha,0;sleep,0.125*params.Number;linear,0.125;diffusealpha,1;linear,0.05;zoomy,0.5*1;zoomx,0.5*1.1;glow,color("1,1,1,0.5");decelerate,0.1;zoom,0.5;glow,color("1,1,1,0")))(self);
|
||||
end;
|
||||
}; --]]
|
||||
LoadFont("CourseEntryDisplay","difficulty") .. {
|
||||
Text="0";
|
||||
InitCommand=cmd(x,114;y,0;zoom,0.75;shadowlength,1);
|
||||
@@ -86,19 +75,5 @@ return Def.CourseContentsList {
|
||||
(cmd(finishtweening;zoomy,0;sleep,0.125*params.Number;linear,0.125;zoomy,1.1;linear,0.05;zoomx,1.1;decelerate,0.1;zoom,1))(self);
|
||||
end;
|
||||
};
|
||||
--[[ LoadFont("Common","normal") .. {
|
||||
OnCommand=cmd(x,0;y,-8;zoom,0.7;shadowlength,0);
|
||||
DifficultyChangedCommand=function(self, params)
|
||||
if params.PlayerNumber ~= GAMESTATE:GetMasterPlayerNumber() then return end
|
||||
self:settext( params.Meter );
|
||||
self:diffuse( CourseDifficultyColors[params.Difficulty] );
|
||||
end;
|
||||
}; --]]
|
||||
|
||||
--[[ LoadFont("Common","normal") .. {
|
||||
OnCommand=cmd(x,SCREEN_CENTER_X-192;y,SCREEN_CENTER_Y-230;horizalign,right;shadowlength,0);
|
||||
SetSongCommand=function(self, params) self:settext(params.Modifiers); end;
|
||||
}; --]]
|
||||
|
||||
};
|
||||
};
|
||||
@@ -2,6 +2,10 @@ local mainMaxWidth = 228; -- zoom w/subtitle is 0.75 (multiply by 1.25)
|
||||
local subMaxWidth = 420; -- zoom is 0.6 (multiply zoom,1 value by 1.4)
|
||||
local artistMaxWidth = 300/0.8;
|
||||
|
||||
local mainMaxWidthHighScore = 192; -- zoom w/subtitle is 0.75 (multiply by 1.25)
|
||||
local subMaxWidthHighScore = 280; -- zoom is 0.6 (multiply zoom,1 value by 1.4)
|
||||
local artistMaxWidthHighScore = 280/0.8;
|
||||
|
||||
--[[
|
||||
-- The old (cmd(blah))(Actor) syntax is hard to read.
|
||||
-- This is longer, but much easier to read. - Colby
|
||||
@@ -38,3 +42,36 @@ function TextBannerAfterSet(self,param)
|
||||
Artist:y(10)
|
||||
end
|
||||
end
|
||||
|
||||
function TextBannerHighScoreAfterSet(self,param)
|
||||
local Title = self:GetChild("Title")
|
||||
local Subtitle = self:GetChild("Subtitle")
|
||||
local Artist = self:GetChild("Artist")
|
||||
|
||||
if Subtitle:GetText() == "" then
|
||||
Title:maxwidth(mainMaxWidthHighScore)
|
||||
Title:y(-8)
|
||||
Title:zoom(1)
|
||||
|
||||
-- hide so that the game skips drawing.
|
||||
Subtitle:visible(false)
|
||||
|
||||
Artist:zoom(0.66)
|
||||
Artist:maxwidth(artistMaxWidthHighScore)
|
||||
Artist:y(8)
|
||||
else
|
||||
Title:maxwidth(mainMaxWidthHighScore*1.25)
|
||||
Title:y(-11)
|
||||
Title:zoom(0.75)
|
||||
|
||||
-- subtitle below title
|
||||
Subtitle:visible(true)
|
||||
Subtitle:zoom(0.6)
|
||||
Subtitle:y(0)
|
||||
Subtitle:maxwidth(subMaxWidthHighScore)
|
||||
|
||||
Artist:zoom(0.6)
|
||||
Artist:maxwidth(artistMaxWidthHighScore)
|
||||
Artist:y(10)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -542,6 +542,9 @@ SubtitleOnCommand=horizalign,left;shadowlength,1;
|
||||
ArtistOnCommand=horizalign,left;shadowlength,1;skewx,-0.2
|
||||
ArtistPrependString=""
|
||||
|
||||
[TextBannerHighScore]
|
||||
Fallback="TextBanner"
|
||||
|
||||
[WheelNotifyIcon]
|
||||
|
||||
[Screen]
|
||||
@@ -1384,6 +1387,22 @@ Line18="list,Characters"
|
||||
#
|
||||
#
|
||||
|
||||
[ScreenHighScores]
|
||||
Fallback="ScreenWithMenuElements"
|
||||
|
||||
ResetGameState=false
|
||||
AttractVolume=true
|
||||
|
||||
FOV=90
|
||||
|
||||
ScrollerItemsToDraw=9
|
||||
ScrollerOnCommand=x,SCREEN_CENTER_X;y,SCREEN_CENTER_Y;SetMask,624,40;draworder,-5
|
||||
ScrollerItemTransformFunction=function(self,offset,itemIndex,numItems) \
|
||||
self:y(46 * offset); \
|
||||
end;
|
||||
|
||||
HelpOnCommand=visible,false
|
||||
|
||||
[ScreenRanking]
|
||||
#
|
||||
|
||||
|
||||