reman3/Rayman_X/cpa/public/AI/AIBase/WPgraphe.h

240 lines
8.8 KiB
C

/* in order to compile AI in C++ and link with GAM in C*/
#if defined(__cplusplus)
extern "C"
{
#endif
#if !defined(__WPGRAPH_TYPES__)
#define __WPGRAPH_TYPES__
#if !defined(ONLY_TYPES)
#define WPGRAPH_UNDEF
#define ONLY_TYPES
#endif /* !ONLY_TYPES */
/*
------------------------------------------------------------------------------------------
INCLUDE FILES :
------------------------------------------------------------------------------------------
*/
#include "Acp_Base.h"
#include "SPO.h"
#include "MTH.h"
/*
----------------------------------------
File Name :
WP_Handl.h
----------------------------------------
Required for :
Defines waypoint handles.
----------------------------------------
*/
#include "WP_Handl.h"
#include "WP_Func.h"
#if defined(WPGRAPH_UNDEF)
#undef ONLY_TYPES
#undef WPGRAPH_UNDEF
#endif /* !WPWAYPT_UNDEF */
/*
------------------------------------------------------------------------------------------
TYPE AND STRUCTURE DEFINITION :
------------------------------------------------------------------------------------------
*/
/*#ifdef _WP_D_WPGRAPH_FRIEND_*/
LST2_M_DynamicUseListOf(WP_tdhGraphNode) ;
typedef struct WP_tdstGraphNode_ {
LST2_M_DynamicElementDeclaration(WP_tdhGraphNode)
WP_tdhWayPoint m_hWayPoint ; /* reference to the WayPoint */
long m_lTypeOfWP; /*BART*/
long m_lTypeOfWPInit; /*BART*/
WP_tdHandleOfListOfArc m_hListOfArc ; /* list of link of the node */
} WP_tdstGraphNode;
typedef struct WP_tdstGraph_ {
LST2_M_DynamicAnchorDeclaration(WP_tdhGraphNode) m_hListOfNode ;
#ifdef GAM_USE_SCRIPT
char* m_szNameOfGraph;
char* m_szReferenceSection;
#endif
} WP_tdstGraph;
/*#endif /* _WP_D_WPGRAPH_FRIEND_ */
#endif /* !__WPGRAPH_TYPES__ */
#if !defined(ONLY_TYPES)
#if !defined(__WPGRAPH_VARS__)
#define __WWPGRAPH_VARS__
#undef WP_WAYPOINT_EXTERN
#undef extern
#if !defined(WP_D_WPGRAPH_GLOBALS_)
#define WP_WAYPOINT_EXTERN extern
#else /* !WP_D_WPGRAPH_GLOBALS_ */
#define WP_WAYPOINT_EXTERN
#endif /* !WP_D_WPGRAPH_GLOBALS_ */
/*
------------------------------------------------------------------------------------------
VARIABLE DECLARATION :
<type> <variable name>
#if defined(WP_D_WAYPOINT_GLOBALS_)
= <initial values>
#endif
;
------------------------------------------------------------------------------------------
*/
/*
------------------------------------------------------------------------------------------
MACROS-CONSTANT DECLARATION:
------------------------------------------------------------------------------------------
*/
/* allready defined in WP_Handl.h
#define WP_C_hWayPointInvalid ((WP_tdhWayPoint)0)
*/
#undef extern
#endif /* !__WPWAYPT_VARS__ */
#if !defined (__WPGRAPH_PROTOS__)
#define __WPGRAPH_PROTOS__
/****************************************/
#if !defined(CPA_EXPORT)
#if defined(CPA_WANTS_IMPORT)
#define CPA_EXPORT __declspec(dllimport)
#elif defined(CPA_WANTS_EXPORT)
#define CPA_EXPORT __declspec(dllexport)
#else
#define CPA_EXPORT
#endif /*CPA_WANTS_IMPORT || CPA_WANTS_EXPORT*/
#endif /*CPA_EXPORT*/
/****************************************/
/*
------------------------------------------------------------------------------------------
MACROS-FUNCTIONS DECLARATION:
------------------------------------------------------------------------------------------
*/
/*
------------------------------------------------------------------------------------------
FUNCTIONS DECLARATION:
------------------------------------------------------------------------------------------
*/
/* list of graph */
CPA_EXPORT WP_tdHandleOfGraph WPG_fn_hGetGraph (char* _szName);
CPA_EXPORT void WPG_fn_vAddGlobalGraph(WP_tdHandleOfGraph hGraph) ;
CPA_EXPORT void WPG_fn_vDestroyAllGraph (void) ;
/* Graph managment */
/*CPA_EXPORT WP_tdHandleOfGraph WPG_fn_hCreate (void) ;*/
CPA_EXPORT WP_tdHandleOfGraph WPG_fn_hCreate (char* _szName, char* _szReference) ;
/*ROMTEAM Network (Gabriela Dumitrascu 15/03/98)*/
CPA_EXPORT char* WPG_fn_pGetNameOfGraph(WP_tdHandleOfGraph hGraph);
CPA_EXPORT void WPG_fn_vSetNameOfGraph(WP_tdHandleOfGraph hGraph, const char* _szName);
CPA_EXPORT char* WPG_fn_pGetReferenceSection(WP_tdHandleOfGraph hGraph);
CPA_EXPORT void WPG_fn_vSetReferenceSection(WP_tdHandleOfGraph hGraph, const char* _szReferenceSection);
CPA_EXPORT void WPG_fn_vCopy (WP_tdHandleOfGraph hDst,WP_tdHandleOfGraph hSrc);
/*ENDROMTEAM Network (Gabriela Dumitrascu)*/
CPA_EXPORT void WPG_fn_vDestroy (WP_tdHandleOfGraph hGraph) ;
CPA_EXPORT long WPG_fn_lAddWayPointIfNotExists (WP_tdHandleOfGraph _hGraph,
WP_tdhWayPoint _hWayPoint, long _lTypeOfWP); /*BART*/
CPA_EXPORT long WPG_fn_lAddWayPoint (WP_tdHandleOfGraph _hGraph,
WP_tdhWayPoint _hWayPoint, long _lTypeOfWP); /*BART*/
CPA_EXPORT long WPG_fn_lChangeTypeOfWP (WP_tdHandleOfGraph _hGraph, WP_tdhWayPoint _hWayPoint, long _lTypeOfWP); /* BART*/
CPA_EXPORT long WPG_fn_lRemoveWayPoint (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hWayPoint) ;
CPA_EXPORT long WPG_fn_lAddArcToWayPoint (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hSrcWayPoint,
WP_tdhWayPoint hDstWayPoint,
long lWeight, unsigned long ulCapability) ;
CPA_EXPORT long WPG_fn_lRemoveArcFromWayPoint (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hSrcWayPoint,
WP_tdhWayPoint hDstWayPoint ) ;
CPA_EXPORT long WPG_fn_lChangeLinkCapabilities (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hSrcWayPoint,
WP_tdhWayPoint hDstWayPoint,
unsigned long ulCapability, long lValue ) ;
CPA_EXPORT long WPG_fn_lGetLinkCapabilities (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hSrcWayPoint,
WP_tdhWayPoint hDstWayPoint,
unsigned long* p_ulCapability ) ;
CPA_EXPORT long WPG_fn_lChangeLinkWeight (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hSrcWayPoint,
WP_tdhWayPoint hDstWayPoint,
long lWeight) ;
CPA_EXPORT long WPG_fn_lGetLinkWeight (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hSrcWayPoint,
WP_tdhWayPoint hDstWayPoint,
long *p_lWeight ) ;
CPA_EXPORT void WPG_fn_vReinitGraph (WP_tdHandleOfGraph hGraph) ;
CPA_EXPORT WP_tdHandleOfGraph WPG_fn_lShortestPath (WP_tdHandleOfGraph hGraph,
WP_tdhWayPoint hSrcWayPoint,
WP_tdhWayPoint hDstWayPoint,
unsigned long ulCapability) ;
/*bart:*/
CPA_EXPORT WP_tdHandleOfGraph WPG_fn_lBuildOrderedPath(WP_tdHandleOfGraph hGraph, WP_tdhWayPoint hStartWP);
CPA_EXPORT WP_tdhWayPoint WPG_fn_hGetFirstWaypointOfGraph (WP_tdHandleOfGraph hGraph) ;
CPA_EXPORT WP_tdhWayPoint WPG_fn_hGetLastWaypointOfGraph (WP_tdHandleOfGraph hGraph) ;
CPA_EXPORT long WPG_fn_lNumberOfWaypointOfGraph (WP_tdHandleOfGraph hGraph) ;
CPA_EXPORT WP_tdhWayPoint WPG_fn_hGetWaypointOfGraph (WP_tdHandleOfGraph hGraph,
int iIndex, long* _plTypeOfWP) ; /*BART*/
CPA_EXPORT char *WPG_fn_szGetReferenceSection (WP_tdHandleOfGraph hGraph) ;
/* Graph node managment */
CPA_EXPORT WP_tdhGraphNode WPG_fn_hCreateNode (WP_tdhWayPoint _hWayPoint, long _lTypeOfWP); /*BART*/
CPA_EXPORT void WPG_fn_vDestroyNode (WP_tdhGraphNode hNode) ;
CPA_EXPORT void WPG_fn_vAddArc (WP_tdhGraphNode hSrcNode, WP_tdhGraphNode hDstNode,
unsigned long ulCapability, long lWeight) ;
CPA_EXPORT void WPG_fn_vRemoveArc (WP_tdhGraphNode hSrcNode,
WP_tdhGraphNode hDstNode ) ;
CPA_EXPORT WP_tdHandleOfListOfArc WPG_fn_hGetArcList (WP_tdhGraphNode hSrcNode) ;
CPA_EXPORT long WPG_fn_lChangeArcCapabilities (WP_tdhGraphNode hSrcNode, WP_tdhGraphNode hDstNode, unsigned long ulCapability, long lValue) ;
CPA_EXPORT long WPG_fn_lGetArcCapabilities (WP_tdhGraphNode hSrcNode, WP_tdhGraphNode hDstNode, unsigned long* p_ulCapability) ;
CPA_EXPORT long WPG_fn_lChangeArcWeight ( WP_tdhGraphNode hSrcNode, WP_tdhGraphNode hDstNode, long lWeight) ;
CPA_EXPORT long WPG_fn_lGetArcWeight ( WP_tdhGraphNode hSrcNode, WP_tdhGraphNode hDstNode, long *p_lWeight) ;
/*DMJ*/
/*ROMTEAM Networks (Gabriela Dumitrascu 05/03/98)*/
/* export link table */
CPA_EXPORT struct SCR_tdst_Link_Table_ *WPG_fnp_Graph_GetLinkTable (void);
/*ENDROMTEAM Networks (Gabriela Dumitrascu)*/
#endif /* !__WPGRAPH_PROTOS__ */
#endif /* !ONLY_TYPES */
/* in order to compile AI in C++ and link with GAM in C*/
#if defined(__cplusplus)
}
#endif