git-svn-id: svn://db.shs.com.ru/libs@153 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2017-01-10 14:05:18 +00:00
parent f7ad7696ef
commit a1a58713f1
3 changed files with 10 additions and 5 deletions

View File

@@ -67,10 +67,12 @@ protected:
~BigChunk() {for (int i = 0; i < BIG_CHUNK_SIZE; ++i) for (int j = 0; j < BIG_CHUNK_SIZE; ++j) for (int k = 0; k < BIG_CHUNK_SIZE; ++k) if (chunks[i][j][k] != 0) delete chunks[i][j][k];}
void saveState() {for (int i = 0; i < BIG_CHUNK_SIZE; ++i) for (int j = 0; j < BIG_CHUNK_SIZE; ++j) for (int k = 0; k < BIG_CHUNK_SIZE; ++k) if (chunks[i][j][k] != 0) chunks[i][j][k]->saveState();}
Chunk * newChunk(const Vector3i & i) {
int _i = i.p0 % BIG_CHUNK_SIZE, _j = i.p1 % BIG_CHUNK_SIZE, _k = i.p2 % BIG_CHUNK_SIZE;
if (_i < 0) _i += BIG_CHUNK_SIZE; if (_j < 0) _j += BIG_CHUNK_SIZE; if (_k < 0) _k += BIG_CHUNK_SIZE;
if (chunks[_i][_j][_k] == 0) {qDebug() << "insert" << _i << _j << _k; chunks[_i][_j][_k] = new Chunk();}
return chunks[_i][_j][_k];}
int ii = i.p0 % BIG_CHUNK_SIZE, jj = i.p1 % BIG_CHUNK_SIZE, kk = i.p2 % BIG_CHUNK_SIZE;
if (ii < 0) ii += BIG_CHUNK_SIZE;
if (jj < 0) jj += BIG_CHUNK_SIZE;
if (kk < 0) kk += BIG_CHUNK_SIZE;
if (chunks[ii][jj][kk] == 0) {qDebug() << "insert" << ii << jj << kk; chunks[ii][jj][kk] = new Chunk();}
return chunks[ii][jj][kk];}
Vector3i index;
Chunk * chunks[BIG_CHUNK_SIZE][BIG_CHUNK_SIZE][BIG_CHUNK_SIZE];
};