From 729f2ce5e1264198d40292e49fc6e89f7e75174b Mon Sep 17 00:00:00 2001 From: Flameshadowxeroshin Date: Mon, 21 May 2012 22:46:55 +0000 Subject: [PATCH 1/4] that's why --- .../BGAnimations/ScreenStageInformation underlay/default.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua b/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua index 2f0471e7aa..bd2899e486 100644 --- a/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua +++ b/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua @@ -80,8 +80,8 @@ t[#t+1] = Def.ActorFrame { --Get scoring ready. if not GAMESTATE:IsCourseMode() then InitScoreKeepers( - GAMESTATE:IsSideJoined(PLAYER_1) and GetUserPref("UserPrefScoringMode"), - GAMESTATE:IsSideJoined(PLAYER_2) and GetUserPref("UserPrefScoringMode") + GAMESTATE:IsSideJoined(PLAYER_1) and GetUserPref("UserPrefScoringMode") or nil, + GAMESTATE:IsSideJoined(PLAYER_2) and GetUserPref("UserPrefScoringMode") or nil ) end From 6cfbb024503fd0b4c8cb285831beb200a93397a0 Mon Sep 17 00:00:00 2001 From: Flameshadowxeroshin Date: Mon, 21 May 2012 17:48:59 -0500 Subject: [PATCH 2/4] sue google and me --- .../BGAnimations/ScreenStageInformation underlay/default.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua b/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua index bd2899e486..455620c998 100644 --- a/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua +++ b/Themes/default/BGAnimations/ScreenStageInformation underlay/default.lua @@ -80,8 +80,8 @@ t[#t+1] = Def.ActorFrame { --Get scoring ready. if not GAMESTATE:IsCourseMode() then InitScoreKeepers( - GAMESTATE:IsSideJoined(PLAYER_1) and GetUserPref("UserPrefScoringMode") or nil, - GAMESTATE:IsSideJoined(PLAYER_2) and GetUserPref("UserPrefScoringMode") or nil + GAMESTATE:IsSideJoined(PLAYER_1) and GetUserPref("UserPrefScoringMode") or nil, + GAMESTATE:IsSideJoined(PLAYER_2) and GetUserPref("UserPrefScoringMode") or nil ) end From 6fb96782ea49ef530e0da6ce003f5f8186bddaf0 Mon Sep 17 00:00:00 2001 From: Flameshadowxeroshin Date: Mon, 21 May 2012 17:56:29 -0500 Subject: [PATCH 3/4] add some type checking, ??? --- Themes/_fallback/Scripts/05 ScoringEngine2.lua | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Themes/_fallback/Scripts/05 ScoringEngine2.lua b/Themes/_fallback/Scripts/05 ScoringEngine2.lua index 5197aa128d..e1e21029e8 100644 --- a/Themes/_fallback/Scripts/05 ScoringEngine2.lua +++ b/Themes/_fallback/Scripts/05 ScoringEngine2.lua @@ -2,6 +2,9 @@ --essentially a really chunky layer to make SetScore elegant(ish) --arguments for scorekeepers: JudgmentMessageCommand,PlayerStageStats,PlayerNumber,State --[[changelog +v1.42 21 May 2012 +*Add more type checking. +*Don't crash on missing modes. v1.41 6 May 2012 *Not really sure. *Included in SM5 for alpha 3. @@ -27,6 +30,8 @@ function GetNumReadiedScoreKeepers() return table.itemcount(ReadiedScoreKeepers) end +--InitScoreKeepers(string p1Mode, string p2Mode) +--Both are optional. function InitScoreKeepers(p1Mode, p2Mode) local newStgK = {pcall(GameState.GetStageSeed,GAMESTATE)} assert(newStgK[1], "it's too early to initialize the ScoreKeepers, the GameState isn't ready yet") @@ -34,6 +39,12 @@ function InitScoreKeepers(p1Mode, p2Mode) Log "[InitScoreKeepers] unnecessary call" return true end + if p1Mode~=nil then + assert(type(p1Mode)=="string", "only pass string or nil") + end + if p2Mode~=nil then + assert(type(p2Mode)=="string", "only pass string or nil") + end ReadiedScoreKeepers={} JudgmentFilters={} stageKey = newStgK @@ -47,9 +58,7 @@ function InitScoreKeepers(p1Mode, p2Mode) assert(next(intab), "InitScoreKeepers didn't get any args") for k,v in pairs(intab) do if not ScoringModes[v] then - --SPOILER: UndocumentedFeature crashes the game intentionally. - -- UndocumentedFeature(k.."'s scoring mode \""..v.."\" doesn't exist.") - -- UndocumentedFeature(k.."'s scoring mode doesn't exist.") + Warn(k.."'s scoring mode \""..v.."\" doesn't exist.") else ReadiedScoreKeepers[k] = coroutine.create(ScoringModes[v]) --call each scoring mode one time in init mode From b3893086114e91beb4246749af76c352a5ab0736 Mon Sep 17 00:00:00 2001 From: AJ Kelly Date: Mon, 21 May 2012 17:59:06 -0500 Subject: [PATCH 4/4] use the real product id instead of a hardcoded 'StepMania AMX' --- src/NetworkSyncManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/NetworkSyncManager.cpp b/src/NetworkSyncManager.cpp index 611dfd2e01..4e17edb08a 100644 --- a/src/NetworkSyncManager.cpp +++ b/src/NetworkSyncManager.cpp @@ -857,7 +857,7 @@ unsigned long NetworkSyncManager::GetCurrentSMBuild( LoadingWindow* ld ) const RString sHost = "aldo.mx"; const unsigned short uPort = 80; const RString sResource = "/stepmania/check_sm5.php"; - const RString sUserAgent = "StepMania AMX (+http://aldo.mx/stepmania/)"; + const RString sUserAgent = PRODUCT_ID; const RString sReferer = "http://aldo.mx/stepmania/"; if( ld )