From cdb4b5746e80254c04789f5ffeed5dd285ff6e50 Mon Sep 17 00:00:00 2001 From: rtldg <55846624+rtldg@users.noreply.github.com> Date: Fri, 12 Nov 2021 22:31:40 +0000 Subject: [PATCH] add Shavit_GetMapsArrayList and Shavit_GetMapsStringMap --- .../scripting/include/shavit/mapchooser.inc | 16 +++++++++ .../sourcemod/scripting/shavit-mapchooser.sp | 36 +++++++++++++------ 2 files changed, 41 insertions(+), 11 deletions(-) diff --git a/addons/sourcemod/scripting/include/shavit/mapchooser.inc b/addons/sourcemod/scripting/include/shavit/mapchooser.inc index 6d7cd000e..79861a2e4 100644 --- a/addons/sourcemod/scripting/include/shavit/mapchooser.inc +++ b/addons/sourcemod/scripting/include/shavit/mapchooser.inc @@ -49,6 +49,20 @@ forward void SMC_OnUnRTV(int client); */ forward void SMC_OnSuccesfulRTV(); +/** + * Returns the ArrayList of maps currently on rotation. + * + * @return The ArrayList of Maps + */ +native ArrayList Shavit_GetMapsArrayList(); + +/** + * Returns the StringMap of maps currently on rotation. + * + * @return the StringMap of maps + */ +native StringMap Shavit_GetMapsStringMap(); + public SharedPlugin __pl_shavit_mapchooser = { name = "shavit-mapchooser", @@ -63,5 +77,7 @@ public SharedPlugin __pl_shavit_mapchooser = #if !defined REQUIRE_PLUGIN public void __pl_shavit_mapchooser_SetNTVOptional() { + MarkNativeAsOptional("Shavit_GetMapsArrayList"); + MarkNativeAsOptional("Shavit_GetMapsStringMap"); } #endif \ No newline at end of file diff --git a/addons/sourcemod/scripting/shavit-mapchooser.sp b/addons/sourcemod/scripting/shavit-mapchooser.sp index 7c855894e..f983e90d5 100644 --- a/addons/sourcemod/scripting/shavit-mapchooser.sp +++ b/addons/sourcemod/scripting/shavit-mapchooser.sp @@ -140,6 +140,9 @@ public Plugin myinfo = public APLRes AskPluginLoad2(Handle myself, bool late, char[] error, int err_max) { + CreateNative("Shavit_GetMapsArrayList", Native_GetMapsArrayList); + CreateNative("Shavit_GetMapsStringMap", Native_GetMapsStringMap); + g_hForward_OnRTV = CreateGlobalForward("SMC_OnRTV", ET_Event, Param_Cell); g_hForward_OnUnRTV = CreateGlobalForward("SMC_OnUnRTV", ET_Event, Param_Cell); g_hForward_OnSuccesfulRTV = CreateGlobalForward("SMC_OnSuccesfulRTV", ET_Event); @@ -1155,11 +1158,13 @@ public void LoadZonedMapsCallbackMixed(Database db, DBResultSet results, const c char map[PLATFORM_MAX_PATH]; + StringMap all_maps = new StringMap(); + for (int i = 0; i < g_aAllMapsList.Length; ++i) { g_aAllMapsList.GetString(i, map, sizeof(map)); LessStupidGetMapDisplayName(map, map, sizeof(map)); - g_mMapList.SetValue(map, i, true); + all_maps.SetValue(map, i, true); } int resultlength, mapsadded; @@ -1170,14 +1175,14 @@ public void LoadZonedMapsCallbackMixed(Database db, DBResultSet results, const c LowercaseString(map); int index; - if (g_mMapList.GetValue(map, index)) + if (all_maps.GetValue(map, index)) { g_aMapList.PushString(map); mapsadded++; } } - PrintToServer("Shavit-Mapchooser Query callback. Number of returned results: %i, Maps added to g_aMapList:%i, g_aAllMapsList.Length:%i, g_mMapList:%i", resultlength, mapsadded, g_aAllMapsList.Length, g_mMapList.Size); + PrintToServer("Shavit-Mapchooser Query callback. Number of returned results: %i, Maps added to g_aMapList:%i, g_aAllMapsList.Length:%i, all_maps:%i", resultlength, mapsadded, g_aAllMapsList.Length, all_maps.Size); CreateNominateMenu(); } @@ -1535,17 +1540,16 @@ void CreateNominateMenu() int tier = 0; tiersMap.GetValue(mapdisplay, tier); - if (min <= tier <= max) + if (!(min <= tier <= max)) { - char mapdisplay2[PLATFORM_MAX_PATH]; - FormatEx(mapdisplay2, sizeof(mapdisplay2), "%s | T%i", mapdisplay, tier); - g_hNominateMenu.AddItem(mapname, mapdisplay2, style); + continue; } + + Format(mapdisplay, sizeof(mapdisplay), "%s | T%d", mapdisplay, tier); } - else - { - g_hNominateMenu.AddItem(mapname, mapdisplay, style); - } + + g_hNominateMenu.AddItem(mapname, mapdisplay, style); + g_mMapList.SetValue(mapname, true); } delete tiersMap; @@ -2297,3 +2301,13 @@ void DebugPrint(const char[] message, any ...) } } } + +public any Native_GetMapsArrayList(Handle plugin, int numParams) +{ + return g_aMapList; +} + +public any Native_GetMapsStringMap(Handle plugin, int numParams) +{ + return g_mMapList; +}