/*=========================================================================
* IPOLoad.h :       Header file for loading IPO
*
* Version                      1.0
* Creation date								 30/04/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__IPOLOAD_H__)
#define __IPOLOAD_H__
 
/* For DLL using these function :*/
#include "cpa_expt.h" 
 
 
/*****************************************************************************************/
/**** Below : macros used to read script.                                             ****/
/*****************************************************************************************/
#define C_GrandChildSection    ( 2)
#define C_ChildSection         ( 1)
#define C_ThisSection          ( 0)
#define C_ParentSection        (-1)
#define C_GrandParentSection   (-2)
 
#define C_GrandChildContext    ( 2)
#define C_ChildContext         ( 1)
#define C_ThisContext          ( 0)
#define C_ParentContext        (-1)
#define C_GrandParentContext   (-2)
 
#define M_IsTitle         (_eAction==SCR_EA_Anl_BeginSection)
#define M_IsEnd           (_eAction==SCR_EA_Anl_EndSection)
#define M_IsBegSubSection (_eAction==SCR_EA_Anl_BeginSubSection)
#define M_IsEndSubSection (_eAction==SCR_EA_Anl_EndSubSection)
#define M_IsEntry         (_eAction==SCR_EA_Anl_Entry)
 
#define M_ActionIs(szActionAsked) (!strcmpi(_p_szName,szActionAsked))
 
 
 
/**** IPO scripts ****/
#define C_Section_IPOHeader                 "IPO_HEADER"
#define C_Entry_FileVersion									"VersionNumber"
 
#define C_Section_IPOGeneral                "IPO"
#define C_Section_IPO_MirrorGeneral         "IPO_Mirror"
#define C_Entry_PO					                "PO"
#define C_Entry_RLI					                "RLI"
 
/*
 * Animations files script call-backs
 */
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue IPO_fn_eScriptCallBackHeader(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue IPO_fn_eScriptCallBackGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
 
/*BEGIN OS 06-Mar-98*/
extern CPA_EXPORT SCR_tde_Anl_ReturnValue IPO_fn_eScriptCallBackBinHeader(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
extern CPA_EXPORT SCR_tde_Anl_ReturnValue IPO_fn_eScriptCallBackBinGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
/*END OS 06-Mar-98*/
 
#endif /* U64 */
 
/*************************************************/
/********* global for IPO Link Table *************/
/*************************************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table IPO_g_stLinkTable;
#endif /* U64 */
/*************************************************/
 
/*
 * Initialisation and access to link table for IPO name storage
 */
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table *IPO_fn_p_stGetLinkTable(void);
#endif /* U64 */
extern CPA_EXPORT void IPO_fn_vInitLinkTable(void);
extern CPA_EXPORT void IPO_fn_vCloseLinkTable(void);
extern CPA_EXPORT void IPO_fn_vRegisterAllScriptSections(void);
 
extern CPA_EXPORT IPO_tdxHandleToInstanciatedPhysicalObject IPO_fn_xLoadInstanciatedPhysicalObject(char* _szSectionName);
 
/*BEGIN OS 06-Mar-98*/
extern CPA_EXPORT IPO_tdxHandleToInstanciatedPhysicalObject IPO_fn_xLoadBinInstanciatedPhysicalObject(char* _szSectionName);
/*END OS 06-Mar-98*/
/*
extern CPA_EXPORT void IPO_fn_vPrepareSaveBinaryBloc();
extern CPA_EXPORT unsigned long IPO_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
extern CPA_EXPORT void IPO_fn_vWriteAllIPOBinaryBlocs(char* _szBinaryFileName);
extern CPA_EXPORT unsigned long IPO_fn_ulReadBinaryBloc(char* _p_cLoadedBuffer,unsigned long _ulLoadedBufferSize);
extern CPA_EXPORT void IPO_fn_vReadAllIPOBinaryBlocs(char* _szBinaryFileName);
extern CPA_EXPORT void IPO_fn_vReadAllIPOBinaryBlocs2(char* _szBinaryFileName);
extern CPA_EXPORT void IPO_fn_vResolveBinaryBloc(unsigned long _ulAddress);
*/
 
/* !__IPOLOAD_H__ */
#endif 
