ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/deliantra/server/server/c_range.C
(Generate patch)

Comparing deliantra/server/server/c_range.C (file contents):
Revision 1.8 by root, Thu Sep 14 22:34:03 2006 UTC vs.
Revision 1.12 by root, Tue Dec 12 21:39:57 2006 UTC

138 138
139 if (command == 'i') 139 if (command == 'i')
140 castnow = 1; 140 castnow = 1;
141 141
142 /* Remove control of the golem */ 142 /* Remove control of the golem */
143 if (op->contr->ranges[range_golem] != NULL) 143 if (op->contr->ranges[range_golem])
144 { 144 {
145 if (op->contr->golem_count == op->contr->ranges[range_golem]->count) 145 op->contr->ranges[range_golem]->destroy ();
146 {
147 remove_friendly_object (op->contr->ranges[range_golem]);
148 remove_ob (op->contr->ranges[range_golem]);
149 free_object (op->contr->ranges[range_golem]);
150 }
151
152 op->contr->ranges[range_golem] = NULL; 146 op->contr->ranges[range_golem] = 0;
153 op->contr->golem_count = 0;
154 } 147 }
155 148
156 if (params != NULL) 149 if (params != NULL)
157 { 150 {
158 int spellnumber = 0; 151 int spellnumber = 0;
159 152
160 if ((spellnumber = atoi (params))) 153 if ((spellnumber = atoi (params)))
161 for (spob = op->inv; spob && spob->count != (tag_t) spellnumber; spob = spob->below) 154 for (spob = op->inv; spob && spob->count != spellnumber; spob = spob->below)
162 /* nop */; 155 /* nop */;
163 else 156 else
164 spob = lookup_spell_by_name (op, params); 157 spob = lookup_spell_by_name (op, params);
165 158
166 if (spob && spob->type == SPELL) 159 if (spob && spob->type == SPELL)
233 226
234 switch (r) 227 switch (r)
235 { 228 {
236 case range_none: /* "Nothing" is always legal */ 229 case range_none: /* "Nothing" is always legal */
237 return 1; 230 return 1;
231
238 case range_bow: 232 case range_bow:
239 case range_misc: 233 case range_misc:
240 case range_magic: /* cast spells */ 234 case range_magic: /* cast spells */
241 if (op->contr->ranges[r]) 235 return !!op->contr->ranges[r];
242 return 1;
243 else
244 return 0;
245 236
246 case range_golem: /* Use scrolls */ 237 case range_golem: /* Use scrolls */
247 if (op->contr->ranges[range_golem] && op->contr->ranges[range_golem]->count == op->contr->golem_count) 238 return !!op->contr->ranges[range_golem];
248 return 1;
249 else
250 return 0;
251 239
252 case range_skill: 240 case range_skill:
253 if (op->chosen_skill) 241 return !!op->chosen_skill;
254 return 1;
255 else
256 return 0;
257 } 242 }
243
258 /* No match above, must not be valid */ 244 /* No match above, must not be valid */
259 return 0; 245 return 0;
260} 246}
261 247
262void 248void

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines