432 lines
11 KiB
C++
432 lines
11 KiB
C++
// Saving functions
|
|
//////////////////////////////
|
|
// Mechanics Editor
|
|
/////////////////////////////////////////
|
|
#include "StdAfx.h"
|
|
|
|
#include "_MecCard.hpp"
|
|
#include "EMECCrdT.hpp"
|
|
#include "EMECStrg.hpp"
|
|
#include "EMECFlds.hpp"
|
|
|
|
//External Modules
|
|
#include "ErO.h"
|
|
//End of External Modules
|
|
|
|
//*******************************************************************************************
|
|
// Will call one of the specific saving functions
|
|
void CPA_Meca_Card::m_fn_vSaveMecaCard(SCR_tdst_File_Description *p_tdstFile,
|
|
SCR_tde_Ntfy_Action _eAction)
|
|
{
|
|
ERROR_ASSERT( m_fn_pclGetCardType()->m_p_fn_vSave != NULL );
|
|
|
|
//Moves to the End of File
|
|
if ( _eAction == SCR_EA_Ntfy_AddSection )
|
|
SCR_fn_v_SvL1_ToEndSection(p_tdstFile);
|
|
|
|
m_fn_pclGetCardType()->m_p_fn_vSave(p_tdstFile, this);
|
|
|
|
SCR_M_SvL0_SaveBlankLine(p_tdstFile);
|
|
}
|
|
|
|
|
|
//*******************************************************************************************
|
|
void fn_vSaveCard6(SCR_tdst_File_Description *p_tdstFile, CPA_Meca_Card *pclCard)
|
|
{
|
|
CString csCurrentLine;
|
|
|
|
csCurrentLine.Format("%s:%s", C_SectionIdCardCamera,
|
|
pclCard->GetName());
|
|
|
|
SCR_M_SvL0_SaveBeginSection(p_tdstFile,
|
|
M_MAKECHAR(csCurrentLine),
|
|
SCR_CC_C_Cfg_EOL);
|
|
|
|
//Gets Base structure
|
|
DNM_stMecCameraIdCard * pStruct = (DNM_stMecCameraIdCard *)pclCard->m_fn_pvGetBaseAddress();
|
|
|
|
//Angular Speed
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryAngularSpeed,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%f",
|
|
DNM_M_xCameraIdCardGetAngularSpeed(pStruct));
|
|
|
|
//Linear Speed
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryLinearSpeed,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%f",
|
|
DNM_M_xCameraIdCardGetLinearSpeed(pStruct));
|
|
|
|
//Speeding Up
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntrySpeedingUp,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%f",
|
|
DNM_M_xCameraIdCardGetSpeedingUp(pStruct));
|
|
|
|
|
|
//Closes file's main section
|
|
SCR_M_SvL0_SaveEndSection(p_tdstFile, SCR_CC_C_Cfg_EOL);
|
|
}
|
|
|
|
|
|
|
|
//*******************************************************************************************
|
|
void fn_vSaveCardRay2Egypte1(SCR_tdst_File_Description *p_tdstFile, CPA_Meca_Card *pclCard)
|
|
{
|
|
CString csCurrentLine;
|
|
|
|
csCurrentLine.Format("%s:%s", C_SectionIdCardBase,
|
|
pclCard->GetName());
|
|
|
|
SCR_M_SvL0_SaveBeginSection(p_tdstFile,
|
|
M_MAKECHAR(csCurrentLine),
|
|
SCR_CC_C_Cfg_EOL);
|
|
|
|
//Gets Base structure
|
|
DNM_tdstMecBaseIdCard *pStruct = (DNM_tdstMecBaseIdCard *)pclCard->m_fn_pvGetBaseAddress();
|
|
|
|
// Animation
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseAnimation,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsAnimation(pStruct));
|
|
|
|
// Collide
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseCollide,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsCollide(pStruct));
|
|
|
|
// Gravity
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseGravity,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsGravity(pStruct));
|
|
|
|
|
|
// Tilt
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseTilt,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsTilt(pStruct));
|
|
|
|
// Gi
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseGi,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsGi(pStruct));
|
|
|
|
|
|
// Climb
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseClimb,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsClimb(pStruct));
|
|
|
|
|
|
// On ground
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseOnGround,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsOnGround(pStruct));
|
|
|
|
|
|
// Spider
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseSpider,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsSpider(pStruct));
|
|
|
|
|
|
// Shoot
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseShoot,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsShoot(pStruct));
|
|
|
|
|
|
// Swim
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseSwim,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsSwim(pStruct));
|
|
|
|
|
|
// Collision control
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseCollisionControl,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsCollisionControl(pStruct));
|
|
|
|
|
|
// Keep speed.z
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseKeepWallSpeedZ,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsKeepWallSpeedZ(pStruct));
|
|
|
|
|
|
// Speed limit
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseSpeedLimit,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsSpeedLimit(pStruct));
|
|
|
|
// Inertia
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseInertia,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsInertia(pStruct));
|
|
|
|
// Stream
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseStream,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsStream(pStruct));
|
|
|
|
// Stick on platform
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseStickOnPlatform,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsStickOnPlatform(pStruct));
|
|
|
|
// scale
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseUseScale,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%i",
|
|
DNM_M_bBaseIdCardIsScale(pStruct));
|
|
|
|
// Gravity factor
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseGravityFactor,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetGravityFactor(pStruct));
|
|
|
|
|
|
// slide
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseSlide,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetSlide(pStruct));
|
|
|
|
// rebound
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseRebound,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetRebound(pStruct));
|
|
|
|
// slope limit
|
|
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseSlopeLimit,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
MTH_M_xTan (MTH_M_xDegToRad (DNM_M_xBaseIdCardGetSlopeLimit(pStruct))) );
|
|
|
|
|
|
// inertia x
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseInertiaFactorX,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetInertiaFactorX(pStruct) );
|
|
|
|
// inertia y
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseInertiaFactorY,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetInertiaFactorY(pStruct) );
|
|
|
|
// inertia z
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseInertiaFactorZ,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetInertiaFactorZ(pStruct) );
|
|
|
|
// tilt intensity
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseTiltIntensity,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetTiltIntensity(pStruct) );
|
|
|
|
// tilt inertia
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseTiltInertia,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetTiltInertia(pStruct) );
|
|
|
|
|
|
// tilt origin
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseTiltOrigin,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
2,
|
|
"%lf",
|
|
DNM_M_xBaseIdCardGetTiltOrigin(pStruct) );
|
|
|
|
|
|
// max speed
|
|
SCR_M_SvL0_SaveEntry( p_tdstFile,
|
|
C_EntryBaseMaxSpeed,
|
|
SCR_CC_C_Cfg_NoChar);
|
|
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_tdstFile,
|
|
SCR_EF_SvL0_Scanf,
|
|
4,
|
|
"%lf,%lf,%lf",
|
|
MTH3D_M_xGetXofVector(DNM_M_pBaseIdCardGetMaxSpeed(pStruct)),
|
|
MTH3D_M_xGetYofVector(DNM_M_pBaseIdCardGetMaxSpeed(pStruct)),
|
|
MTH3D_M_xGetZofVector(DNM_M_pBaseIdCardGetMaxSpeed(pStruct))
|
|
);
|
|
|
|
//Closes file's main section
|
|
SCR_M_SvL0_SaveEndSection(p_tdstFile, SCR_CC_C_Cfg_EOL);
|
|
}
|
|
//ENDANNECY jt }
|