OSDN Git Service

shrink mine
[nethackexpress/trunk.git] / include / lev.h
1 /*      SCCS Id: @(#)lev.h      3.4     1994/03/18      */
2 /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
3 /* NetHack may be freely redistributed.  See license for details. */
4
5 /*      Common include file for save and restore routines */
6
7 #ifndef LEV_H
8 #define LEV_H
9
10 #define COUNT_SAVE      0x1
11 #define WRITE_SAVE      0x2
12 #define FREE_SAVE       0x4
13
14 /* operations of the various saveXXXchn & co. routines */
15 #define perform_bwrite(mode)    ((mode) & (COUNT_SAVE|WRITE_SAVE))
16 #define release_data(mode)      ((mode) & FREE_SAVE)
17
18 /* The following are used in mkmaze.c */
19 struct container {
20         struct container *next;
21         xchar x, y;
22         short what;
23         genericptr_t list;
24 };
25
26 #define CONS_OBJ   0
27 #define CONS_MON   1
28 #define CONS_HERO  2
29 #define CONS_TRAP  3
30
31 struct bubble {
32         xchar x, y;     /* coordinates of the upper left corner */
33         schar dx, dy;   /* the general direction of the bubble's movement */
34         uchar *bm;      /* pointer to the bubble bit mask */
35         struct bubble *prev, *next; /* need to traverse the list up and down */
36         struct container *cons;
37 };
38
39 /* used in light.c */
40 typedef struct ls_t {
41     struct ls_t *next;
42     xchar x, y;         /* source's position */
43     short range;        /* source's current range */
44     short flags;
45     short type;         /* type of light source */
46     genericptr_t id;    /* source's identifier */
47 } light_source;
48
49 #endif /* LEV_H */