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.35 by root, Mon Aug 20 19:13:10 2007 UTC vs.
Revision 1.36 by root, Thu Aug 23 17:56:25 2007 UTC

456 456
457 new_symptom->move_block = 0; 457 new_symptom->move_block = 0;
458 458
459 victim->head_ ()->insert (new_symptom); 459 victim->head_ ()->insert (new_symptom);
460 460
461 // ste owner last, as insert clears owner 461 // set owner last, as insert clears owner
462 new_symptom->set_owner (disease->owner); 462 new_symptom->set_owner (disease->owner);
463 463
464 return 1; 464 return 1;
465 } 465 }
466 466
523 insert_ob_in_ob (immunity, disease->env); 523 insert_ob_in_ob (immunity, disease->env);
524 524
525 return 1; 525 return 1;
526} 526}
527 527
528
529/* make the symptom do the nasty things it does */ 528/* make the symptom do the nasty things it does */
530
531int 529int
532move_symptom (object *symptom) 530move_symptom (object *symptom)
533{ 531{
534 object *victim = symptom->env; 532 object *victim = symptom->env;
535 object *new_ob; 533 object *new_ob;
536 int sp_reduce; 534 int sp_reduce;
537 535
538 if (victim == NULL || victim->map == NULL) 536 if (!victim || !victim->map)
539 { /* outside a monster/player, die immediately */ 537 { /* outside a monster/player, die immediately */
540 symptom->destroy (); 538 symptom->destroy ();
541 return 0; 539 return 0;
542 } 540 }
543 541
555 553
556 /* create the symptom "other arch" object and drop it here 554 /* create the symptom "other arch" object and drop it here
557 * under every part of the monster 555 * under every part of the monster
558 * The victim may well have died. 556 * The victim may well have died.
559 */ 557 */
560 if (victim->map)
561 return 0;
562
563 if (symptom->other_arch) 558 if (symptom->other_arch && victim->map)
564 for (object *tmp = victim->head_ (); tmp; tmp = tmp->more) 559 for (object *tmp = victim->head_ (); tmp; tmp = tmp->more)
565 { 560 {
566 new_ob = arch_to_object (symptom->other_arch); 561 new_ob = arch_to_object (symptom->other_arch);
567 new_ob->x = tmp->x; 562 new_ob->x = tmp->x;
568 new_ob->y = tmp->y; 563 new_ob->y = tmp->y;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines