492 lines
19 KiB
C
492 lines
19 KiB
C
/*=========================================================================
|
|
* CSLoad.c : Loading CS Files
|
|
*
|
|
* Version 1.0
|
|
* Creation date 05/05/97
|
|
* Revision date
|
|
*
|
|
* That file needs to be compatible for all platforms.
|
|
*
|
|
* (c) Ubi Studios 1997
|
|
*=======================================================================*/
|
|
|
|
#define PO_FRIEND
|
|
#define PCS_FRIEND
|
|
#define PCS_MAIN
|
|
#include "ACP_Base.h"
|
|
|
|
#include "SCR.h"
|
|
#include "DPT.h"
|
|
#include "GEO.h"
|
|
#include "GLI.h"
|
|
#include "COL.h"
|
|
#include "SPO.h"
|
|
#include "PCS.h"
|
|
#include "PO.h"
|
|
//#include "BIN.h"
|
|
|
|
#include "ErmPO.h"
|
|
|
|
// global for CS Link Table
|
|
#if !defined(U64)
|
|
SCR_tdst_Link_Table CS_g_stLinkTable;
|
|
#endif /* U64 */
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : initialize and close link table for CS
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : 05/05/97 Author : Sebastien DAVID (Gïzmo)
|
|
*-----------------------------------------------------------------------------
|
|
* Modification date : Modification Author :
|
|
* Modifications :
|
|
*---------------------------------------------------------------------------*/
|
|
#if !defined(U64)
|
|
SCR_tdst_Link_Table *CS_fn_p_stGetLinkTable(void)
|
|
{
|
|
return(&CS_g_stLinkTable);
|
|
}
|
|
#endif /* U64 */
|
|
|
|
void CS_fn_vInitLinkTable(void)
|
|
{
|
|
#if !defined(U64)
|
|
SCR_fn_v_Link_InitTable(&CS_g_stLinkTable);
|
|
#endif /* U64 */
|
|
}
|
|
|
|
void CS_fn_vCloseLinkTable(void)
|
|
{
|
|
#if !defined(U64)
|
|
SCR_fn_v_Link_CloseTable(&CS_g_stLinkTable);
|
|
#endif /* U64 */
|
|
}
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : Used to register all script callback functions
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : 05/05/97 Author : Sebastien DAVID (Gïzmo)
|
|
*-----------------------------------------------------------------------------*/
|
|
void CS_fn_vRegisterAllScriptSections(void)
|
|
{
|
|
#if !defined(U64)
|
|
SCR_fn_v_RdL0_RegisterCallback(C_Section_CSHeader, CS_fn_eScriptCallBackHeader, SCR_CRC_c_RdL0_ForSection);
|
|
SCR_fn_v_RdL0_RegisterCallback(C_Section_CSGeneral, CS_fn_eScriptCallBackGeneral, SCR_CRC_c_RdL0_ForSection);
|
|
|
|
/* SCR_fn_v_RdL0_RegisterCallback(C_Section_CSHeader, CS_fn_eScriptCallBackBinHeader, SCR_CRC_c_RdL0_ForBinSection);
|
|
SCR_fn_v_RdL0_RegisterCallback(C_Section_CSGeneral, CS_fn_eScriptCallBackBinGeneral, SCR_CRC_c_RdL0_ForBinSection);
|
|
*/
|
|
#endif /* U64 */
|
|
}
|
|
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : call-back for header section of CS script file
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : 05/05/97 Author : Sebastien DAVID (Gïzmo)
|
|
*-----------------------------------------------------------------------------*/
|
|
#if !defined(U64)
|
|
SCR_tde_Anl_ReturnValue CS_fn_eScriptCallBackHeader(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction)
|
|
{
|
|
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
|
|
|
|
if ( M_IsEntry )
|
|
{
|
|
if ( M_ActionIs( C_Entry_FileVersion ) )
|
|
{
|
|
// not used yet
|
|
//gs_wCSFileVersion = (short)fn_lAToI( _ap_szParams[0] );
|
|
}
|
|
}
|
|
|
|
return ( eReturnValue );
|
|
}
|
|
#endif /* U64 */
|
|
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : call-back for general section of CS script file
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : 05/05/97 Author : Sebastien DAVID (Gïzmo)
|
|
*-----------------------------------------------------------------------------*/
|
|
#if !defined(U64)
|
|
SCR_tde_Anl_ReturnValue CS_fn_eScriptCallBackGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction)
|
|
{
|
|
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
|
|
PCS_tdxHandleToPhysicalCollSet _hCollideSet;
|
|
char sz_LongPathForLinkTable[256];
|
|
//SCR_tdst_Cxt_Values *p_stVal;
|
|
ACP_tdxHandleOfObject _hGeometricObject;
|
|
//char s[80];
|
|
|
|
|
|
if ( M_IsTitle )
|
|
{
|
|
_hCollideSet = PCS_fn_hCreatePhysicalCollideSet(1);
|
|
SCR_M_RdL0_SetSectionLong(C_ThisContext,0,_hCollideSet);
|
|
|
|
SCR_M_RdL0_ComputeOpenSectionNameR(0,sz_LongPathForLinkTable);
|
|
SCR_M_v_Link_SetAdditionalLong(SCR_fnp_st_Link_SetValue(&CS_g_stLinkTable,sz_LongPathForLinkTable,(unsigned long)_hCollideSet),1,strlen(sz_LongPathForLinkTable)-strlen(SCR_M_RdL0_GetCompleteSectionNameR(0)));
|
|
|
|
//SCR_fn_v_RdL0_ComputeSectionName(sz_LongPathForLinkTable,SCR_M_RdL0_GetOpenFileNameR(0),C_Section_CSGeneral,_p_szName);
|
|
/*
|
|
strcpy(sz_LongPathForLinkTable,fn_szGetLevelsDataPath());
|
|
strcat(sz_LongPathForLinkTable,"\\");
|
|
strcat(sz_LongPathForLinkTable,SCR_M_RdL0_GetCompleteSectionNameR(0));
|
|
*/
|
|
//SCR_fnp_st_Link_SetValue(&CS_g_stLinkTable, sz_LongPathForLinkTable, (unsigned long)_hCollideSet);
|
|
|
|
/*
|
|
strcpy(s,SCR_M_RdL0_GetCompleteSectionNameR(0));
|
|
strcat(s,"\n");
|
|
OutputDebugString(s);
|
|
*/
|
|
}
|
|
else if ( M_IsEntry )
|
|
{
|
|
if ( M_ActionIs( C_Entry_ZDR ) )
|
|
{
|
|
SCR_M_RdL0_GetSectionLong(C_ThisContext,0,PCS_tdxHandleToPhysicalCollSet,_hCollideSet);
|
|
|
|
/*p_stVal = SCR_fnp_st_RdL0_AnalyseSection(_ap_szParams[0], SCR_CDF_uw_Anl_Normal);
|
|
_hGeometricObject = (ACP_tdxHandleOfObject)SCR_M_ul_RdL0_ExtractLongValue(p_stVal,0);*/
|
|
_hGeometricObject = GLI_pLoadGeometricInFile(_ap_szParams[0]);
|
|
|
|
if ( _hGeometricObject->p_stOctree!=NULL&&GEO_fn_ucGetBlocNumberOf(_hGeometricObject)!=GEO_fn_ucGetBlocNumberOf(_hGeometricObject->p_stOctree)
|
|
||_hGeometricObject->p_stOctree==NULL&&GEO_fn_ucGetBlocNumberOf(_hGeometricObject)!=GEO_M_ucGetMemMallocMode())
|
|
{
|
|
M_POWarningErrorWithMessage(E_uwPOOctreeMustBeInFix,_p_stFile->a_szFileName);
|
|
|
|
_hGeometricObject->p_stOctree = NULL;
|
|
}
|
|
/* Computing Octree on ZDR (JO 23/09/97) */
|
|
COL_fn_bCreateOctree(_hGeometricObject,10,5,4);
|
|
PCS_fn_vSetZdrGeoObjOfPhysicalCollSet(_hCollideSet,_hGeometricObject);
|
|
|
|
}
|
|
else if ( M_ActionIs( C_Entry_ZDE ) )
|
|
{
|
|
SCR_M_RdL0_GetSectionLong(C_ThisContext,0,PCS_tdxHandleToPhysicalCollSet,_hCollideSet);
|
|
|
|
/*p_stVal = SCR_fnp_st_RdL0_AnalyseSection(_ap_szParams[0], SCR_CDF_uw_Anl_Normal);
|
|
_hGeometricObject = (ACP_tdxHandleOfObject)SCR_M_ul_RdL0_ExtractLongValue(p_stVal,0);*/
|
|
_hGeometricObject = GLI_pLoadGeometricInFile(_ap_szParams[0]);
|
|
PCS_fn_vSetZdeGeoObjOfPhysicalCollSet(_hCollideSet,_hGeometricObject);
|
|
|
|
}
|
|
else if ( M_ActionIs( C_Entry_ZDD ) )
|
|
{
|
|
SCR_M_RdL0_GetSectionLong(C_ThisContext,0,PCS_tdxHandleToPhysicalCollSet,_hCollideSet);
|
|
|
|
/*p_stVal = SCR_fnp_st_RdL0_AnalyseSection(_ap_szParams[0], SCR_CDF_uw_Anl_Normal);
|
|
_hGeometricObject = (ACP_tdxHandleOfObject)SCR_M_ul_RdL0_ExtractLongValue(p_stVal,0);*/
|
|
_hGeometricObject = GLI_pLoadGeometricInFile(_ap_szParams[0]);
|
|
PCS_fn_vSetZddGeoObjOfPhysicalCollSet(_hCollideSet,_hGeometricObject);
|
|
|
|
}
|
|
}
|
|
return ( eReturnValue );
|
|
}
|
|
#endif /* U64 */
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to load a Collide Set (script or binary load)
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
PCS_tdxHandleToPhysicalCollSet CS_fn_xLoadCollideSet(char* _szSectionName)
|
|
{
|
|
PCS_tdxHandleToPhysicalCollSet hCollideSet=NULL;
|
|
#if !defined(U64)
|
|
SCR_tdst_Cxt_Values *p_stValues;
|
|
SCR_tdst_Link_Value *p_stLinkValue;
|
|
unsigned int uiPos;
|
|
|
|
uiPos = 0;
|
|
SCR_M_DyAr_GetNextElement(SCR_tdst_Link_Value, uiPos, p_stLinkValue,SCR_M_st_Link_GetDynamicArray(&CS_g_stLinkTable));
|
|
while(p_stLinkValue)
|
|
{
|
|
if(!strcmpi(SCR_M_p_sz_Link_GetKey(p_stLinkValue) + SCR_M_ul_Link_GetAdditionalLong(p_stLinkValue,1),_szSectionName))
|
|
break;
|
|
uiPos++;
|
|
SCR_M_DyAr_GetNextElement(SCR_tdst_Link_Value, uiPos, p_stLinkValue,SCR_M_st_Link_GetDynamicArray(&CS_g_stLinkTable));
|
|
}
|
|
// p_stLinkValue=BIN_fn_p_stSearchShortKey(&CS_g_stLinkTable,_szSectionName);
|
|
if(p_stLinkValue==NULL)
|
|
{
|
|
p_stValues = SCR_fnp_st_RdL0_AnalyseSection(_szSectionName, SCR_CDF_uw_Anl_Normal);
|
|
hCollideSet = (PCS_tdxHandleToPhysicalCollSet)SCR_M_ul_RdL0_ExtractLongValue(p_stValues,0);
|
|
return hCollideSet;
|
|
}
|
|
else
|
|
return (PCS_tdxHandleToPhysicalCollSet)p_stLinkValue->ulValue;
|
|
#else /* U64 */
|
|
return hCollideSet;
|
|
#endif /* U64 */
|
|
}
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to prepare the binary save process
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
void CS_fn_vPrepareSaveBinaryBloc()
|
|
{
|
|
#if !defined(U64)
|
|
BIN_fn_vCreateBinaryIds(&CS_g_stLinkTable,BIN_C_CSID);
|
|
#endif // U64
|
|
GEO_fn_vPrepareSaveGeometricObjects();
|
|
}
|
|
*/
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to write a binary collide set
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
unsigned long CS_fn_ulWriteBinaryBloc(unsigned long _ulStructAddress, char* _p_cDestBuffer)
|
|
{
|
|
char* p_cBufferPointer=_p_cDestBuffer;
|
|
#if !defined(U64)
|
|
PCS_tdxHandleToPhysicalCollSet hCollideSet=(PCS_tdxHandleToPhysicalCollSet)_ulStructAddress;
|
|
|
|
p_cBufferPointer=BIN_fn_p_cPutPointer(p_cBufferPointer,(unsigned long)PCS_fn_hGetZdmGeoObjOfPhysicalCollSet(hCollideSet),GLI_p_stGetLinkTableOfGeometric());
|
|
p_cBufferPointer=BIN_fn_p_cPutPointer(p_cBufferPointer,(unsigned long)PCS_fn_hGetZddGeoObjOfPhysicalCollSet(hCollideSet),GLI_p_stGetLinkTableOfGeometric());
|
|
p_cBufferPointer=BIN_fn_p_cPutPointer(p_cBufferPointer,(unsigned long)PCS_fn_hGetZdeGeoObjOfPhysicalCollSet(hCollideSet),GLI_p_stGetLinkTableOfGeometric());
|
|
p_cBufferPointer=BIN_fn_p_cPutPointer(p_cBufferPointer,(unsigned long)PCS_fn_hGetZdrGeoObjOfPhysicalCollSet(hCollideSet),GLI_p_stGetLinkTableOfGeometric());
|
|
|
|
#endif // U64
|
|
return p_cBufferPointer-_p_cDestBuffer;
|
|
}
|
|
*/
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to write all the binary collide sets
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
void CS_fn_vWriteAllCSBinaryBlocs(char* _szBinaryFileName)
|
|
{
|
|
CS_fn_vPrepareSaveBinaryBloc();
|
|
#if !defined(U64)
|
|
BIN_fn_vPutBinaryDataIntoFileFromLinkTable(_szBinaryFileName,&CS_g_stLinkTable,
|
|
4*sizeof(ACP_tdxHandleOfObject),CS_fn_ulWriteBinaryBloc);
|
|
#endif // U64
|
|
}
|
|
*/
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to read a binary collide set
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
unsigned long CS_fn_ulReadBinaryBloc(char* _p_cLoadedBuffer,unsigned long _ulLoadedBufferSize)
|
|
{
|
|
ACP_tdxHandleOfObject hHandle;
|
|
PCS_tdxHandleToPhysicalCollSet hCollideSet;
|
|
char* p_cBufferPointer=_p_cLoadedBuffer;
|
|
|
|
// Allocation
|
|
hCollideSet = PCS_fn_hCreatePhysicalCollideSet();
|
|
|
|
#if !defined(U64)
|
|
p_cBufferPointer=BIN_fn_p_cGetPointer(p_cBufferPointer,(unsigned long*)&hHandle,GLI_p_stGetLinkTableOfGeometric());
|
|
PCS_fn_vSetZdmGeoObjOfPhysicalCollSet(hCollideSet,hHandle);
|
|
p_cBufferPointer=BIN_fn_p_cGetPointer(p_cBufferPointer,(unsigned long*)&hHandle,GLI_p_stGetLinkTableOfGeometric());
|
|
PCS_fn_vSetZddGeoObjOfPhysicalCollSet(hCollideSet,hHandle);
|
|
p_cBufferPointer=BIN_fn_p_cGetPointer(p_cBufferPointer,(unsigned long*)&hHandle,GLI_p_stGetLinkTableOfGeometric());
|
|
PCS_fn_vSetZdeGeoObjOfPhysicalCollSet(hCollideSet,hHandle);
|
|
p_cBufferPointer=BIN_fn_p_cGetPointer(p_cBufferPointer,(unsigned long*)&hHandle,GLI_p_stGetLinkTableOfGeometric());
|
|
PCS_fn_vSetZdrGeoObjOfPhysicalCollSet(hCollideSet,hHandle);
|
|
#endif // U64
|
|
|
|
return (unsigned long)hCollideSet;
|
|
}
|
|
*/
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to read all the binary blocs fort the visual sets
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
void CS_fn_vReadAllCSBinaryBlocs(char* _szBinaryFileName)
|
|
{
|
|
#if !defined(U64)
|
|
BIN_fn_vReadDataFromLinkTable(&CS_g_stLinkTable,CS_fn_ulReadBinaryBloc,4*sizeof(ACP_tdxHandleOfObject),_szBinaryFileName);
|
|
#endif // U64
|
|
}
|
|
*/
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to read a binary collide set
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
void CS_fn_vResolveBinaryBloc(unsigned long _ulAddress)
|
|
{
|
|
tdstPhysicalCollSet* hCollideSet;
|
|
|
|
hCollideSet=(tdstPhysicalCollSet*)_ulAddress;
|
|
|
|
#if !defined(U64)
|
|
BIN_fn_p_cGetPointer((char*)&hCollideSet->hZdm,(unsigned long*)&hCollideSet->hZdm,GLI_p_stGetLinkTableOfGeometric());
|
|
BIN_fn_p_cGetPointer((char*)&hCollideSet->hZdd,(unsigned long*)&hCollideSet->hZdd,GLI_p_stGetLinkTableOfGeometric());
|
|
BIN_fn_p_cGetPointer((char*)&hCollideSet->hZde,(unsigned long*)&hCollideSet->hZde,GLI_p_stGetLinkTableOfGeometric());
|
|
BIN_fn_p_cGetPointer((char*)&hCollideSet->hZdr,(unsigned long*)&hCollideSet->hZdr,GLI_p_stGetLinkTableOfGeometric());
|
|
#endif // U64
|
|
}
|
|
|
|
char* CS_fn_p_cGeneralAllocationFunction(unsigned long _ulSize)
|
|
{
|
|
char* p_cBuffer;
|
|
GEO_M_CPAMalloc(p_cBuffer,char *,_ulSize,E_uwGEONotEnoughtMemory);
|
|
return p_cBuffer;
|
|
}
|
|
*/
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : function to read all the binary blocs fort the visual sets
|
|
*-----------------------------------------------------------------------------
|
|
*-----------------------------------------------------------------------------
|
|
* Creation date : Aug 97 Author : Alain Robin
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
void CS_fn_vReadAllCSBinaryBlocs2(char* _szBinaryFileName)
|
|
{
|
|
#if !defined(U64)
|
|
BIN_fn_vReadDataFromLinkTableWithoutAllocation(&CS_g_stLinkTable,CS_fn_vResolveBinaryBloc,
|
|
4*sizeof(ACP_tdxHandleOfObject),_szBinaryFileName,
|
|
CS_fn_p_cGeneralAllocationFunction);
|
|
#endif // U64
|
|
}
|
|
*/
|
|
/*
|
|
BEGIN OS 02.03.98
|
|
Callbacks for bin files.
|
|
*/
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : call-back for header section of CS script file
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
#if !defined(U64)
|
|
SCR_tde_Anl_ReturnValue CS_fn_eScriptCallBackBinHeader(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction)
|
|
{
|
|
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
|
|
|
|
if( _eAction != SCR_EA_Anl_BeginSection )
|
|
{
|
|
// do whatever ...
|
|
return SCR_ERV_Anl_NormalReturn;
|
|
}
|
|
|
|
SCR_fn_v_Bin_BeginSection(_p_stFile);
|
|
|
|
// not used yet
|
|
//gs_wCSFileVersion = (short)fn_lAToI( _ap_szParams[0] );
|
|
SCR_fn_us_Bin_GetUSHORT( _p_stFile );
|
|
|
|
SCR_fn_v_Bin_EndSection(_p_stFile);
|
|
|
|
return ( eReturnValue );
|
|
}
|
|
#endif // U64
|
|
*/
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
* Description : call-back for general section of CS script file
|
|
*-----------------------------------------------------------------------------*/
|
|
/*
|
|
#if !defined(U64)
|
|
SCR_tde_Anl_ReturnValue CS_fn_eScriptCallBackBinGeneral(SCR_tdst_File_Description *_p_stFile,char *_p_szName,char *_ap_szParams[],SCR_tde_Anl_Action _eAction)
|
|
{
|
|
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
|
|
PCS_tdxHandleToPhysicalCollSet _hCollideSet;
|
|
char sz_LongPathForLinkTable[256];
|
|
//SCR_tdst_Cxt_Values *p_stVal;
|
|
ACP_tdxHandleOfObject _hGeometricObject;
|
|
char chTag;
|
|
|
|
if( _eAction != SCR_EA_Anl_BeginSection )
|
|
{
|
|
// do whatever ...
|
|
return SCR_ERV_Anl_NormalReturn;
|
|
}
|
|
|
|
|
|
_hCollideSet = PCS_fn_hCreatePhysicalCollideSet(1);
|
|
SCR_M_RdL0_SetSectionLong(C_ThisContext,0,_hCollideSet);
|
|
|
|
SCR_M_RdL0_ComputeOpenSectionNameR(0,sz_LongPathForLinkTable);
|
|
SCR_M_v_Link_SetAdditionalLong(SCR_fnp_st_Link_SetValue(&CS_g_stLinkTable,sz_LongPathForLinkTable,(unsigned long)_hCollideSet),1,strlen(sz_LongPathForLinkTable)-strlen(SCR_M_RdL0_GetCompleteSectionNameR(0)));
|
|
|
|
SCR_fn_v_Bin_BeginSection(_p_stFile);
|
|
|
|
do{
|
|
chTag=SCR_fn_ch_Bin_GetCHAR( _p_stFile );
|
|
switch (chTag)
|
|
{
|
|
case 0: //ZDR
|
|
{
|
|
char szP0[MAX_PATH];
|
|
SCR_fn_sz_Bin_GetREFERENCE2Buffer( _p_stFile, szP0 );
|
|
_hGeometricObject = GLI_pLoadBinGeometricInFile(szP0);
|
|
|
|
if ( _hGeometricObject->p_stOctree!=NULL&&GEO_fn_ucGetBlocNumberOf(_hGeometricObject)!=GEO_fn_ucGetBlocNumberOf(_hGeometricObject->p_stOctree)
|
|
||_hGeometricObject->p_stOctree==NULL&&GEO_fn_ucGetBlocNumberOf(_hGeometricObject)!=GEO_M_ucGetMemMallocMode())
|
|
{
|
|
M_POWarningErrorWithMessage(E_uwPOOctreeMustBeInFix,_p_stFile->a_szFileName);
|
|
|
|
_hGeometricObject->p_stOctree = NULL;
|
|
}
|
|
// Computing Octree on ZDR (JO 23/09/97)
|
|
COL_fn_bCreateOctree(_hGeometricObject,10,5,4);
|
|
PCS_fn_vSetZdrGeoObjOfPhysicalCollSet(_hCollideSet,_hGeometricObject);
|
|
|
|
}
|
|
break;
|
|
case 1: //ZDE
|
|
{
|
|
char szP0[MAX_PATH];
|
|
SCR_fn_sz_Bin_GetREFERENCE2Buffer( _p_stFile, szP0 );
|
|
|
|
_hGeometricObject = GLI_pLoadBinGeometricInFile(szP0);
|
|
PCS_fn_vSetZdeGeoObjOfPhysicalCollSet(_hCollideSet,_hGeometricObject);
|
|
|
|
}
|
|
break;
|
|
case 2: //ZDD
|
|
{
|
|
char szP0[MAX_PATH];
|
|
SCR_fn_sz_Bin_GetREFERENCE2Buffer( _p_stFile, szP0 );
|
|
|
|
_hGeometricObject = GLI_pLoadBinGeometricInFile(szP0);
|
|
PCS_fn_vSetZddGeoObjOfPhysicalCollSet(_hCollideSet,_hGeometricObject);
|
|
|
|
}
|
|
break;
|
|
|
|
}
|
|
}while (chTag!=-1);
|
|
|
|
SCR_fn_v_Bin_EndSection(_p_stFile);
|
|
|
|
return ( eReturnValue );
|
|
}
|
|
#endif // U64
|
|
*/
|
|
|
|
/*
|
|
END OS 02.03.98
|
|
Callbacks for bin files.
|
|
*/
|