]> git.rm.cloudns.org Git - xonotic/xonotic-data.pk3dir.git/commitdiff
Add a function to handle the decision of whether the stats list should
authorSamual Lenks <samual@xonotic.org>
Mon, 27 Jan 2014 05:27:21 +0000 (00:27 -0500)
committerSamual Lenks <samual@xonotic.org>
Mon, 27 Jan 2014 05:27:21 +0000 (00:27 -0500)
update

qcsrc/common/playerstats.qc
qcsrc/common/playerstats.qh
qcsrc/menu/command/menu_cmd.qc
qcsrc/menu/menu.qc
qcsrc/menu/xonotic/statslist.c

index 6d327495dc56984d7a64db2b95d5cbb44a1dc4a9..5eaecc75c344b222a7a355fd09f7e5a15802a59a 100644 (file)
@@ -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");
index 6b1c1652595b99589895ede934fb19bc619945c4..81e0bab8381bb4c53494758c5cf9f6178e7a78b1 100644 (file)
@@ -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 /////////////////////////////////////////////////////
 
index b19f94c4abea164332eb636b37219f0a72cdd2b2..c7499e58e40a8a94ba1f31f2c504f0310bb465a3 100644 (file)
@@ -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"));
 }
index abbc3e2cd2fdc3c6aac93d7198229513185ce2e2..6c9045bb73d7423824f09259584032ea9812d615 100644 (file)
@@ -95,7 +95,7 @@ void m_init()
        }
 
        //PlayerInfo_Details();
-       PlayerStats_PlayerDetail();
+       PlayerStats_PlayerDetail_CheckUpdate();
 }
 
 const float MENU_ASPECT = 1.25; // 1280x1024
index 865200a783537ca370955021ee7684605d9ab0d5..aefe59927c5afce48d5d199950765fbb4b8091b7 100644 (file)
@@ -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)