It wasn't clear to me how selection.room() handles room edges and unusual terrain in the room, so I looked at the code and wrote down how it behaves for posterity. I don't believe the one room currently capable of getting a random fill while already containing some odd terrain, "Blocked center", actually has unusual terrain in the room fill. This is because filler_region creates an irregular region (i.e. a room containing the ROOM points in a square ring around the blocked center). The points in the middle don't share the same roomno, so they won't be returned in the selection created by selection.room(). But there's no reason a room couldn't be added in the future which does specify some nonstandard terrain and then a themeroom fill.
38 KiB
38 KiB