Beispiel #1
0
bool ScriptInterface::LoadGlobalScripts()
{
	// Ignore this failure in tests
	if (!g_VFS)
		return false;

	// Load and execute *.js in the global scripts directory
	VfsPaths pathnames;
	vfs::GetPathnames(g_VFS, L"globalscripts/", L"*.js", pathnames);
	for (VfsPaths::iterator it = pathnames.begin(); it != pathnames.end(); ++it)
	{
		if (!LoadGlobalScriptFile(*it))
		{
			LOGERROR(L"LoadGlobalScripts: Failed to load script %ls", it->string().c_str());
			return false;
		}
	}

	return true;
}
Beispiel #2
0
bool CMapGeneratorWorker::LoadScripts(const std::wstring& libraryName)
{
    // Ignore libraries that are already loaded
    if (m_LoadedLibraries.find(libraryName) != m_LoadedLibraries.end())
    {
        return true;
    }

    // Mark this as loaded, to prevent it recursively loading itself
    m_LoadedLibraries.insert(libraryName);

    VfsPath path = L"maps/random/" + libraryName + L"/";
    VfsPaths pathnames;

    // Load all scripts in mapgen directory
    Status ret = vfs::GetPathnames(g_VFS, path, L"*.js", pathnames);
    if (ret == INFO::OK)
    {
        for (VfsPaths::iterator it = pathnames.begin(); it != pathnames.end(); ++it)
        {
            LOGMESSAGE(L"Loading map generator script '%ls'", it->string().c_str());

            if (!m_ScriptInterface->LoadGlobalScriptFile(*it))
            {
                LOGERROR(L"CMapGeneratorWorker::LoadScripts: Failed to load script '%ls'", it->string().c_str());
                return false;
            }
        }
    }
    else
    {
        // Some error reading directory
        wchar_t error[200];
        LOGERROR(L"CMapGeneratorWorker::LoadScripts: Error reading scripts in directory '%ls': %ls", path.string().c_str(), StatusDescription(ret, error, ARRAY_SIZE(error)));
        return false;
    }

    return true;
}
Beispiel #3
0
		bool LoadScripts(const std::wstring& moduleName)
		{
			// Ignore modules that are already loaded
			if (m_LoadedModules.find(moduleName) != m_LoadedModules.end())
				return true;

			// Mark this as loaded, to prevent it recursively loading itself
			m_LoadedModules.insert(moduleName);

			// Load and execute *.js
			VfsPaths pathnames;
			vfs::GetPathnames(g_VFS, L"simulation/ai/" + moduleName + L"/", L"*.js", pathnames);
			for (VfsPaths::iterator it = pathnames.begin(); it != pathnames.end(); ++it)
			{
				if (!m_ScriptInterface.LoadGlobalScriptFile(*it))
				{
					LOGERROR(L"Failed to load script %ls", it->string().c_str());
					return false;
				}
			}

			return true;
		}