102 lines
2.4 KiB
C
102 lines
2.4 KiB
C
#include "SCR.h"
|
|
#include "SND.H"
|
|
#include "SIF.h"
|
|
#include "SifLoadS.h"
|
|
|
|
#include "ldt.h"
|
|
|
|
extern enum _SIF_eInfoTypeId
|
|
{
|
|
ENVIRONMENT_INFO,
|
|
MATERIAL_INFO,
|
|
NB_INFO_TYPES,
|
|
} SIF_eInfoTypeId;
|
|
|
|
extern SIF_tdstInfoType SIF_ga_stInfoDescr[NB_INFO_TYPES];
|
|
|
|
|
|
|
|
|
|
/*****************************************************************
|
|
Function name : fn_iLoadInfoType
|
|
Description :
|
|
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
|
|
Creation Date : 14-Oct-98
|
|
Modified :
|
|
Return type : int
|
|
Argument : LDT_tdst_Link *pLink
|
|
*****************************************************************/
|
|
int fn_iLoadInfoType( LDT_tdst_Link *pLink )
|
|
{
|
|
LDT_tdeParseResult result=ParseResult_BeginSection;
|
|
char* szAction = LDT_szGetSectionName();
|
|
|
|
if (strcmp(szAction,"Material")==0)
|
|
{
|
|
pLink->pObject = (void*)MATERIAL_INFO;
|
|
}
|
|
else if (strcmp(szAction,"Environment")==0)
|
|
{
|
|
pLink->pObject = (void*)ENVIRONMENT_INFO;
|
|
}
|
|
else
|
|
{
|
|
SND_fn_vDisplayError(E_uwSndInvalidTypeOfResource,"SIF:Unknown Sound Info Type found in scrip");
|
|
return 1;
|
|
}
|
|
|
|
while( result!=ParseResult_EndSection )
|
|
{
|
|
result=LDT_GetNextEntry();
|
|
switch( result )
|
|
{
|
|
case ParseResult_BeginSection: /* a subsection - CreateNewState*/
|
|
{
|
|
LDT_LoadSection( NULL );
|
|
}
|
|
break;
|
|
}
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
|
|
|
|
/*****************************************************************
|
|
Function name : fn_iLoadInfoValue
|
|
Description :
|
|
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
|
|
Creation Date : 14-Oct-98
|
|
Modified :
|
|
Return type : int
|
|
Argument : LDT_tdst_Link *pLink
|
|
*****************************************************************/
|
|
int fn_iLoadInfoValue( LDT_tdst_Link *pLink )
|
|
{
|
|
LDT_tdeParseResult result=ParseResult_BeginSection;
|
|
int iInfoType = (int)pLink->pParent->pObject;
|
|
char szSectionName[_MAX_PATH];
|
|
/* char szValueName[_MAX_PATH], szFile[_MAX_PATH], szParent[MAX_PATH], szType[_MAX_PATH];*/
|
|
|
|
while( result!=ParseResult_EndSection )
|
|
{
|
|
result=LDT_GetNextEntry();
|
|
switch( result )
|
|
{
|
|
case ParseResult_Entry: /* an entry : SetValue*/
|
|
{
|
|
int iLen = LDT_ComputeSectionName( pLink, szSectionName );
|
|
|
|
SCR_fnp_st_Link_SetValue(&SIF_ga_stInfoDescr[iInfoType].m_Table,/* Link table*/
|
|
szSectionName + iLen, /* Section name*/
|
|
(unsigned long)(pLink->pObject = (void*)(atoi(LDT_szGetParam(1)))) );/* value*/
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
return 0;
|
|
}
|