| 580 | */ |
| 581 | |
| 582 | int idServerScan::Cmp( const int *a, const int *b ) { |
| 583 | networkServer_t serv1, serv2; |
| 584 | idStr s1, s2; |
| 585 | int ret; |
| 586 | |
| 587 | serv1 = (*l_serverScan)[ *a ]; |
| 588 | serv2 = (*l_serverScan)[ *b ]; |
| 589 | switch ( l_serverScan->m_sort ) { |
| 590 | case SORT_PING: |
| 591 | ret = serv1.ping < serv2.ping ? -1 : ( serv1.ping > serv2.ping ? 1 : 0 ); |
| 592 | return ret; |
| 593 | case SORT_SERVERNAME: |
| 594 | serv1.serverInfo.GetString( "si_name", "", s1 ); |
| 595 | serv2.serverInfo.GetString( "si_name", "", s2 ); |
| 596 | return s1.IcmpNoColor( s2 ); |
| 597 | case SORT_PLAYERS: |
| 598 | ret = serv1.clients < serv2.clients ? -1 : ( serv1.clients > serv2.clients ? 1 : 0 ); |
| 599 | return ret; |
| 600 | case SORT_GAMETYPE: |
| 601 | serv1.serverInfo.GetString( "si_gameType", "", s1 ); |
| 602 | serv2.serverInfo.GetString( "si_gameType", "", s2 ); |
| 603 | return s1.Icmp( s2 ); |
| 604 | case SORT_MAP: |
| 605 | serv1.serverInfo.GetString( "si_mapName", "", s1 ); |
| 606 | serv2.serverInfo.GetString( "si_mapName", "", s2 ); |
| 607 | return s1.Icmp( s2 ); |
| 608 | case SORT_GAME: |
| 609 | serv1.serverInfo.GetString( "fs_game", "", s1 ); |
| 610 | serv2.serverInfo.GetString( "fs_game", "", s2 ); |
| 611 | return s1.Icmp( s2 ); |
| 612 | } |
| 613 | return 0; |
| 614 | } |
| 615 | |
| 616 | /* |
| 617 | ================ |
no test coverage detected