diff --git a/Docs/Changelog_SSCformat.txt b/Docs/Changelog_SSCformat.txt
index b21c8c8ce1..643f4b60a0 100644
--- a/Docs/Changelog_SSCformat.txt
+++ b/Docs/Changelog_SSCformat.txt
@@ -9,6 +9,9 @@ change to JSON, but it is unsure if this will be done.
Implement .ssc at your own risk.
_______________________________________________________________________________
+[v0.82] - cerbo
+* add #PREVIEWVID tag. (to load the preview video, like #PREVIEW tag in .sma)
+
[v0.81] - freem
* add #JACKET, #CDIMAGE, and #DISCIMAGE tags. (similar to #BANNER, etc.)
diff --git a/Docs/Changelog_sm5.txt b/Docs/Changelog_sm5.txt
index 2c356f59a2..7a9c6a00ae 100644
--- a/Docs/Changelog_sm5.txt
+++ b/Docs/Changelog_sm5.txt
@@ -4,10 +4,34 @@ The StepMania 5 Changelog covers all post-sm-ssc changes. For a list of changes
from StepMania 4 alpha 5 to sm-ssc v1.2.5, see Changelog_sm-ssc.txt.
________________________________________________________________________________
+================================================================================
+StepMania 5.0 alpha 1a | 201201??
+--------------------------------------------------------------------------------
+
+2012/01/15
+----------
+* [WheelNotifyIcon] Add the NumIconsToShow metric. [Wolfman2000]
+* [PlayerOptions] Fix a problem with m-mods where you would get m200 as
+ the default speed modifier. [AJ]
+
+2012/01/11
+----------
+* [ScreenEdit] Fix a floating point issue when dealing with speed segments.
+ [Wolfman2000]
+
+2012/01/09
+----------
+* [Song] Fix a bug introduced with "Only read certain tags during first load"
+ where song graphic files wouldn't load. [theDtTvB]
+
================================================================================
StepMania 5.0 alpha 1 | 20120108
--------------------------------------------------------------------------------
+2012/01/08
+----------
+* [Song] Add HasPreviewVid and GetPreviewVidPath lua binding [cerbo]
+
2012/01/08
----------
* [ScreenManager] Made AddScreenToTop take a second (optional) parameter for
diff --git a/Docs/Luadoc/Lua.xml b/Docs/Luadoc/Lua.xml
index 062cc2b248..f1f2aa9b77 100644
--- a/Docs/Luadoc/Lua.xml
+++ b/Docs/Luadoc/Lua.xml
@@ -94,6 +94,7 @@
+
@@ -736,6 +737,7 @@
+
@@ -2308,6 +2310,6 @@
- StepMania v5.0 alpha 0
- 2011-12-29
+ StepMania v5.0 alpha 1
+ 2012-01-12
diff --git a/Docs/Luadoc/LuaDocumentation.xml b/Docs/Luadoc/LuaDocumentation.xml
index 740602aef7..62c548dce5 100644
--- a/Docs/Luadoc/LuaDocumentation.xml
+++ b/Docs/Luadoc/LuaDocumentation.xml
@@ -273,6 +273,9 @@ save yourself some time, copy this for undocumented things:
[03 ThemePrefs.lua] Initializes various user preferences.
+
+ [01 base.lua] "Like ipairs(), but returns only values."
+
[02 Utilities.lua] Returns true if the coin mode is not set to CoinMode_Home.
@@ -352,7 +355,7 @@ save yourself some time, copy this for undocumented things:
Creates a module. See the Lua manual for more details.
- Returns the current month of the year.
+ Returns the current month of the year (0-11).
Returns Month m as a localized string.
@@ -386,6 +389,9 @@ save yourself some time, copy this for undocumented things:
[02 Actor.lua] Returns either p1val or p2val depending on pn.
+
+ Returns a formatted percent with the specified numerator and denominator.
+
[00 init.lua]
@@ -438,6 +444,9 @@ save yourself some time, copy this for undocumented things:
[02 Colors.lua] Modifies the saturation of the specified color
+
+ Scales x, originally within low1 and high1, to fall between low2 and high2.
+
[03 Gameplay.lua] Returns the primary ScoreKeeper class to use.
@@ -2110,7 +2119,10 @@ save yourself some time, copy this for undocumented things:
Return the source for the editor or nil
if it does not exist.
-
+
+ Returns a table of enabled players.
+
+
Returns the name of the currently expanded section.
diff --git a/Docs/license-ext/theme_lang-ja.txt b/Docs/license-ext/theme_lang-ja.txt
index 2535f44532..531d618851 100644
--- a/Docs/license-ext/theme_lang-ja.txt
+++ b/Docs/license-ext/theme_lang-ja.txt
@@ -1,39 +1,49 @@
-Stepmania 5系本体用 日本語化セット2(2011/12/18)
-作者:ナイラー
+Stepmania 5n{̗p@{ꉻZbg5(2012/01/12)
+ҁFiC[
-----------
-Stepmania5系本体では従来の日本語テーマ、および日本語ランゲージファイルが使用できなくなっています。
-個人的に日本語が見えているほうが安心できるので、とりあえずファイルを製作してみました。
+Stepmania5n{̂ł͏]̓{e[}Aѓ{ꃉQ[Wt@CgpłȂȂĂ܂B
+lIɓ{ꂪĂقSł̂ŁAƂ肠t@C삵Ă݂܂B
-----------
-以下のファイルが同梱されています。
-・fallbackja.ini(_fallbackテーマ用日本語ランゲージファイル) Ver 1.04α
-・themeja.ini(デフォルトテーマ用日本語ランゲージファイル) Ver 1.02α
+ȉ̃t@CĂ܂B
+Efallbackja.ini(_fallbacke[}p{ꃉQ[Wt@C) Ver 1.05
+Ethemeja.ini(ftHge[}p{ꃉQ[Wt@C) Ver 1.03
+(YɂȂ̂ɋӖ͂܂BԍȂ̂)
-----------
-今回の更新点
-fallbackja.iniに対して
-・一部整形し忘れた文の整形。
-・エディット内での背景設定の部分の訳。
+̍XV_
+ÓuׂvŌƂĂC܂B
+fallbackja.iniɑ
+ENEChẼeLXg̓{ꉻB
+EGfBbg̃wv̖̒ECB
+ȂAmFĂ͂܂NEChE2oCguƃoOƎv܂(ł)B
+oONꍇA[LoadingWindow]ׂ̍ĉp̌t@Ĉ̂ɒuĂB
+NȂy݂B
+themeja.iniɑ
+EI[gvC̐̒ECB
+EʂȂɃQ[X^[gGfBbgIԂƏoĂXN[͂̐̕`B
-----------
-それぞれのファイルは、次の場所に配置してください。
-・fallbackja.iniは、「Theme」フォルダの「_fallback」フォルダ内の「Language」フォルダに、
- 「ja.ini」にリネームして配置。
-・themeja.iniは、「Theme」フォルダの「Default」フォルダ内の「Language」フォルダに
- 「ja.ini」にリネームして配置。
- ☆(重要)デフォルトテーマ以外では日本語化しきれなくなる部分があります。
- そのことの報告は控えていただければ。
-これでオプションから日本語が設定できるようになります。
-操作の手順は、標準テーマなら
-「起動→Option→More Option→Appearance Options→Languageで日本語を選択」です。
+ꂼ̃t@ĆȀꏊɔzuĂB
+Efallbackja.iníAuThemevtH_́u_fallbackvtH_́uLanguagevtH_ɁA
+@uja.inivɃl[ĔzuB
+Ethemeja.iníAuThemevtH_́uDefaultvtH_́uLanguagevtH_
+@uja.inivɃl[ĔzuB
+@@(dv)ftHge[}ȊOł͓{ꉻȂȂ镔܂B
+@@@@@@̂Ƃ͍̕TĂB
+ŃIvV{ꂪݒł悤ɂȂ܂B
+̎菇́AWe[}Ȃ
+uNOptionMore OptionAppearance OptionsLanguageœ{IvłB
----------
-誤訳、および訳さないほうがいい部分もありますが、そこは勘弁してください。
-また、フォント画像が追加で必要になる箇所があるかもしれませんが、今回はそれも勘弁してください。
-
+AіȂق܂A͊قĂB
+ljœ{tHgt@CKvƂȂꍇA
+https://skydrive.live.com/embed?cid=EF81182F6B9C3571&resid=EF81182F6B9C3571%21140&authkey=AHPyLL7fuTngDMk
+uStepmaniapāv肷邱Ƃł܂B
+StepmaniapĂɂ͔pJiftHgtHgɎ^ĂȂ̈ꕔ^Ă܂B
----------
-このセットは自由に改変、再配布することができます。パッケージなどに同梱しても構いません。
-改変後のファイルの改変・再配布条件は自由に設定してかまいません。
+̃Zbg͎RɉρAĔzz邱Ƃł܂BpbP[WȂǂɓĂ\܂B
+ό̃t@C̉ρEĔzz͎Rɐݒ肵Ă܂܂B
----------
-For foreign "rhythmers"
This archive can be fixed and redistributed by you all.Including to Song Packages or Themes is
also OK.
Moreover,you can decide how these files are treated.
+Sorry for my poor English :)
----------
-何かありましたらTwitterの@Niler_jpまで。
\ No newline at end of file
+܂Twitter@Niler_jp܂ŁB
\ No newline at end of file
diff --git a/Makefile.am b/Makefile.am
index f39d0f24ec..80e9d934ac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -20,9 +20,9 @@ SMData:
$(srcdir)/Utils/CreatePackage.pl $(srcdir) .
dist-hook: SMData
- mkdir -p $(distdir)/Packages
- mv GameData.smzip $(distdir)/Packages
- cp -r $(srcdir)/Docs $(distdir)
+ mkdir -p "$(distdir)/Packages"
+ mv GameData.smzip "$(distdir)/Packages"
+ cp -r "$(srcdir)/Docs" "$(distdir)"
cp -r -t "$(distdir)" $(installFiles)
install-exec-hook:
diff --git a/Themes/_fallback/Languages/ja.ini b/Themes/_fallback/Languages/ja.ini
index 288ff48d22..52e4dd05b7 100644
--- a/Themes/_fallback/Languages/ja.ini
+++ b/Themes/_fallback/Languages/ja.ini
@@ -1,24 +1,24 @@
-;Stepmania 5.0系本体用 _fallbackテーマ日本語化ファイルVer 1.04α
+;Stepmania 5.0系本体用 _fallbackテーマ日本語化ファイルVer 1.05β
[Common]
WindowTitle=StepMania
StepMania=StepMania
[LoadingWindow]
-Couldn't open any loading windows.=Couldn't open any loading windows.
-Starting sound subsystem...=Starting sound subsystem...
-Initializing bookkeeper...=Initializing bookkeeper...
-Starting lights subsystem...=Starting lights subsystem...
-Loading game type...=Loading game type...
-Building song cache index...=Building song cache index...
-Loading banner cache...=Loading banner cache...
-Initializing memory card system...=Initializing memory card system...
-Initializing character system...=Initializing character system...
-Initializing profile system...=Initializing profile system...
-Updating popular song list...=Updating popular song list...
-Updating course rankings...=Updating course rankings...
-Initializing statics manager...=Initializing statics manager...
-Initializing message system...=Initializing message system...
+Couldn't open any loading windows.=読み込みウインドウが開けませんでした。
+Starting sound subsystem...=音声システム開始
+Initializing bookkeeper...=クレジット記録初期化中
+Starting lights subsystem...=サイドライト初期化中
+Loading game type...=ゲーム読み込み中
+Building song cache index...=譜面データベース生成中
+Loading banner cache...=バナー画像キャッシュ中
+Initializing memory card system...=メモリーカードポート初期化中
+Initializing character system...=フォント読み込み中
+Initializing profile system...=プロフィール読み込み中
+Updating popular song list...=人気曲リスト更新中
+Updating course rankings...=コースランキング更新中
+Initializing statics manager...=スタティックマネージャー初期化中
+Initializing message system...=メッセージシステム初期化中
[Arch]
Couldn't create a movie driver.=動画ドライバの生成に失敗しました。
@@ -379,7 +379,7 @@ Fill Machine Stats=
Game=シミュレートするゲームを変更します。
GetRankingName=ネーム入力画面の出方を設定します。
Graphics/Sound Options=画面及び音声に関する設定です。
-Group=
+Group=譜面を再生するグループを設定します。
HiddenSongs=Onにすると「SELECTABLE」設定が\n「NO」になっている曲は選択できなくなります。
@@ -402,7 +402,7 @@ No Memory Card=メモリーカードが認識されません。
NoteSkins=使用するノートスキンを設定します。\n必ずシミュレート中のモードに対応したスキンを使用してください。
NumBackgrounds=ランダム背景を使う際に常に読み込む画像数を設定します。
OnlyDedicatedMenuButtons=ゲーム用のボタンでメニューが操作できるようになります。\n特別なことがない限り「Use Gameplay Buttons」にしてください。
-OptionsRandomJukebox=ジュークボックスについての設定です。
+OptionsRandomJukebox=ランダムでプレイオプションを設定して譜面を再生します。
OsMountPlayer1=
OsMountPlayer2=
@@ -460,7 +460,7 @@ SoundVolumeAttract=アトラクトデモの音量を変更します。
StepMania Credits=StepManiaの開発チームを紹介します。
Steps=譜面
-Style=スタイル
+Style=再生するプレイスタイルを設定します。
Test Input=ジョイスティックの入力テストを行います。
Test Lights=ライトセンサーの入力テストを行います。
TextureColorDepth=テクスチャの有効色数を設定します。
@@ -836,7 +836,7 @@ Clear area=エリア内のオブジェ削除
Clear clipboard=クリップボード削除
CoinMode=コインモード
CoinModeNoHome=コインモード
-CoinsPerCredit=Coins Per Credit
+CoinsPerCredit=1クレジットの\nコイン数
Connection=接続
Convert pause to beats=停止を拍に
Convert delay to beats=低速を拍に
@@ -935,7 +935,7 @@ Game=Game
GetRankingName=ネーム入力
Graphics/Sound Options=画像/音声オプション
Group=グループ
-Hands=Hands
+Hands=トリプル
HiddenSongs=隠し曲
Hide=判定ゾーン
High Meter=High Meter
@@ -992,7 +992,7 @@ Play selection=選択範囲をテストプレイ
Player1Profile=1Pのプロファイル
Player2Profile=2Pのプロファイル
PlayerAutoPlay=オートプレイ
-Predicted Meter=Predicted Meter
+Predicted Meter=予想難易度
Preferences=好み
PreloadSounds=音声の先読み
Premium=プレミアム
@@ -1319,7 +1319,7 @@ Enter a new min BPM.=表示される最小BPMを入力してください。
Enter a new max BPM.=表示される最大BPMを入力してください。
More than %d notes per measure is not allowed. This change has been reverted.=1小節に%d個のオブジェは置けません。修正してください。
No backgrounds available=背景画像が存在しません。
-EditHelpText=Up/Down:\n 拍の変更\nLeft/Right:\n 分数切り替え\n数字キー:\n 配置/除去\nN and M keys:\n オブジェの種類変更\nCtrl + N/M:\n サイクルフラグ変更\nCtrl + ,/.:\n サイクル挿入\n数字キー押しっぱなし\n ホールド挿入\n\nシフトキーも押してロールアロー\nスペースキー \nエリアマーカー設置\nTキー タイミング\nEnterキー エリアメニュー\nAキー エリアメニュー2\nEscキー メインメニュー\nF4: タイミングメニュー\nF1: ヘルプ\n
+EditHelpText=↑/↓キー:\n 拍の変更\n←/→キー:\n 分数切り替え\n数字キー(1が一番左):\n 配置/除去\nN/Mキー:\n オブジェの種類変更\nCtrl + N/M:\n サイクルフラグ変更\nCtrl + ,/.:\n サイクル挿入\n数字キー押しっぱなし:\n ホールド挿入\n シフトキーも押してロールアロー\nVキー:\n おじゃま設定\nスペースキー:\n エリアマーカー設置\n\nUキー:アンドゥ\nTキー:拍モード/時間モード\nEnterキー:エリアメニュー呼出\nAキー:エリアメニュー2呼出\nEscキー:メインメニュー呼出\nF4:タイミングメニュー呼出\nF1:ヘルプ呼出\n
PlayRecordHelpText=Startボタンで終了
Save successful.=正常に保存しました。
Saved as SM and DWI.=SMとDWI形式で保存しました。
@@ -2025,7 +2025,8 @@ Set selection=エリアマーカーの設置
Toggle assist tick=アシストチックを使う
Next/prev steps of same StepsType=同じタイプの違うシーケンス
Decrease/increase BPM at cur beat=BPMの調整
-Decrease/increase stop at cur beat=シーケンス停止の調整
+Decrease/increase stop at cur beat=譜面停止時間の調整
+Decrease/increase delay at cur beat=譜面遅延時間の調整
Decrease/increase music offset=オフセットの調整
Decrease/increase sample music start=試聴曲スタートの調整
Decrease/increase sample music length=試聴曲の長さの調整
diff --git a/Themes/_fallback/Scripts/00 init.lua b/Themes/_fallback/Scripts/00 init.lua
index 3c32232492..1f4d2950bc 100644
--- a/Themes/_fallback/Scripts/00 init.lua
+++ b/Themes/_fallback/Scripts/00 init.lua
@@ -21,6 +21,7 @@ end
PLAYER_1 = "PlayerNumber_P1"
PLAYER_2 = "PlayerNumber_P2"
NUM_PLAYERS = #PlayerNumber
+OtherPlayer = { [PLAYER_1] = PLAYER_2, [PLAYER_2] = PLAYER_1 }
function string:find_last(text)
local LastPos = 0
diff --git a/Themes/_fallback/Scripts/02 ThemePrefs.lua b/Themes/_fallback/Scripts/02 ThemePrefs.lua
index 58236a2361..a7fa98bb0f 100644
--- a/Themes/_fallback/Scripts/02 ThemePrefs.lua
+++ b/Themes/_fallback/Scripts/02 ThemePrefs.lua
@@ -3,6 +3,7 @@ ThemePrefs: handles the underlying structure for ThemePrefs, so any themes
built off of this can simply declare their prefs and default values, and
access them through this system.
+v0.7.2: Jan. 10, 2012. Added ThemePrefs.ForceSave function [freem]
v0.7.1: Dec. 28, 2010. Added language support.
v0.7.0: Dec. 15, 2010. Initial version.
@@ -42,7 +43,7 @@ local function ResolveTable( pref )
local val = PrefsTable[name][pref]
if val ~= nil then
- Trace( ("ResolveTable(%s): found in %s"):format(pref,name) )
+ --Trace( ("ResolveTable(%s): found in %s"):format(pref,name) )
return PrefsTable[name]
end
@@ -50,7 +51,7 @@ local function ResolveTable( pref )
if PrefsTable[FallbackTheme] then
val = PrefsTable[FallbackTheme][pref]
if val ~= nil then
- Trace( ("ResolveTable(%s): found in fallback"):format(pref) )
+ --Trace( ("ResolveTable(%s): found in fallback"):format(pref) )
return PrefsTable[FallbackTheme]
end
end
@@ -60,7 +61,7 @@ local function ResolveTable( pref )
for section, _ in pairs(PrefsTable) do
val = PrefsTable[section][pref]
if val ~= nil then
- Trace( ("ResolveTable(%s): found in section %s"):format(pref,section) )
+ --Trace( ("ResolveTable(%s): found in section %s"):format(pref,section) )
return PrefsTable[section] end
end
@@ -93,7 +94,7 @@ ThemePrefs =
local section = GetThemeName()
PrefsTable[section] = PrefsTable[section] and PrefsTable[section] or { }
- Trace( "Using section " .. section )
+ --Trace( "Using section " .. section )
-- if the key doesn't exist, add it with our default value
for k, tbl in pairs(prefs) do
@@ -103,7 +104,7 @@ ThemePrefs =
end
end
- PrintTable( PrefsTable[section] )
+ --PrintTable( PrefsTable[section] )
end,
Load = function()
@@ -120,8 +121,15 @@ ThemePrefs =
IniFile.WriteFile( ThemePrefsPath, PrefsTable )
end,
+ -- for when you absolutely have to save, no matter what NeedsSaved says.
+ ForceSave = function()
+ if not IniFile then return false end
+ NeedsSaved = false
+ IniFile.WriteFile( ThemePrefsPath, PrefsTable )
+ end,
+
Get = function( name )
- Trace( ("ThemePrefs.Get(%s)"):format(name) )
+ --Trace( ("ThemePrefs.Get(%s)"):format(name) )
local tbl = ResolveTable(name)
if tbl then return tbl[name] end
Warn( "Get: "..GetString("UnknownPreference"):format(name) )
@@ -129,7 +137,7 @@ ThemePrefs =
end,
Set = function( name, value )
- Trace( ("ThemePrefs.Set(%s, %s)"):format(name, tostring(value)) )
+ --Trace( ("ThemePrefs.Set(%s, %s)"):format(name, tostring(value)) )
local tbl = ResolveTable(name)
if tbl then tbl[name] = value; NeedsSaved = true; return end
Warn( "Set: "..GetString("UnknownPreference"):format(name) )
diff --git a/Themes/_fallback/metrics.ini b/Themes/_fallback/metrics.ini
index ff89c92185..389a2e3717 100644
--- a/Themes/_fallback/metrics.ini
+++ b/Themes/_fallback/metrics.ini
@@ -1148,8 +1148,8 @@ ImmediateHoldLetGo=not IsGame("pump")
RequireStepOnHoldHeads=not IsGame("pump")
RequireStepOnMines=false
InitialHoldLife=IsGame("pump") and 0.05 or 1
-MaxHoldLife=IsGame("pump") and 0.05 or 1
-RollBodyIncrementsCombo=GetGamePrefB("UserPrefComboOnRolls")
+MaxHoldLife=1
+RollBodyIncrementsCombo=false
ScoreMissedHoldsAndRolls=not IsGame("pump")
PercentUntilColorCombo=0.25
ComboStoppedAt=50
@@ -1447,6 +1447,7 @@ AfterSetCommand=%TextBannerAfterSet
[WheelNotifyIcon]
ShowTraining=false
BlinkPlayersBest=true
+NumIconsToShow=2
# 04 #
diff --git a/Themes/default/BGAnimations/ScreenGameplay go/default.lua b/Themes/default/BGAnimations/ScreenGameplay go/default.lua
index fd86e61752..e9b1a6b5e8 100644
--- a/Themes/default/BGAnimations/ScreenGameplay go/default.lua
+++ b/Themes/default/BGAnimations/ScreenGameplay go/default.lua
@@ -1,3 +1,8 @@
+if IsNetSMOnline() then
+ -- don't show "Ready" online; it will obscure the immediately-starting steps.
+ return Def.ActorFrame{}
+end
+
return LoadActor("go") .. {
InitCommand=cmd(Center;draworder,105);
StartTransitioningCommand=cmd(zoom,1.3;diffusealpha,0;bounceend,0.25;zoom,1;diffusealpha,1;linear,0.15;glow,BoostColor(Color("Blue"),1.75);decelerate,0.3;glow,1,1,1,0;sleep,1-0.45;linear,0.25;diffusealpha,0;);
diff --git a/Themes/default/BGAnimations/ScreenGameplay out.lua b/Themes/default/BGAnimations/ScreenGameplay out.lua
index cb3ce0e9d2..1d112f221a 100644
--- a/Themes/default/BGAnimations/ScreenGameplay out.lua
+++ b/Themes/default/BGAnimations/ScreenGameplay out.lua
@@ -1,6 +1,27 @@
-return Def.ActorFrame{
+local bg = Def.ActorFrame{
Def.Quad{
InitCommand=cmd(FullScreen;diffuse,color("0,0,0,0"));
OnCommand=cmd(linear,5;diffusealpha,1);
};
-};
\ No newline at end of file
+};
+
+if GAMESTATE:GetPlayMode() == 'PlayMode_Rave' then
+ -- find out who won the round
+ local raveWin, raveFile;
+ if GAMESTATE:IsWinner(PLAYER_1) then
+ raveFile = THEME:GetPathG("_rave result","P1")
+ elseif GAMESTATE:IsWinner(PLAYER_2) then
+ raveFile = THEME:GetPathG("_rave result","P2")
+ else
+ raveFile = THEME:GetPathG("_rave result","draw")
+ end
+
+ raveWin = LoadActor(raveFile)..{
+ InitCommand=cmd(Center;cropbottom,1;fadebottom,1;);
+ OnCommand=cmd(sleep,2;linear,0.5;cropbottom,0;fadebottom,0;sleep,1.75;linear,0.25;diffusealpha,0);
+ };
+
+ table.insert(bg,raveWin)
+end
+
+return bg
\ No newline at end of file
diff --git a/Themes/default/BGAnimations/ScreenGameplay ready/default.lua b/Themes/default/BGAnimations/ScreenGameplay ready/default.lua
index 319f417f2d..73c513579a 100644
--- a/Themes/default/BGAnimations/ScreenGameplay ready/default.lua
+++ b/Themes/default/BGAnimations/ScreenGameplay ready/default.lua
@@ -1,3 +1,8 @@
+if IsNetSMOnline() then
+ -- don't show "Ready" online; it will obscure the immediately-starting steps.
+ return Def.ActorFrame{}
+end
+
return LoadActor("ready") .. {
InitCommand=cmd(Center;draworder,105);
StartTransitioningCommand=cmd(zoom,1.3;diffusealpha,0;bounceend,0.25;zoom,1;diffusealpha,1;linear,0.15;glow,BoostColor(Color("Orange"),1.75);decelerate,0.3;glow,1,1,1,0;sleep,1-0.45;linear,0.25;diffusealpha,0;);
diff --git a/Themes/default/BGAnimations/ScreenTitleMenu underlay.lua b/Themes/default/BGAnimations/ScreenTitleMenu underlay.lua
index c85a1039e5..7f58a28fa3 100644
--- a/Themes/default/BGAnimations/ScreenTitleMenu underlay.lua
+++ b/Themes/default/BGAnimations/ScreenTitleMenu underlay.lua
@@ -1,7 +1,12 @@
InitUserPrefs();
local t = Def.ActorFrame {
- BeginCommand=function(self)
+ OnCommand=function(self)
+ if not FILEMAN:DoesFileExist("Save/ThemePrefs.ini") then
+ Trace("ThemePrefs doesn't exist; creating file")
+ ThemePrefs.ForceSave()
+ end
+
ThemePrefs.Save()
end;
};
diff --git a/Themes/default/Graphics/CombinedLifeMeterTug seperator.redir b/Themes/default/Graphics/CombinedLifeMeterTug seperator.redir
deleted file mode 100644
index e184650b4e..0000000000
--- a/Themes/default/Graphics/CombinedLifeMeterTug seperator.redir
+++ /dev/null
@@ -1 +0,0 @@
-_CombinedLifeMeterTug seperator
\ No newline at end of file
diff --git a/Themes/default/Graphics/CombinedLifeMeterTug stream p1.png b/Themes/default/Graphics/CombinedLifeMeterTug stream p1.png
index aaeadbe7af..c3aa1afcc1 100644
Binary files a/Themes/default/Graphics/CombinedLifeMeterTug stream p1.png and b/Themes/default/Graphics/CombinedLifeMeterTug stream p1.png differ
diff --git a/Themes/default/Graphics/CombinedLifeMeterTug stream p2.png b/Themes/default/Graphics/CombinedLifeMeterTug stream p2.png
index 3f3e0c3b35..6822b93dd8 100644
Binary files a/Themes/default/Graphics/CombinedLifeMeterTug stream p2.png and b/Themes/default/Graphics/CombinedLifeMeterTug stream p2.png differ
diff --git a/Themes/default/Graphics/ScoreDisplayRave stream level1 (res 256x20).png b/Themes/default/Graphics/ScoreDisplayRave stream level1 (res 256x20).png
deleted file mode 100644
index e5a9418357..0000000000
Binary files a/Themes/default/Graphics/ScoreDisplayRave stream level1 (res 256x20).png and /dev/null differ
diff --git a/Themes/default/Graphics/ScoreDisplayRave stream level1.png b/Themes/default/Graphics/ScoreDisplayRave stream level1.png
new file mode 100644
index 0000000000..1aaf7a8957
Binary files /dev/null and b/Themes/default/Graphics/ScoreDisplayRave stream level1.png differ
diff --git a/Themes/default/Graphics/ScoreDisplayRave stream level2 (res 256x20).png b/Themes/default/Graphics/ScoreDisplayRave stream level2 (res 256x20).png
deleted file mode 100644
index 199e406605..0000000000
Binary files a/Themes/default/Graphics/ScoreDisplayRave stream level2 (res 256x20).png and /dev/null differ
diff --git a/Themes/default/Graphics/ScoreDisplayRave stream level2.png b/Themes/default/Graphics/ScoreDisplayRave stream level2.png
new file mode 100644
index 0000000000..cb8bfaaac7
Binary files /dev/null and b/Themes/default/Graphics/ScoreDisplayRave stream level2.png differ
diff --git a/Themes/default/Graphics/ScoreDisplayRave stream level3 (res 256x20).png b/Themes/default/Graphics/ScoreDisplayRave stream level3 (res 256x20).png
deleted file mode 100644
index 41138c9a2f..0000000000
Binary files a/Themes/default/Graphics/ScoreDisplayRave stream level3 (res 256x20).png and /dev/null differ
diff --git a/Themes/default/Graphics/ScoreDisplayRave stream level3.png b/Themes/default/Graphics/ScoreDisplayRave stream level3.png
new file mode 100644
index 0000000000..af6b5f8e3a
Binary files /dev/null and b/Themes/default/Graphics/ScoreDisplayRave stream level3.png differ
diff --git a/Themes/default/Graphics/_CombinedLifeMeterTug separator.png b/Themes/default/Graphics/_CombinedLifeMeterTug separator.png
index 4c62fd6b1e..28269d5b9a 100644
Binary files a/Themes/default/Graphics/_CombinedLifeMeterTug separator.png and b/Themes/default/Graphics/_CombinedLifeMeterTug separator.png differ
diff --git a/Themes/default/Languages/ja.ini b/Themes/default/Languages/ja.ini
index 93883de8f1..5e9e68b945 100644
--- a/Themes/default/Languages/ja.ini
+++ b/Themes/default/Languages/ja.ini
@@ -1,4 +1,4 @@
-;Stepmania 5.0系本体default用日本語化ファイル Ver 1.02α
+;Stepmania 5.0系本体default用日本語化ファイル Ver 1.03β
[Screen]
HelpText=&BACK; 戻る &START; 決定 &SELECT; オプション &MENULEFT;&MENURIGHT;&MENUUP;&MENUDOWN; 選択
@@ -53,7 +53,7 @@ HardExplanation=上級者向けのモードです。音感冴えわたるあな
OldNormalExplanation=中級者向けのモードです。十分に慣れてきたならこちら。
NormalExplanation=1曲ずつ選択してプレイするモードです。
RaveExplanation=対戦モードです。相手の邪魔にめげずノリ続けてください。
-ExtendedExplanation=何曲かを連続してプレイするモードです。
+NonstopExplanation=何曲かを連続してプレイするモードです。
OniExplanation=シーケンス処理力を問う、オプションが使用できないコースです。
EndlessExplanation=ゲージが尽きるまで、ひたすらプレイするモードです。
@@ -90,59 +90,56 @@ MachineRecord=筐体中#%i位!
PersonalRecord=セルフレコード#%i位!
[OptionTitles]
-UserPrefAutoSetStyle=プレイスタイルの\n全選択可能化
-UserPrefNotePosition=シーケンスの位置
-UserPrefComboOnRolls=ロールの判定
-UserPrefComboUnderField=コンボを低めの\nレイヤーに表示する
+AutoSetStyle=プレイスタイルの\n全選択可能化
+NotePosition=シーケンスの位置
+ComboOnRolls=ロールの判定
+ComboUnderField=コンボを低めの\nレイヤーに表示する
-
-
-UserPrefGameplayShowScore=スコア表示
-UserPrefGameplayShowStepsDisplay=シーケンス表示
-UserPrefShowLotsaOptions=プレイオプション\nの個数
-UserPrefLongFail=プレイ失敗の演出
-UserPrefFlashyCombo=50コンボの演出
+GameplayShowScore=スコア表示
+GameplayShowStepsDisplay=シーケンス表示
+ShowLotsaOptions=プレイオプション\nの個数
+LongFail=プレイ失敗の演出
+FlashyCombo=50コンボの演出
UserPrefThemes=テーマ
-UserPrefGameplayFooter=ゲーム中の\nオプション表示欄
-UserPrefFancyUIBG=背景の特殊\nオブジェクト
-UserPrefTimingDisplay=曲位置メーターの\n区切り
+GameplayFooter=ゲーム中の\nオプション表示欄
+FancyUIBG=背景の特殊\nオブジェクト
+TimingDisplay=曲位置メーターの\n区切り
[OptionExplanations]
-UserPrefAutoSetStyle=プレイヤー人数に関わらずすべての\nプレイスタイルが選択できるようになります。(要再起動)
-UserPrefNotePosition=プレイ中の判定ゾーンの位置を決めます。
-UserPrefComboOnRolls=ロールでコンボが増加するかどうかを決めます。
-UserPrefComboUnderField=コンボをシーケンスの下に表示するかどうかを決めます。
+AutoSetStyle=プレイヤー人数に関わらずすべての\nプレイスタイルが選択できるようになります。(要再起動)
+NotePosition=プレイ中の判定ゾーンの位置を決めます。
+ComboOnRolls=ロールでコンボが増加するかどうかを決めます。
+ComboUnderField=コンボをシーケンスの下に表示するかどうかを決めます。
-UserPrefGameplayShowScore=プレイ中スコアを表示するかどうかを決めます。
-UserPrefGameplayShowStepsDisplay=曲選択中にシーケンス情報を表示するかどうかを決めます。
-UserPrefShowLotsaOptions=選択可能なプレイオプションを&oq;Few&cq;で最低限に、\n&oq;Many&cq;で最大限に表示します。
-UserPrefLongFail=プレイに失敗したときの演出の長さを決めます。
-UserPrefFlashyCombo=50コンボで発生する演出を表示するかどうかを決めます。
-UserPrefGameplayFooter=ONにすると、プレイ中に上か下かに画像が表示されます。\nオプションなどは見やすくなりますが、その分シーケンスが隠されます。
-UserPrefFancyUIBG=特殊な背景エフェクトの使用可否の設定です。\n古いパソコンでは"Off"に設定してください。
+GameplayShowScore=プレイ中スコアを表示するかどうかを決めます。
+GameplayShowStepsDisplay=曲選択中にシーケンス情報を表示するかどうかを決めます。
+ShowLotsaOptions=選択可能なプレイオプションを&oq;Few&cq;で最低限に、\n&oq;Many&cq;で最大限に表示します。
+LongFail=プレイに失敗したときの演出の長さを決めます。
+FlashyCombo=50コンボで発生する演出を表示するかどうかを決めます。
+GameplayFooter=ONにすると、プレイ中に上か下かに画像が表示されます。\nオプションなどは見やすくなりますが、その分シーケンスが隠されます。
+FancyUIBG=特殊な背景エフェクトの使用可否の設定です。\n古いパソコンでは"Off"に設定してください。
-UserPrefLanguage=使用言語を設定します。現在は「日本語」です。
-UserPrefAnnouncer=プレイ中のアナウンサーを選択します。専用ファイルの追加が必要です。
-UserPrefTheme=使用するテーマを設定します。必ずStepmania 5用のテーマを選択してください。
-UserPrefPercentageScoring=スコアをパーセント表示します。
-UserPrefMode=背景の設定です。Off以外では専用ファイルを用意する必要があります。
-UserPrefBrightness=背景の明度を設定します。
-UserPrefDancingCharacters=ダンサーの表示設定です。\n専用ファイルがない場合、無視してかまいません。
-UserPrefBeginnerHelper=Onにしてかつ専用ファイルが存在すると、\n難易度Beginnerでダンサーがお手本を見せてくれます。
-UserPrefRandomBackGrounds=ランダム背景使用時、常に同時に読み込む画像数を設定します。
+Language=使用言語を設定します。現在は「日本語」です。
+Announcer=プレイ中のアナウンサーを選択します。専用ファイルの追加が必要です。
+Theme=使用するテーマを設定します。必ずStepmania 5用のテーマを選択してください。
+PercentageScoring=スコアをパーセント表示します。
+Mode=背景の設定です。Off以外では専用ファイルを用意する必要があります。
+Brightness=背景の明度を設定します。
+DancingCharacters=ダンサーの表示設定です。\n専用ファイルがない場合、無視してかまいません。
+BeginnerHelper=Onにしてかつ専用ファイルが存在すると、\n難易度Beginnerでダンサーがお手本を見せてくれます。
+RandomBackGrounds=ランダム背景使用時、常に同時に読み込む画像数を設定します。
-UserPrefCenter1Player=Onにすると、1人プレイ時に\n判定ゾーンとシーケンスが中央寄りになります。
-UserPrefOniScoreDisplay=ONIモードでのスコア表示形式を設定します。
-UserPrefMenuTimer=Onにすると選択に時間制限が付きます。
+Center1Player=Onにすると、1人プレイ時に\n判定ゾーンとシーケンスが中央寄りになります。
+OniScoreDisplay=ONIモードでのスコア表示形式を設定します。
+MenuTimer=Onにすると選択に時間制限が付きます。
-UserPrefTimingDisplay=Onにすると、曲の現在位置を示すメーターが区切られます。
+TimingDisplay=Onにすると、曲の現在位置を示すメーターが区切られます。
;以下プレイオプション
Accel=譜面の判定ゾーンへの接近のしかたを設定します。
Appearance=シーケンスの出現のしかたを設定します。\n「Hidden」は途中から消え、「Sudden」は途中から現れます。\n「Stealth」は常に消え、「Blink」は常に点滅します。
AutoAdjust=曲の再生ズレ補正の設定です。「はまり」を起こしやすい曲では使わないでください。
-AutoPlay=OnにするとCPUが代わりにプレイします。スコアは加算も集計もされません。
Assist=リズムキープ用の補助音の設定をします。
BackGround=背景を設定します。「Random Background」はランダム背景用ファイルが必要です。
BarDrain=ライフゲージの減り方を設定します。
@@ -158,7 +155,8 @@ Mines=譜面に地雷を追加する規則を設定します。
MusicRateHelp=曲そのものを変速してプレイします。
NoteSkins=オブジェのスキンを変更します。必ずプレイモードに対応したスキンを使用してください。
Persp=譜面の流れ方の立体感を設定します。通常は「Overhead」です。
-ProTiming=判定の表示を変更します。
+ProTiming=「On」にすると、ジャストタイミングからの入力の離れを表示するようになります。
+PlayerAutoPlay=OnにするとCPUが代わりにプレイします。スコアは加算も集計もされません。
Rate=曲自体の速度の設定をします。「Haste」では微小な加減速を行い続けます。
Remove=シーケンスからオブジェを削除する規則を設定します。
SaveScores=スコア保存の設定をします。
@@ -213,9 +211,10 @@ Importing Songs=すでにあるStepmaniaから曲をインポートする
Reload Songs=曲のリロード
Exit=タイトルメニューへ
-Explanation-WhereToFind=検索サイトで「Stepmania Simfile」などでシーケンス付きの曲を探すことができます。
-Explanation-HowToInstall=本体「Songs」フォルダ内にグループフォルダを作り、そこに見つけた曲をフォルダのまま入れてください。.smzip形式であれば自動でインストールしてくれます。
-Explanation-AdditionalFolders=AdditionalFolders機能を使って、他のStepmaniaにインストールされている曲をインポートできます。
+Explanation-WhereToFind=検索サイトで「Stepmania Simfile」などで譜面を探すことができます。\nなお著作権法に違反するファイルはダウンロードしないよう強くお願いします
+Explanation-HowToInstall=本体「Songs」フォルダ内にグループフォルダを作り、\nそこに見つけた曲をフォルダのまま入れてください。\n.smzip形式であれば自動でインストールしてくれます。
+Explanation-AdditionalFolders=AdditionalFolders機能を使って、\n他のStepmaniaにインストールされている曲をインポートできます。
+Explanation-ReloadSongs=Stepmaniaの起動中に曲を追加したとき、\nまたはエディットを使わずに譜面を編集したときは\nオプションからのリロードが必要になります。
Explanation-Exit=タイトルメニューへ戻ります。
[OptionNames]
diff --git a/Themes/default/Languages/pl.ini b/Themes/default/Languages/pl.ini
index d118f2ce5e..6cf8d03efc 100755
--- a/Themes/default/Languages/pl.ini
+++ b/Themes/default/Languages/pl.ini
@@ -51,7 +51,7 @@ HardExplanation=Dla ekspertów.
OldNormalExplanation=Nie za łatwo, nie za trudno.
NormalExplanation=Graj w swoje ulubione piosenki!
RaveExplanation=Bitwa dwóch graczy przeciwko sobie.
-ExtendedExplanation=Kilka piosenek pod rząd.
+NonstopExplanation=Kilka piosenek pod rząd.
OniExplanation=Prawdziwy test umiejętności.
EndlessExplanation=Tańcz aż padniesz.
diff --git a/Themes/default/Sounds/ScreenEdit switch steps.redir b/Themes/default/Sounds/ScreenEdit switch steps.redir
deleted file mode 100644
index de1c54532a..0000000000
--- a/Themes/default/Sounds/ScreenEdit switch steps.redir
+++ /dev/null
@@ -1 +0,0 @@
-_Music menu
\ No newline at end of file
diff --git a/Themes/default/metrics.ini b/Themes/default/metrics.ini
index 56c6d309c2..97624f317c 100644
--- a/Themes/default/metrics.ini
+++ b/Themes/default/metrics.ini
@@ -309,6 +309,7 @@ ShowBoard=GAMESTATE:GetCurrentGame():GetName() == "kb7"
ReceptorArrowsYStandard=GetTapPosition('Standard')
ReceptorArrowsYReverse=GetTapPosition('Reverse')
ComboUnderField=ComboUnderField()
+RollBodyIncrementsCombo=ThemePrefs.Get("ComboOnRolls")
[PlayerOptions]
@@ -353,8 +354,8 @@ PercentP1OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_1);diffusetopedge,B
PercentP2OnCommand=shadowlength,1;diffuse,PlayerColor(PLAYER_2);diffusetopedge,BoostColor(PlayerColor(PLAYER_2),1.5)
[ScoreDisplayRave]
-MeterP1OnCommand=draworder,-1
-MeterP2OnCommand=draworder,-1;zoomx,-1
+MeterP1OnCommand=draworder,-1;texcoordvelocity,1,0
+MeterP2OnCommand=draworder,-1;zoomx,-1;texcoordvelocity,1,0
LevelP1OnCommand=draworder,105;zoom,0.75;diffuse,ColorLightTone( PlayerColor(PLAYER_1) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_1) );x,-144;skewx,-0.125;
LevelP2OnCommand=draworder,105;draworder,105;zoom,0.75;diffuse,ColorLightTone( PlayerColor(PLAYER_2) );strokecolor,ColorDarkTone( PlayerColor(PLAYER_2) );x,144;skewx,-0.125;
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/01 ScreenCompanyFirst/info.txt b/_assets/Themes/SMMAX2.0/exported graphics/01 ScreenCompanyFirst/info.txt
new file mode 100644
index 0000000000..860223a8fa
--- /dev/null
+++ b/_assets/Themes/SMMAX2.0/exported graphics/01 ScreenCompanyFirst/info.txt
@@ -0,0 +1,3 @@
+No graphics here.
+Hey. It`s only black bacground and some text. What you`ve expeced.
+All text should be dynamic, and translatable, remeber?
\ No newline at end of file
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/logo shadow.png b/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/logo shadow.png
new file mode 100644
index 0000000000..c8adfbdc45
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/logo shadow.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/logo.png b/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/logo.png
new file mode 100644
index 0000000000..f3743dbf7e
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/logo.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/whitebg.png b/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/whitebg.png
new file mode 100644
index 0000000000..fbb68d76eb
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/02 ScreenCompany/whitebg.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/bluearrow.png b/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/bluearrow.png
new file mode 100644
index 0000000000..f4c6920431
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/bluearrow.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/redarrow.png b/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/redarrow.png
new file mode 100644
index 0000000000..9f356de215
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/redarrow.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/SMMAX20logo.png b/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/smmax20logo.png
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/SMMAX20logo.png
rename to _assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/smmax20logo.png
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/titlemenubackground.jpg b/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/titlemenubackground.jpg
new file mode 100644
index 0000000000..8260bf7d52
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/03 ScreenLogo & ScreenTitleMenu/titlemenubackground.jpg differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/Common background.png b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/Common background.png
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/Common background.png
rename to _assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/Common background.png
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/_shared footer.png b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/_shared footer.png
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/_shared footer.png
rename to _assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/_shared footer.png
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/redselectionbox.png b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/redselectionbox.png
new file mode 100644
index 0000000000..7aa55614d2
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/redselectionbox.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/screenicon.png b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/screenicon.png
new file mode 100644
index 0000000000..4ae70f27f0
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/screenicon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/selectionbar.png b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/selectionbar.png
new file mode 100644
index 0000000000..af24577147
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/selectionbar.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/selectprofileribbon.png b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/selectprofileribbon.png
new file mode 100644
index 0000000000..a3175c85a6
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/selectprofileribbon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/yellowheader.png b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/yellowheader.png
new file mode 100644
index 0000000000..7c9b1747ee
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/04 ScreenSelectProfile/yellowheader.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/explanationbar.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/explanationbar.png
new file mode 100644
index 0000000000..d99da43580
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/explanationbar.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/options warning box.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/options warning box.png
new file mode 100644
index 0000000000..6df3c19299
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/options warning box.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/screenselectstyleicon.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/screenselectstyleicon.png
new file mode 100644
index 0000000000..fa345f0080
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/screenselectstyleicon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/singlevisualisation.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/singlevisualisation.png
new file mode 100644
index 0000000000..39e156ab98
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/singlevisualisation.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styleSingleExplanationPanel.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styleSingleExplanationPanel.png
new file mode 100644
index 0000000000..6637b2dc51
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styleSingleExplanationPanel.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylecoupleicon.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylecoupleicon.png
new file mode 100644
index 0000000000..17042cfc40
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylecoupleicon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styledoubleicon.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styledoubleicon.png
new file mode 100644
index 0000000000..3a5df7af40
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styledoubleicon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylesingleicon.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylesingleicon.png
new file mode 100644
index 0000000000..858f2785f2
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylesingleicon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylesoloicon.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylesoloicon.png
new file mode 100644
index 0000000000..03bcfb6c89
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/stylesoloicon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styleversusicon.png b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styleversusicon.png
new file mode 100644
index 0000000000..6e0a86dfa4
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/05 ScreenSelectStyle - Single/styleversusicon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/06 ScreenSelectStyle - Versus/styleVersusExplanationPanel.png b/_assets/Themes/SMMAX2.0/exported graphics/06 ScreenSelectStyle - Versus/styleVersusExplanationPanel.png
new file mode 100644
index 0000000000..4f20100bbf
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/06 ScreenSelectStyle - Versus/styleVersusExplanationPanel.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/06 ScreenSelectStyle - Versus/versusvisualisation.png b/_assets/Themes/SMMAX2.0/exported graphics/06 ScreenSelectStyle - Versus/versusvisualisation.png
new file mode 100644
index 0000000000..82896df5a3
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/06 ScreenSelectStyle - Versus/versusvisualisation.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/07 ScreenSelectStyle - Couple/styleCoupleExplanationPanel.png b/_assets/Themes/SMMAX2.0/exported graphics/07 ScreenSelectStyle - Couple/styleCoupleExplanationPanel.png
new file mode 100644
index 0000000000..5d9d4fc241
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/07 ScreenSelectStyle - Couple/styleCoupleExplanationPanel.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/08 ScreenSelectStyle - Double/doublevisualisation.png b/_assets/Themes/SMMAX2.0/exported graphics/08 ScreenSelectStyle - Double/doublevisualisation.png
new file mode 100644
index 0000000000..652aa2cebe
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/08 ScreenSelectStyle - Double/doublevisualisation.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/08 ScreenSelectStyle - Double/styleDoubleExplanationPanel.png b/_assets/Themes/SMMAX2.0/exported graphics/08 ScreenSelectStyle - Double/styleDoubleExplanationPanel.png
new file mode 100644
index 0000000000..59c44e6754
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/08 ScreenSelectStyle - Double/styleDoubleExplanationPanel.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/09 ScreenSelectStyle - Solo/solovisualisation.png b/_assets/Themes/SMMAX2.0/exported graphics/09 ScreenSelectStyle - Solo/solovisualisation.png
new file mode 100644
index 0000000000..0174bf9c84
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/09 ScreenSelectStyle - Solo/solovisualisation.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/09 ScreenSelectStyle - Solo/styleSoloExplanationPanel.png b/_assets/Themes/SMMAX2.0/exported graphics/09 ScreenSelectStyle - Solo/styleSoloExplanationPanel.png
new file mode 100644
index 0000000000..77de2831ee
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/09 ScreenSelectStyle - Solo/styleSoloExplanationPanel.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/ScreenSelectPlayModeIcon.png b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/ScreenSelectPlayModeIcon.png
new file mode 100644
index 0000000000..7589153017
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/ScreenSelectPlayModeIcon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-endless.png b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-endless.png
new file mode 100644
index 0000000000..fbbac05d12
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-endless.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-extended.png b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-extended.png
new file mode 100644
index 0000000000..be8d3045d4
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-extended.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-normal.png b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-normal.png
new file mode 100644
index 0000000000..aa47b47c53
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-normal.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-oni.png b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-oni.png
new file mode 100644
index 0000000000..005a2a607e
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-oni.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-rave.png b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-rave.png
new file mode 100644
index 0000000000..ebb8019b22
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/10 ScreenSelectPlayMode/panel-rave.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/MusicWheel highlight.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/MusicWheel highlight.png
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/MusicWheel highlight.png
rename to _assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/MusicWheel highlight.png
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/MusicWheelItem SectionCollapsed NormalPart.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/MusicWheelItem SectionCollapsed NormalPart.png
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/MusicWheelItem SectionCollapsed NormalPart.png
rename to _assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/MusicWheelItem SectionCollapsed NormalPart.png
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/MusicWheelItem Song NormalPart.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/MusicWheelItem Song NormalPart.png
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/MusicWheelItem Song NormalPart.png
rename to _assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/MusicWheelItem Song NormalPart.png
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/ScreenSelectMusicIcon.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/ScreenSelectMusicIcon.png
new file mode 100644
index 0000000000..afd6ffeeda
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/ScreenSelectMusicIcon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/bannerdisplaybox.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/bannerdisplaybox.png
new file mode 100644
index 0000000000..6cc4ef732c
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/bannerdisplaybox.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feet displaybg p1.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feet displaybg p1.png
new file mode 100644
index 0000000000..3856e83e70
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feet displaybg p1.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feet displaybg p2.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feet displaybg p2.png
new file mode 100644
index 0000000000..42ed19a0b7
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feet displaybg p2.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feeticon.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feeticon.png
new file mode 100644
index 0000000000..0f9ebd753d
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/feeticon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelselectsmallp1.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelselectsmallp1.png
new file mode 100644
index 0000000000..e1dfb5278f
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelselectsmallp1.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelselectsmallp2.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelselectsmallp2.png
new file mode 100644
index 0000000000..08e4ef1614
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelselectsmallp2.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-beginner.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-beginner.png
new file mode 100644
index 0000000000..7ff08aaa03
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-beginner.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-challenge.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-challenge.png
new file mode 100644
index 0000000000..5166f1334b
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-challenge.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-heavy.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-heavy.png
new file mode 100644
index 0000000000..f5113f38c5
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-heavy.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-light.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-light.png
new file mode 100644
index 0000000000..c3c3bfdcd7
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-light.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-standard.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-standard.png
new file mode 100644
index 0000000000..af3937fe98
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/levelsmallbox-standard.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - box active.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - box active.png
new file mode 100644
index 0000000000..9ebe553a80
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - box active.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - box empty.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - box empty.png
new file mode 100644
index 0000000000..9b49810ff7
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - box empty.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - p1.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - p1.png
new file mode 100644
index 0000000000..7e7aa6ac90
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - p1.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - p2.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - p2.png
new file mode 100644
index 0000000000..727b1c83ef
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/mods display - p2.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/scrollbar.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/scrollbar.png
new file mode 100644
index 0000000000..01e8919625
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/scrollbar.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/songstatsdisplay.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/songstatsdisplay.png
new file mode 100644
index 0000000000..03f2bf6c6b
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/songstatsdisplay.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/warps-speedups-pauses-etc-iconbg.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/warps-speedups-pauses-etc-iconbg.png
new file mode 100644
index 0000000000..f8cb15becc
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/warps-speedups-pauses-etc-iconbg.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/wheel cover right.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheel cover right.png
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/wheel cover right.png
rename to _assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheel cover right.png
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - beginner level indicator.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - beginner level indicator.png
new file mode 100644
index 0000000000..3e9614fe99
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - beginner level indicator.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - edit.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - edit.png
new file mode 100644
index 0000000000..f553105398
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - edit.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - long.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - long.png
new file mode 100644
index 0000000000..a1a721b1de
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - long.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - marathon.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - marathon.png
new file mode 100644
index 0000000000..f4746febf6
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - marathon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - popularity.png b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - popularity.png
new file mode 100644
index 0000000000..31e2dd9899
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/11 ScreenSelectMusic/wheelicon - popularity.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/Common fallback background.jpg b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/Common fallback background.jpg
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/Common fallback background.jpg
rename to _assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/Common fallback background.jpg
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/energyleverdisplaygradient.png b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/energyleverdisplaygradient.png
new file mode 100644
index 0000000000..a9f0fad336
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/energyleverdisplaygradient.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/footer.png b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/footer.png
new file mode 100644
index 0000000000..5bf3aec97a
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/footer.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/header.png b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/header.png
new file mode 100644
index 0000000000..057acab518
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/header.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/leveldisplay.png b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/leveldisplay.png
new file mode 100644
index 0000000000..5999ac97cc
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/12 ScreenGamePlay/leveldisplay.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/ScreenEvaluationNormalIcon.png b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/ScreenEvaluationNormalIcon.png
new file mode 100644
index 0000000000..406290f5a2
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/ScreenEvaluationNormalIcon.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/banner box.png b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/banner box.png
new file mode 100644
index 0000000000..c781e0c856
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/banner box.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/grade window.png b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/grade window.png
new file mode 100644
index 0000000000..444f37fd6e
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/grade window.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/judge description background.png b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/judge description background.png
new file mode 100644
index 0000000000..07a0efe90d
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/judge description background.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/statbox - p1.png b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/statbox - p1.png
new file mode 100644
index 0000000000..d678b0f740
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/statbox - p1.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/statbox - p2.png b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/statbox - p2.png
new file mode 100644
index 0000000000..10eecec0c3
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/13 ScreenEvaluationNormal/statbox - p2.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/footer.png b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/footer.png
new file mode 100644
index 0000000000..72dafb101b
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/footer.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/header.png b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/header.png
new file mode 100644
index 0000000000..0201382a24
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/header.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 1.png b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 1.png
new file mode 100644
index 0000000000..1fce74c034
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 1.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 2.png b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 2.png
new file mode 100644
index 0000000000..b04a57990a
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 2.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 3.png b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 3.png
new file mode 100644
index 0000000000..ca34ca775a
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 3.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 4.png b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 4.png
new file mode 100644
index 0000000000..183557b0f5
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 4.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 5.png b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 5.png
new file mode 100644
index 0000000000..a5321a059f
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/14 ScreenRanking/ranking icons - 5.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/baground dance tile.png b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/baground dance tile.png
new file mode 100644
index 0000000000..5bb9ec6fde
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/baground dance tile.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/energy bar.png b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/energy bar.png
new file mode 100644
index 0000000000..bbf29defcb
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/energy bar.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/hand pointer blue.png b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/hand pointer blue.png
new file mode 100644
index 0000000000..be50582a08
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/hand pointer blue.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/hand pointer green.png b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/hand pointer green.png
new file mode 100644
index 0000000000..7f032b1e0f
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/hand pointer green.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/how to play text.png b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/how to play text.png
new file mode 100644
index 0000000000..098b696316
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/how to play text.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/info panel.png b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/info panel.png
new file mode 100644
index 0000000000..af9773fede
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/15 ScreenHowToPlay/info panel.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option cursors.png b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option cursors.png
new file mode 100644
index 0000000000..c9c6606f99
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option cursors.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option row arrow selected.png b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option row arrow selected.png
new file mode 100644
index 0000000000..6a82f3c3bc
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option row arrow selected.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option row arrow unselected.png b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option row arrow unselected.png
new file mode 100644
index 0000000000..4787f3beda
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/option row arrow unselected.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/options bg panel.png b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/options bg panel.png
new file mode 100644
index 0000000000..f80bf3a1e8
Binary files /dev/null and b/_assets/Themes/SMMAX2.0/exported graphics/16 ScreenOptions/options bg panel.png differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/Common fallback background.png b/_assets/Themes/SMMAX2.0/exported graphics/Common fallback background.png
deleted file mode 100644
index 4381515744..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/Common fallback background.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/Common fallback banner.png b/_assets/Themes/SMMAX2.0/exported graphics/Common fallback banner.png
deleted file mode 100644
index 40f5a1ee95..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/Common fallback banner.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/SMMAX20 screens project ver1.svg b/_assets/Themes/SMMAX2.0/exported graphics/SMMAX20 logo.svg
similarity index 100%
rename from _assets/Themes/SMMAX2.0/exported graphics/SMMAX20 screens project ver1.svg
rename to _assets/Themes/SMMAX2.0/exported graphics/SMMAX20 logo.svg
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/SMMAX20 screens project ver1.png b/_assets/Themes/SMMAX2.0/exported graphics/SMMAX20 screens project ver1.png
deleted file mode 100644
index df5f3976e4..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/SMMAX20 screens project ver1.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/ScreenLogo background.jpg b/_assets/Themes/SMMAX2.0/exported graphics/ScreenLogo background.jpg
deleted file mode 100644
index e8004c841a..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/ScreenLogo background.jpg and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/ScreenLogo background.png b/_assets/Themes/SMMAX2.0/exported graphics/ScreenLogo background.png
deleted file mode 100644
index 9a2e5297e4..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/ScreenLogo background.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/ScreenSelectMusic header.png b/_assets/Themes/SMMAX2.0/exported graphics/ScreenSelectMusic header.png
deleted file mode 100644
index a1d8a18778..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/ScreenSelectMusic header.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/_banner frame.png b/_assets/Themes/SMMAX2.0/exported graphics/_banner frame.png
deleted file mode 100644
index 9a16210558..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/_banner frame.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/aaaaaaaa.png b/_assets/Themes/SMMAX2.0/exported graphics/aaaaaaaa.png
deleted file mode 100644
index 35b2b07c7d..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/aaaaaaaa.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/bg/commonbackground1440x1080.png b/_assets/Themes/SMMAX2.0/exported graphics/bg/commonbackground1440x1080.png
deleted file mode 100644
index 234571a742..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/bg/commonbackground1440x1080.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select mode text transparent.png b/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select mode text transparent.png
deleted file mode 100644
index a8939a2f37..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select mode text transparent.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select music text transparent.png b/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select music text transparent.png
deleted file mode 100644
index 592df89c01..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select music text transparent.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select profile text transparent.png b/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select profile text transparent.png
deleted file mode 100644
index 90ef95441e..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select profile text transparent.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select style text transparent.png b/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select style text transparent.png
deleted file mode 100644
index 65e0fe0627..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/headers/Nowy folder/screen select style text transparent.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/headers/select mode header with text.png b/_assets/Themes/SMMAX2.0/exported graphics/headers/select mode header with text.png
deleted file mode 100644
index 2eed5bb301..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/headers/select mode header with text.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/headers/select music header with text.png b/_assets/Themes/SMMAX2.0/exported graphics/headers/select music header with text.png
deleted file mode 100644
index 44f4a4efbd..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/headers/select music header with text.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/headers/select style header with text.png b/_assets/Themes/SMMAX2.0/exported graphics/headers/select style header with text.png
deleted file mode 100644
index 9521bb418f..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/headers/select style header with text.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/icon couple.png b/_assets/Themes/SMMAX2.0/exported graphics/icon couple.png
deleted file mode 100644
index 7b8728be5e..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/icon couple.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/icon double.png b/_assets/Themes/SMMAX2.0/exported graphics/icon double.png
deleted file mode 100644
index bdf172b16c..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/icon double.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/icon single.png b/_assets/Themes/SMMAX2.0/exported graphics/icon single.png
deleted file mode 100644
index 38dec832c7..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/icon single.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/icon solo.png b/_assets/Themes/SMMAX2.0/exported graphics/icon solo.png
deleted file mode 100644
index 1ca9f5521e..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/icon solo.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/icon versus.png b/_assets/Themes/SMMAX2.0/exported graphics/icon versus.png
deleted file mode 100644
index 40d781e56a..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/icon versus.png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/shadow (32bpp).png b/_assets/Themes/SMMAX2.0/exported graphics/shadow (32bpp).png
deleted file mode 100644
index 90a8bb65ad..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/shadow (32bpp).png and /dev/null differ
diff --git a/_assets/Themes/SMMAX2.0/exported graphics/stepmania (dither).png b/_assets/Themes/SMMAX2.0/exported graphics/stepmania (dither).png
deleted file mode 100644
index 7cb028c5bf..0000000000
Binary files a/_assets/Themes/SMMAX2.0/exported graphics/stepmania (dither).png and /dev/null differ
diff --git a/_assets/Themes/default/~res/Judgments.psd b/_assets/Themes/default/~res/Judgments.psd
index e982f9be71..d9a8a5c0d1 100644
Binary files a/_assets/Themes/default/~res/Judgments.psd and b/_assets/Themes/default/~res/Judgments.psd differ
diff --git a/src/EnumHelper.cpp b/src/EnumHelper.cpp
index 49e837d33a..dec4665019 100644
--- a/src/EnumHelper.cpp
+++ b/src/EnumHelper.cpp
@@ -70,7 +70,12 @@ const RString &EnumToString( int iVal, int iMax, const char **szNameArray, auto_
// Maybe we should assert on _Invalid? It seems better to make
// the caller check that they're supplying a valid enum value instead of
// returning an inconspicuous garbage value (empty string). -Chris
- ASSERT_M( iVal >= 0 && (iVal < iMax || iVal == iMax+1), ssprintf("%i, %i, (%s)", iVal, iMax, szNameArray[0]) );
+ if (iVal < 0)
+ FAIL_M(ssprintf("Value %i cannot be negative for enums! Enum hint: %s", iVal, szNameArray[0]));
+ if (iVal == iMax)
+ FAIL_M(ssprintf("Value %i cannot be a string with value %i! Enum hint: %s", iVal, iMax, szNameArray[0]));
+ if (iVal > iMax+1)
+ FAIL_M(ssprintf("Value %i is past the invalid value %i! Enum hint: %s", iVal, iMax, szNameArray[0]));
return *pNameCache[iVal];
}
diff --git a/src/NetworkSyncManager.cpp b/src/NetworkSyncManager.cpp
index 66a4a1b4de..7373f1eea9 100644
--- a/src/NetworkSyncManager.cpp
+++ b/src/NetworkSyncManager.cpp
@@ -214,8 +214,9 @@ bool NetworkSyncManager::Connect( const RString& addy, unsigned short port )
LOG->Info( "Beginning to connect" );
NetPlayerClient->create(); // Initialize Socket
+ LOG->Info( "Calling EzSockets:connect()" );
useSMserver = NetPlayerClient->connect( addy, port );
-
+ LOG->Info( "Back from ezsockets..." )
return useSMserver;
}
diff --git a/src/NotesLoaderSMA.cpp b/src/NotesLoaderSMA.cpp
index 01318e7f19..0921924afc 100644
--- a/src/NotesLoaderSMA.cpp
+++ b/src/NotesLoaderSMA.cpp
@@ -207,6 +207,9 @@ bool SMALoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach
else if( sValueName=="BACKGROUND" )
out.m_sBackgroundFile = sParams[1];
+
+ else if( sValueName=="PREVIEW" )
+ out.m_sPreviewVidFile = sParams[1];
// Save "#LYRICS" for later, so we can add an internal lyrics tag.
else if( sValueName=="LYRICSPATH" )
diff --git a/src/NotesLoaderSSC.cpp b/src/NotesLoaderSSC.cpp
index 420f09201f..c55d556137 100644
--- a/src/NotesLoaderSSC.cpp
+++ b/src/NotesLoaderSSC.cpp
@@ -325,6 +325,11 @@ bool SSCLoader::LoadFromSimfile( const RString &sPath, Song &out, bool bFromCach
out.m_sBackgroundFile = sParams[1];
}
+ else if( sValueName=="PREVIEWVID" )
+ {
+ out.m_sPreviewVidFile = sParams[1];
+ }
+
else if( sValueName=="JACKET" )
{
out.m_sJacketFile = sParams[1];
diff --git a/src/NotesWriterSSC.cpp b/src/NotesWriterSSC.cpp
index bbb61227fb..c6dc65a714 100644
--- a/src/NotesWriterSSC.cpp
+++ b/src/NotesWriterSSC.cpp
@@ -172,7 +172,8 @@ static void GetTimingTags( vector &lines, const TimingData &timing, boo
for (i = 0; i < labels.size(); i++)
{
LabelSegment *ls = static_cast(labels[i]);
- w.Write( ls->GetRow(), ls->GetLabel().c_str() );
+ if (!ls->GetLabel().empty())
+ w.Write( ls->GetRow(), ls->GetLabel().c_str() );
}
w.Finish();
}
@@ -222,6 +223,7 @@ static void WriteGlobalTags( RageFile &f, const Song &out )
f.PutLine( ssprintf( "#CREDIT:%s;", SmEscape(out.m_sCredit).c_str() ) );
f.PutLine( ssprintf( "#BANNER:%s;", SmEscape(out.m_sBannerFile).c_str() ) );
f.PutLine( ssprintf( "#BACKGROUND:%s;", SmEscape(out.m_sBackgroundFile).c_str() ) );
+ f.PutLine( ssprintf( "#PREVIEWVID:%s;", SmEscape(out.m_sPreviewVidFile).c_str() ) );
f.PutLine( ssprintf( "#JACKET:%s;", SmEscape(out.m_sJacketFile).c_str() ) );
f.PutLine( ssprintf( "#CDIMAGE:%s;", SmEscape(out.m_sCDFile).c_str() ) );
f.PutLine( ssprintf( "#DISCIMAGE:%s;", SmEscape(out.m_sDiscFile).c_str() ) );
diff --git a/src/PlayerOptions.cpp b/src/PlayerOptions.cpp
index 3be8fb927d..ee936cd47c 100644
--- a/src/PlayerOptions.cpp
+++ b/src/PlayerOptions.cpp
@@ -61,7 +61,7 @@ void PlayerOptions::Approach( const PlayerOptions& other, float fDeltaSeconds )
APPROACH( fTimeSpacing );
APPROACH( fScrollSpeed );
- //APPROACH( fMaxScrollBPM );
+ //APPROACH( fMaxScrollBPM ); // if uncommented, causes crashes. -aj
fapproach( m_fScrollBPM, other.m_fScrollBPM, fDeltaSeconds * other.m_SpeedfScrollBPM*150 );
for( int i=0; i
- * "experimental: pre-release versions.
- *
- * "private beta v0.0": hmm, think about it for a second there.
- *
- * ==Public versions==
- * - "v0.0 alpha #": Alpha versions (bug squashing, polishing until we reach beta)
- * - "v0.0 beta #": Beta versions (bug squashing, _focus_ is on high priority bugs)
- * - "v0.0 rc#": Release Candidates (if there are no problems, move on to final)
- * - "v0.0": Final Releases
+ * "v5.0 alpha #": Alpha versions (bug squashing, polishing until we reach beta)
+ * "v5.0 beta #": Beta versions (bug squashing, _focus_ is on high priority bugs)
+ * "v5.0 rc#": Release Candidates (if there are no problems, move on to final)
+ * "v5.0.0": Final Releases
*
*/
#ifndef PRODUCT_VER_BARE
diff --git a/src/ProductInfo.inc b/src/ProductInfo.inc
index fc3e2ab1ab..0bc8d97ce1 100644
--- a/src/ProductInfo.inc
+++ b/src/ProductInfo.inc
@@ -1,12 +1,14 @@
; Included by the NSIS installer script
; Don't forget to also change ProductInfo.h!
+; a friendly string to refer to the product
!define PRODUCT_FAMILY "StepMania"
-; see ProductInfo.h for use descriptions
-!define PRODUCT_ID "StepMania"
+; PRODUCT_ID must NOT be "StepMania" unless you want people to uninstall 3.9
+; when they install StepMania 5.
+!define PRODUCT_ID "StepMania 5"
!define PRODUCT_VER "v5.0 alpha 1"
-!define PRODUCT_DISPLAY "${PRODUCT_ID} ${PRODUCT_VER}"
+!define PRODUCT_DISPLAY "${PRODUCT_FAMILY} ${PRODUCT_VER}"
!define PRODUCT_BITMAP "sm5"
!define PRODUCT_URL "http://www.stepmania.com/"
diff --git a/src/RageSurface_Load_BMP.cpp b/src/RageSurface_Load_BMP.cpp
index 64fc660740..686beb9721 100644
--- a/src/RageSurface_Load_BMP.cpp
+++ b/src/RageSurface_Load_BMP.cpp
@@ -41,7 +41,6 @@ static RageSurfaceUtils::OpenResult LoadBMP( RageFile &f, RageSurface *&img, RSt
uint32_t iDataOffset = read_u32_le( f, sError );
uint32_t iHeaderSize = read_u32_le( f, sError );
-
uint32_t iWidth, iHeight, iPlanes, iBPP, iCompression = COMP_BI_RGB, iColors = 0;
if( iHeaderSize == 12 )
{
diff --git a/src/ScreenEdit.cpp b/src/ScreenEdit.cpp
index 7fdd2110ec..9cf82c20ed 100644
--- a/src/ScreenEdit.cpp
+++ b/src/ScreenEdit.cpp
@@ -198,8 +198,8 @@ void ScreenEdit::InitEditMappings()
// v = course attack menu
m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_COURSE_ATTACK_MENU][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Cv);
- m_EditMappingsDeviceInput.button[EDIT_BUTTON_ADD_COURSE_MODS][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Cm);
- m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_COURSE_MENU][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Ch);
+ m_EditMappingsDeviceInput.button[EDIT_BUTTON_ADD_COURSE_MODS][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Co);
+ m_EditMappingsDeviceInput.button[EDIT_BUTTON_OPEN_COURSE_MENU][0] = DeviceInput(DEVICE_KEYBOARD, KEY_Cu);
// F1 = Show help popup
m_EditMappingsDeviceInput.button [EDIT_BUTTON_OPEN_INPUT_HELP][0] = DeviceInput(DEVICE_KEYBOARD, KEY_F1);
@@ -534,7 +534,7 @@ static MenuDef g_MainMenu(
MenuRowDef( ScreenEdit::edit_song_info, "Edit song info", true, EditMode_Full, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::edit_steps_information, "Edit steps information", true, EditMode_Practice, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::edit_timing_data, "Edit Timing Data", true, EditMode_Full, true, true, 0, NULL ),
- MenuRowDef( ScreenEdit::view_steps_data, "View steps data", true, EditMode_Practice, true, true, 0, NULL ),
+ MenuRowDef( ScreenEdit::view_steps_data, "View steps data", true, EditMode_Full, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::play_preview_music, "Play preview music", true, EditMode_Full, true, true, 0, NULL ),
MenuRowDef( ScreenEdit::exit, "Exit Edit Mode", true, EditMode_Practice, true, true, 0, NULL )
);
@@ -3642,38 +3642,38 @@ inline int ScreenEdit::GetRow()
void ScreenEdit::DisplayTimingMenu()
{
- float fBeat = GetBeat();
+ int row = GetRow();
TimingData &pTime = GetAppropriateTiming();
- bool bHasSpeedOnThisRow = pTime.GetSpeedSegmentAtBeat( fBeat )->GetBeat() == fBeat;
+ bool bHasSpeedOnThisRow = pTime.GetSpeedSegmentAtRow( row )->GetRow() == row;
// bool bIsSelecting = ( (m_NoteFieldEdit.m_iEndMarker != -1) && (m_NoteFieldEdit.m_iBeginMarker != -1) );
g_TimingDataInformation.rows[beat_0_offset].SetOneUnthemedChoice( ssprintf("%.6f", pTime.m_fBeat0OffsetInSeconds) );
- g_TimingDataInformation.rows[bpm].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetBPMAtBeat( fBeat ) ) );
- g_TimingDataInformation.rows[stop].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetStopAtBeat( fBeat ) ) ) ;
- g_TimingDataInformation.rows[delay].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetDelayAtBeat( fBeat ) ) );
+ g_TimingDataInformation.rows[bpm].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetBPMAtRow( row ) ) );
+ g_TimingDataInformation.rows[stop].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetStopAtRow( row ) ) ) ;
+ g_TimingDataInformation.rows[delay].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetDelayAtRow( row ) ) );
g_TimingDataInformation.rows[time_signature].SetOneUnthemedChoice(
ssprintf( "%d / %d",
- pTime.GetTimeSignatureSegmentAtBeat(fBeat)->GetNum(),
- pTime.GetTimeSignatureSegmentAtBeat(fBeat)->GetDen()
+ pTime.GetTimeSignatureSegmentAtRow(row)->GetNum(),
+ pTime.GetTimeSignatureSegmentAtRow(row)->GetDen()
)
);
- g_TimingDataInformation.rows[label].SetOneUnthemedChoice( pTime.GetLabelAtBeat( fBeat ).c_str() );
- g_TimingDataInformation.rows[tickcount].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTickcountAtBeat( fBeat ) ) );
+ g_TimingDataInformation.rows[label].SetOneUnthemedChoice( pTime.GetLabelAtRow( row ).c_str() );
+ g_TimingDataInformation.rows[tickcount].SetOneUnthemedChoice( ssprintf("%d", pTime.GetTickcountAtRow( row ) ) );
g_TimingDataInformation.rows[combo].SetOneUnthemedChoice( ssprintf("%d / %d",
- pTime.GetComboAtBeat( fBeat ),
- pTime.GetMissComboAtBeat( fBeat ) ) );
- g_TimingDataInformation.rows[warp].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetWarpAtBeat( fBeat ) ) );
- g_TimingDataInformation.rows[speed_percent].SetOneUnthemedChoice( bHasSpeedOnThisRow ? ssprintf("%.6f", pTime.GetSpeedPercentAtBeat( fBeat ) ) : "---" );
- g_TimingDataInformation.rows[speed_wait].SetOneUnthemedChoice( bHasSpeedOnThisRow ? ssprintf("%.6f", pTime.GetSpeedWaitAtBeat( fBeat ) ) : "---" );
+ pTime.GetComboAtRow( row ),
+ pTime.GetMissComboAtRow( row ) ) );
+ g_TimingDataInformation.rows[warp].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetWarpAtRow( row ) ) );
+ g_TimingDataInformation.rows[speed_percent].SetOneUnthemedChoice( bHasSpeedOnThisRow ? ssprintf("%.6f", pTime.GetSpeedPercentAtRow( row ) ) : "---" );
+ g_TimingDataInformation.rows[speed_wait].SetOneUnthemedChoice( bHasSpeedOnThisRow ? ssprintf("%.6f", pTime.GetSpeedWaitAtRow( row ) ) : "---" );
- RString starting = ( pTime.GetSpeedModeAtBeat( fBeat ) == 1 ? "Seconds" : "Beats" );
+ RString starting = ( pTime.GetSpeedModeAtRow( row ) == 1 ? "Seconds" : "Beats" );
g_TimingDataInformation.rows[speed_mode].SetOneUnthemedChoice( starting.c_str() );
- g_TimingDataInformation.rows[scroll].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetScrollAtBeat( fBeat ) ) );
- g_TimingDataInformation.rows[fake].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetFakeAtBeat( fBeat ) ) );
+ g_TimingDataInformation.rows[scroll].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetScrollAtRow( row ) ) );
+ g_TimingDataInformation.rows[fake].SetOneUnthemedChoice( ssprintf("%.6f", pTime.GetFakeAtRow( row ) ) );
// g_TimingDataInformation.rows[speed_percent].bEnabled = !bIsSelecting;
g_TimingDataInformation.rows[speed_wait].bEnabled = bHasSpeedOnThisRow;
diff --git a/src/ScreenHowToPlay.cpp b/src/ScreenHowToPlay.cpp
index 18fd594c1c..8f97cac451 100644
--- a/src/ScreenHowToPlay.cpp
+++ b/src/ScreenHowToPlay.cpp
@@ -145,9 +145,9 @@ void ScreenHowToPlay::Init()
const Style* pStyle = GAMESTATE->GetCurrentStyle();
- Steps *pSteps = SongUtil::GetClosestNotes( &m_Song, pStyle->m_StepsType, Difficulty_Beginner );
+ Steps *pSteps = SongUtil::GetClosestNotes( &m_Song, pStyle->m_StepsType, Difficulty_Beginner );
ASSERT_M( pSteps != NULL, ssprintf("No playable steps of StepsType '%s' for ScreenHowToPlay", StringConversion::ToString(pStyle->m_StepsType).c_str()) );
-
+
pSteps->m_Timing.TidyUpData();
NoteData tempNoteData;
pSteps->GetNoteData( tempNoteData );
@@ -157,7 +157,7 @@ void ScreenHowToPlay::Init()
GAMESTATE->m_pCurSteps[PLAYER_1].Set(pSteps);
GAMESTATE->m_bGameplayLeadIn.Set( false );
GAMESTATE->m_pPlayerState[PLAYER_1]->m_PlayerController = PC_AUTOPLAY;
-
+
m_Player->Init(
"Player",
GAMESTATE->m_pPlayerState[PLAYER_1],
diff --git a/src/ScreenTitleMenu.cpp b/src/ScreenTitleMenu.cpp
index 244df3e619..5c2cce0b5a 100644
--- a/src/ScreenTitleMenu.cpp
+++ b/src/ScreenTitleMenu.cpp
@@ -43,7 +43,9 @@ static LocalizedString THEME_ ("ScreenTitleMenu","Theme");
static LocalizedString ANNOUNCER_ ("ScreenTitleMenu","Announcer");
void ScreenTitleMenu::Input( const InputEventPlus &input )
{
+#if defined(DEBUG)
LOG->Trace( "ScreenTitleMenu::Input( %d-%d )", input.DeviceI.device, input.DeviceI.button ); // debugging gameport joystick problem
+#endif
if( m_In.IsTransitioning() || m_Cancel.IsTransitioning() ) /* not m_Out */
return;
diff --git a/src/Song.cpp b/src/Song.cpp
index dad57461b9..527bc156bc 100644
--- a/src/Song.cpp
+++ b/src/Song.cpp
@@ -41,7 +41,7 @@
* @brief The internal version of the cache for StepMania.
*
* Increment this value to invalidate the current cache. */
-const int FILE_CACHE_VERSION = 207;
+const int FILE_CACHE_VERSION = 208;
/** @brief How long does a song sample last by default? */
const float DEFAULT_MUSIC_SAMPLE_LENGTH = 12.f;
@@ -588,211 +588,208 @@ void Song::TidyUpData( bool fromCache, bool duringCache )
// is the CDTitle.
CHECKPOINT_M( "Looking for images..." );
- // HACK: DWI/KSF files require searching the file system for this info.
- RString extension = GetExtension(this->m_sSongFileName);
- extension.MakeLower();
-
- if( extension == "dwi" || extension == "ksf" || !duringCache )
- {
- // First, check the file name for hints.
- if( !HasBanner() )
- {
- /* If a nonexistant banner file is specified, and we can't find a
- * replacement, don't wipe out the old value. */
- // m_sBannerFile = "";
+ if( !fromCache )
+ {
- // find an image with "banner" in the file name
- vector arrayPossibleBanners;
- GetImageDirListing( m_sSongDir + "*banner*", arrayPossibleBanners );
+ // First, check the file name for hints.
+ if( !HasBanner() )
+ {
+ /* If a nonexistant banner file is specified, and we can't find a
+ * replacement, don't wipe out the old value. */
+ //m_sBannerFile = "";
- /* Some people do things differently for the sake of being different.
- * Don't match eg. abnormal, numbness. */
- GetImageDirListing( m_sSongDir + "* BN", arrayPossibleBanners );
+ // find an image with "banner" in the file name
+ vector arrayPossibleBanners;
+ GetImageDirListing( m_sSongDir + "*banner*", arrayPossibleBanners );
- if( !arrayPossibleBanners.empty() )
- m_sBannerFile = arrayPossibleBanners[0];
- }
+ /* Some people do things differently for the sake of being different.
+ * Don't match eg. abnormal, numbness. */
+ GetImageDirListing( m_sSongDir + "* BN", arrayPossibleBanners );
- if( !HasBackground() )
- {
- // m_sBackgroundFile = "";
+ if( !arrayPossibleBanners.empty() )
+ m_sBannerFile = arrayPossibleBanners[0];
+ }
- // find an image with "bg" or "background" in the file name
- vector arrayPossibleBGs;
- GetImageDirListing( m_sSongDir + "*background*", arrayPossibleBGs );
- // don't match e.g. "subgroup", "hobgoblin", etc.
- GetImageDirListing( m_sSongDir + "*bg", arrayPossibleBGs );
- if( !arrayPossibleBGs.empty() )
- m_sBackgroundFile = arrayPossibleBGs[0];
- }
+ if( !HasBackground() )
+ {
+ //m_sBackgroundFile = "";
- if( !HasJacket() )
- {
- // find an image with "jacket" or "albumart" in the filename.
- vector arrayPossibleJackets;
- GetImageDirListing( m_sSongDir + "jk_*", arrayPossibleJackets );
- GetImageDirListing( m_sSongDir + "*jacket*", arrayPossibleJackets );
- GetImageDirListing( m_sSongDir + "*albumart*", arrayPossibleJackets );
- if( !arrayPossibleJackets.empty() )
- m_sJacketFile = arrayPossibleJackets[0];
- }
+ // find an image with "bg" or "background" in the file name
+ vector arrayPossibleBGs;
+ GetImageDirListing( m_sSongDir + "*background*", arrayPossibleBGs );
+ // don't match e.g. "subgroup", "hobgoblin", etc.
+ GetImageDirListing( m_sSongDir + "*bg", arrayPossibleBGs );
+ if( !arrayPossibleBGs.empty() )
+ m_sBackgroundFile = arrayPossibleBGs[0];
+ }
- if( !HasCDImage() )
- {
- // CD image, a la ddr 1st-3rd (not to be confused with CDTitles)
- // find an image with "-cd" at the end of the filename.
- vector arrayPossibleCDImages;
- GetImageDirListing( m_sSongDir + "*-cd", arrayPossibleCDImages );
- if( !arrayPossibleCDImages.empty() )
- m_sCDFile = arrayPossibleCDImages[0];
- }
+ if( !HasJacket() )
+ {
+ // find an image with "jacket" or "albumart" in the filename.
+ vector arrayPossibleJackets;
+ GetImageDirListing( m_sSongDir + "jk_*", arrayPossibleJackets );
+ GetImageDirListing( m_sSongDir + "*jacket*", arrayPossibleJackets );
+ GetImageDirListing( m_sSongDir + "*albumart*", arrayPossibleJackets );
+ if( !arrayPossibleJackets.empty() )
+ m_sJacketFile = arrayPossibleJackets[0];
+ }
- if( !HasDisc() )
- {
- // a rectangular graphic, not to be confused with CDImage above.
- vector arrayPossibleDiscImages;
- GetImageDirListing( m_sSongDir + "* disc", arrayPossibleDiscImages );
- GetImageDirListing( m_sSongDir + "* title", arrayPossibleDiscImages );
- if( !arrayPossibleDiscImages.empty() )
- m_sDiscFile = arrayPossibleDiscImages[0];
- }
+ if( !HasCDImage() )
+ {
+ // CD image, a la ddr 1st-3rd (not to be confused with CDTitles)
+ // find an image with "-cd" at the end of the filename.
+ vector arrayPossibleCDImages;
+ GetImageDirListing( m_sSongDir + "*-cd", arrayPossibleCDImages );
+ if( !arrayPossibleCDImages.empty() )
+ m_sCDFile = arrayPossibleCDImages[0];
+ }
- if( !HasCDTitle() )
- {
- // find an image with "cdtitle" in the file name
- vector arrayPossibleCDTitles;
- GetImageDirListing( m_sSongDir + "*cdtitle*", arrayPossibleCDTitles );
- if( !arrayPossibleCDTitles.empty() )
- m_sCDTitleFile = arrayPossibleCDTitles[0];
- }
+ if( !HasDisc() )
+ {
+ // a rectangular graphic, not to be confused with CDImage above.
+ vector arrayPossibleDiscImages;
+ GetImageDirListing( m_sSongDir + "* disc", arrayPossibleDiscImages );
+ GetImageDirListing( m_sSongDir + "* title", arrayPossibleDiscImages );
+ if( !arrayPossibleDiscImages.empty() )
+ m_sDiscFile = arrayPossibleDiscImages[0];
+ }
- if( !HasLyrics() )
- {
- // Check if there is a lyric file in here
- vector arrayLyricFiles;
- GetDirListing(m_sSongDir + RString("*.lrc"), arrayLyricFiles );
- if( !arrayLyricFiles.empty() )
- m_sLyricsFile = arrayLyricFiles[0];
- }
+ if( !HasCDTitle() )
+ {
+ // find an image with "cdtitle" in the file name
+ vector arrayPossibleCDTitles;
+ GetImageDirListing( m_sSongDir + "*cdtitle*", arrayPossibleCDTitles );
+ if( !arrayPossibleCDTitles.empty() )
+ m_sCDTitleFile = arrayPossibleCDTitles[0];
+ }
- /* Now, For the images we still haven't found,
- * look at the image dimensions of the remaining unclassified images. */
- vector arrayImages;
- GetImageDirListing( m_sSongDir + "*", arrayImages );
+ if( !HasLyrics() )
+ {
+ // Check if there is a lyric file in here
+ vector arrayLyricFiles;
+ GetDirListing(m_sSongDir + RString("*.lrc"), arrayLyricFiles );
+ if( !arrayLyricFiles.empty() )
+ m_sLyricsFile = arrayLyricFiles[0];
+ }
- for( unsigned i=0; i arrayImages;
+ GetImageDirListing( m_sSongDir + "*", arrayImages );
- // ignore DWI "-char" graphics
- RString sLower = arrayImages[i];
- sLower.MakeLower();
- if( BlacklistedImages.find(sLower) != BlacklistedImages.end() )
- continue; // skip
+ for( unsigned i=0; iUserLog( "Graphic file", sPath, "couldn't be loaded: %s", error.c_str() );
- continue;
- }
+ RString sPath = m_sSongDir + arrayImages[i];
- const int width = img->w;
- const int height = img->h;
- delete img;
+ // We only care about the dimensions.
+ RString error;
+ RageSurface *img = RageSurfaceUtils::LoadFile( sPath, error, true );
+ if( !img )
+ {
+ LOG->UserLog( "Graphic file", sPath, "couldn't be loaded: %s", error.c_str() );
+ continue;
+ }
- if( !HasBackground() && width >= 320 && height >= 240 )
- {
- m_sBackgroundFile = arrayImages[i];
- continue;
- }
+ const int width = img->w;
+ const int height = img->h;
+ delete img;
- if( !HasBanner() && 100<=width && width<=320 && 50<=height && height<=240 )
- {
- m_sBannerFile = arrayImages[i];
- continue;
- }
+ if( !HasBackground() && width >= 320 && height >= 240 )
+ {
+ m_sBackgroundFile = arrayImages[i];
+ continue;
+ }
- /* Some songs have overlarge banners. Check if the ratio is reasonable
- * (over 2:1; usually over 3:1), and large (not a cdtitle). */
- if( !HasBanner() && width > 200 && float(width) / height > 2.0f )
- {
- m_sBannerFile = arrayImages[i];
- continue;
- }
+ if( !HasBanner() && 100<=width && width<=320 && 50<=height && height<=240 )
+ {
+ m_sBannerFile = arrayImages[i];
+ continue;
+ }
- /* Agh. DWI's inline title images are triggering this, resulting in
- * kanji, etc., being used as a CDTitle for songs with none. Some
- * sample data from random incarnations:
- * 42x50 35x50 50x50 144x49
- * It looks like ~50 height is what people use to align to DWI's font.
- *
- * My tallest CDTitle is 44. Let's cut off in the middle and hope for
- * the best. -(who? -aj) */
- /* The proper size of a CDTitle is 64x48 or sometihng. Simfile artists
- * typically don't give a shit about this (see Cetaka's fucking banner
- * -sized CDTitle). This is also subverted in certain designs (beta
- * Mungyodance 3 simfiles, for instance, used the CDTitle to hold
- * various information about the song in question). As it stands,
- * I'm keeping this code until I figure out wtf to do -aj
- */
- if( !HasCDTitle() && width<=100 && height<=48 )
- {
- m_sCDTitleFile = arrayImages[i];
- continue;
- }
+ /* Some songs have overlarge banners. Check if the ratio is reasonable
+ * (over 2:1; usually over 3:1), and large (not a cdtitle). */
+ if( !HasBanner() && width > 200 && float(width) / height > 2.0f )
+ {
+ m_sBannerFile = arrayImages[i];
+ continue;
+ }
- // Jacket files typically have the same width and height.
- if( !HasJacket() && width == height )
- {
- m_sJacketFile = arrayImages[i];
- continue;
- }
+ /* Agh. DWI's inline title images are triggering this, resulting in
+ * kanji, etc., being used as a CDTitle for songs with none. Some
+ * sample data from random incarnations:
+ * 42x50 35x50 50x50 144x49
+ * It looks like ~50 height is what people use to align to DWI's font.
+ *
+ * My tallest CDTitle is 44. Let's cut off in the middle and hope for
+ * the best. -(who? -aj) */
+ /* The proper size of a CDTitle is 64x48 or sometihng. Simfile artists
+ * typically don't give a shit about this (see Cetaka's fucking banner
+ * -sized CDTitle). This is also subverted in certain designs (beta
+ * Mungyodance 3 simfiles, for instance, used the CDTitle to hold
+ * various information about the song in question). As it stands,
+ * I'm keeping this code until I figure out wtf to do -aj
+ */
+ if( !HasCDTitle() && width<=100 && height<=48 )
+ {
+ m_sCDTitleFile = arrayImages[i];
+ continue;
+ }
- // Disc images are typically rectangular; make sure we have a banner already.
- if( !HasDisc() && (width > height) && HasBanner() )
- {
- if( arrayImages[i] != m_sBannerFile )
- m_sDiscFile = arrayImages[i];
- continue;
- }
+ // Jacket files typically have the same width and height.
+ if( !HasJacket() && width == height )
+ {
+ m_sJacketFile = arrayImages[i];
+ continue;
+ }
- // CD images are the same as Jackets, typically the same width and height
- if( !HasCDImage() && width == height )
- {
- m_sCDFile = arrayImages[i];
- continue;
- }
- }
+ // Disc images are typically rectangular; make sure we have a banner already.
+ if( !HasDisc() && (width > height) && HasBanner() )
+ {
+ if( arrayImages[i] != m_sBannerFile )
+ m_sDiscFile = arrayImages[i];
+ continue;
+ }
- }
-
+ // CD images are the same as Jackets, typically the same width and height
+ if( !HasCDImage() && width == height )
+ {
+ m_sCDFile = arrayImages[i];
+ continue;
+ }
+ }
+
+ }
+
// These will be written to cache, for Song::LoadFromSongDir to use later.
m_bHasMusic = HasMusic();
m_bHasBanner = HasBanner();
@@ -807,7 +804,7 @@ void Song::TidyUpData( bool fromCache, bool duringCache )
// If no BGChanges are specified and there are movies in the song directory, then assume
// they are DWI style where the movie begins at beat 0.
- if( extension == "dwi" || extension == "ksf" || (!HasBGChanges() && !duringCache) )
+ if( (!HasBGChanges() && !fromCache) )
{
vector arrayPossibleMovies;
GetDirListing( m_sSongDir + RString("*.ogv"), arrayPossibleMovies );
@@ -829,10 +826,10 @@ void Song::TidyUpData( bool fromCache, bool duringCache )
/* Don't allow multiple Steps of the same StepsType and Difficulty (except
* for edits). We should be able to use difficulty names as unique
* identifiers for steps. */
- if( !duringCache )
- {
- SongUtil::AdjustDuplicateSteps( this );
- }
+ if( !fromCache )
+ {
+ SongUtil::AdjustDuplicateSteps( this );
+ }
}
void Song::TranslateTitles()
@@ -1276,6 +1273,10 @@ bool Song::HasCDImage() const
{
return m_sCDFile != "" && IsAFile(GetCDImagePath());
}
+bool Song::HasPreviewVid() const
+{
+ return m_sPreviewVidFile != "" && IsAFile(GetPreviewVidPath());
+}
const vector &Song::GetBackgroundChanges( BackgroundLayer bl ) const
{
@@ -1328,8 +1329,8 @@ vector Song::GetInstrumentTracksToVectorString() const
if (this->HasInstrumentTrack(it))
{
ret.push_back(InstrumentTrackToString(it)
- + "="
- + this->m_sInstrumentTrackFile[it]);
+ + "="
+ + this->m_sInstrumentTrackFile[it]);
}
}
return ret;
@@ -1409,6 +1410,11 @@ RString Song::GetCDImagePath() const
return GetSongAssetPath( m_sCDFile, m_sSongDir );
}
+RString Song::GetPreviewVidPath() const
+{
+ return GetSongAssetPath( m_sPreviewVidFile, m_sSongDir );
+}
+
RString Song::GetDisplayMainTitle() const
{
if(!PREFSMAN->m_bShowNativeLanguage) return GetTranslitMainTitle();
@@ -1701,6 +1707,15 @@ public:
lua_pushnil(L);
return 1;
}
+ static int GetPreviewVidPath( T* p, lua_State *L )
+ {
+ RString s = p->GetPreviewVidPath();
+ if( !s.empty() )
+ lua_pushstring(L, s);
+ else
+ lua_pushnil(L);
+ return 1;
+ }
static int GetJacketPath( T* p, lua_State *L )
{
RString s = p->GetJacketPath();
@@ -1822,6 +1837,7 @@ public:
static int HasMusic( T* p, lua_State *L ) { lua_pushboolean(L, p->HasMusic()); return 1; }
static int HasBanner( T* p, lua_State *L ) { lua_pushboolean(L, p->HasBanner()); return 1; }
static int HasBackground( T* p, lua_State *L ) { lua_pushboolean(L, p->HasBackground()); return 1; }
+ static int HasPreviewVid( T* p, lua_State *L ) { lua_pushboolean(L, p->HasPreviewVid()); return 1; }
static int HasJacket( T* p, lua_State *L ) { lua_pushboolean(L, p->HasJacket()); return 1; }
static int HasDisc( T* p, lua_State *L ) { lua_pushboolean(L, p->HasDisc()); return 1; }
static int HasCDImage( T* p, lua_State *L ) { lua_pushboolean(L, p->HasCDImage()); return 1; }
@@ -1978,6 +1994,8 @@ public:
ADD_METHOD( IsDisplayBpmConstant );
ADD_METHOD( IsDisplayBpmRandom );
ADD_METHOD( ShowInDemonstrationAndRanking );
+ ADD_METHOD( HasPreviewVid );
+ ADD_METHOD( GetPreviewVidPath );
}
};
diff --git a/src/Song.h b/src/Song.h
index fcf8d957d8..57f62bf8df 100644
--- a/src/Song.h
+++ b/src/Song.h
@@ -238,6 +238,7 @@ public:
RString m_sLyricsFile;
RString m_sBackgroundFile;
RString m_sCDTitleFile;
+ RString m_sPreviewVidFile;
AttackArray m_Attacks;
vector m_sAttackString;
@@ -251,6 +252,7 @@ public:
RString GetLyricsPath() const;
RString GetBackgroundPath() const;
RString GetCDTitlePath() const;
+ RString GetPreviewVidPath() const;
// For loading only:
bool m_bHasMusic, m_bHasBanner, m_bHasBackground;
@@ -273,6 +275,7 @@ public:
bool HasBGChanges() const;
bool HasLyrics() const;
bool HasAttacks() const;
+ bool HasPreviewVid() const;
bool Matches(RString sGroup, RString sSong) const;
diff --git a/src/StepMania-net2008.vcproj b/src/StepMania-net2008.vcproj
index f0dd06e569..5f06512c5c 100644
--- a/src/StepMania-net2008.vcproj
+++ b/src/StepMania-net2008.vcproj
@@ -336,7 +336,7 @@
SHOW_TRAINING ("WheelNotifyIcon","ShowTraining");
static ThemeMetric BLINK_BEST_ICON ("WheelNotifyIcon","BlinkPlayersBest");
+static ThemeMetric NUM_ICONS_TO_SHOW ("WheelNotifyIcon","NumIconsToShow");
WheelNotifyIcon::WheelNotifyIcon()
{
@@ -57,9 +58,7 @@ void WheelNotifyIcon::SetFlags( Flags flags )
m_vIconsToShow.push_back( empty );
}
- // crop to most important 2
- // todo: Let themer handle this? -aj
- m_vIconsToShow.resize( min(m_vIconsToShow.size(),2u) );
+ m_vIconsToShow.resize( min(m_vIconsToShow.size(), static_cast(NUM_ICONS_TO_SHOW)) );
// Broadcast Set message so items can react. (futures) -aj
//Message msg("Set");
diff --git a/src/arch/ArchHooks/ArchHooks_Win32.cpp b/src/arch/ArchHooks/ArchHooks_Win32.cpp
index 230913b87d..b6945bc29a 100644
--- a/src/arch/ArchHooks/ArchHooks_Win32.cpp
+++ b/src/arch/ArchHooks/ArchHooks_Win32.cpp
@@ -19,7 +19,7 @@ static bool g_bIsMultipleInstance = false;
void InvalidParameterHandler( const wchar_t *szExpression, const wchar_t *szFunction, const wchar_t *szFile,
unsigned int iLine, uintptr_t pReserved )
{
- FAIL_M( "Invalid parameter" ); //TODO: Make this more informative
+ FAIL_M( "Invalid parameter" ); //TODO: Make this more informative
}
#endif
diff --git a/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp b/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp
index ba00dbacb0..c81318a737 100644
--- a/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp
+++ b/src/arch/MovieTexture/MovieTexture_FFMpeg.cpp
@@ -28,6 +28,15 @@ namespace avcodec
#endif
};
+/* XXX: FF_B_TYPE was previously a numeric macro, but newer versions define
+ * it as as a member of the AVPictureType enum in avutil. Bring it under
+ * our 'avcodec' namespace explicitly. */
+
+#if FF_API_OLD_IMAGE_NAMES
+#undef FF_B_TYPE
+#define FF_B_TYPE avcodec::AV_PICTURE_TYPE_B
+#endif
+
int URLRageFile_open( avcodec::URLContext *h, const char *filename, int flags );
int URLRageFile_read( avcodec::URLContext *h, unsigned char *buf, int size );
int URLRageFile_close( avcodec::URLContext *h );
@@ -672,16 +681,19 @@ int URLRageFile_read( avcodec::URLContext *h, unsigned char *buf, int size )
return f->Read( buf, size );
}
-#if defined(MACOSX) || defined(_MSC_VER) // still using older ffmpeg versions
- int URLRageFile_write( avcodec::URLContext *h, unsigned char *buf, int size )
-#else // assume ffmpeg 0.6 on *nix
- int URLRageFile_write( avcodec::URLContext *h, unsigned char *buf, int size )
-#endif
+int URLRageFile_write( avcodec::URLContext *h, const unsigned char *buf, int size )
{
RageFileBasic *f = (RageFileBasic *) h->priv_data;
return f->Write( buf, size );
}
+/* Some avcodecs want unsigned char, others want const. Make everyone happy
+ * by providing a const overload and letting the compiler figure it out. */
+int URLRageFile_write( avcodec::URLContext *h, unsigned char *buf, int size )
+{
+ return URLRageFile_write( h, (const unsigned char*)buf, size );
+}
+
// sm4svn has it as:
#if defined(MACOSX)
avcodec::offset_t URLRageFile_seek( avcodec::URLContext *h, avcodec::offset_t pos, int whence )
@@ -706,24 +718,21 @@ int URLRageFile_close( avcodec::URLContext *h )
return 0;
}
+/* TODO: URLProtocol is deprecated in newer releases. Either pick a
+ * version of ffmpeg to use statically, or migrate to AVIOContext. */
static avcodec::URLProtocol RageProtocol =
{
- "rage",
- URLRageFile_open,
- URLRageFile_read,
- URLRageFile_write,
- URLRageFile_seek,
- URLRageFile_close,
- // why were these two nulls added? -aj
- // I added them because the last api of ffmpeg spects them to be, you could
- // avoid them and I think it could result in compiler warnings, but the
- // correct code is theese NULLS to be there. - howl (quote from
- // http://www.stepmania.com/forums/showpost.php?p=168832&postcount=37)
-#if !defined(MACOSX)
- NULL,
- NULL,
-#endif
- NULL
+ "rage", /* name */
+ URLRageFile_open, /* url_open() */
+ URLRageFile_read, /* url_read() */
+ URLRageFile_write, /* url_write() */
+ URLRageFile_seek, /* url_seek() */
+ URLRageFile_close /* url_close() */
+
+ /* Since we're a static struct, all other struct data is zeroed.
+ * This is intentional: ffmpeg has several different URLProtocol
+ * structs floating around, but we don't care about any members
+ * except the above. Please ignore the compiler warning. -- vyhd */
};
void MovieTexture_FFMpeg::RegisterProtocols()
diff --git a/src/archutils/Win32/WindowsResources.rc b/src/archutils/Win32/WindowsResources.rc
index 5cb162619f..1fcf1aa93a 100644
--- a/src/archutils/Win32/WindowsResources.rc
+++ b/src/archutils/Win32/WindowsResources.rc
@@ -182,8 +182,8 @@ IDI_ICON1 ICON "smzip.ico"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 5,0,0,5
- PRODUCTVERSION 5,0,0,5
+ FILEVERSION 5,0,0,6
+ PRODUCTVERSION 5,0,0,6
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -200,12 +200,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "StepMania Team \n http://www.stepmania.com/"
VALUE "FileDescription", "StepMania"
- VALUE "FileVersion", "5, 0, 0, 5"
- VALUE "InternalName", "sm-ssc v1.3.2"
+ VALUE "FileVersion", "5, 0, 0, 6"
+ VALUE "InternalName", "sm-ssc v1.3.2a"
VALUE "LegalCopyright", "Copyright 2001-2012"
VALUE "OriginalFilename", "StepMania.exe"
VALUE "ProductName", "StepMania"
- VALUE "ProductVersion", "5, 0, 0, 5"
+ VALUE "ProductVersion", "5, 0, 0, 6"
END
END
BLOCK "VarFileInfo"