Skip to content

Commit

Permalink
Allow Lua to calculate the PSS from Replays only from Evaluation
Browse files Browse the repository at this point in the history
  • Loading branch information
poco0317 committed Oct 19, 2019
1 parent 04ce0cf commit 1d6aff4
Showing 1 changed file with 17 additions and 1 deletion.
18 changes: 17 additions & 1 deletion src/Etterna/Screen/Others/ScreenEvaluation.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,8 @@
#include "Etterna/Models/StepsAndStyles/Steps.h"
#include "Etterna/Singletons/ThemeManager.h"
#include "Etterna/Models/Misc/GamePreferences.h"
#include "Etterna/Models/Misc/PlayerAI.h"
#include "Etterna/Models/NoteData/NoteData.h"

#define CHEER_DELAY_SECONDS THEME->GetMetricF(m_sName, "CheerDelaySeconds")
#define BAR_ACTUAL_MAX_COMMAND THEME->GetMetricA(m_sName, "BarActualMaxCommand")
Expand Down Expand Up @@ -302,6 +304,7 @@ ScreenEvaluation::MenuStart(const InputEventPlus& input)
return false;

m_soundStart.Play(true);
PlayerAI::ResetScoreData();

HandleMenuStart();
return true;
Expand Down Expand Up @@ -353,7 +356,20 @@ class LunaScreenEvaluation : public Luna<ScreenEvaluation>
LuaHelpers::Push(L, p->GetStageStats());
return 1;
}
LunaScreenEvaluation() { ADD_METHOD(GetStageStats); }
static int SetPlayerStageStatsFromReplayData(T* p, lua_State* L)
{
PlayerStageStats* pPSS = Luna<PlayerStageStats>::check(L, 1);
NoteData nd = GAMESTATE->m_pCurSteps->GetNoteData();
HighScore* hs = SCOREMAN->GetMostRecentScore();
PlayerAI::SetScoreData(hs, 0, &nd);
PlayerAI::SetPlayerStageStatsForReplay(pPSS);
return 0;
}
LunaScreenEvaluation()
{
ADD_METHOD(GetStageStats);
ADD_METHOD(SetPlayerStageStatsFromReplayData);
}
};

LUA_REGISTER_DERIVED_CLASS(ScreenEvaluation, ScreenWithMenuElements)
Expand Down

0 comments on commit 1d6aff4

Please sign in to comment.