40 for (
int i = 0; i < 65537; i++) {
62 chunk.ModificationCounter = 0;
77 throw new InvalidOperationException(
"Invalid chunk header.");
88 public static void ReadTOCEntry(Stream stream, out
int cx, out
int cz, out
int index) {
94 public static void WriteTOCEntry(Stream stream,
int cx,
int cz,
int index) {
102 int num = chunk.Origin.X >> 4;
103 int num2 = chunk.Origin.Y >> 4;
107 m_stream.Seek(value, SeekOrigin.Begin);
111 int* ptr2 = (
int*)ptr;
112 for (
int i = 0; i < 16; i++) {
113 for (
int j = 0; j < 16; j++) {
127 int* ptr4 = (
int*)ptr3;
128 for (
int k = 0; k < 16; k++) {
129 for (
int l = 0; l < 16; l++) {
140 catch (Exception e) {
148 int num = chunk.Origin.X >> 4;
149 int num2 = chunk.Origin.Y >> 4;
153 m_stream.Seek(value, SeekOrigin.Begin);
158 m_stream.Seek(value, SeekOrigin.Begin);
162 int* ptr2 = (
int*)ptr;
163 for (
int i = 0; i < 16; i++) {
164 for (
int j = 0; j < 16; j++) {
178 int* ptr4 = (
int*)ptr3;
179 for (
int k = 0; k < 16; k++) {
180 for (
int l = 0; l < 16; l++) {
189 int num5 = m_chunkOffsets.Count % 65536 * 3 * 4;
190 m_stream.Seek(num5, SeekOrigin.Begin);
198 catch (Exception e) {
205 stream.ReadByte() + (stream.ReadByte() << 8) + (stream.ReadByte() << 16) + (stream.ReadByte() << 24);
207 public static void WriteInt(Stream stream,
int value) {
208 stream.WriteByte((
byte)value);
209 stream.WriteByte((
byte)(value >> 8));
210 stream.WriteByte((
byte)(value >> 16));
211 stream.WriteByte((
byte)(value >> 24));
static void Error(object message)
static Stream OpenFile(string path, OpenFileMode openFileMode)
static bool FileExists(string path)
static string CombinePaths(params string[] paths)
static string MakeFullErrorMessage(Exception e)
static int CalculateCellIndex(int x, int y, int z)
virtual void SetShaftValueFast(int x, int z, int value)
virtual int GetCellValueFast(int index)
virtual void SetCellValueFast(int x, int y, int z, int value)
virtual int GetShaftValueFast(int x, int z)
static void WriteChunkHeader(Stream stream, int cx, int cz)
const int TocEntryBytesCount
bool LoadChunk(TerrainChunk chunk)
const string ChunksFileName
unsafe bool LoadChunkBlocks(TerrainChunk chunk)
static int ReadInt(Stream stream)
static void WriteInt(Stream stream, int value)
IEnumerable< Point2 > Chunks
TerrainSerializer22(Terrain terrain, string directoryName)
static void WriteTOCEntry(Stream stream, int cx, int cz, int index)
const int ChunkBytesCount
unsafe void SaveChunkBlocks(TerrainChunk chunk)
void SaveChunk(TerrainChunk chunk)
static void ReadTOCEntry(Stream stream, out int cx, out int cz, out int index)
Dictionary< Point2, long > m_chunkOffsets
static void ReadChunkHeader(Stream stream)