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

Comparing deliantra/server/server/disease.C (file contents):
Revision 1.7 by root, Thu Oct 5 16:50:07 2006 UTC vs.
Revision 1.8 by root, Tue Dec 12 20:53:03 2006 UTC

172 { /* we're outside of someone */ 172 { /* we're outside of someone */
173 if (disease->stats.maxhp > 0) 173 if (disease->stats.maxhp > 0)
174 disease->value--; 174 disease->value--;
175 if (disease->value == 0) 175 if (disease->value == 0)
176 { 176 {
177 remove_ob (disease); 177 disease->remove ();
178 free_object (disease); 178 disease->destroy (0);
179 return 1; 179 return 1;
180 } 180 }
181 } 181 }
182 else 182 else
183 { 183 {
188 disease->stats.food--; 188 disease->stats.food--;
189 if (disease->stats.food == 0) 189 if (disease->stats.food == 0)
190 { 190 {
191 remove_symptoms (disease); /* remove the symptoms of this disease */ 191 remove_symptoms (disease); /* remove the symptoms of this disease */
192 grant_immunity (disease); 192 grant_immunity (disease);
193 remove_ob (disease); 193 disease->remove ();
194 free_object (disease); 194 disease->destroy (0);
195 return 1; 195 return 1;
196 } 196 }
197 } 197 }
198 } 198 }
199 /* check to see if we infect others */ 199 /* check to see if we infect others */
220 220
221 while ((symptom = find_symptom (disease)) != NULL) 221 while ((symptom = find_symptom (disease)) != NULL)
222 { 222 {
223 if (!victim) 223 if (!victim)
224 victim = symptom->env; 224 victim = symptom->env;
225 remove_ob (symptom); 225 symptom->remove ();
226 free_object (symptom); 226 symptom->destroy (0);
227 } 227 }
228 if (victim) 228 if (victim)
229 fix_player (victim); 229 fix_player (victim);
230 return 0; 230 return 0;
231} 231}
568 object *new_ob; 568 object *new_ob;
569 int sp_reduce; 569 int sp_reduce;
570 570
571 if (victim == NULL || victim->map == NULL) 571 if (victim == NULL || victim->map == NULL)
572 { /* outside a monster/player, die immediately */ 572 { /* outside a monster/player, die immediately */
573 remove_ob (symptom); 573 symptom->remove ();
574 free_object (symptom); 574 symptom->destroy (0);
575 return 0; 575 return 0;
576 } 576 }
577 577
578 if (symptom->stats.dam > 0) 578 if (symptom->stats.dam > 0)
579 hit_player (victim, symptom->stats.dam, symptom, symptom->attacktype, 1); 579 hit_player (victim, symptom->stats.dam, symptom, symptom->attacktype, 1);
669 */ 669 */
670 if ((casting_level >= disease->level) || (!(random_roll (0, (disease->level - casting_level - 1), caster, PREFER_LOW)))) 670 if ((casting_level >= disease->level) || (!(random_roll (0, (disease->level - casting_level - 1), caster, PREFER_LOW))))
671 { 671 {
672 672
673 remove_symptoms (disease); 673 remove_symptoms (disease);
674 remove_ob (disease); 674 disease->remove ();
675 cure = 1; 675 cure = 1;
676 if (caster) 676 if (caster)
677 change_exp (caster, disease->stats.exp, caster->chosen_skill ? &caster->chosen_skill->skill : (const char *) 0, 0); 677 change_exp (caster, disease->stats.exp, caster->chosen_skill ? &caster->chosen_skill->skill : (const char *) 0, 0);
678 free_object (disease); 678 disease->destroy (0);
679 } 679 }
680 } 680 }
681 } 681 }
682 if (cure) 682 if (cure)
683 { 683 {

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines