static void QRServerKeyCallback ( PEER peer, int key, qr2_buffer_t buffer, void * param ) { #if VERBOSE gsi_char verbose[256]; _stprintf(verbose, _T("QR_SERVER_KEY | %d\n"), key); OutputDebugString(verbose); #endif switch(key) { case HOSTNAME_KEY: _tprintf(_T(" Server Key callback is being called for HOSTNAME_KEY\n")); qr2_buffer_add(buffer, _T("My Game")); break; case NUMPLAYERS_KEY: _tprintf(_T(" Server Key callback is being called for NUMPLAYERS_KEY\n")); qr2_buffer_add_int(buffer, 1); break; case GAMEMODE_KEY: _tprintf(_T(" Server Key callback is being called for GAMEMODE_KEY\n")); qr2_buffer_add(buffer, _T("openplaying")); break; case HOSTPORT_KEY: _tprintf(_T(" Server Key callback is being called for HOSTPORT_KEY\n")); qr2_buffer_add_int(buffer, 15151); break; case MAPNAME_KEY: _tprintf(_T(" Server Key callback is being called for MAPNAME_KEY\n")); qr2_buffer_add(buffer, _T("Big Crate Room")); break; case GAMETYPE_KEY: _tprintf(_T(" Server Key callback is being called for GAMETYPE_KEY\n")); qr2_buffer_add(buffer, _T("Friendly")); break; case TIMELIMIT_KEY: _tprintf(_T(" Server Key callback is being called for TIMELIMIT_KEY\n")); qr2_buffer_add_int(buffer, 100); break; case FRAGLIMIT_KEY: _tprintf(_T(" Server Key callback is being called for FRAGLIMIT_KEY\n")); qr2_buffer_add_int(buffer, 0); break; case TEAMPLAY_KEY: _tprintf(_T(" Server Key callback is being called for TEAMPLAY_KEY\n")); qr2_buffer_add_int(buffer, 0); break; default: qr2_buffer_add(buffer, _T("")); break; } GSI_UNUSED(peer); GSI_UNUSED(param); }
// called when a team key needs to be reported void teamkey_callback(int keyid, int index, qr2_buffer_t outbuf, void *userdata) { AppDebug("Reporting team keys\n"); //check for valid index if (index >= gamedata.numteams) { qr2_buffer_add(outbuf, _T("")); return; } switch (keyid) { case TEAM_T_KEY: qr2_buffer_add(outbuf, gamedata.teams[index].tname); break; case SCORE_T_KEY: qr2_buffer_add_int(outbuf, gamedata.teams[index].tscore); break; case AVGPING_T_KEY: qr2_buffer_add_int(outbuf, gamedata.teams[index].avgping); break; default: qr2_buffer_add(outbuf, _T("")); break; } GSI_UNUSED(userdata); }
// called when a server key needs to be reported void serverkey_callback(int keyid, qr2_buffer_t outbuf, void *userdata) { AppDebug("Reporting server keys\n"); switch (keyid) { case HOSTNAME_KEY: qr2_buffer_add(outbuf, gamedata.hostname); break; case GAMEVER_KEY: qr2_buffer_add(outbuf, GAME_VERSION); break; case HOSTPORT_KEY: qr2_buffer_add_int(outbuf, gamedata.hostport); break; case MAPNAME_KEY: qr2_buffer_add(outbuf, gamedata.mapname); break; case GAMETYPE_KEY: qr2_buffer_add(outbuf, gamedata.gametype); break; case NUMPLAYERS_KEY: qr2_buffer_add_int(outbuf, gamedata.numplayers); break; case NUMTEAMS_KEY: qr2_buffer_add_int(outbuf, gamedata.numteams); break; case MAXPLAYERS_KEY: qr2_buffer_add_int(outbuf, gamedata.maxplayers); break; case GAMEMODE_KEY: qr2_buffer_add(outbuf, gamedata.gamemode); break; case TEAMPLAY_KEY: qr2_buffer_add_int(outbuf, gamedata.teamplay); break; case FRAGLIMIT_KEY: qr2_buffer_add_int(outbuf, gamedata.fraglimit); break; case TIMELIMIT_KEY: qr2_buffer_add_int(outbuf, gamedata.timelimit); break; case GRAVITY_KEY: qr2_buffer_add_int(outbuf, gamedata.gravity); break; case RANKINGON_KEY: qr2_buffer_add_int(outbuf, gamedata.rankingson); break; default: qr2_buffer_add(outbuf, _T("")); } GSI_UNUSED(userdata); }
// called when a player key needs to be reported void playerkey_callback(int keyid, int index, qr2_buffer_t outbuf, void *userdata) { AppDebug("Reporting player keys\n"); //check for valid index if (index >= gamedata.numplayers) { qr2_buffer_add(outbuf, _T("")); return; } switch (keyid) { case PLAYER__KEY: qr2_buffer_add(outbuf, gamedata.players[index].pname); break; case SCORE__KEY: qr2_buffer_add_int(outbuf, gamedata.players[index].pfrags); break; case DEATHS__KEY: qr2_buffer_add_int(outbuf, gamedata.players[index].pdeaths); break; case PING__KEY: qr2_buffer_add_int(outbuf, gamedata.players[index].pping); break; case TEAM__KEY: qr2_buffer_add_int(outbuf, gamedata.players[index].pteam); break; case TIME__KEY: qr2_buffer_add_int(outbuf, gamedata.players[index].ptime); break; default: qr2_buffer_add(outbuf, _T("")); break; } GSI_UNUSED(userdata); }
XRGAMESPY_API void xrGS_qr2_buffer_add_int(qr2_buffer_t outbuf, int value) { qr2_buffer_add_int(outbuf, value); }