/*=========================================================================
* LoadAni.h :       Header file for loading animations.
* This is a part of the Game project.
*
* Version                      1.0
* Creation date        18/10/96
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__LOADANI_H__)
#define __LOADANI_H__
 
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
 
#include "GAM/Header.h"
#include "GAM/GAMHandl.h"
 
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
 
/**** Animations scripts ****/
#define C_Section_AnimationHeader					"A3dHEADER"
#define C_Entry_FileVersion							"VersionNumber"
#define C_Entry_FileType							"FileType"
#define C_AnimationsFileType						"Animations"
 
#define C_Section_AnimationGeneral					"A3dAnimationGENERAL"
#define C_Entry_ActorName							"Actor"
#define C_Entry_AnimationName						"Animation"
#define C_Entry_NumberOfChannels					"NumberOfChannels"
#define C_Entry_NumberOfFrames						"NumberOfFrames"
#define C_Entry_NumberOfEvents						"NumberOfEvents" /* test events*/
/* MR1504*/
#define C_Entry_AnimationTranslationOffset			"AnimationTranslationOffset"
/* MR1804*/
#define C_Entry_AnimationSpeed						"AnimationSpeed"
/* MR0907*/
#define C_Entry_Compressed							"Compressed"
 
#define C_Section_AnimationFrame					"A3dAnimationFRAME"
#define C_Section_AnimationChannel					"A3dAnimationCHANNEL"
#define C_Entry_BankName							"Bank"
#define C_Entry_ObjectName							"Object"
#define C_Entry_Orientation							"Orientation"
#define C_Entry_Scale								"Scale"
#define C_Entry_Position							"Position"
#define C_Entry_Status								"Status"
#define C_Entry_ObjectType							"ObjectType"
/* MR2908*/
#define C_Entry_LightColorNearFar					"LightColorNearFar"
#define C_Entry_SpotLightLittleBigAlpha				"SpotLightLittleBigAlpha"
/* End MR2908*/
 
/* MR2307*/
#define C_Entry_ActiveStatus						"ActiveStatus"
 
/* tmp for Objects Tables Test DVD (Gizmo)*/
#define C_Entry_NumberInTable						"NumberInTable"
 
/* test events*/
#define C_Section_AnimationEvent					"A3dAnimationEVENT"
#define C_Entry_EventReference						"Reference"
#define C_Entry_EventDefinition						"Definition"
 
	/* Speed*/
#define C_Section_AnimationSpeedList				"SpeedsList"
#define C_Section_AnimationSpeed					"Speed"
#define C_Entry_RotationSpeed						"RotationSpeed"
#define C_Entry_TranslationSpeed					"TranslationSpeed"
#define C_Entry_Morphing							"Morphing"
 
/* SOUND 14/02/97*/
#define C_Entry_SoundEventReference					"LoadSoundEvent" 
/* SOUND fin*/
#define C_Entry_MechanicEventReference				"Type" 
#define C_Entry_GenericEventReference				"Data" 
/* MR1206*/
#define C_Entry_AnimReferenceChannel				"AnimReferenceChannel"
 
#define C_Section_HierarchiesList					"HierarchiesList"
#define C_Section_HIERARCHY							"A3dHIERARCHY"
#define C_Entry_ChannelAndFather					"ChannelAndFather"
 
#define C_Entry_StringTableAdd						"Add"
#define C_Entry_VerticesTableAdd					"Add"
#define C_Entry_QuaternionTableAdd					"Add"
#define C_Section_Channel							"Channel"
#define C_Section_Frame								"Frame"
#define C_Entry_LightColor							"LightColor"
#define C_Entry_LightNearFar						"LightNearFar"
#define C_Section_A3dStringsTable					"A3dStringsTable"
#define C_Section_A3dVertexesTable					"A3dVertexesTable"
#define C_Section_A3dQuaternionsTable				"A3dQuaternionsTable"
/* end test events*/
 
/*
 * Animations files script call-backs
 */
 
/*
 * Initialisation and access to link table for animation name storage
 */
extern void fn_vInitAnimationLinkTable( void );
extern void fn_vCloseAnimationLinkTable( void );
extern void fn_vDeleteAnimationLinkTable(unsigned char ucMin,unsigned char ucMax);
 
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table *fnp_stGetAnimationLinkTable( void );
#endif /* U64 */
 
extern void GAM_fn_vUpdateEventArrayOfAnimation(struct tdstAnim3d_* _p_stAnim, tdxHandleToObjectsTablesList _h_ObjectsTablesListElement);
extern void GAM_fn_vCreateEventArrayOfAnimation(struct tdstAnim3d_* _p_stAnim, tdxHandleToObjectsTablesList _h_ObjectsTablesListElement);
 
void fn_vAddAnimIntoA3bLinkTable(struct tdstAnim3d_* _p_stAnim, char* _szAnimFileName);
 
struct tdstAnim3d_* fn_p_stGetAnimIntoA3bLinkTable(char* _szAnimFileName);
 
 
#if defined(__cplusplus)
}
#endif /* __cplusplus */
 
#endif /* !__LOADANI_H__ */
