From 206562198d53169d416385a88ac2d7710a8a59bd Mon Sep 17 00:00:00 2001 From: Taylor Richards Date: Sun, 4 Mar 2018 21:23:49 -0500 Subject: [PATCH] tweak stats saving to maybe work better --- src/network/multi.cpp | 22 +++++++++++-------- src/network/multiui.cpp | 48 +++++++++++++++++++++++++---------------- 2 files changed, 42 insertions(+), 28 deletions(-) diff --git a/src/network/multi.cpp b/src/network/multi.cpp index 095780c..91425aa 100644 --- a/src/network/multi.cpp +++ b/src/network/multi.cpp @@ -1889,7 +1889,7 @@ void multi_standalone_postgame_init() // always set my state to be "DEBRIEF_ACCEPT" Net_player->state = NETPLAYER_STATE_DEBRIEF_ACCEPT; - // mark stats as not being store yet + // mark stats as not being stored yet Netgame.flags &= ~(NG_FLAG_STORED_MT_STATS); Multi_debrief_server_framecount = 0; @@ -1916,21 +1916,25 @@ void multi_standalone_postgame_do() void multi_standalone_postgame_close() { // maybe store stats on tracker - if ( !(Netgame.flags & NG_FLAG_STORED_MT_STATS) ) { - if ( (multi_debrief_stats_accept_code() == 1) ) { -#ifndef MAKE_FS1 + if ( MULTI_IS_TRACKER_GAME && !(Netgame.flags & NG_FLAG_STORED_MT_STATS) ) { + if (multi_debrief_stats_accept_code() != 0) { int stats_saved = multi_fs_std_tracker_store_stats(); + if (stats_saved) { + multi_debrief_stats_accept(); + + Netgame.flags |= NG_FLAG_STORED_MT_STATS; + send_netgame_update_packet(); + } else { + multi_debrief_stats_toss(); + } + +#ifndef MAKE_FS1 if (Netgame.type_flags & NG_TYPE_SW) { multi_sw_report(stats_saved); } -#else - multi_fs_std_tracker_store_stats(); #endif } - - Netgame.flags |= NG_FLAG_STORED_MT_STATS; - send_netgame_update_packet(); } } diff --git a/src/network/multiui.cpp b/src/network/multiui.cpp index b04f5cb..57ee318 100644 --- a/src/network/multiui.cpp +++ b/src/network/multiui.cpp @@ -9345,22 +9345,27 @@ void multi_debrief_accept_hit() // query the host and see if he wants to accept stats if(Net_player->flags & NETINFO_FLAG_GAME_HOST){ // if we're on a tracker game, he gets no choice for storing stats - if(MULTI_IS_TRACKER_GAME){ - if ( (Net_player->flags & NETINFO_FLAG_AM_MASTER) && !(Netgame.flags & NG_FLAG_STORED_MT_STATS) ) { - if ( (multi_debrief_stats_accept_code() == 1) ) { -#ifndef MAKE_FS1 - int stats_saved = multi_fs_std_tracker_store_stats(); + if (MULTI_IS_TRACKER_GAME) { + // if not standalone, send stats + if (Net_player->flags & NETINFO_FLAG_AM_MASTER) { + if ( !(Netgame.flags & NG_FLAG_STORED_MT_STATS) ) { + int stats_saved = multi_fs_tracker_store_stats(); + + if (stats_saved) { + multi_debrief_stats_accept(); + + Netgame.flags |= NG_FLAG_STORED_MT_STATS; + send_netgame_update_packet(); + } else { + multi_debrief_stats_toss(); + } +#ifndef MAKE_FS1 if (Netgame.type_flags & NG_TYPE_SW) { multi_sw_report(stats_saved); } -#else - multi_fs_std_tracker_store_stats(); #endif } - - Netgame.flags |= NG_FLAG_STORED_MT_STATS; - send_netgame_update_packet(); } multi_maybe_set_mission_loop(); @@ -9411,21 +9416,26 @@ void multi_debrief_esc_hit() if(Net_player->flags & NETINFO_FLAG_GAME_HOST){ // if the stats have already been accepted if((Multi_debrief_stats_accept_code != -1) || (MULTI_IS_TRACKER_GAME)){ - if ( (Net_player->flags & NETINFO_FLAG_AM_MASTER) && !(Netgame.flags & NG_FLAG_STORED_MT_STATS) ) { - if ( (multi_debrief_stats_accept_code() == 1) && MULTI_IS_TRACKER_GAME ) { -#ifndef MAKE_FS1 - int stats_saved = multi_fs_std_tracker_store_stats(); + // if not on standalone, maybe send stats + if ( (Net_player->flags & NETINFO_FLAG_AM_MASTER) && MULTI_IS_TRACKER_GAME ) { + if ( !(Netgame.flags & NG_FLAG_STORED_MT_STATS) ) { + int stats_saved = multi_fs_tracker_store_stats(); + if (stats_saved) { + multi_debrief_stats_accept(); + + Netgame.flags |= NG_FLAG_STORED_MT_STATS; + send_netgame_update_packet(); + } else { + multi_debrief_stats_toss(); + } + +#ifndef MAKE_FS1 if (Netgame.type_flags & NG_TYPE_SW) { multi_sw_report(stats_saved); } -#else - multi_fs_std_tracker_store_stats(); #endif } - - Netgame.flags |= NG_FLAG_STORED_MT_STATS; - send_netgame_update_packet(); } multi_quit_game(PROMPT_HOST); -- 2.39.2