Esempio n. 1
0
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	();
}
Esempio n. 2
0
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		();
}
Esempio n. 3
0
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);

}
Esempio n. 4
0
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);
}
Esempio n. 5
0
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.");
    }
}
Esempio n. 6
0
void CPostProcessColor::save (IWriter &pWriter)
{
    pWriter.w_float				(m_fBase);
    m_Red.Save					(pWriter);
    m_Green.Save				(pWriter);
    m_Blue.Save					(pWriter);
}
Esempio n. 7
0
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	();
}
Esempio n. 8
0
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);
}
Esempio n. 9
0
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	();
}
Esempio n. 10
0
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	();
}
Esempio n. 11
0
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
}
Esempio n. 12
0
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	();
}
Esempio n. 13
0
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		();
}
Esempio n. 14
0
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);
}
Esempio n. 15
0
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	();
}
Esempio n. 16
0
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();
    }
}
Esempio n. 17
0
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	();
}
Esempio n. 18
0
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
}
Esempio n. 19
0
//------------------------------------------------------------------------------
// 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			();

 }