Added checks to avoid crashing in some natives before map start (bug 5119, r=fyren).

This commit is contained in:
Nicholas Hastings
2011-10-11 22:50:21 -04:00
parent 45f68840ed
commit 67163e14e6
6 changed files with 30 additions and 2 deletions
+1 -1
View File
@@ -372,7 +372,7 @@ void CPlugin::Call_OnAllPluginsLoaded()
pFunction->Execute(&result);
}
if (g_OnMapStarted)
if (g_SourceMod.IsMapRunning())
{
if ((pFunction = m_pRuntime->GetFunctionByName("OnMapStart")) != NULL)
{
+5
View File
@@ -89,6 +89,11 @@ static cell_t GetGameTime(IPluginContext *pContext, const cell_t *params)
static cell_t CreateFakeClient(IPluginContext *pContext, const cell_t *params)
{
if (!g_SourceMod.IsMapRunning())
{
return pContext->ThrowNativeError("Cannot create fakeclient when no map is active");
}
char *netname;
pContext->LocalToString(params[1], &netname);
+5
View File
@@ -745,5 +745,10 @@ int SourceModBase::GetShApiVersion()
return api;
}
bool SourceModBase::IsMapRunning()
{
return g_OnMapStarted;
}
SMGlobalClass *SMGlobalClass::head = NULL;
+1
View File
@@ -135,6 +135,7 @@ public: // ISourceMod
const char *GetCoreConfigValue(const char *key);
int GetPluginId();
int GetShApiVersion();
bool IsMapRunning();
private:
CStack<CDataPack *> m_freepacks;
char m_SMBaseDir[PLATFORM_MAX_PATH];