From 3d283a41bc9b41aefad9d8cce67c9a8ba513ca69 Mon Sep 17 00:00:00 2001 From: Jonathan Payne Date: Sat, 30 Aug 2014 20:17:15 -0700 Subject: [PATCH] Implement ScreenContinue --- .../ScreenInit background/default.lua | 8 ++-- Themes/_fallback/Scripts/02 Branches.lua | 17 +++++++-- Themes/_fallback/metrics.ini | 12 ++++++ .../BGAnimations/ScreenContinue underlay.lua | 34 +++++++++++++++++ .../ScreenEvaluation decorations/default.lua | 5 ++- .../ScreenEvaluation overlay/default.lua | 6 +-- .../ScreenGameOver underlay/default.lua | 21 +++++++++- .../ScreenHighScores decorations/default.lua | 6 +-- .../ScreenSelectMusic decorations/default.lua | 34 +++++++---------- .../Fonts/MenuTimerContinue numbers.redir | 1 + ..._roboto Bold 80px [numbers-stroke] 4x4.png | Bin 0 -> 27698 bytes .../Fonts/_roboto Bold 80px [numbers] 4x4.png | Bin 0 -> 16998 bytes Themes/default/Fonts/_roboto Bold 80px.ini | 30 +++++++++++++++ .../Graphics/ComboGraph ComboNumber.lua | 6 +-- .../ScreenWithMenuElements header/default.lua | 17 +++++++-- .../Graphics/_GraphDisplay overlay.png | Bin 0 -> 3053 bytes Themes/default/metrics.ini | 36 +++++++++++++++--- Themes/home/metrics.ini | 5 ++- 18 files changed, 190 insertions(+), 48 deletions(-) create mode 100644 Themes/default/BGAnimations/ScreenContinue underlay.lua create mode 100644 Themes/default/Fonts/MenuTimerContinue numbers.redir create mode 100644 Themes/default/Fonts/_roboto Bold 80px [numbers-stroke] 4x4.png create mode 100644 Themes/default/Fonts/_roboto Bold 80px [numbers] 4x4.png create mode 100644 Themes/default/Fonts/_roboto Bold 80px.ini create mode 100644 Themes/default/Graphics/_GraphDisplay overlay.png diff --git a/Themes/_fallback/BGAnimations/ScreenInit background/default.lua b/Themes/_fallback/BGAnimations/ScreenInit background/default.lua index b823b61565..cbd6ae6abb 100644 --- a/Themes/_fallback/BGAnimations/ScreenInit background/default.lua +++ b/Themes/_fallback/BGAnimations/ScreenInit background/default.lua @@ -24,18 +24,18 @@ t[#t+1] = Def.ActorFrame { LoadFont("Common Normal") .. { Text=ProductID(); InitCommand=cmd(y,-20;zoom,0.75); - OnCommand=cmd(diffuse,color("0,0,0,1");strokecolor,color("#f7941d")); + OnCommand=cmd(diffuse,color("0,0,0,1")); }; LoadFont("Common Normal") .. { Text=THEME:GetThemeDisplayName(); - OnCommand=cmd(diffuse,color("0,0,0,1");strokecolor,color("#f7941d")); + OnCommand=cmd(diffuse,color("0,0,0,1")); }; LoadFont("Common Normal") .. { Text="Created by " .. THEME:GetThemeAuthor(); InitCommand=cmd(y,24;zoom,0.75); - OnCommand=cmd(diffuse,color("0,0,0,1");strokecolor,color("#f7941d")); + OnCommand=cmd(diffuse,color("0,0,0,1")); }; }; }; -return t \ No newline at end of file +return t diff --git a/Themes/_fallback/Scripts/02 Branches.lua b/Themes/_fallback/Scripts/02 Branches.lua index 49e967b52b..ef937a2f60 100644 --- a/Themes/_fallback/Scripts/02 Branches.lua +++ b/Themes/_fallback/Scripts/02 Branches.lua @@ -119,12 +119,12 @@ Branch = { if GAMESTATE:IsEventMode() then return SelectMusicOrCourse() elseif STATSMAN:GetCurStageStats():AllFailed() then - return "ScreenGameOver" + return "ScreenContinue" elseif GAMESTATE:GetSmallestNumStagesLeftForAnyHumanPlayer() == 0 then if IsCourse() then return "ScreenEvaluationSummary" else - return "ScreenGameOver" + return "ScreenContinue" end else return SelectMusicOrCourse() @@ -215,8 +215,19 @@ Branch = { return IsNetConnected() and "ScreenTitleMenu" or "ScreenTitleMenu" end, AfterSaveSummary = function() - return "ScreenGameOver" + return "ScreenContinue" -- [[ Enable when Finished ]] -- return GAMESTATE:AnyPlayerHasRankingFeats() and "ScreenNameEntryTraditional" or "ScreenGameOver" end, + AfterContinue = function() + if GAMESTATE:GetNumPlayersEnabled() == 0 then + return "ScreenGameOver" + end + + if STATSMAN:GetStagesPlayed() == 0 then + return "ScreenSelectPlayMode" + end + + return "ScreenProfileLoad" + end } diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini index 3a95741aab..5f8810c22b 100644 --- a/Themes/_fallback/metrics.ini +++ b/Themes/_fallback/metrics.ini @@ -1843,6 +1843,7 @@ ChoiceOptions="screen,ScreenOptionsService;text,Options" ChoiceEdit="text,Edit/Share;screen,"..Branch.OptionsEdit() ChoiceExit="screen,ScreenExit;text,Exit" # Aliases for the future. +ChoiceContinue="screen,ScreenContinue;text,Continue?" ChoiceOnline="screen,ScreenNetworkOptions;text,Play Online" ChoiceGameSelect="screen,ScreenSelectGame;text,Select Game" ChoiceJukebox="screen,ScreenJukeboxMenu;text,Jukebox" @@ -3654,6 +3655,17 @@ CodeBackspace="@Select-MenuLeft" CodeJumpToEnter="@Select-Start" CodeEnter="Start" +[ScreenContinue] +Class="ScreenContinue" +Fallback="ScreenWithMenuElements" +NextScreen=Branch.AfterContinue() +PrevScreen=Branch.AfterContinue() +PrepareScreens="" +HelpText="100" +TimerSeconds=15 +ForceTimer=true +ForceTimerWait=true + [ScreenProfileSave] Class="ScreenProfileSave" Fallback="ScreenWithMenuElementsBlank" diff --git a/Themes/default/BGAnimations/ScreenContinue underlay.lua b/Themes/default/BGAnimations/ScreenContinue underlay.lua new file mode 100644 index 0000000000..27ffe34cdb --- /dev/null +++ b/Themes/default/BGAnimations/ScreenContinue underlay.lua @@ -0,0 +1,34 @@ +local timer_seconds = THEME:GetMetric(Var "LoadingScreen","TimerSeconds"); +local t = Def.ActorFrame {}; + +-- Fade +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0;linear,0.5;diffusealpha,0.25; + sleep,timer_seconds/2; + linear,timer_seconds/2-0.5;diffusealpha,1); + }; + -- Warning Fade + Def.Quad { + InitCommand=cmd(y,16;scaletoclipped,SCREEN_WIDTH,148); + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5; + linear,timer_seconds;zoomtoheight,148*0.75); + } +}; +-- +t[#t+1] = Def.ActorFrame { + InitCommand=cmd(Center;y,SCREEN_CENTER_Y-24); + -- Underline + Def.Quad { + InitCommand=cmd(y,16;zoomto,256,1); + OnCommand=cmd(diffuse,color("#ffd400");shadowlength,1;shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,256;fadeleft,0.25;faderight,0.25); + }; + LoadFont("Common Bold") .. { + Text="Continue?"; + OnCommand=cmd(skewx,-0.125;diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25)); + }; +}; +-- +return t diff --git a/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua b/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua index 8695387dfe..0a5b77322a 100644 --- a/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua +++ b/Themes/default/BGAnimations/ScreenEvaluation decorations/default.lua @@ -1,5 +1,8 @@ local function GraphDisplay( pn ) local t = Def.ActorFrame { + LoadActor( THEME:GetPathG("_GraphDisplay","overlay")) .. { + InitCommand=cmd(y,6); + }; Def.GraphDisplay { InitCommand=cmd(Load,"GraphDisplay";); BeginCommand=function(self) @@ -253,4 +256,4 @@ t[#t+1] = Def.ActorFrame { OnCommand=cmd(diffusealpha,0;zoom,0.85;bounceend,1;zoom,1;diffusealpha,1;sleep,0;glow,Color("White");decelerate,1;glow,Color("Invisible");smooth,0.35;zoom,0.25;y,SCREEN_BOTTOM-72); }; }; -return t \ No newline at end of file +return t diff --git a/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua b/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua index a4a00ca7e6..813de9833f 100644 --- a/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua +++ b/Themes/default/BGAnimations/ScreenEvaluation overlay/default.lua @@ -58,11 +58,11 @@ end; local t = Def.ActorFrame {}; GAMESTATE:IsPlayerEnabled(PLAYER_1) t[#t+1] = Def.ActorFrame { - InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_1);x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y-34); + InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_1);x,WideScale(math.floor(SCREEN_CENTER_X*0.3)-8,math.floor(SCREEN_CENTER_X*0.5)-8);y,SCREEN_CENTER_Y-20); CreateStats( PLAYER_1 ); }; t[#t+1] = Def.ActorFrame { - InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_2);x,WideScale(math.floor(SCREEN_CENTER_X*1.7)+8,math.floor(SCREEN_CENTER_X*1.5)+8);y,SCREEN_CENTER_Y-34); + InitCommand=cmd(hide_if,not GAMESTATE:IsPlayerEnabled(PLAYER_2);x,WideScale(math.floor(SCREEN_CENTER_X*1.7)+8,math.floor(SCREEN_CENTER_X*1.5)+8);y,SCREEN_CENTER_Y-20); CreateStats( PLAYER_2 ); }; -return t \ No newline at end of file +return t diff --git a/Themes/default/BGAnimations/ScreenGameOver underlay/default.lua b/Themes/default/BGAnimations/ScreenGameOver underlay/default.lua index 689915f69a..d53e40b5ca 100644 --- a/Themes/default/BGAnimations/ScreenGameOver underlay/default.lua +++ b/Themes/default/BGAnimations/ScreenGameOver underlay/default.lua @@ -1,10 +1,29 @@ +local timer_seconds = THEME:GetMetric(Var "LoadingScreen","TimerSeconds"); + return Def.ActorFrame { InitCommand=cmd(Center), + -- Fade + Def.ActorFrame { + InitCommand=cmd(); + Def.Quad { + InitCommand=cmd(scaletoclipped,SCREEN_WIDTH,SCREEN_HEIGHT), + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0;linear,0.5;diffusealpha,0.25; + sleep,timer_seconds/2; + linear,timer_seconds/2-0.5;diffusealpha,0.8), + }, + -- Warning Fade + Def.Quad { + InitCommand=cmd(y,-4;scaletoclipped,SCREEN_WIDTH,164), + OnCommand=cmd(diffuse,Color.Black;diffusealpha,0.5; + linear,timer_seconds;zoomtoheight,164*0.75), + } + }, + -- LoadActor(THEME:GetPathG("ScreenGameOver","gameover"))..{ InitCommand=cmd(y,-16;shadowlength,2) }, LoadFont("Common Normal")..{ Text=ScreenString("Play again soon!"), - InitCommand=cmd(y,36;shadowlength,1) + InitCommand=cmd(y,36;shadowlength,2) } } diff --git a/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua b/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua index 6cfb0d5c13..1582ee9d74 100644 --- a/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua +++ b/Themes/default/BGAnimations/ScreenHighScores decorations/default.lua @@ -28,7 +28,7 @@ for i=1,NumColumns do OnCommand=cmd(diffuse,CustomDifficultyToDarkColor(s);diffusealpha,0.5); }; LoadActor(THEME:GetPathB("_frame","3x1"),"rounded gloss", 18) .. { - OnCommand=cmd(diffuse,CustomDifficultyToColor(s);diffusealpha,0.35); + OnCommand=cmd(diffuse,CustomDifficultyToColor(s);diffusealpha,0.125); }; LoadFont("Common Normal") .. { InitCommand=cmd(uppercase,true;settext,CustomDifficultyToLocalizedString(s)); @@ -39,9 +39,9 @@ end t[#t+1] = LoadFont("Common Bold") .. { InitCommand=cmd(settext,stString;x,SCREEN_CENTER_X-220;y,SCREEN_CENTER_Y-168); - OnCommand=cmd(zoom,0.675;skewx,-0.125;shadowlength,1); + OnCommand=cmd(skewx,-0.125;diffusebottomedge,color("0.75,0.75,0.75");shadowlength,2); }; t.OnCommand=cmd(draworder,105); -return t; \ No newline at end of file +return t; diff --git a/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua b/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua index b70b31c1e2..3a99044801 100644 --- a/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua +++ b/Themes/default/BGAnimations/ScreenSelectMusic decorations/default.lua @@ -170,7 +170,6 @@ if not GAMESTATE:IsCourseMode() then local song = GAMESTATE:GetCurrentSong(); local cdtitle = self:GetChild("CDTitle"); local height = cdtitle:GetHeight(); - local width = cdtitle:GetWidth(); if song then if song:HasCDTitle() then @@ -183,27 +182,15 @@ if not GAMESTATE:IsCourseMode() then cdtitle:visible(false); end; - if height >= 60 and width >= 80 then - if height*(80/60) >= width then - cdtitle:zoom(60/height); - else - cdtitle:zoom(80/width); - end; - elseif height >= 60 then - cdtitle:zoom(60/height); - elseif width >= 80 then - cdtitle:zoom(80/width); - else - cdtitle:zoom(1); - end; + self:zoom(scale(height,48,128,0.8,1.0)) end; t[#t+1] = Def.ActorFrame { - OnCommand=cmd(draworder,105;x,SCREEN_CENTER_X-76;y,SCREEN_CENTER_Y-72;zoomy,0;sleep,0.5;decelerate,0.25;zoomy,1;SetUpdateFunction,CDTitleUpdate); + OnCommand=cmd(draworder,105;x,SCREEN_CENTER_X-256;y,SCREEN_CENTER_Y-84;zoom,0;sleep,0.5;decelerate,0.25;zoom,1;SetUpdateFunction,CDTitleUpdate); OffCommand=cmd(bouncebegin,0.15;zoomx,0); Def.Sprite { Name="CDTitle"; - InitCommand=cmd(y,19); - --OnCommand=cmd(draworder,106;shadowlength,1;zoom,0.75;diffusealpha,1;zoom,0;bounceend,0.35;zoom,0.75;spin;effectmagnitude,0,180,0); + OnCommand=cmd(draworder,106;shadowlength,1;zoom,0.75;diffusealpha,1;zoom,0;bounceend,0.35;zoom,0.75;spin;effectperiod,2;effectmagnitude,0,180,0); + BackCullCommand=cmd(diffuse,color("0.5,0.5,0.5,1")); }; }; t[#t+1] = StandardDecorationFromFileOptional("NewSong","NewSong") .. { @@ -276,11 +263,16 @@ t[#t+1] = StandardDecorationFromFileOptional("DifficultyDisplay","DifficultyDisp t[#t+1] = StandardDecorationFromFileOptional("SortOrder","SortOrderText") .. { BeginCommand=cmd(playcommand,"Set"); - SortOrderChangedMessageCommand=cmd(playcommand,"Set";); + SortOrderChangedMessageCommand=cmd(playcommand,"Set"); SetCommand=function(self) - local s = SortOrderToLocalizedString( GAMESTATE:GetSortOrder() ); - self:settext( s ); - self:playcommand("Sort"); + local s = GAMESTATE:GetSortOrder() + if s ~= nil then + local s = SortOrderToLocalizedString( s ) + self:settext( s ) + self:playcommand("Sort") + else + return + end end; }; diff --git a/Themes/default/Fonts/MenuTimerContinue numbers.redir b/Themes/default/Fonts/MenuTimerContinue numbers.redir new file mode 100644 index 0000000000..7dee04edd0 --- /dev/null +++ b/Themes/default/Fonts/MenuTimerContinue numbers.redir @@ -0,0 +1 @@ +_roboto Bold 80px \ No newline at end of file diff --git a/Themes/default/Fonts/_roboto Bold 80px [numbers-stroke] 4x4.png b/Themes/default/Fonts/_roboto Bold 80px [numbers-stroke] 4x4.png new file mode 100644 index 0000000000000000000000000000000000000000..0110fd7bc947503e79928bf9ecd83829ec49a252 GIT binary patch literal 27698 zcmce-byQSu_%Av$ba%HPB_%11G|~dnB`pm~cL~xU-JOEc%?Q#0($d}CgA8!@e9!r< zb=Lj++`HG>Yi2Qfm>uu?JfC`_G}IJuFex!XAP|m{qU>7`2n@Uh=cA(nFLF+;k-!Uv zi=w_e2!ut1*ukL8Y;q6?Q{7HRMnl8a`J=PDt+NZgl8g+!i<`5xor4t!cWlVn{SO zu)kpbMcZO1j0-J_{4#vM?ptI(+i|-y`q(%pv0HtaQ$LOdMaNE6ajUN3XYJaDQL~gJ1z-VlSRS(YiojuPH2a5L7h_%0vD63GYBU!w4J{ z28Mo2e5H&YL=2MhiIXk`Ny&qQa?+W#K>5fZvk{B;n;;ENkQqzh&J-vp2bSRr1{r>3 zAOYtmg6N5?B4t6gqM+*WcVFZ{dORRvYvo_Upue0T9wl9CMbP(V5OfS5s}6*Y4dT&^ z3}*u&`-02{85zAmVHqG|`3qgK^A|PvyX?T7%BT}-WfGPPHbm!iMbp*gqGcUZB6~qB zXbv&Yl;Y~~&Y<88=EqyR{0#!-Cz1eHd->oshFdc>CK%U*Ysz`hjr#QL{rk6(bjc%QjMVe{RQ1i7sS1hD@bUapWoiv z`upaWw4wR1uK%M=k1165!Qn1I41RmP*0sSD%xfI1fDBvf`F*8QLOq^@5%zv*Ctd;G zjP(SknR@n1>3ypnJMpF_p=+FMX3QmT$+IZwB(}cilTVf#s~q=85~~8B?;j+JVwxh|%vf>}K54 zQZ)QfP1}fM7hJ9$ofcei7rcMw=(#^xJAyHgUk{=anKLXzg5Q79V~j&5%Ls=t{8U6H zjAo)AiX_&2rkp6C`10)+ZF(I=nhS9^i1244`L;ySK@e{UJfcJ4<=5akP4Q{$Mw!-f zA<8iMLaaZQA75t1ljdjraciIyj}a``{ZnO&w-7HOGr$AgBS+)=<-o($-z)v&6$eJL z#mJ9m)!0@2l;7V~Beh3eTa5qkL?#TDgJK9GdrH%r)4o>JQ_)lVt5{A?&BRZzfFXo| z6sFn3@+`Srxq-Qj;O-asd)}9y^%OZ6X9?qpxbb}>Wqt`U5k|@Iva}{ZlztRzPZCbb zPddG2+~=ss;#Z_(OdeXWw68-G{>nlBVlaFwXRCLMZ;NV+;ldCz=e?9`F-&WN_3iM7 zHx%3W+x*+8R_VO2b&4|IE|(W*69~i`NPjD6dRwdcxtxgqQ>O4}D5;Wi$+yCkDN0*1 z+grQZy^n1K%PF*KX@7JlNA?x=()N(9Jh5>iNJ0l9ZCEL?$kE7cC_Kq)(^X0-rlKhZ zw0VSH9;WYR;AJ@L=&?7k`;jCLW2U@GVNRi9=hm*MEUjFr#L~Ic8PSffFwyd_k=NnV z+N{8sPOZ|Z%+Wa1qSCUd5H0^)X;bd3Em<6({}6?$->cHAE>oqw{_q?Ct3fH0{yil@$fTGJJ3NbnD+rSzGE!A>k?R_+O8XM3f_7QYZl|)7^xQ6!pj;K_vK8;n-G9{n+z;9h zj{nN86|nVC>#>(Ks)(u#jQ$=i9G%S&$P#}!$Ge-gn>ClU z+H7XvWx&x?-qd2HRJUbNs(;ed;S_EltY4z1V_;k_|1Ia+^V#-q?PUaIt!l|?Rk^b^ zz2DE9hMFpxDZX$2MP00Ea%}Q9w|P%y)7)3ndy?Fl?BC`e`yh^n^LZY(ipGE@z`enZ zSmd3^O6FMhiKKtuRq8&sjovu^_+P%wCZZ9xUv@cKSyKu&WHzntp_h@-QOY4BTxk+q zSycVYgPmJ%K3=;Tulr11=VaAq^&FQk)}9ES*qwY{%KOcq$Cj(l=l-X6P-abYdqNT` zFNMc`wK_muMm^Z3ahH+Xf;&<7+uZl&63@z8^HVa38wt0(O^Ho0p%va0ebe7U(B{GB z5%pf@T+{GXnLx%T%O{_w2~b(kbFd9kRPgIyL&!bM$B&^qPEusi>ZWe~_;pNv>uZwN z@gd(rwts$OupK-~_{MO%n?9B}W``TD5wJJ=2hDuPJi0dkn)C63_Hxpg=NCkt z&*Lz?duV!Wo^ekIPDK8dF=D4xyHI3T^+`HP>=5u~>f${O`C!?WM7|9jiS$q*(6=M zr)|JG$BtHKW2I}|JsLGEoLZIpV)XcT{qSOfQ1)rw(=lNW;d)Y2NrbX4Cym}tXY~i+ zIx$!8Ma)eSlot{2P^-mSzBI8r&Zt)%>!#HNbTa#>+6SBb91i)}2(~}O(!tyg_di^k zJ2qC==i%;*rLPSYRliy-$E_!=_jgt} za}9A*E7Nw;aGh}G7aDL@-!&Xx-^eX;r;V~Mwud&!v=()XwRBjO4ULV8N@^EtUupl- z7Cf0;ZZw~RIZd2U`F7m!AI&TpcHBNl40SE)fOS-7tY@t5mG0|rC2OK8_hG5`j>g~A z99@qGkS38H&=_%>=31v`XePzA-^S0rI8?wLpzC_fIrZek5ya7n&F zrS_2B!hXn9vdzVKOioIUe*o9rlG$Qmlkcv@*y;y7=hHU)kL#0iPtm)g9in4K7cCzz z>K3<&bX#;YYeh^Q4?Z4iTU#YcdenKi@$bTEy|ccA3MFwh`0HEl5wAXZ`AFc zb2wAyNQHzHYEPtZjfsto4JHRR2oJC!n*kd-6xi^Cf`fw@KuAbPG9Xk`)Cdr8-2eRp zlj4ugAE9;CmhgUOq-M}%urxj1VC;Q6m>%*G%o5}ooE9{)^HOzwbX(p`Ktp1z9<7D` z$q{YL1Z7+js~lMZ%z?H8<_m(D87!@uptc34|L%Rc2KvL3c;3GM&nos-0fP|AZzld7 zwS@wm=~aXl^mV>nVRGVY$hp#*&s}pX)Zw^OeT8f=5H=9T9c9z~$#{%!o8K!QdKkmxHYU#nQSBFb$NTrq42@6vwEdJz(X zep8JcXiayP=eQVWeKFk3@q(&_u7#%D<*~E0wAAZ(p%KMG+&9SOl^6&gGyI==_N$jX zJ(o`cXMAe{i%r}%YcPK(>6*}|$*OPPj5~a;5A^%``h@GPM~8FyY~ogTFa5XnXrlWf zL`6l5CTu^xqQ=D&6cW01TIsm6T~en`Xgn))T$FLz;`@e7kF^$WMF7&!)onhiX+Oy{ zeEXJ{F;U6U(ec>-a#X0jVd#5sAhO3^GLKTo6BSfG|My6vfPg@s(2CdQ#~>6e(k&y; zb8 zFrtSO4c6(~D$|F9_tX?{tTWFh#{u3Lm;~0+me?j5o!|Gp2r8%amxS}GE^yyqo1o|> z$3=?Qpq>DAh^J^s;JEnhZ!Ba;>rna@aG%bO>c^WLm)ovm;8P>ez`Pha`kp|cGcu70 z;nR_kkxQ_fyL;Jame4p}LUMBQwhn&J`dJXZ6!%%V<6;?~2CP14F=*A3G!Qt$R*&Na zVIqCld8F(!8Bvd;S5=P4s?U&VZkU>yQ$Ib~KzDNj?d|L;I5;^+)pt&1pCuNE``&zf zr>jes6zD?-lY|;V&t%a-i%kQ5twDI@U=t)0dk2T32CX1lejj0S?1-Gz#MP@<&!?e) zD283`;JJf?gM}mFg3iuP)Bd}0XwS#^sXj4Fu&3?#X5-DxO@L^)t({$K@x#h$l;col z*bhUuj>Ur|bslnTg`$a(3hM4A=Il9|nDrrdzSO8Tuw>n3b3=pnyLazMOG6y}B}``{ zaHw_=e;Srt#t~!V$X0^|?;G_dQk=TvI19hdT`(tM^P0liH7-& zsil%o?=}$Zx1fJZCFqb&7ucjO2nm*Q;-`FY00zkWyRz=Y-GsAKYgHG*$5<}-&^v#5 zLu6N`v&ih;NxS{V8rSu13YfhDjL!GyM_+{r92XN46ApaNMCYSES#l%E)~~j(xah1t z&^9O3GeGO>@IxLF$T`mVA_tiV2gZAb6120kGqax^HaR&7kBEqHyMy7MQRt_m?oR|g z;(!0};lr0HHn<2zLv!;g7o9U2t?B?XefK%KOIrPYiNPU7G&154E53jJ-duK!LHlv* zMO|G1ca=I-)+N4#v)>GbbS-|?^0>J~y}m$Mizg6TO;(p^Wm@j3t?G@9jg4zRACdB= z6bz<#e^p#iP#~6*wW7#$2HTA1PKr-~o~}Ln&P{=wfa8ZlGTqa8yOO1mpw2-`h5NY| zY2C$(o;3RT*4%1?T{4k|JJy+0W;|rB@W2#z3G2__zj}$~(dvOWiHc0-o=$RdeGZOf z9V{sdV12{Dz3O`b`&lN3!^wfw<>ed~KLvXHK^)Z37u%a59jv}&cwi+d%@1WuzP#I`WKij=fDKp)gj5=LnimCyIa~Ue}E*83bX(bL@3zfS#XV%ZESbETX-gaW~9fP&18uRui2#Z1>iaCGHoMZa!}j*}B6Z1!tHjF6N+iY@$%7b4Ny(?t z+1XhW?$w;Mw6t$D;gUF8UL>~MgK~X!MA)dhKKjV*o~IIJa{M_`eXsIT#)a~q9gres z>jwvitJY5}JKNh4}l*pcSaQy(C4X1j*pL<)gvZYF(5oR zB&z}b*?(Gl+{eW|-9}P5S++Md*O0t#(yV^I13iZ>_4M>~PS{@6JI$qz?~Y97K5;^8 zh{XcCt2sZ|+mrcXxP1X?N_cpW#=S z%0I0V@NXBrvztX{ZWmw8SJbqB3e#6mJ@TbRR*?fR;KZ=t1c;7~4q8XK4De8K8M&Wd z_e0BrpG888iFW?PJh3fcV(TL)>%fm-(;cr z&DK@t74w)|;=hU=9`hk1L6e*n+sUt>Lz1avGB>|o&?%<*|!>C31QGdGQV()t+ zEUXMJq#YgLQGJmwnrnTY`3ihiW(Jqoy#oeKD|5FZ6K}Cy!#=Ilf&9= zlhd-#&V&M;@t)vk`6*KCjS2kBZC3)Ld6bUqC;pkIgz}(Wheg`&j=p*(54;!(vf{E+ zx};YShSX>&EOyd+9PP>r+uDa1f?9F8HL~@|a7QCs`DGKcGO^XmCPzFG zikzhBPfEy)tfzL)&U7yKqV7At&+REcuscXiDbmBL>g%WG*Rt_MnUEooq+S3Q;{t^J0ZSq@-5bO8v1ZZq`F4P!v{3_wq>w@ zD#HsoWF8K7KP7kfdV9v4n`WD>e}m)|N1EC%6WpQK193EmhRsgPM$O&8-ECHBh}9`? z*zd9=l9Fzh0>;`j`WmG2V%&BQZLH|6*=~-=rw>q0Ffs&eGnc1IDI-%$pyJ*j$G!Vx zF%Tyl{T-=={~czt1L#4CendOW4sU2;`yIEuDGr(yJZ*sd>ARIaQhB8m(abEof<7qB zBbbOq4coR|YV}nz50mImdH{L`9lCcUD|7caLqd|GqcCTz2nt7%=Z~xo zgVTlGOUqPME*q$OW%j>2-~~2gYBwfha6A)=Hj9j!3*bXeFp|{_*a@emO(R}-ML!@$wjfGh-qu3t5$cQYJ@RXHD9967b zN~sjwXyz=CThMz@S$2w{txYKr7Y04Whc(AktDNCq3$9wk{?K^Mg4sSU9Th{5M^BBF zyqBI*uAlv1^S|mq?zy_U+B|Z?C!twK+CkPAV)Uu8`XFdvCW0dW{QLZ+= zln3G1Ost6$2LaOu3;`E8&_FO*(4kQc%0TBFSM51}(0=)w9@{&b8keg*&0S$rGt75! zsT!LpiV=>+#>>3i6A_}GCr1g*4Bqd0hnPVxFe374@pkj0dXk?{n=LIn57t#*^5(U2 z#q0G-!yXj>jJ#@pIxV~qzJlZG{;juBZ!Wd!FHQI(YPB(Cf83RP zYMs*DW34nek%~Zn64D6&&`Vjl4``LvKAb#t_H#AgJC3Ec$+Isj!4wdlbcfg8 z_*U@3Z{Lmuxw&=#beT_)fmaw~CPTr~K%qEO+~42-MVojycBJM(fNn?6i#LQ)VBU;( z9BQv2aDxss>Q4TIsJ{2T2D3{T+TTY@u=goblrf7mJx^Es)kadhu}CBWB?#_6Gk`*e z@B^^YLk}1ffjhDxdfIU*!oB(fIF9T1=!tT8iYJ{xMn!3R52$nv{`WTt%y8B6wPL|q zn?QGDo^+L0G@qQnI*Suk2i*Y=|E%v|g6x}hhaY0^BY|H>!=-K^CkvYiV-J`Nc~hch zdnAv!qzrD;)rvdVKoyZDP3KiH!LV?Qi^` z*COG8e5}#kx^sUK@PvPJt~LzRqmnq-ZCRL~4}H3tQeRDvxiRZUw@vU^_cT15c+E6qE`FxCZiB0@ zG+I%ZL@4DPxd77)eGLD=Ldy7};6un#M8TkVG2#9l05 z!CzDg58}yAneUF}m^XLtejG@O&x6X~efdZzrBiu-^IXG!kp8Ymk`CrsPVL!&DGBxL zzF(foJVOhf(=6!HV*WeObUf1Jcst*;Y`1tLyx6p;;FZ(pcppF_COL`8vM# z&F%QKp|yHEeAcA+&67X^(BEa=_IE3P9og8hSVQ7J-cyjdrkEF%(%Tw@_bQzz>A?&Q z4ShH3mOK&}%)6e!J&^*}&nLOT5+ijcuJyDf|GrN#pZaiHofC;K_%Z}3mw)Z;7#kZa zUxbD~S5AEusJnO3UzbxP?c`KrpB0?S<0{awk@=zLiOIk(@L5l7N|Q*)n=?DPM#A=N zrJhpa~x^iLaJjgqnhXs1(1Ou z-n|HnoAZYPjdE@^ST}diY6e5sBeix9&ZkeGMg$!fv^Nq#P6^l4=Vw{&pj0kn5yqL& z%lG-NMpU^mL~?R+ZKy80dbuDBs?N{IAA0Q>(#&~_IHqT~;Pd4lBrvd^&@}@jrNaMN zzs--Qi~lLWNP}Y8wPZ$_fX3r_Vr0rpAf-Z^v^%?;8DE$5!nAh>4i515f3RY+@)H{Vuv9XSRxRuC6#-po zl;Xeyn-G<#Gf~lL3()oT^#~D3fFny|Lh7YbkCAo>b)J>}>Kj4~*}j`kw0a+5XX}w< zi`sT}c3tuil8b*dBX!RfsEsB(h;VXd--OXIqI803uE5+#+fXHL&#f*(*;Itqv>CGO+dX8lb;4l^ zWBp}1EV=yDVqV`_YQ+EA)$%5wgRu(;Nlji?!w^JqpD7r@cfTn~^POSwcE9=kRS+p5 zL`_HwB`Mm4z{+e9Y4~}I@9l|u@+b9g-@bJk zg|(d14WBssJ)u@Gffca+hO(c%{`Bd(0AS@bd4sO>1Ran64#_qw*W?lv#!=5?G1hp8 zS07)CVektGd@6BWQ(N*%bA6yF1|!wY!}-`P5)oDW3eX{Jf7-IiczSw%Tm&S&#wJ?@ z*mt$}EEr4#s=v~Sk}v<gps{*$yeI<{!+UuOSSywYFD@@vr$d%|q{SqOy+sF*-Ap_B!7=;{Y6g2^`NSlgO_;2+Ph9_} z5X^Y@K(lK5zr|mI(YF0H?BTUr#W{Y^sVr_$rt zlF0fUjg{UYoP0Nwh{HqQW6GL&cFk)#Wi@(#*P=Wl-*;*%uYW;P5U9RlDwTq9C{3b3 z6TYKbs$Z3t(fqJ~m zX~gKNNIKXe*_c2#*RCd}7bmLZ!AoM^owWJnQtqBpmIOAq-WyaoAt>qp;2DK2YpH_7 zXxB-h1ah6Txir5BRY%Pe=z&nC&RLoFf+-qYPbpM{Z7tWT?;RYMPfLV3!ejaW$71=vZrap%TV}EGD3WoEWTIB1u?Lkvji4+~ zu>&A{@V_A3HKesUsboO0u@+3eQUSD;(}LK$r-AmBzQRG&E>u5=-pTr8FBC6$&S9}j zObJV5!dG38*`Lb@-T(P_Oubh>Yq7znU{xuZ$^m;ea5|0y_+6azy9~%@rY8b&H^!{w zH=t)ytDr94;MY%_XK&ib0+LR|=hMHolFOWRgWwVPTO`vnGn@bw7{^0~2nTdaz5t4L zzbRdmY=n=m?`Iz$pNO$+VZN5Yr^j4Gjf%Oi_Y87`viTN@PV8--AqAo=NrVgD(1D-K z7H|Hv1Of;+y*A23vj5f^oQE6$?wI}i_phC=6adeu&M42)pfR$i7LZ#><@DLhP8O-lSIEJ%2jvMW<{jc@Mt;T4{C14e_6AzC_ZO$ZO#*qxk?$tomb}i143veK+-->tX z?TW9n8KhW(OD#ua`v{g+TApByT*qSf1J35c2nEmuReGU&8p;-EYj@YibhGEFSY{6g z2WR_m_M38R2^_G`2)q};*c6(%5M(p`ccf<&W=K+q2CjWVXs1!{2O4^{s;0RRQWd#ZBWiCt_H&%g?EComtu7 z3OfAdku;X{+xboL0AIC2r|*pi75=M*bRA?9VF9)V@E!O?Tk80OI;aGMCkc0vwxq@V zjJD#vo0EIH8Ysytoq&gc?xY-g3H1*1brgVS*E*(oxHnN0mvssGlNJFjlc4V|Dq=iV zhy|d~kv8qi`YBc(Q#rp!``K!?>VBZHGoENS{1B zfxU0+kC$9IXOK!i6bQ?J(+pj=Wx+{^nF9>M9QvTj-C$wjeH@e z?81*im4fs#edGM5NZQ^8)W;j}0>}L~!gcu-TMg(D>!*IZq704_PxHq=SZOGwxLo4v z&EC9uV{P=jiAX(~o-!8K{=ia?)P>h9TBC#GcOGwWLebKje9Se3dnpQDKLxFz-HZr# zq3xy6%%M?Bp%{!x$^A=#LTC}*R zF>dc!AUH^qF7{7W1HFgcGp;fJCt3Z}al;;iV1j}3C~X%z6$zQgf|I8lWMUho)}Ps} zz5g=aEAbU;uCk(n?M8a%hn@p0!zNd_;P|a%GL2Xa?+y+`6VP_$?0+Yw;gP)ZAWw-B zGA6y%&(9$q0R3&EspqJY$({Q_JfuSElEnx|Oa`ajrizLRW%sC)#5wQg%cLCXbx*&? zTL{0P;5#F^$BQUx^Y?Y><1G6o5pu_LDxohOP}y&C5w7XrNH{|IY58+I$op{0l@M-e%~Cd4H#EaqPKL& z9wR5G1~1-}NbTfrJX8P^$w*&ce{cqATr&uPJ}#PQ_L>~q-Pv*U!dzOjLtED)sKkyR z7o`2kY>8t_R#ho$(Y?DnYS<$cwqFVxoL|=lcK$lfM%cp1@s8y__zGdg5uF@c+7*wc zDDRNOuKvhuRz9NP(H>>I8IS!{1mYgCuVkP~>2gFAL|=+q;M&#_Ov|VP$3RFG!|Qp{ zJ*QsUl~&1m#~vo0#|tF04s4Rh237&$-@a+1N>1VVUs$9A*a?HZ54ty>Q0=$ z1AZkThe1F0W4qe8y$L!Jj&S)7sHG`5xHIcaba$?>^0Bv^7%lK<#r_uM+y};1CVbUU zll8zv{)GlNWSZX{14KHf4to>->zPZfy#iH!%-6%8TfNjq^lc?pDHPKE7U<_bo~+7%3DS*{L zhYq7HCHWiJPqxIBi0PsSi#t2#{kU^xJrS32+jI&;b#t>WOVH{k*C8YClt`NG+h9}u z)ayefBlwhMnKjT)qat3f9(N!{MhD=ShX8n$53oRvyz&6#@A=Wi#pM+-=Jn}(eVHMA zN#~;SJICP@h*L|O5vC}>(TsY5;4rFLA0TneZYSy(V5Y)J1g(fAMv_25hvFrqrR@$! zOioR0q90*vpzyt`)=Ly}UJ-lB7Iuf98@vTf3YRbDUGR$$vS0ol?H%kKBMT_}rQYZ2 z?hf)M&x8T!-)&7+2za&~b#-nxUZS}&=m48*2DDeAYlP~1TE?gtnL$I zV~_Pn6_!N7pkE!)Zz(Re^g;OW03|ek=8X^hzAow0F<=KrZ|8NRim_(uii}l96LxmB zwt8Pb+^%-hQv{m1k@d z6rB$@^#dXYrK(wPHWbZb@pVd19}hcE9(`|)TtoWDAfmxoggJx7L?Bu$KLo3B4!mD1 z+uGFp>TARP^G(Q02kGd*-Uyt_O~tiKwiU2@0y>n+xx=+>?p}39RUCfSJ7-Th;hem1 z08MVXw>PQ7(;)b&^x|G(;`3%Jba$oGx4j|#Y)(_tT&piA8HGdX7kR3K1Hz1KLJAP> zi-Mrg zCwZ~RU~ipptwyBb#kXr17(H)NW|I?3nh|XuC?F&k=cEdvBhc7Q>teag#brrg01X^J z9y1Bky?=(BfCVq@wRIZv2CS5i8)@oAUr4j9KFIYwuf{CvI zw7qQQNr$ij@(nzjiOV@jAYc)30YneHE>dBBUDbfif%)TWEg>g;a?(gCqun$h8%5fW zp8Kxeo3wX0%FL+lsrQAb$=d6MV~&2*S>xlH-^FK-EC2+eg7Y>!8}hm!l(;`W#_-H1 zA6cdawZlXOT32+laE_*!XaCv%fbrszy{2&I1^Y1e@A@zc;NfJFH-9anI}@O)Ld*PG zQxFLo{aHyH#k4I4ZM6M6ka8-AtK7x%^0MaWyC%F8DS@wFP;w$gHY=cIsYmX(B;9_Q z75c;82G86{fpPog%a0Nj6fnn}4_(0_%3SlAb z=K7u#GsA5(`lKE)V5`u}3m>q~bjW|Q^hxWkm|P@62DF!-P#<*VBuaSEgc0&{?M-vB z2SWQ>aJ>_MJAEb~3I@XnX)*o!pWk<=6NZvAM}e$CzjMVGci(|XISsB-n_#Q2XVMR4 z!d(r@p@k)^WSZv)g#$3R^RDZVW&u=B#?X#3GbWORK}4!sd!h?9d1?Kra5!i_Gjoag zm)C77r=c1EQktO33>lS`>;t4OMd&80mT|^a1$wwHh`81)rD?$3HrB;W%WoYHB6Ks6 zjp6@-06V|`ArewUi^))Brk9cCgl0w3JiCuqWs=9NtgL%(kDmjW21iG8c4RU7ufJE# zdB9&wR4*k(SMInWd!eV_9#qxl-cC9c6&6bC2D|fxgMcQnRsM}G{{TcQ;~ju{r7EQj zL|hdJG)#1KK0%v~ubl#wqkm`1SzkGx74$TT&uGK|(TB_?FHmGL`zhn%=4t?r(oIE8 z4eeaY#PoFWJ=~P&lQnzVr!R$*?k@-x-+v$>x#h16San%an_v^2y@z%HF)0}!Tp`kI z5Yz;_9Qs}Qyz?3Sn9(lqJ>CH^;S$CYXzR0dfkbmi(Y%^9WQ1cxL}+L}ME6U%-{WPT zr}67M*!iZQzS@VG8-C*d7-_L$`Wx=>#`w z2EoHFnS;IaZ|)@Vs*qgguaEWvkjX(WvFk7MNDyCfwu4Ue;Yc$|9J3IWWH z5^Nd0b~O|#w!fjWP%C~lZ!?xnaW&~BV+e0%@;*0BUG`l@j2DUXUqnL1M=>S*;Idu1 zxTkNZ^p#tblCY4U`uKN?L z7-G$ti3tLdG>dTZBQ9oFS6su?8OHW?HiD1JjKLhL7Q=*)$SAYh_}%`*zSS2uA##X- zfxF=|5vOx90H-Ku&iGA*r*k|S0xjI{BhY`JW7HfEVWSU!iU~x>-peM%D6-dy5n}^R z%(fy1y^v;!54BwmwJs9^R!vL3Z|z&LsPKxS z4YEn)y`yf+AwnBQ)?fbEee@Y5L%TW;uId85E{)SJ#0L}?`Po8j$ruyvsreY>U;0DYz%S4F;kNOEFyy)?Aa@~W^b z3P}{Z)%Y{^w7=(fpBRU)1Md~)!pS?9sSR=XB zS5k^9!%=Y8!d2O5Q!W1-@=n|*0WY+WIS1q*0|IRoT%33#On{b|F#eDhu;+S(gv1q% z?=bGP11iheAG)#U5gHVBb3#D6)CXfC7E9~#<)#ALzk~++S`QXZsYCMQxnQ;eT1;0| zXz<6d5t~+~pnxERAzNb(8Dt2Sr9Z~bet~5nrXqtvscB?%wBSZtCQ&v)`f$*lF=%DeKlnR#fvs=-FqQz;=ps_JEn;*ABxJgGg0zqFwI+)zoL?-$x z^n-Yr1H*sFq_|HETl>Du2NEyC1o_H!)+~(ZgYmGZ&INAi0*wU>=;#)1l!#8N_vKCz zk&9|Bvh2(p-&g*5q+|g0 z!-7Rv>5tIp=-HQm)F!t5J&eJVd*I;4Pk#vI%kBM z8m4|Kv(lg97#XhPutz!DwY_6@62}=MP$bH~eVY&V7Jd??G^$CvpPQX;-*0+T-WFrd4%2$4H%=V+SGU?95DK|H#Se!ooroji$--PZVhnbp+a=OFZgV zE)&r&HHI^Y=GOPrw*twA34+adS|&$sdlV{nbLC00bE-r5<`pyArRdidB8Yauii_uc zqmV8RtSUJVXjqK7MZRqa@}E$4epe;!M+W`!PNjE6s2Y7@f*`rm?x)A++|dpH6EyGw zpw;MNtGmr-{GZeh&Ooyt{x6(SyWPL)cd4qtC%R1yep_xFt{J6zSp_85u5NBt*0-}y z8g3_-igb7KffzRofIDnANucec+)UKz5X^!c4ji*gTQKY)U~c?JQBf}e3>{x}?!50f z)P1^p5WR9e%!wXD0E`wq1%#$cy=n^GP;tR>|AqYC9iQL%>8GTmgd=vq!c(T19UmGR zx+py9r--}aQa(izuQ(uM9eQKTs=Fd>_L_(Ms0HEudEMm##H`(Jsx;{{T>#8yz$+s! zFE7XT@Vgn$--3C6j}dB>cQipSzHN4RAwvIL_JDI7#dJ&E|1F&7HiJ>hx`=Mu z<`Fz>stjlwT7@563VUiPI#(c%D0|->ML8j?OjB&_PMzrVh{$GVD!+Qt*^}Z)iF;C& zstsdGZG#AU4L(_qm?b)WeIuw$Z8q!KMSv>wVqW$S@SQ`1dpZ5cto`sr%3M1xjjglUjRB(_7FPrmyx_82 zpUUSM9>M>U9P-%l4103qEgP_uj23G0ZcD>fF4EV*LoRKXDFukpY>lzucbD~^C7{^eDO`9XaQgqt0&{J} z6=eT?Yg0GX^s<%o6z1*Xw&pCm&8N-4)`@#?c$mhmU&qu8Fy()WKk&w=fzTW_jkr&P z^LVcKvTG-?sO+JS%;0G@dQ1+3y9P4cw>ZN3*%#U~-6qGpo3kvUq)`?6pu2LxO;ctr zUMK30QU7j<)_?^A{>iYlvZ!+#u1e}pFDo(sK+I@~UR3O8V+81$3CoEcz+5Q?l{daSL8diKytO>IAtVJq9~KoCd_`$6PI>%_LCBD?n2lhKO~oTdzozIgcrnK$tJKooqXk@v%@W94fKlt{W=Z5N2-+C zyPqLg%zM@e^B{mDux}*MdYA}0gU!(Fz#!Pofj;myTcAgpJasPNC&z`_wok+ z5B3pSoaN+S&XHl%0IC)gR2fWlFO+p`@3vx5F3Nf`n>Lw(F15Q5>Y0NbY$|58m7=gwIlgc0~1q#+! z@s%LwV?3q>k0a@FRsSCXA7X_M!jJ~4J)Lj>Laj$kNOkq`KN);Br~vp_t+yIUO?JiF z&kF{KQk+%GTA-}P#sD2UvYP_c{X~(%{ms$*R3}24UdW>c1z>hqFWzkP+w!U00*)lZ19Nq%fE>LcA6%RY4|L(uu&JYtDWt4SOo z-VoOV<(Yx1>L?l~CudsW#GaMtYoI6hQ&Lfh+JE>U;nGD0qk|el8_rL}jk$l6_+fg< zw~x;uJ_f8fi>Mf2@lB^Bur}xV6zNfXO?fl@B$6(EZg+li(v9upP8{3PX1G4=#u7`lcvWM2$^wc zKC1_oddU~19UdNz+giZHWgxm}U|104?oZUvpDuNzkG5EBYUIqH7^2Ps<;cF))YSac zj_Lf*I6Ub_f>b;Mn+cvt=Dd7Z-VlmSmN|&I)(vhC>L%H|;AeyHI;Gm(qKr^Xs9<^W#R6 zmMQ$7zcA=0r1JNlfsjLgrT}i--F{QRf0-vle)tZCLN636DXHavkKia>fHjD;|8G4c z1QH0G9_3vNC5&&R&QIyzKk7C2u@;2Q6LUR)@K4r$hKh4{!8Yc}O#RM}5P?vHpXGH+ zhmA@zxA)CLOsLz7t{M>p25yxAfyh6jbGrlt=6 zi0lM7hk>46i)ZoE8~{&C0g!mQu^?dvSl+uEC%wWZ{z&pA*?wtOC;0FuO zpD_OVa`uy}Oyi^v_KeENHBL-UzRlR%hzHWSi1k50zzmo}VYEgjCMF&h7DbzRTncif zC2nlUE<~6np!+HIc(M62aB)F%r|tWtS=Ph< zPjP1%6=l@E`Je-q)>#lzo5huRy@@9}tHzaZ@;QEFUop?Lih|)=h@H$Rt7gzn~5v z2o585Tn#5z{LQj?j9M~n>~{_n8P$GjeNG6lvmM~cy|TO%E6xV5Fh+E%t2a_Ye9!EK z5Aan3C-TQTrt;zYRuH%YU7ZE!qFrUQdD{^*A4~{2*nN8%vjTP+?ca{GU>n!o$~FG8 zOc$5L&;Dxi-UNDDDGp!?XYL4df#E~?r<`KZ?^wO;QD}bqsfBz@OzvqFrdY( zIv#_)XrmM~UR-Rtc~<9x1u8H4YzTyfK-E~03oz@BSQ`KRIyFM})Ph;8q^9zss%6*o zNxl1Au*nryMLxtcX(}!R&h!QbG@%RIAz{=V)tQ!qR*C5ZnFX} zmxm7FEIz(j>Z3Ht3dQY~6ccdQ#ZjVGk+@xjKaaByho(r!956;x zHiQohi)bb~Hz4toL%xK~T^`lz`Zr$RHn%I<1I0QYUc*wN9C3?T17uRy##q3E3AbMV z*~K@<4JNCEHhV@NjbE)oi$NJ6r*MS1;_YAQWvW#P@ zyyObPJ|&jcw+d8%3xk&ds) zO%|zA&gKvt99&ly&NYkAUb_CNgu+a>E(!8fez-UbeWZ>fEwtpGQq{(f%{|;4mkJOi z`xSINt8;f}UpzN5=dqG8?is_HpUj&VkV_b>!DHvF9%po9Pk&l-8X^0&xZ{pEx}2>R zbA4<(Fk8!Y*-qD;A$?@-y?}#9w?6GM0HdwqvI}b* zVFu3dXc&+Jh8D_^~&hA?R*Z?_$I`~!bKJP704OJmxPi9?@j&rkDJ477;UQ4U^n(Qf~M ztO~kJxova%fTQI`9fvh03l~9;F9Zj3$cvJ3CjUQ^TB|eHNFi5 zNdRoSf_A!{2AcarQ>;s)aVPySx)hsSFx;3dytsfY9=+2wXq}UaKWDlK;1nhC2U5v= z>U12~GRy7WHHBQIk)RXoAB)S<7t4s$s1db+&FpNn-}zxBPmQD>ey+cB2SP6sidR0F z)H;nxwViywIbAm{S5Xz_%N)2HFz4)hl@8g(77{q*@S+VMrNu0Fex;p#c8HDBA%l|? z%ow@MH2lF4?)vvTDa|c37*ntvbya_aJj(NJ9Qh^3v%a~Tf2Sa(?Y&Mb?{NktAub~E zn!p^V{=`eKzKas&BC&#AU#>HP#esdu-Ne?nR)H7E(t$bW&4J+~$8+$i?FZlL2%9Ja zms3$-Gakm;aARGm`^;0%jUD)lX{i`fSvaf%zXrF>WzM<0*Pu>=>sOG=azR2;)<U~I>yHzGtYn}hHwMOJ z1fZw^g`uzCbs?xtFZ&R+n}={R$cImOnjd-zDK_6Ufu>Ue_O}8Bz~%zf#ME) z3SSb!e1pIwX|6p;e$Ym_sRC{{o#%WzkAwfwCliUjNIPG~QSz_!mp5(l{}!eSn|mc9 zfKgUyI}(>Cw!ul0(pOC!ItOQ^xMsY2G}TaTD~H5NyrH~j zmT!SzC0H?dX8mBi+&#HI%VkH`nD+zvf7W(Wu84-)x;d&Xq z-3w^wbVv-8t7;}j#@-eAGZ;mUz@~o=E~?JyIR9>tE^w>ab1!BCXy>_g^ zV$RIMqU{{O45VCfxK;otf;eP@XU933#-($2MkYP=^&-jT3+)5M8ZBSaI(uM?`3 z8e&s$9l?k8#I+bhxkv8ENANbu>F{C~d15}e)}#%c!a;OGX3+q(QA-yvPR+{7l5<`7 z8rf*R$OeEx&Ix|c<&|&JMttr)$;^~2zFWEMG6?9gk6&GP1O*$Fbv~(lQfcxsGr?G) zC;lq&y0r8QVr?aucxLtdIwvxT5bGzgd>`)m_eMs*fez_BcttB?E%7Gt`7IKJO1j=Oto0-BC0BJoHs zT%Y>pa&hF}DJwa~1oJV%l?vp{Rb4+t{`_@gg9&B{@Z!-_wpchJI~&F#enc92VQlBb zAEna=u3W{1(hngW?YQ1Yf&P{iu0vfLGE@EiPjuYOvx5FGwC@Uyn$=)E6h6>AX22$@ zfeAE*TnjHBRnj)dbf}B69Iqw)P_c!m_|!w3#OaZHPkxffzC8V=y4 zFv5LS^PlG~b{vJtAICLT@I;Cpo0Pc3#V-*mL#iy)M^SAb7QeJL>koI%ifw0m>4G_n z&u({gb2C?XEX`je>zC=U)G#qrv*zvYY@2=SfDva20deqZVDzsPB=x)qqmr(BVM6)x!)mIU+FpZ9{lfELP#%l%REB2T`R!xoI}3K6sCjtmr) zF#Fjz_uwur=&>7slw4L>=~3}$fi5ZHAVA;X5z|xo<$?l+F72bq)}YU-duz<93q~vG z77l1+)6#O`bAq`(-*SB=8ssFsBW3kOF^XTe1&4-q7S69N3;iV!W)gC7I4&HalHZ!rEdY*66i}Q& z(;sJl0nV2@hP5qIF?)VQ)(nf8niCdguGGzDDU%m31dMt5G zn#7Fp9$#&fmtf-E?Ui~BXPKNAOGs<#3E?TUQhuxxGp%5LQpy1hzHPHBT5%rFuq9v+ z!JMFxqn>lr;D4Ry64&6@v~BgEKUb-)v#Vt3p0Ek(_ooID)qnNdxPBv0CMqVQ9$GgM z^1g#(^oW$6$GBJc(fN)($JbwPA=k1r(A6;DCivRfIajZ7?~w%j61f)OJt!Py!9 z%h{|Wx6zXq?%po+<|Loqbmd9qFe0~sxXL+H-l)cDP< zk%$dDdAq_%sQw(q3&gSIVpa3Es1D8Y-I zWqd&K?9a}+$D;6Q2hIqdIBy;U<0DH1u7`|%t>sn=BLv3?>n`ytz3&|F8luM?+5r>y@k7R^cOO)f zlgFOF!Unw9@(^zHzSVmO!LiJl&0`D`&`{KlYg4=S?0(r}zZ-$?*893B9yMLuwP$-b zxuKS5oMvn5Rm48D(fZ=9f$2Z;qh7C;;{Hap*XOm z-VR4%tGZYZY|i7vQd_j2%W`U`KTVpRfe|zx5vbgknX5DTe;Rldw9WE6r6hNk^b^6lvP488rLxtHqJ`y6tdV70Srt9dS z?Gxm19J0yzXt}${SeXR^?RFouhnX=~AH>|RASb@nWx#iyI2bZxlM96zaG#-WdWH@@ zVZQ;Y+N2`|lW1ScJ(|AiR!&AWvPBK%L0iW0BALhf$VM%B`1O@*+va8*7bU3K2k7i@ z0`jBy*IS}gki`?IW~)t)B-ZOM9&r_uYRHl++2O$fQbj%g8gXpVH_BQm`GBwDYHyh#d=Fwwe;G-A>bUJyoC2#(we;w} z+ok>d8q&u0M5LyL5mz?N5V9?Q&pc}dKs!jT__i_zO+FNjAkNg;u z#mv`U|4xD&ss9LsuJdafhwI|m*qRhKy(}qrMOl+Ubc0Q9P{C=JrmZZ)>(f83Y9Ebj z-s{B?o#5`NYhuEIN#GBvxF?s5HHZuzpecH;uFekJ za*E<(c8dV`f%tEbiDfVeax%<8|ML-YIs*~9?#~8+!?BM(ifhEi2Enhv);s$1_Z9+5 zK$0?+YJ;LKcnAYlew_~gJ(#?`QTA(HdUOJU^}ql6bK@E^QJeq2dbQAo4lWOIS){Qb($M;>Cbyt zgiDf26-LdD%+OjaP>E5uBtjM0$67MVqUZ#vU(yPXt;ZtT z?hK3-57(BcxBpgo?G*rjFuRUh@^KInp{Kl!-y@P8{I)H{K-fzVW^=S5G2Auza9$OhsU{251;@%`LnGWSCjK&^H)!Ax`xd= zyf4|G2MeSa#j9ebYN(0v&HuPbHbuGfFkexb3<`yP(;B=YH7oaRRO6=m3StW?ghgQgftzA^(Mx?;kp z1%9wBLm2zAjKHyEHh=XrFbv(MzPxgCm90;v`Pt1dC$$omTUd$G7hkaO)^Ps)CTd#& zR^9p2AjHdk&dY7yh(Moca4k#K| zK!priF1fC_C_eD%Hvb*I$1>H-ve5qZlfrwdA6=qDt9c`O!F!P<)dQQ!o<^r^U~T4;60A;oCS*ytF+2MS)~dUGW#6>1^P|_hnnS8w z&&)KakNW|Km1V*p6PA$b%lDp)m_O+J-dS^ z-rP3^SXbWR<)&L3)buZ0AHGU`vvaCJ2i4AD*cz9$)Sv9)rWpzIm}jv?K?mYd?7lWTGJPX4CUA@2Y3Fkv<7Q~zd&PllaL!TO zZ=4d!=;(ertdk)Bm=FK`8(6%^s^e5fO?jtiu?Oq3+MJLnKHO5eM=Tlr)(c$U@2^sU z+5as&YUQ*{6_9F5_aAG(|F=-n|0|OK1u_%y{~~iWd7)eKezL4l+G`LO&>lS z!<|7a!)NV?7)jCWGJ81o@Ln*>f#51(x{yC{7TLV+(gWJtT9>m9KDu(V%U{Zqe3(Q;RA-~@k3Yo26|mUdW)j*AjoJHV-@E^?uiJ!o1&B<lcU|F?9NTmH|~hV17)h8AremO{TzX!9A_9B?@$L^^gN@c}X|) z`FwwE!gKhjv)y69c&X$=+7JAzns2qNwC+2Zia-&Pf!(_ z6$fR1$uSuL*15`b8*aJ#tEFjS*Zb8IPqcv4Gu&>qLjfk+-)}-a0~&`KUfABUK;Vl> zuox|F(-jQojKiR~(Vem6W5_IL)D|36lfDGyU7#Q}#V62@RoZF#2rbdv$-|YUfpfd1 zX@;|+%+*D-uUZI(6;P}E9Z6>{efEu7cV>R|6jbq(=Dye*Io}s6+m0uXtubPZ$S+*Z z(&}h;I61Q3CLc;FIXE$!%tzUb+3r6j<#Cdb&?K}5foF^U;!GITd0)%L za&*H4_A&ZdC(OYGhMyT{tW2W}Y5ZzSFesMRWMeNKxj)1hN1wro{Ia~G7HkNAWebDQ zYpu@XhXBbRi;cMyViUgZ2J*5kQzJtd`4M|$$hx|^=^37rcmjacAO0sAwjN=TIwuBw z0@nbB4u3H98F&yiZnnvTTmpdk$Zd~~5Qm>~o0Z9=(UK-<5MH7|+|3 zoLxwSFM1szUmnQFnRly{&Vp7i@#c>qkQ%%25K!ygdY~?UIZdVtWz>LqaoLKs#2$k+ zMYeRjyTsw=rE$Fk;k1B;zao2rhQFP82--0EFJ#KV9h$f|(?-31JbX{syI~vm9~ln; zgGD2IL1@#GskqG3b3sGBpR|UbA{trWVnJfVJGO8cgqHpS7Ju(GZrdW^p5Ob<);{1&)mA}Wyh5yUQ!<^SjV-L{Y<|rg&2!iee)CTK|5*(J?+{la$oIFuTnSt_Kp!SP+ z2ERGwu3%SozCqM~4wr8^-wDoRlCJ{QZOz-QA_3qe~;XzRtc6K9R-&#=pSC41%xgd%EP1 zgZ2(C$k!2@HDIr|d1H5wl^1wvo*K01gC$2Up+nVB$kfzS29xR^3Yn#X+L4cY(dg}+ zT+(yO-oq~7HK5z`44T9g$?ovP zD`K{dWmK$6L0^y^NUf&#Xq)J$nZPPzx7{mz6Ji7%NhTp}YQ9*Z>AFH?sovq7WLjtu z7=g)>kzz1Ww`fu?h|u%Ջ)#J#Y{w}=ILVu|-dBJkLI3+~`COxpD zTaAJV(mwex6d#fW_2Fgj`bk_;5bF2-qvc!schC^zMp^F(2sRRN}kj;c&Q$1tEMjEQkzJ}KXA z&rZNkmL0&OAu9a)g)`wQ06kKS+lPFSf%clk=c`S9e? z`4Rkvm#g~Y3Z$zrsCS&R;R(g3HE^0J^Lps5x+(S+?E1Wnb!>Y{bg-Jb+rsJ z_x9x`8_0`U(&luXVMU}XIC1vv5P-zCCg;ZOiv`905wnvkdo z9VpaabE%Rbb5+AqI?Gb!|L3J; zPC6qzes_+Sz9E_qL`6hy@0`rxLvN!8!o5oL^PoJ?jQ&}+R0;y{y#afaSM#O{Lq=ET zLcZ^8Qg4oneGg9dogrUwjKvfTkfht0VFWgd+lW96i-SoHSiZWNwu`V(6jRj^cB5ul{ e+^5H4Vf_cS%Z#3GZs1E9V0YAY)XG&X!~PeJl$z!M literal 0 HcmV?d00001 diff --git a/Themes/default/Fonts/_roboto Bold 80px [numbers] 4x4.png b/Themes/default/Fonts/_roboto Bold 80px [numbers] 4x4.png new file mode 100644 index 0000000000000000000000000000000000000000..3d13b7962c30b186c0b2038855426f55b9262e69 GIT binary patch literal 16998 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 literal 0 HcmV?d00001 diff --git a/Themes/default/Fonts/_roboto Bold 80px.ini b/Themes/default/Fonts/_roboto Bold 80px.ini new file mode 100644 index 0000000000..ccffcac272 --- /dev/null +++ b/Themes/default/Fonts/_roboto Bold 80px.ini @@ -0,0 +1,30 @@ +[common] +Baseline=66 +Top=28 +LineSpacing=106 +DrawExtraPixelsLeft=0 +DrawExtraPixelsRight=0 +AdvanceExtraPixels=0 + +[numbers] +Line 0=0123 +Line 1=4567 +Line 2=89%. +Line 3= :x, + +0=46 +1=46 +2=46 +3=46 +4=46 +5=46 +6=46 +7=46 +8=46 +9=46 +10=59 +11=23 +12=20 +13=23 +14=41 +15=21 diff --git a/Themes/default/Graphics/ComboGraph ComboNumber.lua b/Themes/default/Graphics/ComboGraph ComboNumber.lua index 33b3dbeb86..c655b1aabf 100644 --- a/Themes/default/Graphics/ComboGraph ComboNumber.lua +++ b/Themes/default/Graphics/ComboGraph ComboNumber.lua @@ -1,3 +1,3 @@ -return LoadFont("Combo Numbers") .. { - InitCommand=cmd(zoom,12/54;y,-1;shadowlengthx,0;shadowlengthy,1;strokecolor,color("#00000077");); -}; \ No newline at end of file +return LoadFont("Common Bold") .. { + InitCommand=cmd(zoom,12/54;y,-1;shadowlength,1;strokecolor,Color.Outline); +}; diff --git a/Themes/default/Graphics/ScreenWithMenuElements header/default.lua b/Themes/default/Graphics/ScreenWithMenuElements header/default.lua index 483ce66677..9fd0fb5103 100644 --- a/Themes/default/Graphics/ScreenWithMenuElements header/default.lua +++ b/Themes/default/Graphics/ScreenWithMenuElements header/default.lua @@ -1,5 +1,11 @@ local t = Def.ActorFrame {}; +local function Update(self) + local c = self:GetChildren(); + local bps = GAMESTATE:GetSongBPS() or 1 + c.TextureStripe:texcoordvelocity(bps,0); +end + local function IsVisible() local r = Screen.String("HeaderText"); return string.len(r) > 0 and true or false @@ -9,8 +15,9 @@ t[#t+1] = Def.Quad { InitCommand=cmd(vertalign,top;zoomto,SCREEN_WIDTH+1,50;diffuse,color("#161616")); } t[#t+1] = LoadActor("_texture stripe") .. { - InitCommand=cmd(x,-SCREEN_CENTER_X;y,-2;horizalign,left;vertalign,top;zoomto,320,50;customtexturerect,0,0,(320/1.5)/8,50/32); - OnCommand=cmd(faderight,0.5;texcoordvelocity,1.5,0;skewx,-0.0375;diffuse,Color("White");diffusealpha,0.125); + Name="TextureStripe"; + InitCommand=cmd(x,-SCREEN_CENTER_X-8;y,-2;horizalign,left;vertalign,top;zoomto,320,50;customtexturerect,0,0,(320/2)/8,50/32); + OnCommand=cmd(texcoordvelocity,2,0;skewx,-0.0575;diffuse,color("#594300");diffuserightedge,color("#59430000")); }; t[#t+1] = LoadActor("Header") .. { InitCommand=cmd(y,1;vertalign,top;zoomtowidth,SCREEN_WIDTH+1;diffuse,color("#ffd400")); @@ -30,8 +37,12 @@ t[#t+1] = LoadFont("Common Bold") .. { t[#t+1] = Def.Quad { Name="Underline"; InitCommand=cmd(x,-SCREEN_CENTER_X+24;y,36;horizalign,left); - OnCommand=cmd(visible,IsVisible();diffuse,color("#ffd400");shadowlength,2;shadowcolor,BoostColor(color("#ffd40077"),0.25);linear,0.25;zoomtowidth,192;faderight,0.5); + OnCommand=cmd(visible,IsVisible();diffuse,color("#ffd400");shadowlength,1;linear,0.25;zoomtowidth,192;faderight,0.5); }; +t.BeginCommand=function(self) + self:SetUpdateFunction( Update ); +end + return t diff --git a/Themes/default/Graphics/_GraphDisplay overlay.png b/Themes/default/Graphics/_GraphDisplay overlay.png new file mode 100644 index 0000000000000000000000000000000000000000..fa4832dcb6743d5b59df9ed486d7e5ff0f1f1a75 GIT binary patch literal 3053 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 b{rsF9jAn`xF;jE|a52XE7J79sm+1cjNsgSY literal 0 HcmV?d00001 diff --git a/Themes/default/metrics.ini b/Themes/default/metrics.ini index 5ada7173e2..19f103c685 100644 --- a/Themes/default/metrics.ini +++ b/Themes/default/metrics.ini @@ -212,16 +212,25 @@ MiddleOnCommand=;diffuse,PlayerColor(PLAYER_2) RightOnCommand=horizalign,left;diffuse,PlayerColor(PLAYER_2) [MenuTimer] -Text1OnCommand=stopeffect;stoptweening;halign,1;shadowlength,0;strokecolor,Color("Outline") +Text1OnCommand=horizalign,right;stopeffect;finishtweening;shadowlength,2;strokecolor,Color("Outline"); Text1FormatFunction=function(fSeconds) fSeconds=math.floor(fSeconds); return string.format("%02.0f",fSeconds) end -Text2OnCommand=x,2;y,-3;stopeffect;stoptweening;halign,0;shadowlength,0;strokecolor,Color("Outline");zoom,0.65 +Text2OnCommand=x,2;y,3;stopeffect;stoptweening;halign,0;shadowlength,0;strokecolor,Color("Outline");zoom,0.65 Text2FormatFunction=function(fSeconds) local remainder=fSeconds-math.floor(fSeconds); local digit=math.floor(remainder*100); return string.format("%02.0f",digit) end -Warning10Command=diffuseshift;effectperiod,1;effectcolor2,Color("Red");effectcolor1,color("0.5,0,0,1"); +Warning10Command=diffuseshift;effectperiod,1;effectcolor1,Color.White;effectcolor2,Color.Red; [MenuTimerNoSound] +[MenuTimerContinue] +Fallback="MenuTimer" +Text1OnCommand=strokecolor,Color.Outline;shadowlength,2 +Text1FormatFunction=function(fSeconds) return string.format("%02.2f",fSeconds) end; + +Text2OnCommand=visible,false +Text2FormatFunction=function(fSeconds) return "" end; + + [MusicWheel] SwitchSeconds=0.04 LockedInitialVelocity=7 @@ -597,7 +606,7 @@ AlternateHelpDisplayOnCommand=SetSecsBetweenSwitches,4;zoom,0.675;maxwidth,480/0 AlternateHelpDisplayOffCommand=linear,0.175;zoomy,0 TimerX=SCREEN_RIGHT-36-4 -TimerY=SCREEN_TOP+24 +TimerY=SCREEN_TOP+23 TimerOnCommand=draworder,2;visible,PREFSMAN:GetPreference("MenuTimer"); # TimerOnCommand=fov,90;vanishpoint,SCREEN_RIGHT-36-4,SCREEN_TOP+20;draworder,5;visible,PREFSMAN:GetPreference("MenuTimer");rotationy,90;decelerate,0.4;rotationy,0; TimerOffCommand= @@ -895,7 +904,7 @@ MusicWheelOnCommand=draworder,-5;fov,90;vanishpoint,SCREEN_CENTER_X+160,SCREEN_C MusicWheelOffCommand=bouncebegin,0.15;zoomx,0; # ShowNewSong=not GAMESTATE:IsCourseMode() -NewSongX=SCREEN_CENTER_X-160+128-30 +NewSongX=SCREEN_CENTER_X-160+128-24 NewSongY=SCREEN_TOP+160-2 NewSongOnCommand=finishtweening;diffuse,Color("Orange");diffusetopedge,Color("Yellow");strokecolor,Color("Black");zoom,0.675;draworder,106;playcommand,"Set" NewSongOffCommand=bouncebegin,0.1;zoom,0;diffusealpha,0 @@ -906,6 +915,7 @@ ShowSongTime=true SongTimeX=SCREEN_CENTER_X-160 SongTimeY=SCREEN_TOP+160+(36/2)+8 SongTimeOnCommand=zoom,0.75;strokecolor,Color("Outline");shadowlength,1 + SongTimeOffCommand=bouncebegin,0.15;zoom,0;diffusealpha,0; SongTimeResetCommand=diffuse,Color("White"); SongTimeAutogenCommand=diffuse,Color("Green"); @@ -1092,6 +1102,9 @@ ShowNumCourseSongs=true UsePlayerSelectMenu=false SelectMenuAvailable=false # +ShowSortOrder=true +SortOrderOnCommand=visible,false +# ShowPaneDisplayFrameP1=false ShowPaneDisplayTextP1=false ShowPaneDisplayFrameP2=false @@ -2012,6 +2025,19 @@ SmallBanner6OffCommand= [ScreenNameEntry] +[ScreenNameEntryTraditional] + +[ScreenContinue] +ShowHeader=false +ShowFooter=false +# +TimerSeconds=20 +TimerMetricsGroup="MenuTimerContinue" +TimerX=SCREEN_CENTER_X +TimerY=SCREEN_CENTER_Y+24 +TimerOnCommand=visible,true +TimerOffCommand= + [ScreenProfileSave] [ScreenProfileSaveSummary] diff --git a/Themes/home/metrics.ini b/Themes/home/metrics.ini index 56c7eecfa5..0b92db75b1 100644 --- a/Themes/home/metrics.ini +++ b/Themes/home/metrics.ini @@ -6,4 +6,7 @@ FallbackTheme=default [ScreenEdit] EditModifiers="midi-note" -[MusicWheel] \ No newline at end of file +[ScreenTitleMenu] +ChoiceNames="GameStart,Options,Continue,Edit,Jukebox,GameSelect,Exit" + +[MusicWheel]