ALERROR CDesignCollection::BeginLoadAdventureDesc (SDesignLoadCtx &Ctx, CXMLElement *pDesc, bool bDefaultResource, CExternalEntityTable *pEntities)

//	BeginLoadAdventureDesc
//
//	Adds a new adventure extension to our internal list and sets Ctx.pExtension

	{
	ALERROR error;
	SExtensionDesc *pEntry;

	//	Load the structure

	if (error = LoadExtensionDesc(Ctx, pDesc, bDefaultResource, &pEntry))
		return error;

	pEntry->iType = extAdventure;
	pEntry->bEnabled = false;
	pEntry->bLoaded = false;
	pEntry->SetEntities(pEntities);

	//	Set context

	Ctx.pExtension = pEntry;
	Ctx.bLoadAdventureDesc = true;

	return NOERROR;
	}
ALERROR CDesignCollection::BeginLoadExtension (SDesignLoadCtx &Ctx, CXMLElement *pDesc, CExternalEntityTable *pEntities)

//	BeginLoadExtension
//
//	Adds a new extension to our internal list and sets Ctx.pExtension

	{
	ALERROR error;
	SExtensionDesc *pEntry;

	//	Load the structure

	if (error = LoadExtensionDesc(Ctx, pDesc, false, &pEntry))
		return error;

	pEntry->iType = extExtension;
	pEntry->bEnabled = true;
	pEntry->bLoaded = true;
	pEntry->SetEntities(pEntities);

	//	Set context

	Ctx.pExtension = pEntry;

	return NOERROR;
	}
ALERROR CDesignCollection::BeginLoadExtension (SDesignLoadCtx &Ctx, CXMLElement *pDesc)

//	BeginLoadExtension
//
//	Adds a new extension to our internal list and sets Ctx.pExtension

	{
	ALERROR error;
	SExtensionDesc *pEntry;

	//	Load the structure

	if (error = LoadExtensionDesc(Ctx, pDesc, &pEntry))
		return error;

	pEntry->iType = extExtension;
	pEntry->bEnabled = true;
	pEntry->bLoaded = true;

	//	Add it

	m_Extensions.AddEntry(pEntry->dwUNID, (CObject *)pEntry);

	//	Set context

	Ctx.pExtension = pEntry;

	return NOERROR;
	}