Esempio n. 1
0
void VeinGenerator::write_tiles()
{
    for (int x = 0; x < size.x; x++)
    {
        for (int y = 0; y < size.y; y++)
        {
            df::coord2d column(x,y);

            int top = findTopBlock(map, x, y);

            for (int z = top; z >= 0; z--)
            {
                Block *b = map.BlockAt(df::coord(x,y,z));
                if (!b || !b->is_valid())
                    continue;

                write_block_tiles(b, column, z);

                b->Write();
                map.discardBlock(b);
            }

            map.trash();
        }
    }
}
Esempio n. 2
0
void CoinEng::ExportToBootstrapDat(const path& pathBoostrap) {
	uint32_t n = Db->GetMaxHeight()+1;
	
#ifndef X_DEBUG//!!!T
	if (Mode == EngMode::Bootstrap) {
		CEngStateDescription stateDesc(_self, EXT_STR("Copying " << GetBootstrapPath() << " -> " << pathBoostrap));

		return (void)copy_file(GetBootstrapPath(), pathBoostrap, copy_options::overwrite_existing);
	}
#endif

	CEngStateDescription stateDesc(_self, EXT_STR("Exporting " << n << " blocks to " << pathBoostrap));

	FileStream fs(pathBoostrap, FileMode::Create, FileAccess::Write);
	BinaryWriter wr(fs);

	for (uint32_t i=0; i<n && Runned; ++i) {
		wr << ChainParams.ProtocolMagic;
		MemoryStream ms;

		Block block = GetBlockByHeight(i);
//!!!?		block.LoadToMemory();
//!!!?		EXT_FOR (const Tx& tx, block.Txes) {
//!!!?			//			tx.m_pimpl->m_nBytesOfHash = 0;
//!!!?		}	
//!!!?		block.m_pimpl->m_hash.reset();
//!!!?block.m_pimpl->m_txHashesOutNums.clear();

		block.Write(BinaryWriter(ms).Ref());
		wr << uint32_t(ms.Position);
		fs.WriteBuf(ms);
	}
}