From: Samual Lenks Date: Mon, 27 Jan 2014 05:27:21 +0000 (-0500) Subject: Add a function to handle the decision of whether the stats list should X-Git-Tag: xonotic-v0.8.0~139^2~1^2~24 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=53c9348aa146e7da4c06c0199d2955cd7d1d433b;p=xonotic%2Fxonotic-data.pk3dir.git Add a function to handle the decision of whether the stats list should update --- diff --git a/qcsrc/common/playerstats.qc b/qcsrc/common/playerstats.qc index 6d327495d..5eaecc75c 100644 --- a/qcsrc/common/playerstats.qc +++ b/qcsrc/common/playerstats.qc @@ -616,7 +616,30 @@ void PlayerStats_PlayerDetail(void) } PlayerStats_PlayerDetail_Status = PS_D_STATUS_IDLE; - + } +} + +void PlayerStats_PlayerDetail_CheckUpdate(void) +{ + // determine whether we should retrieve playerdetail information again + float gamecount = cvar("cl_matchcount"); + + printf("PlayerStats_PlayerDetail_CheckUpdate(): %f >= %f, %d > %d\n", + time, + PS_D_NEXTUPDATETIME, + PS_D_LASTGAMECOUNT, + gamecount + ); + + if( + (time >= PS_D_NEXTUPDATETIME) + || + (gamecount > PS_D_LASTGAMECOUNT) + ) + { + PlayerStats_PlayerDetail(); + PS_D_NEXTUPDATETIME = (time + autocvar_g_playerstats_playerdetail_autoupdatetime); + PS_D_LASTGAMECOUNT = gamecount; } } @@ -632,8 +655,8 @@ void PlayerStats_PlayerDetail_Handler(entity fh, entity unused, float status) url_fputs(fh, sprintf("R %s\n", WATERMARK)); #endif url_fputs(fh, sprintf("l %s\n", cvar_string("_menu_prvm_language"))); // language - url_fputs(fh, sprintf("c %s\n", cvar_string("_menu_prvm_country"))); // country - url_fputs(fh, sprintf("g %s\n", cvar_string("_menu_prvm_gender"))); // gender + //url_fputs(fh, sprintf("c %s\n", cvar_string("_cl_country"))); // country + //url_fputs(fh, sprintf("g %s\n", cvar_string("_cl_gender"))); // gender url_fputs(fh, sprintf("n %s\n", cvar_string("_cl_name"))); // name url_fputs(fh, sprintf("m %s %s\n", cvar_string("_cl_playermodel"), cvar_string("_cl_playerskin"))); // model/skin url_fputs(fh, "\n"); diff --git a/qcsrc/common/playerstats.qh b/qcsrc/common/playerstats.qh index 6b1c16525..81e0bab83 100644 --- a/qcsrc/common/playerstats.qh +++ b/qcsrc/common/playerstats.qh @@ -96,17 +96,20 @@ void PlayerStats_PlayerBasic(); void PlayerStats_PlayerBasic_Handler(entity fh, entity p, float status); #endif //SVQC #ifdef MENUQC +float PS_D_NEXTUPDATETIME; +float PS_D_LASTGAMECOUNT; #define PS_D_STATUS_ERROR -2 #define PS_D_STATUS_IDLE -1 #define PS_D_STATUS_WAITING 0 #define PS_D_STATUS_RECEIVED 1 var float PlayerStats_PlayerDetail_Status = PS_D_STATUS_IDLE; var string autocvar_g_playerstats_playerdetail_uri = "http://stats.xonotic.org/player/me"; -void PlayerStats_PlayerDetail(); +var float autocvar_g_playerstats_playerdetail_autoupdatetime = 3600; // automatically update every 60 minutes anyway +void PlayerStats_PlayerDetail(void); +void PlayerStats_PlayerDetail_CheckUpdate(void); void PlayerStats_PlayerDetail_Handler(entity fh, entity p, float status); #endif - /* //// WIP -zykure ///////////////////////////////////////////////////// diff --git a/qcsrc/menu/command/menu_cmd.qc b/qcsrc/menu/command/menu_cmd.qc index b19f94c4a..c7499e58e 100644 --- a/qcsrc/menu/command/menu_cmd.qc +++ b/qcsrc/menu/command/menu_cmd.qc @@ -116,11 +116,5 @@ void GameCommand(string theCommand) return; } - if(argv(0) == "debugstats") - { - PlayerStats_PlayerDetail(); - return; - } - print(_("Invalid command. For a list of supported commands, try menu_cmd help.\n")); } diff --git a/qcsrc/menu/menu.qc b/qcsrc/menu/menu.qc index abbc3e2cd..6c9045bb7 100644 --- a/qcsrc/menu/menu.qc +++ b/qcsrc/menu/menu.qc @@ -95,7 +95,7 @@ void m_init() } //PlayerInfo_Details(); - PlayerStats_PlayerDetail(); + PlayerStats_PlayerDetail_CheckUpdate(); } const float MENU_ASPECT = 1.25; // 1280x1024 diff --git a/qcsrc/menu/xonotic/statslist.c b/qcsrc/menu/xonotic/statslist.c index 865200a78..aefe59927 100644 --- a/qcsrc/menu/xonotic/statslist.c +++ b/qcsrc/menu/xonotic/statslist.c @@ -330,7 +330,7 @@ void XonoticStatsList_drawListBoxItem(entity me, float i, vector absSize, float void XonoticStatsList_showNotify(entity me) { - PlayerStats_PlayerDetail(); + PlayerStats_PlayerDetail_CheckUpdate(); } void XonoticStatsList_clickListBoxItem(entity me, float i, vector where)