… | |
… | |
150 | connect_spirals (int xsize, int ysize, int sym, char **layout) |
150 | connect_spirals (int xsize, int ysize, int sym, char **layout) |
151 | { |
151 | { |
152 | |
152 | |
153 | int i, j, ic = xsize / 2, jc = ysize / 2; |
153 | int i, j, ic = xsize / 2, jc = ysize / 2; |
154 | |
154 | |
155 | if (sym == X_SYM) |
155 | if (sym == SYMMETRY_X) |
156 | { |
156 | { |
157 | layout[ic][jc] = 0; |
157 | layout[ic][jc] = 0; |
158 | /* go left from map center */ |
158 | /* go left from map center */ |
159 | for (i = ic - 1, j = jc; i > 0 && layout[i][j] == '#'; i--) |
159 | for (i = ic - 1, j = jc; i > 0 && layout[i][j] == '#'; i--) |
160 | layout[i][j] = 0; |
160 | layout[i][j] = 0; |
161 | /* go right */ |
161 | /* go right */ |
162 | for (i = ic + 1, j = jc; i < xsize - 1 && layout[i][j] == '#'; i++) |
162 | for (i = ic + 1, j = jc; i < xsize - 1 && layout[i][j] == '#'; i++) |
163 | layout[i][j] = 0; |
163 | layout[i][j] = 0; |
164 | } |
164 | } |
165 | |
165 | |
166 | if (sym == Y_SYM) |
166 | if (sym == SYMMETRY_Y) |
167 | { |
167 | { |
168 | |
168 | |
169 | layout[ic][jc] = 0; |
169 | layout[ic][jc] = 0; |
170 | /* go up */ |
170 | /* go up */ |
171 | for (i = ic, j = jc - 1; j > 0 && layout[i][j] == '#'; j--) |
171 | for (i = ic, j = jc - 1; j > 0 && layout[i][j] == '#'; j--) |
… | |
… | |
173 | /* go down */ |
173 | /* go down */ |
174 | for (i = ic, j = jc + 1; j < ysize - 1 && layout[i][j] == '#'; j++) |
174 | for (i = ic, j = jc + 1; j < ysize - 1 && layout[i][j] == '#'; j++) |
175 | layout[i][j] = 0; |
175 | layout[i][j] = 0; |
176 | } |
176 | } |
177 | |
177 | |
178 | if (sym == XY_SYM) |
178 | if (sym == SYMMETRY_XY) |
179 | { |
179 | { |
180 | /* go left from map center */ |
180 | /* go left from map center */ |
181 | layout[ic][jc / 2] = 0; |
181 | layout[ic][jc / 2] = 0; |
182 | layout[ic / 2][jc] = 0; |
182 | layout[ic / 2][jc] = 0; |
183 | layout[ic][jc / 2 + jc] = 0; |
183 | layout[ic][jc / 2 + jc] = 0; |