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.11 by root, Tue Dec 12 20:53:03 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)
146 {
147 remove_friendly_object (op->contr->ranges[range_golem]); 145 remove_friendly_object (op->contr->ranges[range_golem]);
148 remove_ob (op->contr->ranges[range_golem]); 146 op->contr->ranges[range_golem]->remove ();
149 free_object (op->contr->ranges[range_golem]); 147 op->contr->ranges[range_golem]->destroy (0);
150 }
151 148
152 op->contr->ranges[range_golem] = NULL; 149 op->contr->ranges[range_golem] = 0;
153 op->contr->golem_count = 0;
154 } 150 }
155 151
156 if (params != NULL) 152 if (params != NULL)
157 { 153 {
158 int spellnumber = 0; 154 int spellnumber = 0;
159 155
160 if ((spellnumber = atoi (params))) 156 if ((spellnumber = atoi (params)))
161 for (spob = op->inv; spob && spob->count != (tag_t) spellnumber; spob = spob->below) 157 for (spob = op->inv; spob && spob->count != spellnumber; spob = spob->below)
162 /* nop */; 158 /* nop */;
163 else 159 else
164 spob = lookup_spell_by_name (op, params); 160 spob = lookup_spell_by_name (op, params);
165 161
166 if (spob && spob->type == SPELL) 162 if (spob && spob->type == SPELL)
233 229
234 switch (r) 230 switch (r)
235 { 231 {
236 case range_none: /* "Nothing" is always legal */ 232 case range_none: /* "Nothing" is always legal */
237 return 1; 233 return 1;
234
238 case range_bow: 235 case range_bow:
239 case range_misc: 236 case range_misc:
240 case range_magic: /* cast spells */ 237 case range_magic: /* cast spells */
241 if (op->contr->ranges[r]) 238 return !!op->contr->ranges[r];
242 return 1;
243 else
244 return 0;
245 239
246 case range_golem: /* Use scrolls */ 240 case range_golem: /* Use scrolls */
247 if (op->contr->ranges[range_golem] && op->contr->ranges[range_golem]->count == op->contr->golem_count) 241 return !!op->contr->ranges[range_golem];
248 return 1;
249 else
250 return 0;
251 242
252 case range_skill: 243 case range_skill:
253 if (op->chosen_skill) 244 return !!op->chosen_skill;
254 return 1;
255 else
256 return 0;
257 } 245 }
246
258 /* No match above, must not be valid */ 247 /* No match above, must not be valid */
259 return 0; 248 return 0;
260} 249}
261 250
262void 251void

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines