- const std::string operdata = IS_OPER(user) ? MapOperInfo(Current) : "";
- snprintf(text, 249, "%s (%s)%s%5d [%5.2f%%]%s", Current->GetName().c_str(), Current->GetID().c_str(), spacer, Current->GetUserCount(), percent, operdata.c_str());
- totusers += Current->GetUserCount();
- totservers++;
- strlcpy(&matrix[line][depth], text, 249);
- line++;
-
- for (unsigned int q = 0; q < Current->ChildCount(); q++)
- {
- if ((Current->GetChild(q)->Hidden) || ((Utils->HideULines) && (ServerInstance->ULine(Current->GetChild(q)->GetName().c_str()))))
- {
- if (IS_OPER(user))
- {
- ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!IS_OPER(user))) ? depth : depth+2,matrix,totusers,totservers);
- }
- }
- else
- {
- ShowMap(Current->GetChild(q),user,(Utils->FlatLinks && (!IS_OPER(user))) ? depth : depth+2,matrix,totusers,totservers);
- }
+ if (IS_OPER(user) || !Utils->FlatLinks)
+ depth = depth + 2;
+ for (unsigned int q = 0; q < Current->ChildCount(); q++)
+ {
+ TreeServer* child = Current->GetChild(q);
+ if (!IS_OPER(user)) {
+ if (child->Hidden)
+ continue;
+ if ((Utils->HideULines) && (ServerInstance->ULine(child->GetName().c_str())))
+ continue;