Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ class PSPlayerStats

#if defined(GENERALS_ONLINE) // Extra data added in GO
int elo_rating;
int monthly_elo_rating;
int elo_num_matches;
#endif

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -340,6 +340,7 @@ PSPlayerStats::PSPlayerStats( const PSPlayerStats& other )
#if defined(GENERALS_ONLINE)
elo_rating = other.elo_rating;
elo_num_matches = other.elo_num_matches;
monthly_elo_rating = other.monthly_elo_rating;
#endif
locale = other.locale;
gamesAsRandom = other.gamesAsRandom;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -957,11 +957,23 @@ void PopulatePlayerInfoWindows( AsciiString parentWindowName )
uStr.format(L"%d", numLosses);
GadgetStaticTextSetText(win, uStr);
}
#if defined(GENERALS_ONLINE)
win = findWindow(parentWindow, parentWindowName, "StaticTextDisconnects");
if (win)
{
uStr.format(L"Monthly Elo:");
GadgetStaticTextSetText(win, uStr);
}
#endif
win = findWindow(parentWindow, parentWindowName, "StaticTextDisconnectsValue");
if (win)
{
#if defined(GENERALS_ONLINE)
uStr.format(L"%d", stats.elo_rating, stats.monthly_elo_rating);
#else
uStr.format(L"%d", numDiscons);
GadgetStaticTextSetText(win, uStr);
#endif
GadgetStaticTextSetText(win, uStr);
}

win = findWindow(parentWindow, parentWindowName, "StaticTextBestStreakValue");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -540,8 +540,8 @@ static void playerTooltip(GameWindow *window,
if (localPlayerID == slot->m_userID)
{
// local user wont have a connection
playerInfo.format(L"\nElo Rating: %d (in %d matches)\nWins: %d\nLosses: %d\nDisconnects: %d\nFavorite Army: %s",
stats.elo_rating, stats.elo_num_matches, totalWins, totalLosses, totalDiscons, favoriteSide.str());
playerInfo.format(L"\nOverall Elo Rating: %d (in %d matches)\nMonthly Elo Rating: %d\nWins: %d\nLosses: %d\nDisconnects: %d\nFavorite Army: %s",
stats.elo_rating, stats.elo_num_matches, stats.monthly_elo_rating, totalWins, totalLosses, totalDiscons, favoriteSide.str());
}
else if (bIsConnected)
{
Expand All @@ -550,14 +550,14 @@ static void playerTooltip(GameWindow *window,
if (connectionLatency >= 0) latencyStr.format(L"%d ms", connectionLatency); else latencyStr = L"Unknown";
if (connectionJitter >= 0) jitterStr.format(L"%d ms", connectionJitter); else jitterStr = L"Unknown";
if (connectionQualityPct >= 0) qualityStr.format(L"%d%%", connectionQualityPct); else qualityStr = L"Unknown";
playerInfo.format(L"\nConnection State: Connected (%hs)\nConnection Score: %s\nLatency: %s\nJitter: %s\nReliability: %s\nRegion: %hs\nElo Rating: %d (in %d matches)\nWins: %d\nLosses: %d\nDisconnects: %d\nFavorite Army: %s",
playerInfo.format(L"\nConnection State: Connected (%hs)\nConnection Score: %s\nLatency: %s\nJitter: %s\nReliability: %s\nRegion: %hs\nOverall Elo Rating: %d (in %d matches)\nMonthly Elo Rating: %d\nWins: %d\nLosses: %d\nDisconnects: %d\nFavorite Army: %s",
strConnectionType.c_str(), scoreStr.str(), latencyStr.str(), jitterStr.str(), qualityStr.str(),
member.region.c_str(), stats.elo_rating, stats.elo_num_matches, totalWins, totalLosses, totalDiscons, favoriteSide.str());
member.region.c_str(), stats.elo_rating, stats.elo_num_matches, stats.monthly_elo_rating, totalWins, totalLosses, totalDiscons, favoriteSide.str());
}
else
{
playerInfo.format(L"\nConnection State: Connecting...\nRegion: %hs\nElo Rating: %d (in %d matches)\nWins: %d\nLosses: %d\nDisconnects: %d\nFavorite Army: %s",
member.region.c_str(), stats.elo_rating, stats.elo_num_matches, totalWins, totalLosses, totalDiscons, favoriteSide.str());
playerInfo.format(L"\nConnection State: Connecting...\nRegion: %hs\nOverall Elo Rating: %d (in %d matches)\nMonthly Elo Rating: %d\nWins: %d\nLosses: %d\nDisconnects: %d\nFavorite Army: %s",
member.region.c_str(), stats.elo_rating, stats.elo_num_matches, stats.monthly_elo_rating, totalWins, totalLosses, totalDiscons, favoriteSide.str());
}
#else
playerInfo.format(L"\nLatency: %d ms\nWins: %d\nLosses: %d\nDisconnects: %d\nFavorite Army: %s",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -388,7 +388,9 @@ static void playerTooltip(GameWindow *window,

// ELO data
UnicodeString tmp;
tmp.format(L"\n\nElo Rating: %d (in %d matches)", stats.elo_rating, stats.elo_num_matches);
tmp.format(L"\n\nOverall Elo Rating: %d (in %d matches)", stats.elo_rating, stats.elo_num_matches);
tooltip.concat(tmp);
tmp.format(L"\nMonthly Elo Rating: %d", stats.monthly_elo_rating);
tooltip.concat(tmp);
Int rankPoints = CalculateRank(stats);
Int rank = 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1156,7 +1156,7 @@ void WOLQuickMatchMenuInit( WindowLayout *layout, void *userData )
if (bSuccess)
{
UnicodeString eloStr;
eloStr.format(L"Your current Elo rating is %d after %d match(es)", stats.elo_rating, stats.elo_num_matches);
eloStr.format(L"Your current Elo rating is %d (monthly: %d) after %d match(es)", stats.elo_rating, stats.monthly_elo_rating, stats.elo_num_matches);
GadgetListBoxAddEntryText(quickmatchTextWindow, eloStr, GameMakeColor(255, 194, 25, 255), -1, -1);
}
}, EStatsRequestPolicy::BYPASS_CACHE_FORCE_REQUEST);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ void NGMP_OnlineServices_StatsInterface::findPlayerStatsByID(int64_t userID, std
// GO extra data
jsonObjectRoot["EloRating"].get_to(stats.elo_rating);
jsonObjectRoot["EloMatches"].get_to(stats.elo_num_matches);
jsonObjectRoot["MonthlyEloRating"].get_to(stats.monthly_elo_rating);

#define PROCESS_JSON_PER_GENERAL_RESULT(name) i = 0; for (const auto& iter : jsonObjectRoot[#name]) { iter.get_to(stats.##name[i++]); }
PROCESS_JSON_PER_GENERAL_RESULT(wins);
Expand Down Expand Up @@ -286,6 +287,7 @@ void NGMP_OnlineServices_StatsInterface::findPlayerStatsByBatch(std::vector<int6
// GO extra data
statsUserIter["EloRating"].get_to(stats.elo_rating);
statsUserIter["EloMatches"].get_to(stats.elo_num_matches);
statsUserIter["MonthlyEloRating"].get_to(stats.monthly_elo_rating);

// now get stats
int i = 0;
Expand Down
Loading