File src/sp_lev.c


Included Files


Preprocessor definitions

#define LEFT 1

#define H_LEFT 2

#define CENTER 3

#define H_RIGHT 4

#define RIGHT 5

#define TOP 1

#define BOTTOM 5

#define sq( x )

#define XLIM 4

#define YLIM 3

#define Fread

#define Fgetc

#define New( type )

#define NewTab( type, size )

#define Free( ptr )

#define DRY 0x1

#define WET 0x2


Global Variable lev_message

char* lev_message
Visible in:  src/mkmaze.c
   src/sp_lev.c
Used in: fixup_special()src/mkmaze.c
  load_common_data()src/sp_lev.c

Global Variable lregions

lev_region* lregions
Visible in:  src/mkmaze.c
   src/sp_lev.c
Used in: fixup_special()src/mkmaze.c
  load_maze()src/sp_lev.c

Global Variable num_lregions

int num_lregions
Visible in:  src/mkmaze.c
   src/sp_lev.c
Used in: fixup_special()src/mkmaze.c
  load_maze()src/sp_lev.c

Global Variable init_lev

lev_init init_lev
Visible in:  src/sp_lev.c
Used in: load_common_data()src/sp_lev.c
  load_maze()src/sp_lev.c

External Variables

min_rx
extern int min_rx
Defined in: src/mkmap.c

max_rx
extern int max_rx
Defined in: src/mkmap.c

min_ry
extern int min_ry
Defined in: src/mkmap.c

max_ry
extern int max_ry
Defined in: src/mkmap.c


Local Variables

walklist
static walk walklist[50]
Used in: load_maze()

Map
static char Map[80][21]
Used in: load_maze()
  maze1xy()

robjects
static char robjects[10]
Used in: create_object()
  load_maze()
  load_rooms()

rloc_x
static char rloc_x[10]
Used in: get_location()
  load_maze()

rloc_y
static char rloc_y[10]
Used in: get_location()
  load_maze()

rmonst
static char rmonst[10]
Used in: create_monster()
  load_maze()
  load_rooms()

ralign
static aligntyp ralign[3]
Used in: create_altar()
  create_monster()
  load_common_data()

xstart
static xchar xstart
Used in: get_location()
  load_maze()

ystart
static xchar ystart
Used in: get_location()
  load_maze()

xsize
static char xsize
Used in: get_location()
  load_maze()

ysize
static char ysize
Used in: get_location()
  load_maze()


Global Function check_room()

boolean check_room ( xchar* lowx, xchar* ddx, xchar* lowy, xchar* ddy, boolean vault )
Prototyped in: include/extern.h
Calls: rn2()src/rnd.c
Called by: create_room()src/sp_lev.c
  makelevel()src/mklev.c
References Variables: levelsrc/decl.c

Global Function create_room()

boolean create_room ( xchar x, xchar y, xchar w, xchar h, xchar xal, xchar yal, xchar rtype, xchar rlit )
Prototyped in: include/extern.h
Calls: add_room()src/mklev.c
  check_room()src/sp_lev.c
  depth()src/dungeon.c
  get_rect()src/rect.c
  rn2()src/rnd.c
  rnd()src/rnd.c
  rnd_rect()src/rect.c
  split_rects()src/rect.c
  abs()
Called by: build_room()src/sp_lev.c
  makelevel()src/mklev.c
  makerooms()src/mklev.c
References Variables: nroomsrc/decl.c
  roomssrc/decl.c
  smeqsrc/decl.c
  usrc/decl.c

Global Function create_secret_door()

void create_secret_door ( struct mkroom* croom, xchar walls )
Prototyped in: include/extern.h
Calls: add_door()src/mklev.c
  impossible()src/pline.c
  okdoor()src/mklev.c
  rn2()src/rnd.c
Called by: fixup_special()src/mkmaze.c
References Variables: levelsrc/decl.c

Global Function dig_corridor()

boolean dig_corridor ( coord* org, coord* dest, boolean nxcor, schar ftyp, schar btyp )
Prototyped in: include/extern.h
Calls: mksobj_at()src/mkobj.c
  rn2()src/rnd.c
  abs()
Called by: create_corridor()src/sp_lev.c
  join()src/mklev.c
  join_map()src/mkmap.c
References Variables: levelsrc/decl.c

Global Function fill_room()

void fill_room ( struct mkroom* croom, boolean prefilled )
Prototyped in: include/extern.h
Calls: depth()src/dungeon.c
  fill_zoo()src/mkroom.c
  mkgold()src/mkobj.c
  rn2()src/rnd.c
  stock_room()src/shknam.c
  abs()
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c
  makelevel()src/mklev.c
References Variables: levelsrc/decl.c
  usrc/decl.c

Global Function load_special()

boolean load_special ( const char* name )
Prototyped in: include/extern.h
Calls: dlb_fclose()src/dlb.c
  dlb_fopen()src/dlb.c
  dlb_fread()src/dlb.c
  load_maze()src/sp_lev.c
  load_rooms()src/sp_lev.c
  check_version()
Called by: makemaz()src/mkmaze.c

Local Function build_room()

static void build_room ( room* r, room* pr )
Prototyped in: src/sp_lev.c
Calls: build_room()src/sp_lev.c
  create_altar()src/sp_lev.c
  create_door()src/sp_lev.c
  create_engraving()src/sp_lev.c
  create_feature()src/sp_lev.c
  create_gold()src/sp_lev.c
  create_monster()src/sp_lev.c
  create_object()src/sp_lev.c
  create_room()src/sp_lev.c
  create_stairs()src/sp_lev.c
  create_subroom()src/sp_lev.c
  create_trap()src/sp_lev.c
  fill_room()src/sp_lev.c
  rn2()src/rnd.c
  topologize()src/mklev.c
Called by: build_room()src/sp_lev.c
  load_rooms()src/sp_lev.c
References Variables: nroomsrc/decl.c
  nsubroomsrc/decl.c
  roomssrc/decl.c
  subroomssrc/decl.c

Local Function create_altar()

static void create_altar ( altar* a, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: get_free_room_loc()src/sp_lev.c
  get_location()src/sp_lev.c
  in_rooms()src/hack.c
  induced_align()src/dungeon.c
  noncoalignment()src/sp_lev.c
  priestini()src/priest.c
  rn2()src/rnd.c
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c
References Variables: levelsrc/decl.c
  ralignsrc/sp_lev.c
  roomssrc/decl.c
  usrc/decl.c

Local Function create_corridor()

static void create_corridor ( corridor* c )
Prototyped in: src/sp_lev.c
Calls: dig_corridor()src/sp_lev.c
  fix_stair_rooms()src/sp_lev.c
  makecorridors()src/mklev.c
  search_door()src/sp_lev.c
  sort_rooms()src/mklev.c
Called by: load_rooms()src/sp_lev.c
References Variables: roomssrc/decl.c

Local Function create_door()

static void create_door ( room_door* dd, struct mkroom* broom )
Prototyped in: src/sp_lev.c
Calls: add_door()src/mklev.c
  impossible()src/pline.c
  okdoor()src/mklev.c
  panic()src/end.c
  rn2()src/rnd.c
Called by: build_room()src/sp_lev.c
References Variables: levelsrc/decl.c

Local Function create_engraving()

static void create_engraving ( engraving* e, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: get_location()src/sp_lev.c
  get_room_loc()src/sp_lev.c
  make_engr_at()src/engrave.c
  free()
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c

Local Function create_feature()

static void create_feature ( int fx, int fy, struct mkroom* croom, int typ )
Prototyped in: src/sp_lev.c
Calls: get_location()src/sp_lev.c
  get_room_loc()src/sp_lev.c
  occupied()src/mklev.c
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c
References Variables: levelsrc/decl.c

Local Function create_gold()

static void create_gold ( gold* g, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: get_location()src/sp_lev.c
  get_room_loc()src/sp_lev.c
  mkgold()src/mkobj.c
  rnd()src/rnd.c
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c

Local Function create_monster()

static void create_monster ( monster* m, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: In_mines()src/dungeon.c
  christen_monst()src/do_name.c
  def_char_to_monclass()src/drawing.c
  get_location()src/sp_lev.c
  get_room_loc()src/sp_lev.c
  impossible()src/pline.c
  induced_align()src/dungeon.c
  makemon()src/makemon.c
  mk_mplayer()src/mplayer.c
  mk_roamer()src/priest.c
  mkclass()src/makemon.c
  monsndx()src/mondata.c
  noncoalignment()src/sp_lev.c
  panic()src/end.c
  rn2()src/rnd.c
  set_malign()src/makemon.c
  block_point(), does_block(), enexto(), free(), strcmp()
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c
References Variables: defsymssrc/drawing.c
  levelsrc/decl.c
  monssrc/monst.c
  mvitalssrc/decl.c
  obj_descrsrc/objects.c
  objectssrc/objects.c
  ralignsrc/sp_lev.c
  rmonstsrc/sp_lev.c
  usrc/decl.c
  uracesrc/role.c

Local Function create_object()

static void create_object ( object* o, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: add_to_container()src/mkobj.c
  bless()src/mkobj.c
  curse()src/mkobj.c
  dead_species()src/mon.c
  def_char_to_objclass()src/drawing.c
  delete_contents()src/shk.c
  get_location()src/sp_lev.c
  get_room_loc()src/sp_lev.c
  impossible()src/pline.c
  makemon()src/makemon.c
  mkgold()src/mkobj.c
  mkobj_at()src/mkobj.c
  mksobj_at()src/mkobj.c
  mongone()src/mon.c
  obj_extract_self()src/mkobj.c
  on_level()src/dungeon.c
  oname()src/do_name.c
  panic()src/end.c
  remove_object()src/mkobj.c
  rn2()src/rnd.c
  rndmonnum()src/mkobj.c
  stackobj()src/invent.c
  unbless()src/mkobj.c
  uncurse()src/mkobj.c
  attach_egg_hatch_timeout(), free(), kill_egg()
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c
References Variables: dungeon_topologysrc/decl.c
  monssrc/monst.c
  robjectssrc/sp_lev.c
  usrc/decl.c

Local Function create_stairs()

static void create_stairs ( stair* s, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: get_free_room_loc()src/sp_lev.c
  mkstairs()src/mklev.c
Called by: build_room()src/sp_lev.c

Local Function create_subroom()

static boolean create_subroom ( struct mkroom* proom, xchar x, xchar y, xchar w, xchar h, xchar rtype, xchar rlit )
Prototyped in: src/sp_lev.c
Calls: add_subroom()src/mklev.c
  depth()src/dungeon.c
  rn2()src/rnd.c
  rnd()src/rnd.c
  abs()
Called by: build_room()src/sp_lev.c
References Variables: usrc/decl.c

Local Function create_trap()

static void create_trap ( trap* t, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: get_free_room_loc()src/sp_lev.c
  get_location()src/sp_lev.c
  mktrap()src/mklev.c
  rn2()src/rnd.c
Called by: build_room()src/sp_lev.c
  load_maze()src/sp_lev.c

Local Function fix_stair_rooms()

static void fix_stair_rooms ( void )
Prototyped in: src/sp_lev.c
Calls: panic()src/end.c
Called by: create_corridor()src/sp_lev.c
References Variables: dnstairsrc/decl.c
  dnstairs_roomsrc/decl.c
  nroomsrc/decl.c
  roomssrc/decl.c
  upstairsrc/decl.c
  upstairs_roomsrc/decl.c

Local Function free_rooms()

static void free_rooms ( room** ro, int n )
Prototyped in: src/sp_lev.c
Calls: free()
Called by: load_rooms()src/sp_lev.c

Local Function get_free_room_loc()

static void get_free_room_loc ( schar* x, schar* y, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: get_room_loc()src/sp_lev.c
  panic()src/end.c
Called by: create_altar()src/sp_lev.c
  create_stairs()src/sp_lev.c
  create_trap()src/sp_lev.c
References Variables: levelsrc/decl.c

Local Function get_location()

static void get_location ( schar* x, schar* y, int humidity )
Prototyped in: src/sp_lev.c
Calls: impossible()src/pline.c
  is_ok_location()src/sp_lev.c
  isok()src/cmd.c
  panic()src/end.c
  rn2()src/rnd.c
Called by: create_altar()src/sp_lev.c
  create_engraving()src/sp_lev.c
  create_feature()src/sp_lev.c
  create_gold()src/sp_lev.c
  create_monster()src/sp_lev.c
  create_object()src/sp_lev.c
  create_trap()src/sp_lev.c
  load_maze()src/sp_lev.c
References Variables: rloc_xsrc/sp_lev.c
  rloc_ysrc/sp_lev.c
  x_maze_maxsrc/decl.c
  xsizesrc/sp_lev.c
  xstartsrc/sp_lev.c
  y_maze_maxsrc/decl.c
  ysizesrc/sp_lev.c
  ystartsrc/sp_lev.c

Local Function get_room_loc()

static void get_room_loc ( schar* x, schar* y, struct mkroom* croom )
Prototyped in: src/sp_lev.c
Calls: panic()src/end.c
  rn2()src/rnd.c
  somexy()src/mkroom.c
Called by: create_engraving()src/sp_lev.c
  create_feature()src/sp_lev.c
  create_gold()src/sp_lev.c
  create_monster()src/sp_lev.c
  create_object()src/sp_lev.c
  get_free_room_loc()src/sp_lev.c

Local Function is_ok_location()

static boolean is_ok_location ( schar x, schar y, int humidity )
Prototyped in: src/sp_lev.c
Calls: is_lava()src/dbridge.c
  is_pool()src/dbridge.c
  on_level()src/dungeon.c
Called by: get_location()src/sp_lev.c
  maze1xy()src/sp_lev.c
References Variables: dungeon_topologysrc/decl.c
  levelsrc/decl.c
  usrc/decl.c

Local Function light_region()

static void light_region ( region* tmpregion )
Prototyped in: src/sp_lev.c
Called by: load_maze()src/sp_lev.c
References Variables: levelsrc/decl.c

Local Function load_common_data()

static void load_common_data ( dlb* fd, int typ )
Prototyped in: src/sp_lev.c
Calls: alloc()src/alloc.c
  dlb_fread()src/dlb.c
  mkmap()src/mkmap.c
  rn2()src/rnd.c
Called by: load_maze()src/sp_lev.c
  load_rooms()src/sp_lev.c
References Variables: init_levsrc/sp_lev.c
  lev_messagesrc/sp_lev.c
  levelsrc/decl.c
  ralignsrc/sp_lev.c

Local Function load_maze()

static boolean load_maze ( dlb* fd )
Prototyped in: src/sp_lev.c
Calls: add_door()src/mklev.c
  add_room()src/mklev.c
  alloc()src/alloc.c
  create_altar()src/sp_lev.c
  create_drawbridge()src/dbridge.c
  create_engraving()src/sp_lev.c
  create_feature()src/sp_lev.c
  create_gold()src/sp_lev.c
  create_monster()src/sp_lev.c
  create_object()src/sp_lev.c
  create_trap()src/sp_lev.c
  depth()src/dungeon.c
  distmin()src/hacklib.c
  dlb_fgetc()src/dlb.c
  dlb_fread()src/dlb.c
  fill_room()src/sp_lev.c
  flood_fill_rm()src/mkmap.c
  get_location()src/sp_lev.c
  impossible()src/pline.c
  light_region()src/sp_lev.c
  load_common_data()src/sp_lev.c
  load_one_engraving()src/sp_lev.c
  load_one_monster()src/sp_lev.c
  load_one_object()src/sp_lev.c
  makemon()src/makemon.c
  maze1xy()src/sp_lev.c
  mkgold()src/mkobj.c
  mkobj_at()src/mkobj.c
  mksobj_at()src/mkobj.c
  mkstairs()src/mklev.c
  panic()src/end.c
  rn2()src/rnd.c
  rnd()src/rnd.c
  rnddoor()src/sp_lev.c
  rndtrap()src/sp_lev.c
  set_wall_property()src/sp_lev.c
  sobj_at()src/invent.c
  sp_lev_shuffle()src/sp_lev.c
  topologize()src/mklev.c
  walkfrom()src/mkmaze.c
  wallification()src/mkmaze.c
  abs(), deltrap(), free(), maketrap(), memcpy(), memset(), t_at()
Called by: load_special()src/sp_lev.c
References Variables: Mapsrc/sp_lev.c
  dnladdersrc/decl.c
  doorindexsrc/decl.c
  init_levsrc/sp_lev.c
  levelsrc/decl.c
  lregionssrc/sp_lev.c
  max_rxsrc/mkmap.c
  max_rysrc/mkmap.c
  min_rxsrc/mkmap.c
  min_rysrc/mkmap.c
  monssrc/monst.c
  nroomsrc/decl.c
  num_lregionssrc/sp_lev.c
  rloc_xsrc/sp_lev.c
  rloc_ysrc/sp_lev.c
  rmonstsrc/sp_lev.c
  robjectssrc/sp_lev.c
  roomssrc/decl.c
  usrc/decl.c
  upladdersrc/decl.c
  walklistsrc/sp_lev.c
  x_maze_maxsrc/decl.c
  xsizesrc/sp_lev.c
  xstartsrc/sp_lev.c
  y_maze_maxsrc/decl.c
  ysizesrc/sp_lev.c
  ystartsrc/sp_lev.c

Local Function load_one_engraving()

static void load_one_engraving ( dlb* fd, engraving* e )
Prototyped in: src/sp_lev.c
Calls: alloc()src/alloc.c
  dlb_fread()src/dlb.c
Called by: load_maze()src/sp_lev.c
  load_rooms()src/sp_lev.c

Local Function load_one_monster()

static void load_one_monster ( dlb* fd, monster* m )
Prototyped in: src/sp_lev.c
Calls: alloc()src/alloc.c
  dlb_fread()src/dlb.c
Called by: load_maze()src/sp_lev.c
  load_rooms()src/sp_lev.c

Local Function load_one_object()

static void load_one_object ( dlb* fd, object* o )
Prototyped in: src/sp_lev.c
Calls: alloc()src/alloc.c
  dlb_fread()src/dlb.c
Called by: load_maze()src/sp_lev.c
  load_rooms()src/sp_lev.c

Local Function load_rooms()

static boolean load_rooms ( dlb* fd )
Prototyped in: src/sp_lev.c
Calls: alloc()src/alloc.c
  build_room()src/sp_lev.c
  create_corridor()src/sp_lev.c
  dlb_fread()src/dlb.c
  free_rooms()src/sp_lev.c
  load_common_data()src/sp_lev.c
  load_one_engraving()src/sp_lev.c
  load_one_monster()src/sp_lev.c
  load_one_object()src/sp_lev.c
  sp_lev_shuffle()src/sp_lev.c
  strcmp()
Called by: load_special()src/sp_lev.c
References Variables: rmonstsrc/sp_lev.c
  robjectssrc/sp_lev.c

Local Function maze1xy()

static void maze1xy ( coord* m, int humidity )
Prototyped in: src/sp_lev.c
Calls: is_ok_location()src/sp_lev.c
  rn2()src/rnd.c
Called by: load_maze()src/sp_lev.c
References Variables: Mapsrc/sp_lev.c
  x_maze_maxsrc/decl.c
  y_maze_maxsrc/decl.c

Local Function noncoalignment()

static int noncoalignment ( aligntyp alignment )
Prototyped in: src/sp_lev.c
Calls: rn2()src/rnd.c
Called by: create_altar()src/sp_lev.c
  create_monster()src/sp_lev.c

Local Function rnddoor()

static int rnddoor ( void )
Prototyped in: src/sp_lev.c
Calls: rn2()src/rnd.c
Called by: load_maze()src/sp_lev.c

Local Function rndtrap()

static int rndtrap ( void )
Prototyped in: src/sp_lev.c
Calls: Can_dig_down()src/dungeon.c
  rnd()src/rnd.c
Called by: load_maze()src/sp_lev.c
References Variables: dungeon_topologysrc/decl.c
  levelsrc/decl.c
  usrc/decl.c

Local Function search_door()

static boolean search_door ( struct mkroom* croom, xchar* x, xchar* y, xchar wall, int cnt )
Prototyped in: src/sp_lev.c
Calls: panic()src/end.c
Called by: create_corridor()src/sp_lev.c
References Variables: levelsrc/decl.c

Local Function set_wall_property()

static void set_wall_property ( xchar x1, xchar y1, xchar x2, xchar y2, int prop )
Prototyped in: src/sp_lev.c
Called by: load_maze()src/sp_lev.c
References Variables: levelsrc/decl.c

Local Function sp_lev_shuffle()

static void sp_lev_shuffle ( char list1[], char list2[], int n )
Prototyped in: src/sp_lev.c
Calls: rn2()src/rnd.c
Called by: load_maze()src/sp_lev.c
  load_rooms()src/sp_lev.c