OSDN Git Service

Initial Import
[nethackexpress/trunk.git] / include / dgn_file.h
1 /*      SCCS Id: @(#)dgn_file.h 3.4     1993/01/17      */
2 /* Copyright (c) 1989 by M. Stephenson                            */
3 /* NetHack may be freely redistributed.  See license for details. */
4
5 #ifndef DGN_FILE_H
6 #define DGN_FILE_H
7
8 #ifndef ALIGN_H
9 #include "align.h"
10 #endif
11
12 /*
13  * Structures manipulated by the dungeon loader & compiler
14  */
15
16 struct  couple {
17         short   base, rand;
18 };
19
20 struct tmpdungeon {
21         char    name[24],
22                 protoname[24];
23         struct  couple  lev;
24         int     flags,
25                 chance,
26                 levels,
27                 branches,
28                 entry_lev;              /* entry level for this dungeon */
29         char    boneschar;
30 };
31
32 struct tmplevel {
33         char    name[24];
34         struct  couple  lev;
35         int     chance, rndlevs, chain, flags;
36         char    boneschar;
37 };
38
39 struct tmpbranch {
40         char    name[24];       /* destination dungeon name */
41         struct  couple  lev;
42         int     chain;          /* index into tmplevel array (chained branch)*/
43         int     type;           /* branch type (see below) */
44         int     up;             /* branch is up or down */
45 };
46
47 /*
48  *      Values for type for tmpbranch structure.
49  */
50 #define TBR_STAIR   0   /* connection with both ends having a staircase */
51 #define TBR_NO_UP   1   /* connection with no up staircase */
52 #define TBR_NO_DOWN 2   /* connection with no down staircase */
53 #define TBR_PORTAL  3   /* portal connection */
54
55 /*
56  *      Flags that map into the dungeon flags bitfields.
57  */
58 #define TOWN        1   /* levels only */
59 #define HELLISH     2
60 #define MAZELIKE    4
61 #define ROGUELIKE   8
62
63 #define D_ALIGN_NONE    0
64 #define D_ALIGN_CHAOTIC (AM_CHAOTIC << 4)
65 #define D_ALIGN_NEUTRAL (AM_NEUTRAL << 4)
66 #define D_ALIGN_LAWFUL  (AM_LAWFUL << 4)
67
68 #define D_ALIGN_MASK    0x70
69
70 /*
71  *      Max number of prototype levels and branches.
72  */
73 #define LEV_LIMIT       50
74 #define BRANCH_LIMIT    32
75
76 #endif /* DGN_FILE_H */