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

Comparing deliantra/server/server/spell_util.C (file contents):
Revision 1.22 by root, Thu Dec 14 22:45:41 2006 UTC vs.
Revision 1.24 by root, Wed Dec 20 09:14:22 2006 UTC

441{ 441{
442 object *op; 442 object *op;
443 443
444 if (OUT_OF_REAL_MAP (m, x, y)) 444 if (OUT_OF_REAL_MAP (m, x, y))
445 return 0; 445 return 0;
446 for (op = get_map_ob (m, x, y); op != NULL; op = op->above) 446 for (op = GET_MAP_OB (m, x, y); op != NULL; op = op->above)
447 if (QUERY_FLAG (op, FLAG_REFL_SPELL) && (!QUERY_FLAG (op, FLAG_ALIVE) || 447 if (QUERY_FLAG (op, FLAG_REFL_SPELL)
448 sp_op->type == LIGHTNING || (rndm (0, 99)) < 90 - (sp_op->level / 10))) 448 && (!QUERY_FLAG (op, FLAG_ALIVE)
449 || sp_op->type == LIGHTNING // XXX: elmex: why is LIGHTNING special cased here?
450 // most spells use subtypes for bolts today...
451 || (rndm (0, 99)) < 90 - (sp_op->level / 10)))
449 return 1; 452 return 1;
450 453
451 return 0; 454 return 0;
452} 455}
453 456
504 return 0; 507 return 0;
505 508
506 if (OB_TYPE_MOVE_BLOCK (op, GET_MAP_MOVE_BLOCK (mp, x, y))) 509 if (OB_TYPE_MOVE_BLOCK (op, GET_MAP_MOVE_BLOCK (mp, x, y)))
507 return 0; 510 return 0;
508 511
509 for (tmp = get_map_ob (mp, x, y); tmp != NULL; tmp = tmp->above) 512 for (tmp = GET_MAP_OB (mp, x, y); tmp != NULL; tmp = tmp->above)
510 { 513 {
511 /* If there is a counterspell on the space, and this 514 /* If there is a counterspell on the space, and this
512 * object is using magic, don't progress. I believe we could 515 * object is using magic, don't progress. I believe we could
513 * leave this out and let in progress, and other areas of the code 516 * leave this out and let in progress, and other areas of the code
514 * will then remove it, but that would seem to to use more 517 * will then remove it, but that would seem to to use more
696 699
697 if (mflags & P_OUT_OF_MAP) 700 if (mflags & P_OUT_OF_MAP)
698 tmp = NULL; 701 tmp = NULL;
699 else 702 else
700 { 703 {
701 for (tmp = get_map_ob (m, x, y); tmp != NULL; tmp = tmp->above) 704 for (tmp = GET_MAP_OB (m, x, y); tmp != NULL; tmp = tmp->above)
702 if (tmp->type == PLAYER) 705 if (tmp->type == PLAYER)
703 break; 706 break;
704 } 707 }
705 } 708 }
706 /* didn't find a player there, look in current square for a player */ 709 /* didn't find a player there, look in current square for a player */
707 if (tmp == NULL) 710 if (tmp == NULL)
708 for (tmp = get_map_ob (op->map, op->x, op->y); tmp != NULL; tmp = tmp->above) 711 for (tmp = GET_MAP_OB (op->map, op->x, op->y); tmp != NULL; tmp = tmp->above)
709 { 712 {
710 if (tmp->type == PLAYER) 713 if (tmp->type == PLAYER)
711 break; 714 break;
712 } 715 }
713 716
749 mp = m; 752 mp = m;
750 mflags = get_map_flags (m, &mp, nx, ny, &nx, &ny); 753 mflags = get_map_flags (m, &mp, nx, ny, &nx, &ny);
751 if (mflags & (P_OUT_OF_MAP | P_BLOCKSVIEW)) 754 if (mflags & (P_OUT_OF_MAP | P_BLOCKSVIEW))
752 continue; 755 continue;
753 756
754 tmp = get_map_ob (mp, nx, ny); 757 tmp = GET_MAP_OB (mp, nx, ny);
755 758
756 while (tmp != NULL && (((owner_type == PLAYER && 759 while (tmp != NULL && (((owner_type == PLAYER &&
757 !QUERY_FLAG (tmp, FLAG_MONSTER) && !QUERY_FLAG (tmp, FLAG_GENERATOR)) || 760 !QUERY_FLAG (tmp, FLAG_MONSTER) && !QUERY_FLAG (tmp, FLAG_GENERATOR)) ||
758 (owner_type != PLAYER && tmp->type != PLAYER)) || (tmp == exclude || (tmp->head && tmp->head == exclude)))) 761 (owner_type != PLAYER && tmp->type != PLAYER)) || (tmp == exclude || (tmp->head && tmp->head == exclude))))
759 tmp = tmp->above; 762 tmp = tmp->above;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines