From 84e7d0704483ce39bbdeacd5e676168db6fa664f Mon Sep 17 00:00:00 2001 From: christos Date: Sun, 19 Oct 1997 16:56:41 +0000 Subject: WARNsify... --- hack/hack.cmd.c | 364 +++++++++++++++++++++++++++++--------------------------- 1 file changed, 191 insertions(+), 173 deletions(-) (limited to 'hack/hack.cmd.c') diff --git a/hack/hack.cmd.c b/hack/hack.cmd.c index 0af29895..9cc90fde 100644 --- a/hack/hack.cmd.c +++ b/hack/hack.cmd.c @@ -1,171 +1,166 @@ +/* $NetBSD: hack.cmd.c,v 1.4 1997/10/19 16:57:39 christos Exp $ */ + /* * Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */ +#include #ifndef lint -static char rcsid[] = "$NetBSD: hack.cmd.c,v 1.3 1995/03/23 08:29:52 cgd Exp $"; -#endif /* not lint */ +__RCSID("$NetBSD: hack.cmd.c,v 1.4 1997/10/19 16:57:39 christos Exp $"); +#endif /* not lint */ #include "hack.h" +#include "extern.h" #include "def.func_tab.h" -int doredraw(),doredotopl(),dodrop(),dodrink(),doread(),dosearch(),dopickup(), -doversion(),doweararm(),dowearring(),doremarm(),doremring(),dopay(),doapply(), -dosave(),dowield(),ddoinv(),dozap(),ddocall(),dowhatis(),doengrave(),dotele(), -dohelp(),doeat(),doddrop(),do_mname(),doidtrap(),doprwep(),doprarm(), -doprring(),doprgold(),dodiscovered(),dotypeinv(),dolook(),doset(), -doup(), dodown(), done1(), donull(), dothrow(), doextcmd(), dodip(), dopray(); -#ifdef SHELL -int dosh(); -#endif SHELL +struct func_tab cmdlist[] = { + { '\020', doredotopl }, + { '\022', doredraw }, + { '\024', dotele }, #ifdef SUSPEND -int dosuspend(); -#endif SUSPEND - -struct func_tab cmdlist[]={ - '\020', doredotopl, - '\022', doredraw, - '\024', dotele, -#ifdef SUSPEND - '\032', dosuspend, -#endif SUSPEND - 'a', doapply, -/* 'A' : UNUSED */ -/* 'b', 'B' : go sw */ - 'c', ddocall, - 'C', do_mname, - 'd', dodrop, - 'D', doddrop, - 'e', doeat, - 'E', doengrave, -/* 'f', 'F' : multiple go (might become 'fight') */ -/* 'g', 'G' : UNUSED */ -/* 'h', 'H' : go west */ - 'I', dotypeinv, /* Robert Viduya */ - 'i', ddoinv, -/* 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N' : move commands */ -/* 'o', doopen, */ - 'O', doset, - 'p', dopay, - 'P', dowearring, - 'q', dodrink, - 'Q', done1, - 'r', doread, - 'R', doremring, - 's', dosearch, - 'S', dosave, - 't', dothrow, - 'T', doremarm, -/* 'u', 'U' : go ne */ - 'v', doversion, -/* 'V' : UNUSED */ - 'w', dowield, - 'W', doweararm, -/* 'x', 'X' : UNUSED */ -/* 'y', 'Y' : go nw */ - 'z', dozap, -/* 'Z' : UNUSED */ - '<', doup, - '>', dodown, - '/', dowhatis, - '?', dohelp, + { '\032', dosuspend }, +#endif { /* SUSPEND */ + { 'a', doapply }, + /* 'A' : UNUSED */ + /* 'b', 'B' : go sw */ + { 'c', ddocall }, + { 'C', do_mname }, + { 'd', dodrop }, + { 'D', doddrop }, + { 'e', doeat }, + { 'E', doengrave }, + /* 'f', 'F' : multiple go (might become 'fight') */ + /* 'g', 'G' : UNUSED */ + /* 'h', 'H' : go west */ + { 'I', dotypeinv }, /* Robert Viduya */ + { 'i', ddoinv }, + /* 'j', 'J', 'k', 'K', 'l', 'L', 'm', 'M', 'n', 'N' : move commands */ + /* 'o', doopen, */ + { 'O', doset }, + { 'p', dopay }, + { 'P', dowearring }, + { 'q', dodrink }, + { 'Q', dodone }, + { 'r', doread }, + { 'R', doremring }, + { 's', dosearch }, + { 'S', dosave }, + { 't', dothrow }, + { 'T', doremarm }, + /* 'u', 'U' : go ne */ + { 'v', doversion }, + /* 'V' : UNUSED */ + { 'w', dowield }, + { 'W', doweararm }, + /* 'x', 'X' : UNUSED */ + /* 'y', 'Y' : go nw */ + { 'z', dozap }, + /* 'Z' : UNUSED */ + { '<', doup }, + { '>', dodown }, + { '/', dowhatis }, + { '?', dohelp }, #ifdef SHELL - '!', dosh, -#endif SHELL - '.', donull, - ' ', donull, - ',', dopickup, - ':', dolook, - '^', doidtrap, - '\\', dodiscovered, /* Robert Viduya */ - WEAPON_SYM, doprwep, - ARMOR_SYM, doprarm, - RING_SYM, doprring, - '$', doprgold, - '#', doextcmd, - 0,0,0 + { '!', dosh }, +#endif { /* SHELL */ + { '.', donull }, + { ' ', donull }, + { ',', dopickup }, + { ':', dolook }, + { '^', doidtrap }, + { '\\', dodiscovered }, /* Robert Viduya */ + { WEAPON_SYM, doprwep }, + { ARMOR_SYM, doprarm }, + { RING_SYM, doprring }, + { '$', doprgold }, + { '#', doextcmd }, + { 0, 0 } }; struct ext_func_tab extcmdlist[] = { - "dip", dodip, - "pray", dopray, - (char *) 0, donull + { "dip", dodip }, + { "pray", dopray }, + { (char *) 0, donull } }; -extern char *parse(), lowc(), unctrl(), quitchars[]; - +void rhack(cmd) -register char *cmd; + char *cmd; { - register struct func_tab *tlist = cmdlist; - boolean firsttime = FALSE; - register res; + struct func_tab *tlist = cmdlist; + boolean firsttime = FALSE; + int res; - if(!cmd) { + if (!cmd) { firsttime = TRUE; flags.nopick = 0; cmd = parse(); } - if(!*cmd || (*cmd & 0377) == 0377 || - (flags.no_rest_on_space && *cmd == ' ')){ + if (!*cmd || (*cmd & 0377) == 0377 || + (flags.no_rest_on_space && *cmd == ' ')) { bell(); flags.move = 0; return; /* probably we just had an interrupt */ } - if(movecmd(*cmd)) { - walk: - if(multi) flags.mv = 1; + if (movecmd(*cmd)) { +walk: + if (multi) + flags.mv = 1; domove(); return; } - if(movecmd(lowc(*cmd))) { + if (movecmd(lowc(*cmd))) { flags.run = 1; - rush: - if(firsttime){ - if(!multi) multi = COLNO; +rush: + if (firsttime) { + if (!multi) + multi = COLNO; u.last_str_turn = 0; } flags.mv = 1; #ifdef QUEST - if(flags.run >= 4) finddir(); - if(firsttime){ + if (flags.run >= 4) + finddir(); + if (firsttime) { u.ux0 = u.ux + u.dx; u.uy0 = u.uy + u.dy; } -#endif QUEST +#endif /* QUEST */ domove(); return; } - if((*cmd == 'f' && movecmd(cmd[1])) || movecmd(unctrl(*cmd))) { + if ((*cmd == 'f' && movecmd(cmd[1])) || movecmd(unctrl(*cmd))) { flags.run = 2; goto rush; } - if(*cmd == 'F' && movecmd(lowc(cmd[1]))) { + if (*cmd == 'F' && movecmd(lowc(cmd[1]))) { flags.run = 3; goto rush; } - if(*cmd == 'm' && movecmd(cmd[1])) { + if (*cmd == 'm' && movecmd(cmd[1])) { flags.run = 0; flags.nopick = 1; goto walk; } - if(*cmd == 'M' && movecmd(lowc(cmd[1]))) { + if (*cmd == 'M' && movecmd(lowc(cmd[1]))) { flags.run = 1; flags.nopick = 1; goto rush; } #ifdef QUEST - if(*cmd == cmd[1] && (*cmd == 'f' || *cmd == 'F')) { + if (*cmd == cmd[1] && (*cmd == 'f' || *cmd == 'F')) { flags.run = 4; - if(*cmd == 'F') flags.run += 2; - if(cmd[2] == '-') flags.run += 1; + if (*cmd == 'F') + flags.run += 2; + if (cmd[2] == '-') + flags.run += 1; goto rush; } -#endif QUEST - while(tlist->f_char) { - if(*cmd == tlist->f_char){ - res = (*(tlist->f_funct))(); - if(!res) { +#endif /* QUEST */ + while (tlist->f_char) { + if (*cmd == tlist->f_char) { + res = (*(tlist->f_funct)) (); + if (!res) { flags.move = 0; multi = 0; } @@ -173,135 +168,158 @@ register char *cmd; } tlist++; } - { char expcmd[10]; - register char *cp = expcmd; - while(*cmd && cp-expcmd < sizeof(expcmd)-2) { - if(*cmd >= 040 && *cmd < 0177) - *cp++ = *cmd++; - else { - *cp++ = '^'; - *cp++ = *cmd++ ^ 0100; + { + char expcmd[10]; + char *cp = expcmd; + while (*cmd && cp - expcmd < sizeof(expcmd) - 2) { + if (*cmd >= 040 && *cmd < 0177) + *cp++ = *cmd++; + else { + *cp++ = '^'; + *cp++ = *cmd++ ^ 0100; + } } - } - *cp++ = 0; - pline("Unknown command '%s'.", expcmd); + *cp++ = 0; + pline("Unknown command '%s'.", expcmd); } multi = flags.move = 0; } -doextcmd() /* here after # - now read a full-word command */ -{ - char buf[BUFSZ]; - register struct ext_func_tab *efp = extcmdlist; +int +doextcmd() +{ /* here after # - now read a full-word + * command */ + char buf[BUFSZ]; + struct ext_func_tab *efp = extcmdlist; pline("# "); getlin(buf); clrlin(); - if(buf[0] == '\033') - return(0); - while(efp->ef_txt) { - if(!strcmp(efp->ef_txt, buf)) - return((*(efp->ef_funct))()); + if (buf[0] == '\033') + return (0); + while (efp->ef_txt) { + if (!strcmp(efp->ef_txt, buf)) + return ((*(efp->ef_funct)) ()); efp++; } pline("%s: unknown command.", buf); - return(0); + return (0); } char lowc(sym) -char sym; + char sym; { - return( (sym >= 'A' && sym <= 'Z') ? sym+'a'-'A' : sym ); + return ((sym >= 'A' && sym <= 'Z') ? sym + 'a' - 'A' : sym); } char unctrl(sym) -char sym; + char sym; { - return( (sym >= ('A' & 037) && sym <= ('Z' & 037)) ? sym + 0140 : sym ); + return ((sym >= ('A' & 037) && sym <= ('Z' & 037)) ? sym + 0140 : sym); } /* 'rogue'-like direction commands */ -char sdir[] = "hykulnjb><"; -schar xdir[10] = { -1,-1, 0, 1, 1, 1, 0,-1, 0, 0 }; -schar ydir[10] = { 0,-1,-1,-1, 0, 1, 1, 1, 0, 0 }; -schar zdir[10] = { 0, 0, 0, 0, 0, 0, 0, 0, 1,-1 }; +char sdir[] = "hykulnjb><"; +schar xdir[10] = {-1, -1, 0, 1, 1, 1, 0, -1, 0, 0}; +schar ydir[10] = {0, -1, -1, -1, 0, 1, 1, 1, 0, 0}; +schar zdir[10] = {0, 0, 0, 0, 0, 0, 0, 0, 1, -1}; -movecmd(sym) /* also sets u.dz, but returns false for <> */ -char sym; +int +movecmd(sym) /* also sets u.dz, but returns false for <> */ + char sym; { - register char *dp; + char *dp; u.dz = 0; - if(!(dp = index(sdir, sym))) return(0); - u.dx = xdir[dp-sdir]; - u.dy = ydir[dp-sdir]; - u.dz = zdir[dp-sdir]; - return(!u.dz); + if (!(dp = strchr(sdir, sym))) + return (0); + u.dx = xdir[dp - sdir]; + u.dy = ydir[dp - sdir]; + u.dz = zdir[dp - sdir]; + return (!u.dz); } +int getdir(s) -boolean s; + boolean s; { - char dirsym; + char dirsym; - if(s) pline("In what direction?"); + if (s) + pline("In what direction?"); dirsym = readchar(); - if(!movecmd(dirsym) && !u.dz) { - if(!index(quitchars, dirsym)) + if (!movecmd(dirsym) && !u.dz) { + if (!strchr(quitchars, dirsym)) pline("What a strange direction!"); - return(0); + return (0); } - if(Confusion && !u.dz) + if (Confusion && !u.dz) confdir(); - return(1); + return (1); } +void confdir() { - register x = rn2(8); + int x = rn2(8); u.dx = xdir[x]; u.dy = ydir[x]; } #ifdef QUEST -finddir(){ -register int i, ui = u.di; - for(i = 0; i <= 8; i++){ - if(flags.run & 1) ui++; else ui += 7; +int +finddir() +{ + int i, ui = u.di; + for (i = 0; i <= 8; i++) { + if (flags.run & 1) + ui++; + else + ui += 7; ui %= 8; - if(i == 8){ + if (i == 8) { pline("Not near a wall."); flags.move = multi = 0; - return(0); + return (0); } - if(!isroom(u.ux+xdir[ui], u.uy+ydir[ui])) + if (!isroom(u.ux + xdir[ui], u.uy + ydir[ui])) break; } - for(i = 0; i <= 8; i++){ - if(flags.run & 1) ui += 7; else ui++; + for (i = 0; i <= 8; i++) { + if (flags.run & 1) + ui += 7; + else + ui++; ui %= 8; - if(i == 8){ + if (i == 8) { pline("Not near a room."); flags.move = multi = 0; - return(0); + return (0); } - if(isroom(u.ux+xdir[ui], u.uy+ydir[ui])) + if (isroom(u.ux + xdir[ui], u.uy + ydir[ui])) break; } u.di = ui; u.dx = xdir[ui]; u.dy = ydir[ui]; + return 0; } -isroom(x,y) register x,y; { /* what about POOL? */ - return(isok(x,y) && (levl[x][y].typ == ROOM || - (levl[x][y].typ >= LDOOR && flags.run >= 6))); +int +isroom(x, y) + int x, y; +{ /* what about POOL? */ + return (isok(x, y) && (levl[x][y].typ == ROOM || + (levl[x][y].typ >= LDOOR && flags.run >= 6))); } -#endif QUEST +#endif /* QUEST */ -isok(x,y) register x,y; { +int +isok(x, y) + int x, y; +{ /* x corresponds to curx, so x==1 is the first column. Ach. %% */ - return(x >= 1 && x <= COLNO-1 && y >= 0 && y <= ROWNO-1); + return (x >= 1 && x <= COLNO - 1 && y >= 0 && y <= ROWNO - 1); } -- cgit v1.2.3-56-ge451