void ESoundSource::Save(IWriter& F) { inherited::Save (F); F.open_chunk (SOUND_CHUNK_VERSION); F.w_u16 (SOUND_SOURCE_VERSION); F.close_chunk (); F.w_chunk (SOUND_CHUNK_TYPE,&m_Type,sizeof(m_Type)); F.open_chunk (SOUND_CHUNK_SOURCE_NAME); F.w_stringZ (m_WAVName); F.close_chunk (); F.w_chunk (SOUND_CHUNK_SOURCE_FLAGS,&m_Flags,sizeof(m_Flags)); F.open_chunk (SOUND_CHUNK_SOURCE_PARAMS3); F.w_fvector3 (m_Params.position); F.w_float (m_Params.volume); F.w_float (m_Params.freq); F.w_float (m_Params.min_distance); F.w_float (m_Params.max_distance); F.w_float (m_Params.max_ai_distance); F.close_chunk (); F.open_chunk (SOUND_CHUNK_GAME_PARAMS); F.w_fvector2 (m_RandomPause); F.w_fvector2 (m_ActiveTime); F.w_fvector2 (m_PlayTime); F.close_chunk (); }
void EDetail::Save(IWriter& F) { // version F.open_chunk (DETOBJ_CHUNK_VERSION); F.w_u32 (DETOBJ_VERSION); F.close_chunk (); // reference F.open_chunk (DETOBJ_CHUNK_REFERENCE); F.w_stringZ (m_sRefs.c_str()); F.close_chunk (); // scale F.open_chunk (DETOBJ_CHUNK_SCALE_LIMITS); F.w_float (m_fMinScale); F.w_float (m_fMaxScale); F.close_chunk (); // density factor F.open_chunk (DETOBJ_CHUNK_DENSITY_FACTOR); F.w_float (m_fDensityFactor); F.close_chunk (); // flags F.open_chunk (DETOBJ_CHUNK_FLAGS); F.w_u32 (m_Flags.get()); F.close_chunk (); }
void CSMotion::Save(IWriter& F) { CCustomMotion::Save(F); F.w_u16 (EOBJ_SMOTION_VERSION); F.w_s8 (m_Flags.get()); F.w_u16 (m_BoneOrPart); F.w_float (fSpeed); F.w_float (fAccrue); F.w_float (fFalloff); F.w_float (fPower); F.w_u16 ((u16)bone_mots.size()); for(BoneMotionIt bm_it=bone_mots.begin(); bm_it!=bone_mots.end(); bm_it++) { xr_strlwr (bm_it->name); F.w_stringZ (bm_it->name); F.w_u8 (bm_it->m_Flags.get()); for (int ch=0; ch<ctMaxChannel; ch++) bm_it->envs[ch]->Save(F); } u32 sz = marks.size(); F.w_u32 (sz); for(u32 i=0; i<sz; ++i) marks[i].Save(&F); }
void EDetail::Export(IWriter& F, LPCSTR tex_name, const Fvector2& offs, const Fvector2& scale, bool rot) { R_ASSERT (m_pRefs); CSurface* surf = *m_pRefs->FirstSurface(); R_ASSERT (surf); // write data F.w_stringZ (surf->_ShaderName()); F.w_stringZ (tex_name);//surf->_Texture()); F.w_u32 (m_Flags.get()); F.w_float (m_fMinScale); F.w_float (m_fMaxScale); F.w_u32 (number_vertices); F.w_u32 (number_indices); // remap UV EVertexIn* rm_vertices = xr_alloc<EVertexIn>(number_vertices); for (u32 k=0; k<number_vertices; k++) rm_vertices[k].remapUV(vertices[k],offs,scale,rot); F.w (rm_vertices, number_vertices*sizeof(fvfVertexIn)); F.w (indices, number_indices*sizeof(WORD)); xr_free (rm_vertices); }
void TClipMaker::SaveClips() { if (!clips.empty()){ if (EFS.GetSaveName("$clips$",m_ClipFName)){ IWriter* F = FS.w_open(m_ClipFName.c_str()); VERIFY(F); m_ClipFName = EFS.ExcludeBasePath(m_ClipFName.c_str(),FS.get_path("$clips$")->m_Path); if (F){ F->open_chunk(CHUNK_ZOOM); F->w_float (m_Zoom); F->close_chunk(); F->open_chunk (CHUNK_CLIPS); int count = 0; for (UIClipIt c_it=clips.begin(); c_it!=clips.end(); c_it++){ F->open_chunk(count); count++; (*c_it)->Save(*F); F->close_chunk(); } F->close_chunk (); FS.w_close(F); }else{ Log ("!Can't save clip:",m_ClipFName.c_str()); } } }else{ ELog.DlgMsg(mtError,"Clip list empty."); } }
void CPostProcessColor::save (IWriter &pWriter) { pWriter.w_float (m_fBase); m_Red.Save (pWriter); m_Green.Save (pWriter); m_Blue.Save (pWriter); }
void CClip::Save(IWriter& F) { F.open_chunk (EOBJ_CLIP_VERSION_CHUNK); F.w_u16 (EOBJ_CLIP_VERSION); F.close_chunk (); F.open_chunk (EOBJ_CLIP_DATA_CHUNK); F.w_stringZ (name); for (int k=0; k<4; k++){ F.w_stringZ (cycles[k].name); F.w_u16 (cycles[k].slot); } F.w_stringZ (fx.name); F.w_u16 (fx.slot); F.w_float (fx_power); F.w_float (length); F.close_chunk (); }
void CCustomMotion::Save(IWriter& F) { #ifdef _LW_EXPORT ReplaceSpaceAndLowerCase(name); #endif F.w_stringZ (name); F.w_u32 (iFrameStart); F.w_u32 (iFrameEnd); F.w_float (fFPS); }
void ESceneAIMapTool::SaveStream(IWriter& F) { inherited::SaveStream (F); F.open_chunk (AIMAP_CHUNK_VERSION); F.w_u16 (AIMAP_VERSION); F.close_chunk (); F.open_chunk (AIMAP_CHUNK_FLAGS); F.w (&m_Flags,sizeof(m_Flags)); F.close_chunk (); F.open_chunk (AIMAP_CHUNK_BOX); F.w (&m_AIBBox,sizeof(m_AIBBox)); F.close_chunk (); F.open_chunk (AIMAP_CHUNK_PARAMS); F.w (&m_Params,sizeof(m_Params)); F.close_chunk (); EnumerateNodes (); F.open_chunk (AIMAP_CHUNK_NODES); F.w_u32 (m_Nodes.size()); for (AINodeIt it=m_Nodes.begin(); it!=m_Nodes.end(); it++) (*it)->SaveStream (F,this); F.close_chunk (); F.open_chunk (AIMAP_CHUNK_INTERNAL_DATA); F.w_float (m_VisRadius); F.w_u32 (m_BrushSize); F.close_chunk (); F.open_chunk (AIMAP_CHUNK_INTERNAL_DATA2); F.w_float (m_SmoothHeight); F.close_chunk (); F.open_chunk (AIMAP_CHUNK_SNAP_OBJECTS); F.w_u32 (m_SnapObjects.size()); for (ObjectIt o_it=m_SnapObjects.begin(); o_it!=m_SnapObjects.end(); o_it++) F.w_stringZ ((*o_it)->Name); F.close_chunk (); }
void STextureParams::Save(IWriter& F) { F.open_chunk (THM_CHUNK_TEXTUREPARAM); F.w (&fmt,sizeof(ETFormat)); F.w_u32 (flags.get()); F.w_u32 (border_color); F.w_u32 (fade_color); F.w_u32 (fade_amount); F.w_u32 (mip_filter); F.w_u32 (width); F.w_u32 (height); F.close_chunk (); F.open_chunk (THM_CHUNK_TEXTURE_TYPE); F.w_u32 (type); F.close_chunk (); F.open_chunk (THM_CHUNK_DETAIL_EXT); F.w_stringZ (detail_name); F.w_float (detail_scale); F.close_chunk (); F.open_chunk (THM_CHUNK_MATERIAL); F.w_u32 (material); F.w_float (material_weight); F.close_chunk (); F.open_chunk (THM_CHUNK_BUMP); F.w_float (bump_virtual_height); F.w_u32 (bump_mode); F.w_stringZ (bump_name); F.close_chunk (); F.open_chunk (THM_CHUNK_EXT_NORMALMAP); F.w_stringZ (ext_normal_map_name); F.close_chunk (); F.open_chunk (THM_CHUNK_FADE_DELAY); F.w_u8 (fade_delay); F.close_chunk (); }
void CPGDef::Save(IWriter& F) { F.open_chunk (PGD_CHUNK_VERSION); F.w_u16 (PGD_VERSION); F.close_chunk (); F.open_chunk (PGD_CHUNK_NAME); F.w_stringZ (m_Name); F.close_chunk (); F.w_chunk (PGD_CHUNK_FLAGS,&m_Flags,sizeof(m_Flags)); F.open_chunk (PGD_CHUNK_EFFECTS); F.w_u32 (m_Effects.size()); for (EffectIt it=m_Effects.begin(); it!=m_Effects.end(); it++){ F.w_stringZ ((*it)->m_EffectName); F.w_stringZ ((*it)->m_OnPlayChildName); F.w_stringZ ((*it)->m_OnBirthChildName); F.w_stringZ ((*it)->m_OnDeadChildName); F.w_float ((*it)->m_Time0); F.w_float ((*it)->m_Time1); F.w_u32 ((*it)->m_Flags.get()); } F.close_chunk (); F.open_chunk (PGD_CHUNK_TIME_LIMIT); F.w_float (m_fTimeLimit); F.close_chunk (); #ifdef _EDITOR F.open_chunk (PGD_CHUNK_OWNER); F.w_stringZ (m_OwnerName); F.w_stringZ (m_ModifName); F.w (&m_CreateTime,sizeof(m_CreateTime)); F.w (&m_ModifTime,sizeof(m_ModifTime)); F.close_chunk (); #endif }
void CLAItem::Save(IWriter& F) { F.open_chunk (CHUNK_ITEM_COMMON); F.w_stringZ (cName); F.w_float (fFPS); F.w_u32 (iFrameCount); F.close_chunk (); F.open_chunk (CHUNK_ITEM_KEYS); F.w_u32 (Keys.size()); for (KeyPairIt it=Keys.begin(); it!=Keys.end(); it++){ F.w_u32 (it->first); F.w_u32 (it->second); } F.close_chunk (); }
void EDetailManager::SaveStream(IWriter& F) { inherited::SaveStream (F); // version F.open_chunk (DETMGR_CHUNK_VERSION); F.w_u32 (DETMGR_VERSION); F.close_chunk (); F.open_chunk (DETMGR_CHUNK_FLAGS); F.w_u32 (m_Flags.get()); F.close_chunk (); // header F.w_chunk (DETMGR_CHUNK_HEADER,&dtH,sizeof(DetailHeader)); // objects SaveColorIndices (F); // slots F.open_chunk (DETMGR_CHUNK_SLOTS); F.w_u32 (dtH.size_x*dtH.size_z); F.w (dtSlots,dtH.size_x*dtH.size_z*sizeof(DetailSlot)); F.close_chunk (); // internal // bbox F.w_chunk (DETMGR_CHUNK_BBOX,&m_BBox,sizeof(Fbox)); // base texture if (m_Base.Valid()){ F.open_chunk (DETMGR_CHUNK_BASE_TEXTURE); F.w_stringZ (m_Base.GetName()); F.close_chunk (); } F.open_chunk (DETMGR_CHUNK_DENSITY); F.w_float (ps_r__Detail_density); F.close_chunk (); // snap objects F.open_chunk (DETMGR_CHUNK_SNAP_OBJECTS); F.w_u32 (m_SnapObjects.size()); for (ObjectIt o_it=m_SnapObjects.begin(); o_it!=m_SnapObjects.end(); o_it++) F.w_stringZ ((*o_it)->Name); F.close_chunk (); }
void CBone::Save(IWriter& F) { F.open_chunk (BONE_CHUNK_VERSION); F.w_u16 (BONE_VERSION); F.close_chunk (); F.open_chunk (BONE_CHUNK_DEF); F.w_stringZ (name); F.w_stringZ (parent_name); F.w_stringZ (wmap); F.close_chunk (); F.open_chunk (BONE_CHUNK_BIND_POSE); F.w_fvector3 (rest_offset); F.w_fvector3 (rest_rotate); F.w_float (rest_length); F.close_chunk (); SaveData (F); }
void CGlow::Save(IWriter& F){ CCustomObject::Save(F); F.open_chunk (GLOW_CHUNK_VERSION); F.w_u16 (GLOW_VERSION); F.close_chunk (); F.open_chunk (GLOW_CHUNK_PARAMS); F.w_float (m_fRadius); F.close_chunk (); F.open_chunk (GLOW_CHUNK_SHADER); F.w_stringZ (m_ShaderName); F.close_chunk (); F.open_chunk (GLOW_CHUNK_TEXTURE); F.w_stringZ (m_TexName); F.close_chunk (); F.open_chunk (GLOW_CHUNK_FLAGS); F.w_u16 (m_Flags.get()); F.close_chunk (); }
void CLight::Save(IWriter& F) { CCustomObject::Save(F); F.open_chunk (LIGHT_CHUNK_VERSION); F.w_u16 (LIGHT_VERSION); F.close_chunk (); F.open_chunk (LIGHT_CHUNK_PARAMS); F.w_u32 (m_Type); F.w_fcolor (m_Color); F.w_float (m_Brightness); F.w_float (m_Range); F.w_float (m_Attenuation0); F.w_float (m_Attenuation1); F.w_float (m_Attenuation2); F.w_float (m_Cone); F.w_float (m_VirtualSize); F.close_chunk (); F.w_chunk (LIGHT_CHUNK_USE_IN_D3D,&m_UseInD3D,sizeof(m_UseInD3D)); F.w_chunk (LIGHT_CHUNK_FLAG,&m_Flags,sizeof(m_Flags)); F.w_chunk (LIGHT_CHUNK_LCONTROL,&m_LControl,sizeof(m_LControl)); if (m_pAnimRef){ F.open_chunk(LIGHT_CHUNK_ANIMREF); F.w_stringZ (m_pAnimRef->cName); F.close_chunk(); } if (m_FalloffTex.size()){ F.open_chunk(LIGHT_CHUNK_FALLOFF_TEXTURE); F.w_stringZ (m_FalloffTex); F.close_chunk(); } if (m_Flags.is(ELight::flPointFuzzy)){ VERIFY(m_FuzzyData); F.open_chunk(LIGHT_CHUNK_FUZZY_DATA); m_FuzzyData->Save(F); F.close_chunk(); } }
void CBone::SaveData(IWriter& F) { F.open_chunk (BONE_CHUNK_DEF); F.w_stringZ (name); F.close_chunk (); F.open_chunk (BONE_CHUNK_MATERIAL); F.w_stringZ (game_mtl); F.close_chunk (); F.open_chunk (BONE_CHUNK_SHAPE); F.w (&shape,sizeof(SBoneShape)); F.close_chunk (); F.open_chunk (BONE_CHUNK_FLAGS); F.w_u32 (IK_data.ik_flags.get()); F.close_chunk (); F.open_chunk (BONE_CHUNK_IK_JOINT); F.w_u32 (IK_data.type); F.w (IK_data.limits,sizeof(SJointLimit)*3); F.w_float (IK_data.spring_factor); F.w_float (IK_data.damping_factor); F.close_chunk (); F.open_chunk (BONE_CHUNK_IK_JOINT_BREAK); F.w_float (IK_data.break_force); F.w_float (IK_data.break_torque); F.close_chunk (); F.open_chunk (BONE_CHUNK_IK_JOINT_FRICTION); F.w_float (IK_data.friction); F.close_chunk (); F.open_chunk (BONE_CHUNK_MASS); F.w_float (mass); F.w_fvector3 (center_of_mass); F.close_chunk (); }
void CPEDef::Save(IWriter& F) { F.open_chunk (PED_CHUNK_VERSION); F.w_u16 (PED_VERSION); F.close_chunk (); F.open_chunk (PED_CHUNK_NAME); F.w_stringZ (m_Name); F.close_chunk (); F.open_chunk (PED_CHUNK_EFFECTDATA); F.w_u32 (m_MaxParticles); F.close_chunk (); F.open_chunk (PED_CHUNK_ACTIONLIST); F.w (m_Actions.pointer(),m_Actions.size()); F.close_chunk (); F.w_chunk (PED_CHUNK_FLAGS,&m_Flags,sizeof(m_Flags)); if (m_Flags.is(dfSprite)) { F.open_chunk (PED_CHUNK_SPRITE); F.w_stringZ (m_ShaderName); F.w_stringZ (m_TextureName); F.close_chunk (); } if (m_Flags.is(dfFramed)) { F.open_chunk (PED_CHUNK_FRAME); F.w (&m_Frame,sizeof(SFrame)); F.close_chunk (); } if (m_Flags.is(dfTimeLimit)) { F.open_chunk (PED_CHUNK_TIMELIMIT); F.w_float (m_fTimeLimit); F.close_chunk (); } if (m_Flags.is(dfCollision)) { F.open_chunk (PED_CHUNK_COLLISION); F.w_float (m_fCollideOneMinusFriction); F.w_float (m_fCollideResilience); F.w_float (m_fCollideSqrCutoff); F.close_chunk (); } if (m_Flags.is(dfVelocityScale)) { F.open_chunk (PED_CHUNK_VEL_SCALE); F.w_fvector3 (m_VelocityScale); F.close_chunk (); } if (m_Flags.is(dfAlignToPath)) { F.open_chunk (PED_CHUNK_ALIGN_TO_PATH); F.w_fvector3 (m_APDefaultRotation); F.close_chunk (); } #ifdef _EDITOR F.open_chunk (PED_CHUNK_EDATA); F.w_u32 (m_EActionList.size()); for (EPAVecIt it=m_EActionList.begin(); it!=m_EActionList.end(); it++){ F.w_u32 ((*it)->type); (*it)->Save (F); } F.close_chunk (); #endif }
//------------------------------------------------------------------------------ // IO - routines //------------------------------------------------------------------------------ void SGameMtl::Save(IWriter& fs) { Flags.set (flSlowDown, !fis_zero(1.f-fFlotationFactor,EPS_L)); Flags.set (flShootable, fis_zero(fShootFactor,EPS_L)); Flags.set (flTransparent, fis_zero(fVisTransparencyFactor,EPS_L)); Flags.set (flInjurious, !fis_zero(fInjuriousSpeed,EPS_L)); fs.open_chunk (GAMEMTL_CHUNK_MAIN); fs.w_u32 (ID); fs.w_stringZ (m_Name); fs.close_chunk (); fs.open_chunk (GAMEMTL_CHUNK_DESC); fs.w_stringZ (m_Desc); fs.close_chunk (); fs.open_chunk (GAMEMTL_CHUNK_FLAGS); fs.w_u32 (Flags.get()); fs.close_chunk (); fs.open_chunk (GAMEMTL_CHUNK_PHYSICS); fs.w_float (fPHFriction); fs.w_float (fPHDamping); fs.w_float (fPHSpring); fs.w_float (fPHBounceStartVelocity); fs.w_float (fPHBouncing); fs.close_chunk (); fs.open_chunk (GAMEMTL_CHUNK_FACTORS); fs.w_float (fShootFactor); fs.w_float (fBounceDamageFactor); fs.w_float (fVisTransparencyFactor); fs.w_float (fSndOcclusionFactor); fs.close_chunk (); fs.open_chunk (GAMEMTL_CHUNK_FLOTATION); fs.w_float (fFlotationFactor); fs.close_chunk (); fs.open_chunk (GAMEMTL_CHUNK_INJURIOUS); fs.w_float (fInjuriousSpeed); fs.close_chunk (); fs.open_chunk (GAMEMTL_CHUNK_DENSITY); fs.w_float (fDensityFactor); fs.close_chunk (); }