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:
Glenn Maynard
2006-09-22 02:35:42 +00:00
parent 6c398cf49d
commit 141f48b032
2 changed files with 92 additions and 70 deletions
+65 -65
View File
@@ -564,9 +564,9 @@ PrevScreen=@ScreenTitleBranch()
NextScreen=ScreenGameplayBranch
Fallback=ScreenNetSelectMusic
Class=ScreenNetRoom
OpenRoomColor=1.0,1.0,1.0,1.0
PasswdRoomColor=1.0,0.5,0.5,1.0
InGameRoomColor=1.0,0.1,0.1,1.0
OpenRoomColor=color(1.0,1.0,1.0,1.0)
PasswdRoomColor=color(1.0,0.5,0.5,1.0)
InGameRoomColor=color(1.0,0.1,0.1,1.0)
RoomWheelX=SCREEN_CENTER_X+160
RoomWheelY=SCREEN_CENTER_Y+4
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
ChatInputBoxWidth=310
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
ChatOutputBoxX=SCREEN_CENTER_X-157
ChatOutputBoxOnCommand=diffusealpha,0;linear,0.5;diffusealpha,1
ChatOutputBoxOffCommand=diffusealpha,1;linear,0.5;diffusealpha,0;zoomx,0.0;zoomy,0.0
ChatOutputBoxWidth=310
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
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
@@ -656,7 +656,7 @@ DifficultyIconP2Y=SCREEN_CENTER_Y+185
DifficultyIconP2X=SCREEN_CENTER_X+20
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
DiffBGColor=0.7,0.7,0.7,0.7
DiffBGColor=color(0.7,0.7,0.7,0.7)
DiffBGWidth=0
DiffBGHeight=0
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.
LyricsOneReverseX=SCREEN_CENTER_X+0
LyricsOneReverseY=SCREEN_CENTER_Y-205
LyricsDefaultColor=0,1,0,1
LyricsDefaultColor=color(0,1,0,1)
ActiveAttackListP1X=
ActiveAttackListP1Y=
ActiveAttackListP1OnCommand=hidden,1
@@ -2140,17 +2140,17 @@ HighlightSortOnCommand=accelerate,0.2;addx,-SCREEN_WIDTH/2
HighlightSortOffCommand=decelerate,0.2;addx,SCREEN_WIDTH/2
WheelItemOnDelayOffset=0.04
WheelItemOffDelayOffset=0.04
WheelItemLockedColor=0,0,0,0.5
WheelItemLockedColor=color(0,0,0,0.5)
NumSectionColors=7
SectionColor1=0.8,0.1,0.6,1 // pink
SectionColor2=0.6,0.4,0.8,1 // purple
SectionColor3=0.0,0.4,0.8,1 // sky blue
SectionColor4=0.0,0.6,0.6,1 // sea green
SectionColor5=0.1,0.7,0.3,1 // green
SectionColor6=0.8,0.6,0.0,1 // orange
SectionColor7=1.0,0.3,0.3,1 // light red
SongRealExtraColor=0.9,0.9,0,1 // yellow
SortMenuColor=1,1,0,1
SectionColor1=color(0.8,0.1,0.6,1) // pink
SectionColor2=color(0.6,0.4,0.8,1) // purple
SectionColor3=color(0.0,0.4,0.8,1) // sky blue
SectionColor4=color(0.0,0.6,0.6,1) // sea green
SectionColor5=color(0.1,0.7,0.3,1) // green
SectionColor6=color(0.8,0.6,0.0,1) // orange
SectionColor7=color(1.0,0.3,0.3,1) // light red
SongRealExtraColor=color(0.9,0.9,0,1) // yellow
SortMenuColor=color(1,1,0,1)
ShowRoulette=true
ShowRandom=true
ShowPortal=true
@@ -2175,7 +2175,7 @@ ChoiceHardMeter=sort,HardMeter
Fallback=MusicWheel
RoomWheelItemStartOnCommand=
RoomWheelItemFinishOnCommand=
CreateRoomColor=0.0,0.8,0.3,1.0
CreateRoomColor=color(0.0,0.8,0.3,1.0)
[RoomInfoDisplay]
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
ItemGainFocusCommand=
ItemLoseFocusCommand=
ColorSelected=1,1,1,1
ColorNotSelected=0.5,0.5,0.5,1
ColorDisabled=0.1,0.1,0.1,1
ColorSelected=color(1,1,1,1)
ColorNotSelected=color(0.5,0.5,0.5,1)
ColorDisabled=color(0.1,0.1,0.1,1)
CapitalizeAllOptionNames=false
TweenSeconds=0.3
@@ -2571,7 +2571,7 @@ WebOffCommand=diffusealpha,1.0;linear,0.6;diffusealpha,0.0
NumLinksShow=8
WebSelY=SCREEN_CENTER_Y+10
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
WebSelOffCommand=diffusealpha,1.0;linear,0.6;diffusealpha,0.0
WebURLY=SCREEN_HEIGHT-40
@@ -2599,28 +2599,28 @@ Fallback=ScreenWithMenuElements
WarmUpSeconds=0.25
[BitmapText]
RainbowColor1=1.0,0.0,0.4,1 // red
RainbowColor2=0.8,0.2,0.6,1 // pink
RainbowColor3=0.4,0.3,0.5,1 // purple
RainbowColor4=0.2,0.6,1.0,1 // sky blue
RainbowColor5=0.2,0.8,0.8,1 // sea green
RainbowColor6=0.2,0.8,0.4,1 // green
RainbowColor7=1.0,0.8,0.2,1 // orange
RainbowColor1=color(1.0,0.0,0.4,1) // red
RainbowColor2=color(0.8,0.2,0.6,1) // pink
RainbowColor3=color(0.4,0.3,0.5,1) // purple
RainbowColor4=color(0.2,0.6,1.0,1) // sky blue
RainbowColor5=color(0.2,0.8,0.8,1) // sea green
RainbowColor6=color(0.2,0.8,0.4,1) // green
RainbowColor7=color(1.0,0.8,0.2,1) // orange
[SongManager]
NumSongGroupColors=7
SongGroupColor1=0.8,0.1,0.6,1 // pink
SongGroupColor2=0.6,0.4,0.8,1 // purple
SongGroupColor3=0.0,0.4,0.8,1 // sky blue
SongGroupColor4=0.0,0.6,0.6,1 // sea green
SongGroupColor5=0.1,0.7,0.3,1 // green
SongGroupColor6=0.8,0.6,0.0,1 // orange
SongGroupColor7=1.0,0.3,0.3,1 // light red
SongGroupColor1=color(0.8,0.1,0.6,1) // pink
SongGroupColor2=color(0.6,0.4,0.8,1) // purple
SongGroupColor3=color(0.0,0.4,0.8,1) // sky blue
SongGroupColor4=color(0.0,0.6,0.6,1) // sea green
SongGroupColor5=color(0.1,0.7,0.3,1) // green
SongGroupColor6=color(0.8,0.6,0.0,1) // orange
SongGroupColor7=color(1.0,0.3,0.3,1) // light red
NumCourseGroupColors=1
UseUnlockColor=false
UnlockColor=1,0.5,0,1
CourseGroupColor1=1,1,1,1
ExtraColor=1.0,0.0,0.0,1.0 // red
UnlockColor=color(1,0.5,0,1)
CourseGroupColor1=color(1,1,1,1)
ExtraColor=color(1.0,0.0,0.0,1.0) // red
ExtraColorMeter=10
UsePreferredSortColor=false
MoveUnlocksToBottomOfPreferredSort=false
@@ -2724,9 +2724,9 @@ AvoidMineCommand=
HitMineCommand=
[BPMDisplay]
NormalColor=1.0,1.0,1.0,1 // white
ChangeColor=1.0,0.5,0.0,1 // orange
ExtraColor=0.7,0.0,0.0,1 // dark red
NormalColor=color(1.0,1.0,1.0,1) // white
ChangeColor=color(1.0,0.5,0.0,1) // orange
ExtraColor=color(0.7,0.0,0.0,1) // dark red
Cycle=true
NoBPMText=...
Separator=-
@@ -2799,12 +2799,12 @@ LabelPostDelayOnCommand=linear,0.1;glow,1,1,1,1;accelerate,0.3;zoom,1;diffuse,1,
[GrooveGraph]
EdgeWidth=
BeginnerColor=0,0,0,0
EasyColor=0,0,0,0
MediumColor=0,0,0,0
HardColor=0,0,0,0
ChallengeColor=0,0,0,0
EditColor=0,0,0,0
BeginnerColor=color(0,0,0,0)
EasyColor=color(0,0,0,0)
MediumColor=color(0,0,0,0)
HardColor=color(0,0,0,0)
ChallengeColor=color(0,0,0,0)
EditColor=color(0,0,0,0)
ShowStream=
ShowVoltage=
ShowAir=
@@ -3304,11 +3304,11 @@ RowSpacingX=0
RowSpacingY=60
ColSpacingX=0
ColSpacingY=0
StepsTypeColor1=0.6,0.6,1,1
StepsTypeColor2=1,0.3,0.3,1
StepsTypeColor3=0.3,1,0.3,1
StepsTypeColor4=1.0,1,1.0,1
StepsTypeColor5=1.0,1,1.0,1
StepsTypeColor1=color(0.6,0.6,1,1)
StepsTypeColor2=color(1,0.3,0.3,1)
StepsTypeColor3=color(0.3,1,0.3,1)
StepsTypeColor4=color(1.0,1,1.0,1)
StepsTypeColor5=color(1.0,1,1.0,1)
SongScoreRowsToDraw=6
SongScoreSecondsPerRow=0.4
ManualScrolling=false
@@ -4222,12 +4222,12 @@ WriteSimpleValues=true
TapsAndHolds=true
[Course]
SortPreferredColor=1,1,1,1 //Preferred is both for when courses are in preferred sort, or are autogen
SortLevel1Color=1,0,0,1
SortLevel2Color=1,1,0,1
SortLevel3Color=1,0.5,0,1
SortLevel4Color=1,1,0,1
SortLevel5Color=0,1,0,1
SortPreferredColor=color(1,1,1,1) //Preferred is both for when courses are in preferred sort, or are autogen
SortLevel1Color=color(1,0,0,1)
SortLevel2Color=color(1,1,0,1)
SortLevel3Color=color(1,0.5,0,1)
SortLevel4Color=color(1,1,0,1)
SortLevel5Color=color(0,1,0,1)
[Inventory]
ItemUseRateSeconds=0
@@ -4268,15 +4268,15 @@ ItemsLongRowP1X=SCREEN_CENTER_X-60
ItemsLongRowP2X=SCREEN_CENTER_X+100
ItemsLongRowSharedX=SCREEN_CENTER_X+150
ItemsOnCommand=zoom,0.5
ColorSelected=0.5,1,0.5,1
ColorNotSelected=1,1,1,1
ColorDisabled=0.5,0.5,0.5,1
ColorSelected=color(0.5,1,0.5,1)
ColorNotSelected=color(1,1,1,1)
ColorDisabled=color(0.5,0.5,0.5,1)
CapitalizeAllOptionNames=false
TweenSeconds=0
[ScreenMiniMenuEditHelp]
Fallback=ScreenMiniMenu
ColorDisabled=1,1,1,1
ColorDisabled=color(1,1,1,1)
[ScreenMiniMenuMainMenu]
Fallback=ScreenMiniMenu
@@ -4387,8 +4387,8 @@ TitleGainFocusCommand=diffuseshift;EffectColor1,0.3,0.3,0.3,1;EffectColor2,1.3,1
TitleLoseFocusCommand=stopeffect
ItemsStartX=0
LineHighlightX=0
ColorSelected=1,1,1,1
ColorNotSelected=0.7,0.7,0.7,1
ColorSelected=color(1,1,1,1)
ColorNotSelected=color(0.7,0.7,0.7,1)
[ScreenJukebox DifficultyMeterP1]
Fallback=ScreenGameplay DifficultyMeterP1
+27 -5
View File
@@ -935,17 +935,39 @@ bool ThemeManager::GetMetricB( const RString &sClassName, const RString &sValueN
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 )
{
RString sValue = GetMetricRaw( g_pLoadedThemeData->iniMetrics, sClassName, sValueName );
LuaHelpers::RunAtExpressionS( sValue );
RageColor ret(1,1,1,1);
if( !ret.FromString(sValue) )
LOG->UserLog( RageLog::LogType_ThemeMetric, sClassName + "::" + sValueName,
"has an invalid color value \"%s\".", sValue.c_str() );
return ret;
LuaHelpers::PrepareExpression( sValue );
return RunExpressionC( sValue );
}
#if !defined(SMPACKAGE)