Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- if(sandbox[x][y] > 1) //If the particle is not wall or air
- {
- int type = sandbox[x][y];
- if(particle[type] == 1) //If the particle has regular gravity
- {
- if(sandbox_status[x][y] == 0) //If it hasn't been updated yet
- {
- if(y > MAP_WIDTH-17)
- {
- sandbox[x][y] = 0;
- }
- else
- if (sandbox[x][y+1] == 0) //If there is a free spot below it move it down
- {
- sandbox[x][y+1] = sandbox[x][y];
- sandbox[x][y] = 0;
- sandbox_status[x][y+1] = 1;
- }
- else
- //Move down and left or right
- if (sandbox[x][y+1] != 0 && sandbox_status[x][y] == 0) //If there is a particle below it
- {
- if (sandbox[x+1][y+1] == 0 && sandbox[x-1][y+1] != 0) //If a particle is down to the left and not down to the right
- {
- sandbox[x+1][y+1] = sandbox[x][y];
- sandbox[x][y] = 0;
- sandbox_status[x+1][y+1] = 1;
- }
- else
- if (sandbox[x-1][y+1] == 0 && sandbox[x+1][y+1] != 0 && sandbox_status[x+1][y+1] == 0) //If a particle is Down to the right go to the left.
- {
- sandbox[x-1][y+1] = sandbox[x][y];
- sandbox[x][y] = 0;
- sandbox_status[x-1][y+1] = 1;
- }
- else
- if (sandbox[x-1][y+1] == 0 && sandbox[x+1][y+1] == 0)
- {
- if(y%2 == 0)
- {
- sandbox[x+1][y+1] = sandbox[x][y];
- sandbox[x][y] = 0;
- sandbox_status[x+1][y+1] = 1;
- }
- else
- {
- sandbox[x-1][y+1] = sandbox[x][y];
- sandbox[x][y] = 0;
- sandbox_status[x-1][y+1] = 1;
- }
- }
- else
- if (sandbox[x+1][y+1] > 0 && sandbox[x+1][y] == 0)
- {
- sandbox[x+1][y] = sandbox[x][y];
- sandbox[x][y] = 0;
- sandbox_status[x+1][y] = 1;
- }
- else
- if (sandbox[x-1][y+1] > 0 && sandbox[x-1][y] == 0 && sandbox_status[x-1][y]==0)
- {
- sandbox[x-1][y] = sandbox[x][y];
- sandbox[x][y] = 0;
- sandbox_status[x-1][y] = 1;
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement