void kmatrix_redraw_coop() { int i, color; int sorted[MAX_PLAYERS]; multi_sort_kill_list(); grd_curcanv->cv_font = MEDIUM3_FONT; gr_string( 0x8000, FSPACY(10), "COOPERATIVE SUMMARY"); grd_curcanv->cv_font = GAME_FONT; multi_get_kill_list(sorted); kmatrix_draw_coop_names(sorted); for (i=0; i<N_players; i++ ) { color = sorted[i]; if (Players[sorted[i]].connected==CONNECT_DISCONNECTED) gr_set_fontcolor(gr_find_closest_color(31,31,31),-1); else gr_set_fontcolor(BM_XRGB(player_rgb[color].r,player_rgb[color].g,player_rgb[color].b),-1 ); kmatrix_draw_coop_item( i, sorted ); } gr_palette_load(gr_palette); }
void eraseignore_by_number (int ignorenum) { int ignoreloop; int player_list[MAX_NUM_NET_PLAYERS]; int n = multi_get_kill_list(player_list); if((ignorenum <= 0) || (ignorenum > n)) { hud_message(MSGC_GAME_FEEDBACK,"UNIGNOREN: Player number %d doesn't exist!",ignorenum); Network_message[0]=0; multi_message_index = 0; multi_sending_message = 0; return; } for (ignoreloop = 0; ignoreloop < MAX_IGNORE; ignoreloop++) { if(!strcmp(ignorelist[ignoreloop], Players[player_list[ignorenum - 1]].callsign)) { ignorelist[ignoreloop][0] = '\0'; hud_message(MSGC_GAME_FEEDBACK,"Now unignoring %s!", Players[player_list[ignorenum - 1]].callsign); Players[player_list[ignorenum - 1]].connected = 1; return; } } hud_message(MSGC_GAME_FEEDBACK,"Player %s not currently ignored!", Players[player_list[ignorenum - 1]].callsign); return; }
void kmatrix_redraw(kmatrix_screen *km) { int i, color; int sorted[MAX_PLAYERS]; gr_set_current_canvas(NULL); show_fullscr(&km->background); if(Netgame.FairColors) selected_player_rgb = player_rgb_all_blue; else if(Netgame.BlackAndWhitePyros) selected_player_rgb = player_rgb_alt; else selected_player_rgb = player_rgb; if (Game_mode & GM_MULTI_COOP) { kmatrix_redraw_coop(); } else { multi_sort_kill_list(); grd_curcanv->cv_font = MEDIUM3_FONT; if (Game_mode & GM_CAPTURE) gr_string( 0x8000, FSPACY(10), "CAPTURE THE FLAG SUMMARY"); else if (Game_mode & GM_HOARD) gr_string( 0x8000, FSPACY(10), "HOARD SUMMARY"); else gr_string( 0x8000, FSPACY(10), TXT_KILL_MATRIX_TITLE); grd_curcanv->cv_font = GAME_FONT; multi_get_kill_list(sorted); kmatrix_draw_names(sorted); for (i=0; i<N_players; i++ ) { if (Game_mode & GM_TEAM) color = get_team(sorted[i]); else color = sorted[i]; if (Players[sorted[i]].connected==CONNECT_DISCONNECTED) gr_set_fontcolor(gr_find_closest_color(31,31,31),-1); else gr_set_fontcolor(BM_XRGB(selected_player_rgb[color].r,selected_player_rgb[color].g,selected_player_rgb[color].b),-1 ); kmatrix_draw_item( i, sorted ); } } gr_palette_load(gr_palette); }
void addignore_by_number (int ignorenum) { int ignoreloop; int player_list[MAX_NUM_NET_PLAYERS]; int n = multi_get_kill_list(player_list); if((ignorenum <= 0) || (ignorenum > n)) { hud_message(MSGC_GAME_FEEDBACK,"IGNOREN: Player number %d doesn't exist!",ignorenum); Network_message[0]=0; multi_message_index = 0; multi_sending_message = 0; return; } for(ignoreloop = 0; ignoreloop < MAX_IGNORE; ignoreloop++) { if(!stricmp(Players[Player_num].callsign, Players[player_list[ignorenum - 1]].callsign)) { hud_message(MSGC_GAME_FEEDBACK,"You cannot ignore yourself!"); return; } if(!stricmp(ignorelist[ignoreloop], Players[player_list[ignorenum - 1]].callsign)) { hud_message(MSGC_GAME_FEEDBACK,"You've already ignored %s!", Players[player_list[ignorenum - 1]].callsign); return; } if(ignorelist[ignoreloop][0] == '\0') { strcpy(ignorelist[ignoreloop], Players[player_list[ignorenum - 1]].callsign); hud_message(MSGC_GAME_FEEDBACK,"Now ignoring %s!", Players[player_list[ignorenum - 1]].callsign); Network_message_reciever = 100; // Let everyone know that I'm ignoring someone... sprintf( Network_message, "I'm now ignoring %s!", Players[player_list[ignorenum - 1]].callsign); multi_send_message(); network_disconnect_player(player_list[ignorenum - 1]); return; } } hud_message(MSGC_GAME_FEEDBACK,"Ignore slots are full!"); return; }