Blame


1 cc9bbf61 2020-04-01 op #include <assert.h>
2 cc9bbf61 2020-04-01 op
3 cc9bbf61 2020-04-01 op #include "adventure.h"
4 cc9bbf61 2020-04-01 op
5 cc9bbf61 2020-04-01 op static void
6 cc9bbf61 2020-04-01 op swap_locations(struct object *a, struct object *b)
7 cc9bbf61 2020-04-01 op {
8 cc9bbf61 2020-04-01 op struct object *t;
9 cc9bbf61 2020-04-01 op
10 cc9bbf61 2020-04-01 op assert(a != NULL);
11 cc9bbf61 2020-04-01 op assert(b != NULL);
12 cc9bbf61 2020-04-01 op
13 cc9bbf61 2020-04-01 op t = a->location;
14 cc9bbf61 2020-04-01 op a->location = b->location;
15 cc9bbf61 2020-04-01 op b->location = t;
16 cc9bbf61 2020-04-01 op }
17 cc9bbf61 2020-04-01 op
18 cc9bbf61 2020-04-01 op const char *
19 cc9bbf61 2020-04-01 op cannot_be_opened(struct object *o)
20 cc9bbf61 2020-04-01 op {
21 cc9bbf61 2020-04-01 op return "That cannot be opened.";
22 cc9bbf61 2020-04-01 op }
23 cc9bbf61 2020-04-01 op
24 cc9bbf61 2020-04-01 op const char *
25 cc9bbf61 2020-04-01 op cannot_be_closed(struct object *o)
26 cc9bbf61 2020-04-01 op {
27 cc9bbf61 2020-04-01 op return "That cannot be closed.";
28 cc9bbf61 2020-04-01 op }
29 cc9bbf61 2020-04-01 op
30 cc9bbf61 2020-04-01 op const char *
31 cc9bbf61 2020-04-01 op cannot_be_locked(struct object *o)
32 cc9bbf61 2020-04-01 op {
33 cc9bbf61 2020-04-01 op return "That cannot be locked.";
34 cc9bbf61 2020-04-01 op }
35 cc9bbf61 2020-04-01 op
36 cc9bbf61 2020-04-01 op const char *
37 cc9bbf61 2020-04-01 op cannot_be_unlocked(struct object *o)
38 cc9bbf61 2020-04-01 op {
39 cc9bbf61 2020-04-01 op return "That cannot be unlocked.";
40 cc9bbf61 2020-04-01 op }
41 cc9bbf61 2020-04-01 op
42 cc9bbf61 2020-04-01 op const char *
43 cc9bbf61 2020-04-01 op is_already_open(struct object *o)
44 cc9bbf61 2020-04-01 op {
45 cc9bbf61 2020-04-01 op return "That is already open.";
46 cc9bbf61 2020-04-01 op }
47 cc9bbf61 2020-04-01 op
48 cc9bbf61 2020-04-01 op const char *
49 cc9bbf61 2020-04-01 op is_already_closed(struct object *o)
50 cc9bbf61 2020-04-01 op {
51 cc9bbf61 2020-04-01 op return "That is already closed.";
52 cc9bbf61 2020-04-01 op }
53 cc9bbf61 2020-04-01 op
54 cc9bbf61 2020-04-01 op const char *
55 cc9bbf61 2020-04-01 op is_already_locked(struct object *o)
56 cc9bbf61 2020-04-01 op {
57 cc9bbf61 2020-04-01 op return "That is already locked.";
58 cc9bbf61 2020-04-01 op }
59 cc9bbf61 2020-04-01 op
60 cc9bbf61 2020-04-01 op const char *
61 cc9bbf61 2020-04-01 op is_already_unlocked(struct object *o)
62 cc9bbf61 2020-04-01 op {
63 cc9bbf61 2020-04-01 op return "That is already unlocked.";
64 cc9bbf61 2020-04-01 op }
65 cc9bbf61 2020-04-01 op
66 cc9bbf61 2020-04-01 op const char *
67 cc9bbf61 2020-04-01 op is_still_open(struct object *o)
68 cc9bbf61 2020-04-01 op {
69 cc9bbf61 2020-04-01 op return "That is still open.";
70 cc9bbf61 2020-04-01 op }
71 cc9bbf61 2020-04-01 op
72 cc9bbf61 2020-04-01 op const char *
73 cc9bbf61 2020-04-01 op is_still_locked(struct object *o)
74 cc9bbf61 2020-04-01 op {
75 cc9bbf61 2020-04-01 op return "That is still locked.";
76 cc9bbf61 2020-04-01 op }
77 cc9bbf61 2020-04-01 op
78 cc9bbf61 2020-04-01 op const char *
79 cc9bbf61 2020-04-01 op toggle_backdoor(struct object *o)
80 cc9bbf61 2020-04-01 op {
81 cc9bbf61 2020-04-01 op swap_locations(open_door_to_backroom, closed_door_to_backroom);
82 cc9bbf61 2020-04-01 op swap_locations(open_door_to_cave, closed_door_to_cave);
83 cc9bbf61 2020-04-01 op return "OK.";
84 cc9bbf61 2020-04-01 op }
85 cc9bbf61 2020-04-01 op
86 cc9bbf61 2020-04-01 op const char *
87 cc9bbf61 2020-04-01 op toggle_box(struct object *o)
88 cc9bbf61 2020-04-01 op {
89 cc9bbf61 2020-04-01 op swap_locations(open_box, closed_box);
90 cc9bbf61 2020-04-01 op return "OK.";
91 cc9bbf61 2020-04-01 op }
92 cc9bbf61 2020-04-01 op
93 cc9bbf61 2020-04-01 op const char *
94 cc9bbf61 2020-04-01 op toggle_box_lock(struct object *o)
95 cc9bbf61 2020-04-01 op {
96 cc9bbf61 2020-04-01 op if (key_for_box->location == player) {
97 cc9bbf61 2020-04-01 op swap_locations(closed_box, locked_box);
98 cc9bbf61 2020-04-01 op return "OK.";
99 cc9bbf61 2020-04-01 op } else {
100 7f40f3f5 2020-04-03 op return "You try really hard, but the closed box won't open "
101 7f40f3f5 2020-04-03 op "without a key.";
102 cc9bbf61 2020-04-01 op }
103 cc9bbf61 2020-04-01 op }