update to display vote counts instead of names

This commit is contained in:
jenz 2023-02-08 19:20:06 +01:00
parent ade335943b
commit f3792affba

View File

@ -727,45 +727,77 @@ void AttemptAdminRemoveMap(int client, const char[] filter = "")
bool PopulateNominateListMenu(Menu menu, int client, const char[] filter = "") bool PopulateNominateListMenu(Menu menu, int client, const char[] filter = "")
{ {
int arraySize = ByteCountToCells(PLATFORM_MAX_PATH); int arraySize = ByteCountToCells(PLATFORM_MAX_PATH);
ArrayList MapList = CreateArray(arraySize); ArrayList MapList = CreateArray(arraySize);
ArrayList OwnerList = CreateArray(); ArrayList OwnerList = CreateArray();
GetNominatedMapList(MapList, OwnerList); GetNominatedMapList(MapList, OwnerList);
if(!GetArraySize(MapList)) if(!GetArraySize(MapList))
{ {
delete MapList; delete MapList;
delete OwnerList; delete OwnerList;
return false; return false;
} }
static char map[PLATFORM_MAX_PATH]; StringMap sm = new StringMap();
static char display[PLATFORM_MAX_PATH]; static char map[PLATFORM_MAX_PATH];
for(int i = 0; i < GetArraySize(MapList); i++) static char display[PLATFORM_MAX_PATH];
{ for(int i = 0; i < GetArraySize(MapList); i++)
GetArrayString(MapList, i, map, sizeof(map)); {
GetArrayString(MapList, i, map, sizeof(map));
if(!filter[0] || StrContains(map, filter, false) != -1) if(!filter[0] || StrContains(map, filter, false) != -1)
{ {
strcopy(display, sizeof(display), map); int nominate_count_for_particular_map = 0;
sm.GetValue(map, nominate_count_for_particular_map);
nominate_count_for_particular_map++;
sm.SetValue(map, nominate_count_for_particular_map, true);
}
}
for(int i = 0; i < GetArraySize(MapList); i++)
{
GetArrayString(MapList, i, map, sizeof(map));
bool VIPRestriction = GetMapVIPRestriction(map); if(!filter[0] || StrContains(map, filter, false) != -1)
if((VIPRestriction) && AreRestrictionsActive()) {
Format(display, sizeof(display), "%s (%T)", display, "VIP Nomination", client); int nominate_count_for_particular_map = 0;
sm.GetValue(map, nominate_count_for_particular_map);
if (nominate_count_for_particular_map == -1)
{
//we already displayed vote count for this particular map
continue;
}
strcopy(display, sizeof(display), map);
int owner = GetArrayCell(OwnerList, i); bool VIPRestriction = GetMapVIPRestriction(map);
if(!owner) if((VIPRestriction) && AreRestrictionsActive())
Format(display, sizeof(display), "%s (Admin)", display); Format(display, sizeof(display), "%s (%T)", display, "VIP Nomination", client);
else
Format(display, sizeof(display), "%s (%N)", display, owner);
AddMenuItem(menu, map, display); int owner = GetArrayCell(OwnerList, i);
} char spelling[8];
} if (nominate_count_for_particular_map == 1)
{
Format(spelling, sizeof(spelling), "Vote");
}
else
{
Format(spelling, sizeof(spelling), "Votes");
}
if(!owner)
Format(display, sizeof(display), "%s (Admin)", display);
else
Format(display, sizeof(display), "%s (%i %s)", display, nominate_count_for_particular_map, spelling);
nominate_count_for_particular_map = -1;
sm.SetValue(map, nominate_count_for_particular_map, true);
AddMenuItem(menu, map, display);
}
}
delete MapList; delete MapList;
delete OwnerList; delete OwnerList;
return true; delete sm;
return true;
} }
Menu BuildMapMenu(const char[] filter, int client) Menu BuildMapMenu(const char[] filter, int client)