From ad10b8718fe337fb2dab8d0315cb6ba338479e75 Mon Sep 17 00:00:00 2001 From: "madmaxoft@gmail.com" Date: Sat, 30 Mar 2013 21:03:56 +0000 Subject: ChunkDesc: Extended the interface, RelCuboid functions now take either a cCuboid or a set of 6 coords. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1330 0a769ca7-a7f5-676a-18bf-c427514a06d6 --- source/Generating/ChunkDesc.cpp | 39 +++++++++++++++++++++++++-------------- 1 file changed, 25 insertions(+), 14 deletions(-) (limited to 'source/Generating/ChunkDesc.cpp') diff --git a/source/Generating/ChunkDesc.cpp b/source/Generating/ChunkDesc.cpp index 4a1272ffd..bd1abdeaa 100644 --- a/source/Generating/ChunkDesc.cpp +++ b/source/Generating/ChunkDesc.cpp @@ -383,14 +383,19 @@ HEIGHTTYPE cChunkDesc::GetMaxHeight(void) const -void cChunkDesc::FillRelCuboid(const cCuboid & a_RelCuboid, BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta) +void cChunkDesc::FillRelCuboid( + int a_MinX, int a_MaxX, + int a_MinY, int a_MaxY, + int a_MinZ, int a_MaxZ, + BLOCKTYPE a_BlockType, NIBBLETYPE a_BlockMeta +) { - int MinX = std::max(a_RelCuboid.p1.x, 0); - int MinY = std::max(a_RelCuboid.p1.y, 0); - int MinZ = std::max(a_RelCuboid.p1.z, 0); - int MaxX = std::min(a_RelCuboid.p2.x, cChunkDef::Width - 1); - int MaxY = std::min(a_RelCuboid.p2.y, cChunkDef::Height - 1); - int MaxZ = std::min(a_RelCuboid.p2.z, cChunkDef::Width - 1); + int MinX = std::max(a_MinX, 0); + int MinY = std::max(a_MinY, 0); + int MinZ = std::max(a_MinZ, 0); + int MaxX = std::min(a_MaxX, cChunkDef::Width - 1); + int MaxY = std::min(a_MaxY, cChunkDef::Height - 1); + int MaxZ = std::min(a_MaxZ, cChunkDef::Width - 1); for (int y = MinY; y <= MaxY; y++) { @@ -408,14 +413,20 @@ void cChunkDesc::FillRelCuboid(const cCuboid & a_RelCuboid, BLOCKTYPE a_BlockTyp -void cChunkDesc::ReplaceRelCuboid(const cCuboid & a_RelCuboid, BLOCKTYPE a_SrcType, NIBBLETYPE a_SrcMeta, BLOCKTYPE a_DstType, NIBBLETYPE a_DstMeta) +void cChunkDesc::ReplaceRelCuboid( + int a_MinX, int a_MaxX, + int a_MinY, int a_MaxY, + int a_MinZ, int a_MaxZ, + BLOCKTYPE a_SrcType, NIBBLETYPE a_SrcMeta, + BLOCKTYPE a_DstType, NIBBLETYPE a_DstMeta +) { - int MinX = std::max(a_RelCuboid.p1.x, 0); - int MinY = std::max(a_RelCuboid.p1.y, 0); - int MinZ = std::max(a_RelCuboid.p1.z, 0); - int MaxX = std::min(a_RelCuboid.p2.x, cChunkDef::Width - 1); - int MaxY = std::min(a_RelCuboid.p2.y, cChunkDef::Height - 1); - int MaxZ = std::min(a_RelCuboid.p2.z, cChunkDef::Width - 1); + int MinX = std::max(a_MinX, 0); + int MinY = std::max(a_MinY, 0); + int MinZ = std::max(a_MinZ, 0); + int MaxX = std::min(a_MaxX, cChunkDef::Width - 1); + int MaxY = std::min(a_MaxY, cChunkDef::Height - 1); + int MaxZ = std::min(a_MaxZ, cChunkDef::Width - 1); for (int y = MinY; y <= MaxY; y++) { -- cgit v1.2.3