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 @@
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