static char *VX_RemovePrefix(int player) { size_t skip; char *prefixes, *prefix, *name; if (amf_tracker_name_remove_prefixes.string[0] == 0) return cl.players[player].name; skip = 0; prefixes = Q_normalizetext(Q_strdup(amf_tracker_name_remove_prefixes.string)); prefix = strtok(prefixes, " "); name = Q_normalizetext(Q_strdup(cl.players[player].name)); while (prefix != NULL) { if (strlen(prefix) > skip && strlen(name) > strlen(prefix) && strncasecmp(prefix, name, strlen(prefix)) == 0) { skip = strlen(prefix); // remove spaces from the new start of the name while (name[skip] == ' ') skip++; // if it would skip the whole name, just use the whole name if (name[skip] == 0) { skip = 0; break; } } prefix = strtok(NULL, " "); } Q_free(prefixes); Q_free(name); return cl.players[player].name + skip; }
static char *VX_SkipCommonPrefix(int player) { size_t skip; char *prefixes, *prefix, *name; skip = 0; prefixes = Q_normalizetext(Q_strdup(amf_tracker_name_prefixes.string)); prefix = strtok(prefixes, " "); name = Q_normalizetext(Q_strdup(cl.players[player].name)); if (prefix == NULL) { // no prefixes defined by the user, search all players and remove the commont prefix size_t i; int j; unsigned players_left; players_left = 0xFFFF; players_left &= ~(1 << player); for (i = 0; i < strlen(cl.players[player].name); i++) { for (j = 0; j < MAX_CLIENTS; j++) { if ((players_left & (1 << j)) == 0) continue; if (cl.players[j].spectator) players_left &= ~(1 << j); if (strlen(cl.players[j].name) < i + 1 || cl.players[j].name[i] != cl.players[player].name[i]) players_left &= ~(1 << j); } if (players_left == 0) break; } skip = i; if (skip == strlen(cl.players[player].name)) skip = 0; } else { while (prefix != NULL) { if (strlen(name) > strlen(prefix) && strncasecmp(prefix, name, strlen(prefix)) == 0) { if (strlen(prefix) > skip) skip = strlen(prefix); } prefix = strtok(NULL, " "); } } Q_free(prefixes); Q_free(name); return cl.players[player].name + skip; }
void VX_TrackerTK_XvsY(int player, int killer, int weapon, int p_count, int p_icount, int k_count, int k_icount) { char outstring[MAX_TRACKER_MSG_LEN]=""; if (amf_tracker_frags.value == 2) { if (cl_useimagesinfraglog.integer) { snprintf(outstring, sizeof(outstring), "&c%s%s&r %s &c%s%s&r", TKColor(player), VX_Name(killer), GetWeaponName(weapon), TKColor(player), VX_Name(player)); Q_normalizetext(outstring); } else { snprintf(outstring, sizeof(outstring), "&r%s &c%s%s&r %s", VX_Name(killer), TKColor(player), GetWeaponName(weapon), VX_Name(player)); } } else if (cl.playernum == player || (player == Cam_TrackNum() && cl.spectator)) { snprintf(outstring, sizeof(outstring), "&c380Teammate&r %s &c900killed you\nTimes: %i\nTotal Teamkills: %i", cl.players[killer].name, p_icount, p_count); } else if (cl.playernum == killer || (killer == Cam_TrackNum() && cl.spectator)) { snprintf(outstring, sizeof(outstring), "&c900You killed &c380teammate&r %s\nTimes: %i\nTotal Teamkills: %i", cl.players[player].name, k_icount, k_count); } VX_TrackerAddText(outstring, tt_death); }
void VX_TrackerFragXvsY(int player, int killer, int weapon, int player_wcount, int killer_wcount) { char outstring[MAX_TRACKER_MSG_LEN]=""; if (amf_tracker_frags.value == 2) { if (cl_useimagesinfraglog.integer) { snprintf(outstring, sizeof(outstring), "&c%s%s&r %s &c%s%s&r", XvsYColor(player, killer), VX_Name(killer), GetWeaponName(weapon), XvsYColor(killer, player), VX_Name(player)); Q_normalizetext(outstring); } else { snprintf(outstring, sizeof(outstring), "&r%s &c%s%s&r %s", VX_Name(killer), XvsYColor(player, killer), GetWeaponName(weapon), VX_Name(player)); } } else if (cl.playernum == player || (player == Cam_TrackNum() && cl.spectator)) snprintf(outstring, sizeof(outstring), "&r%s &c900killed you&r\n%s deaths: %i", cl.players[killer].name, GetWeaponName(weapon), player_wcount); else if (cl.playernum == killer || (killer == Cam_TrackNum() && cl.spectator)) snprintf(outstring, sizeof(outstring), "&c900You killed &r%s\n%s kills: %i", cl.players[player].name, GetWeaponName(weapon), killer_wcount); if (cl.playernum == killer || (killer == Cam_TrackNum() && cl.spectator)) VX_OwnFragNew(cl.players[player].name); VX_TrackerAddText(outstring, tt_death); }
/* ================ Sys_Printf ================ */ void Sys_Printf (char *fmt, ...) { va_list argptr; char text[4096]; va_start (argptr,fmt); vsnprintf(text, sizeof(text), fmt, argptr); va_end (argptr); if (sys_nostdout.value) return; // normalize text before add to console. Q_normalizetext(text); fprintf(stdout, "%s", text); fflush(stdout); }
void VX_TrackerOddFrag(int player, int weapon, int wcount) { char outstring[MAX_TRACKER_MSG_LEN]=""; if (amf_tracker_frags.value == 2) { if (cl_useimagesinfraglog.integer) { snprintf(outstring, sizeof(outstring), "&c%s%s&r %s &c%s%s&r", OddFragColor(player), VX_Name(player), GetWeaponName(weapon), EnemyColor(), amf_tracker_string_enemy.string); Q_normalizetext(outstring); } else { snprintf(outstring, sizeof(outstring), "&r%s &c%s%s&r %s", VX_Name(player), OddFragColor(player), GetWeaponName(weapon), amf_tracker_string_enemy.string); } } else if (cl.playernum == player || (player == Cam_TrackNum() && cl.spectator)) snprintf(outstring, sizeof(outstring), "&c900You killed&r an enemy\n%s kills: %i", GetWeaponName(weapon), wcount); VX_TrackerAddText(outstring, tt_death); }
/* ================ Sys_Printf ================ */ void Sys_Printf (char *fmt, ...) { va_list argptr; unsigned char text[MAXCMDBUF]; unsigned char *p; if (( #ifdef _CONSOLE (int)sys_nostdout.value || #endif //_CONSOLE isdaemon) ) return; va_start (argptr, fmt); vsnprintf ((char *)text, MAXCMDBUF, fmt, argptr); va_end (argptr); // normalize text before add to console. Q_normalizetext(text); #ifndef _CONSOLE if (!isdaemon) ConsoleAddText((char *)text); #endif //_CONSOLE for (p = text; *p; p++) { #ifdef _CONSOLE if (!((int)sys_nostdout.value || isdaemon)) putc(*p, stdout); #endif //_CONSOLE } #ifdef _CONSOLE if (!((int)sys_nostdout.value || isdaemon)) fflush(stdout); #endif //_CONSOLE }
void VX_TrackerOddTeamkilled(int player, int weapon) { char outstring[MAX_TRACKER_MSG_LEN]=""; if (amf_tracker_frags.value == 2) { if (cl_useimagesinfraglog.integer) { snprintf(outstring, sizeof(outstring), "&c%s%s&r %s &c%s%s&r", TKColor(player), amf_tracker_string_teammate.string, GetWeaponName(weapon), TKColor(player), VX_Name(player)); Q_normalizetext(outstring); } else { snprintf(outstring, sizeof(outstring), "&r%s &c%s%s&r %s", amf_tracker_string_teammate.string, TKColor(player), GetWeaponName(weapon), VX_Name(player)); } } else if (cl.playernum == player || (player == Cam_TrackNum() && cl.spectator)) { snprintf(outstring, sizeof(outstring), "&c380Teammate &c900killed you&r"); } VX_TrackerAddText(outstring, tt_death); }
void VX_TrackerSuicide(int player, int weapon, int count) { char outstring[MAX_TRACKER_MSG_LEN]=""; if (amf_tracker_frags.value == 2) { if (cl_useimagesinfraglog.integer) { snprintf(outstring, sizeof(outstring), "&c%s%s&r %s&c%s%s&r", SuiColor(player), VX_Name(player), GetWeaponName(weapon), SuiColor(player), amf_tracker_string_suicides.string); Q_normalizetext(outstring); } else { snprintf(outstring, sizeof(outstring), "&r%s &c%s%s&r%s", VX_Name(player), SuiColor(player), GetWeaponName(weapon), amf_tracker_string_suicides.string); } } else if (cl.playernum == player || (player == Cam_TrackNum() && cl.spectator)) { snprintf(outstring, sizeof(outstring), "&c960You killed yourself&r\n%s suicides: %i", GetWeaponName(weapon), count); } VX_TrackerAddText(outstring, tt_death); }
BOOL CALLBACK DialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_INITDIALOG: HEdit1 = GetDlgItem(hwndDlg, IDC_EDIT1); HEdit2 = GetDlgItem(hwndDlg, IDC_EDIT2); SetFocus(HEdit2); // SendMessage(HEdit1, EM_LIMITTEXT, 1000, 0); HEdit1_size = SendMessage(HEdit1, EM_GETLIMITTEXT, 0, 0) + 1; HEdit1_buf = (char *) Q_malloc (HEdit1_size); //Sys_Printf("%d\n", HEdit1_size); break; case WM_CTLCOLORSTATIC: if ((HWND)lParam != HEdit1) break; SetTextColor((HDC)wParam, EditBoxColor); SetBkColor((HDC)wParam, EditBoxBgColor); return (LONG)g_hbrBackground; case WM_TRAY: switch (lParam) { case 515: ShowWindow(hwndDlg,SW_RESTORE); SetForegroundWindow(hwndDlg); RemoveNotifyIcon(); break; case 516: { static DWORD id; CreateThread(NULL, 0, TrackPopup, NULL, 0, &id); break; } } break; case WM_SIZE: // we don't care until window is fully created if (DlgHwnd == NULL) break; if ((int)wParam == SIZE_MINIMIZED) { ShowWindow(hwndDlg,SW_HIDE); ShowNotifyIcon(); } break; case WM_COMMAND: switch(LOWORD(wParam)) { case IDC_OK: { char str[1024]; SendMessage(HEdit2, WM_GETTEXT, (WPARAM)sizeof(str),(LPARAM)str); if (!str[0]) break; SendMessage(HEdit2, WM_SETTEXT, 0, (LPARAM)0); // normalize text before add to console. ConsoleAddText(Q_normalizetext(va("] %s\n", str))); Cbuf_AddText (str); Cbuf_AddText ("\n"); return TRUE; } case IDC_QUIT: Cbuf_AddText("quit\n"); return TRUE; case IDC_RESTORE: ShowWindow(hwndDlg,SW_RESTORE); RemoveNotifyIcon(); return TRUE; case IDC_CLEAR: SendMessage(HEdit1, WM_SETTEXT, 0, (LPARAM)0); SetFocus(HEdit2); break; } break; case WM_ACTIVATE: break; case WM_CLOSE: SV_Quit_f(); break; } return FALSE; }