75 lines
2.1 KiB
C
75 lines
2.1 KiB
C
#include "ldt.h"
|
|
|
|
/*****************************************************************
|
|
Name:
|
|
Description: Create callback for LDT
|
|
Author: Mircea Petrescu
|
|
Date: 7/2/98
|
|
Modified:
|
|
*****************************************************************/
|
|
int IPO_iCreateGeneral( LDT_tdst_Link *pLink )
|
|
{
|
|
IPO_tdxHandleToInstanciatedPhysicalObject _hInstanciatedPhysicalObject;
|
|
int iLen;
|
|
char sz_LongPathForLinkTable[256];
|
|
|
|
_hInstanciatedPhysicalObject = IPO_fn_hAllocInstanciatedPhysicalObject();
|
|
|
|
iLen=LDT_ComputeSectionName(pLink,sz_LongPathForLinkTable);
|
|
SCR_M_v_Link_SetAdditionalLong(SCR_fnp_st_Link_SetValue(&IPO_g_stLinkTable,sz_LongPathForLinkTable,(unsigned long)_hInstanciatedPhysicalObject),1,iLen);
|
|
|
|
pLink->pObject=(void *)_hInstanciatedPhysicalObject;
|
|
return 0;
|
|
}
|
|
|
|
HREF hrefIPO;
|
|
|
|
void IPO_PostProcessLDT(HREF hrefIPO)
|
|
{
|
|
int iType=1;
|
|
short shCount=1;
|
|
long *pVal;
|
|
LDT_tdst_Link *pObj, *pGetFrom;
|
|
|
|
while (!(LDT_GetRefFromTable(hrefIPO, &pObj, &pGetFrom, &iType, &shCount, &pVal )))
|
|
((IPO_tdxHandleToInstanciatedPhysicalObject)pObj->pObject)->_hRadiosity = (ACP_tdxHandleToRadiosity) pGetFrom->pObject;
|
|
}
|
|
|
|
|
|
/*****************************************************************
|
|
Name:
|
|
Description: Load callback for LDT
|
|
Author: Mircea Petrescu
|
|
Date: 7/2/98
|
|
Modified:
|
|
*****************************************************************/
|
|
int IPO_iLoadGeneral( LDT_tdst_Link *pLink )
|
|
{
|
|
LDT_tdeParseResult result=ParseResult_BeginSection;
|
|
IPO_tdxHandleToInstanciatedPhysicalObject _hInstanciatedPhysicalObject=( IPO_tdxHandleToInstanciatedPhysicalObject )pLink->pObject;
|
|
|
|
SCR_fn_v_RdL0_SetPriorityPath(fn_szGetLevelsDataPath());
|
|
|
|
while( result!=ParseResult_EndSection )
|
|
{
|
|
result=LDT_GetNextEntry();
|
|
switch( result )
|
|
{
|
|
case ParseResult_Entry: /* an entry */
|
|
{
|
|
char *szEntry=LDT_szGetEntryName();
|
|
|
|
if( *(short *)szEntry=='OP' ) /* PO */
|
|
_hInstanciatedPhysicalObject->_hPhysicalObject=CS_fn_xLoadPhysicalObject( LDT_szGetParam( 1 ) );
|
|
else if( *(long *)szEntry=='ILR' ) /* RLI */
|
|
{
|
|
LDT_LoadSection(LDT_szGetParam( 1 ));
|
|
LDT_AddToRefsTable( hrefIPO, pLink, 1, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|