From f9633a5f6fb0bd15003799598d55ac868a446152 Mon Sep 17 00:00:00 2001 From: Deathreus Date: Sun, 7 Mar 2021 07:54:27 -0500 Subject: [PATCH] Universalize a single call to srand() on map init (#1422) --- core/logic/ExtensionSys.cpp | 1 - core/logic/smn_menus.cpp | 1 - core/logic/smn_sorting.cpp | 4 ---- core/sourcemod.cpp | 3 +++ 4 files changed, 3 insertions(+), 6 deletions(-) diff --git a/core/logic/ExtensionSys.cpp b/core/logic/ExtensionSys.cpp index aef8a919..d1df7cfc 100644 --- a/core/logic/ExtensionSys.cpp +++ b/core/logic/ExtensionSys.cpp @@ -1174,7 +1174,6 @@ void CExtensionManager::OnRootConsoleCommand(const char *cmdname, const ICommand rootmenu->ConsolePrint(" -> %s", pPlugin->GetFilename()); } } - srand(static_cast(time(NULL))); pExt->unload_code = (rand() % 877) + 123; //123 to 999 rootmenu->ConsolePrint("[SM] To verify unloading %s, please use the following: ", pExt->GetFilename()); rootmenu->ConsolePrint("[SM] sm exts unload %d %d", num, pExt->unload_code); diff --git a/core/logic/smn_menus.cpp b/core/logic/smn_menus.cpp index e2570718..9c6c130b 100644 --- a/core/logic/smn_menus.cpp +++ b/core/logic/smn_menus.cpp @@ -485,7 +485,6 @@ void CMenuHandler::OnMenuVoteResults(IBaseMenu *menu, const menu_vote_result_t * if (num_items > 1) { /* Yes, we do. */ - srand(time(NULL)); winning_item = rand() % num_items; winning_item = results->item_list[winning_item].item; } else { diff --git a/core/logic/smn_sorting.cpp b/core/logic/smn_sorting.cpp index b67ae0fd..3499e4b5 100644 --- a/core/logic/smn_sorting.cpp +++ b/core/logic/smn_sorting.cpp @@ -91,8 +91,6 @@ enum SortOrder void sort_random(cell_t *array, cell_t size) { - srand((unsigned int)time(NULL)); - for (int i = size-1; i > 0; i--) { int n = rand() % (i + 1); @@ -442,8 +440,6 @@ void sort_adt_random(CellArray *cArray) { size_t arraysize = cArray->size(); - srand((unsigned int)time(NULL)); - for (int i = arraysize-1; i > 0; i--) { int n = rand() % (i + 1); diff --git a/core/sourcemod.cpp b/core/sourcemod.cpp index 7437edd8..75f0b14a 100644 --- a/core/sourcemod.cpp +++ b/core/sourcemod.cpp @@ -337,6 +337,9 @@ void SourceModBase::StartSourceMod(bool late) static bool g_LevelEndBarrier = false; bool SourceModBase::LevelInit(char const *pMapName, char const *pMapEntities, char const *pOldLevel, char const *pLandmarkName, bool loadGame, bool background) { + /* Seed rand() globally per map */ + srand(time(NULL)); + g_Players.MaxPlayersChanged(); /* If we're not loaded... */