📄 blocks.cpp.in
字号:
} if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 5; d1 = 2*(piece[0][0] - piece[i][0]); if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2]])) break; } if(!ok) break; } else{ c[i-1] = 6; d1 = piece[0][2] - piece[i][2]; if((ok = !(piece[i][2] + d1 > 13))){ if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2] + d1])) break; } } if(!ok) break; } } else{ if(piece[i][0] > piece[0][0]){ // x c[i-1] = 7; d1 = piece[i][0] - piece[0][0]; if((ok = !(piece[i][0] - d1 < 0))){ if((ok = !(piece[i][2] + d1 > 13))){ if(!(ok = !room[piece[i][0] - d1][piece[i][1]][piece[i][2] + d1])) break; } } if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 8; d1 = piece[0][0] - piece[i][0]; if((ok = !(piece[i][2] - d1 < 0))){ if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2] - d1])) break; } } if(!ok) break; } } } if(ok){ for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0); switch(c[i-1]){ case 1: d1 = 2*(piece[i][0] - piece[0][0]); piece[i][0] -= d1; break; case 2: d1 = 2*(piece[i][2] - piece[0][2]); piece[i][2] -= d1; break; case 3: d1 = piece[i][2] - piece[0][2]; piece[i][0] -= d1; piece[i][2] -= d1; break; case 4: d1 = 2*(piece[0][2] - piece[i][2]); piece[i][2] += d1; break; case 5: d1 = 2*(piece[0][0] - piece[i][0]); piece[i][0] += d1; break; case 6: d1 = piece[0][2] - piece[i][2]; piece[i][0] += d1; piece[i][2] += d1; break; case 7: d1 = piece[i][0] - piece[0][0]; piece[i][0] -= d1; piece[i][2] += d1; break; case 8: d1 = piece[0][0] - piece[i][0]; piece[i][0] += d1; piece[i][2] -= d1; break; } } for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor; roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0); } } break; case 2: for(i = 1; i < 4; i++){ if(piece[i][1] > piece[0][1]){ // z if(piece[i][0] > piece[0][0]){ // x c[i-1] = 1; d1 = 2*(piece[i][1] - piece[0][1]); if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break; } if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 2; d1 = 2*(piece[0][0] - piece[i][0]); if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2]])) break; } if(!ok) break; } else{ c[i-1] = 3; d1 = piece[i][1] - piece[0][1]; if((ok = !(piece[i][0] + d1 > 3))){ if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1] - d1][piece[i][2]])) break; } } if(!ok) break; } } else if(piece[i][1] < piece[0][1]){ // z if(piece[i][0] > piece[0][0]){ // x c[i-1] = 4; d1 = 2*(piece[0][1] - piece[i][1]); if((ok = !(piece[i][0] - d1 < 0))){ if(!(ok = !room[piece[i][0] - d1][piece[i][1]][piece[i][2]])) break; } if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 5; d1 = 2*(piece[0][0] - piece[i][0]); if((ok = !(piece[i][1] + d1 > 3))){ if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2]])) break; } if(!ok) break; } else{ c[i-1] = 6; d1 = piece[0][1] - piece[i][1]; if((ok = !(piece[i][1] + d1 > 3))){ if((ok = !(piece[i][0] - d1 < 0))){ if(!(ok = !room[piece[i][0] - d1][piece[i][1] + d1][piece[i][2]])) break; } } if(!ok) break; } } else{ if(piece[i][0] > piece[0][0]){ // x c[i-1] = 7; d1 = piece[i][0] - piece[0][0]; if((ok = !(piece[i][0] - d1 < 0))){ if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0] - d1][piece[i][1] - d1][piece[i][2]])) break; } } if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 8; d1 = piece[0][0] - piece[i][0]; if((ok = !(piece[i][1] + d1 > 3))){ if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1] + d1][piece[i][2]])) break; } } if(!ok) break; } } } if(ok){ for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0); switch(c[i-1]){ case 1: d1 = 2*(piece[i][1] - piece[0][1]); piece[i][1] -= d1; break; case 2: d1 = 2*(piece[0][0] - piece[i][0]); piece[i][0] += d1; break; case 3: d1 = piece[i][1] - piece[0][1]; piece[i][0] += d1; piece[i][1] -= d1; break; case 4: d1 = 2*(piece[0][1] - piece[i][1]); piece[i][0] -= d1; break; case 5: d1 = 2*(piece[0][0] - piece[i][0]); piece[i][1] += d1; break; case 6: d1 = piece[0][1] - piece[i][1]; piece[i][0] -= d1; piece[i][1] += d1; break; case 7: d1 = piece[i][0] - piece[0][0]; piece[i][0] -= d1; piece[i][1] -= d1; break; case 8: d1 = piece[0][0] - piece[i][0]; piece[i][0] += d1; piece[i][1] += d1; break; } } for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor; roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0); } } break; case 3: for(i = 1; i < 4; i++){ if(piece[i][1] > piece[0][1]){ // z if(piece[i][0] > piece[0][0]){ // x c[i-1] = 1; d1 = 2*(piece[i][0] - piece[0][0]); if((ok = !(piece[i][0] - d1 < 0))){ if(!(ok = !room[piece[i][0] - d1][piece[i][1]][piece[i][2]])) break; } if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 2; d1 = 2*(piece[i][1] - piece[0][1]); if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break; } if(!ok) break; } else{ c[i-1] = 3; d1 = piece[i][1] - piece[0][1]; if((ok = !(piece[i][0] - d1 < 0))){ if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0] - d1][piece[i][1] - d1][piece[i][2]])) break; } } if(!ok) break; } } else if(piece[i][1] < piece[0][1]){ // z if(piece[i][0] > piece[0][0]){ // x c[i-1] = 4; d1 = 2*(piece[0][1] - piece[i][1]); if((ok = !(piece[i][1] + d1 > 3))){ if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2]])) break; } if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 5; d1 = 2*(piece[0][0] - piece[i][0]); if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1]][piece[i][2]])) break; } if(!ok) break; } else{ c[i-1] = 6; d1 = piece[0][1] - piece[i][1]; if((ok = !(piece[i][1] + d1 > 3))){ if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1] + d1][piece[i][2]])) break; } } if(!ok) break; } } else{ if(piece[i][0] > piece[0][0]){ // x c[i-1] = 7; d1 = piece[i][0] - piece[0][0]; if((ok = !(piece[i][0] - d1 < 0))){ if((ok = !(piece[i][1] + d1 > 3))){ if(!(ok = !room[piece[i][0] - d1][piece[i][1] + d1][piece[i][2]])) break; } } if(!ok) break; } else if(piece[i][0] < piece[0][0]){ c[i-1] = 8; d1 = piece[0][0] - piece[i][0]; if((ok = !(piece[i][1] - d1 < 0))){ if((ok = !(piece[i][0] + d1 > 3))){ if(!(ok = !room[piece[i][0] + d1][piece[i][1] - d1][piece[i][2]])) break; } } if(!ok) break; } } } if(ok){ for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0); switch(c[i-1]){ case 1: d1 = 2*(piece[i][0] - piece[0][0]); piece[i][0] -= d1; break; case 2: d1 = 2*(piece[i][1] - piece[0][1]); piece[i][1] -= d1; break; case 3: d1 = piece[i][1] - piece[0][1]; piece[i][0] -= d1; piece[i][1] -= d1; break; case 4: d1 = 2*(piece[0][1] - piece[i][1]); piece[i][1] += d1; break; case 5: d1 = 2*(piece[0][0] - piece[i][0]); piece[i][0] += d1; break; case 6: d1 = piece[0][1] - piece[i][1]; piece[i][0] += d1; piece[i][1] += d1; break; case 7: d1 = piece[i][0] - piece[0][0]; piece[i][0] -= d1; piece[i][1] += d1; break; case 8: d1 = piece[0][0] - piece[i][0]; piece[i][0] += d1; piece[i][1] -= d1; break; } } for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor; roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0); } } break; case 5: for(i = 1; i < 4; i++){ if(piece[i][2] > piece[0][2]){ // z if(piece[i][1] > piece[0][1]){ // x c[i-1] = 1; d1 = 2*(piece[i][2] - piece[0][2]); if((ok = !(piece[i][2] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] - d1])) break; } if(!ok) break; } else if(piece[i][1] < piece[0][1]){ c[i-1] = 2; d1 = 2*(piece[0][1] - piece[i][1]); if((ok = !(piece[i][1] + d1 > 3))){ if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2]])) break; } if(!ok) break; } else{ c[i-1] = 3; d1 = piece[i][2] - piece[0][2]; if((ok = !(piece[i][1] + d1 > 3))){ if((ok = !(piece[i][2] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2] - d1])) break; } } if(!ok) break; } } else if(piece[i][2] < piece[0][2]){ // z if(piece[i][1] > piece[0][1]){ // x c[i-1] = 4; d1 = 2*(piece[0][2] - piece[i][2]); if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break; } if(!ok) break; } else if(piece[i][1] < piece[0][1]){ c[i-1] = 5; d1 = 2*(piece[0][1] - piece[i][1]); if((ok = !(piece[i][2] + d1 > 13))){ if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] + d1])) break; } if(!ok) break; } else{ c[i-1] = 6; d1 = piece[0][2] - piece[i][2]; if((ok = !(piece[i][2] + d1 > 13))){ if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2] + d1])) break; } } if(!ok) break; } } else{ if(piece[i][1] > piece[0][1]){ // x c[i-1] = 7; d1 = piece[i][1] - piece[0][1]; if((ok = !(piece[i][1] - d1 < 0))){ if((ok = !(piece[i][2] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2] - d1])) break; } } if(!ok) break; } else if(piece[i][1] < piece[0][1]){ c[i-1] = 8; d1 = piece[0][1] - piece[i][1]; if((ok = !(piece[i][2] + d1 > 13))){ if((ok = !(piece[i][1] + d1 > 3))){ if(!(ok = !room[piece[i][0]][piece[i][1] + d1][piece[i][2] + d1])) break; } } if(!ok) break; } } } if(ok){ for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(1.0); switch(c[i-1]){ case 1: d1 = 2*(piece[i][2] - piece[0][2]); piece[i][2] -= d1; break; case 2: d1 = 2*(piece[0][1] - piece[i][1]); piece[i][1] += d1; break; case 3: d1 = piece[i][2] - piece[0][2]; piece[i][1] += d1; piece[i][2] -= d1; break; case 4: d1 = 2*(piece[0][2] - piece[i][2]); piece[i][1] -= d1; break; case 5: d1 = 2*(piece[0][1] - piece[i][1]); piece[i][2] += d1; break; case 6: d1 = piece[0][2] - piece[i][2]; piece[i][1] -= d1; piece[i][2] += d1; break; case 7: d1 = piece[i][1] - piece[0][1]; piece[i][1] -= d1; piece[i][2] -= d1; break; case 8: d1 = piece[0][1] - piece[i][1]; piece[i][1] += d1; piece[i][2] += d1; break; } } for(i = 1; i < 4; i++){ roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->ambientColor = piecematerial->ambientColor; roommaterials[piece[i][0]][piece[i][1]][piece[i][2]]->transparency.setValue(0.0); } } break; case 4: for(i = 1; i < 4; i++){ if(piece[i][2] > piece[0][2]){ // z if(piece[i][1] > piece[0][1]){ // x c[i-1] = 1; d1 = 2*(piece[i][1] - piece[0][1]); if((ok = !(piece[i][1] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2]])) break; } if(!ok) break; } else if(piece[i][1] < piece[0][1]){ c[i-1] = 2; d1 = 2*(piece[i][2] - piece[0][2]); if((ok = !(piece[i][2] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] - d1])) break; } if(!ok) break; } else{ c[i-1] = 3; d1 = piece[i][2] - piece[0][2]; if((ok = !(piece[i][1] - d1 < 0))){ if((ok = !(piece[i][2] - d1 < 0))){ if(!(ok = !room[piece[i][0]][piece[i][1] - d1][piece[i][2] - d1])) break; } } if(!ok) break; } } else if(piece[i][2] < piece[0][2]){ // z if(piece[i][1] > piece[0][1]){ // x c[i-1] = 4; d1 = 2*(piece[0][2] - piece[i][2]); if((ok = !(piece[i][2] + d1 > 13))){ if(!(ok = !room[piece[i][0]][piece[i][1]][piece[i][2] + d1])) break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -