コード例 #1
0
ファイル: TextForm.cpp プロジェクト: NeoAnomaly/xray
void __fastcall TfrmText::ebSaveClick(TObject *Sender)
{
	xr_string fn;        
	if (EFS.GetSaveName(_import_,fn,NULL,2)){
    	CMemoryWriter F;
        F.w_stringZ	(mmText->Text.c_str());
        if (!F.save_to(fn.c_str()))
	    	Log		("!Can't save text file:",fn.c_str());
    }
}
コード例 #2
0
void	CLevel::net_Save				(LPCSTR name)		// Game Save
{
	if (0==Server)		{
		Msg("KERNEL::Can't save game on pure client");
		return;
	}

	// 1. Create stream
	CMemoryWriter			fs;

	// 2. Description
	fs.open_chunk		(fsSLS_Description);
	fs.w_stringZ		(net_SessionName());
	fs.close_chunk		();

	// 3. Server state
	fs.open_chunk		(fsSLS_ServerState);
	Server->SLS_Save	(fs);
	fs.close_chunk		();

	// Save it to file
	fs.save_to			(name);
}
コード例 #3
0
ファイル: xrCompress.cpp プロジェクト: OLR-xray/OLR-3.0
IC	void write_file_header	(LPCSTR file_name, const u32 &crc, const u32 &ptr, const u32 &size_real, const u32 &size_compressed)
{
#ifndef PROTECTED_BUILD
	fs_desc.w_stringZ	(file_name);
	fs_desc.w_u32		(crc);	// crc
	fs_desc.w_u32		(ptr);
	fs_desc.w_u32		(size_real);
	fs_desc.w_u32		(size_compressed);
#else // PROTECTED_BUILD
	u32					file_name_size = (xr_strlen(file_name) + 0)*sizeof(char);
	u32					buffer_size = file_name_size + 4*sizeof(u32);
	VERIFY				(buffer_size <= 65535);
	u32					full_buffer_size = buffer_size + sizeof(u16);
	u8					*buffer = (u8*)_alloca(full_buffer_size);
	u8					*buffer_start = buffer;
	*(u16*)buffer		= (u16)buffer_size;
	buffer				+= sizeof(u16);

	*(u32*)buffer		= size_real;
	buffer				+= sizeof(u32);

	*(u32*)buffer		= size_compressed;
	buffer				+= sizeof(u32);

	*(u32*)buffer		= crc;
	buffer				+= sizeof(u32);

	Memory.mem_copy		(buffer,file_name,file_name_size);
	buffer				+= file_name_size;

	*(u32*)buffer		= ptr;

//	trivial_encryptor::encode	(buffer_start,full_buffer_size,buffer_start);

	fs_desc.w			(buffer_start,full_buffer_size);
#endif // PROTECTED_BUILD
}