I modified pugsetup to want multiple votes before the game starts but I found that the votes are only shown once.
PHP Code:
public int UntrustedAnglesMenuHandler(Menu menu, MenuAction action, int clientOrResult, int selection)
{
switch(action)
{
case MenuAction_Select:
{
int client = clientOrResult;
char info[5];
menu.GetItem(selection, info, sizeof(info));
if (StrEqual(info, "on"))
{
PugSetup_MessageToAll("%T", "UntrustedAnglesVoteOn", LANG_SERVER, client);
}
else if(StrEqual(info, "off"))
{
PugSetup_MessageToAll("%T", "UntrustedAnglesVoteOff", LANG_SERVER, client);
}
}
case MenuAction_VoteEnd:
{
int result = clientOrResult;
char info[5];
menu.GetItem(result, info, sizeof(info));
if (StrEqual(info, "on"))
{
PugSetup_MessageToAll("%T", "UntrustedAnglesOn", LANG_SERVER);
g_UntrustedAngles.BoolValue = true;
}
else if(StrEqual(info, "off"))
{
PugSetup_MessageToAll("%T", "UntrustedAnglesOff", LANG_SERVER);
g_UntrustedAngles.BoolValue = false;
}
if (g_AutoLive) {
CreateCountDown();
} else {
ChangeState(GameState_WaitingForStart);
CreateTimer(float(START_COMMAND_HINT_TIME), Timer_StartCommandHint);
GiveStartCommandHint();
}
}
case MenuAction_End:
{
CloseHandle(menu);
}
}
return 0;
}
public int BodyLeanMenuHandler(Menu menu, MenuAction action, int clientOrResult, int selection)
{
switch(action)
{
case MenuAction_Select:
{
int client = clientOrResult;
char info[5];
menu.GetItem(selection, info, sizeof(info));
if (StrEqual(info, "on"))
{
PugSetup_MessageToAll("%T", "BodyLeanVoteOn", LANG_SERVER, client);
}
else if(StrEqual(info, "off"))
{
PugSetup_MessageToAll("%T", "BodyLeanVoteOff", LANG_SERVER, client);
}
}
case MenuAction_VoteEnd:
{
int result = clientOrResult;
char info[5];
menu.GetItem(result, info, sizeof(info));
if (StrEqual(info, "on"))
{
PugSetup_MessageToAll("%T", "BodyLeanOn", LANG_SERVER);
g_BodyLean.BoolValue = true;
}
else if(StrEqual(info, "off"))
{
PugSetup_MessageToAll("%T", "BodyLeanOff", LANG_SERVER);
g_BodyLean.BoolValue = false;
}
}
case MenuAction_End:
{
CloseHandle(menu);
}
}
return 0;
}
public int ExtendedAnglesMenuHandler(Menu menu, MenuAction action, int clientOrResult, int selection)
{
switch(action)
{
case MenuAction_Select:
{
int client = clientOrResult;
char info[5];
menu.GetItem(selection, info, sizeof(info));
if (StrEqual(info, "on"))
{
PugSetup_MessageToAll("%T", "ExtendedAnglesVoteOn", LANG_SERVER, client);
}
else if(StrEqual(info, "off"))
{
PugSetup_MessageToAll("%T", "ExtendedAnglesVoteOff", LANG_SERVER, client);
}
}
case MenuAction_VoteEnd:
{
int result = clientOrResult;
char info[5];
menu.GetItem(result, info, sizeof(info));
if (StrEqual(info, "on"))
{
PugSetup_MessageToAll("%T", "ExtendedAnglesOn", LANG_SERVER);
g_ExtendedAngles.BoolValue = true;
}
else if(StrEqual(info, "off"))
{
PugSetup_MessageToAll("%T", "ExtendedAnglesOff", LANG_SERVER);
g_ExtendedAngles.BoolValue = false;
}
if (g_AutoLive) {
CreateCountDown();
} else {
ChangeState(GameState_WaitingForStart);
CreateTimer(float(START_COMMAND_HINT_TIME), Timer_StartCommandHint);
GiveStartCommandHint();
}
}
case MenuAction_End:
{
CloseHandle(menu);
}
}
return 0;
}
public void ReadyToStart(){
Call_StartForward(g_hOnReadyToStart);
Call_Finish();
Menu UntrustedAnglesMenu = new Menu(UntrustedAnglesMenuHandler);
UntrustedAnglesMenu.SetTitle("UntrustedAngles?");
UntrustedAnglesMenu.AddItem("off", "Disable");
UntrustedAnglesMenu.AddItem("on", "Enable");
UntrustedAnglesMenu.ExitButton = false;
UntrustedAnglesMenu.DisplayVoteToAll(10);
Menu BodyLeanMenu = new Menu(BodyLeanMenuHandler);
BodyLeanMenu.SetTitle("BodyLean(roll)?");
BodyLeanMenu.AddItem("off", "Disable");
BodyLeanMenu.AddItem("on", "Enable");
BodyLeanMenu.ExitButton = false;
BodyLeanMenu.DisplayVoteToAll(10);
Menu ExtendedAnglesMenu = new Menu(ExtendedAnglesMenuHandler);
ExtendedAnglesMenu.SetTitle("ExtendedAnglesFix?");
ExtendedAnglesMenu.AddItem("off", "Disable");
ExtendedAnglesMenu.AddItem("on", "Enable");
ExtendedAnglesMenu.ExitButton = false;
ExtendedAnglesMenu.DisplayVoteToAll(10);
}
static void GiveStartCommandHint() {
char startCmd[ALIAS_LENGTH];
FindAliasFromCommand("sm_start", startCmd);
PugSetup_MessageToAll("%t", "WaitingForStart", PugSetup_GetLeader(), startCmd);
}