/* ==================== LAN_CompareServers ==================== */ static int LAN_CompareServers( int source, int sortKey, int sortDir, int s1, int s2 ) { int res; serverInfo_t *server1, *server2; server1 = LAN_GetServerPtr( source, s1 ); server2 = LAN_GetServerPtr( source, s2 ); if ( !server1 || !server2 ) { return 0; } res = 0; switch ( sortKey ) { case SORT_HOST: res = Q_stricmp( server1->hostName, server2->hostName ); break; case SORT_MAP: res = Q_stricmp( server1->mapName, server2->mapName ); break; case SORT_CLIENTS: if ( server1->clients < server2->clients ) { res = -1; } else if ( server1->clients > server2->clients ) { res = 1; } else { res = 0; } break; case SORT_GAME: if ( server1->gameType < server2->gameType ) { res = -1; } else if ( server1->gameType > server2->gameType ) { res = 1; } else { res = 0; } break; case SORT_PING: if ( server1->ping < server2->ping ) { res = -1; } else if ( server1->ping > server2->ping ) { res = 1; } else { res = 0; } break; } if ( sortDir ) { if ( res < 0 ) { return 1; } if ( res > 0 ) { return -1; } return 0; } return res; }
/* ==================== LAN_CompareServers ==================== */ static int LAN_CompareServers( int source, int sortKey, int sortDir, int s1, int s2 ) { int res; serverInfo_t *server1, *server2; server1 = LAN_GetServerPtr(source, s1); server2 = LAN_GetServerPtr(source, s2); if (!server1 || !server2) { return 0; } res = 0; switch( sortKey ) { case SORT_HOST: { char hostName1[ MAX_HOSTNAME_LENGTH ]; char hostName2[ MAX_HOSTNAME_LENGTH ]; char *p; int i; for( p = server1->hostName, i = 0; *p != '\0'; p++ ) { if( Q_isalpha( *p ) ) hostName1[ i++ ] = *p; } hostName1[ i ] = '\0'; for( p = server2->hostName, i = 0; *p != '\0'; p++ ) { if( Q_isalpha( *p ) ) hostName2[ i++ ] = *p; } hostName2[ i ] = '\0'; res = Q_stricmp( hostName1, hostName2 ); } break; case SORT_MAP: res = Q_stricmp( server1->mapName, server2->mapName ); break; case SORT_CLIENTS: if (server1->clients < server2->clients) { res = -1; } else if (server1->clients > server2->clients) { res = 1; } else { res = 0; } break; case SORT_PING: case 4: // Hack to make 1.1 ui work if (server1->ping < server2->ping) { res = -1; } else if (server1->ping > server2->ping) { res = 1; } else { res = 0; } break; } if (sortDir) { if (res < 0) return 1; if (res > 0) return -1; return 0; } return res; }
/* ==================== LAN_CompareServers ==================== */ static int LAN_CompareServers(int source, int sortKey, int sortDir, int s1, int s2) { int res; serverInfo_t *server1, *server2; char name1[MAX_NAME_LENGTH], name2[MAX_NAME_LENGTH]; server1 = LAN_GetServerPtr(source, s1); server2 = LAN_GetServerPtr(source, s2); if(!server1 || !server2) { return 0; } res = 0; switch (sortKey) { case SORT_HOST: //% res = Q_stricmp( server1->hostName, server2->hostName ); Q_strncpyz(name1, server1->hostName, sizeof(name1)); Q_CleanStr(name1); Q_strncpyz(name2, server2->hostName, sizeof(name2)); Q_CleanStr(name2); res = Q_stricmp(name1, name2); break; case SORT_MAP: res = Q_stricmp(server1->mapName, server2->mapName); break; case SORT_CLIENTS: if(server1->clients < server2->clients) { res = -1; } else if(server1->clients > server2->clients) { res = 1; } else { res = 0; } break; case SORT_GAME: if(server1->gameType < server2->gameType) { res = -1; } else if(server1->gameType > server2->gameType) { res = 1; } else { res = 0; } break; case SORT_PING: if(server1->ping < server2->ping) { res = -1; } else if(server1->ping > server2->ping) { res = 1; } else { res = 0; } break; } if(sortDir) { if(res < 0) { return 1; } if(res > 0) { return -1; } return 0; } return res; }