reman3/Rayman_X/cpa/tempgrp/OAC/Src/EdActors/EDACMISv.cpp

1057 lines
43 KiB
C++

// Motor Instances saving functions
////////////////////////////////////////
// Created by YB, 12/05/97
////////////////////////////////////////////////
#include "StdAfx.h"
/////////////////////////////////////////////////////
//////// !!!!!!!!!!!! DANGER !!!!!!!!!!! ////////////
/////////////////////////////////////////////////////
#define _ED_CAR_MUST_DEFINE_STRUCT_
#include "EdAllAct.hpp"
/////////////////////////////////////////////////////
//////// !!!!!!!!!!!! End DANGER !!!!!!!!!!! ////////
/////////////////////////////////////////////////////
#include "EDACMISv.hpp"
#include "EDAC2Mot.hpp"
#include "Defines.hpp"
#include "EDACStrg.hpp"
#include "ErO.h"
//-----------------IR-------------------------
#include "EdIRBeEn.hpp"
#include "EDACModl.hpp"
#include "EDACQuer.hpp"
//--------------------------------------------
#include "TFa.h"
#undef CPA_WANTS_IMPORT
#undef CPA_EXPORT
#define CPA_WANTS_EXPORT
//-----------------IR-------------------------
#include "EdIRIRD.hpp"
//--------------------------------------------
#include "_Actors.hpp"
#undef CPA_WANTS_EXPORT
#define CPA_WANTS_IMPORT
// Functions used to Save all MS
///////////////////////////////////
//********************************************************************************
//*****************************************************************************************************************
void ED_ACTORS_fn_vStdGameSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToStandardGame h_StandardGame = p_stObject->h_StandardGame;
if ( h_StandardGame != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** StdGame mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionStdGameDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameType,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal,3,
fn_szFindPersonalTypeNameOfPersonalType(fn_otStandardGameGetPersonalType(h_StandardGame)),
fn_szFindModelTypeNameOfModelType(fn_otStandardGameGetModelType(h_StandardGame)),
fn_szFindFamilyTypeNameOfFamilyType(fn_otStandardGameGetFamilyType(h_StandardGame)));
CString csTempString;
//Hit Points Init
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameHitPointInit,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i",
*fn_p_ucStdGameGetHitPointsInit(h_StandardGame));
//Max Hit Points Init
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameHitPointMaxInit,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i",
*fn_p_ucStdGameGetHitPointsMaxInit(h_StandardGame));
//Max Max Hit Points
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameHitPointMaxMax,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i",
fn_ucStandardGameGetHitPointsMaxMax(h_StandardGame));
//Init Flags
CString csFlagDeadOrTaken;
switch ( fn_eStandardGameGetInitFlagWhenDeadOrTaken(h_StandardGame) )
{
case OI_WhenPlayerGoOutOfActionZone:
csFlagDeadOrTaken = C_ValueStdInitFlagGoOutOfZone;
break;
case OI_Always:
csFlagDeadOrTaken = C_ValueStdInitFlagAlways;
break;
case OI_WhenPlayerIsDead:
csFlagDeadOrTaken = C_ValueStdInitFlagPlayerDead;
break;
case OI_WhenMapJustLoaded:
csFlagDeadOrTaken = C_ValueStdInitFlagMapLoaded;
break;
case OI_NeverBackWhenTaken:
csFlagDeadOrTaken = C_ValueStdInitFlagNeverBack;
break;
// case OI_WhenSavedGameJustLoaded:
// csFlagDeadOrTaken = C_ValueStdInitFlagSavedGameLoaded;
// break;
default :
csFlagDeadOrTaken = "Error";
break;
}
CString csFlagOutOfZone;
switch ( fn_eStandardGameGetInitFlagWhenOutOfZone(h_StandardGame) )
{
case OI_WhenPlayerGoOutOfActionZone:
csFlagOutOfZone = C_ValueStdInitFlagGoOutOfZone;
break;
case OI_NeverBackWhenTaken:
csFlagOutOfZone = C_ValueStdInitFlagNeverBack;
break;
default :
csFlagOutOfZone = "Error";
break;
}
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdInitFlag,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%s,%s",
M_MAKECHAR(csFlagOutOfZone),
M_MAKECHAR(csFlagDeadOrTaken));
//SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdSpecialPositionFlag,SCR_CC_C_Cfg_NoChar);
//SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i", fn_ucStandardGameGetSpecialPositionFlag(h_StandardGame));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGamePlatFormType,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i", fn_ucStandardGameGetPlatFormType(h_StandardGame));
//SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameLinkedToSectorFlag,SCR_CC_C_Cfg_NoChar);
//ANNECY BBB 20/11/97 {
//SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i", fn_ucStandardGameGetSectorLinkValue(h_StandardGame));
//SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i", fn_bStandardGameGetLinkToSectorFlag(h_StandardGame));
//custom bits
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameCustomBitsInit,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%u",
*fn_p_ulStdGameGetCustomBitsInit(h_StandardGame));
//ENDANNECY BBB 20/11/97 }
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameCapabilities,SCR_CC_C_Cfg_NoChar);
char szCapabilities[50];
itoa(fn_ulStandardGameGetCapabilities(h_StandardGame), szCapabilities, 2 );
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,1,"%s", szCapabilities);
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameTransparencyZone,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%i,%i",
fn_ucStandardGameGetTransparencyZoneMin(h_StandardGame),
fn_ucStandardGameGetTransparencyZoneMax(h_StandardGame));
// ANNECY MT - 22/10/98 {
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryStdGameTooFarLimit,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i",
fn_ucStandardGameGetTooFarLimit(h_StandardGame));
// END ANNECY MT }
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL)
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vSectInfoSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToSectInfo h_SectInfo = p_stObject->h_SectInfo;
if ( h_SectInfo != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** SectInfo mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionSectInfoDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
//Saves entries
//...
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vLightSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToMSLight h_MSLight = p_stObject->h_MSLight;
if ( h_MSLight != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** MSLight mini-structure definition ****");
sprintf(szSection,"%s:", C_SectionLightDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_NoChar);
switch(*fn_p_lMSLightGetTypeInit(h_MSLight))
{
case GLI_C_lParallelLight:
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal, 1,"Parallel");
break;
case GLI_C_lSphericalLight:
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal, 1,"Spherical");
break;
case GLI_C_lHotSpotLight:
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal, 1,"HotSpot");
break;
case GLI_C_lAmbientLight:
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal, 1,"Ambient");
break;
//CHINA WFQ (MT) 16/02/98 {
case GLI_C_lParallelLight_With_Limit:
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal, 1,"ParallelBox");
break;
//ENDCHINA WFQ }
default:
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal, 1,"Ambient");
break;
}
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryLightOnOff,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2, "%d",*fn_p_lMSLightGetOnOffInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryLightFarNear,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%f,%f",*fn_p_xMSLightGetFarInit(h_MSLight),
*fn_p_xMSLightGetNearInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryLightLittleBigAlpha,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%f,%f",*fn_p_xMSLightGetLittleAlphaInit(h_MSLight),
*fn_p_xMSLightGetBigAlphaInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryLightLittleBigTangent,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%f,%f",*fn_p_xMSLightGetLittleTangentInit(h_MSLight),
*fn_p_xMSLightGetBigTangentInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryLightColor,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,5,"%f,%f,%f,%f",
*fn_p_xMSLightGetColorRInit(h_MSLight),
*fn_p_xMSLightGetColorGInit(h_MSLight),
*fn_p_xMSLightGetColorBInit(h_MSLight),
0.0);
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryGiroPhare,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%d,%f",
*fn_p_ucMSLightGetGiroPhareInit(h_MSLight),
*fn_p_xMSLightGetStepGiroInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryPulse,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%d,%f,%f",
*fn_p_ucMSLightGetPulsingInit(h_MSLight),
*fn_p_xMSLightGetStepPulseInit(h_MSLight),
*fn_p_xMSLightGetMaxRangePulseInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryOffset,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
fn_p_stMSLightGetOffsetVectInit(h_MSLight)->xX,
fn_p_stMSLightGetOffsetVectInit(h_MSLight)->xY,
fn_p_stMSLightGetOffsetVectInit(h_MSLight)->xZ);
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryDirection,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
fn_p_stMSLightGetAngleInit(h_MSLight)->xX,
fn_p_stMSLightGetAngleInit(h_MSLight)->xY,
fn_p_stMSLightGetAngleInit(h_MSLight)->xZ);
//ANNECY CT 13/01/98 {
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryLocalLight,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%d",*fn_p_ucMSLightGetLocalLightInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryOnlyLocalLight,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%d",*fn_p_ucMSLightGetOnlyLocalInit(h_MSLight));
//ENDANNECY CT }
//CHINA WFQ (MT) 16/02/98 {
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryInterMinPos,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
*fn_p_xMSLightGetInterMinXInit(h_MSLight),
*fn_p_xMSLightGetInterMinYInit(h_MSLight),
*fn_p_xMSLightGetInterMinZInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryInterMaxPos,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
*fn_p_xMSLightGetInterMaxXInit(h_MSLight),
*fn_p_xMSLightGetInterMaxYInit(h_MSLight),
*fn_p_xMSLightGetInterMaxZInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryExterMinPos,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
*fn_p_xMSLightGetExterMinXInit(h_MSLight),
*fn_p_xMSLightGetExterMinYInit(h_MSLight),
*fn_p_xMSLightGetExterMinZInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryExterMaxPos,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
*fn_p_xMSLightGetExterMaxXInit(h_MSLight),
*fn_p_xMSLightGetExterMaxYInit(h_MSLight),
*fn_p_xMSLightGetExterMaxZInit(h_MSLight));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryIntensityMinMax,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%f,%f",
*fn_p_xMSLightGetIntensityMinInit(h_MSLight),
*fn_p_xMSLightGetIntensityMaxInit(h_MSLight));
//ENDCHINA WFQ }
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vMSWaySaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToMSWay h_MSWay = p_stObject->h_MSWay;
if ( h_MSWay != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** MSWay mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionMSWayDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile, szSection, SCR_CC_C_Cfg_EOL);
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vMicroSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToMicro h_MS_Micro = p_stObject->h_Micro;
MTH3D_tdstVector stX,stY,stZ;
if ( h_MS_Micro != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** MS_Micro mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionMicroDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
/** Put here the saving script functions **/
POS_fn_vGetRotationMatrix(h_MS_Micro->hMicroMatrix, &stX, &stY, &stZ);
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMicroRotationMatrix, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,9,
"%f,%f,%f,%f,%f,%f,%f,%f,%f",
stX.xX,stX.xY,stX.xZ,
stY.xX,stY.xY,stY.xZ,
stZ.xX,stZ.xY,stZ.xZ);
POS_fn_vGetTranslationVector(h_MS_Micro->hMicroMatrix, &stX);
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMicroTranslationMatrix, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%f,%f,%f",stX.xX,stX.xY,stX.xZ);
//Micro is active
if ( fn_bMicroGetActivationFlag(h_MS_Micro) )
{
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMicroActivation, SCR_CC_C_Cfg_NoChar);
}
else
{
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMicroUnactivation, SCR_CC_C_Cfg_NoChar);
}
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,1,"");
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vDynamSaveMiniStructure(SCRIPT_tdstSaveFile *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
char szName[SCR_CV_ui_Cfg_MaxLenName];
//ANNECY jt {
DNM_tdstDynamics* p_stDynamics;
//ENDANNECY jt }
MS_tdxHandleToDynam h_Dynam = p_stObject->h_Dynam;
if ( h_Dynam != NULL )
{
//ANNECY jt {
p_stDynamics = fn_p_stDynamGetDynamics(h_Dynam);
//ENDANNECY jt }
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** Dynam mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionDynamDescription);
if (DNM_M_bDynamicsIsComplexSize(p_stDynamics)) strcpy ( szName, C_szDynamicSizeComplex );
else if (DNM_M_bDynamicsIsAdvancedSize(p_stDynamics)) strcpy ( szName, C_szDynamicSizeAdvanced );
else strcpy ( szName, C_szDynamicSizeBase );
// SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 3, "%s,%i", szName, DNM_M_bDynamicsIsCollisionReport(p_stDynamics) );
//Saves entries
//////////////////
//Object Type
//ANNECY jt {
/*
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryDynamType, SCR_CC_C_Cfg_NoChar);
CString csString1;
CString csString2 = fn_b_DynamGetIfIsAMobile(h_Dynam) ? C_szIsMobile : C_szIsNotMobile;
CString csString3 = fn_b_DynamGetIfCanHangSmthgOn(h_Dynam) ? C_szCanHangSmthgOn : C_szCanNotHangSmthgOn;
switch ( fn_uc_DynamGetObjectType(h_Dynam) )
{
case DNM_C_lObjectType_Solid:
csString1 = C_szSolid;
break;
case DNM_C_lObjectType_Liquid:
csString1 = C_szLiquid;
break;
case DNM_C_lObjectType_Gas:
csString1 = C_szGas;
break;
case DNM_C_lObjectType_Plasma:
csString1 = C_szPlasma;
break;
default:
csString1 = C_szUnknownType;
break;
};
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%s,%s,%s",
M_MAKECHAR(csString1),
M_MAKECHAR(csString2),
M_MAKECHAR(csString3));
SCR_M_SvL0_SaveEntry(p_stFile, C_szTakeCareOfTheEnvironment, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%i", fn_bDynamTakeCareOfEnvironment(h_Dynam));
*/
/* SCR_M_SvL0_SaveEntry (p_stFile, C_szSlideFactorX, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP (p_stFile, SCR_EF_SvL0_Scanf, 2, "%lf", DNM_M_xDynamicsGetSlideFactorX(p_stDynamics) );
SCR_M_SvL0_SaveEntry (p_stFile, C_szSlideFactorY, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP (p_stFile, SCR_EF_SvL0_Scanf, 2, "%lf", DNM_M_xDynamicsGetSlideFactorY(p_stDynamics) );
SCR_M_SvL0_SaveEntry (p_stFile, C_szSlideFactorZ, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP (p_stFile, SCR_EF_SvL0_Scanf, 2, "%lf", DNM_M_xDynamicsGetSlideFactorZ(p_stDynamics) );
*/
if (DNM_M_bDynamicsIsAdvancedSize(p_stDynamics))
{
SCR_M_SvL0_SaveEntry (p_stFile, C_szSlideFactorX, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP (p_stFile, SCR_EF_SvL0_Scanf, 2, "%lf", p_stDynamics->m_tdstDynamicsAdvancedBlock.m_xSlideFactorX );
SCR_M_SvL0_SaveEntry (p_stFile, C_szSlideFactorY, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP (p_stFile, SCR_EF_SvL0_Scanf, 2, "%lf", p_stDynamics->m_tdstDynamicsAdvancedBlock.m_xSlideFactorY );
SCR_M_SvL0_SaveEntry (p_stFile, C_szSlideFactorZ, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP (p_stFile, SCR_EF_SvL0_Scanf, 2, "%lf", p_stDynamics->m_tdstDynamicsAdvancedBlock.m_xSlideFactorZ );
}
//ENDANNECY jt }
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vCollSetSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToCollSet h_CollSet = p_stObject->h_CollSet;
char *szFamilyName = fn_szFindFamilyTypeNameOfFamilyType(fn_otStandardGameGetFamilyType(p_stObject->h_StandardGame));
if ( h_CollSet != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** CollSet mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionCollSetDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
CString csSectionName;
//Character's priority
SCR_M_SvL0_SaveEntry(p_stFile, C_Entry_CharacterPriority, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%i", CS_fn_ucGetCharacterPriority(h_CollSet));
// Collision Flag
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryCollisionFlag, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%i", *fn_p_ucCollSetGetCharacterCollisionFlagInit(h_CollSet));
// Collision Frequency
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryCollComputeFrequency, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%i", *fn_p_ucCollSetGetCollComputeFrequencyInit(h_CollSet));
SCR_M_SvL0_SaveBlankLine(p_stFile);
if ((p_stObject->h_CollSet)->hZddList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZddTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZddList, TRUE, csSectionName) ); // MT 07/05/97
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
if ((p_stObject->h_CollSet)->hZdmList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZdmTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZdmList, TRUE, csSectionName) ); // MT 07/05/97
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
if ((p_stObject->h_CollSet)->hZdeList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZdeTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZdeList, TRUE, csSectionName) ); // MT 07/05/97
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
if ((p_stObject->h_CollSet)->hZdrList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZdrTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZdrList, TRUE, csSectionName) );
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
if ((p_stObject->h_CollSet)->hZddActivationList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZddActivationTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZddActivationList, FALSE, csSectionName) );
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
if ((p_stObject->h_CollSet)->hZdeActivationList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZdeActivationTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZdeActivationList, FALSE, csSectionName) );
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
if ((p_stObject->h_CollSet)->hZdmActivationList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZdmActivationTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZdmActivationList, FALSE, csSectionName) );
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
if ((p_stObject->h_CollSet)->hZdrActivationList!=NULL)
{
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryZdrActivationTable,SCR_CC_C_Cfg_NoChar);
ERROR_VERIFY( EDACTORS_fn_b_GetZoneListSectionName((void*)(p_stObject->h_CollSet)->hZdrActivationList, FALSE, csSectionName) );
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s",LPCTSTR(csSectionName));
}
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//ANNECY CB
/*
*=================================================================================================
* Save camera cineinfo MS.
*=================================================================================================
*/
void ED_ACTORS_fn_vCineinfoSaveMiniStructure
(
SCR_tdst_File_Description *p_stFile,
struct tdstEngineObject_ *p_stObject
)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToCineinfo h_CineInfo = p_stObject->h_Cineinfo;
MTH3D_tdstVector *p_stVector;
if (h_CineInfo != NULL)
{
MS_tdxHandleToInternalCineinfo hCineinfoInit = M_GetInternalCineinfo(h_CineInfo, Init);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** CineInfo MS ****");
/*---------------------------------------------------------------------------------------*/
sprintf(szSection,"%s:", C_SectionCineinfoDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile, szSection, SCR_CC_C_Cfg_EOL);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryShiftTarget, SCR_CC_C_Cfg_NoChar);
p_stVector = CAM_fn_p_stCineInfoGetShiftTarget(hCineinfoInit);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,4,
"%f,%f,%f",
MTH3D_M_xGetXofVector(p_stVector),
MTH3D_M_xGetYofVector(p_stVector),
MTH3D_M_xGetZofVector(p_stVector)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryShiftPos, SCR_CC_C_Cfg_NoChar);
p_stVector = CAM_fn_p_stCineInfoGetShiftPos(hCineinfoInit);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,4,
"%f,%f,%f",
MTH3D_M_xGetXofVector(p_stVector),
MTH3D_M_xGetYofVector(p_stVector),
MTH3D_M_xGetZofVector(p_stVector)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryDistance, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,5,
"%f,%f, %f, %f",
CAM_fn_xCineInfoGetDistMin(hCineinfoInit),
CAM_fn_xCineInfoGetDistMax(hCineinfoInit),
CAM_fn_xCineInfoGetBoundDistMin(hCineinfoInit),
CAM_fn_xCineInfoGetBoundDistMax(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile,C_CAM_EntryAlpha, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,3,
"%f,%f",
CAM_fn_xCineInfoGetAngleAlpha(hCineinfoInit),
CAM_fn_xCineInfoGetAngleShiftAlpha(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryTheta, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,3,
"%f,%f",
CAM_fn_xCineInfoGetAngleTheta(hCineinfoInit),
CAM_fn_xCineInfoGetAngleShiftTheta(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryLinearSpeed,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,4,
"%f,%f,%f",
CAM_fn_xCineInfoGetLinearSpeed(hCineinfoInit),
CAM_fn_xCineInfoGetLinearIncreaseSpeed(hCineinfoInit),
CAM_fn_xCineInfoGetLinearDecreaseSpeed(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryAngularSpeed,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,4,
"%f,%f,%f",
CAM_fn_xCineInfoGetAngularSpeed(hCineinfoInit),
CAM_fn_xCineInfoGetAngularIncreaseSpeed(hCineinfoInit),
CAM_fn_xCineInfoGetAngularDecreaseSpeed(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryTargetSpeed,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,4,
"%f,%f,%f",
CAM_fn_xCineInfoGetTargetSpeed(hCineinfoInit),
CAM_fn_xCineInfoGetTargetIncreaseSpeed(hCineinfoInit),
CAM_fn_xCineInfoGetTargetDecreaseSpeed(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryDNMFlags, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf, 2,
"%d",
CAM_fn_uwCineInfoGetDNMFlags(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryIAFlags, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf, 2,
"%d",
CAM_fn_uwCineInfoGetIAFlags(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryFocal, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf, 2,
"%f",
CAM_fn_xCineInfoGetFocal(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryZMinMax, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf, 3,
"%f, %f",
CAM_fn_xCineInfoGetZMin(hCineinfoInit),
CAM_fn_xCineInfoGetZMax(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryViewport, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,2,
"%d",
CAM_fn_eCineInfoGetTypeOfViewport(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryChannel, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf, 2,
"%i",
CAM_fn_cCineInfoGetChannel(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEntry(p_stFile, C_CAM_EntryActivation, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP
(
p_stFile, SCR_EF_SvL0_Scanf,2,
"%d",
CAM_fn_bCineInfoGetIsActive(hCineinfoInit)
);
/*---------------------------------------------------------------------------------------*/
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//ENDANNECY CB
//*****************************************************************************************************************
void ED_ACTORS_fn_v3dDataSaveMiniStructure(SCR_tdst_File_Description *p_stFile, struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleTo3dData h_3dData = p_stObject->h_3dData;
if ( h_3dData != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** 3dData mini-structure definition ****");
sprintf(szSection,"%s:",C_Section3dDataDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
//Saves entries
////////////////////
//Saves Initial State
CPA_Actor *pclActor = (CPA_Actor *)g_pclInterface->GetMainWorld()->fn_p_oFindObjectWithEngine(p_stObject, g_c_csActorType);
//Gets Editor corresponding State
CPA_State *pclEditorState = (CPA_State *)g_pclInterface->GetMainWorld()->fn_p_oFindObjectWithEngine((void *)h_3dData->h_InitialState, C_szStateTypeName);
CString csMsg = CString("The initial State of Actor '") + pclActor->GetName() + "' cannot be found";
ERROR_PREPARE_M(g_c_csActorModuleNameForErrors,
"Trying to save the initial State in a motor Actor (.car)",
"ED_ACTORS_fn_v3dDataSaveMiniStructure(...)",
E_ERROR_GRAVITY_WARNING,
csMsg);
ERROR_ASSERT( pclEditorState != NULL );
if ( pclEditorState != NULL )
{
SCR_M_SvL0_SaveEntry(p_stFile, C_LevelCharacterInitialState, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Normal, 1, pclEditorState->GetReferencedSectionName());
}
//Initial Object Table
void *pvMotorOT = (void *)fn_h3dDataGetInitialObjectsTable(h_3dData);
EditorObjectTable *pclInitOT = (EditorObjectTable *)g_pclInterface->GetMainWorld()->fn_p_oFindObjectWithEngine(pvMotorOT, C_szObjectTableTypeName);
if ( pclInitOT != NULL )
{
CString csObjectTableParameter = pclInitOT->GetName();
csObjectTableParameter = pclActor->m_pub_fn_pclGetFamily()->GetName() + "\\" + csObjectTableParameter;
SCR_M_SvL0_SaveEntry(p_stFile, C_Entry3dDataInitialObjectsTable, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s", M_MAKECHAR(csObjectTableParameter));
}
//Saves Draw Mask
SCR_M_SvL0_SaveEntry(p_stFile, C_Entry3dDataDrawMask, SCR_CC_C_Cfg_NoChar);
//ANNECY VL PRT 08/04/98{
//unsigned long ulDrawMask = (unsigned long)fn_l3dDataGetDrawMask(h_3dData);
unsigned long ulDrawMask = (unsigned long)fn_l3dDataGetDrawMaskInit(h_3dData);
//ENDANNECY VL}
CString csFormattedString;
csFormattedString.Format("%u", ulDrawMask);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s", M_MAKECHAR(csFormattedString));
//Saves Shadow Scale
SCR_M_SvL0_SaveEntry(p_stFile, C_Entry3dDataShadowScale, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,3,"%f,%f", fn_x3dDataGetShadowScaleX(h_3dData),
fn_x3dDataGetShadowScaleY(h_3dData));
//Saves Shadow Material
SCR_tdst_Link_Table *p_tdstLinkTable = GMT_fn_p_stGetLinkTable();
if ( p_tdstLinkTable != NULL )
{
SCR_tdst_Link_Value *p_tdstLinkValue = SCR_fnp_st_Link_SearchValue(p_tdstLinkTable, (unsigned long)fn_p_st3dDataGetShadowMaterial(h_3dData));
if ( p_tdstLinkValue != NULL )
{
SCR_M_SvL0_SaveEntry(p_stFile, C_Entry3dDataShadowMaterial, SCR_CC_C_Cfg_NoChar);
CString csKey = SCR_M_p_sz_Link_GetKey(p_tdstLinkValue);
long lOffset = SCR_M_ul_Link_GetAdditionalLong(p_tdstLinkValue, 1);
if ( lOffset > 0 )
csKey = csKey.Right(csKey.GetLength() - lOffset);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%s", M_MAKECHAR(csKey));
}
}
//Saves Shadow Quality
SCR_M_SvL0_SaveEntry(p_stFile, C_Entry3dDataShadowQuality, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%ld", fn_x3dDataGetShadowQuality(h_3dData));
//Saves Shadow Heihgt
SCR_M_SvL0_SaveEntry(p_stFile, C_Entry3dDataShadowHeight, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%f", *(fn_p_x3dDataGetSHWHeight(h_3dData)));
/* ANNECY MT - 09/11/98 { Now, this value is set to 1 on init for every actor
// Saves Brain computation frequency
SCR_M_SvL0_SaveEntry(p_stFile,C_Entry3dDataBrainComputationFrequency,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2, "%d",fn_uc3dDataGetBrainComputationFrequency(h_3dData));
END ANNECY MT } */
// Saves Light computation frequency
SCR_M_SvL0_SaveEntry(p_stFile,C_Entry3dDataLightComputationFrequency,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2, "%d",fn_uc3dDataGetLightComputationFrequency(h_3dData));
// End Section
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL)
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vBrainSaveMiniStructure(CPA_Actor *pclActor,SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToBrain h_Brain = p_stObject->h_Brain;
//-----------------IR-------------------------
CPA_EdIR_Brain *pclBrain=pclActor->m_fn_pclGetModel()->m_fn_pclGetEditorModel()->m_pclBrain;
/*
if((
pclBrain->m_clListOfIntelligenceBehaviours.GetCount()!=0
|| pclBrain->m_clListOfReflexBehaviours.GetCount()!=0
|| pclBrain->m_clListOfDeclarations.GetCount()!=0
)
&& p_stObject->h_Brain!=NULL)
*/
if( p_stObject->h_Brain != NULL )
//--------------------------------------------
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** Brain mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionBrainDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
//Saves entries
//...
//-----------------IR-------------------------
EDAC_fn_vSaveInitValuesInBrainMS(pclActor,p_stFile);
//--------------------------------------------
// Shaitan FastC {
/*
if (p_stObject->h_Brain->CFast_bIsC)
{
SCR_M_SvL0_SaveEntry(p_stFile, "CFast_IsC", SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 1, "%ld", p_stObject->h_Brain->CFast_bIsC);
}
if (p_stObject->h_Brain->CFast_lFunction != 0)
{
SCR_M_SvL0_SaveEntry(p_stFile, "CFast_FunctionIndex", SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 1, "%ld", p_stObject->h_Brain->CFast_bIsC);
}
*/
//End Shaitan FastC }
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL)
}
}
//*****************************************************************************************************************
void ED_ACTORS_fn_vPrtSourceSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToMSPrtSrc h_PrtSrc = p_stObject->h_MSPrtSrc;
if ( h_PrtSrc != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** PrtSrc mini-structure definition ****");
sprintf(szSection, "%s:", C_SectionMSPrtSrcDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
//Saves entries
//
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMSPrtSrcGeneratorActivation, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s", fn_ucMSPrtSrcGetGeneratorActivation(h_PrtSrc) ? "ON" : "OFF");
//Gets editor PG
CPA_SaveObject *pclPG = (CPA_SaveObject *)g_pclInterface->GetMainWorld()->fn_p_oFindObjectWithEngine((void *)fn_p_stMSPrtSrcGetGenerator(h_PrtSrc), C_szPartGenGeneratorName);
ERROR_PREPARE_M(g_c_csActorModuleNameForErrors,
"Saving the MS 'PrtSource' in an Instance",
"ED_ACTORS_fn_vPrtSourceSaveMiniStructure(...)",
E_ERROR_GRAVITY_INSTABLE,
"The Editor Object corresponding to the Motor value cannot be found : no save !");
ERROR_ASSERT( pclPG != NULL );
if ( pclPG != NULL )
{
//
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMSPrtSrcParticleGenerator, SCR_CC_C_Cfg_NoChar);
CString csRef = pclPG->GetReferencedSectionName();
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%s", M_MAKECHAR(csRef));
}
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL)
}
}
//ANNECY BBB 17/10/97 {
//*****************************************************************************************************************
void ED_ACTORS_fn_vAnimEffectSaveMiniStructure(SCR_tdst_File_Description *p_stFile, struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToAnimEffect h_AnimEffect = p_stObject->h_AnimEffect;
if ( h_AnimEffect != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** AnimEffect mini-structure definition ****");
sprintf(szSection,"%s:",C_SectionAnimEffectDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
//Saves entries
MTH3D_tdstVector stVector;
//shift phase
stVector = fn_stAnimEffectGetShiftPhase(h_AnimEffect);
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryAnimEffectShiftPhase, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
MTH3D_M_xGetXofVector(&stVector),
MTH3D_M_xGetYofVector(&stVector),
MTH3D_M_xGetZofVector(&stVector)
);
//shift max
stVector = fn_stAnimEffectGetShiftMax(h_AnimEffect);
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryAnimEffectShiftMax, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
MTH3D_M_xGetXofVector(&stVector),
MTH3D_M_xGetYofVector(&stVector),
MTH3D_M_xGetZofVector(&stVector)
);
//shift plus
stVector = fn_stAnimEffectGetShiftPlus(h_AnimEffect);
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryAnimEffectShiftPlus, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,4,"%f,%f,%f",
MTH3D_M_xGetXofVector(&stVector),
MTH3D_M_xGetYofVector(&stVector),
MTH3D_M_xGetZofVector(&stVector)
);
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
//ENDANNECY BBB 17/10/97 }
//*****************************************************************************************************************
void ED_ACTORS_fn_vSoundSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToMSSound h_MSSound = p_stObject->h_MSSound;
if ( h_MSSound != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** MSSound mini-structure definition ****");
sprintf(szSection, "%s:", C_SectionMSSoundDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
//Saves entries
//Saturation Distance
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMSSoundSaturationDistance, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i", *fn_p_xMSSoundGetSaturationDistanceInit(h_MSSound));
//BackGround Distance
SCR_M_SvL0_SaveEntry(p_stFile, C_EntryMSSoundBackGroundDistance, SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%i", *fn_p_xMSSoundGetBackGroundDistanceInit(h_MSSound));
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL)
}
}
// CHINA QZY (MT) 26/02/98 {
//*****************************************************************************************************************
void ED_ACTORS_fn_vMagnetSaveMiniStructure(SCR_tdst_File_Description *p_stFile,struct tdstEngineObject_ *p_stObject)
{
char szSection[SCR_CV_ui_Cfg_MaxLenName];
MS_tdxHandleToMSMagnet h_MSMagnet = p_stObject->h_MSMagnet;
if ( h_MSMagnet != NULL )
{
SCR_M_SvL0_SaveBlankLine(p_stFile);
SCR_M_SvL0_SaveComment(p_stFile, "**** MSMagnet mini-structure definition ****");
sprintf(szSection,"%s:", C_SectionMSMagnetDescription);
SCR_M_SvL0_SaveBeginSection(p_stFile,szSection,SCR_CC_C_Cfg_EOL);
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryMagnetFar,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%f",*fn_p_xMSMagnetGetFarInit(h_MSMagnet));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryMagnetNear,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%f",*fn_p_xMSMagnetGetNearInit(h_MSMagnet));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryMagnetStrength,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%f",*fn_p_xMSMagnetGetStrengthInit(h_MSMagnet));
SCR_M_SvL0_SaveEntry(p_stFile,C_EntryMagnetDuration,SCR_CC_C_Cfg_NoChar);
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf,2,"%d",*fn_p_ulMSMagnetGetDurationInit(h_MSMagnet));
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
}
}
// ENDCHINA QZY }