reman3/Rayman_X/cpa/tempgrp/GAM/Actions/3dDataCB.c

175 lines
5.0 KiB
C

/*******************************************************/
/**** For the structures and variables declarations ****/
/*******************************************************/
#define D_3dData_StructureDefine
#define D_3dData_VariableDefine
#include "ToolsCPA.h"
#include "Options/Options.h"
#include "Macros.h"
#include "Structur/StdObjSt.h"
#include "Actions/AllActs.h"
#include "Structur/3DOSLkTb.h"
#include "Structur/MemGame.h"
#include "Structur/ErrGame.h"
#include "Structur/GameScpt.h"
#include "Structur/EngMode.h"
#include "Structur/Objects.h"
#include "Structur/State.h"
#include "Structur/Anim_s.h"
#include "Structur/objstbls.h"
#include "PlayAnim/PlayAnim.h"
#include "GameEng.h"
#include "Basic.h"
#include "ChanList.h"
#include "ObjInit.h"
#include "ObjType.h"
#include "ZdxStuff.h"
#include "ZeMem.h"
#include "Family.h"
#include "TBLLoad.h"
#include "ldt.h"
/*****************************************************************
Name:
Description: Create callback for LDT
Author: Mircea Petrescu
Date: 8/21/98
Modified: Scripa Ovidiu 09/01/98
*****************************************************************/
int fn_iCreate3dData( LDT_tdst_Link *pLink )
{
MS_tdxHandleTo3dData h_3dData;
struct tdstEngineObject_ *p_stEngineObject;
p_stEngineObject=(struct tdstEngineObject_ *)pLink->pParent->pObject;
MMG_fn_vBeginMemoryInfo (MMG_C_lTypeMiniStructure , MMG_C_lSubType3dData , p_stEngineObject);
h_3dData = fn_h_3dDataRealAlloc();
MMG_fn_vEndMemoryInfo ();
p_stEngineObject->h_3dData = h_3dData;
pLink->pObject=(void *)h_3dData;
return 0;
}
/*****************************************************************
Name:
Description: Load callback for LDT
Author: Mircea Petrescu
Date: 8/21/98
Modified: Scripa Ovidiu 09/01/98
*****************************************************************/
int fn_iLoad3dData( LDT_tdst_Link *pLink )
{
LDT_tdeParseResult result=ParseResult_BeginSection;
MS_tdxHandleTo3dData h_3dData=(MS_tdxHandleTo3dData)pLink->pObject;
struct tdstEngineObject_ *p_stEngineObject;
GLD_tdstDeviceAttributes stDevAttrib;
p_stEngineObject = (struct tdstEngineObject_ *)pLink->pParent->pObject;
/* LST2_M_StaticInitAnchor(&h_3dData->hTestPointList);*/
while( result!=ParseResult_EndSection )
{
result=LDT_GetNextEntry();
switch( result )
{
case ParseResult_Entry: /* an entry */
{
char *szEntry=LDT_szGetEntryName();
switch (*(long*)(szEntry+4))
{
case 'Slai' : /* InitialState */
{
char szCompletFileName[_MAX_PATH];
tdxHandleToState h_InitialState;
/* LDT_tdst_Link* pLink;
pLink = LDT_GetLink(LDT_szGetParam(1));
if (pLink)
{
h_InitialState = (tdxHandleToState)pLink->pObject;
}
else
{
*/
strcpy(szCompletFileName,fn_szGetFamiliesDataPath());
strcat(szCompletFileName,"\\");
strcat(szCompletFileName,LDT_szGetParam(1));
MMG_fn_vAddMemoryInfo( MMG_C_lTypeMiniStructure , MMG_C_lSubType3dData , p_stEngineObject);
h_InitialState = (tdxHandleToState) TMP_M_p_Malloc(strlen(szCompletFileName)+1);
strcpy((char *)h_InitialState, szCompletFileName);
/* }*/
fn_v3dDataSetInitialState(h_3dData, h_InitialState);
}
break;
case 'Olai' : /* InitialObjectsTable */
{
void* p_vLS = NULL;
if (!LDT_SearchFile(LDT_szGetParam(1),NULL)) /* ??*/
{
p_vLS = LDT_LoadSection(LDT_szGetParam(1));
}
LDT_SetFileLong(20, (unsigned long)p_vLS);
}
break;
case 'eTwo' : /* ShadowTexture */
{
GLD_bGetDeviceAttributes(
g_stEngineStructure.hGLDDevice,&stDevAttrib);
GLI_xLoadTexture( &h_3dData->p_stShadowTexture,&stDevAttrib,
LDT_szGetParam(1),
atoi( LDT_szGetParam( 2 ) ),
atoi( LDT_szGetParam( 3 ) ) );
}
break;
case 'aMwo' : /* ShadowMaterial */
{
h_3dData->p_stShadowMaterial = (GMT_tdxHandleToGameMaterial) LDT_LoadSection( LDT_szGetParam(1) );
}
break;
case 'cSwo' : /* ShadowScale */
{
fn_v3dDataSetShadowScaleX(h_3dData, (float)atof( LDT_szGetParam( 1 ) ));
fn_v3dDataSetShadowScaleY(h_3dData, (float)atof( LDT_szGetParam( 2 ) ));
}
break;
case 'eHwo' : /* ShadowHeight */
{
h_3dData->xSHWHeight = (float)atof( LDT_szGetParam( 1 ) );
}
break;
case 'ksaM' : /* DrawMask */
{
h_3dData->lDrawMaskInit = h_3dData->lDrawMask = atoi( LDT_szGetParam( 1 ) );
}
break;
case 'moCn' : /* BrainComputationFrequency */
{
fn_v3dDataSetBrainComputationFrequency(h_3dData,(unsigned char)atoi( LDT_szGetParam( 1 ) ));
}
break;
case 'moCt' : /* LightComputationFrequency */
{
fn_v3dDataSetLightComputationFrequency(h_3dData,(unsigned char)atoi( LDT_szGetParam( 1 ) ));
}
break;
}
}
}
}
return 0;
}