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

Function loopvj

source/src/serverbrowser.cpp:910–941  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

908 bool res = false;
909 loopv(servers) { servers[i]->favcat = -1; servers[i]->weight = 0; }
910 loopvj(favcats)
911 {
912 loopi(FC_NUM) { alx[i] = getalias(favcatargname(favcats[j], i)); alxn[i] = alx[i] ? atoi(alx[i]) : 0; }
913 favcattags.add(alx[FC_TAG]);
914 bool showonlythiscat = j == showonlyfavourites - 1;
915 char *keys = newstring(alx[FC_KEYS]), *b, *k = strtok_r(keys, sep, &b);
916 while(k)
917 {
918 loopv(servers)
919 {
920 serverinfo &si = *servers[i];
921 if(si.address.host == ENET_HOST_ANY || si.ping == 9999 || si.protocol != PROTOCOL_VERSION) continue;
922 if((!alxn[FC_IGNORE] || showonlythiscat) && favcatcheckkey(si, k))
923 {
924 si.weight += alxn[FC_WEIGHT];
925 res = true;
926 if(si.favcat == -1 || showonlythiscat)
927 {
928 si.favcat = j;
929 if(alxn[FC_ALPHA])
930 {
931 if(!si.bgcolor) si.bgcolor = new color;
932 new (si.bgcolor) color(((float)alxn[FC_RED])/100, ((float)alxn[FC_GREEN])/100, ((float)alxn[FC_BLUE])/100, ((float)alxn[FC_ALPHA])/100);
933 }
934 else DELETEP(si.bgcolor)
935 }
936 }
937 }
938 k = strtok_r(NULL, sep, &b);
939 }
940 delete[] keys;
941 }
942 loopv(servers) if(servers[i]->favcat == -1)
943 {
944 DELETEA(servers[i]->bgcolor);

Callers 2

loopvFunction · 0.70
serverskeyFunction · 0.70

Calls 3

newstringFunction · 0.85
strtok_rFunction · 0.85
addMethod · 0.45

Tested by

no test coverage detected