/** * @brief Parses fireteam servercommand */ void CG_ParseFireteams() { int i, j; char *s; const char *p; int clnts[2]; for (i = 0; i < MAX_CLIENTS; i++) { cgs.clientinfo[i].fireteamData = NULL; } for (i = 0; i < MAX_FIRETEAMS; i++) { char hexbuffer[11] = "0x00000000"; p = CG_ConfigString(CS_FIRETEAMS + i); j = atoi(Info_ValueForKey(p, "id")); if (j == -1) { cg.fireTeams[i].inuse = qfalse; continue; } else { cg.fireTeams[i].inuse = qtrue; cg.fireTeams[i].ident = j; } s = Info_ValueForKey(p, "l"); cg.fireTeams[i].leader = atoi(s); s = Info_ValueForKey(p, "p"); cg.fireTeams[i].priv = (qboolean)atoi(s); s = Info_ValueForKey(p, "c"); Q_strncpyz(hexbuffer + 2, s, 9); sscanf(hexbuffer, "%x", &clnts[1]); Q_strncpyz(hexbuffer + 2, s + 8, 9); sscanf(hexbuffer, "%x", &clnts[0]); for (j = 0; j < cgs.maxclients; j++) { if (COM_BitCheck(clnts, j)) { cg.fireTeams[i].joinOrder[j] = qtrue; cgs.clientinfo[j].fireteamData = &cg.fireTeams[i]; //CG_Printf("%s\n", cgs.clientinfo[j].name); } else { cg.fireTeams[i].joinOrder[j] = qfalse; } } } CG_SortClientFireteam(); }
// Parses fireteam servercommand void CG_ParseFireteams() { int i, j; char *s; const char *p; int clnts[2]; qboolean onFireteam2; qboolean isLeader2; // qboolean onFireteam = CG_IsOnFireteam( cg.clientNum ) ? qtrue : qfalse; // qboolean isLeader = CG_IsFireTeamLeader( cg.clientNum ) ? qtrue : qfalse; for (i = 0; i < MAX_CLIENTS; i++) { cgs.clientinfo[i].fireteamData = NULL; } for (i = 0; i < MAX_FIRETEAMS; i++) { char hexbuffer[11] = "0x00000000"; p = CG_ConfigString(CS_FIRETEAMS + i); /* s = Info_ValueForKey(p, "n"); if(!s || !*s) { cg.fireTeams[i].inuse = qfalse; continue; } else { cg.fireTeams[i].inuse = qtrue; }*/ // Q_strncpyz(cg.fireTeams[i].name, s, 32); // CG_Printf("Fireteam: %s\n", cg.fireTeams[i].name); j = atoi(Info_ValueForKey(p, "id")); if (j == -1) { cg.fireTeams[i].inuse = qfalse; continue; } else { cg.fireTeams[i].inuse = qtrue; cg.fireTeams[i].ident = j; } s = Info_ValueForKey(p, "l"); cg.fireTeams[i].leader = atoi(s); s = Info_ValueForKey(p, "c"); Q_strncpyz(hexbuffer + 2, s, 9); sscanf(hexbuffer, "%x", &clnts[1]); Q_strncpyz(hexbuffer + 2, s + 8, 9); sscanf(hexbuffer, "%x", &clnts[0]); for (j = 0; j < MAX_CLIENTS; j++) { if (COM_BitCheck(clnts, j)) { cg.fireTeams[i].joinOrder[j] = qtrue; cgs.clientinfo[j].fireteamData = &cg.fireTeams[i]; // CG_Printf("%s\n", cgs.clientinfo[j].name); } else { cg.fireTeams[i].joinOrder[j] = qfalse; } } } CG_SortClientFireteam(); onFireteam2 = CG_IsOnFireteam(cg.clientNum) ? qtrue : qfalse; isLeader2 = CG_IsFireTeamLeader(cg.clientNum) ? qtrue : qfalse; }