From fb39253e5bf9cacfe5fb496a203d717a171e06e3 Mon Sep 17 00:00:00 2001 From: MinaciousGrace Date: Sun, 28 May 2017 12:03:16 -0400 Subject: [PATCH] add framework for anti tamper validation keys --- extern/MinaCalc/MinaCalc.lib | Bin 273104 -> 274908 bytes src/MinaCalc.h | 3 ++- src/PlayerStageStats.cpp | 5 +++++ src/PlayerStageStats.h | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/extern/MinaCalc/MinaCalc.lib b/extern/MinaCalc/MinaCalc.lib index 2be0b4f53f80955a9829d0829fe1d16c1fea4ca3..4286f8b9c7e97be280ff0b613161bc0838da670a 100644 GIT binary patch delta 49793 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 pDjzc$hIy=+w+$1NpEZ7#I~SK`ewTGVv=j3m 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 delta 49811 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 ewB+QJ5d%X~CzX!TrAI{zQuHW$$V diff --git a/src/MinaCalc.h b/src/MinaCalc.h index 60a7fe30cb..6805dd883f 100644 --- a/src/MinaCalc.h +++ b/src/MinaCalc.h @@ -152,4 +152,5 @@ class Calc { MINACALC_API vector MinaSDCalc(const vector& NoteInfo, int numTracks, float musicrate, float goal, float timingscale, bool negbpms); MINACALC_API MinaSD MinaSDCalc(const vector& NoteInfo, int numTracks, float goal, float timingscale, bool negbpms); -MINACALC_API float GetCalcVersion(); \ No newline at end of file +MINACALC_API float GetCalcVersion(); +MINACALC_API string GenerateWeakValidationKey(const int* tns, const int* hns); \ No newline at end of file diff --git a/src/PlayerStageStats.cpp b/src/PlayerStageStats.cpp index c0ca3964e5..c3b22ab6f1 100644 --- a/src/PlayerStageStats.cpp +++ b/src/PlayerStageStats.cpp @@ -313,6 +313,11 @@ vector PlayerStageStats::CalcSSR(float ssrpercent ) const { float musicrate = GAMESTATE->m_SongOptions.GetCurrent().m_fMusicRate; return MinaSDCalc(serializednd, steps->GetNoteData().GetNumTracks(), musicrate, ssrpercent, 1.f, steps->GetTimingData()->HasWarps()); } +// to be array'd in future i guess? -mina +string PlayerStageStats::GenerateValidationKeys() const { + string weak = GenerateWeakValidationKey(m_iTapNoteScores, m_iHoldNoteScores); + return weak; +} float PlayerStageStats::GetTimingScale() const { return m_fTimingScale; } diff --git a/src/PlayerStageStats.h b/src/PlayerStageStats.h index fff26b5a26..98012f1194 100644 --- a/src/PlayerStageStats.h +++ b/src/PlayerStageStats.h @@ -33,6 +33,7 @@ class PlayerStageStats // Calculate the difficulty rating for a specific score obtained by a player - Mina Grade GetWifeGrade(); vector CalcSSR(float ssrpercent) const; + string GenerateValidationKeys() const; float GetPercentDancePoints() const; float GetWifeScore() const; float GetTimingScale() const;