159 lines
6.0 KiB
C
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__ */
|