diff --git a/Board.cpp b/Board.cpp index 986f7fb..083b637 100644 --- a/Board.cpp +++ b/Board.cpp @@ -39,6 +39,7 @@ void Board::removeClump(int ind){ void Board::convertClump(int ind){ BlockClump&c=clumps[ind]; + std::vector clumpsToAdd; for (Block&b:c.getBlocks()){ if (b.markedForDeletion) continue; bool emptyAirBelow=true; @@ -64,12 +65,15 @@ void Board::convertClump(int ind){ } c2.y=c.y; } - clumps.push_back(c2); + clumpsToAdd.push_back(c2); } else { b.pos=c.getBlockPosition(b); cols[b.pos.x/12].push_back(b); } } + for (BlockClump&bc:clumpsToAdd) { + clumps.push_back(bc); + } removeClump(ind); } diff --git a/C++ProjectTemplate b/C++ProjectTemplate index b11ff54..e7687bd 100755 Binary files a/C++ProjectTemplate and b/C++ProjectTemplate differ diff --git a/main.cpp b/main.cpp index a6fa5e1..a6a5eed 100644 --- a/main.cpp +++ b/main.cpp @@ -26,11 +26,11 @@ bool Meteos::OnUserUpdate(float fElapsedTime) fElapsedTime=std::min(fElapsedTime,1/60.f); if (!onlyOnce) { BlockClump c; + c.addBlock(0,2,BlockColor::RED); + c.addBlock(0,1,BlockColor::RED); c.addBlock(1,0,BlockColor::RED); c.addBlock(2,0,BlockColor::RED); c.addBlock(0,0,BlockColor::RED); - c.addBlock(0,1,BlockColor::RED); - c.addBlock(0,2,BlockColor::RED); c.y=120; gameBoard.addClump(c); onlyOnce=true;