1057 lines
43 KiB
C++
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 }
|