Sort rooms on the level so they're ordered from left to right on the map. makecorridors() by default links rooms N and N+1 */
| 207 | /* Sort rooms on the level so they're ordered from left to right on the map. |
| 208 | makecorridors() by default links rooms N and N+1 */ |
| 209 | void |
| 210 | sort_rooms(void) |
| 211 | { |
| 212 | coordxy x, y; |
| 213 | unsigned i, ri[MAXNROFROOMS + 1] = { 0U }, n = (unsigned) svn.nroom; |
| 214 | |
| 215 | qsort((genericptr_t) svr.rooms, n, sizeof (struct mkroom), mkroom_cmp); |
| 216 | |
| 217 | /* Update the roomnos on the map */ |
| 218 | for (i = 0; i < n; i++) |
| 219 | ri[svr.rooms[i].roomnoidx] = i; |
| 220 | |
| 221 | for (x = 1; x < COLNO; x++) |
| 222 | for (y = 0; y < ROWNO; y++) { |
| 223 | unsigned rno = levl[x][y].roomno; |
| 224 | |
| 225 | if (rno >= ROOMOFFSET && rno < MAXNROFROOMS + 1) |
| 226 | levl[x][y].roomno = ri[rno - ROOMOFFSET] + ROOMOFFSET; |
| 227 | } |
| 228 | } |
| 229 | |
| 230 | staticfn void |
| 231 | do_room_or_subroom(struct mkroom *croom, |