diff --git a/engine/client/cl_parse.c b/engine/client/cl_parse.c index d2329e3d2..0586d1f99 100644 --- a/engine/client/cl_parse.c +++ b/engine/client/cl_parse.c @@ -1059,7 +1059,7 @@ void CL_ParseDownload (void) if (!*cls.downloadname) //huh... that's not right... { - Con_Printf("^1Warning: Server sending unknown file.\n"); + Con_Printf("^1Warning^7: Server sending unknown file.\n"); strcpy(cls.downloadname, "unknown.txt"); strcpy(cls.downloadtempname, "unknown.tmp"); } @@ -3191,6 +3191,32 @@ int CL_PlayerColor(player_info_t *plr, int *name_ormask) break; } } + else if (cl.teamplay) + { + // team name hacks + if (!strcmp(plr->team, "red")) + c = 1; + else if (!strcmp(plr->team, "blue")) + c = 6; + else + { + char *t; + + t = plr->team; + c = 0; + + for (t = plr->team; *t; t++) + { + c >>= 1; + c ^= *t; // TODO: very weak hash, replace + } + + if ((c / 7) & 1) + *name_ormask = CON_STANDARDMASK; + + c = 1 + (c % 7); + } + } else { // override chat color with tc infokey @@ -3360,9 +3386,9 @@ void CL_PrintStandardMessage(char *msg) int ormask; char c; - if (!p->name[0]) + name = p->name; + if (!(*name)) continue; - name = Info_ValueForKey (p->userinfo, "name"); len = strlen(name); v = strstr(msg, name); while (v) diff --git a/engine/client/sbar.c b/engine/client/sbar.c index 979f502b6..55804d2ee 100644 --- a/engine/client/sbar.c +++ b/engine/client/sbar.c @@ -1119,8 +1119,8 @@ void Sbar_SortTeams (void) // find his team in the list t[16] = 0; - Q_strncpyz(t, Info_ValueForKey(s->userinfo, "team"), sizeof(t)); - if (!t || !t[0]) + Q_strncpyz(t, s->team, sizeof(t)); + if (!t[0]) continue; // not on team for (j = 0; j < scoreboardteams; j++) if (!strcmp(teams[j].team, t)) { @@ -1881,8 +1881,7 @@ void Sbar_TeamOverlay (void) sprintf (num, "%5i", tm->players); Draw_String (x + 104 + 88, y, num); - if (!strncmp(Info_ValueForKey(cl.players[cl.playernum[0]].userinfo, - "team"), tm->team, 16)) { + if (!strncmp(cl.players[cl.playernum[0]].team, tm->team, 16)) { Draw_Character ( x + 104 - 8, y, 16); Draw_Character ( x + 104 + 32, y, 17); } @@ -1911,7 +1910,6 @@ void Sbar_DeathmatchOverlay (int start) int total; int minutes; int p; - char team[64]; int skip = 10; if (largegame) @@ -2044,10 +2042,7 @@ void Sbar_DeathmatchOverlay (int start) // team if (cl.teamplay) - { - Q_strncpyz (team, Info_ValueForKey(s->userinfo, "team"), sizeof(team)); - Draw_FunStringLen (x+152, y, team, 4); - } + Draw_FunStringLen (x+152, y, s->team, 4); // draw name if (cl.teamplay) @@ -2091,9 +2086,9 @@ void Sbar_ChatModeOverlay(void) Sbar_SortFrags (true); if (Cam_TrackNum(0)>=0) - Q_strncpyz (team, Info_ValueForKey(cl.players[Cam_TrackNum(0)].userinfo, "team"), sizeof(team)); + Q_strncpyz (team, cl.players[Cam_TrackNum(0)].team, sizeof(team)); else if (cl.playernum[0]>=0 && cl.playernum[0]userinfo, "team"), team)) + if (!stricmp(s->team, team)) { Draw_Character ( x, y, '['); Draw_Character ( x+8*3, y, ']'); @@ -2181,7 +2176,6 @@ void Sbar_MiniDeathmatchOverlay (void) int x, y, f; char num[12]; player_info_t *s; - char team[64]; int numlines; char name[64+1]; team_t *tm; @@ -2258,9 +2252,7 @@ void Sbar_MiniDeathmatchOverlay (void) // team and name if (cl.teamplay) { - Q_strncpyz (team, Info_ValueForKey(s->userinfo, "team"), sizeof(team)); - Draw_FunStringLen (x+48, y, team, 4); - + Draw_FunStringLen (x+48, y, s->team, 4); Draw_FunStringLen (x+48+40, y, name, MAX_DISPLAYEDNAME); } else @@ -2286,15 +2278,13 @@ void Sbar_MiniDeathmatchOverlay (void) tm = teams + k; // draw pings - Q_strncpyz (team, tm->team, sizeof(team)); - Draw_FunStringLen (x, y, team, 4); + Draw_FunStringLen (x, y, tm->team, 4); // draw total sprintf (num, "%5i", tm->frags); Draw_FunString(x + 40, y, num); - if (!strncmp(Info_ValueForKey(cl.players[cl.playernum[0]].userinfo, - "team"), tm->team, 16)) { + if (!strncmp(cl.players[cl.playernum[0]].team, tm->team, 16)) { Draw_Character ( x - 8, y, 16); Draw_Character ( x + 32, y, 17); } diff --git a/engine/client/snd_sdl.c b/engine/client/snd_sdl.c index b034f296b..eb080cac6 100644 --- a/engine/client/snd_sdl.c +++ b/engine/client/snd_sdl.c @@ -97,7 +97,7 @@ Con_Printf("SDL AUDIO INITING\n"); return false; } sc->sn.numchannels = obtained.channels; - sc->sn.speed = desired.freq; + sc->sn.speed = obtained.freq; sc->sn.samplebits = 16; sc->sn.samples = SOUND_BUFFER_SIZE; sc->sn.buffer = malloc(SOUND_BUFFER_SIZE*sc->sn.samplebits/8); diff --git a/engine/client/zqtp.c b/engine/client/zqtp.c index 4f29fd80e..38648fb38 100644 --- a/engine/client/zqtp.c +++ b/engine/client/zqtp.c @@ -1745,19 +1745,22 @@ int TP_CountPlayers (void) return count; } +char *TP_PlayerTeam (void) +{ + return cl.players[cl.playernum[SP]].team; +} + char *TP_EnemyTeam (void) { int i; - char myteam[MAX_INFO_KEY]; static char enemyteam[MAX_INFO_KEY]; - - strcpy (myteam, Info_ValueForKey(cls.userinfo, "team")); + char *myteam = TP_PlayerTeam(); for (i = 0; i < MAX_CLIENTS ; i++) { if (cl.players[i].name[0] && !cl.players[i].spectator) { - strcpy (enemyteam, Info_ValueForKey(cl.players[i].userinfo, "team")); - if (strcmp(myteam, enemyteam) != 0) + strcpy (enemyteam, cl.players[i].team); + if (strcmp(myteam, cl.players[i].team) != 0) return enemyteam; } } @@ -1766,30 +1769,22 @@ char *TP_EnemyTeam (void) char *TP_PlayerName (void) { - static char myname[MAX_INFO_KEY]; - strcpy (myname, Info_ValueForKey(cl.players[cl.playernum[SP]].userinfo, "name")); - return myname; + return cl.players[cl.playernum[SP]].name; } -char *TP_PlayerTeam (void) -{ - static char myteam[MAX_INFO_KEY]; - strcpy (myteam, Info_ValueForKey(cl.players[cl.playernum[SP]].userinfo, "team")); - return myteam; -} char *TP_EnemyName (void) { int i; char *myname; - static char enemyname[MAX_INFO_KEY]; + static char enemyname[MAX_SCOREBOARDNAME]; myname = TP_PlayerName (); for (i = 0; i < MAX_CLIENTS ; i++) { if (cl.players[i].name[0] && !cl.players[i].spectator) { - strcpy (enemyname, Info_ValueForKey(cl.players[i].userinfo, "name")); + strcpy (enemyname, cl.players[i].name); if (!strcmp(enemyname, myname)) return enemyname; } @@ -1975,9 +1970,9 @@ int TP_CategorizeMessage (char *s, int *offset, player_info_t **plr) for (i=0, player=cl.players ; i < MAX_CLIENTS ; i++, player++) { - if (!player->name[0]) + name = player->name; + if (!(*name)) continue; - name = Info_ValueForKey (player->userinfo, "name"); len = strlen(name); // check messagemode1 if (len+2 <= msglen && s[len] == ':' && s[len+1] == ' ' &&