diff --git a/Themes/HelloWorld/BGAnimations/ScreenTitleMenu underlay.lua b/Themes/HelloWorld/BGAnimations/ScreenTitleMenu underlay.lua
index 3b01c1c4aa..a057c0dd24 100644
--- a/Themes/HelloWorld/BGAnimations/ScreenTitleMenu underlay.lua
+++ b/Themes/HelloWorld/BGAnimations/ScreenTitleMenu underlay.lua
@@ -63,9 +63,9 @@ return Def.ActorFrame {
-- Making a cheap reflection effect for the sake of showing off the fov and
-- vanishpoint commands on ActorFrames.
Def.ActorFrame{
- InitCommand=cmd(fov,45;vanishpoint,SCREEN_LEFT+64,SCREEN_BOTTOM-24;);
+ InitCommand=cmd(fov,45;vanishpoint,SCREEN_LEFT+64,SCREEN_BOTTOM-20;);
LoadActor( "creativecommons" )..{
- InitCommand=cmd(x,SCREEN_LEFT+64;y,SCREEN_BOTTOM-24;valign,0;zoomy,-0.6;rotationx,-60;diffusealpha,0.6;Real;);
+ InitCommand=cmd(x,SCREEN_LEFT+64;y,SCREEN_BOTTOM-20;valign,0;zoomy,-0.6;rotationx,-60;diffusealpha,0.6;Real;);
OnCommand=cmd(croptop,1;fadetop,0;decelerate,0.8;croptop,0;fadetop,1;);
};
};
diff --git a/Themes/HelloWorld/BGAnimations/creativecommons.png b/Themes/HelloWorld/BGAnimations/creativecommons.png
index dece7939b5..af4b9599d0 100644
Binary files a/Themes/HelloWorld/BGAnimations/creativecommons.png and b/Themes/HelloWorld/BGAnimations/creativecommons.png differ
diff --git a/Themes/HelloWorld/Graphics/ReferenceBase ItemFocused (doubleres).png b/Themes/HelloWorld/Graphics/ReferenceBase ItemFocused (doubleres).png
new file mode 100644
index 0000000000..4948ad3bf0
Binary files /dev/null and b/Themes/HelloWorld/Graphics/ReferenceBase ItemFocused (doubleres).png differ
diff --git a/Themes/HelloWorld/Graphics/ReferenceBase header.lua b/Themes/HelloWorld/Graphics/ReferenceBase header.lua
new file mode 100644
index 0000000000..3491c5612f
--- /dev/null
+++ b/Themes/HelloWorld/Graphics/ReferenceBase header.lua
@@ -0,0 +1,23 @@
+local t = Def.ActorFrame{
+ Def.Quad{
+ InitCommand=cmd(zoomto,SCREEN_WIDTH,96;diffuse,color("#EEF4FFCC"));
+ };
+ Def.ActorFrame{
+ InitCommand=cmd(y,12);
+ LoadFont("_frutiger roman 24px")..{
+ Name="Header";
+ Text=ScreenString("Header");
+ InitCommand=cmd(x,-312;y,-34;halign,0;diffuse,color("#111111FF");diffusetopedge,color("#11111188");shadowlength,-1;shadowcolor,color("#FFFFFF44"));
+ };
+ Def.Quad{
+ InitCommand=cmd(zoomto,SCREEN_WIDTH*0.975,2;y,-20;diffuse,color("#111111FF");diffusetopedge,color("#11111188");shadowlength,-1;shadowcolor,color("#FFFFFF44");fadeleft,0.1;faderight,0.625);
+ };
+ LoadFont("_frutiger roman 24px")..{
+ Name="Explanation";
+ Text=ScreenString("Explanation");
+ InitCommand=cmd(x,-312;y,-14;align,0,0;diffuse,color("#111111FF");zoom,0.65;wrapwidthpixels,(SCREEN_WIDTH));
+ };
+ };
+};
+
+return t;
\ No newline at end of file
diff --git a/Themes/HelloWorld/Graphics/ReferenceBase scroll.lua b/Themes/HelloWorld/Graphics/ReferenceBase scroll.lua
new file mode 100644
index 0000000000..0220f83753
--- /dev/null
+++ b/Themes/HelloWorld/Graphics/ReferenceBase scroll.lua
@@ -0,0 +1,34 @@
+local gc = Var("GameCommand")
+local itemName = gc:GetName()
+
+local t = Def.ActorFrame{
+ -- focused frame
+ LoadActor( THEME:GetPathG("ReferenceBase","ItemFocused") )..{
+ GainFocusCommand=cmd(decelerate,0.25;diffusealpha,1);
+ LoseFocusCommand=cmd(stoptweening;decelerate,0.25;diffusealpha,0);
+ };
+ -- unfocused
+ LoadActor( THEME:GetPathG("SectionMenu","ItemUnfocused") )..{
+ GainFocusCommand=cmd(decelerate,0.25;diffusealpha,0);
+ LoseFocusCommand=cmd(stoptweening;decelerate,0.25;diffusealpha,1);
+ };
+
+ Def.ActorFrame{
+ LoadFont("_frutiger roman 24px")..{
+ Name="SectionName";
+ Text=ScreenString(itemName);
+ InitCommand=cmd(x,-250;y,-6;halign,0;diffuse,color("#222222FF"));
+ GainFocusCommand=cmd(decelerate,0.25;diffusealpha,1);
+ LoseFocusCommand=cmd(stoptweening;decelerate,0.25;diffusealpha,0.5);
+ };
+ LoadFont("_frutiger roman 24px")..{
+ Name="SectionDesc";
+ Text=ScreenString(itemName.."Desc");
+ InitCommand=cmd(x,-248;y,10;align,0,0;diffuse,color("#222222FF");zoom,0.5);
+ GainFocusCommand=cmd(decelerate,0.25;diffusealpha,1);
+ LoseFocusCommand=cmd(stoptweening;decelerate,0.25;diffusealpha,0.5);
+ };
+ };
+};
+
+return t;
\ No newline at end of file
diff --git a/Themes/HelloWorld/Languages/en.ini b/Themes/HelloWorld/Languages/en.ini
index eeee7a548c..e2a06baf01 100644
--- a/Themes/HelloWorld/Languages/en.ini
+++ b/Themes/HelloWorld/Languages/en.ini
@@ -35,7 +35,7 @@ CharactersDesc=Three-dimensional characters dancing in Gameplay. Modeling skills
[ScreenReferenceMain]
Header=Reference
-Explanation=This section contains reference material. It is meant for themers who already know what they are looking for.
+Explanation=This section contains reference material. It is meant for themers who have some idea of what they are looking for.
Screens=Screens
ScreensDesc=A reference of all of StepMania 5's available screens.
@@ -44,4 +44,20 @@ ManagersDesc=Various things that end in "Manager" (and sometimes not).
Classes=Classes
ClassesDesc=The classes that make up some of your favorite elements.
LuaRef=Lua Reference
-LuaRefDesc=Visit the StepMania 5 Lua reference online.
\ No newline at end of file
+LuaRefDesc=Visit the StepMania 5 Lua reference online.
+
+[ReferenceScreens]
+Header=Screen Reference
+Explanation=This is a list of Screens defined in StepMania's code.
+
+Screen=Screen
+ScreenDesc=The base Screen class that every other screen derives from.
+
+Overlays=Screen Overlays
+OverlaysDesc=Overlays that are handled regardless of screen.
+
+SWME=ScreenWithMenuElements
+SWMEDesc=A screen with menu elements. Most other screens are derived from this class.
+
+Options=ScreenOptions
+OptionsDesc=An options screen with various rows.
\ No newline at end of file
diff --git a/Themes/HelloWorld/metrics.ini b/Themes/HelloWorld/metrics.ini
index 56b5b2846f..b0a43b8f75 100644
--- a/Themes/HelloWorld/metrics.ini
+++ b/Themes/HelloWorld/metrics.ini
@@ -173,7 +173,7 @@ AllowRepeatingInput=true
HeaderY=SCREEN_TOP+72
ChoiceNames="Screens,Managers,Classes,LuaRef"
-ChoiceScreens="name,Screens"
+ChoiceScreens="name,Screens;screen,ReferenceScreens"
ChoiceManagers="name,Managers"
ChoiceClasses="name,Classes"
ChoiceLuaRef="name,LuaRef;urlnoexit,http://kki.ajworld.net/lua/sm5/Lua.xml"
@@ -194,11 +194,33 @@ ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(nu
Class="ScreenSelectMaster"
Fallback="ScreenSelectMaster"
PrevScreen="ScreenReferenceMain"
+HeaderY=SCREEN_TOP+72
+
+ShowScroller=true
+LoopScroller=false
+PerChoiceScrollElement=false
+
+ScrollerX=SCREEN_CENTER_X
+ScrollerY=SCREEN_CENTER_Y+48
+ScrollerNumItemsToDraw=10
+ScrollerSecondsPerItem=0.1
+ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(numItems/2))*64) end
## Screens
[ReferenceScreens]
Fallback="ReferenceBase"
+ChoiceNames="Screen,Overlays,SWME,Options"
+# screen,RefScreens-Screen
+ChoiceScreen="name,Screen"
+# screen,RefScreens-Overlays
+ChoiceOverlays="name,Overlays"
+# screen,RefScreens-ScreenWithMenuElements
+ChoiceSWME="name,SWME"
+# screen,RefScreens-ScreenOptions
+ChoiceOptions="name,Options"
+DefaultChoice="Screen"
+
## Managers and other Singletons
[ReferenceManagers]
Fallback="ReferenceBase"
diff --git a/Themes/HelloWorld/screens.txt b/Themes/HelloWorld/screens.txt
new file mode 100644
index 0000000000..a046631d70
--- /dev/null
+++ b/Themes/HelloWorld/screens.txt
@@ -0,0 +1,109 @@
+Starred values appear on the ReferenceScreens list.
+
+*
+ScreenDebugOverlay
+ScreenExit
+ScreenInstallOverlay
+ScreenReloadSongs
+ScreenSandbox
+ScreenStatsOverlay
+ScreenSyncOverlay
+ScreenSystemLayer
+ScreenTestSound
+*ScreenWithMenuElements
+
+
+ScreenEnding
+ScreenHighScores
+ScreenHowToPlay
+ScreenRanking
+ScreenUnlockStatus
+
+
+ScreenNetEvaluation
+
+
+ScreenGameplayNormal
+ScreenGameplayShared
+
+
+ScreenGameplayLesson
+ScreenGameplaySyncMachine
+ScreenJukebox
+
+
+ScreenDemonstration
+
+
+ScreenNetRoom
+ScreenNetSelectMusic
+
+*
+ScreenMiniMenu
+ScreenNetworkOptions
+ScreenOptionsCourseOverview
+ScreenOptionsEditCourse
+ScreenOptionsEditProfile
+ScreenOptionsExportPackage
+ScreenOptionsManageCourses
+ScreenOptionsManageEditSteps
+ScreenOptionsManageProfiles
+ScreenOptionsMaster
+ScreenOptionsCourseOverview
+ScreenOptionsMemoryCard
+ScreenOptionsToggleSongs
+ScreenSMOnlineLogin
+
+
+ScreenSongOptions
+ScreenPlayerOptions
+
+
+ScreenServiceAction
+ScreenSaveSync
+
+
+ScreenSelectMaster
+
+
+ScreenSelectLanguage
+ScreenTitleMenu
+ScreenUnlockBrowse
+
+
+ScreenTextEntryVisual
+
+
+ScreenUnlockCelebrate
+
+*
+ScreenAttract
+ScreenBookkeeping
+ScreenEdit
+ScreenEditMenu
+ScreenEvaluation
+ScreenGameplay
+ScreenInstructions
+ScreenMapControllers
+ScreenNameEntry
+ScreenNameEntryTraditional
+ScreenNetSelectBase
+ScreenOptions
+ScreenPackages
+ScreenPackagesSSC
+ScreenProfileLoad
+ScreenProfileSave
+ScreenPrompt
+ScreenSelect
+ScreenSelectCharacter
+ScreenSelectMusic
+ScreenSelectProfile
+ScreenSetTime
+ScreenSplash
+ScreenTestInput
+ScreenTestLights
+ScreenTextEntry
+ScreenWithMenuElementsSimple
+
+
+ScreenContinue