132 lines
5.2 KiB
C
132 lines
5.2 KiB
C
/*=========================================================================
|
|
*
|
|
* ObjSave.c - save obj file
|
|
*
|
|
* Version 1.0
|
|
* Revision date
|
|
*
|
|
*=======================================================================*/
|
|
|
|
#include "ObjSave.h"
|
|
|
|
#include "conventi.h"
|
|
#include "print.h"
|
|
#include "system.h"
|
|
|
|
#include "ModLib.h"
|
|
|
|
|
|
//--------------------------------------------------------------------
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: save OBJ file header
|
|
*
|
|
* Parameters: p_stFile : script file pointer
|
|
* sFileName : file name
|
|
* p_vPtr : data pointer
|
|
* xAction : script action
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void MLT_vSaveObjHeader (SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction)
|
|
{
|
|
xString mes;
|
|
|
|
SCR_fn_v_SvL1_DeleteSection(p_stFile);
|
|
SCR_M_SvL0_SaveScriptFileHeader(p_stFile);
|
|
|
|
//save theheader section of .obj file
|
|
sprintf(mes, "%s%s", M_A3D_HEADER, SCR_CC_sz_Cfg_SectionIdMark);
|
|
SCR_M_SvL0_SaveBeginSection(p_stFile, mes, SCR_CC_C_Cfg_EOL);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionFileType, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%s", "ObjectsTable");
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionVersionNumber, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%d", 5);
|
|
|
|
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
|
|
}
|
|
|
|
|
|
/****************************************************************************
|
|
* Description: Save OBJ file
|
|
*
|
|
* Parameters: p_stFile : script file pointer
|
|
* sFileName : file name
|
|
* p_vPtr : data pointer
|
|
* xAction : script action
|
|
*---------------------------------------------------------------------------
|
|
* Revision date: Author:
|
|
*****************************************************************************/
|
|
void MLT_vSaveObjFile(SCR_tdst_File_Description *p_stFile, char *sFileName, void *p_vPtr, SCR_tde_Ntfy_Action xAction)
|
|
{
|
|
xString mes, sFile, sSection, sAction, sIdent;
|
|
int i;
|
|
|
|
SCR_fn_v_SvL1_ToEndSection(p_stFile);
|
|
|
|
// general section
|
|
sprintf(mes, "%s%s", M_A3dObjectsTableGENERAL, SCR_CC_sz_Cfg_SectionIdMark);
|
|
SCR_M_SvL0_SaveBeginSection(p_stFile, mes, SCR_CC_C_Cfg_EOL);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionActor, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%s", g_sFileIn);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionCount, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%d", g_lGeometricIndex);
|
|
|
|
//this can be saved or not
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionGridSettings, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 6, "%d,%d,%d,%d,%d", 6,5,0,50,50);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionMaximumIndex, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%d", g_lGeometricIndex);
|
|
|
|
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
|
|
|
|
// save each module
|
|
for (i=0; i<g_lGeometricIndex; i++)
|
|
{
|
|
sprintf(mes, "%d()", i+1);
|
|
sprintf(sFile, "%s.obj", g_sFileIn);
|
|
|
|
SCR_fn_v_RdL0_ComputeSectionName(sSection, sFile, M_A3dObjectsTableELEMENT, mes);
|
|
SCR_M_SvL0_SaveBeginSection(p_stFile, MLT_p_cGetSectionName(sSection), SCR_CC_C_Cfg_EOL);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionStatus, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%s", "Object");
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionObjectType, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 2, "%s", "3dObject");
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionBank, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_RdL0_SplitSectionName(g_hGeometricInFile[i]->sName, sFile, sAction, sIdent);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 3, "%d,%s", 0, sFile);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionObject, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 3, "%d,%s", 0, sIdent);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionOrientation, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 10, "%d,%d,%d,%d,%d,%d,%d,%d,%d", 1,0,0,0,1,0,0,0,1);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionPosition, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 4, "%d,%d,%d", 0,0,0);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionPivotOrientation, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 10, "%d,%d,%d,%d,%d,%d,%d,%d,%d", 1,0,0,0,1,0,0,0,1);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionPivotPosition, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 4, "%d,%d,%d", 0,0,0);
|
|
|
|
SCR_M_SvL0_SaveEntry(p_stFile, M_OBJActionCustomZoom, SCR_CC_C_Cfg_NoChar);
|
|
SCR_fn_v_SvL0_SaveParameters_MP(p_stFile, SCR_EF_SvL0_Scanf, 10, "%d,%d,%d,%d,%d,%d,%d,%d,%d", 1,0,0,0,1,0,0,0,1);
|
|
|
|
SCR_M_SvL0_SaveEndSection(p_stFile, SCR_CC_C_Cfg_EOL);
|
|
}
|
|
|
|
}
|
|
|
|
|