Handle colors as Lua expressions, like int/float/bool metrics: "{1,1,1,1}"
instead of "1,1,1,1".
This commit is contained in:
@@ -564,9 +564,9 @@ PrevScreen=@ScreenTitleBranch()
|
|||||||
NextScreen=ScreenGameplayBranch
|
NextScreen=ScreenGameplayBranch
|
||||||
Fallback=ScreenNetSelectMusic
|
Fallback=ScreenNetSelectMusic
|
||||||
Class=ScreenNetRoom
|
Class=ScreenNetRoom
|
||||||
OpenRoomColor=1.0,1.0,1.0,1.0
|
OpenRoomColor=color(1.0,1.0,1.0,1.0)
|
||||||
PasswdRoomColor=1.0,0.5,0.5,1.0
|
PasswdRoomColor=color(1.0,0.5,0.5,1.0)
|
||||||
InGameRoomColor=1.0,0.1,0.1,1.0
|
InGameRoomColor=color(1.0,0.1,0.1,1.0)
|
||||||
RoomWheelX=SCREEN_CENTER_X+160
|
RoomWheelX=SCREEN_CENTER_X+160
|
||||||
RoomWheelY=SCREEN_CENTER_Y+4
|
RoomWheelY=SCREEN_CENTER_Y+4
|
||||||
RoomWheelOnCommand=
|
RoomWheelOnCommand=
|
||||||
@@ -602,14 +602,14 @@ ChatInputBoxOnCommand=addx,-SCREEN_WIDTH*0.6;bounceend,0.5;addx,SCREEN_WIDTH*0.6
|
|||||||
ChatInputBoxOffCommand=bouncebegin,0.5;addx,-SCREEN_WIDTH*0.6
|
ChatInputBoxOffCommand=bouncebegin,0.5;addx,-SCREEN_WIDTH*0.6
|
||||||
ChatInputBoxWidth=310
|
ChatInputBoxWidth=310
|
||||||
ChatInputBoxHeight=60
|
ChatInputBoxHeight=60
|
||||||
ChatInputBoxColor=0.5,0.5,1.0,0.7 //transparent cyan
|
ChatInputBoxColor=color(0.5,0.5,1.0,0.7) //transparent cyan
|
||||||
ChatOutputBoxY=SCREEN_CENTER_Y-27
|
ChatOutputBoxY=SCREEN_CENTER_Y-27
|
||||||
ChatOutputBoxX=SCREEN_CENTER_X-157
|
ChatOutputBoxX=SCREEN_CENTER_X-157
|
||||||
ChatOutputBoxOnCommand=diffusealpha,0;linear,0.5;diffusealpha,1
|
ChatOutputBoxOnCommand=diffusealpha,0;linear,0.5;diffusealpha,1
|
||||||
ChatOutputBoxOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0;zoomx,0.0;zoomy,0.0
|
ChatOutputBoxOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0;zoomx,0.0;zoomy,0.0
|
||||||
ChatOutputBoxWidth=310
|
ChatOutputBoxWidth=310
|
||||||
ChatOutputBoxHeight=210
|
ChatOutputBoxHeight=210
|
||||||
ChatOutputBoxColor=1.0,0.5,0.5,0.7 //transparent reddish
|
ChatOutputBoxColor=color(1.0,0.5,0.5,0.7) //transparent reddish
|
||||||
ChatInputY=SCREEN_CENTER_Y+110
|
ChatInputY=SCREEN_CENTER_Y+110
|
||||||
ChatInputX=SCREEN_CENTER_X-307
|
ChatInputX=SCREEN_CENTER_X-307
|
||||||
ChatInputOnCommand=zoomx,0.0;zoomy,0.0;diffusealpha,0;linear,0.5;diffusealpha,0.8;zoomx,0.5;zoomy,0.5
|
ChatInputOnCommand=zoomx,0.0;zoomy,0.0;diffusealpha,0;linear,0.5;diffusealpha,0.8;zoomx,0.5;zoomy,0.5
|
||||||
@@ -656,7 +656,7 @@ DifficultyIconP2Y=SCREEN_CENTER_Y+185
|
|||||||
DifficultyIconP2X=SCREEN_CENTER_X+20
|
DifficultyIconP2X=SCREEN_CENTER_X+20
|
||||||
DifficultyIconP2OnCommand=shadowlength,2;zoomx,0;zoomy,0;linear,0.5;zoomx,1.0;zoomy,1.0
|
DifficultyIconP2OnCommand=shadowlength,2;zoomx,0;zoomy,0;linear,0.5;zoomx,1.0;zoomy,1.0
|
||||||
DifficultyIconP2OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0;shadowlength,0
|
DifficultyIconP2OffCommand=linear,0.5;zoomx,0.0;zoomy,0.0;shadowlength,0
|
||||||
DiffBGColor=0.7,0.7,0.7,0.7
|
DiffBGColor=color(0.7,0.7,0.7,0.7)
|
||||||
DiffBGWidth=0
|
DiffBGWidth=0
|
||||||
DiffBGHeight=0
|
DiffBGHeight=0
|
||||||
DiffBGY=SCREEN_CENTER_Y+160
|
DiffBGY=SCREEN_CENTER_Y+160
|
||||||
@@ -935,7 +935,7 @@ LyricsReverseY=SCREEN_CENTER_Y-140
|
|||||||
# This is used if one player is in reverse and the other isn't.
|
# This is used if one player is in reverse and the other isn't.
|
||||||
LyricsOneReverseX=SCREEN_CENTER_X+0
|
LyricsOneReverseX=SCREEN_CENTER_X+0
|
||||||
LyricsOneReverseY=SCREEN_CENTER_Y-205
|
LyricsOneReverseY=SCREEN_CENTER_Y-205
|
||||||
LyricsDefaultColor=0,1,0,1
|
LyricsDefaultColor=color(0,1,0,1)
|
||||||
ActiveAttackListP1X=
|
ActiveAttackListP1X=
|
||||||
ActiveAttackListP1Y=
|
ActiveAttackListP1Y=
|
||||||
ActiveAttackListP1OnCommand=hidden,1
|
ActiveAttackListP1OnCommand=hidden,1
|
||||||
@@ -2140,17 +2140,17 @@ HighlightSortOnCommand=accelerate,0.2;addx,-SCREEN_WIDTH/2
|
|||||||
HighlightSortOffCommand=decelerate,0.2;addx,SCREEN_WIDTH/2
|
HighlightSortOffCommand=decelerate,0.2;addx,SCREEN_WIDTH/2
|
||||||
WheelItemOnDelayOffset=0.04
|
WheelItemOnDelayOffset=0.04
|
||||||
WheelItemOffDelayOffset=0.04
|
WheelItemOffDelayOffset=0.04
|
||||||
WheelItemLockedColor=0,0,0,0.5
|
WheelItemLockedColor=color(0,0,0,0.5)
|
||||||
NumSectionColors=7
|
NumSectionColors=7
|
||||||
SectionColor1=0.8,0.1,0.6,1 // pink
|
SectionColor1=color(0.8,0.1,0.6,1) // pink
|
||||||
SectionColor2=0.6,0.4,0.8,1 // purple
|
SectionColor2=color(0.6,0.4,0.8,1) // purple
|
||||||
SectionColor3=0.0,0.4,0.8,1 // sky blue
|
SectionColor3=color(0.0,0.4,0.8,1) // sky blue
|
||||||
SectionColor4=0.0,0.6,0.6,1 // sea green
|
SectionColor4=color(0.0,0.6,0.6,1) // sea green
|
||||||
SectionColor5=0.1,0.7,0.3,1 // green
|
SectionColor5=color(0.1,0.7,0.3,1) // green
|
||||||
SectionColor6=0.8,0.6,0.0,1 // orange
|
SectionColor6=color(0.8,0.6,0.0,1) // orange
|
||||||
SectionColor7=1.0,0.3,0.3,1 // light red
|
SectionColor7=color(1.0,0.3,0.3,1) // light red
|
||||||
SongRealExtraColor=0.9,0.9,0,1 // yellow
|
SongRealExtraColor=color(0.9,0.9,0,1) // yellow
|
||||||
SortMenuColor=1,1,0,1
|
SortMenuColor=color(1,1,0,1)
|
||||||
ShowRoulette=true
|
ShowRoulette=true
|
||||||
ShowRandom=true
|
ShowRandom=true
|
||||||
ShowPortal=true
|
ShowPortal=true
|
||||||
@@ -2175,7 +2175,7 @@ ChoiceHardMeter=sort,HardMeter
|
|||||||
Fallback=MusicWheel
|
Fallback=MusicWheel
|
||||||
RoomWheelItemStartOnCommand=
|
RoomWheelItemStartOnCommand=
|
||||||
RoomWheelItemFinishOnCommand=
|
RoomWheelItemFinishOnCommand=
|
||||||
CreateRoomColor=0.0,0.8,0.3,1.0
|
CreateRoomColor=color(0.0,0.8,0.3,1.0)
|
||||||
|
|
||||||
[RoomInfoDisplay]
|
[RoomInfoDisplay]
|
||||||
RoomInfoDisplayOnCommand=diffuse,1.0,1.0,1.0,1.0;x,SCREEN_WIDTH+130;y,250;bounceend,0.5;x,SCREEN_WIDTH-160
|
RoomInfoDisplayOnCommand=diffuse,1.0,1.0,1.0,1.0;x,SCREEN_WIDTH+130;y,250;bounceend,0.5;x,SCREEN_WIDTH-160
|
||||||
@@ -2421,9 +2421,9 @@ ItemsLongRowSharedX=SCREEN_CENTER_X+20
|
|||||||
ItemsOnCommand=zoom,0.5
|
ItemsOnCommand=zoom,0.5
|
||||||
ItemGainFocusCommand=
|
ItemGainFocusCommand=
|
||||||
ItemLoseFocusCommand=
|
ItemLoseFocusCommand=
|
||||||
ColorSelected=1,1,1,1
|
ColorSelected=color(1,1,1,1)
|
||||||
ColorNotSelected=0.5,0.5,0.5,1
|
ColorNotSelected=color(0.5,0.5,0.5,1)
|
||||||
ColorDisabled=0.1,0.1,0.1,1
|
ColorDisabled=color(0.1,0.1,0.1,1)
|
||||||
CapitalizeAllOptionNames=false
|
CapitalizeAllOptionNames=false
|
||||||
TweenSeconds=0.3
|
TweenSeconds=0.3
|
||||||
|
|
||||||
@@ -2571,7 +2571,7 @@ WebOffCommand=diffusealpha,1.0;linear,0.6;diffusealpha,0.0
|
|||||||
NumLinksShow=8
|
NumLinksShow=8
|
||||||
WebSelY=SCREEN_CENTER_Y+10
|
WebSelY=SCREEN_CENTER_Y+10
|
||||||
WebSelX=SCREEN_WIDTH*3.0/4.0
|
WebSelX=SCREEN_WIDTH*3.0/4.0
|
||||||
WebSelColor=0.9,0.9,0.9,0.4
|
WebSelColor=color(0.9,0.9,0.9,0.4)
|
||||||
WebSelOnCommand=diffusealpha,0.0;linear,1.0;diffusealpha,1.0
|
WebSelOnCommand=diffusealpha,0.0;linear,1.0;diffusealpha,1.0
|
||||||
WebSelOffCommand=diffusealpha,1.0;linear,0.6;diffusealpha,0.0
|
WebSelOffCommand=diffusealpha,1.0;linear,0.6;diffusealpha,0.0
|
||||||
WebURLY=SCREEN_HEIGHT-40
|
WebURLY=SCREEN_HEIGHT-40
|
||||||
@@ -2599,28 +2599,28 @@ Fallback=ScreenWithMenuElements
|
|||||||
WarmUpSeconds=0.25
|
WarmUpSeconds=0.25
|
||||||
|
|
||||||
[BitmapText]
|
[BitmapText]
|
||||||
RainbowColor1=1.0,0.0,0.4,1 // red
|
RainbowColor1=color(1.0,0.0,0.4,1) // red
|
||||||
RainbowColor2=0.8,0.2,0.6,1 // pink
|
RainbowColor2=color(0.8,0.2,0.6,1) // pink
|
||||||
RainbowColor3=0.4,0.3,0.5,1 // purple
|
RainbowColor3=color(0.4,0.3,0.5,1) // purple
|
||||||
RainbowColor4=0.2,0.6,1.0,1 // sky blue
|
RainbowColor4=color(0.2,0.6,1.0,1) // sky blue
|
||||||
RainbowColor5=0.2,0.8,0.8,1 // sea green
|
RainbowColor5=color(0.2,0.8,0.8,1) // sea green
|
||||||
RainbowColor6=0.2,0.8,0.4,1 // green
|
RainbowColor6=color(0.2,0.8,0.4,1) // green
|
||||||
RainbowColor7=1.0,0.8,0.2,1 // orange
|
RainbowColor7=color(1.0,0.8,0.2,1) // orange
|
||||||
|
|
||||||
[SongManager]
|
[SongManager]
|
||||||
NumSongGroupColors=7
|
NumSongGroupColors=7
|
||||||
SongGroupColor1=0.8,0.1,0.6,1 // pink
|
SongGroupColor1=color(0.8,0.1,0.6,1) // pink
|
||||||
SongGroupColor2=0.6,0.4,0.8,1 // purple
|
SongGroupColor2=color(0.6,0.4,0.8,1) // purple
|
||||||
SongGroupColor3=0.0,0.4,0.8,1 // sky blue
|
SongGroupColor3=color(0.0,0.4,0.8,1) // sky blue
|
||||||
SongGroupColor4=0.0,0.6,0.6,1 // sea green
|
SongGroupColor4=color(0.0,0.6,0.6,1) // sea green
|
||||||
SongGroupColor5=0.1,0.7,0.3,1 // green
|
SongGroupColor5=color(0.1,0.7,0.3,1) // green
|
||||||
SongGroupColor6=0.8,0.6,0.0,1 // orange
|
SongGroupColor6=color(0.8,0.6,0.0,1) // orange
|
||||||
SongGroupColor7=1.0,0.3,0.3,1 // light red
|
SongGroupColor7=color(1.0,0.3,0.3,1) // light red
|
||||||
NumCourseGroupColors=1
|
NumCourseGroupColors=1
|
||||||
UseUnlockColor=false
|
UseUnlockColor=false
|
||||||
UnlockColor=1,0.5,0,1
|
UnlockColor=color(1,0.5,0,1)
|
||||||
CourseGroupColor1=1,1,1,1
|
CourseGroupColor1=color(1,1,1,1)
|
||||||
ExtraColor=1.0,0.0,0.0,1.0 // red
|
ExtraColor=color(1.0,0.0,0.0,1.0) // red
|
||||||
ExtraColorMeter=10
|
ExtraColorMeter=10
|
||||||
UsePreferredSortColor=false
|
UsePreferredSortColor=false
|
||||||
MoveUnlocksToBottomOfPreferredSort=false
|
MoveUnlocksToBottomOfPreferredSort=false
|
||||||
@@ -2724,9 +2724,9 @@ AvoidMineCommand=
|
|||||||
HitMineCommand=
|
HitMineCommand=
|
||||||
|
|
||||||
[BPMDisplay]
|
[BPMDisplay]
|
||||||
NormalColor=1.0,1.0,1.0,1 // white
|
NormalColor=color(1.0,1.0,1.0,1) // white
|
||||||
ChangeColor=1.0,0.5,0.0,1 // orange
|
ChangeColor=color(1.0,0.5,0.0,1) // orange
|
||||||
ExtraColor=0.7,0.0,0.0,1 // dark red
|
ExtraColor=color(0.7,0.0,0.0,1) // dark red
|
||||||
Cycle=true
|
Cycle=true
|
||||||
NoBPMText=...
|
NoBPMText=...
|
||||||
Separator=-
|
Separator=-
|
||||||
@@ -2799,12 +2799,12 @@ LabelPostDelayOnCommand=linear,0.1;glow,1,1,1,1;accelerate,0.3;zoom,1;diffuse,1,
|
|||||||
|
|
||||||
[GrooveGraph]
|
[GrooveGraph]
|
||||||
EdgeWidth=
|
EdgeWidth=
|
||||||
BeginnerColor=0,0,0,0
|
BeginnerColor=color(0,0,0,0)
|
||||||
EasyColor=0,0,0,0
|
EasyColor=color(0,0,0,0)
|
||||||
MediumColor=0,0,0,0
|
MediumColor=color(0,0,0,0)
|
||||||
HardColor=0,0,0,0
|
HardColor=color(0,0,0,0)
|
||||||
ChallengeColor=0,0,0,0
|
ChallengeColor=color(0,0,0,0)
|
||||||
EditColor=0,0,0,0
|
EditColor=color(0,0,0,0)
|
||||||
ShowStream=
|
ShowStream=
|
||||||
ShowVoltage=
|
ShowVoltage=
|
||||||
ShowAir=
|
ShowAir=
|
||||||
@@ -3304,11 +3304,11 @@ RowSpacingX=0
|
|||||||
RowSpacingY=60
|
RowSpacingY=60
|
||||||
ColSpacingX=0
|
ColSpacingX=0
|
||||||
ColSpacingY=0
|
ColSpacingY=0
|
||||||
StepsTypeColor1=0.6,0.6,1,1
|
StepsTypeColor1=color(0.6,0.6,1,1)
|
||||||
StepsTypeColor2=1,0.3,0.3,1
|
StepsTypeColor2=color(1,0.3,0.3,1)
|
||||||
StepsTypeColor3=0.3,1,0.3,1
|
StepsTypeColor3=color(0.3,1,0.3,1)
|
||||||
StepsTypeColor4=1.0,1,1.0,1
|
StepsTypeColor4=color(1.0,1,1.0,1)
|
||||||
StepsTypeColor5=1.0,1,1.0,1
|
StepsTypeColor5=color(1.0,1,1.0,1)
|
||||||
SongScoreRowsToDraw=6
|
SongScoreRowsToDraw=6
|
||||||
SongScoreSecondsPerRow=0.4
|
SongScoreSecondsPerRow=0.4
|
||||||
ManualScrolling=false
|
ManualScrolling=false
|
||||||
@@ -4222,12 +4222,12 @@ WriteSimpleValues=true
|
|||||||
TapsAndHolds=true
|
TapsAndHolds=true
|
||||||
|
|
||||||
[Course]
|
[Course]
|
||||||
SortPreferredColor=1,1,1,1 //Preferred is both for when courses are in preferred sort, or are autogen
|
SortPreferredColor=color(1,1,1,1) //Preferred is both for when courses are in preferred sort, or are autogen
|
||||||
SortLevel1Color=1,0,0,1
|
SortLevel1Color=color(1,0,0,1)
|
||||||
SortLevel2Color=1,1,0,1
|
SortLevel2Color=color(1,1,0,1)
|
||||||
SortLevel3Color=1,0.5,0,1
|
SortLevel3Color=color(1,0.5,0,1)
|
||||||
SortLevel4Color=1,1,0,1
|
SortLevel4Color=color(1,1,0,1)
|
||||||
SortLevel5Color=0,1,0,1
|
SortLevel5Color=color(0,1,0,1)
|
||||||
|
|
||||||
[Inventory]
|
[Inventory]
|
||||||
ItemUseRateSeconds=0
|
ItemUseRateSeconds=0
|
||||||
@@ -4268,15 +4268,15 @@ ItemsLongRowP1X=SCREEN_CENTER_X-60
|
|||||||
ItemsLongRowP2X=SCREEN_CENTER_X+100
|
ItemsLongRowP2X=SCREEN_CENTER_X+100
|
||||||
ItemsLongRowSharedX=SCREEN_CENTER_X+150
|
ItemsLongRowSharedX=SCREEN_CENTER_X+150
|
||||||
ItemsOnCommand=zoom,0.5
|
ItemsOnCommand=zoom,0.5
|
||||||
ColorSelected=0.5,1,0.5,1
|
ColorSelected=color(0.5,1,0.5,1)
|
||||||
ColorNotSelected=1,1,1,1
|
ColorNotSelected=color(1,1,1,1)
|
||||||
ColorDisabled=0.5,0.5,0.5,1
|
ColorDisabled=color(0.5,0.5,0.5,1)
|
||||||
CapitalizeAllOptionNames=false
|
CapitalizeAllOptionNames=false
|
||||||
TweenSeconds=0
|
TweenSeconds=0
|
||||||
|
|
||||||
[ScreenMiniMenuEditHelp]
|
[ScreenMiniMenuEditHelp]
|
||||||
Fallback=ScreenMiniMenu
|
Fallback=ScreenMiniMenu
|
||||||
ColorDisabled=1,1,1,1
|
ColorDisabled=color(1,1,1,1)
|
||||||
|
|
||||||
[ScreenMiniMenuMainMenu]
|
[ScreenMiniMenuMainMenu]
|
||||||
Fallback=ScreenMiniMenu
|
Fallback=ScreenMiniMenu
|
||||||
@@ -4387,8 +4387,8 @@ TitleGainFocusCommand=diffuseshift;EffectColor1,0.3,0.3,0.3,1;EffectColor2,1.3,1
|
|||||||
TitleLoseFocusCommand=stopeffect
|
TitleLoseFocusCommand=stopeffect
|
||||||
ItemsStartX=0
|
ItemsStartX=0
|
||||||
LineHighlightX=0
|
LineHighlightX=0
|
||||||
ColorSelected=1,1,1,1
|
ColorSelected=color(1,1,1,1)
|
||||||
ColorNotSelected=0.7,0.7,0.7,1
|
ColorNotSelected=color(0.7,0.7,0.7,1)
|
||||||
|
|
||||||
[ScreenJukebox DifficultyMeterP1]
|
[ScreenJukebox DifficultyMeterP1]
|
||||||
Fallback=ScreenGameplay DifficultyMeterP1
|
Fallback=ScreenGameplay DifficultyMeterP1
|
||||||
|
|||||||
@@ -935,17 +935,39 @@ bool ThemeManager::GetMetricB( const RString &sClassName, const RString &sValueN
|
|||||||
return LuaHelpers::RunExpressionB( sValue );
|
return LuaHelpers::RunExpressionB( sValue );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static RageColor RunExpressionC( const RString &sExpr )
|
||||||
|
{
|
||||||
|
Lua *L = LUA->Get();
|
||||||
|
|
||||||
|
LuaReference val;
|
||||||
|
if( !val.SetFromExpression(sExpr) )
|
||||||
|
{
|
||||||
|
LUA->Release( L );
|
||||||
|
return RageColor();
|
||||||
|
}
|
||||||
|
|
||||||
|
val.PushSelf( L );
|
||||||
|
|
||||||
|
if( lua_type(L, -1) != LUA_TTABLE )
|
||||||
|
RageException::Throw( "Color expression: \"%s\" did not return a table", sExpr.c_str() );
|
||||||
|
|
||||||
|
RageColor result;
|
||||||
|
result.FromStack( L, -1 );
|
||||||
|
lua_pop( L, 1 );
|
||||||
|
|
||||||
|
LUA->Release(L);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
RageColor ThemeManager::GetMetricC( const RString &sClassName, const RString &sValueName )
|
RageColor ThemeManager::GetMetricC( const RString &sClassName, const RString &sValueName )
|
||||||
{
|
{
|
||||||
RString sValue = GetMetricRaw( g_pLoadedThemeData->iniMetrics, sClassName, sValueName );
|
RString sValue = GetMetricRaw( g_pLoadedThemeData->iniMetrics, sClassName, sValueName );
|
||||||
|
|
||||||
LuaHelpers::RunAtExpressionS( sValue );
|
LuaHelpers::RunAtExpressionS( sValue );
|
||||||
|
|
||||||
RageColor ret(1,1,1,1);
|
LuaHelpers::PrepareExpression( sValue );
|
||||||
if( !ret.FromString(sValue) )
|
|
||||||
LOG->UserLog( RageLog::LogType_ThemeMetric, sClassName + "::" + sValueName,
|
return RunExpressionC( sValue );
|
||||||
"has an invalid color value \"%s\".", sValue.c_str() );
|
|
||||||
return ret;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if !defined(SMPACKAGE)
|
#if !defined(SMPACKAGE)
|
||||||
|
|||||||
Reference in New Issue
Block a user