reman3/Rayman_X/cpa/public/GAM/Actions/MSWay.h

159 lines
6.0 KiB
C

/*=========================================================================
* MSWay.h : MSWay's functions
* Version 1.0
* Creation date January 21,1997
* Revision date
*
* That file needs to be compatible for all platforms.
*
* (c) Ubi Studios 1996
*=======================================================================*/
#if !defined(__MSWay_H__)
#define __MSWay_H__
/******************************************/
#if _MSC_VER >= 1000
#pragma once
#endif /* _MSC_VER >= 1000 */
/******************************************/
#include "GAM/Header.h"
/*ANNECY JMD {*/
#include "AI/AIBASE/WP_Handl.h"
#include "AI/AIBASE/WPgraphe.h"
/*ENDANNECY JMD }*/
#undef EXTERN
#undef extern
#if !defined(D_MSWay_VariableDefine)
#define EXTERN extern
#else
#define EXTERN
#endif /* D_MSWay_VariableDefine */
#if defined(__cplusplus)
extern "C"
{
#endif /* __cplusplus */
/********************************************************************************/
/**** If we are int MSWay.c file, then, create the structures and variables ****/
/********************************************************************************/
#if defined(D_MSWay_StructureDefine)
/*
The MS for the ways only contains a dynamic array of way and the number of way in these array
The effective structure containing information on ways are described in waypoint.h
*/
typedef struct tdstMSWay_
{
WP_tdHandleOfGraph m_hPath ; /* path between two waypoints */
long m_lIndex ; /* index on the current waypoint in the list */
char m_bIsCircular;
} tdstMSWay;
#endif /* D_MSWay_StructureDefine */
/***********************/
/**** Handle define ****/
/***********************/
typedef struct tdstMSWay_ * MS_tdxHandleToMSWay;
/*
Misc definition :
*/
typedef unsigned char tduc_WayIndex;
/**** MSWay scripts ****/
#define C_SectionMSWayDescription "MSWay"
#define C_EntryMSWayChamp "Champ"
/* Invalid MSWayHandle :*/
#define MSWAY_M_hInvalidMsWayHandle ((MS_tdxHandleToMSWay)NULL)
/**** Put here all globals variables : ****/
/**** EXTERN typeofvar variable; ****/
/*******************************/
/**** Base functions define ****/
/*******************************/
/*
------------------------------------------------------------------------------------------
MACROS-FUNCTIONS DECLARATION:
------------------------------------------------------------------------------------------
*/
/* */
/* accessing to the MSWay from the EngineObject :*/
#define MSWAY_M_hGetMSWayFromEngineObject(_EngineObject)\
((_EngineObject)->h_MSWay)
/*
-----------------------------------------------------------------------------------------
FUNCTIONS DECLARATION:
------------------------------------------------------------------------------------------
*/
#if !defined(U64)
extern CPA_EXPORT SCR_tde_Anl_ReturnValue fn_eMSWayScriptCallBack(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction);
#endif /* U64 */
/*extern CPA_EXPORT void fn_vMSWaySaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject);*/
extern CPA_EXPORT unsigned long fn_ulMSWaySizeOf();
extern CPA_EXPORT void fn_vMSWayAlloc(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT MS_tdxHandleToMSWay fn_h_MSWayRealAlloc();
extern CPA_EXPORT void fn_vMSWayFree(struct tdstEngineObject_ *p_stObject);
extern CPA_EXPORT void fn_vMSWayInit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSWayDesinit(struct tdstEngineObject_ *p_stObject,enum tdeObjectTreeInit_ eObjectInit);
extern CPA_EXPORT void fn_vMSWayCopyClone(struct tdstEngineObject_ * _p_stObjectDest,struct tdstEngineObject_ * _p_stObjectSrc);
extern CPA_EXPORT void fn_vWaypointSecondPass (void);
/*********************************/
/**** Misc functions define ****/
/*********************************/
/*NZO 25/09/97*/
#ifdef BIN_SaveBin
extern CPA_EXPORT unsigned long MSWay_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*NZO 25/09/97*/
#ifdef BIN_LoadBin
extern CPA_EXPORT void MSWay_fn_vReadBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer);
#endif
/*ANNECY JMD {*/
/*****************************************************************************
* manage graph ( the m_hPath member )
*****************************************************************************/
CPA_EXPORT void MSWay_fn_vInitPath (MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT void MSWay_fn_vDesinitPath(MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT void MSWay_fn_vSetPath(MS_tdxHandleToMSWay hWay, WP_tdHandleOfGraph hPath, char _bIsCircular);
CPA_EXPORT long MSWay_fn_lGetNumberWayPointInPath (MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT long MSWay_fn_lGetCurrentIndexInPath (MS_tdxHandleToMSWay hWay) ;
CPA_EXPORT long MSWay_fn_lGetLastIndexInPath (MS_tdxHandleToMSWay hWay) ;
/*ANNECY Bart#01 13/02/98 {*/
CPA_EXPORT long MSWay_fn_lGetFirstIndexInPath (MS_tdxHandleToMSWay hWay);
CPA_EXPORT long MSWay_fn_lSetCurrentIndexInPath (MS_tdxHandleToMSWay hWay, long _lIndex);
/*ENDANNECY Bart#01 }*/
/*ANNECY Bart#02 24/02/98 {*/
CPA_EXPORT long MSWay_fn_lLookForWPInMSWay(MS_tdxHandleToMSWay _hWay, WP_tdhWayPoint _hWayPoint);
/*ENDANNECY Bart#02 }*/
CPA_EXPORT long MSWay_fn_lIncrementCurrentIndexInPath (MS_tdxHandleToMSWay hWay, int iIncrement) ;
CPA_EXPORT WP_tdhWayPoint MSWay_fn_hGetWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex) ;
CPA_EXPORT WP_tdHandleOfGraph MSWay_fn_hGetPathFormPerso (HIE_tdxHandleToSuperObject hSuperObject) ;
/*ENDANNECY JMD }*/
CPA_EXPORT unsigned long MSWay_fn_ulGetCapsForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex) ;
CPA_EXPORT long MSWay_fn_lChangeCapsForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex, unsigned long ulNewCaps, long lValue) ;
CPA_EXPORT long MSWay_fn_lGetWeightForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex) ;
CPA_EXPORT long MSWay_fn_lChangeWeightForNextWayPointOfPath (MS_tdxHandleToMSWay hWay, int iIndex, long lWeight) ;
#if defined(__cplusplus)
}
#endif /* __cplusplus */
#endif /* __MSWay_H__ */