function SongMeterDisplayX(pn) if Center1Player() then return SCREEN_CENTER_X else return pn == PLAYER_1 and SCREEN_LEFT+16 or SCREEN_RIGHT-16 end end function SongMeterDisplayY(pn) return Center1Player() and SCREEN_TOP+50 or SCREEN_CENTER_Y end function SongMeterDisplayCommand(pn) if Center1Player() then return cmd(draworder,50;zoom,0;y,SCREEN_TOP-24;sleep,1.5;decelerate,0.5;zoom,1;y,SCREEN_TOP+50) else local xAdd = (pn == PLAYER_1) and -24 or 24 return cmd(draworder,5;rotationz,-90;zoom,0;addx,xAdd;sleep,1.5;decelerate,0.5;zoom,1;addx,xAdd*-1) end end local numbered_stages= { Stage_1st= true, Stage_2nd= true, Stage_3rd= true, Stage_4th= true, Stage_5th= true, Stage_6th= true, Stage_Next= true, } function thified_curstage_index(on_eval) local cur_stage= GAMESTATE:GetCurrentStage() local adjust= 1 -- hack: ScreenEvaluation shows the current stage, but it needs to show -- the last stage instead. Adjust the amount. if on_eval then adjust= 0 end if numbered_stages[cur_stage] then return FormatNumberAndSuffix(GAMESTATE:GetCurrentStageIndex() + adjust) else return ToEnumShortString(cur_stage) end end