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.40 by root, Fri Aug 24 02:05:14 2007 UTC vs.
Revision 1.41 by root, Mon Aug 27 05:10:51 2007 UTC

596 return 0; 596 return 0;
597} 597}
598 598
599/* do the cure disease stuff, from the spell "cure disease" */ 599/* do the cure disease stuff, from the spell "cure disease" */
600int 600int
601cure_disease (object *sufferer, object *caster) 601cure_disease (object *sufferer, object *caster, object *spell)
602{ 602{
603 object *disease, *next; 603 object *disease, *next;
604 int casting_level;
605 int cure = 0; 604 int cure = 0;
606 605
607 if (caster)
608 casting_level = caster->level;
609 else
610 casting_level = 1000; /* if null caster, CURE all. */ 606 int casting_level = caster ? caster->level : 1000; /* if null caster, CURE all. */
611 607
612 for (disease = sufferer->inv; disease; disease = next) 608 for (disease = sufferer->inv; disease; disease = next)
613 { 609 {
614 next = disease->below; 610 next = disease->below;
615 611
623 if ((casting_level >= disease->level) || (!(random_roll (0, (disease->level - casting_level - 1), caster, PREFER_LOW)))) 619 if ((casting_level >= disease->level) || (!(random_roll (0, (disease->level - casting_level - 1), caster, PREFER_LOW))))
624 { 620 {
625 remove_symptoms (disease); 621 remove_symptoms (disease);
626 cure = 1; 622 cure = 1;
627 623
628 if (caster) 624 if (caster && spell)
629 change_exp (caster, disease->stats.exp, caster->chosen_skill ? caster->chosen_skill->skill : (const char *) 0, 0); 625 change_exp (caster, disease->stats.exp, spell->skill, SK_EXP_SKILL_ONLY);
630 626
631 disease->destroy (); 627 disease->destroy ();
632 } 628 }
633 } 629 }
634 } 630 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines