/*******************************************************/
/**** For the structures and variables declarations ****/
/*******************************************************/
#define D_AnimEffect_StructureDefine
#define D_AnimEffect_VariableDefine
 
#include "ToolsCPA.h"
 
#include "Options/Options.h"
#include "Macros.h"
 
#include "Actions/AllActs.h"
 
#include "Structur/MemGame.h"
#include "Structur/ErrGame.h"
#include "Structur/Objects.h"
#include "Structur/GameScpt.h"
#include "Structur/StdObjSt.h"
#include "Structur/EngMode.h"
 
#include "Basic.h"
#include "ObjInit.h"
#include "ZeMem.h"
 
#include "ldt.h"
 
#define lTagShiftPhase	'hPtf'
#define lTagShiftMax		'aMtf'
#define lTagShiftPlus		'lPtf'
 
 
 
/*****************************************************************
Function name   : fn_iCreateAnimEffect
Description     : 
Author          : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date   : 13-Oct-98
Modified        : 
Return type     : int 
Argument        : LDT_tdst_Link *pLink
*****************************************************************/
int fn_iCreateAnimEffect( LDT_tdst_Link *pLink )
{
	MS_tdxHandleToAnimEffect h_AnimEffect;
	struct tdstEngineObject_ *p_stEngineObject = (struct tdstEngineObject_ *)pLink->pParent->pObject;
 
  MMG_fn_vBeginMemoryInfo (MMG_C_lTypeMiniStructure , MMG_C_lSubTypeAnimEffect , p_stEngineObject);
  h_AnimEffect = fn_h_AnimEffectRealAlloc();
  MMG_fn_vEndMemoryInfo ();
 
  p_stEngineObject->h_AnimEffect = h_AnimEffect;
 
	pLink->pObject = (void*)h_AnimEffect;
 
  return 0;
}
 
 
 
/*****************************************************************
Function name   : fn_iLoadAnimEffect
Description     : 
Author          : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date   : 13-Oct-98
Modified        : 
Return type     : int 
Argument        : LDT_tdst_Link *pLink
*****************************************************************/
int fn_iLoadAnimEffect( LDT_tdst_Link *pLink )
{
  LDT_tdeParseResult result=ParseResult_BeginSection;
	MS_tdxHandleToAnimEffect h_AnimEffect = (MS_tdxHandleToAnimEffect)pLink->pObject; 
  MTH3D_tdstVector stVector;
 
  while( result!=ParseResult_EndSection ) 
  {
  	result=LDT_GetNextEntry();
  	switch( result )
  	{
  	  case ParseResult_Entry: /* an entry */
  	  {
  	    char *szEntry=LDT_szGetEntryName();
  	    switch (*(long*)szEntry)
  	    {
 
  	      case  lTagShiftPhase : /*  */
  	      {
						MTH3D_M_vSetVectorElements(	&stVector,
							(float)atof(LDT_szGetParam(1)), (float)atof(LDT_szGetParam(2)), (float)atof(LDT_szGetParam(3)) );
						fn_vAnimEffectSetShiftPhase(h_AnimEffect, stVector);
 
  	      }
  	      break;
  	      case  lTagShiftMax : /*  */
  	      {
						MTH3D_M_vSetVectorElements(	&stVector,
							(float)atof(LDT_szGetParam(1)), (float)atof(LDT_szGetParam(2)), (float)atof(LDT_szGetParam(3)) );
						fn_vAnimEffectSetShiftMax(h_AnimEffect, stVector);
  	      }
  	      break;
  	      case  lTagShiftPlus : /*  */
  	      {
						MTH3D_M_vSetVectorElements(	&stVector,
							(float)atof(LDT_szGetParam(1)), (float)atof(LDT_szGetParam(2)), (float)atof(LDT_szGetParam(3)) );
						fn_vAnimEffectSetShiftPlus(h_AnimEffect, stVector);
  	      }
  	      break;
  	    }
  	  }
  	}
  }
 
  return 0;
}
 
