diff options
author | madmaxoft <github@xoft.cz> | 2014-06-14 12:06:48 +0200 |
---|---|---|
committer | madmaxoft <github@xoft.cz> | 2014-06-14 12:06:48 +0200 |
commit | f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b (patch) | |
tree | d2f3e35f37821e93d92143db2055bcedeaf57142 /src/LightingThread.cpp | |
parent | Player.h: Moved doxy-comments to Entity.h (diff) | |
parent | Fixed a repeater issue (diff) | |
download | cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.gz cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.bz2 cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.lz cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.xz cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.tar.zst cuberite-f8f7748a09b936cc888c0c4a1f0ae9e9e444ba5b.zip |
Diffstat (limited to 'src/LightingThread.cpp')
-rw-r--r-- | src/LightingThread.cpp | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/LightingThread.cpp b/src/LightingThread.cpp index 5459644af..dc19bf500 100644 --- a/src/LightingThread.cpp +++ b/src/LightingThread.cpp @@ -18,20 +18,17 @@ class cReader : public cChunkDataCallback { - virtual void BlockTypes(const BLOCKTYPE * a_Type) override + virtual void ChunkData(const cChunkData & a_ChunkBuffer) override { - // ROW is a block of 16 Blocks, one whole row is copied at a time (hopefully the compiler will optimize that) - // C++ doesn't permit copying arrays, but arrays as a part of a struct is ok :) - typedef struct {BLOCKTYPE m_Row[16]; } ROW; - ROW * InputRows = (ROW *)a_Type; - ROW * OutputRows = (ROW *)m_BlockTypes; + BLOCKTYPE * OutputRows = m_BlockTypes; int InputIdx = 0; int OutputIdx = m_ReadingChunkX + m_ReadingChunkZ * cChunkDef::Width * 3; for (int y = 0; y < cChunkDef::Height; y++) { for (int z = 0; z < cChunkDef::Width; z++) { - OutputRows[OutputIdx] = InputRows[InputIdx++]; + a_ChunkBuffer.CopyBlockTypes(OutputRows + OutputIdx * 16, InputIdx * 16, 16); + InputIdx++; OutputIdx += 3; } // for z // Skip into the next y-level in the 3x3 chunk blob; each level has cChunkDef::Width * 9 rows |