void DrawFieldSub(SDL_Surface *screen,
bool wall_left, bool wall_right, bool wall_front, int depth){
if(wall_left){// 左上
SDL_DrawLine(screen, (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * depth))),
(int)(Y_CENTER - (Y_HALF / (1 + Z_BLOCK * depth))), (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(Y_CENTER - (Y_HALF / (1 + Z_BLOCK * (depth+1)))), 255, 255, 255);
// 左下
SDL_DrawLine(screen, (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * depth))),
(int)(Y_CENTER + (Y_HALF / (1 + Z_BLOCK * depth))), (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(Y_CENTER + (Y_HALF / (1 + Z_BLOCK * (depth+1)))), 255, 255, 255);
}else{// 左
SDL_DrawLine(screen, (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * depth))),
(int)(Y_CENTER - (Y_HALF / (1 + Z_BLOCK * depth))), (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * depth))),
(int)(Y_CENTER + (Y_HALF / (1 + Z_BLOCK * depth))), 255, 255, 255);
if(depth < DRAW_DEPTH){
SDL_DrawLine(screen, (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * depth))),
(int)(Y_CENTER - (Y_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(Y_CENTER - (Y_HALF / (1 + Z_BLOCK * (depth+1)))),
255, 255, 255);SDL_DrawLine(screen, (int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * depth))),
(int)(Y_CENTER + (Y_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(Y_CENTER + (Y_HALF / (1 + Z_BLOCK * (depth+1)))),
255, 255, 255);if(!wall_front){SDL_DrawLine(screen,
(int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(Y_CENTER - (Y_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(X_CENTER - (X_HALF / (1 + Z_BLOCK * (depth+1)))),
(int)(Y_CENTER + (Y_HALF / (1 + Z_BLOCK * (depth+1)))),
255, 255, 255);}}}
// 右については略
// 左と座標を逆にして処理しているだけ。