/*=========================================================================
* POLoad.h :       Header file for loading PO
*
* Version                      1.0
* Creation date								 05/05/97
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1997
*=======================================================================*/
#if !defined(__POLOAD_H__)
#define __POLOAD_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))
 
 
 
/**** PO scripts ****/
#define C_Section_POHeader									"PHY_HEADER"
#define C_Entry_FileVersion									"VersionNumber"
 
#define C_Section_POGeneral									"PHY"
#define C_Entry_VS													"VS"			
#define C_Entry_CS													"CS"
#define C_Entry_BV													"BV"
 
/*
 * Animations files script call-backs
 */
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue PO_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 PO_fn_eScriptCallBackGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
 
extern CPA_EXPORT SCR_tde_Anl_ReturnValue PO_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 PO_fn_eScriptCallBackBinGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action	_eAction);
 
#endif /* U64 */
 
/*************************************************/
/********* global for PO Link Table *************/
/*************************************************/
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table PO_g_stLinkTable;
#endif /* U64 */
/*************************************************/
 
/*
 * Initialisation and access to link table for PO name storage
 */
#if !defined(U64)
extern CPA_EXPORT SCR_tdst_Link_Table *PO_fn_p_stGetLinkTable(void);
#endif /* U64 */
 
extern CPA_EXPORT void PO_fn_vInitLinkTable(void);
extern CPA_EXPORT void PO_fn_vCloseLinkTable(void);
extern CPA_EXPORT void PO_fn_vRegisterAllScriptSections(void);
 
/*
 * For the binary save
 */
extern CPA_EXPORT PO_tdxHandleToPhysicalObject CS_fn_xLoadPhysicalObject(char* _szSectionName);
// Shaitan => module list in the level
extern CPA_EXPORT PO_tdxHandleToPhysicalObject CS_fn_xFindPhysicalObject(char* _szSectionName);
// End Shaitan => module list in the level
/*
extern CPA_EXPORT PO_tdxHandleToPhysicalObject CS_fn_xLoadBinPhysicalObject(char* _szSectionName);
 
extern CPA_EXPORT void PO_fn_vPrepareSaveBinaryBloc();
extern CPA_EXPORT unsigned long PO_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
extern CPA_EXPORT void PO_fn_vWriteAllPOBinaryBlocs(char* _szBinaryFileName);
extern CPA_EXPORT unsigned long PO_fn_ulReadBinaryBloc(char* _p_cLoadedBuffer,unsigned long _ulLoadedBufferSize);
extern CPA_EXPORT void PO_fn_vReadAllPOBinaryBlocs(char* _szBinaryFileName);
extern CPA_EXPORT void PO_fn_vReadAllPOBinaryBlocs2(char* _szBinaryFileName);
extern CPA_EXPORT void PO_fn_vResolveBinaryBloc(unsigned long _ulAddress);
extern CPA_EXPORT void PO_fn_vResolveBinaryBlocPass2(unsigned long _ulAddress);
*/
 
/* !__POLOAD_H__ */
#endif 
