
///////////////////////////////////////////////////////////////////////////////
//
// File   : AVP_Blueprint_ParameterEnumerator_SkinAttachments.cpp
// Author : Andy Tate
// Date   : 23-Jan-2008
//
// Copyright (C) 2008 Rebellion, All Rights Reserved.
//
///////////////////////////////////////////////////////////////////////////////

////////////////////////////////////////////////////////////////////////////////
// Include files...
////////////////////////////////////////////////////////////////////////////////

#include "Core/Asura.h"

// This file's header...
#include "Blueprint/ParameterEnumerators/AVP_Blueprint_ParameterEnumerator_SkinAttachments.h"

// Asura independent header-files...
#include "Animation/Asura_Animation.h"
#include "Blueprint/Asura_Blueprint_System.h"

// Game independent header-files...
#include "Blueprint/AVP_Blueprint_HashIDs.h"
#include "Actor/AVP_Actor_AnimationHandler.h"
#include "Actor/AVP_Actor_AttachmentHandler.h"
#include "Entity/PhysicalObject/Actor/AVP_ClientEntity_Actor.h"

////////////////////////////////////////////////////////////////////////////////
// Constant declarations...
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
// Static variable declarations...
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
// Private functions...
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
// Protected functions...
////////////////////////////////////////////////////////////////////////////////


////////////////////////////////////////////////////////////////////////////////
// Public functions...
////////////////////////////////////////////////////////////////////////////////

AVP_Blueprint_ParameterEnumerator_SkinAttachments::AVP_Blueprint_ParameterEnumerator_SkinAttachments(Asura_Animation& xAnimation, AVP_ClientEntity_Actor& xActor)
: m_xAnimation(xAnimation)
, m_xActor(xActor)
{

}


////////////////////////////////////////////////////////////////////////////////
// Function     : AVP_Blueprint_ParameterEnumerator_SkinAttachments::BeginEnumeration
// Author       : Andy Tate
// Date         : 23-Jan-2008
////////////////////////////////////////////////////////////////////////////////

void AVP_Blueprint_ParameterEnumerator_SkinAttachments::BeginEnumeration(void)
{
}

/// End of function 'AVP_Blueprint_ParameterEnumerator_SkinAttachments::BeginEnumeration'. ///



////////////////////////////////////////////////////////////////////////////////
// Function     : AVP_Blueprint_ParameterEnumerator_SkinAttachments::Enumerate
// Author       : Andy Tate
// Date         : 23-Jan-2008
////////////////////////////////////////////////////////////////////////////////

bool AVP_Blueprint_ParameterEnumerator_SkinAttachments::Enumerate(const u_int uIndex,
																  char const* const szName,
																  const Asura_Value& xValue)
{
	const Asura_Hash_ID	uBlueprintHash	= xValue.GetHashIDValue();

	if(uBlueprintHash == ASURA_HASH_ID_UNSET)
	{
		return true; // we'll accept a null entry as valid
	}
	else
	{
		Asura_Blueprint* pxBlueprint = Asura_Blueprint_System::GetBlueprintByHashID(uAVP_BLUEPRINT_TYPE_ATTACHMENTS, uBlueprintHash);
		if(pxBlueprint)
		{
			if (m_xActor.GetAttachmentHandler())
			{
				return m_xActor.GetAttachmentHandler()->AddAttachment(pxBlueprint);
			} 
			else
			{
				Asura_Assert(0, "Hmm no attachment handler..");
				return false;
			}

		}
		else
		{
			Asura_Assertf(false, ("Failed to find blueprint 0x%08X for skin-attachments", uBlueprintHash));
			return(false);
		}
	}
}

/// End of function 'AVP_Blueprint_ParameterEnumerator_SkinAttachments::Enumerate'. ///



////////////////////////////////////////////////////////////////////////////////
// Function     : AVP_Blueprint_ParameterEnumerator_SkinAttachments::EndEnumeration
// Author       : Andy Tate
// Date         : 23-Jan-2008
////////////////////////////////////////////////////////////////////////////////

void AVP_Blueprint_ParameterEnumerator_SkinAttachments::EndEnumeration(const bool bSuccess)
{
}

/// End of function 'AVP_Blueprint_ParameterEnumerator_SkinAttachments::EndEnumeration'. ///


/// End of file. ///
