Add rayman2 source files

This commit is contained in:
2024-09-18 02:33:44 +08:00
parent bcc093f8ed
commit fb036c54fd
14339 changed files with 2596224 additions and 0 deletions

View File

@@ -0,0 +1,127 @@
/*----------------------*/
/* DNMLinkT.c */
/*----------------------*/
/* (c) Ubi R&D 1997 */
/*----------------------*/
#include "MEC/DNMLinkI.h"
/* Private Link Table */
#if !defined(U64)
SCR_tdst_Link_Table stLinkTableOfIdCard;
SCR_tdst_Link_Table* g_a_p_stIdCardsLinkTables[2];
#endif /* U64 */
/*----------------------*/
/* Init Functions */
/*----------------------*/
/* Author : S Leroy */
/* Date : 1997-04-02 */
/* Version : 0.10 */
/* Modify : 1997-04-02 */
/* By : S Leroy */
/* (c) Ubi R&D 1997 */
/*----------------------*/
void DNM_fn_vInitLinkTableOfIdCard()
{
#if !defined(U64)
SCR_fn_v_Link_InitTable(&stLinkTableOfIdCard);
#ifdef _DNM_BINARISER
/* For Binarisation purposes */
g_a_p_stIdCardsLinkTables[2]=&stLinkTableOfMecCameraIdCard;
#endif /*_DNM_BINARISER*/
#endif /* U64 */
}
/*----------------------------*/
/* Gives the link Table */
/*----------------------------*/
/* Author : S Leroy */
/* Date : 1997-04-02 */
/* Version : 1.00 */
/* Modify : 1997-07-31 */
/* By : S Leroy */
/* (c) Ubi R&D 1997 */
/*----------------------*/
#if !defined(U64)
SCR_tdst_Link_Table * DNM_fn_p_stGetIdCardLinkTable()
{
return (&stLinkTableOfIdCard) ;
}
#endif /* U64 */
/*----------------------*/
/* Create an Entry */
/*----------------------*/
/* Author : S Leroy */
/* Date : 1997-04-02 */
/* Version : 0.10 */
/* Modify : 1997-04-02 */
/* By : S Leroy */
/* (c) Ubi R&D 1997 */
/*----------------------*/
void DNM_fn_v_SetValueInLinkTableOfIdCard( char *_p_szKey,unsigned long _ulValue)
{
#if !defined(U64)
SCR_fnp_st_Link_SetValue(&stLinkTableOfIdCard,_p_szKey,_ulValue);
#endif /* U64 */
}
/*----------------------*/
/* Find Handle with Key */
/*----------------------*/
/* Author : S Leroy */
/* Date : 1997-04-02 */
/* Version : 0.10 */
/* Modify : 1997-04-02 */
/* By : S Leroy */
/* (c) Ubi R&D 1997 */
/*----------------------*/
unsigned long DNM_fn_ulLink_SearchKeyInLinkTableOfIdCard( char *_p_szKey)
{
#if !defined(U64)
return SCR_M_ul_Link_GetValue(SCR_fnp_st_Link_SearchKey(&stLinkTableOfIdCard,_p_szKey));
#else
unsigned long ul;
return ul;
#endif /* U64 */
}
/*----------------------*/
/* Find Key with Handle */
/*----------------------*/
/* Author : S Leroy */
/* Date : 1997-04-02 */
/* Version : 0.10 */
/* Modify : 1997-04-02 */
/* By : S Leroy */
/* (c) Ubi R&D 1997 */
/*----------------------*/
char * DNM_fn_p_cSearchValueInLinkTableOfIdCard( unsigned long _ulValue)
{
#if !defined(U64)
return SCR_M_p_sz_Link_GetKey(SCR_fnp_st_Link_SearchValue(&stLinkTableOfIdCard,_ulValue));
#else
char *pChar;
return pChar;
#endif /* U64 */
}
/*----------------------*/
/* Find Key with Handle */
/*----------------------*/
/* Author : Yves B. */
/* Date : 1997-05-12 */
/* Version : 1.00 */
/* Modify : yyyy-mm-dd */
/* (c) Ubi R&D 1997 */
/*----------------------*/
#if !defined(U64)
SCR_tdst_Link_Table *DNM_fn_p_stGetLinkTableOfIdCard(void)
{
return &stLinkTableOfIdCard;
}
#endif /* U64 */

View File

@@ -0,0 +1,492 @@
/*----------------------*/
/* DNMLoadI.c */
/*----------------------*/
/* Author : F Bourbon */
/* Date : 1997-01-30 */
/* Version : 0.10 */
/* Modify : 1997-08-04 */
/* By : S Leroy */
/* (c) Ubi R&D 1997 */
/*----------------------*/
#if !defined(U64)
#include "ACP_Base.h"
#include "cpa_std.h"
#include "MTH.h"
#include "SCR.h"
#include "MEC.h"
#include "DPT.h"
#include "LST.h"
#include "MEC/DNMLoadI.h"
#include "MEC/mbase.h"
/*ANNECY jt {*/
/* ---- must be report in bin/binproto */
#define BIN_C_DNMMecBaseIdCardID 64
/*ENDANNECY jt }*/
/* Macro for initializing a CallBack and*/
/* initializing the associated LinkTable*/
/* for binarization purpose*/
#define DNMi_M_Register(Type) \
SCR_fn_v_RdL0_RegisterCallback( \
C_SectionIdCard##Type##, \
DNM_fn_eScriptCallBack##Type##IdCard, \
SCR_CRC_c_RdL0_ForSection);
/* Macro for Reading the script file describing an Identity Card*/
/* and defining a LinkTable for this type of struct for*/
/* binarization purpose */
#define DNMi_M_CallBack(Type, Struct, Parse) \
SCR_tde_Anl_ReturnValue DNM_fn_eScriptCallBack##Type##IdCard( \
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; \
DNM_tdxHandleToMecIdentityCard h_IdCard; \
char a255_cLongName[255]; \
\
if (_eAction == SCR_EA_Anl_BeginSection) \
{ h_IdCard = DNM_fn_xIdentityCardCreate(##Struct##); \
SCR_M_RdL0_SetSectionLong(0, 0, (unsigned long)(h_IdCard)); \
SCR_M_RdL0_ComputeOpenSectionNameR(0, a255_cLongName); \
SCR_M_v_Link_SetAdditionalLong \
( SCR_fnp_st_Link_SetValue \
( DNM_fn_p_stGetIdCardLinkTable(), \
a255_cLongName, \
(unsigned long)h_IdCard \
), \
1, \
strlen(a255_cLongName) - strlen(SCR_M_RdL0_GetCompleteSectionNameR(0)) \
); \
} \
else if (_eAction == SCR_EA_Anl_Entry) \
{ SCR_M_RdL0_GetSectionLong(0, 0, DNM_tdxHandleToMecIdentityCard, h_IdCard); \
return Parse##(h_IdCard, _p_szName, _ap_szParams, _eAction); \
} \
return(eReturnValue); \
}
/*-----------------------------
| Camera |
| Script, WriteBloc, CallBack |
-----------------------------*/
/* Script Parsing */
SCR_tde_Anl_ReturnValue DNM_fn_eScriptFillCameraIdentityCard
(
DNM_tdxHandleToMecIdentityCard h_IdCard,
char *_p_szName,
char *_ap_szParams[],
SCR_tde_Anl_Action _eAction
)
{
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
MTH_tdxReal xTmp;
if(!strcmp(_p_szName,C_EntryAngularSpeed))
{
xTmp = MTH_M_xDoubleToReal(atof(_ap_szParams[0]));
DNM_M_xCameraIdCardSetAngularSpeed((DNM_tdstMecCameraIdCard *)h_IdCard,MTH_M_xDegToRad(xTmp));
}
else if(!strcmp(_p_szName,C_EntryLinearSpeed))
{
xTmp = MTH_M_xDoubleToReal(atof(_ap_szParams[0]));
DNM_M_xCameraIdCardSetLinearSpeed((DNM_tdstMecCameraIdCard *)h_IdCard,xTmp);
}
else if(!strcmp(_p_szName,C_EntrySpeedingUp))
{
xTmp = MTH_M_xDoubleToReal(atof(_ap_szParams[0]));
DNM_M_xCameraIdCardSetSpeedingUp((DNM_tdstMecCameraIdCard *)h_IdCard,xTmp);
}
return(eReturnValue);
}
/* CallBack */
DNMi_M_CallBack(
Camera,
DNM_eCamera,
DNM_fn_eScriptFillCameraIdentityCard)
/*-----------------------------
| Base |
| Script, WriteBloc, CallBack |
-----------------------------*/
/* Script Parsing */
SCR_tde_Anl_ReturnValue DNM_fn_eScriptFillBaseIdentityCard(
DNM_tdxHandleToMecIdentityCard h_IdCard,
char *_p_szName,
char *_ap_szParams[],
SCR_tde_Anl_Action _eAction)
{
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
DNM_tdstMecBaseIdCard *p_stBaseIdCard;
/* Gives back the semantic of the handle */
p_stBaseIdCard = DNM_fn_p_stMecBaseIdCardGiveBackSemantic(h_IdCard);
/* Default Values */
if( strcmp(_p_szName,C_EntryBaseAnimation)==0 )
{
DNM_M_vBaseIdCardSetAnimation
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseCollide)==0 )
{
DNM_M_vBaseIdCardSetCollide
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseGravity)==0 )
{
DNM_M_vBaseIdCardSetGravity
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseGi)==0 )
{
DNM_M_vBaseIdCardSetGi
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseClimb)==0 )
{
DNM_M_vBaseIdCardSetClimb
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseOnGround)==0 )
{
DNM_M_vBaseIdCardSetOnGround
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseSpider)==0 )
{
DNM_M_vBaseIdCardSetSpider
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseShoot)==0 )
{
DNM_M_vBaseIdCardSetShoot
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseSwim)==0 )
{
DNM_M_vBaseIdCardSetSwim
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseTilt)==0 )
{
DNM_M_vBaseIdCardSetTilt
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseCollisionControl)==0 )
{
DNM_M_vBaseIdCardSetCollisionControl
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseKeepWallSpeedZ)==0 )
{
DNM_M_vBaseIdCardSetKeepWallSpeedZ
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseSpeedLimit)==0 )
{
DNM_M_vBaseIdCardSetSpeedLimit
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseInertia)==0 )
{
DNM_M_vBaseIdCardSetInertia
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseStream)==0 )
{
DNM_M_vBaseIdCardSetStream
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseStickOnPlatform)==0 )
{
DNM_M_vBaseIdCardSetStickOnPlatform
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseUseScale)==0 )
{
DNM_M_vBaseIdCardSetScale
(
p_stBaseIdCard,
atoi(_ap_szParams[0])
);
}
if( strcmp(_p_szName,C_EntryBaseGravityFactor)==0 )
{
DNM_M_vBaseIdCardSetGravityFactor
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseSlide)==0 )
{
DNM_M_vBaseIdCardSetSlide
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseRebound)==0 )
{
DNM_M_vBaseIdCardSetRebound
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseSlopeLimit)==0 )
{
DNM_M_vBaseIdCardSetSlopeLimit
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseInertiaFactorX)==0 )
{
DNM_M_vBaseIdCardSetInertiaFactorX
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseInertiaFactorY)==0 )
{
DNM_M_vBaseIdCardSetInertiaFactorY
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseInertiaFactorZ)==0 )
{
DNM_M_vBaseIdCardSetInertiaFactorZ
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseTiltIntensity)==0 )
{
DNM_M_vBaseIdCardSetTiltIntensity
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseTiltInertia)==0 )
{
DNM_M_vBaseIdCardSetTiltInertia
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseTiltOrigin)==0 )
{
DNM_M_vBaseIdCardSetTiltOrigin
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(_ap_szParams[0]))
);
}
if( strcmp(_p_szName,C_EntryBaseMaxSpeed)==0 )
{
MTH3D_tdstVector stVector;
MTH3D_M_vSetVectorElements
(
&stVector,
MTH_M_xDoubleToReal((double)atof(_ap_szParams[0])),
MTH_M_xDoubleToReal((double)atof(_ap_szParams[1])),
MTH_M_xDoubleToReal((double)atof(_ap_szParams[2]))
);
DNM_M_vBaseIdCardSetMaxSpeed
(
p_stBaseIdCard,
&stVector
);
}
return(eReturnValue);
}
/* CallBack */
DNMi_M_CallBack(
Base,
DNM_eBase,
DNM_fn_eScriptFillBaseIdentityCard)
#endif /* U64 */
/*-----------------------------------------------------------------------------
* Description : Init the load of IdCard
*-----------------------------------------------------------------------------
* Input : void
* Output : void
*-----------------------------------------------------------------------------
* Creation date : 19/02/97 Author : S Leroy
*-----------------------------------------------------------------------------
* Modification date :01/04/97 Modification Author : S Leroy
* Modifications :
*---------------------------------------------------------------------------*/
void DNM_fn_vInitLoadIdCard()
{
DNM_fn_vInitLinkTableOfIdCard();
#if !defined(U64)
/* Camera */
DNMi_M_Register(Camera)
/* Base */
DNMi_M_Register(Base)
#endif /* U64 */
}

View File

@@ -0,0 +1,226 @@
#include "cpa_std.h"
#include "MEC/mecmatca.h"
#include "MEC/dnmldmat.h"
#include "MEC/dnmlkmat.h"
#include "DPT.h"
#include "GEO.h"
/* Fills in a MecMatCharacteristics */
/* Private method */
/* Author : JM Soudagne */
/* Date : 1997-04-01 */
/* Version : 1.00 */
/* Modify : yyyy-mm-dd */
SCR_tde_Anl_ReturnValue fn_eScriptFillMecMatCharacteristics(
DNM_tdxHandleToMecMatCharacteristics _h_MecEnvironment,
char *_p_szName,
char *_ap_szPars[],
SCR_tde_Anl_Action _eAction
)
{
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
double dfTmp;
DNM_tdstMecMatCharacteristics *p_stMecMatCharacteristics;
p_stMecMatCharacteristics = DNM_fn_p_stMecMatCharacteristicsGiveBackSemantic(_h_MecEnvironment);
if(strcmp(_p_szName,C_EntrySlide) == 0){
/* slide */
dfTmp = atof(_ap_szPars[0]);
DNM_M_xMatCharacteristicsSetSlide(p_stMecMatCharacteristics,MTH_M_xDoubleToReal(dfTmp));
}
else if(strcmp(_p_szName,C_EntryRebound) == 0){
/* rebound */
dfTmp = atof(_ap_szPars[0]);
DNM_M_xMatCharacteristicsSetRebound(p_stMecMatCharacteristics,MTH_M_xDoubleToReal(dfTmp));
}
return(eReturnValue);
}
/* Reads the script file describing a MecMatCharacteristics */
/* Author : JM Soudagne */
/* Date : 1997-04-01 */
/* Version : 1.00 */
/* Modify : 1997-05-14 */
/* Add of complete name in link table */
SCR_tde_Anl_ReturnValue fn_eScriptCallBackMecMatCharacteristics(
SCR_tdst_File_Description *_p_stFile,
char *_p_szName,
char *_ap_szPars[],
SCR_tde_Anl_Action _eAction)
{
DNM_tdxHandleToMecMatCharacteristics hMecMatCharacteristics;
SCR_tde_Anl_ReturnValue eReturnValue = SCR_ERV_Anl_NormalReturn;
char szLinkTableKey[_MAX_PATH];
if(_eAction==SCR_EA_Anl_BeginSection)
{
/* If a section is detected */
hMecMatCharacteristics = DNM_fn_xMatCharacteristicsCreate();
SCR_M_RdL0_SetSectionLong(0,0,(unsigned long)(hMecMatCharacteristics));
strcpy(szLinkTableKey,SCR_M_RdL0_GetCompleteSectionNameR(0));
DNM_fn_vSetValueInLinkTableOfMecMatCharacteristics(szLinkTableKey,(unsigned long)(hMecMatCharacteristics));
}
else if(_eAction==SCR_EA_Anl_Entry)
{
/* Fills the MecMatCharacteristics */
SCR_M_RdL0_GetSectionLong(0,0,DNM_tdxHandleToMecMatCharacteristics,hMecMatCharacteristics);
fn_eScriptFillMecMatCharacteristics(hMecMatCharacteristics,
_p_szName,
_ap_szPars,
_eAction);
}
return(eReturnValue);
}
/* Init the load of mechanical material */
/* Author : JM Soudagne */
/* Date : 1997-04-01 */
/* Version : 1.00 */
/* Modify : yyyy-mm-dd */
void DNM_fn_vInitLoadMecMatCharacteristics()
{
SCR_fn_v_RdL0_RegisterCallback(
C_SectionMecMatCharacteristics,
fn_eScriptCallBackMecMatCharacteristics,
SCR_CRC_c_RdL0_ForSection
);
}
/*----------------------------------------------------------------------------
// Description : DNM_fn_ulWriteMMTBinaryBloc
//----------------------------------------------------------------------------
// Methods : Write the binary bloc for the mecanical material
//----------------------------------------------------------------------------
// Input : _ulStructAdress : Address of the structure to be written
// _p_cDestBuffer : Output buffer
// Output : The length of the data written
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
unsigned long DNM_fn_ulWriteMMTBinaryBloc(unsigned long _ulStructAdress,
char* _p_cDestBuffer)
{
char* p_cBufferPointer=_p_cDestBuffer;
DNM_tdstMecMatCharacteristics* p_stMecMat;
p_stMecMat=(DNM_tdstMecMatCharacteristics*)_ulStructAdress;
p_cBufferPointer=BIN_fn_p_cPutReal(p_cBufferPointer,p_stMecMat->m_xSlide);
p_cBufferPointer=BIN_fn_p_cPutReal(p_cBufferPointer,p_stMecMat->m_xRebound);
return p_cBufferPointer-_p_cDestBuffer;
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_vWriteAllMMTBinaryBlocs
//----------------------------------------------------------------------------
// Methods : Write all the binary bloc for the mecanical material
//----------------------------------------------------------------------------
// Input : _szBinaryFileName
// Output :
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
void DNM_fn_vWriteAllMMTBinaryBlocs(char* _szBinaryFileName)
{
DNM_fn_vPrepareSaveMaterialBinaryBloc();
BIN_fn_vPutBinaryDataIntoFileFromLinkTable(_szBinaryFileName,DNM_fn_p_stGetLinkTableOfMecMatCharacteristics(),
sizeof(DNM_tdstMecMatCharacteristics),DNM_fn_ulWriteMMTBinaryBloc);
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_ulReadMMTBinaryBloc
//----------------------------------------------------------------------------
// Methods : Read a the binary bloc for the mecanical material
//----------------------------------------------------------------------------
// Input : _p_cLoadedBuffer : Input buffer
// _ulLoadedBufferSize : Size of the loaded buffer
// Output : The address of the allocated bloc
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
unsigned long DNM_fn_ulReadMMTBinaryBloc(char* _p_cLoadedBuffer,unsigned long _ulLoadedBufferSize)
{
DNM_tdxHandleToMecMatCharacteristics hNewMecMaterial=NULL;
hNewMecMaterial = DNM_fn_xMatCharacteristicsCreate();
memcpy((char*)hNewMecMaterial,_p_cLoadedBuffer,_ulLoadedBufferSize);
return (unsigned long)hNewMecMaterial;
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_vReadAllMMTBinaryBlocs
//----------------------------------------------------------------------------
// Methods : Read all the binary blocs for the mecanical material
//----------------------------------------------------------------------------
// Input : _szBinaryFileName : The binary file name
// Output :
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
void DNM_fn_vReadAllMMTBinaryBlocs(char* _szBinaryFileName)
{
BIN_fn_vReadDataFromLinkTable(DNM_fn_p_stGetLinkTableOfMecMatCharacteristics(),DNM_fn_ulReadMMTBinaryBloc,
sizeof(DNM_tdstMecMatCharacteristics), _szBinaryFileName);
}
char* DNM_fn_p_cGeneralAllocateFunction(unsigned long _ulSize)
{
char* p_cBuffer;
GEO_M_CPAMalloc(p_cBuffer,char*,_ulSize,E_uwGEONotEnoughtMemory);
return p_cBuffer;
}
*/
/*----------------------------------------------------------------------------
// Description : DNM_fn_vReadAllMMTBinaryBlocs2
//----------------------------------------------------------------------------
// Methods : Read all the binary blocs for the mecanical material
//----------------------------------------------------------------------------
// Input : _szBinaryFileName : The binary file name
// Output :
//----------------------------------------------------------------------------
// Creation date : Aug 97 Author: Alain Robin
//----------------------------------------------------------------------------
// Modifications :
// Modification date : Modification author :
----------------------------------------------------------------------------*/
/*
void DNM_fn_vReadAllMMTBinaryBlocs2(char* _szBinaryFileName)
{
BIN_fn_vReadDataFromLinkTableWithoutAllocation(DNM_fn_p_stGetLinkTableOfMecMatCharacteristics(),NULL,
sizeof(DNM_tdstMecMatCharacteristics), _szBinaryFileName,
DNM_fn_p_cGeneralAllocateFunction);
}
*/

View File

@@ -0,0 +1,70 @@
#include "cpa_std.h"
#include "MEC/mecmatca.h"
#include "MEC/dnmldmat.h"
#include "MEC/dnmlkmat.h"
#include "DPT.h"
#include "GEO.h"
#include "ldt.h"
#define lTagBaseSlide 'dilS'
#define lTagBaseRebound 'obeR'
int fn_iCreateMecMatCharacteristics( LDT_tdst_Link *pLink )
{
DNM_tdxHandleToMecMatCharacteristics hMecMatCharacteristics = DNM_fn_xMatCharacteristicsCreate();
pLink->pObject = (void*)hMecMatCharacteristics;
return 0;
}
int fn_iLoadMecMatCharacteristics( LDT_tdst_Link *pLink )
{
LDT_tdeParseResult result=ParseResult_BeginSection;
DNM_tdxHandleToMecMatCharacteristics hMecMatCharacteristics = (DNM_tdxHandleToMecMatCharacteristics)pLink->pObject;
char szLinkTableKey[_MAX_PATH];
DNM_tdstMecMatCharacteristics *p_stMecMatCharacteristics;
LDT_ComputeSectionName( pLink , szLinkTableKey);
DNM_fn_vSetValueInLinkTableOfMecMatCharacteristics(szLinkTableKey,(unsigned long)(hMecMatCharacteristics));
p_stMecMatCharacteristics = DNM_fn_p_stMecMatCharacteristicsGiveBackSemantic(hMecMatCharacteristics);
while( result!=ParseResult_EndSection )
{
result=LDT_GetNextEntry();
switch( result )
{
case ParseResult_Entry: /* an entry */
{
char *szEntry=LDT_szGetEntryName();
switch (*(long*)(szEntry+4))
{
case lTagBaseSlide : /* */
{
DNM_M_xMatCharacteristicsSetSlide(p_stMecMatCharacteristics, (float)atof(LDT_szGetParam(1)));
}
break;
case lTagBaseRebound : /* */
{
DNM_M_xMatCharacteristicsSetRebound(p_stMecMatCharacteristics, (float)atof(LDT_szGetParam(1)));
}
break;
}
}
}
}
return 0;
}

View File

@@ -0,0 +1,514 @@
#if !defined(U64)
#include "ACP_Base.h"
#include "cpa_std.h"
#include "MTH.h"
#include "SCR.h"
#include "MEC.h"
#include "DPT.h"
#include "LST.h"
#include "MEC/DNMLoadI.h"
#include "MEC/mbase.h"
#include "ldt.h"
#include <crtdbg.h>
/* ---- must be report in bin/binproto */
#define BIN_C_DNMMecBaseIdCardID 64
#define lTagAngularSpeed 'ugnA'
#define lTagLinearSpeed 'eniL'
#define lTagSpeedingUp 'eepS'
#define lTagGi 'iG'
#define lTagIx 'xI'
#define lTagIy 'yI'
#define lTagIz 'zI'
#define lTagAnimation 'minA'
#define lTagGravity 'varG'
#define lTagTilt 'tliT'
/*#define lTagTiltIntensity 13*/
/*#define lTagTiltInertia 11*/
/*#define lTagTiltOrigin 10*/
#define lTagClimb 'milC'
#define lTagOnGround 'rGnO'
#define lTagSpider 'dipS'
#define lTagShoot 'oohS'
#define lTagCollide 'lloC'
#define lTagKeepSpeedZ 'peeK'
#define lTagSpeedLimit 'eepS'
#define lTagInertia 'renI'
#define lTagStream 'ertS'
#define lTagStickOnPlatform 'citS'
#define lTagSlide 'dilS'
#define lTagScale 'lacS'
#define lTagRebound 'obeR'
#define lTagSlopeLimit 'polS'
#define lTagMaxSpeed 'SxaM'
/* Macro for initializing a CallBack and*/
/* initializing the associated LinkTable*/
/* for binarization purpose*/
#define DNMi_M_RegisterLDT(Type) \
LDT_RegisterType(C_SectionIdCard##Type##, CreateIdCard##Type##, LoadIdCard##Type##, LDT_REG_SECTION);
/* Macro for Reading the script file describing an Identity Card*/
/* and defining a LinkTable for this type of struct for*/
/* binarization purpose */
#define DNMi_M_CallBackLDT(Type, Struct, Parse) \
int CreateIdCard##Type##( LDT_tdst_Link* pLink ) \
{ \
DNM_tdxHandleToMecIdentityCard h_IdCard; \
\
h_IdCard = DNM_fn_xIdentityCardCreate(##Struct##); \
pLink->pObject = (void *)h_IdCard; \
return 0; \
} \
int LoadIdCard##Type##( LDT_tdst_Link* pLink ) \
{ \
int nLen;\
char a255_cLongName[255]; \
DNM_tdxHandleToMecIdentityCard h_IdCard = pLink->pObject; \
nLen = LDT_ComputeSectionName(pLink, a255_cLongName); \
SCR_M_v_Link_SetAdditionalLong( SCR_fnp_st_Link_SetValue (DNM_fn_p_stGetIdCardLinkTable(), a255_cLongName, (unsigned long)h_IdCard ), 1, nLen); \
return Parse##(h_IdCard, pLink); \
}
/* -> OS : THIS CODE SHOULD BE DELETED 25-Aug-98*/
/* _CrtSetReportMode( _CRT_WARN, _CRTDBG_MODE_WNDW ); \*/
/* _RPT2( _CRT_WARN, "Name:%s.\nnLen=%d ", a255_cLongName, nLen); \*/
/* DebugBreak(); \*/
/* <- OS : THIS CODE SHOULD BE DELETED 25-Aug-98*/
/*-----------------------------
| Camera |
| Script, WriteBloc, CallBack |
-----------------------------*/
/* Script Parsing */
/*****************************************************************
Function name : DNM_fn_eLDTFillCameraIdentityCard
Description :
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date : 14-Oct-98
Modified :
Return type : int
Argument : DNM_tdxHandleToMecIdentityCard h_IdCard
Argument : LDT_tdst_Link* pLink
*****************************************************************/
int DNM_fn_eLDTFillCameraIdentityCard( DNM_tdxHandleToMecIdentityCard h_IdCard, LDT_tdst_Link* pLink)
{
LDT_tdeParseResult result=ParseResult_BeginSection;
MTH_tdxReal xTmp;
while( result!=ParseResult_EndSection )
{
result=LDT_GetNextEntry();
switch( result )
{
case ParseResult_Entry: /* an entry */
{
char *szEntry=LDT_szGetEntryName();
switch (*(long*)szEntry)
{
case lTagAngularSpeed : /* AngularSpeed */
{
xTmp = MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)));
DNM_M_xCameraIdCardSetAngularSpeed((DNM_tdstMecCameraIdCard *)h_IdCard,MTH_M_xDegToRad(xTmp));
}
break;
case lTagLinearSpeed : /* LinearSpeed */
{
xTmp = MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)));
DNM_M_xCameraIdCardSetLinearSpeed((DNM_tdstMecCameraIdCard *)h_IdCard,xTmp);
}
break;
case lTagSpeedingUp : /* SpeedingUp */
{
xTmp = MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)));
DNM_M_xCameraIdCardSetSpeedingUp((DNM_tdstMecCameraIdCard *)h_IdCard,xTmp);
}
break;
}
}
}
}
return 0;
}
/* CallBack */
DNMi_M_CallBackLDT(
Camera,
DNM_eCamera,
DNM_fn_eLDTFillCameraIdentityCard)
/*-----------------------------
| Base |
| Script, WriteBloc, CallBack |
-----------------------------*/
/* Script Parsing */
/*****************************************************************
Function name : DNM_fn_eLDTFillBaseIdentityCard
Description :
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date : 14-Oct-98
Modified :
Return type : int
Argument : DNM_tdxHandleToMecIdentityCard h_IdCard
Argument : LDT_tdst_Link* pLink
*****************************************************************/
int DNM_fn_eLDTFillBaseIdentityCard( DNM_tdxHandleToMecIdentityCard h_IdCard, LDT_tdst_Link* pLink)
{
LDT_tdeParseResult result=ParseResult_BeginSection;
DNM_tdstMecBaseIdCard *p_stBaseIdCard;
/* Gives back the semantic of the handle */
p_stBaseIdCard = DNM_fn_p_stMecBaseIdCardGiveBackSemantic(h_IdCard);
while( result!=ParseResult_EndSection )
{
result=LDT_GetNextEntry();
switch( result )
{
case ParseResult_Entry: /* an entry */
{
char *szEntry=LDT_szGetEntryName();
if (strlen(szEntry) == 1) /* G*/
{
DNM_M_vBaseIdCardSetGravityFactor
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
break;
}
if (strlen(szEntry) == 2)
{
switch (*(short*)szEntry)
{
case lTagGi : /* */
{
DNM_M_vBaseIdCardSetGi
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagIx : /* */
{
DNM_M_vBaseIdCardSetInertiaFactorX
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
case lTagIy : /* */
{
DNM_M_vBaseIdCardSetInertiaFactorY
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
case lTagIz : /* */
{
DNM_M_vBaseIdCardSetInertiaFactorZ
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
}
break;
}
switch (*(long*)szEntry)
{
case lTagAnimation : /* */
{
DNM_M_vBaseIdCardSetAnimation
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagCollide : /* Collide, CollisionControl*/
{
if (strlen(szEntry)==7) /* Collide*/
{
DNM_M_vBaseIdCardSetCollide
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
else /* CollisionControl*/
{
DNM_M_vBaseIdCardSetCollisionControl
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
}
break;
case lTagGravity : /* */
{
DNM_M_vBaseIdCardSetGravity
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagTilt : /* */
{
switch (strlen(szEntry))
{
case 4: /* Tilt*/
{
DNM_M_vBaseIdCardSetTilt
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case 10: /*TiltOrigin*/
{
DNM_M_vBaseIdCardSetTiltOrigin
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
case 11: /*TiltInertia*/
{
DNM_M_vBaseIdCardSetTiltInertia
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
case 13: /*TiltIntensity*/
{
DNM_M_vBaseIdCardSetTiltIntensity
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
}
}
break;
case lTagClimb : /* */
{
DNM_M_vBaseIdCardSetClimb
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagOnGround : /* */
{
DNM_M_vBaseIdCardSetOnGround
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagSpider : /* */
{
DNM_M_vBaseIdCardSetSpider
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagShoot : /* */
{
DNM_M_vBaseIdCardSetShoot
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagKeepSpeedZ : /* */
{
DNM_M_vBaseIdCardSetKeepWallSpeedZ
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagSpeedLimit : /* */
{
DNM_M_vBaseIdCardSetSpeedLimit
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagInertia : /* */
{
DNM_M_vBaseIdCardSetInertia
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagStream : /* */
{
DNM_M_vBaseIdCardSetStream
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagStickOnPlatform : /* */
{
DNM_M_vBaseIdCardSetStickOnPlatform
(
p_stBaseIdCard,
atoi(LDT_szGetParam(1))
);
}
break;
case lTagSlide : /* */
{
DNM_M_vBaseIdCardSetSlide
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
case lTagRebound : /* */
{
DNM_M_vBaseIdCardSetRebound
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
case lTagSlopeLimit : /* */
{
DNM_M_vBaseIdCardSetSlopeLimit
(
p_stBaseIdCard,
MTH_M_xDoubleToReal(atof(LDT_szGetParam(1)))
);
}
break;
case lTagMaxSpeed : /* */
{
MTH3D_tdstVector stVector;
MTH3D_M_vSetVectorElements
(
&stVector,
MTH_M_xDoubleToReal((double)atof(LDT_szGetParam(1))),
MTH_M_xDoubleToReal((double)atof(LDT_szGetParam(2))),
MTH_M_xDoubleToReal((double)atof(LDT_szGetParam(3)))
);
DNM_M_vBaseIdCardSetMaxSpeed
(
p_stBaseIdCard,
&stVector
);
}
break;
}
}
}
}
return 0;
}
/* CallBack */
DNMi_M_CallBackLDT(
Base,
DNM_eBase,
DNM_fn_eLDTFillBaseIdentityCard)
#endif /* U64 */
/*#define LDT_REG_SECTION 0 /* registers section callbacks */
/*#define LDT_REG_FILE 1 /* registers file callbacks */
/*-----------------------------------------------------------------------------
* Description : Init the load of IdCard
*-----------------------------------------------------------------------------
* Input : void
* Output : void
*---------------------------------------------------------------------------*/
void DNM_fn_vInitLoadIdCardLDT()
{
DNM_fn_vInitLinkTableOfIdCard();
#if !defined(U64)
/* Camera */
DNMi_M_RegisterLDT(Camera)
/* Base */
DNMi_M_RegisterLDT(Base)
#endif /* U64 */
}