void time::save				(CInifile& config)
{
	config.w_string				(m_identifier.c_str(),"ambient", m_ambient.c_str());
	config.w_fvector3			(m_identifier.c_str(),"ambient_color", ambient);
	config.w_string				(m_identifier.c_str(),"clouds_texture", clouds_texture_name.c_str());
	config.w_float				(m_identifier.c_str(),"far_plane", far_plane);
	config.w_float				(m_identifier.c_str(),"fog_distance", fog_distance);
	config.w_float				(m_identifier.c_str(),"fog_density", fog_density);
	config.w_fvector3			(m_identifier.c_str(),"fog_color", fog_color);
	config.w_fvector3			(m_identifier.c_str(),"rain_color", rain_color);
	config.w_float				(m_identifier.c_str(),"rain_density", rain_density);
	config.w_fvector3			(m_identifier.c_str(),"sky_color", sky_color);
	config.w_float				(m_identifier.c_str(),"sky_rotation", rad2deg(sky_rotation));
	config.w_string				(m_identifier.c_str(),"sky_texture", sky_texture_name.c_str());
	config.w_fvector3			(m_identifier.c_str(),"sun_color", sun_color);
	config.w_float				(m_identifier.c_str(),"sun_shafts_intensity", m_fSunShaftsIntensity);
	config.w_string				(m_identifier.c_str(),"sun", m_sun.c_str());
	config.w_string				(m_identifier.c_str(),"thunderbolt_collection", m_thunderbolt_collection.c_str());
	config.w_float				(m_identifier.c_str(),"thunderbolt_duration", bolt_duration);
	config.w_float				(m_identifier.c_str(),"thunderbolt_period", bolt_period);
	config.w_float				(m_identifier.c_str(),"water_intensity", m_fWaterIntensity);
	config.w_float				(m_identifier.c_str(),"wind_direction", rad2deg(wind_direction));
	config.w_float				(m_identifier.c_str(),"wind_velocity", wind_velocity);
	config.w_fvector4			(m_identifier.c_str(),"hemisphere_color", hemi_color);
	config.w_float				(m_identifier.c_str(),"sun_altitude", rad2deg(sun_dir.getH()));
	config.w_float				(m_identifier.c_str(),"sun_longitude", rad2deg(sun_dir.getP()));
	config.w_fvector4			(m_identifier.c_str(),"clouds_color", clouds_color);
}
void Weapon_Statistic::WriteLtx(CInifile& ini, LPCSTR sect)
{
	ini.w_string(sect,"wpn_name",WName.c_str());

	ini.w_string(sect,"wpn_inv_name",InvName.c_str());

	ini.w_u32(sect,"wpn_dwNumBought",NumBought);

	ini.w_u32(sect,"wpn_dwRoundsFired",m_dwRoundsFired);

	ini.w_u32(sect,"wpn_dwBulletsFired",m_dwBulletsFired);

	ini.w_u32(sect,"wpn_dwHitsScored",m_dwHitsScored);

	ini.w_u32(sect,"wpn_dwKillsScored",m_dwKillsScored);

	ini.w_u16(sect,"wpn_dwExplosionKills", m_explosion_kills);

	ini.w_u16(sect,"wpn_dwBleedKills", m_bleed_kills);

	//----------------------------------------------
	u32 NumHits = 0;
	u32 i = 0;
	for (i=0; i<m_Hits.size(); i++)
	{
		HitData& Hit = m_Hits[i];
		if (Hit.Completed && Hit.count) NumHits++;
	};

	ini.w_u32(sect,"NumHits",NumHits);

	u32 hits_size = m_Hits.size();
	i = 0;
	u32 hit_number = 0;
	u8 hit_index = 0;
	while (i < hits_size)
	{
		HitData& Hit		= m_Hits[i];
		if (!Hit.Completed)
		{
			++i;
			hit_index = 0;
			continue;
		}
		
		string512				save_prefix;
		xr_sprintf				(save_prefix,"hit_%d_", hit_number);

		Hit.WriteLtx			(ini, sect, save_prefix);
		
		++hit_index;
		if (hit_index >= Hit.count)
		{
			hit_index = 0;
			++i;
		}
		++hit_number;
	};
};
예제 #3
0
void CPEDef::Save2(CInifile& ini)
{
	ini.w_u16		("_effect", "version",			PED_VERSION);
//.	ini.w_string	("_effect", "name",				m_Name.c_str());
	ini.w_u32		("_effect", "max_particles",	m_MaxParticles);
//.!!	F.w				(m_Actions.pointer(),m_Actions.size());
	ini.w_u32		("_effect", "flags",				m_Flags.get());

	if (m_Flags.is(dfSprite))
	{
		ini.w_string	("sprite", "shader", m_ShaderName.c_str());
		ini.w_string	("sprite", "texture", m_TextureName.c_str());
	}

	if (m_Flags.is(dfFramed))
	{
		ini.w_fvector2		("frame",	"tex_size", 	m_Frame.m_fTexSize);
		ini.w_fvector2		("frame",	"reserved", 	m_Frame.reserved);
		ini.w_s32			("frame",	"dim_x", 		m_Frame.m_iFrameDimX);
		ini.w_s32			("frame",	"frame_count",	m_Frame.m_iFrameCount);
		ini.w_float			("frame",	"speed",		m_Frame.m_fSpeed);
	}

	if (m_Flags.is(dfTimeLimit))
	{
		ini.w_float		("timelimit", "value", m_fTimeLimit);
	}

	if (m_Flags.is(dfCollision))
	{
		ini.w_float		("collision", "one_minus_friction", m_fCollideOneMinusFriction);	
		ini.w_float		("collision", "collide_resilence", m_fCollideResilience);
		ini.w_float		("collision", "collide_sqr_cutoff", m_fCollideSqrCutoff);
	}

	if (m_Flags.is(dfVelocityScale))
	{
		ini.w_fvector3	("velocity_scale", "value", m_VelocityScale);
	}

	if (m_Flags.is(dfAlignToPath))
	{
		ini.w_fvector3	("align_to_path", "default_rotation", m_APDefaultRotation);
	}
#ifdef _EDITOR
    ini.w_u32			("_effect", "action_count", m_EActionList.size());
    u32					action_id = 0;
	for (EPAVecIt it=m_EActionList.begin(); it!=m_EActionList.end(); ++it,++action_id)
	{
		string256		sect;
		xr_sprintf		(sect, sizeof(sect), "action_%04d", action_id);
		ini.w_u32		(sect, "action_type", (*it)->type);
    	(*it)->Save2	(ini, sect);
    }
#endif
}
void HitData::WriteLtx(CInifile& ini, LPCSTR sect, LPCSTR prefix)
{
	string512		buff;
	
	ini.w_fvector3(sect,strconcat(sizeof(buff), buff, prefix ,"pos_0"),Pos0);
	ini.w_fvector3(sect,strconcat(sizeof(buff), buff, prefix ,"pos_1"),Pos1);
	
	ini.w_u16(sect,strconcat(sizeof(buff), buff, prefix ,"BoneID"),BoneID);

	ini.w_bool(sect,strconcat(sizeof(buff), buff, prefix ,"Deadly"),Deadly);

	ini.w_string(sect,strconcat(sizeof(buff), buff, prefix ,"TargetName"),TargetName.c_str());

	ini.w_string(sect,strconcat(sizeof(buff), buff, prefix ,"BoneName"),BoneName.c_str());
};
void ambient::save			(CInifile& config)
{
	u32						count = 1;
	LPSTR					temp = 0;
	{
		sound_container_type::const_iterator	b = m_sound_channels_ids.begin(), i = b;
		sound_container_type::const_iterator	e = m_sound_channels_ids.end();
		for ( ; i != e; ++i)
			count			+= (*i)->id().size() + 2;

		temp				= (LPSTR)_alloca(count*sizeof(char));
		*temp				= 0;
		for (i = b; i != e; ++i) {
			if (i == b) {
				strcpy_s	(temp, count, (*i)->id().c_str());
				continue;
			}

			strcat_s		(temp, count, ", ");
			strcat_s		(temp, count, (*i)->id().c_str());
		}
	}

	config.w_string			(m_load_section.c_str(), "sound_channels",	  temp);
	config.w_float			(m_load_section.c_str(), "min_effect_period", float(m_effect_period.x)/1000.f);
	config.w_float			(m_load_section.c_str(), "max_effect_period", float(m_effect_period.y)/1000.f);

	{
		count				= 1;
		effect_container_type::const_iterator	b = m_effects_ids.begin(), i = b;
		effect_container_type::const_iterator	e = m_effects_ids.end();
		for ( ; i != e; ++i)
			count			+= (*i)->id().size() + 2;

		temp				= (LPSTR)_alloca(count*sizeof(char));
		*temp				= 0;
		for (i = b; i != e; ++i) {
			if (i == b) {
				strcpy_s	(temp, count, (*i)->id().c_str());
				continue;
			}

			strcat_s		(temp, count, ", ");
			strcat_s		(temp, count, (*i)->id().c_str());
		}
	}
	config.w_string			(m_load_section.c_str(), "effects", temp);
}
예제 #6
0
void SAINode::SaveLTX(CInifile& ini, LPCSTR sect_name, ESceneAIMapTool* tools)
{
	R_ASSERT2		(0, "dont use it !!!");
	u32 			id;
    u16 			pl;
	NodePosition 	np;

    id 				= n1?(u32)n1->idx:InvalidNode;
    ini.w_u32		(sect_name,"n1", id);

    id 				= n2?(u32)n2->idx:InvalidNode;
    ini.w_u32		(sect_name,"n2", id);

    id 				= n3?(u32)n3->idx:InvalidNode;
    ini.w_u32		(sect_name,"n3", id);

    id 				= n4?(u32)n4->idx:InvalidNode;
    ini.w_u32		(sect_name,"n4", id);

    pl 				= pvCompress (Plane.n);
    ini.w_u16		(sect_name, "plane", pl);

	tools->PackPosition(np,Pos,tools->m_AIBBox,tools->m_Params);
    string256		buff;

	s16				x;
	u16				y;
	s16				z;

    sprintf			(buff,"%i,%u,%i",np.x,np.y,np.z);
    ini.w_string	(sect_name, "np", buff);
    ini.w_u8		(sect_name, "flag", flags.get());
}
예제 #7
0
void ESceneAIMapTool::SaveLTX(CInifile& ini)
{
	inherited::SaveLTX	(ini);

	ini.w_u32			("main", "version", AIMAP_VERSION);
	ini.w_u32			("main", "flags", m_Flags.get());

    ini.w_fvector3		("main", "bbox_min", m_AIBBox.min);
    ini.w_fvector3		("main", "bbox_max", m_AIBBox.max);

    ini.w_float			("params", "patch_size", m_Params.fPatchSize);
    ini.w_float			("params", "test_height", m_Params.fTestHeight);
    ini.w_float			("params", "can_up", m_Params.fCanUP);
    ini.w_float			("params", "can_down", m_Params.fCanDOWN);

    EnumerateNodes		();
    ini.w_u32			("main", "nodes_count", m_Nodes.size());

    u32 i 				= 0;
    string128			buff;
	for (AINodeIt it=m_Nodes.begin(); it!=m_Nodes.end(); ++it, ++i)
    {
    	sprintf			(buff,"n_%d", i);
    	(*it)->SaveLTX	(ini, buff, this);
    }

    ini.w_float			("main", "vis_radius", m_VisRadius);
    ini.w_u32			("main", "brush_size", m_BrushSize);

    ini.w_float			("main", "smooth_height", m_SmoothHeight);

    for (ObjectIt o_it=m_SnapObjects.begin(); o_it!=m_SnapObjects.end(); ++o_it)
    	ini.w_string	("snap_objects", (*o_it)->Name, NULL);
}
예제 #8
0
void ESoundEnvironment::SaveLTX(CInifile& ini, LPCSTR sect_name)
{
	inherited::SaveLTX	(ini, sect_name);

	ini.w_u32		(sect_name, "version", SOUND_ENV_VERSION);

    ini.w_string	(sect_name, "env_inner", m_EnvInner.c_str());
    ini.w_string	(sect_name, "env_outer", m_EnvOuter.c_str());
}
예제 #9
0
void __fastcall TfrmBonePart::ebSaveToClick(TObject *Sender)
{
    xr_string temp_fn;
    if (EFS.GetSaveName( _import_, temp_fn) )
    {
        CInifile ini	(temp_fn.c_str(), FALSE, FALSE, TRUE);
        string64		buff;
        for(int i=0; i<4; ++i)
        {
            sprintf	(buff,"part_%d",i);
            ini.w_string(buff, "partition_name", E[i]->Text.c_str());
            if (T[i]->Items->Count)
            {
                for ( TElTreeItem* node = T[i]->Items->GetFirstNode(); node; node = node->GetNext())
                    ini.w_string(buff, AnsiString(node->Text).c_str(), NULL );
            }
        }
    }
}
예제 #10
0
//------------------------------------------------------------------------------------------------
// Level Options
//------------------------------------------------------------------------------------------------
void st_LevelOptions::SaveLTX( CInifile& ini )
{
	LPCSTR section 	= "level_options";
	ini.w_u32		(section, "version", CURRENT_LEVELOP_VERSION);

	ini.w_string	(section, "level_path", m_FNLevelPath.c_str());
	ini.w_string	(section, "level_prefix", m_LevelPrefix.c_str());
	xr_string s		= "\"";
    s 				+= m_BOPText.c_str();
    s				+= "\"";
	ini.w_string	(section, "bop", s.c_str());
	ini.w_string	(section, "map_version", m_map_version.c_str());

	ini.w_u32		(section, "version_bp", CURRENT_LEVELOP_BP_VERSION);

	m_BuildParams.SaveLTX	(ini);

	ini.w_u8		(section, "light_hemi_quality", m_LightHemiQuality );
	ini.w_u8		(section, "light_sun_quality", m_LightSunQuality );

    m_mapUsage.SaveLTX(ini,section);
}
void Player_Statistic::WriteLtx(CInifile& ini, LPCSTR sect)
{
	ini.w_string(sect, "name", PName.c_str());
	ini.w_string(sect, "player_unique_digest", PDigest.c_str());
	ini.w_u32(sect, "player_profile_id", PID);

	ini.w_u32(sect,"TotalShots",m_dwTotalShots);

	ini.w_u32(sect,"dwTotalAliveTime_0_sec",m_dwTotalAliveTime[0]/1000);
	ini.w_u32(sect,"dwTotalAliveTime_1_sec",m_dwTotalAliveTime[1]/1000);
	ini.w_u32(sect,"dwTotalAliveTime_2_sec",m_dwTotalAliveTime[2]/1000);

	ini.w_u32(sect,"dwTotalMoneyRound_0",m_dwTotalMoneyRound[0]);
	ini.w_u32(sect,"dwTotalMoneyRound_1",m_dwTotalMoneyRound[1]);
	ini.w_u32(sect,"dwTotalMoneyRound_2",m_dwTotalMoneyRound[2]);

	ini.w_u32(sect,"dwNumRespawned_0",m_dwNumRespawned[0]);
	ini.w_u32(sect,"dwNumRespawned_1",m_dwNumRespawned[1]);
	ini.w_u32(sect,"dwNumRespawned_2",m_dwNumRespawned[2]);

	ini.w_u8(sect,"m_dwArtefacts_0",m_dwArtefacts[0]);
	ini.w_u8(sect,"m_dwArtefacts_1",m_dwArtefacts[1]);
	ini.w_u8(sect,"m_dwArtefacts_2",m_dwArtefacts[2]);

	ini.w_u8(sect,"dwCurrentTeam",m_dwCurrentTeam);

	u32 NumWeapons = aWeaponStats.size();

	ini.w_u32(sect,"NumWeapons",NumWeapons);

	for (u32 i=0; i<aWeaponStats.size(); i++)
	{
		string512				save_sect;
		xr_sprintf				(save_sect,"%s_wpn_%d",sect,i);
		Weapon_Statistic& WS	= aWeaponStats[i];
		WS.WriteLtx				(ini, save_sect);
	}

}
void Weapon_Statistic::WriteLtx(CInifile& ini, LPCSTR sect)
{
	ini.w_string(sect,"wpn_name",WName.c_str());

	ini.w_string(sect,"wpn_inv_name",InvName.c_str());

	ini.w_u32(sect,"wpn_dwNumBought",NumBought);

	ini.w_u32(sect,"wpn_dwRoundsFired",m_dwRoundsFired);

	ini.w_u32(sect,"wpn_dwBulletsFired",m_dwBulletsFired);

	ini.w_u32(sect,"wpn_dwHitsScored",m_dwHitsScored);

	ini.w_u32(sect,"wpn_dwKillsScored",m_dwKillsScored);

	//----------------------------------------------
	u32 NumHits = 0;
	for (u32 i=0; i<m_Hits.size(); i++)
	{
		HitData& Hit = m_Hits[i];
		if (Hit.Completed) NumHits++;
	};

	ini.w_u32(sect,"NumHits",NumHits);

	for (i=0; i<m_Hits.size(); ++i)
	{
		HitData& Hit		= m_Hits[i];
		if (!Hit.Completed) continue;

		string512				save_prefix;
		sprintf_s				(save_prefix,"hit_%d_", i);

		Hit.WriteLtx			(ini, sect, save_prefix);
	};
};
예제 #13
0
void CGroupObject::SaveLTX(CInifile& ini, LPCSTR sect_name)
{
	CCustomObject::SaveLTX(ini, sect_name);

	ini.w_u32			(sect_name, "version", GROUPOBJ_CURRENT_VERSION);

    ObjectList		grp_lst;
    GetObjects		(grp_lst);
    ObjectList::iterator it;
    for(it=grp_lst.begin(); it!=grp_lst.end(); ++it)
        (*it)->m_CO_Flags.set(CCustomObject::flObjectInGroup, FALSE);
        
    Scene->SaveObjectsLTX(grp_lst, sect_name, "ingroup", ini);

    for(it=grp_lst.begin(); it!=grp_lst.end(); ++it)
        (*it)->m_CO_Flags.set(CCustomObject::flObjectInGroup, TRUE);

    ini.w_string		(sect_name, "ref_name", m_ReferenceName_.c_str());
}
예제 #14
0
void ESoundSource::SaveLTX(CInifile& ini, LPCSTR sect_name)
{
	inherited::SaveLTX	(ini, sect_name);

	ini.w_u32			(sect_name, "version", SOUND_SOURCE_VERSION);

    ini.w_u32			(sect_name, "snd_type", m_Type);

    ini.w_string		(sect_name, "snd_name", m_WAVName.c_str());

    ini.w_u32			(sect_name, "flags", m_Flags.get());

    ini.w_fvector3		(sect_name, "snd_position", m_Params.position);
    ini.w_float			(sect_name, "volume", m_Params.volume);
    ini.w_float			(sect_name, "freq", m_Params.freq);
    ini.w_float			(sect_name, "min_dist", m_Params.min_distance);
    ini.w_float			(sect_name, "max_dist", m_Params.max_distance);
    ini.w_float			(sect_name, "max_ai_dist", m_Params.max_ai_distance);

    ini.w_fvector2		(sect_name, "random_pause", m_RandomPause);
    ini.w_fvector2		(sect_name, "active_time", m_ActiveTime);
    ini.w_fvector2		(sect_name, "play_time", m_PlayTime);
}
예제 #15
0
void ESceneToolBase::SaveLTX(CInifile& ini, int id)
{
    ini.w_string	("modif", "name", m_ModifName.c_str());
    ini.w_u32		("modif", "time", m_ModifTime);
}