From 1fd297384743bac25ba9b1f5c2ee1aa9f9999989 Mon Sep 17 00:00:00 2001 From: Nicolas Date: Sat, 1 Dec 2018 05:48:23 -0300 Subject: [PATCH] Expose multi eval scores to lua --- src/NetworkSyncManager.cpp | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/NetworkSyncManager.cpp b/src/NetworkSyncManager.cpp index 9648ea011d..05b99ea010 100644 --- a/src/NetworkSyncManager.cpp +++ b/src/NetworkSyncManager.cpp @@ -768,6 +768,7 @@ ETTProtocol::Update(NetworkSyncManager* n, float fDeltaTime) n->m_EvalPlayerData.emplace_back(result); n->m_ActivePlayers = n->m_EvalPlayerData.size(); SCREENMAN->SendMessageToTopScreen(ETTP_NewScore); + MESSAGEMAN->Broadcast("NewMultiScore"); break; } case ettps_ping: @@ -1804,8 +1805,26 @@ LuaFunction(IsSMOnlineLoggedIn, NSMAN->loggedIn) p->Login(user, pass); return 1; } + static int GetEvalScores(T* p, lua_State* L) + { + int i = 1; + lua_newtable(L); + for (auto& evalData : NSMAN->m_EvalPlayerData) { + lua_newtable(L); + lua_pushstring(L, evalData.nameStr.c_str()); + lua_setfield(L, -2, "user"); + evalData.hs.PushSelf(L); + lua_setfield(L, -2, "highscore"); + lua_pushstring(L, evalData.playerOptions.c_str()); + lua_setfield(L, -2, "options"); + lua_rawseti(L, -2, i); + i++; + } + return 1; + } LunaNetworkSyncManager() { + ADD_METHOD(GetEvalScores); ADD_METHOD(GetMPLeaderboard); ADD_METHOD(GetChartRequests); ADD_METHOD(GetChatMsg);