MCPcopy Create free account
hub / github.com/NetHack/NetHack / sort_rooms

Function sort_rooms

src/mklev.c:209–228  ·  view source on GitHub ↗

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 */

Source from the content-addressed store, hash-verified

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 */
209void
210sort_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
230staticfn void
231do_room_or_subroom(struct mkroom *croom,

Callers 1

makelevelFunction · 0.85

Calls 1

qsortFunction · 0.85

Tested by

no test coverage detected