Show world record time in relevant menus. (#414)

This commit is contained in:
shavitush 2017-07-28 04:01:55 +03:00
parent 088f82996e
commit 0b7b92f94d
3 changed files with 82 additions and 13 deletions

View File

@ -90,6 +90,7 @@ bool gB_Late = false;
// modules // modules
bool gB_Zones = false; bool gB_Zones = false;
bool gB_WR = false;
// cvars // cvars
ConVar gCV_Autobhop = null; ConVar gCV_Autobhop = null;
@ -315,6 +316,7 @@ public void OnPluginStart()
} }
gB_Zones = LibraryExists("shavit-zones"); gB_Zones = LibraryExists("shavit-zones");
gB_WR = LibraryExists("shavit-wr");
} }
public void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue) public void OnConVarChanged(ConVar convar, const char[] oldValue, const char[] newValue)
@ -336,6 +338,11 @@ public void OnLibraryAdded(const char[] name)
{ {
gB_Zones = true; gB_Zones = true;
} }
else if(StrEqual(name, "shavit-wr"))
{
gB_WR = true;
}
} }
public void OnLibraryRemoved(const char[] name) public void OnLibraryRemoved(const char[] name)
@ -344,6 +351,11 @@ public void OnLibraryRemoved(const char[] name)
{ {
gB_Zones = false; gB_Zones = false;
} }
else if(StrEqual(name, "shavit-wr"))
{
gB_WR = false;
}
} }
public void OnAdminMenuReady(Handle topmenu) public void OnAdminMenuReady(Handle topmenu)
@ -599,7 +611,22 @@ public Action Command_Style(int client, int args)
else else
{ {
strcopy(sDisplay, 64, gS_StyleStrings[i][sStyleName]); float time = 0.0;
if(gB_WR)
{
Shavit_GetWRTime(i, time);
}
if(time > 0.0)
{
FormatEx(sDisplay, 64, "%s - WR: %.01f", gS_StyleStrings[i][sStyleName], time);
}
else
{
strcopy(sDisplay, 64, gS_StyleStrings[i][sStyleName]);
}
} }
menu.AddItem(sInfo, sDisplay, (gBS_Style[client] == i)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT); menu.AddItem(sInfo, sDisplay, (gBS_Style[client] == i)? ITEMDRAW_DISABLED:ITEMDRAW_DEFAULT);
@ -622,12 +649,12 @@ public Action Command_Style(int client, int args)
return Plugin_Handled; return Plugin_Handled;
} }
public int StyleMenu_Handler(Menu m, MenuAction action, int param1, int param2) public int StyleMenu_Handler(Menu menu, MenuAction action, int param1, int param2)
{ {
if(action == MenuAction_Select) if(action == MenuAction_Select)
{ {
char[] info = new char[16]; char[] info = new char[16];
m.GetItem(param2, info, 16); menu.GetItem(param2, info, 16);
int style = StringToInt(info); int style = StringToInt(info);
@ -641,7 +668,7 @@ public int StyleMenu_Handler(Menu m, MenuAction action, int param1, int param2)
else if(action == MenuAction_End) else if(action == MenuAction_End)
{ {
delete m; delete menu;
} }
return 0; return 0;

View File

@ -1201,8 +1201,8 @@ public Action Command_DeleteReplay(int client, int args)
return Plugin_Handled; return Plugin_Handled;
} }
Menu m = new Menu(DeleteReplay_Callback); Menu menu = new Menu(DeleteReplay_Callback);
m.SetTitle("%T", "DeleteReplayMenuTitle", client); menu.SetTitle("%T", "DeleteReplayMenuTitle", client);
for(int i = 0; i < gI_Styles; i++) for(int i = 0; i < gI_Styles; i++)
{ {
@ -1214,18 +1214,33 @@ public Action Command_DeleteReplay(int client, int args)
char[] sInfo = new char[4]; char[] sInfo = new char[4];
IntToString(i, sInfo, 4); IntToString(i, sInfo, 4);
m.AddItem(sInfo, gS_StyleStrings[i][sStyleName]); float time = 0.0;
Shavit_GetWRTime(i, time);
char[] sDisplay = new char[64];
if(time > 0.0)
{
FormatEx(sDisplay, 64, "%s - WR: %.01f", gS_StyleStrings[i][sStyleName], time);
}
else
{
strcopy(sDisplay, 64, gS_StyleStrings[i][sStyleName]);
}
menu.AddItem(sInfo, sDisplay);
} }
if(m.ItemCount == 0) if(menu.ItemCount == 0)
{ {
char[] sMenuItem = new char[64]; char[] sMenuItem = new char[64];
FormatEx(sMenuItem, 64, "%T", "ReplaysUnavailable", client); FormatEx(sMenuItem, 64, "%T", "ReplaysUnavailable", client);
m.AddItem("-1", sMenuItem); menu.AddItem("-1", sMenuItem);
} }
m.ExitButton = true; menu.ExitButton = true;
m.Display(client, 20); menu.Display(client, 20);
return Plugin_Handled; return Plugin_Handled;
} }
@ -1356,7 +1371,22 @@ Action OpenReplayMenu(int client)
char[] sInfo = new char[8]; char[] sInfo = new char[8];
IntToString(i, sInfo, 8); IntToString(i, sInfo, 8);
menu.AddItem(sInfo, gS_StyleStrings[i][sStyleName], (gI_FrameCount[i] > 0)? ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED); float time = 0.0;
Shavit_GetWRTime(i, time);
char[] sDisplay = new char[64];
if(time > 0.0)
{
FormatEx(sDisplay, 64, "%s - WR: %.01f", gS_StyleStrings[i][sStyleName], time);
}
else
{
strcopy(sDisplay, 64, gS_StyleStrings[i][sStyleName]);
}
menu.AddItem(sInfo, sDisplay, (gI_FrameCount[i] > 0)? ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);
} }
if(menu.ItemCount == 0) if(menu.ItemCount == 0)

View File

@ -1103,7 +1103,19 @@ Action ShowWRStyleMenu(int client)
char[] sInfo = new char[8]; char[] sInfo = new char[8];
IntToString(i, sInfo, 8); IntToString(i, sInfo, 8);
menu.AddItem(sInfo, gS_StyleStrings[i][sStyleName]); char[] sDisplay = new char[64];
if(gF_WRTime[i] > 0.0)
{
FormatEx(sDisplay, 64, "%s - WR: %.01f", gS_StyleStrings[i][sStyleName], gF_WRTime[i]);
}
else
{
strcopy(sDisplay, 64, gS_StyleStrings[i][sStyleName]);
}
menu.AddItem(sInfo, sDisplay, (gI_RecordAmount[i] > 0)? ITEMDRAW_DEFAULT:ITEMDRAW_DISABLED);
} }
// should NEVER happen // should NEVER happen