+#pragma once
+
#ifdef SVQC
-//float PS_PM_IN_DB; // playerstats_prematch_in_db // db for info COLLECTED at the beginning of a match
-float PS_GR_OUT_DB; // playerstats_gamereport_out_db // db of info SENT at the end of a match
-//float PS_GR_IN_DB; // playerstats_gamereport_in_db // db for info COLLECTED at the end of a match
-float PS_B_IN_DB; // playerstats_playerbasic_in_db // db for info COLLECTED for basic player info (ELO)
-// http://stats.xonotic.org/player/GgXRw6piDtFIbMArMuiAi8JG4tiin8VLjZgsKB60Uds=/elo.txt -- this works,
-// http://stats.xonotic.org/player/ENkUjf83vKMVZcNm%2F6Ao1EmXEj1apQ6XvdQTxwELvmA%3D/elo.txt -- but this doesn't?!?
-// ENkUjf83vKMVZcNm/6Ao1EmXEj1apQ6XvdQTxwELvmA=
+//float PS_PM_IN_DB = -1; // playerstats_prematch_in_db // db for info COLLECTED at the beginning of a match
+int PS_GR_OUT_DB = -1; // playerstats_gamereport_out_db // db of info SENT at the end of a match
+//float PS_GR_IN_DB = -1; // playerstats_gamereport_in_db // db for info COLLECTED at the end of a match
+int PS_B_IN_DB = -1; // playerstats_playerbasic_in_db // db for info COLLECTED for basic player info (ELO)
#endif
#ifdef MENUQC
-float PS_D_IN_DB; // playerstats_playerdetail_in_db // db for info COLLECTED for detailed player profile display
-// http://stats.xonotic.org/player/me
+int PS_D_IN_DB = -1; // playerstats_playerdetail_in_db // db for info COLLECTED for detailed player profile display
#endif
#ifdef SVQC
//string PS_PM_IN_EVL; // playerstats_prematch_in_events_last
string PS_GR_OUT_TL; // playerstats_gamereport_out_teams_last
-string PS_GR_OUT_PL; // playerstats_gamereport_out_players_las
+string PS_GR_OUT_PL; // playerstats_gamereport_out_players_last
string PS_GR_OUT_EVL; // playerstats_gamereport_out_events_last
//string PS_GR_IN_PL; // playerstats_gamereport_in_players_last
//string PS_GR_IN_EVL; // playerstats_gamereport_in_events_last
const string PLAYERSTATS_TOTAL = "total-";
const string PLAYERSTATS_SCOREBOARD = "scoreboard-";
+const string PLAYERSTATS_ANTICHEAT = "anticheat-";
const string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_3 = "achievement-kill-spree-3";
const string PLAYERSTATS_ACHIEVEMENT_KILL_SPREE_5 = "achievement-kill-spree-5";
void PlayerStats_GameReport_AddEvent(string event_id);
// call on each event to track, or at player disconnect OR match end for "global stuff"
-#define PS_GR_P_ADDVAL(ent,eventid,val) PlayerStats_GameReport_Event(ent.playerstats_id, eventid, val)
-#define PS_GR_T_ADDVAL(team,eventid,val) PlayerStats_GameReport_Event(sprintf("team#%d", team), eventid, val)
+#define PlayerStats_GameReport_Event_Player(ent, eventid, val) PlayerStats_GameReport_Event(ent.playerstats_id, eventid, val)
+#define PlayerStats_GameReport_Event_Team(team, eventid, val) PlayerStats_GameReport_Event(sprintf("team#%d", team), eventid, val)
float PlayerStats_GameReport_Event(string prefix, string event_id, float value);
void PlayerStats_GameReport_Accuracy(entity p);
//string autocvar_g_playerstats_uri;
string autocvar_g_playerstats_gamereport_ladder;
-var string autocvar_g_playerstats_gamereport_uri = "http://stats.xonotic.org/stats/submit";
-
-#define PS_B_STATUS_ERROR -2
-#define PS_B_STATUS_IDLE -1
-#define PS_B_STATUS_WAITING 0
-#define PS_B_STATUS_RECEIVED 1
-#define PS_B_STATUS_UPDATING 2
-var float PlayerStats_PlayerBasic_Status = PS_B_STATUS_IDLE;
-var string autocvar_g_playerstats_playerbasic_uri = "http://stats.xonotic.org";
-
-void PlayerStats_PlayerBasic();
+string autocvar_g_playerstats_gamereport_uri = "http://stats.xonotic.org/stats/submit";
+
+const float PS_B_STATUS_ERROR = -2;
+const float PS_B_STATUS_IDLE = -1;
+const float PS_B_STATUS_WAITING = 0;
+const float PS_B_STATUS_RECEIVED = 1;
+const float PS_B_STATUS_UPDATING = 2;
+.float playerstats_basicstatus;
+string autocvar_g_playerstats_playerbasic_uri = "http://stats.xonotic.org";
+
+void PlayerStats_PlayerBasic(entity joiningplayer, float newrequest);
+void PlayerStats_PlayerBasic_CheckUpdate(entity joiningplayer);
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";
-var float autocvar_g_playerstats_playerdetail_autoupdatetime = 1800; // automatically update every 30 minutes anyway
-void PlayerStats_PlayerDetail(void);
-void PlayerStats_PlayerDetail_CheckUpdate(void);
+const float PS_D_STATUS_ERROR = -2;
+const float PS_D_STATUS_IDLE = -1;
+const float PS_D_STATUS_WAITING = 0;
+const float PS_D_STATUS_RECEIVED = 1;
+float PlayerStats_PlayerDetail_Status = PS_D_STATUS_IDLE;
+string autocvar_g_playerstats_playerdetail_uri = "http://stats.xonotic.org/player/me";
+float autocvar_g_playerstats_playerdetail_autoupdatetime = 1800; // automatically update every 30 minutes anyway
+void PlayerStats_PlayerDetail();
+void PlayerStats_PlayerDetail_CheckUpdate();
void PlayerStats_PlayerDetail_Handler(entity fh, entity p, float status);
#endif