aboutsummaryrefslogtreecommitdiff
path: root/src/content_mapblock.h
blob: bb1e129daa0b690fc77f907a3c5e1c066f84ce7c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
/*
Minetest
Copyright (C) 2010-2013 celeron55, Perttu Ahola <celeron55@gmail.com>

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation; either version 2.1 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/

#ifndef CONTENT_MAPBLOCK_HEADER
#define CONTENT_MAPBLOCK_HEADER

struct MeshMakeData;
struct MeshCollector;
void mapblock_mesh_generate_special(MeshMakeData *data,
		MeshCollector &collector);

#endif

class="hl com">(at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ #ifndef SERIALIZATION_HEADER #define SERIALIZATION_HEADER #include "common_irrlicht.h" #include "exceptions.h" #include <iostream> #include "utility.h" /* Map format serialization version -------------------------------- For map data (blocks, nodes, sectors). NOTE: The goal is to increment this so that saved maps will be loadable by any version. Other compatibility is not maintained. 0: original networked test with 1-byte nodes 1: update with 2-byte nodes 2: lighting is transmitted in param 3: optional fetching of far blocks 4: block compression 5: sector objects NOTE: block compression was left accidentally out 6: failed attempt at switching block compression on again 7: block compression switched on again 8: server-initiated block transfers and all kinds of stuff 9: block objects 10: water pressure 11: zlib'd blocks, block flags 12: UnlimitedHeightmap now uses interpolated areas 13: Mapgen v2 14: NodeMetadata 15: StaticObjects 16: larger maximum size of node metadata, and compression 17: MapBlocks contain timestamp 18: new generator (not really necessary, but it's there) 19: new content type handling 20: many existing content types translated to extended ones */ // This represents an uninitialized or invalid format #define SER_FMT_VER_INVALID 255 // Highest supported serialization version #define SER_FMT_VER_HIGHEST 20 // Lowest supported serialization version #define SER_FMT_VER_LOWEST 0 #define ser_ver_supported(v) (v >= SER_FMT_VER_LOWEST && v <= SER_FMT_VER_HIGHEST) /* Misc. serialization functions */ void compressZlib(SharedBuffer<u8> data, std::ostream &os); void compressZlib(const std::string &data, std::ostream &os); void decompressZlib(std::istream &is, std::ostream &os); // These choose between zlib and a self-made one according to version void compress(SharedBuffer<u8> data, std::ostream &os, u8 version); //void compress(const std::string &data, std::ostream &os, u8 version); void decompress(std::istream &is, std::ostream &os, u8 version); #endif