コード例 #1
0
ファイル: xr_graph_merge.cpp プロジェクト: 2asoft/xray
	void						save_cross_table	(IWriter &stream)
	{
		stream.w_u32			(m_cross_table.size() + sizeof(u32));
		m_cross_table.seek		(0);
		stream.w				(m_cross_table.pointer(),m_cross_table.size());
		m_cross_table.clear		();
	}
コード例 #2
0
bool manager::save_current_blend(char* buffer, u32 const& buffer_size)
{
    CInifile temp(0, FALSE, FALSE, FALSE);

    using editor::environment::weathers::time;
    time* frame = static_cast<time*>(m_manager.CurrentEnv);
    frame->save(temp);

    CMemoryWriter writer;
    temp.save_as(writer);
    if (writer.size() > buffer_size)
        return (false);

    writer.w_u8(0);
    writer.seek(0);
    Memory.mem_copy(buffer, writer.pointer(), writer.size());
    return (true);
}
コード例 #3
0
bool weather::save_time_frame			(shared_str const& frame_id, char* buffer, u32 const& buffer_size)
{
	container_type::iterator	i = m_times.begin();
	container_type::iterator	e = m_times.end();
	for ( ; i != e; ++i) {
		if (frame_id._get() != (*i)->id()._get())
			continue;

		CInifile		temp(0, FALSE, FALSE, FALSE);
		(*i)->save		(temp);

		CMemoryWriter	writer;
		temp.save_as	(writer);
		if (writer.size() > buffer_size)
			return		(false);

		writer.seek		(0);
		Memory.mem_copy	(buffer, writer.pointer(), writer.size());
		return			(true);
	}

	return				(false);
}
コード例 #4
0
ファイル: xrCompress.cpp プロジェクト: AntonioModer/xray-16
void xrCompressor::OpenPack(LPCSTR tgt_folder, int num)
{
	VERIFY			(0==fs_pack_writer);

	string_path		fname;
	string128		s_num;
#ifdef MOD_COMPRESS
	strconcat		(sizeof(fname),fname,tgt_folder,".xdb",itoa(num,s_num,10));
#else
	strconcat		(sizeof(fname),fname,tgt_folder,".pack_#",itoa(num,s_num,10));
#endif
	unlink			(fname);
	fs_pack_writer	= FS.w_open	(fname);
	fs_desc.clear	();
	aliases.clear	();

	bytesSRC		= 0;
	bytesDST		= 0;
	filesTOTAL		= 0;
	filesSKIP		= 0;
	filesVFS		= 0;
	filesALIAS		= 0;

	dwTimeStart		= timeGetTime();

	//write pack header without compression
//	DUMMY_STUFF* _dummy_stuff_subst		= NULL;
//	_dummy_stuff_subst					= g_dummy_stuff;
//	g_dummy_stuff						= NULL;

	if(config_ltx && config_ltx->section_exist("header"))
	{
		CMemoryWriter			W;
		CInifile::Sect&	S		= config_ltx->r_section("header");
		CInifile::SectCIt it	= S.Data.begin();
		CInifile::SectCIt it_e	= S.Data.end();
		string4096				buff;
		xr_sprintf					(buff,"[%s]",S.Name.c_str());
		W.w_string				(buff);
		for(;it!=it_e;++it)
		{
			const CInifile::Item& I	= *it;
			xr_sprintf					(buff, "%s = %s", I.first.c_str(), I.second.c_str());
			W.w_string				(buff);
		}
		W.seek						(0);
		IReader	R(W.pointer(), W.size());

		printf						("...Writing pack header\n");
		fs_pack_writer->open_chunk	(CFS_HeaderChunkID);
		fs_pack_writer->w			(R.pointer(), R.length());
		fs_pack_writer->close_chunk	();
	}else
	if(pPackHeader)
	{
		printf						("...Writing pack header\n");
		fs_pack_writer->open_chunk	(CFS_HeaderChunkID);
		fs_pack_writer->w			(pPackHeader->pointer(), pPackHeader->length());
		fs_pack_writer->close_chunk	();
	}else
		printf			("...Pack header not found\n");

//	g_dummy_stuff	= _dummy_stuff_subst;

	fs_pack_writer->open_chunk	(0);
}