Home | History | Annotate | Download | only in rogue

Lines Matching refs:RING

1 /*	$NetBSD: ring.c,v 1.9 2008/01/14 03:50:02 dholland Exp $	*/
38 static char sccsid[] = "@(#)ring.c 8.1 (Berkeley) 5/31/93";
40 __RCSID("$NetBSD: ring.c,v 1.9 2008/01/14 03:50:02 dholland Exp $");
45 * ring.c
59 static const char no_ring[] = "there's no ring on that hand";
78 object *ring;
84 if ((ch = pack_letter("put on what?", RING)) == CANCEL) {
87 if (!(ring = get_letter_object(ch))) {
91 if (!(ring->what_is & RING)) {
92 messagef(0, "that's not a ring");
95 if (ring->in_use_flags & (ON_LEFT_HAND | ON_RIGHT_HAND)) {
96 messagef(0, "that ring is already being worn");
114 messagef(0, "there's already a ring on that hand");
118 do_put_on(ring, 1);
120 do_put_on(ring, 0);
124 get_desc(ring, desc, sizeof(desc));
135 do_put_on(object *ring, boolean on_left)
138 ring->in_use_flags |= ON_LEFT_HAND;
139 rogue.left_ring = ring;
141 ring->in_use_flags |= ON_RIGHT_HAND;
142 rogue.right_ring = ring;
152 object *ring;
154 ring = NULL;
174 ring = rogue.left_ring;
180 ring = rogue.right_ring;
185 if (ring->is_cursed) {
188 un_put_on(ring);
189 get_desc(ring, buf, sizeof(buf));
197 un_put_on(object *ring)
199 if (ring && (ring->in_use_flags & ON_LEFT_HAND)) {
200 ring->in_use_flags &= (~ON_LEFT_HAND);
202 } else if (ring && (ring->in_use_flags & ON_RIGHT_HAND)) {
203 ring->in_use_flags &= (~ON_RIGHT_HAND);
210 gr_ring(object *ring, boolean assign_wk)
212 ring->what_is = RING;
214 ring->which_kind = get_rand(0, (RINGS - 1));
216 ring->class = 0;
218 switch(ring->which_kind) {
236 ring->is_cursed = 1;
240 while ((ring->class = (get_rand(0, 4) - 2)) == 0)
242 ring->is_cursed = (ring->class < 0);
245 ring->is_cursed = coin_toss();
279 object *ring;
294 if (!(ring = ((i == 0) ? rogue.left_ring : rogue.right_ring))) {
299 switch(ring->which_kind) {
313 add_strength += ring->class;
319 ring_exp += ring->class;