diff --git a/SQCSim2021/array2d.h b/SQCSim2021/array2d.h index 225587a..b6068a1 100644 --- a/SQCSim2021/array2d.h +++ b/SQCSim2021/array2d.h @@ -30,7 +30,7 @@ Array2d::~Array2d() { delete[] m_array; } template Array2d::Array2d(const Array2d& array) : m_x(array.m_x), m_y(array.m_y) { - m_array = new BlockType[m_x * m_y]; + m_array = new T[m_x * m_y]; for (int i = 0; i < m_x * m_y; ++i) m_array[i] = array.m_array[i]; } diff --git a/SQCSim2021/array3d.h b/SQCSim2021/array3d.h index 66dad15..1b4d13f 100644 --- a/SQCSim2021/array3d.h +++ b/SQCSim2021/array3d.h @@ -30,7 +30,7 @@ Array3d::~Array3d() { delete[] m_array; } template Array3d::Array3d(const Array3d& array) : m_x(array.m_x), m_y(array.m_y), m_z(array.m_z) { - m_array = new BlockType[m_x * m_y * m_z]; + m_array = new T[m_x * m_y * m_z]; for (int i = 0; i < m_x * m_y * m_z; ++i) m_array[i] = array.m_array[i]; } diff --git a/SQCSim2021/chunk.cpp b/SQCSim2021/chunk.cpp index 5fe0b2d..356d5b6 100644 --- a/SQCSim2021/chunk.cpp +++ b/SQCSim2021/chunk.cpp @@ -46,49 +46,45 @@ void Chunk::Update(BlockInfo* blockinfo[BTYPE_LAST]) { m_isDirty = false; } -void Chunk::AddBlockToMesh(VertexBuffer::VertexData* vd, int& count, BlockType bt, int x, int y, int z, float u, float v, float s) { - // x - if (x == CHUNK_SIZE_X - 1 || GetBlock(x + 1, y, z) == BTYPE_AIR) { +void Chunk::AddBlockToMesh(VertexBuffer::VertexData* vd, int& count, BlockType bt, + int x, int y, int z, float u, float v, float s) { + + if (x == CHUNK_SIZE_X - 1 || GetBlock(x + 1, y, z) == BTYPE_AIR) { // x vd[count++] = VertexBuffer::VertexData(x + .5f, y - .5f, z - .5f, .9f, .9f, .9f, u, v); vd[count++] = VertexBuffer::VertexData(x + .5f, y + .5f, z - .5f, .9f, .9f, .9f, u, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y + .5f, z + .5f, .9f, .9f, .9f, u + s, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y - .5f, z + .5f, .9f, .9f, .9f, u + s, v); } - // -x - if (x == 0 || GetBlock(x - 1, y, z) == BTYPE_AIR) { + if (x == 0 || GetBlock(x - 1, y, z) == BTYPE_AIR) { // -x vd[count++] = VertexBuffer::VertexData(x - .5f, y + .5f, z + .5f, .9f, .9f, .9f, u, v + s); vd[count++] = VertexBuffer::VertexData(x - .5f, y + .5f, z - .5f, .9f, .9f, .9f, u + s, v + s); vd[count++] = VertexBuffer::VertexData(x - .5f, y - .5f, z - .5f, .9f, .9f, .9f, u + s, v); vd[count++] = VertexBuffer::VertexData(x - .5f, y - .5f, z + .5f, .9f, .9f, .9f, u, v); } - // y - if (y == CHUNK_SIZE_Y - 1 || GetBlock(x, y + 1, z) == BTYPE_AIR) { + if (y == CHUNK_SIZE_Y - 1 || GetBlock(x, y + 1, z) == BTYPE_AIR) { // y vd[count++] = VertexBuffer::VertexData(x - .5f, y + .5f, z - .5f, .8f, .8f, .8f, u, v); vd[count++] = VertexBuffer::VertexData(x - .5f, y + .5f, z + .5f, .8f, .8f, .8f, u, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y + .5f, z + .5f, .8f, .8f, .8f, u + s, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y + .5f, z - .5f, .8f, .8f, .8f, u + s, v); } - - // - y - if (y == 0 || GetBlock(x, y - 1, z) == BTYPE_AIR) { + + if (y == 0 || GetBlock(x, y - 1, z) == BTYPE_AIR) { // -y vd[count++] = VertexBuffer::VertexData(x - .5f, y - .5f, z + .5f, .8f, .8f, .8f, u, v); vd[count++] = VertexBuffer::VertexData(x - .5f, y - .5f, z - .5f, .8f, .8f, .8f, u, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y - .5f, z - .5f, .8f, .8f, .8f, u + s, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y - .5f, z + .5f, .8f, .8f, .8f, u + s, v); } - // z - if (z == CHUNK_SIZE_Z - 1 || GetBlock(x, y, z + 1) == BTYPE_AIR) { + if (z == CHUNK_SIZE_Z - 1 || GetBlock(x, y, z + 1) == BTYPE_AIR) { // z vd[count++] = VertexBuffer::VertexData(x - .5f, y - .5f, z + .5f, 1.f, 1.f, 1.f, u, v); vd[count++] = VertexBuffer::VertexData(x + .5f, y - .5f, z + .5f, 1.f, 1.f, 1.f, u + s, v); vd[count++] = VertexBuffer::VertexData(x + .5f, y + .5f, z + .5f, 1.f, 1.f, 1.f, u + s, v + s); vd[count++] = VertexBuffer::VertexData(x - .5f, y + .5f, z + .5f, 1.f, 1.f, 1.f, u, v + s); } - // -z - if (z == 0 || GetBlock(x, y, z - 1) == BTYPE_AIR) { + if (z == 0 || GetBlock(x, y, z - 1) == BTYPE_AIR) { // -z vd[count++] = VertexBuffer::VertexData(x - .5f, y + .5f, z - .5f, 1.f, 1.f, 1.f, u, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y + .5f, z - .5f, 1.f, 1.f, 1.f, u + s, v + s); vd[count++] = VertexBuffer::VertexData(x + .5f, y - .5f, z - .5f, 1.f, 1.f, 1.f, u + s, v);