```   1: /*
2:  * phant.h	Include file for Phantasia
3:  */
4:
5: #include <setjmp.h>
6: #include <curses.h>
7: #include <time.h>
8: #include <pwd.h>
9: #include <signal.h>
10: #include <math.h>
11:
12: /* ring constants */
13: #define NONE    0
15: #define NAZREG  2
16: #define DLREG   3
18: #define SPOILED 5
19:
20: /* some functions and pseudo-functions */
21: #define toupper(CH) ((CH) > 96 ? (CH) ^ 32 : (CH))  /* may be upper or lower */
22: #define tolower(CH) ((CH) | 32)         /* must be upper */
23: #define rnd()       (((double) rand()) / RAND)
24: #define roll(BASE,INTERVAL) floor((BASE) + (INTERVAL) * rnd())
25: #define sgn(x)  (-(x < 0) + (x > 0))
26: #define abs(x)  ((x) < 0 ? -(x) : (x))
27: #define circ(x,y)   floor(sqrt((double) ((x) * (x) + (y) * (y))) / 125 + 1)
28: #define max(A,B)    ((A) > (B) ? (A) : (B))
29: #define min(A,B)    ((A) < (B) ? (A) : (B))
30: #define valarstuff(ARG) decree(ARG)
32: #define maxmove     floor(charac.lvl * 1.5 + 1)
34: #define rndattack() if (rnd() < 0.2 && charac.status == PLAYING && !throne) \
35:                 fight(&charac,-1)
36: #define strcalc(STR,SICK)   max(0,min(0.9 * STR, SICK * STR/20))
37: #define spdcalc(LVL,GLD,GEM)    max(0,((GLD + GEM/2) - 1000)/200.0 - LVL)
39: #define nomanna()   mvaddstr(6,0,"Not enough manna for that spell.\n")
41:
42: /* status constants */
43: #define OFF 0
44: #define PLAYING 1
45: #define CLOAKED 2
46: #define INBATTLE    3
47: #define DIE 4
48: #define QUIT    5
49:
50: /* tampered constants */
51: #define NRGVOID 1
52: #define GRAIL   2
53: #define TRANSPORT   3
54: #define GOLD    4
55: #define CURSED  5
56: #define MONSTER 6
57: #define BLESS   7
58: #define MOVED   8
59: #define HEAL    9
60: #define VAPORIZED   10
61: #define STOLEN  11
62:
63: /* structure definitions */
64: struct  stats       /* player stats */
65:     {
66:     char    name[21];   /* name */
67:     char    pswd[9];    /* password */
69:     double  x;      /* x coord */
70:     double  y;      /* y coord */
71:     double  exp;        /* experience */
72:     int lvl;        /* level */
73:     short   quk;        /* quick */
74:     double  str;        /* strength */
75:     double  sin;        /* sin */
76:     double  man;        /* manna */
77:     double  gld;        /* gold */
78:     double  nrg;        /* energy */
79:     double  mxn;        /* max. energy */
80:     double  mag;        /* magic level */
81:     double  brn;        /* brains */
82:     short   crn;        /* crowns */
83:     struct
84:         {
85:         short   type;
86:         short   duration;
87:         }   rng;    /* ring stuff */
88:     bool    pal;        /* palantir */
89:     double  psn;        /* poison */
90:     short   hw;     /* holy water */
91:     short   amu;        /* amulets */
92:     bool    bls;        /* blessing */
93:     short   chm;        /* charms */
94:     double  gem;        /* gems */
95:     short   quks;       /* quicksilver */
96:     double  swd;        /* sword */
97:     double  shd;        /* shield */
98:     short   typ;        /* character type */
99:     bool    vrg;        /* virgin */
100:     short   lastused;   /* day of year last used */
101:     short   status;     /* playing, cloaked, etc. */
102:     short   tampered;   /* decree'd, etc. flag */
103:     double  scratch1, scratch2; /* var's for above */
104:     bool    blind;      /* blindness */
105:     int wormhole;   /* # of wormhole, 0 = none */
106:     long    age;        /* age in seconds */
107:     short   degen;      /* age/2500 last degenerated */
108:     };
109:
110: struct  mstats      /* monster stats */
111:     {
112:     char    name[26];   /* name */
113:     double  str;        /* strength */
114:     double  brn;        /* brains */
115:     double  spd;        /* speed */
116:     double  hit;        /* hits (energy) */
117:     double  exp;        /* experience */
118:     int trs;        /* treasure type */
119:     int typ;        /* special type */
120:     int flk;        /* % flock */
121:     };
122:
123: struct  nrgvoid     /* energy void */
124:     {
125:     bool    active;     /* active or not */
126:     double  x,y;        /* coordinates */
127:     };
128:
129: struct  worm_hole   /* worm hole */
130:     {
131:     char    f, b, l, r; /* forward, back, left, right */
132:     };
133:
134: /* files */
135: #define monsterfile PATH/monsters"
136: #define peoplefile  PATH/characs"
137: #define gameprog    PATH/phantasia"
138: #define messfile    PATH/mess"
140: #define helpfile    PATH/phant.help"
141: #define motd        PATH/motd"
142: #define goldfile    PATH/gold"
143: #define voidfile    PATH/void"
144: #define enemyfile   PATH/enemy"
145:
146: /* library functions and system calls */
147: unsigned sleep();
148: long    time(), ftell();
150: struct  passwd  *getpwuid();
151: char    *strcpy(), *strncpy();
152:
153: /* function and global variable declarations */
154: void    adjuststats(), callmonster(), checkinterm(), checkmov(), checktampered(),
155:     cstat(), death(), decree(), exit1(), fight(), genchar(), getstring(), init1(),
156:     initchar(), interm(), kingstuff(), leave(), movelvl(), neatstuf(),
157:     paws(), printhelp(), printmonster(), printplayers(), printstats(), purge(),
158:     showall(), showusers(), statread(), talk(), tampered(), titlestuff(),
159:     trade(), treasure(), trunc(), update(), voidupdate();
160: int allocvoid(), findchar(), findspace(), gch(), interrupt(), rgetch(), rngcalc();
161: unsigned level();
162: double  inflt();
163: char    *printloc();
164: bool    findname();
165: #ifdef  OK_TO_PLAY
166: bool    ok_to_play();
167: #endif
168:
169: extern  jmp_buf fightenv, mainenv;
170: extern  double  strength, speed;
171: extern  bool    beyond, marsh, throne, valhala, changed, fghting, su, wmhl;
172: extern  struct worm_hole    w_h[];
173: extern  long    secs;
174: extern  int fileloc, users;
```

#### Defined struct's

mstats defined in line 110; used 4 times
nrgvoid defined in line 123; used 14 times
stats defined in line 64; used 82 times
worm_hole defined in line 129; used 4 times

#### Defined macros

BLESS defined in line 57; used 1 times
CURSED defined in line 55; used 1 times
DIE defined in line 47; used 1 times
DLBAD defined in line 17; used 1 times
DLREG defined in line 16; used 2 times
GOLD defined in line 54; used 1 times
GRAIL defined in line 52; used 1 times
HEAL defined in line 59; used 1 times
INBATTLE defined in line 46; used 3 times
MONSTER defined in line 56; used 1 times
MOVED defined in line 58; used 1 times
NAZBAD defined in line 14; used 1 times
NAZREG defined in line 15; used 1 times
NRGVOID defined in line 51; used 1 times
PLAYING defined in line 44; used 8 times
QUIT defined in line 48; used 1 times
SPOILED defined in line 18; used 2 times
STOLEN defined in line 61; used 1 times
TRANSPORT defined in line 53; used 1 times
VAPORIZED defined in line 60; used 1 times
enemyfile defined in line 144; used 3 times
gameprog defined in line 137; used 1 times
helpfile defined in line 140; used 1 times
illcmd defined in line 31; used 5 times
illmove defined in line 33; used 2 times
illspell defined in line 38; used 9 times
lastdead defined in line 139; used 5 times
maxmove defined in line 32; used 5 times
motd defined in line 141; used 4 times
nomanna defined in line 39; used 7 times
rnd defined in line 23; used 71 times
rndattack defined in line 34; used 2 times
roll defined in line 24; used 82 times
somebetter defined in line 40; used 7 times
spdcalc defined in line 37; used 2 times
strcalc defined in line 36; used 1 times
tolower defined in line 22; never used
valarstuff defined in line 30; used 1 times

#### Usage of this include

 Last modified: 1986-05-20 Generated: 2016-12-26 Generated by src2html V0.67 page hit count: 4647