diff --git a/Docs/Luadoc/Lua.xsl b/Docs/Luadoc/Lua.xsl index bf0562f25c..2861185f63 100644 --- a/Docs/Luadoc/Lua.xsl +++ b/Docs/Luadoc/Lua.xsl @@ -78,13 +78,13 @@ margin: 1px 2px 1px 2px; border: 1px solid #777; } - ._fallbackTheme{ + .fallbackTheme{ text-align: justify; vertical-align: text-top; background: #DDFFEE url(./bgline.png) repeat-x scroll 0 0; padding: 1px; } - fieldset div._fallbackTheme{ + fieldset div.fallbackTheme{ margin: 1px 2px 1px 2px; border: 1px solid #777; } @@ -235,7 +235,7 @@ Function Colors
Available in sm-ssc and StepMania 5
Renamed or changed from StepMania 4 alphas
-
Defined in the _fallback theme
+
Defined in the _fallback theme
Defined in the default theme
@@ -476,21 +476,13 @@ renamed - _fallbackTheme + fallbackTheme defaultTheme descriptionCell - - - - - - - - + ( @@ -511,9 +503,7 @@ - - descriptionCell - + descriptionCell diff --git a/Installer/custom-ssc.bmp b/Installer/custom-sm5.bmp similarity index 100% rename from Installer/custom-ssc.bmp rename to Installer/custom-sm5.bmp diff --git a/Installer/header-ssc.bmp b/Installer/header-sm5.bmp similarity index 100% rename from Installer/header-ssc.bmp rename to Installer/header-sm5.bmp diff --git a/Installer/welcome-ssc.bmp b/Installer/welcome-sm5.bmp similarity index 100% rename from Installer/welcome-ssc.bmp rename to Installer/welcome-sm5.bmp diff --git a/Themes/_fallback/Graphics/_missing.png b/Themes/_fallback/Graphics/_missing.png index b193cde188..ee2cf8d6b7 100644 Binary files a/Themes/_fallback/Graphics/_missing.png and b/Themes/_fallback/Graphics/_missing.png differ diff --git a/Themes/_fallback/Scripts/04 Scoring.lua b/Themes/_fallback/Scripts/04 Scoring.lua index 120177cd4d..27a1d6155a 100644 --- a/Themes/_fallback/Scripts/04 Scoring.lua +++ b/Themes/_fallback/Scripts/04 Scoring.lua @@ -86,6 +86,13 @@ r['DDR Extreme'] = function(params, pss) local radarValues = steps:GetRadarValues(params.Player); local baseScore = (steps:IsAnEdit() and 5 or steps:GetMeter()) * 1000000; + if (GAMESTATE:GetCurrentSong():IsMarathon()) then + baseScore = baseScore * 3; + else + if (GAMESTATE:GetCurrentSong():IsLong()) then + baseScore = baseScore * 2; + end; + end; local totalItems = GetTotalItems(radarValues); local singleStep = (1 + totalItems) * totalItems / 2; if (not Shared.CurrentStep) then diff --git a/Themes/default/BGAnimations/ScreenCredits overlay.lua b/Themes/default/BGAnimations/ScreenCredits overlay.lua index 6221e2c695..6c06c5b06a 100644 --- a/Themes/default/BGAnimations/ScreenCredits overlay.lua +++ b/Themes/default/BGAnimations/ScreenCredits overlay.lua @@ -25,7 +25,8 @@ local ssc = { } local sm_ssc = { - "Jason Felds (wolfman2000)", + "Jason Felds (wolfman2000)", -- Timing Segments, Split Timing, optimization + "Thai Pangsakulyanont (theDtTvB)", -- BMS, Split Timing, optimization "Alberto Ramos (Daisuke Master)", "Jack Walstrom (FSX)", } @@ -49,7 +50,6 @@ local contrib = { "Kaox", -- pump/default noteskin "NitroX72", -- pump/frame noteskin "sy567", -- beginner helper fix - "Thai Pangsakulyanont (theDtTvB)", -- BMS, Split Timing, optimization "v1toko", -- x-mode from StepNXA } diff --git a/Themes/default/Graphics/Common window icon.png b/Themes/default/Graphics/Common window icon.png index 23750444ac..4a68593c5d 100644 Binary files a/Themes/default/Graphics/Common window icon.png and b/Themes/default/Graphics/Common window icon.png differ diff --git a/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua b/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua index 4b927fb10a..bb61014df0 100644 --- a/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua +++ b/Themes/default/Graphics/ScreenGameplay BPMDisplay.lua @@ -1,8 +1,91 @@ -return Def.SongBPMDisplay { - File=THEME:GetPathF("BPMDisplay", "bpm"); - Name="BPMDisplay"; - InitCommand=cmd(zoom,0.675;shadowlength,1); - SetCommand=function(self) self:SetFromGameState() end; - CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); - CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); +-- check if players are playing steps with different timingdata. +local numPlayers = GAMESTATE:GetNumPlayersEnabled() + +local function UpdateSingleBPM(self) + local bpmDisplay = self:GetChild("BPMDisplay") + local pn = GAMESTATE:GetMasterPlayerNumber() + local pState = GAMESTATE:GetPlayerState(pn); + local songPosition = pState:GetSongPosition() + local bpm = songPosition:GetCurBPS() * 60 + bpmDisplay:settext( string.format("%03.2f",bpm) ) +end + +local displaySingle = Def.ActorFrame{ + -- manual bpm displays + LoadFont("BPMDisplay", "bpm")..{ + Name="BPMDisplay"; + InitCommand=cmd(zoom,0.675;shadowlength,1); + }; + + --[[ + Def.SongBPMDisplay { + File=THEME:GetPathF("BPMDisplay", "bpm"); + Name="BPMDisplay"; + InitCommand=cmd(zoom,0.675;shadowlength,1); + SetCommand=function(self) self:SetFromGameState() end; + CurrentSongChangedMessageCommand=cmd(playcommand,"Set"); + CurrentCourseChangedMessageCommand=cmd(playcommand,"Set"); + }; + --]] }; + +displaySingle.InitCommand=cmd(SetUpdateFunction,UpdateSingleBPM); + +if numPlayers == 1 then + return displaySingle +else + -- check if both players are playing the same steps + local stepsP1 = GAMESTATE:GetCurrentSteps(PLAYER_1) + local stepsP2 = GAMESTATE:GetCurrentSteps(PLAYER_2) + + local stP1 = stepsP1:GetStepsType() + local stP2 = stepsP2:GetStepsType() + + local diffP1 = stepsP1:GetDifficulty() + local diffP2 = stepsP2:GetDifficulty() + + -- get timing data... + local timingP1 = stepsP1:GetTimingData() + local timingP2 = stepsP2:GetTimingData() + + --if stP1 == stP2 and diffP1 == diffP2 then + if timingP1 == timingP2 then + -- both players are steps with the same TimingData; only need one. + return displaySingle + end + + -- otherwise, we have some more work to do. + + local function Update2PBPM(self) + local dispP1 = self:GetChild("DisplayP1") + local dispP2 = self:GetChild("DisplayP2") + + -- needs current bpm for p1 and p2 + for pn in ivalues(PlayerNumber) do + local bpmDisplay = (pn == PLAYER_1) and dispP1 or dispP2 + local pState = GAMESTATE:GetPlayerState(pn); + local songPosition = pState:GetSongPosition() + local bpm = songPosition:GetCurBPS() * 60 + bpmDisplay:settext( string.format("%03.2f",bpm) ) + end + end + + local displayTwoPlayers = Def.ActorFrame{ + -- manual bpm displays + LoadFont("BPMDisplay", "bpm")..{ + Name="DisplayP1"; + InitCommand=cmd(x,-28;zoom,0.6;shadowlength,1); + }; + LoadFont("BPMDisplay", "bpm")..{ + Name="DisplayP2"; + InitCommand=cmd(x,28;zoom,0.6;shadowlength,1); + }; + }; + + displayTwoPlayers.InitCommand=cmd(SetUpdateFunction,Update2PBPM); + + return displayTwoPlayers +end + +-- should not get here +-- return Def.ActorFrame{} \ No newline at end of file diff --git a/Themes/default/Graphics/ScreenRanking bullets 1x5.png b/Themes/default/Graphics/ScreenRanking bullets 1x5.png index f7693d0789..659aa8f2b8 100644 Binary files a/Themes/default/Graphics/ScreenRanking bullets 1x5.png and b/Themes/default/Graphics/ScreenRanking bullets 1x5.png differ diff --git a/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua b/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua index 8f35d2a5fb..aa46df3859 100644 --- a/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua +++ b/Themes/default/Graphics/ScreenTitleMenu VersionInfo.lua @@ -1,20 +1,17 @@ return Def.ActorFrame { LoadActor(THEME:GetPathG("ScreenTitleMenu","PreferenceFrame")) .. { - OnCommand=cmd(diffuse,Color("Orange");diffusetopedge,Color("Yellow");diffusealpha,0.25); + OnCommand=cmd(diffuse,color("#f7941d");diffusetopedge,color("#fff200");diffusealpha,0.25); }; LoadFont("Common Normal") .. { Text=ProductID(); AltText=""; - InitCommand=cmd(x,-72;y,-1;horizalign,left;zoom,0.75); + InitCommand=cmd(y,-5;zoom,0.6); OnCommand=cmd(shadowlength,1); }; LoadFont("Common Normal") .. { - Text=ProductVersion() .. "\n" .. VersionDate(); + Text=ProductVersion() .. " (".. VersionDate() ..")"; AltText=""; - InitCommand=cmd(x,72*0.35;zoom,0.5); + InitCommand=cmd(y,8;zoom,0.45); OnCommand=cmd(shadowlength,1;skewx,-0.125); }; ---[[ LoadFont("Common Normal") .. { - OnCommand=cmd(settext,"You're using " ..ProductID().." "..ProductVersion().."\nBuilt on "..VersionDate().." at "..VersionTime();horizalign,right;vertalign,bottom;zoom,0.5;); - }; --]] }; \ No newline at end of file diff --git a/Themes/default/metrics.ini b/Themes/default/metrics.ini index d3e01fbd43..65558ea9ca 100644 --- a/Themes/default/metrics.ini +++ b/Themes/default/metrics.ini @@ -604,7 +604,7 @@ ShowLogo=true LogoX=SCREEN_CENTER_X LogoY=SCREEN_CENTER_Y-68 LogoOnCommand=bob;effectperiod,4;effectmagnitude,0,5.25,0;zoom,0;bounceend,0.35;zoom,0.75 -LogoOffCommand=stopeffect;bouncebegin,0.35;rotationz,360;zoom,0 +LogoOffCommand=stopeffect;bouncebegin,0.35;zoom,0 # ShowCurrentGametype=true CurrentGametypeX=SCREEN_WIDTH*0.01 @@ -631,15 +631,15 @@ SystemDirectionOnCommand= SystemDirectionOffCommand= # ShowVersionInfo=true -VersionInfoX=SCREEN_RIGHT-84 +VersionInfoX=SCREEN_RIGHT-90 VersionInfoY=SCREEN_BOTTOM-64 VersionInfoOnCommand= VersionInfoOffCommand= # ShowNetworkStatus=true -NetworkStatusX=SCREEN_WIDTH*0.0125 +NetworkStatusX=SCREEN_LEFT+12 NetworkStatusY=SCREEN_HEIGHT*0.85 -NetworkStatusOnCommand=horizalign,left; +NetworkStatusOnCommand=halign,0; NetworkStatusOffCommand=linear,0.5;cropright,1 # HelpY=SCREEN_BOTTOM-24 diff --git a/Xcode/stepmania.xcodeproj/project.pbxproj b/Xcode/stepmania.xcodeproj/project.pbxproj index 63c87f3be9..7aed8f48e3 100644 --- a/Xcode/stepmania.xcodeproj/project.pbxproj +++ b/Xcode/stepmania.xcodeproj/project.pbxproj @@ -1524,7 +1524,7 @@ AAA071940CE7B50B005A3060 /* decoder.c in Sources */ = {isa = PBXBuildFile; fileRef = AAA070C00CE7B3AD005A3060 /* decoder.c */; }; AAA071950CE7B50C005A3060 /* bit.h in Headers */ = {isa = PBXBuildFile; fileRef = AAA070B50CE7B3AD005A3060 /* bit.h */; }; AAA071960CE7B50D005A3060 /* bit.c in Sources */ = {isa = PBXBuildFile; fileRef = AAA070B40CE7B3AD005A3060 /* bit.c */; }; - AAA071B40CE7C9C9005A3060 /* libmad.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AAA070A90CE7B0DF005A3060 /* libmad.a */; }; + AAA071B40CE7C9C9005A3060 /* libmad-sm5.a in Frameworks */ = {isa = PBXBuildFile; fileRef = AAA070A90CE7B0DF005A3060 /* libmad-sm5.a */; }; AAA372D40909934500141131 /* MovieTexture_Generic.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AAA372D00909934500141131 /* MovieTexture_Generic.cpp */; }; AAA372D60909934500141131 /* MovieTexture_Theora.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AAA372D20909934500141131 /* MovieTexture_Theora.cpp */; }; AAA6BFEC0644AB3700AFBBC8 /* ScreenWithMenuElements.cpp in Sources */ = {isa = PBXBuildFile; fileRef = AAA6BFEA0644AB3700AFBBC8 /* ScreenWithMenuElements.cpp */; }; @@ -2776,7 +2776,7 @@ AA9EC2F0055F5126007E5098 /* RageTextureID.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; name = RageTextureID.cpp; path = ../src/RageTextureID.cpp; sourceTree = ""; }; AA9EC2F1055F5126007E5098 /* RageTextureID.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.h; name = RageTextureID.h; path = ../src/RageTextureID.h; sourceTree = ""; }; AAA0704D0CE5082D005A3060 /* libffmpeg_link.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libffmpeg_link.a; sourceTree = ""; }; - AAA070A90CE7B0DF005A3060 /* libmad.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libmad.a; sourceTree = BUILT_PRODUCTS_DIR; }; + AAA070A90CE7B0DF005A3060 /* libmad-sm5.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libmad-sm5.a"; sourceTree = BUILT_PRODUCTS_DIR; }; AAA070B40CE7B3AD005A3060 /* bit.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = bit.c; sourceTree = ""; }; AAA070B50CE7B3AD005A3060 /* bit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = bit.h; sourceTree = ""; }; AAA070C00CE7B3AD005A3060 /* decoder.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = decoder.c; sourceTree = ""; }; @@ -3126,7 +3126,7 @@ AA7C8D1F0B6748E300FD9940 /* libtommath.a in Frameworks */, AA059E2C0B8F0C67006F8139 /* libz_link.a in Frameworks */, AAA0704E0CE5082E005A3060 /* libffmpeg_link.a in Frameworks */, - AAA071B40CE7C9C9005A3060 /* libmad.a in Frameworks */, + AAA071B40CE7C9C9005A3060 /* libmad-sm5.a in Frameworks */, 2B17AB9F13981271001AE57D /* libpng-1.5.1sm0.1.a in Frameworks */, 2B17ABCF139815E0001AE57D /* libglew.a in Frameworks */, 2B17ABFC139817D5001AE57D /* libpcre.a in Frameworks */, @@ -3244,7 +3244,7 @@ AA7A2BAB0AE09CD50054C5BA /* luac */, AA7C895F0B67444700FD9940 /* libtommath.a */, AA7C8B8B0B67460600FD9940 /* libtomcrypt.a */, - AAA070A90CE7B0DF005A3060 /* libmad.a */, + AAA070A90CE7B0DF005A3060 /* libmad-sm5.a */, 2B17AB7213980FDF001AE57D /* libpng-1.5.1sm0.1.a */, 2B17ABC013981521001AE57D /* libglew.a */, 2B17ABE013981756001AE57D /* libpcre.a */, @@ -5856,7 +5856,7 @@ ); name = mad; productName = mad; - productReference = AAA070A90CE7B0DF005A3060 /* libmad.a */; + productReference = AAA070A90CE7B0DF005A3060 /* libmad-sm5.a */; productType = "com.apple.product-type.library.static"; }; AAE7817D0AC7E37B00AEFC64 /* lua-5.1 */ = { @@ -7381,7 +7381,7 @@ INSTALL_PATH = /usr/local/lib; OTHER_LDFLAGS = ""; PREBINDING = NO; - PRODUCT_NAME = png; + PRODUCT_NAME = "png-1.5.1sm0.1"; USER_HEADER_SEARCH_PATHS = ""; }; name = Native; @@ -7424,7 +7424,7 @@ INSTALL_PATH = /usr/local/lib; OTHER_LDFLAGS = ""; PREBINDING = NO; - PRODUCT_NAME = png; + PRODUCT_NAME = "png-1.5.1sm0.1"; USER_HEADER_SEARCH_PATHS = ""; }; name = PerformanceDebug; @@ -7467,7 +7467,7 @@ INSTALL_PATH = /usr/local/lib; OTHER_LDFLAGS = ""; PREBINDING = NO; - PRODUCT_NAME = png; + PRODUCT_NAME = "png-1.5.1sm0.1"; USER_HEADER_SEARCH_PATHS = ""; }; name = Universal; @@ -8385,7 +8385,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/../src/mad-0.15.1b"; INSTALL_PATH = /usr/local/lib; PREBINDING = NO; - PRODUCT_NAME = mad; + PRODUCT_NAME = "mad-sm5"; }; name = Native; }; @@ -8421,7 +8421,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/../src/mad-0.15.1b"; INSTALL_PATH = /usr/local/lib; PREBINDING = NO; - PRODUCT_NAME = mad; + PRODUCT_NAME = "mad-sm5"; }; name = PerformanceDebug; }; @@ -8457,7 +8457,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/../src/mad-0.15.1b"; INSTALL_PATH = /usr/local/lib; PREBINDING = NO; - PRODUCT_NAME = mad; + PRODUCT_NAME = "mad-sm5"; }; name = Universal; }; @@ -8496,7 +8496,7 @@ HEADER_SEARCH_PATHS = "$(SRCROOT)/../src/mad-0.15.1b"; INSTALL_PATH = /usr/local/lib; PREBINDING = NO; - PRODUCT_NAME = mad; + PRODUCT_NAME = "mad-sm5"; }; name = Debug; }; diff --git a/src/InputMapper.cpp b/src/InputMapper.cpp index 6707cf8408..90e65ae879 100644 --- a/src/InputMapper.cpp +++ b/src/InputMapper.cpp @@ -948,7 +948,7 @@ MultiPlayer InputMapper::InputDeviceToMultiPlayer( InputDevice id ) GameButton InputScheme::ButtonNameToIndex( const RString &sButtonName ) const { for( GameButton gb=(GameButton) 0; gbStopPlaying(); SCREENMAN->PostMessageToTopScreen( SM_NotesEnded, 0 ); + // todo: stop lyrics (m_LyricDisplay) from animating -aj } // Update living players' alive time diff --git a/src/Song.cpp b/src/Song.cpp index 3aaeee24ac..cc57bccd9b 100644 --- a/src/Song.cpp +++ b/src/Song.cpp @@ -1458,7 +1458,7 @@ float Song::GetStepsSeconds() const bool Song::IsLong() const { - return !IsMarathon() && m_fMusicLengthSeconds > g_fLongVerSongSeconds; + return !IsMarathon() && m_fMusicLengthSeconds >= g_fLongVerSongSeconds; } bool Song::IsMarathon() const