How to get Ultralight theme to show score rank

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • shenjoku
    Wubalubadubdub
    • May 2005
    • 1697

    #1

    How to get Ultralight theme to show score rank

    I really like the Ultralight theme but it's really frustrating that it doesn't tell you what rank you got on the results screen. The main thing is that I want to be able to tell if I beat my best, which is currently impossible unless I memorize the score I have on every song or something. Does anyone know of any easy way to mod it to make it show the "score rank #1" etc. stuff on the results screen? I know nothing about how themes are put together so I wouldn't know where to start on my own.

    EDIT: Never mind. I searched through the default theme a bit and managed to figure it out. Wasn't as hard as I thought it would be. If anyone else wants to know I can post details but otherwise you can close or delete this thread or whatever :P
    Last edited by shenjoku; 01-27-2014, 08:41 PM.
    boop
  • shenjoku
    Wubalubadubdub
    • May 2005
    • 1697

    #2
    Re: How to get Ultralight theme to show score rank

    Wow, past me is such a dick. You should always post your solution to problems in case other people need it. So here's how to add a "Personal Record #1!" sort of display to the Ultralight summary screen.

    In "BGAnimations\ScreenEvaluation decorations\default.lua" add the following right before the line with "-- percentages":
    Code:
    for pn in ivalues(PlayerNumber) do
    	local MetricsName = "PersonalRecord" .. PlayerNumberToString(pn);
    	t[#t+1] = LoadActor( THEME:GetPathG(Var "LoadingScreen", "PersonalRecord"), pn ) .. {
    		InitCommand=function(self) 
    			self:player(pn); 
    			self:name(MetricsName); 
    			ActorUtil.LoadAllCommandsAndSetXY(self,Var "LoadingScreen"); 
    		end;
    	};
    end
    In "BGAnimations\ScreenSelectMode underlay.lua", near the bottom before the closing "};", add the following:
    Code:
    	--[[
    	-- sm-ssc only:
    	Font("mentone","24px")..{
    		InitCommand=cmd(xy,SCREEN_CENTER_X,SCREEN_CENTER_Y*1.75;shadowlength,1;zoom,0.8);
    		OnCommand=cmd(playcommand,"Set";bounceend,0.5;zoomy,0.8;diffusebottomedge,HSV(192,0.2,0.8));
    		OffCommand=cmd(linear,0.3;faderight,1;cropright,1);
    		SetCommand=function(self)
    			local selIdx = SCREENMAN:GetTopScreen():GetSelectionIndex(GAMESTATE:GetMasterPlayerNumber());
    			self:settext(selIdx);
    		end;
    		MenuSelectionChangedMessageCommand=cmd(playcommand,"Set");
    	};
    	--]]
    In "Languages\en.ini", right below the line with "SaveProfiles=Saving Profiles..." add the following:
    Code:
    [ScreenEvaluation]
    PersonalRecord=Personal Record #%i!
    In "metrics.ini", right after the line with "ShowTimeArea=false" add the following:
    Code:
    #
    PersonalRecordP1X=SCREEN_CENTER_X-270
    PersonalRecordP1Y=SCREEN_TOP+20
    PersonalRecordP1OnCommand=
    PersonalRecordP1OffCommand=
    #
    PersonalRecordP2X=SCREEN_CENTER_X+270
    PersonalRecordP2Y=SCREEN_TOP+20
    PersonalRecordP2OnCommand=
    PersonalRecordP2OffCommand=
    Also in "metrics.ini", right after the line starting with "AutogenOnCommand=" add the following:
    Code:
    AutogenSetCommand=%function(self,param) \
    	local stActor = self:GetParent():GetChild("StepsType"); \
    	if param.Steps then \
    		stActor:rainbow(param.Steps:IsAutogen()); \
    		stActor:effectclock("beatnooffset"); \
    	end \
    end;
    Also in "metrics.ini", right after the line with "TimerSeconds=0.01" add the following:
    Code:
    [StepsDisplay]
    ShowFrame=false
    And that should do it! Let me know if you have any issues.
    boop

    Comment

    Working...