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 (); }
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); }
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); }
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); }