def _room_library(w, h, wall_material, floor_material):
    M = room_default(w, h, wall_type=wall_material, floor_type=floor_material)
    for x in range(1, w // 2 - 1):
        M[x, 1].put(T.furniture_bookcase())
    for x in range(w // 2 + 1 + w % 2, w - 1):
        M[x, 1].put(T.furniture_bookcase())
    for x in (1, w - 2):
        M[x, 2].put(T.furniture_bookcase())
        M[x, h - 2] = C.column_antique()
    for x in (0, w - 1):
        M[x, 2] = C.door_open_stairs()
        M[x, h - 3] = C.door_closed()
    for x in range(w // 2 - 1, w // 2 + 1 + w % 2):
        M[x, 1].put(T.furniture_hearth())
        M[x, 3].put(T.furniture_sofa())
        M[x, h - 3].put(T.furniture_chair())
        M[x, h - 1] = C.door_open_empty()
    items = [T.book(), T.book()]
    M.scatter(2, 2, w - 2, 3, items)
    for x in range(3, w - 3):
        M[x, h - 4].put(T.furniture_longtable())
    for x in (2, w - 3):
        M[x, h - 4].put(T.furniture_chair())
    for x in (3, w - 4):
        M[x, h - 5].put(T.furniture_chandelier())

    return M
def _room_bedroom(w, h, wall_material, floor_material):
    M = room_default(w, h, wall_type=wall_material, floor_type=floor_material)
    for x in range(1, w - 2):
        M[x, 1].put(T.furniture_longtable())
    M[2, 2].put(T.furniture_chair())
    M[w - 2, 1].put(T.furniture_bookcase())
    M[w - 2, h - 5].put(T.furniture_closet())
    M[1, h - 5].put(T.furniture_chandelier())
    M[2, h - 5].put(T.furniture_bed_double())
    M[w - 2, h // 3].put(T.urn())
    for x in range(1, w - 2):
        M[x, h - 4] = wall_material()
    M[w - 2, h - 4] = C.door_open_stairs()
    items = [
        T.light_lantern_oil(),
        T.magic_alchemisttable(),
        T.book_magic(),
        T.furniture_chair()
    ]
    M.scatter(1,
              h - 3,
              w - 1,
              h - 1,
              items,
              exclude=[(2, h - 3), (3, h - 3), (4, h - 3)])
    return M