Given a killer and killed player, calculates their new rankings
| 3003 | |
| 3004 | // Given a killer and killed player, calculates their new rankings |
| 3005 | void 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 | } |
no test coverage detected