From cd1cb97add49357f4bb8c5bad3587f085224abc2 Mon Sep 17 00:00:00 2001 From: poco0317 Date: Tue, 4 Dec 2018 11:23:22 -0600 Subject: [PATCH] Improve lua access to changing player on net eval --- .../Til Death/BGAnimations/MPscoreboard.lua | 2 +- src/ScreenNetEvaluation.cpp | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/Themes/Til Death/BGAnimations/MPscoreboard.lua b/Themes/Til Death/BGAnimations/MPscoreboard.lua index f616e7b2fd..e7796e726f 100644 --- a/Themes/Til Death/BGAnimations/MPscoreboard.lua +++ b/Themes/Til Death/BGAnimations/MPscoreboard.lua @@ -13,7 +13,7 @@ local function input(event) if event.type == "InputEventType_Release" then for i = 1, #multiscores do if isOver(scoreBoard:GetChild(i):GetChild("mouseOver")) then - SCREENMAN:GetTopScreen():SetCurrentPlayer(i) + SCREENMAN:GetTopScreen():SetCurrentPlayerByName(multiscores[i].user) scoreBoard:GetChild(i):GetChild("grade"):visible( not scoreBoard:GetChild(i):GetChild("grade"):GetVisible() ) diff --git a/src/ScreenNetEvaluation.cpp b/src/ScreenNetEvaluation.cpp index 43d3f4186b..cb6e19a824 100644 --- a/src/ScreenNetEvaluation.cpp +++ b/src/ScreenNetEvaluation.cpp @@ -163,6 +163,24 @@ class LunaScreenNetEvaluation : public Luna p->UpdateStats(); return 0; } + static int SetCurrentPlayerByName(T* p, lua_State* L) + { + int theNumber = 0; + RString given = SArg(1); + for (size_t i = 0; i < NSMAN->m_EvalPlayerData.size(); i++) + { + EndOfGame_PlayerData& pd = NSMAN->m_EvalPlayerData[i]; + RString name = pd.nameStr; + name.MakeLower(); + if (name == given) + { + p->m_iCurrentPlayer = (int)i; + p->UpdateStats(); + break; + } + } + return 0; + } LunaScreenNetEvaluation() { ADD_METHOD(GetNumActivePlayers); @@ -170,6 +188,7 @@ class LunaScreenNetEvaluation : public Luna ADD_METHOD(GetOptions); ADD_METHOD(GetCurrentPlayer); ADD_METHOD(SetCurrentPlayer); + ADD_METHOD(SetCurrentPlayerByName); } };