Exemple #1
0
CResourceScript * CResourceBase::AddResourceFile( LPCTSTR pszName )
{
	ADDTOCALLSTACK("CResourceBase::AddResourceFile");
	ASSERT(pszName != NULL);
	// Is this really just a dir name ?

	TCHAR szName[_MAX_PATH];
	ASSERT(strlen(pszName) < COUNTOF(szName));
	strcpy(szName, pszName);

	TCHAR szTitle[_MAX_PATH];
	strcpy(szTitle, CScript::GetFilesTitle( szName ));

	if ( szTitle[0] == '\0' )
	{
		AddResourceDir( pszName );
		return NULL;
	}

	LPCTSTR pszExt = CScript::GetFilesExt( szTitle );
	if ( pszExt == NULL )
	{
		// No file extension provided, so append .scp to the filename
		strcat( szName, GRAY_SCRIPT );
		strcat( szTitle, GRAY_SCRIPT );
	}

	if ( ! strnicmp( szTitle, GRAY_FILE "tables", strlen(GRAY_FILE "tables")))
	{
		// Don't dupe this.
		return NULL;
	}

	// Try to prevent dupes
	CResourceScript * pNewRes = FindResourceFile(szTitle);
	if ( pNewRes )
		return( pNewRes );

	// Find correct path
	CScript s;
	if ( ! OpenResourceFind( s, szName ))
	{
		return( NULL );
	}

	pNewRes = new CResourceScript( s.GetFilePath() );
	m_ResourceFiles.Add(pNewRes);
	return( pNewRes );
}
Exemple #2
0
inline bool OpenResourceFile(
	std::ifstream& file,
	const std::string& category,
	const std::string& name,
	const char* ext
)
{
	return FindResourceFile(
		file,
		category,
		name,
		&ext,
		1
	) == 0;
}