# 2.11BSD#431 - /usr/src/games/hack/hack.wield.c

##### Functions

    chwepon           X
    corrode_weapon    X
    dowield           X
    setuwep           X

       1: /* Copyright (c) Stichting Mathematisch Centrum, Amsterdam, 1985. */
       2: /* hack.wield.c - version 1.0.3 */
       3:
       4: #include    "hack.h"
       5: extern struct obj zeroobj;
       6:
       7: setuwep(obj) register struct obj *obj; {
       8:     setworn(obj, W_WEP);
       9: }
      10:
      11: dowield()
      12: {
      13:     register struct obj *wep;
      14:     register int res = 0;
      15:
      16:     multi = 0;
      17:     if(!(wep = getobj("#-)", "wield"))) /* nothing */;
      18:     else if(uwep == wep)
      19:         pline("You are already wielding that!");
      20:     else if(uwep && uwep->cursed)
      21:         pline("The %s welded to your hand!",
      22:             aobjnam(uwep, "are"));
      23:     else if(wep == &zeroobj) {
      24:         if(uwep == 0){
      25:             pline("You are already empty handed.");
      26:         } else {
      27:             setuwep((struct obj *) 0);
      28:             res++;
      29:             pline("You are empty handed.");
      30:         }
      31:     } else if(uarms && wep->otyp == TWO_HANDED_SWORD)
      32:     pline("You cannot wield a two-handed sword and wear a shield.");
      33:     else if(wep->owornmask & (W_ARMOR | W_RING))
      34:         pline("You cannot wield that!");
      35:     else {
      36:         setuwep(wep);
      37:         res++;
      38:         if(uwep->cursed)
      39:             pline("The %s %s to your hand!",
      40:             aobjnam(uwep, "weld"),
      41:             (uwep->quan == 1) ? "itself" : "themselves"); /* a3 */
      42:         else prinv(uwep);
      43:     }
      44:     return(res);
      45: }
      46:
      47: corrode_weapon(){
      48:     if(!uwep || uwep->olet != WEAPON_SYM) return;   /* %% */
      49:     if(uwep->rustfree)
      50:         pline("Your %s not affected.", aobjnam(uwep, "are"));
      51:     else {
      52:         pline("Your %s!", aobjnam(uwep, "corrode"));
      53:         uwep->spe--;
      54:     }
      55: }
      56:
      57: chwepon(otmp,amount)
      58: register struct obj *otmp;
      59: register amount;
      60: {
      61: register char *color = (amount < 0) ? "black" : "green";
      62: register char *time;
      63:     if(!uwep || uwep->olet != WEAPON_SYM) {
      64:         strange_feeling(otmp,
      65:             (amount > 0) ? "Your hands twitch."
      66:                      : "Your hands itch.");
      67:         return(0);
      68:     }
      69:
      70:     if(uwep->otyp == WORM_TOOTH && amount > 0) {
      71:         uwep->otyp = CRYSKNIFE;
      72:         pline("Your weapon seems sharper now.");
      73:         uwep->cursed = 0;
      74:         return(1);
      75:     }
      76:
      77:     if(uwep->otyp == CRYSKNIFE && amount < 0) {
      78:         uwep->otyp = WORM_TOOTH;
      79:         pline("Your weapon looks duller now.");
      80:         return(1);
      81:     }
      82:
      83:     /* there is a (soft) upper limit to uwep->spe */
      84:     if(amount > 0 && uwep->spe > 5 && rn2(3)) {
      85:         pline("Your %s violently green for a while and then evaporate%s.",
      86:         aobjnam(uwep, "glow"), plur(uwep->quan));
      87:         while(uwep)     /* let all of them disappear */
      88:                 /* note: uwep->quan = 1 is nogood if unpaid */
      89:             useup(uwep);
      90:         return(1);
      91:     }
      92:     if(!rn2(6)) amount *= 2;
      93:     time = (amount*amount == 1) ? "moment" : "while";
      94:     pline("Your %s %s for a %s.",
      95:         aobjnam(uwep, "glow"), color, time);
      96:     uwep->spe += amount;
      97:     if(amount > 0) uwep->cursed = 0;
      98:     return(1);
      99: }

#### Defined functions

chwepon defined in line 57; used 2 times

- in /usr/src/games/hack/hack.read.c line 158, 167

corrode_weapon defined in line 47; never used
dowield defined in line 11; used 2 times

- in /usr/src/games/hack/hack.cmd.c line 9, 57

setuwep defined in line 7; used 16 times

- in line 27, 36
- in /usr/src/games/hack/hack.apply.c line 130, 371
- in /usr/src/games/hack/hack.do.c line 49, 276-278(2)
- in /usr/src/games/hack/hack.do_wear.c line 157, 211, 306
- in /usr/src/games/hack/hack.eat.c line 145
- in /usr/src/games/hack/hack.engrave.c line 164
- in /usr/src/games/hack/hack.invent.c line 430
- in /usr/src/games/hack/hack.steal.c line 133, 167
- in /usr/src/games/hack/hack.u_init.c line 293

Last modified: 1985-10-14 Generated: 2016-12-26 | Generated by src2html V0.67 page hit count: 812 |