#ifndef GENESIS_GEN_ROOM_TYPES_H
#define GENESIS_GEN_ROOM_TYPES_H

#include "grid.h"
#include "rng.h"

typedef enum {
    ROOM_SMALL_RECT = 0,
    ROOM_CROSS      = 1,
    ROOM_SYM_CROSS  = 2,
    ROOM_CIRCULAR   = 3,
    ROOM_CHUNKY     = 4,
    ROOM_CAVE       = 5,
    ROOM_CAVERN     = 6,
    ROOM_ENTRANCE   = 7,
    ROOM_COUNT
} room_type_t;

/* Carve a room into the hyperspace scratch grid g, filling floor terrain with
   room_id. Returns 1 on success, 0 if the type couldn't fit at (cx, cy). */
int room_carve(grid_t g, room_type_t type, rng_t *rng, int cx, int cy, uint8_t room_id);

const char *room_type_name(room_type_t t);

#endif
