Mercurial > hg > early-roguelike
annotate urogue/sticks.c @ 256:c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
| author | John "Elwin" Edwards | 
|---|---|
| date | Tue, 31 Jan 2017 19:56:04 -0500 | 
| parents | |
| children | e52a8a7ad4c5 | 
| rev | line source | 
|---|---|
| 
256
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
2 sticks.c - Functions to implement the various sticks one might find | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
3 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
4 UltraRogue: The Ultimate Adventure in the Dungeons of Doom | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
5 Copyright (C) 1985, 1986, 1992, 1993, 1995 Herb Chong | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
6 All rights reserved. | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
7 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
8 Based on "Advanced Rogue" | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
9 Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
10 All rights reserved. | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
11 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
12 Based on "Rogue: Exploring the Dungeons of Doom" | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
13 Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
14 All rights reserved. | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
15 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
16 See the file LICENSE.TXT for full copyright and licensing information. | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
17 */ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
18 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
19 #include <limits.h> | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
20 #include <string.h> | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
21 #include <ctype.h> | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
22 #include "rogue.h" | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
23 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
24 /* for WS_HIT, WS_WEB, etc */ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
25 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
26 static struct object null_stick = | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
27 { | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
28 {0,0},NULL,NULL,"",0,"0d0",0,0,'X',0,0,0,0,0,0,0,0,0,{0} | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
29 }; | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
30 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
31 /* | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
32 * Mask for cancelling special abilities The flags listed here will be the | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
33 * ones left on after the cancellation takes place | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
34 */ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
35 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
36 #define CANC0MASK ( ISBLIND | ISINWALL | ISRUN | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
37 ISFLEE | ISMEAN | ISGREED | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
38 CANSHOOT | ISHELD | ISHUH | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
39 ISSLOW | ISHASTE | ISCLEAR | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
40 ISUNIQUE) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
41 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
42 #define CANC1MASK ( HASDISEASE | DIDSUFFOCATE | CARRYGOLD | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
43 HASITCH | CANSELL | CANBBURN | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
44 CANSPEAK | CANFLY | ISFRIENDLY) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
45 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
46 #define CANC2MASK ( HASINFEST | NOMOVE | ISSCAVENGE | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
47 DOROT | HASSTINK | DIDHOLD) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
48 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
49 #define CANC3MASK ( ISUNDEAD | CANBREATHE | CANCAST | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
50 HASOXYGEN) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
51 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
52 #define CANC4MASK ( CANTRAMPLE | CANSWIM | CANWIELD | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
53 ISFAST | CANBARGAIN | CANSPORE | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
54 ISLARGE | ISSMALL | ISFLOCK | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
55 ISSWARM | CANSTICK | CANTANGLE | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
56 SHOOTNEEDLE | CANZAP | HASARMOR | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
57 CANTELEPORT | ISBERSERK | ISFAMILIAR | \ | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
58 HASFAMILIAR | SUMMONING) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
59 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
60 #define CANC5MASK ( CANREFLECT | MAGICATTRACT | HASSHIELD | HASMSHIELD) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
61 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
62 #define CANC6MASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
63 #define CANC7MASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
64 #define CANC8MASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
65 #define CANC9MASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
66 #define CANCAMASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
67 #define CANCBMASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
68 #define CANCCMASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
69 #define CANCDMASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
70 #define CANCEMASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
71 #define CANCFMASK ( 0 ) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
72 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
73 void | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
74 fix_stick(struct object *cur) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
75 { | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
76 if (strcmp(ws_type[cur->o_which], "staff") == 0) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
77 { | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
78 cur->o_weight = 100; | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
79 cur->o_charges = 5 + rnd(10); | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
80 cur->o_damage = "2d3"; | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
81 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
82 switch (cur->o_which) | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
83 { | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
84 case WS_HIT: | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
85 cur->o_hplus = 3; | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
86 cur->o_dplus = 3; | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
87 cur->o_damage = "2d8"; | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
88 break; | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
89 | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
90 case WS_LIGHT: | 
| 
 
c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
