# Hello World # (and other sm-ssc theming examples) # A theme by various contributors. Sign your comments if you wish. # contributors: # AJ Kelly of the Spinal Shark Collective (http://ssc.ajworld.net/) ################################################################################ # [Common] # InitialScreen defines the starting screen of the theme. # It can either be a string or a Lua function that returns a string. InitialScreen="ScreenTitleMenu" ################################################################################ # [base] Base Screens aren't concrete, but are referenced by concrete screens. # Pretty much every screen derives from this one. Adding decorations to it is # one of the first things a themer does. [ScreenWithMenuElements] ShowHeader=true HeaderX=SCREEN_CENTER_X HeaderY=SCREEN_TOP+24 HeaderOnCommand=draworder,100 ShowFooter=false FooterX=SCREEN_CENTER_X FooterY=SCREEN_BOTTOM-24 FooterOnCommand=draworder,100 ShowCreditDisplay=false ################################################################################ # [overlay] Overlay screens sit on top of everything. ################################################################################ # [core] Core Screens; these are the concrete implementations. # ScreenTitleMenu is the first screen you see in this theme, thanks to the # [Common] InitialScreen metric being changed. [ScreenTitleMenu] # PrevScreen is set to make sure nothing gets messed up. PrevScreen="ScreenTitleMenu" # These settings are used to disable the attract sequence: IdleTimeoutSeconds=-1 IdleTimeoutScreen="ScreenTitleMenu" # no header or footer here ShowHeader=false ShowFooter=false # These settings define what options appear on the menu and what commands are # run when they are selected: ChoiceNames="1,2,3,4,5" Choice1="text,Guide;screen,ScreenGuideMain" Choice2="text,Reference;screen,ScreenReferenceMain" Choice3="text,Tutorial;" Choice4="text,Options;screen,ScreenOptionsService;" Choice5="text,Exit;screen,ScreenExit;" # These control the placement of the items, as well as the list: ScrollerX=SCREEN_RIGHT-44 ScrollerY=SCREEN_CENTER_Y+32 ScrollerOnCommand=addx,SCREEN_CENTER_X;decelerate,0.8;addx,-SCREEN_CENTER_X ScrollerTransform=function(self,offset,itemIndex,numItems) self:y(27*offset) end [ScreenOptionsService] # dummying out ScreenInit NextScreen="ScreenTitleMenu" PrevScreen="ScreenTitleMenu" ################################################################################ # [guide] The guide splits the elements of StepMania theming into different sections. # It acts as an introduction to all of the concepts in modern StepMania theming. # All guide pages aside from ScreenGuideMain MUST be prefixed with "Guide" in # order to differentiate them from the core screens. [ScreenGuideMain] Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" PrevScreen="ScreenTitleMenu" AllowRepeatingInput=true # modifying header position HeaderY=SCREEN_TOP+72 ChoiceNames="Metrics,Fonts,Graphics,BGAnims,Sounds,Scripts,Other,NoteSkins,Announcers,Characters" ChoiceMetrics="name,Metrics" ChoiceFonts="name,Fonts" ChoiceGraphics="name,Graphics" ChoiceBGAnims="name,BGAnims" ChoiceSounds="name,Sounds" ChoiceScripts="name,Scripts" ChoiceOther="name,Other" ChoiceNoteSkins="name,NoteSkins" ChoiceAnnouncers="name,Announcers" ChoiceCharacters="name,Characters" DefaultChoice="Metrics" ShowScroller=true LoopScroller=false PerChoiceScrollElement=false ScrollerX=SCREEN_CENTER_X ScrollerY=SCREEN_CENTER_Y*0.775 ScrollerNumItemsToDraw=10 ScrollerSecondsPerItem=0.1 ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(numItems/2))+offset*64) end # guide base screen (sets up things I don't want to retype a lot -aj) # [GuideBase] Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" ## Metrics [GuideMetrics] Fallback="GuideBase" ## Fonts [GuideFonts] Fallback="GuideBase" ## Graphics [GuideGraphics] Fallback="GuideBase" ## BGAnimations [GuideBGA] Fallback="GuideBase" ### Decorations (simpler) ### Overlay/Underlay (can be more complex) ## Sounds [GuideSounds] Fallback="GuideBase" ## Scripts [GuideScripts] Fallback="GuideBase" ## the Other folder [GuideOther] Fallback="GuideBase" ### HowToPlay steps ### PreferredSort # And then there are the things that are related to theming: ## NoteSkins [GuideNoteSkins] Fallback="GuideBase" ## Announcers [GuideAnnouncers] Fallback="GuideBase" ## Characters [GuideCharacters] Fallback="GuideBase" ################################################################################ # [ref] The reference section contains a complete listing of commands and examples of how they work. # # All reference pages aside from ScreenReferenceMain MUST be prefixed with "Reference" # in order to differentiate them from the core screens. [ScreenReferenceMain] Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" PrevScreen="ScreenTitleMenu" AllowRepeatingInput=true # modifying header position HeaderY=SCREEN_TOP+72 ChoiceNames="Screens,Managers,Classes" ChoiceScreens="name,Screens" ChoiceManagers="name,Managers" ChoiceClasses="name,Classes" DefaultChoice="Screens" ShowScroller=true LoopScroller=false PerChoiceScrollElement=false ScrollerX=SCREEN_CENTER_X ScrollerY=SCREEN_CENTER_Y+32 ScrollerNumItemsToDraw=10 ScrollerSecondsPerItem=0.1 ScrollerTransform=function(self,offset,itemIndex,numItems) self:y((itemIndex-(numItems/2))*64) end # reference base screen (sets up things I don't want to retype a lot -aj) # [ReferenceBase] Class="ScreenSelectMaster" Fallback="ScreenSelectMaster" ## Screens [ReferenceScreens] Fallback="ReferenceBase" ## Managers and other Singletons [ReferenceManagers] Fallback="ReferenceBase" #@# STEPMANIA ROBOT MASTERS ### ANNOUNCER [man] [ReferenceAnnouncerMan] ### CHARMAN [ReferenceCharMan] ### FILEMAN [ReferenceFileMan] ### GAMEMAN [ReferenceGameMan] ### GAMESOUNDMAN [ReferenceGameSoundMan] ### GAMESTATE [ReferenceGameState] ### MEMCARDMAN [ReferenceMemCardMan] ### MESSAGEMAN [ReferenceMessageMan] ### NOTESKIN [man] [ReferenceNoteskinMan] ### PREFSMAN [ReferencePrefsMan] ### PROFILEMAN [ReferenceProfileMan] ### SCREENMAN [ReferenceScreenMan] ### SONGMAN [ReferenceSongMan] ### STATSMAN [ReferenceStatsMan] ### THEME [man] [ReferenceThemeMan] ### UNLOCKMAN [ReferenceUnlockMan] ## Classes [ReferenceClasses] Fallback="ReferenceBase" ### Actor [ReferenceActor] #### many sub-things ### ActorFrame [ReferenceActorFrame] ### Banner [ReferenceBanner] ### Song [ReferenceSong] ### Steps [ReferenceSteps] ### Course [ReferenceCourse] ### Trail [ReferenceTrail] ### and a ton of missing stuff ################################################################################ # [tutor] Tutorials are guides to implementing specific things # [ScreenTutorialMain] # todo: figure out what tutorials