From 997c7ebbcf2e76f8e1a18b14cfb9bf20f2da822e Mon Sep 17 00:00:00 2001 From: Asher Baker Date: Thu, 24 May 2012 16:07:28 +0100 Subject: [PATCH] Made clientprefs attempt to reconnect to the database on map change (bug 4745, r=dvander). --- extensions/clientprefs/extension.cpp | 13 +++++++++++++ extensions/clientprefs/extension.h | 2 ++ 2 files changed, 15 insertions(+) diff --git a/extensions/clientprefs/extension.cpp b/extensions/clientprefs/extension.cpp index a797ecdb..62605a23 100644 --- a/extensions/clientprefs/extension.cpp +++ b/extensions/clientprefs/extension.cpp @@ -202,6 +202,19 @@ void ClientPrefs::SDK_OnUnload() cookieMutex->DestroyThis(); } +void ClientPrefs::OnCoreMapStart(edict_t *pEdictList, int edictCount, int clientMax) +{ + if (Database == NULL && !databaseLoading) + { + g_pSM->LogMessage(myself, "Attempting to reconnect to database..."); + + databaseLoading = true; + + TQueryOp *op = new TQueryOp(Query_Connect, 0); + dbi->AddToThreadQueue(op, PrioQueue_High); + } +} + void ClientPrefs::DatabaseConnect() { char error[256]; diff --git a/extensions/clientprefs/extension.h b/extensions/clientprefs/extension.h index 22df6128..7421007e 100644 --- a/extensions/clientprefs/extension.h +++ b/extensions/clientprefs/extension.h @@ -87,6 +87,8 @@ public: const char *GetExtensionVerString(); const char *GetExtensionDateString(); + virtual void OnCoreMapStart(edict_t *pEdictList, int edictCount, int clientMax); + void DatabaseConnect(); bool AddQueryToQueue(TQueryOp *query);