reman3/Rayman_X/cpa/tempgrp/GAM/Actions/msMagCB.c

125 lines
3.2 KiB
C

/*******************************************************/
/**** For the structures and variables declarations ****/
/*******************************************************/
#define D_MSMagnet_StructureDefine
#define D_MSMagnet_VariableDefine
#include "ToolsCPA.h"
#include "Options/Options.h"
#include "Macros.h"
#include "Actions/AllActs.h"
#include "Structur/MemGame.h"
#include "Structur/ErrGame.h"
#include "Structur/Objects.h"
#include "Structur/GameScpt.h"
#include "Structur/StdObjSt.h"
#include "Structur/EngMode.h"
#include "Basic.h"
#include "GameEng.h"
#include "ObjInit.h"
#include "ZeMem.h"
#include "ldt.h"
#define sTagChamp 'hC'
#define sTagSt 'tS'
#define sTagFar 'aF'
#define sTagNear 'eN'
#define sTagDuration 'uD'
/*****************************************************************
Function name : fn_iCreateMSMagnet
Description :
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date : 13-Oct-98
Modified :
Return type : int
Argument : LDT_tdst_Link *pLink
*****************************************************************/
int fn_iCreateMSMagnet( LDT_tdst_Link *pLink )
{
MS_tdxHandleToMSMagnet h_MSMagnet;
struct tdstEngineObject_ *p_stEngineObject = (struct tdstEngineObject_ *)pLink->pParent->pObject;
MMG_fn_vBeginMemoryInfo (MMG_C_lTypeMiniStructure , MMG_C_lSubTypeMagnet , p_stEngineObject);
h_MSMagnet = fn_h_MSMagnetRealAlloc();
MMG_fn_vEndMemoryInfo ();
p_stEngineObject->h_MSMagnet = h_MSMagnet;
pLink->pObject = (void*)h_MSMagnet;
return 0;
}
/*****************************************************************
Function name : fn_iLoadMSMagnet
Description :
Author : Ovidiu Scripa (oscripa@ubisoft.ro) - ROMTEAM
Creation Date : 13-Oct-98
Modified :
Return type : int
Argument : LDT_tdst_Link *pLink
*****************************************************************/
int fn_iLoadMSMagnet( LDT_tdst_Link *pLink )
{
LDT_tdeParseResult result=ParseResult_BeginSection;
MS_tdxHandleToMSMagnet h_MSMagnet = (MS_tdxHandleToMSMagnet)pLink->pObject;
while( result!=ParseResult_EndSection )
{
result=LDT_GetNextEntry();
switch( result )
{
case ParseResult_Entry: /* an entry */
{
char *szEntry=LDT_szGetEntryName();
switch (*(long*)szEntry)
{
case sTagChamp : /* */
{
}
break;
case sTagSt : /* */
{
if (strlen(szEntry)>7) /*Strength*/
{
fn_vMSMagnetSetStrength(h_MSMagnet, (float)atof(LDT_szGetParam(1)) );
}
else /*Status*/
{
fn_vMSMagnetSetStatus(h_MSMagnet,(unsigned char)atoi(LDT_szGetParam(1)) );
}
}
break;
case sTagFar : /* */
{
fn_vMSMagnetSetFar(h_MSMagnet, (float)atof(LDT_szGetParam(1)) );
}
break;
case sTagNear : /* */
{
fn_vMSMagnetSetNear(h_MSMagnet, (float)atof(LDT_szGetParam(1)) );
}
break;
case sTagDuration : /* */
{
fn_vMSMagnetSetDuration(h_MSMagnet,(unsigned long)atoi(LDT_szGetParam(1)) );
}
break;
}
}
}
}
return 0;
}