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

Function serverskey

source/src/serverbrowser.cpp:1169–1265  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1167}
1168
1169bool serverskey(void *menu, int code, bool isdown)
1170{
1171 int fk[] = { SDLK_1, SDLK_2, SDLK_3, SDLK_4, SDLK_5, SDLK_6, SDLK_7, SDLK_8, SDLK_9, SDLK_0 }, gogetem = 1;
1172 if(!isdown) return false;
1173 loopi(sizeof(fk)/sizeof(fk[0])) if(code == fk[i] && favcats.inrange(i))
1174 {
1175 int sel = ((gmenu *)menu)->menusel;
1176 loopvj(servers) if(menu && (servers[j]->menuline_from <= sel && servers[j]->menuline_to > sel))
1177 {
1178 string ak; ak[0] = '\0';
1179 const char *keyalias = favcatargname(favcats[i], FC_KEYS), *key = getalias(keyalias), *rest = favcatcheck(*servers[j], key, ak), *desc = getalias(favcatargname(favcats[i], FC_DESC));
1180 if(!desc) desc = "";
1181 if(*ak)
1182 { // server was automatically added to this favourite group, don't remove
1183 conoutf("server \"\fs%s\fr\" is in category '\fs%s\fr' because of key '%s', please remove manually", servers[j]->sdesc, desc, ak);
1184 }
1185 else if(rest)
1186 { // remove from favourite group
1187 conoutf("removing server \"\fs%s\fr\" from favourites category '\fs%s\fr' (rest '%s')", servers[j]->sdesc, desc, rest);
1188 alias(keyalias, rest);
1189 }
1190 else
1191 { // add IP:port to group
1192 defformatstring(text)("%s:%d", servers[j]->name, servers[j]->port);
1193 if(key && *key)
1194 {
1195 char *newkey = newstring(key, strlen(text) + 1 + strlen(key));
1196 strcat(newkey, " ");
1197 strcat(newkey, text);
1198 alias(keyalias, newkey);
1199 delete[] newkey;
1200 }
1201 else alias(keyalias, text);
1202 conoutf("adding server \"\fs%s\fr\" to favourites category '\fs%s\fr' (new '%s')", servers[j]->sdesc, desc, getalias(keyalias));
1203 }
1204 return true;
1205 }
1206 }
1207 switch(code)
1208 {
1209 case SDLK_LEFT:
1210 serversort = (serversort+NUMSERVSORT-1) % NUMSERVSORT;
1211 return true;
1212
1213 case SDLK_RIGHT:
1214 serversort = (serversort+1) % NUMSERVSORT;
1215 return true;
1216
1217 case SDLK_LEFTBRACKET:
1218 serverbrowseralternativeviews(-1);
1219 return true;
1220
1221 case SDLK_RIGHTBRACKET:
1222 serverbrowseralternativeviews(1);
1223 return true;
1224
1225 case SDLK_F5:
1226 updatefrommaster(&gogetem);

Callers

nothing calls this directly

Calls 12

favcatargnameFunction · 0.85
getaliasFunction · 0.85
favcatcheckFunction · 0.85
aliasFunction · 0.85
newstringFunction · 0.85
updatefrommasterFunction · 0.85
showmenuFunction · 0.85
inrangeMethod · 0.80
loopiFunction · 0.70
loopvjFunction · 0.70
conoutfFunction · 0.70

Tested by

no test coverage detected