Mercurial > hg > early-roguelike
annotate xrogue/wear.c @ 218:56e748983fa8
Advanced Rogue 5: convert to ANSI function declarations.
This still leaves over a thousand lines of warning messages, mostly
related to the return types of daemons and fuses.
| author | John "Elwin" Edwards | 
|---|---|
| date | Sun, 07 Feb 2016 14:39:21 -0500 | 
| parents | cadff8f047a1 | 
| children | f54901b9c39b | 
| rev | line source | 
|---|---|
| 
133
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
2 wear.c - functions for dealing with armor | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
3 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
4 XRogue: Expeditions into the Dungeons of Doom | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
5 Copyright (C) 1991 Robert Pietkivitch | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
6 All rights reserved. | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
7 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
8 Based on "Advanced Rogue" | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
9 Copyright (C) 1984, 1985 Michael Morgan, Ken Dalka and AT&T | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
10 All rights reserved. | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
11 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
12 Based on "Rogue: Exploring the Dungeons of Doom" | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
13 Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
14 All rights reserved. | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
15 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
16 See the file LICENSE.TXT for full copyright and licensing information. | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
17 */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
18 | 
| 135 | 19 #include <stdlib.h> | 
| 
133
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
20 #include <curses.h> | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
21 #include "rogue.h" | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
22 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
23 /* | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
24 * take_off: | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
25 * Get the armor off of the players back | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
26 */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
27 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
28 take_off() | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
29 { | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
30 register struct object *obj; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
31 register struct linked_list *item; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
32 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
33 /* It takes time to take things off */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
34 if (player.t_action != C_TAKEOFF) { | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
35 /* What does player want to take off? */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
36 if ((item = get_item(pack, "take off", REMOVABLE, FALSE, FALSE))==NULL) | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
37 return; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
38 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
39 obj = OBJPTR(item); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
40 if (!is_current(obj)) { | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
41 msg("Not wearing %c) %s", pack_char(pack, obj),inv_name(obj, TRUE)); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
42 return; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
43 } | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
44 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
45 player.t_using = item; /* Remember what it is */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
46 player.t_action = C_TAKEOFF; /* We are taking something off */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
47 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
48 /* Cursed items take almost no time */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
49 if (obj->o_flags & ISCURSED) player.t_no_move = movement(&player); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
50 else player.t_no_move = dress_units(item) * movement(&player); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
51 return; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
52 } | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
53 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
54 /* We have waited our time, let's take off our item */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
55 item = player.t_using; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
56 player.t_using = NULL; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
57 player.t_action = A_NIL; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
58 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
59 obj = OBJPTR(item); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
60 if (!is_current(obj)) { /* Just to be on the safe side */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
61 msg("Not wearing %c) %s", pack_char(pack, obj),inv_name(obj, TRUE)); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
62 return; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
63 } | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
64 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
65 /* Can the player remove the item? */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
66 if (!dropcheck(obj)) return; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
67 updpack(TRUE, &player); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
68 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
69 msg("Was wearing %c) %s", pack_char(pack, obj),inv_name(obj,TRUE)); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
70 } | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
71 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
72 /* | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
73 * wear: | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
74 * The player wants to wear something, so let him/her put it on. | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
75 */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
76 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
77 wear() | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
78 { | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
79 register struct linked_list *item; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
80 register struct object *obj; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
81 register int i; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
82 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
83 /* It takes time to put things on */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
84 if (player.t_action != C_WEAR) { | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
85 /* What does player want to wear? */ | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
86 if ((item = get_item(pack, "wear", WEARABLE, FALSE, FALSE)) == NULL) | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
87 return; | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
88 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
89 obj = OBJPTR(item); | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
90 | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
91 switch (obj->o_type) { | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
92 case ARMOR: | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
John "Elwin" Edwards 
parents:  
diff
changeset
 | 
93 if (cur_armor != NULL) { | 
| 
 
e6179860cb76
Import XRogue 8.0 from the Roguelike Restoration Project (r1490)
 
 | 
