MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / GetNewRankings

Function GetNewRankings

Descent3/multi_server.cpp:3005–3051  ·  view source on GitHub ↗

Given a killer and killed player, calculates their new rankings

Source from the content-addressed store, hash-verified

3003
3004// Given a killer and killed player, calculates their new rankings
3005void GetNewRankings(object *killed, object *killer) {
3006 float killed_rank;
3007 float killer_rank;
3008
3009 // #ifdef OEM
3010 // return;
3011 // #endif
3012
3013#ifdef DEMO
3014 return;
3015#endif
3016
3017 if (!killer || !killed)
3018 return;
3019
3020 if (!(Netgame.flags & NF_TRACK_RANK))
3021 return;
3022
3023 if (killed->type != OBJ_PLAYER || killer->type != OBJ_PLAYER)
3024 return;
3025
3026 int old_killed_index = GetRankIndex(killed->id);
3027 int old_killer_index = GetRankIndex(killer->id);
3028
3029 if (killed == killer) // Suicide, always subract .5 points
3030 {
3031 Players[killer->id].rank -= .5;
3032 if (Players[killer->id].rank < 0) {
3033 Players[killer->id].rank = 0;
3034 }
3035
3036 if (GetRankIndex(killer->id) != old_killer_index)
3037 ChangeRankIndex(old_killer_index, killer->id);
3038 } else {
3039 killed_rank = CalculateNewRanking(killed, killer, 0);
3040 killer_rank = CalculateNewRanking(killer, killed, 1);
3041
3042 Players[killer->id].rank = killer_rank;
3043 Players[killed->id].rank = killed_rank;
3044
3045 if (GetRankIndex(killer->id) != old_killer_index)
3046 ChangeRankIndex(old_killer_index, killer->id);
3047
3048 if (GetRankIndex(killed->id) != old_killed_index)
3049 ChangeRankIndex(old_killed_index, killed->id);
3050 }
3051}

Callers 1

KillPlayerFunction · 0.85

Calls 3

GetRankIndexFunction · 0.85
ChangeRankIndexFunction · 0.85
CalculateNewRankingFunction · 0.85

Tested by

no test coverage detected