LEVEL
%token ACTION PROTOCOL MODE LEVEL LEVEL_SPECIFY IPADDRESS PORT
%type <num> DIR PRIORITY ACTION PROTOCOL MODE LEVEL
: LEVEL {
c[LEVEL] = 1; /* player starts at level one */
if (c[LEVEL] == 25 && c[EXPERIENCE] > skill[24]) { /* if patch up lev 25
(long) c[GOLD], (long) c[EXPERIENCE], (long) c[LEVEL], (long) level);
if (c[LEVEL] != cbak[LEVEL]) {
lprcat(class[c[LEVEL] - 1]);
if (c[LEVEL] > 99)
botsub(makecode(LEVEL, 40, 18), "%3ld");
botsub(makecode(LEVEL, 40, 18), " %-2ld");
if (c[LEVEL] < rnd(30))
if (c[LEVEL] > 99)
lprintf("%3ld", (long) c[LEVEL]);
lprintf(" %-2ld", (long) c[LEVEL]);
lprintf(" Exp: %-9ld %s\n", (long) c[EXPERIENCE], class[c[LEVEL] - 1]);
while (c[EXPERIENCE] < skill[c[LEVEL] - 1]) {
if (--c[LEVEL] <= 1)
c[LEVEL] = 1; /* down one level */
if (c[LEVEL] < 7 - c[HARDGAME])
if (i != c[LEVEL]) {
lprintf("\nYou went down to level %ld!", (long) c[LEVEL]);
if ((limit = 15 + (c[LEVEL] >> 1)) > 26)
if (c[LEVEL] < MAXPLEVEL)
raiseexperience((long) (skill[c[LEVEL]] - c[EXPERIENCE]));
if (c[LEVEL] > 1)
if ((limit = 15 + (c[LEVEL] >> 1)) > 26)
loseexperience((long) (c[EXPERIENCE] - skill[c[LEVEL] - 1] + 1));
i = c[LEVEL];
while (c[EXPERIENCE] >= skill[c[LEVEL]] && (c[LEVEL] < MAXPLEVEL)) {
c[LEVEL]++;
if (c[LEVEL] < 7 - c[HARDGAME])
if (c[LEVEL] != i) {
lprintf("\nWelcome to level %ld", (long) c[LEVEL]); /* if we changed levels */
i = c[LEVEL];
if (c[LEVEL] > 9) {
tmp = monster[monst].armorclass + c[LEVEL] + c[DEXTERITY] +
clev = c[LEVEL];
else if ((c[HP] += rnd(20) + 20 + c[LEVEL]) > c[HPMAX])
d[REGENCOUNTER] = 22 + (d[HARDGAME] << 1) - d[LEVEL];
d[ECOUNTER] = 100 + 4 * (d[HARDGAME] - d[LEVEL] - d[ENERGY]);
logg.lev = c[LEVEL];
#define DPRINTF(LEVEL, SC, FMT, ARGS...) do \
if (synaptics_debug >= LEVEL) { \
if (getsockopt(s, LEVEL, LOCAL_PEEREID, &cred, &crl) == -1)