reman3/Rayman_X/cpa/tempgrp/PCS/Specif/PhysColl.c

249 lines
11 KiB
C

/* ##C_FILE#
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
FILE : PhysColl.c
DESCRIPTION : Physical collide set module
VERSION : 1.00/Olivier Jourdan/Creation
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
*/
#define PCS_MAIN
#include "ACP_Base.h"
#include "GEO.h"
#include "PCS\PCS_Cst.h"
#include "PCS\PCS_Str.h"
#include "PCS\PCS_Mcr.h"
#include "PCS\PCS_Hdl.h"
#include "PCS\PCS_Prt.h"
#include "PCS\PCS_Fct.h"
/* ##F===================================================================================
NAME : PCS_fn_hCreatePhysicalCollideSet
DESCRIPTION : Create and init a Physical Collide Set structure
OUTPUT : handle to physical collide set
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
PCS_tdxHandleToPhysicalCollSet PCS_fn_hCreatePhysicalCollideSet()
{
tdstPhysicalCollSet * p_stPCS;
MMG_fn_vAddMemoryInfo (MMG_C_lTypePCS , MMG_C_lSubTypePCSStructure , NULL);
GEO_M_CPAMalloc(p_stPCS,tdstPhysicalCollSet *,sizeof(tdstPhysicalCollSet),E_uwGEONotEnoughtMemory);
p_stPCS->hZde = NULL;
p_stPCS->hZdm = NULL;
p_stPCS->hZdr = NULL;
p_stPCS->hZdd = NULL;
return( (PCS_tdxHandleToPhysicalCollSet)p_stPCS );
}
/* ##F===================================================================================
NAME : PCS_fn_hGetZddGeoObjOfPhysicalCollSet
DESCRIPTION : Get the Zdd in Physical Collide Set
INPUT : handle to phyical collide set
OUTPUT : handle of object Zdd
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
ACP_tdxHandleOfObject PCS_fn_hGetZddGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet)
{
return( PCS_M_hGetZddGeoObjOfPhysicalCollSet(_hPhyCollSet) );
}
/* ##F===================================================================================
NAME : PCS_fn_hGetZdeGeoObjOfPhysicalCollSet
DESCRIPTION : Get the Zde in Physical Collide Set
INPUT : handle to phyical collide set
OUTPUT : handle of object Zde
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
ACP_tdxHandleOfObject PCS_fn_hGetZdeGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet)
{
return( PCS_M_hGetZdeGeoObjOfPhysicalCollSet(_hPhyCollSet) );
}
/* ##F===================================================================================
NAME : PCS_fn_hGetZdrGeoObjOfPhysicalCollSet
DESCRIPTION : Get the Zdr in Physical Collide Set
INPUT : handle to phyical collide set
OUTPUT : handle of object Zdr
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
ACP_tdxHandleOfObject PCS_fn_hGetZdrGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet)
{
return( PCS_M_hGetZdrGeoObjOfPhysicalCollSet(_hPhyCollSet) );
}
/* ##F===================================================================================
NAME : PCS_fn_hGetZdmGeoObjOfPhysicalCollSet
DESCRIPTION : Get the Zdm in Physical Collide Set
INPUT : handle to phyical collide set
OUTPUT : handle of object Zdm
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
#ifndef _FIRE_DEADCODE_U64_
ACP_tdxHandleOfObject PCS_fn_hGetZdmGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet)
{
return( PCS_M_hGetZdmGeoObjOfPhysicalCollSet(_hPhyCollSet) );
}
#endif /* _FIRE_DEADCODE_U64_ */
/* ##F===================================================================================
NAME : PCS_fn_hGetGeoObjOfPhysicalCollSet
DESCRIPTION : Get the Zdx of type in Physical Collide Set
INPUT : zone type
handle to physical collide set
OUTPUT : handle of object Zdx
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
ACP_tdxHandleOfObject PCS_fn_hGetGeoObjOfPhysicalCollSet(unsigned char ucZoneType,PCS_tdxHandleToPhysicalCollSet _hPhyCollSet)
{
switch( ucZoneType )
{
case C_ucTypeZdd:
return( PCS_M_hGetZddGeoObjOfPhysicalCollSet(_hPhyCollSet) );
break;
case C_ucTypeZdm:
return( PCS_M_hGetZdmGeoObjOfPhysicalCollSet(_hPhyCollSet) );
break;
case C_ucTypeZdr:
return( PCS_M_hGetZdrGeoObjOfPhysicalCollSet(_hPhyCollSet) );
break;
case C_ucTypeZde:
return( PCS_M_hGetZdeGeoObjOfPhysicalCollSet(_hPhyCollSet) );
break;
default:
return NULL;
break;
}
}
/* ##F===================================================================================
NAME : PCS_fn_vSetZddGeoObjOfPhysicalCollSet
DESCRIPTION : Set the Zdd in Physical Collide Set
INPUT : handle to physical collide set
handle of object Zdd
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
void PCS_fn_vSetZddGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet,ACP_tdxHandleOfObject _hGeoObj)
{
PCS_M_vSetZddGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
}
/* ##F===================================================================================
NAME : PCS_fn_vSetZdeGeoObjOfPhysicalCollSet
DESCRIPTION : Set the Zde in Physical Collide Set
INPUT : handle to phyical collide set
handle of object Zde
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
void PCS_fn_vSetZdeGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet,ACP_tdxHandleOfObject _hGeoObj)
{
PCS_M_vSetZdeGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
}
/* ##F===================================================================================
NAME : PCS_fn_vSetZdmGeoObjOfPhysicalCollSet
DESCRIPTION : Set the Zdm in Physical Collide Set
INPUT : handle to phyical collide set
handle of object Zdm
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
void PCS_fn_vSetZdmGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet,ACP_tdxHandleOfObject _hGeoObj)
{
PCS_M_vSetZdmGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
}
/* ##F===================================================================================
NAME : PCS_fn_vSetZdrGeoObjOfPhysicalCollSet
DESCRIPTION : Set the Zdr in Physical Collide Set
INPUT : handle to phyical collide set
handle of object Zdr
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
void PCS_fn_vSetZdrGeoObjOfPhysicalCollSet(PCS_tdxHandleToPhysicalCollSet _hPhyCollSet,ACP_tdxHandleOfObject _hGeoObj)
{
PCS_M_vSetZdrGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
}
/* ##F===================================================================================
NAME : PCS_fn_vSetGeoObjOfPhysicalCollSet
DESCRIPTION : Set the Zdx in Physical Collide Set
INPUT : zone type
handle to phyical collide set
handle of object Zdx
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
#ifndef _FIRE_DEADCODE_U64_
void PCS_fn_vSetGeoObjOfPhysicalCollSet(unsigned char ucZoneType,PCS_tdxHandleToPhysicalCollSet _hPhyCollSet,ACP_tdxHandleOfObject _hGeoObj)
{
switch( ucZoneType )
{
case C_ucTypeZdd:
PCS_M_vSetZddGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
break;
case C_ucTypeZdm:
PCS_M_vSetZdmGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
break;
case C_ucTypeZdr:
PCS_M_vSetZdrGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
break;
case C_ucTypeZde:
PCS_M_vSetZdeGeoObjOfPhysicalCollSet(_hPhyCollSet,_hGeoObj);
break;
default:
break;
}
}
#endif /* _FIRE_DEADCODE_U64_ */
/* ##F===================================================================================
NAME : PCS_fn_vAddPhysicalCollSetToBoundingVolume
DESCRIPTION : Compute the bouding volume of the physical collide set
INPUT : handle to bounding volume
handle to physical collide set
=========================================================================================
CREATION : Olivier Jourdan
=======================================================================================*/
#ifndef _FIRE_DEADCODE_U64_
/*
void PCS_fn_vAddPhysicalCollSetToBoundingVolume(
ACP_tdxHandleOfObject _hBoundingVolume,
PCS_tdxHandleToPhysicalCollSet _hPhyCollSet)
{
if( PCS_M_hGetZddGeoObjOfPhysicalCollSet(_hPhyCollSet) )
GEO_fn_vAddObjectToBoundingVolume( PCS_M_hGetZddGeoObjOfPhysicalCollSet(_hPhyCollSet),_hBoundingVolume );
if( PCS_M_hGetZdeGeoObjOfPhysicalCollSet(_hPhyCollSet) )
GEO_fn_vAddObjectToBoundingVolume( PCS_M_hGetZddGeoObjOfPhysicalCollSet(_hPhyCollSet),_hBoundingVolume );
if( PCS_M_hGetZdrGeoObjOfPhysicalCollSet(_hPhyCollSet) )
GEO_fn_vAddObjectToBoundingVolume( PCS_M_hGetZddGeoObjOfPhysicalCollSet(_hPhyCollSet),_hBoundingVolume );
if( PCS_M_hGetZdmGeoObjOfPhysicalCollSet(_hPhyCollSet) )
GEO_fn_vAddObjectToBoundingVolume( PCS_M_hGetZddGeoObjOfPhysicalCollSet(_hPhyCollSet),_hBoundingVolume );
}
*/
#endif /* _FIRE_DEADCODE_U64_ */
/*-----------------------------------------------------------------------
************************************************************************
* Do not add anything after this block of comment
************************************************************************
*----------------------------------------------------------------------*/
#undef PCS_MAIN