MCPcopy Create free account
hub / github.com/assaultcube/AC / favcatcheckkey

Function favcatcheckkey

source/src/serverbrowser.cpp:808–846  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

806}
807
808bool favcatcheckkey(serverinfo &si, const char *key)
809{ // IP:port, #gamemode ,%mapname, desc
810 string text, keyuc;
811 if(isdigit(*key)) // IP
812 {
813 formatstring(text)("%s:%d", si.name, si.port);
814 return !strncmp(text, key, strlen(key));
815 }
816 else if(si.address.host != ENET_HOST_ANY && si.ping != 9999) switch(*key)
817 {
818 case '#':
819 return si.map[0] && si.mode == atoi(key + 1);
820 case '%':
821 strtoupper(text, si.map);
822 strtoupper(keyuc, key + 1);
823 return si.map[0] && key[1] && strstr(text, keyuc);
824 case '>':
825 return si.ping > atoi(key + 1);
826 case '!':
827 return !favcatcheckkey(si, key + 1);
828 case '+':
829 return si.map[0] && favcatcheckkey(si, key + 1);
830 case '$':
831 if(key[1])
832 {
833 formatstring(text)("%s \"%s\" %d %d %d %d %d \"%s\" %d %d", key + 1, si.map, si.mode, si.ping, si.minremain, si.numplayers, si.maxclients, si.name, si.port, si.pongflags);
834 filtertext(text, text, FTXT_NOCOLOR|FTXT_NOWHITE|FTXT_ALLOWBLANKS);
835 int cnt = 0;
836 for(const char *p = text; (p = strchr(p, '\"')); p++) cnt++;
837 return cnt == 4 && execute(text);
838 }
839 break;
840 default:
841 filtertext(text, si.sdesc, FTXT_NOCOLOR|FTXT_NOWHITE|FTXT_ALLOWBLANKS|(showonlyfavourites > 0 ? FTXT_TOUPPER : 0));
842 strtoupper(keyuc, key);
843 return *key && strstr(text, showonlyfavourites > 0 ? keyuc : key);
844 }
845 return false;
846}
847
848const char *favcatcheck(serverinfo &si, const char *ckeys, char *autokeys = NULL)
849{

Callers 2

favcatcheckFunction · 0.85
loopvFunction · 0.85

Calls 3

strtoupperFunction · 0.85
filtertextFunction · 0.85
executeFunction · 0.85

Tested by

no test coverage detected