warning level setups

Co-authored-by: sigonasr2 <sigonasr2@gmail.com>
master
sigonasr2 2 years ago
parent 0cbdb6f7da
commit d6f46ba81b
  1. 1
      Board.cpp
  2. 3
      Board.h
  3. BIN
      C++ProjectTemplate
  4. 108
      main.cpp

@ -12,6 +12,7 @@ Board::Board(vi2d boardSize,float blockWeight,float gravity,float maxGravity,flo
for (int i=0;i<boardSize.x;i++) {
cols.push_back(std::vector<Block>());
cols[i].reserve(boardSize.y+10);
warningFlashingLevel.push_back(0.f);
}
clumps.reserve(100);
}

@ -53,6 +53,9 @@ class Board{
float launchTime; //How much time a stack rises before beginning descent.
float landTime;
SelectedBlockData selectedBlock;
int warningLevel=0;
int maxWarningLevel=0;
std::vector<float> warningFlashingLevel;
Board();
Board(vi2d boardSize,float blockWeight,float gravity,float maxGravity,float launchedGravity,float launchedMaxGravity,std::vector<float> launchSpd,float launchTime,float landTime,float spawnRate,std::array<int,10> colorRates,Renderable&tileset);
void spawnBlock(int col);

Binary file not shown.

@ -44,6 +44,60 @@ bool Meteos::OnUserUpdate(float fElapsedTime)
}
void Meteos::handleInput(){
if (GetMouse(0).bHeld){
int mouseX=(GetMouseX()-gameBoard.drawOffset.x);
int mouseY=(GetMouseY()-gameBoard.drawOffset.y);
int mouseCol=mouseX/12;
int mouseRow=mouseY/12;
if (mouseCol>=0&&mouseCol<gameBoard.boardSize.x) {
for (int y=0;y<gameBoard.getBlocks(mouseCol).size();y++){
Block&b=gameBoard.getBlocks(mouseCol)[y];
if (b.pos.y/12==mouseRow){
SelectedBlockData newData={mouseCol,y,-1};
if (gameBoard.selectedBlock.col!=-1&&mouseCol==gameBoard.selectedBlock.col){
//See if these two can be swapped.
Block&b1=gameBoard.getBlock(gameBoard.selectedBlock);
Block&b2=gameBoard.getBlock(newData);
int y1=(gameBoard.selectedBlock.c!=-1)?gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlockPosition(gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlocks()[gameBoard.selectedBlock.ind]).y:gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y;
int y2=(newData.c!=-1)?gameBoard.getBlockClumps()[newData.c].getBlockPosition(gameBoard.getBlockClumps()[newData.c].getBlocks()[newData.ind]).y:gameBoard.getBlocks(newData.col)[newData.ind].pos.y;
if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12){
//Swap the two!
BlockColor tempCol=b1.col;
b1.col=b2.col;
b2.col=tempCol;
}
}
gameBoard.selectedBlock=newData;
goto found;
}
}
for (int i=0;i<gameBoard.getBlockClumps().size();i++){
BlockClump&c=gameBoard.getBlockClumps()[i];
for (int j=0;j<c.getBlocks().size();j++){
Block&b=c.getBlocks()[j];
if (b.pos.x/12==mouseCol&&c.getBlockPosition(b).y<=mouseY&&c.getBlockPosition(b).y+12>=mouseY){
SelectedBlockData newData={mouseCol,j,i};
if (gameBoard.selectedBlock.col!=-1&&mouseCol==gameBoard.selectedBlock.col){
//See if these two can be swapped.
Block&b1=gameBoard.getBlock(gameBoard.selectedBlock);
Block&b2=gameBoard.getBlock(newData);
int y1=(gameBoard.selectedBlock.c!=-1)?gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlockPosition(gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlocks()[gameBoard.selectedBlock.ind]).y:gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y;
int y2=(newData.c!=-1)?gameBoard.getBlockClumps()[newData.c].getBlockPosition(gameBoard.getBlockClumps()[newData.c].getBlocks()[newData.ind]).y:gameBoard.getBlocks(newData.col)[newData.ind].pos.y;
if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12){
//Swap the two!
BlockColor tempCol=b1.col;
b1.col=b2.col;
b2.col=tempCol;
}
}
gameBoard.selectedBlock=newData;
goto found;
}
}
}
found:;
}
}
if (GetMouse(0).bReleased){
gameBoard.selectedBlock={-1,-1,-1};
}
@ -585,60 +639,6 @@ void Meteos::updateGame(float fElapsedTime){
}
}
invalidatedExit:
if (GetMouse(0).bHeld){
int mouseX=(GetMouseX()-gameBoard.drawOffset.x);
int mouseY=(GetMouseY()-gameBoard.drawOffset.y);
int mouseCol=mouseX/12;
int mouseRow=mouseY/12;
if (mouseCol>=0&&mouseCol<gameBoard.boardSize.x) {
for (int y=0;y<gameBoard.getBlocks(mouseCol).size();y++){
Block&b=gameBoard.getBlocks(mouseCol)[y];
if (b.pos.y/12==mouseRow){
SelectedBlockData newData={mouseCol,y,-1};
if (gameBoard.selectedBlock.col!=-1&&mouseCol==gameBoard.selectedBlock.col){
//See if these two can be swapped.
Block&b1=gameBoard.getBlock(gameBoard.selectedBlock);
Block&b2=gameBoard.getBlock(newData);
int y1=(gameBoard.selectedBlock.c!=-1)?gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlockPosition(gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlocks()[gameBoard.selectedBlock.ind]).y:gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y;
int y2=(newData.c!=-1)?gameBoard.getBlockClumps()[newData.c].getBlockPosition(gameBoard.getBlockClumps()[newData.c].getBlocks()[newData.ind]).y:gameBoard.getBlocks(newData.col)[newData.ind].pos.y;
if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12){
//Swap the two!
BlockColor tempCol=b1.col;
b1.col=b2.col;
b2.col=tempCol;
}
}
gameBoard.selectedBlock=newData;
goto found;
}
}
for (int i=0;i<gameBoard.getBlockClumps().size();i++){
BlockClump&c=gameBoard.getBlockClumps()[i];
for (int j=0;j<c.getBlocks().size();j++){
Block&b=c.getBlocks()[j];
if (b.pos.x/12==mouseCol&&c.getBlockPosition(b).y<=mouseY&&c.getBlockPosition(b).y+12>=mouseY){
SelectedBlockData newData={mouseCol,j,i};
if (gameBoard.selectedBlock.col!=-1&&mouseCol==gameBoard.selectedBlock.col){
//See if these two can be swapped.
Block&b1=gameBoard.getBlock(gameBoard.selectedBlock);
Block&b2=gameBoard.getBlock(newData);
int y1=(gameBoard.selectedBlock.c!=-1)?gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlockPosition(gameBoard.getBlockClumps()[gameBoard.selectedBlock.c].getBlocks()[gameBoard.selectedBlock.ind]).y:gameBoard.getBlocks(gameBoard.selectedBlock.col)[gameBoard.selectedBlock.ind].pos.y;
int y2=(newData.c!=-1)?gameBoard.getBlockClumps()[newData.c].getBlockPosition(gameBoard.getBlockClumps()[newData.c].getBlocks()[newData.ind]).y:gameBoard.getBlocks(newData.col)[newData.ind].pos.y;
if (b1.pos.x==b2.pos.x&&std::abs(y1-y2)<=12){
//Swap the two!
BlockColor tempCol=b1.col;
b1.col=b2.col;
b2.col=tempCol;
}
}
gameBoard.selectedBlock=newData;
goto found;
}
}
}
found:;
}
}
for (int i=comboDisplayList.size()-1;i>=0;i--){
ComboOverlay&c=comboDisplayList[i];
c.lifetime++;

Loading…
Cancel
Save