reman3/Rayman_X/cpa/Appli/Max23Dos/src/ObjSave.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);
}
}