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

Comparing deliantra/server/server/spell_attack.C (file contents):
Revision 1.70 by elmex, Sun Dec 21 20:35:37 2008 UTC vs.
Revision 1.72 by root, Sat Dec 27 08:01:07 2008 UTC

1498 if (!(mflags & P_IS_ALIVE)) 1498 if (!(mflags & P_IS_ALIVE))
1499 continue; 1499 continue;
1500 1500
1501 // players can only affect spaces that they can actually see 1501 // players can only affect spaces that they can actually see
1502 if (caster && caster->contr 1502 if (caster && caster->contr
1503 && caster->contr->visibility_at (m, nx, ny) < 70) 1503 && caster->contr->darkness_at (m, nx, ny) == LOS_BLOCKED)
1504 continue; 1504 continue;
1505 1505
1506 for (tmp = GET_MAP_TOP (m, nx, ny); tmp; tmp = tmp->below) 1506 for (tmp = GET_MAP_TOP (m, nx, ny); tmp; tmp = tmp->below)
1507 if (QUERY_FLAG (tmp, FLAG_MONSTER)) 1507 if (QUERY_FLAG (tmp, FLAG_MONSTER))
1508 break; 1508 break;
1618 } /* for y */ 1618 } /* for y */
1619 1619
1620 return 1; 1620 return 1;
1621} 1621}
1622 1622
1623
1624/* Move_ball_spell: This handles ball type spells that just sort of wander 1623/* Move_ball_spell: This handles ball type spells that just sort of wander
1625 * about. was called move_ball_lightning, but since more than the ball 1624 * about. was called move_ball_lightning, but since more than the ball
1626 * lightning spell used it, that seemed misnamed. 1625 * lightning spell used it, that seemed misnamed.
1627 * op is the spell effect. 1626 * op is the spell effect.
1628 * note that duration is handled by process_object() in time.c 1627 * note that duration is handled by process_object() in time.c
1653 for (i = 1; i < 9; i++) 1652 for (i = 1; i < 9; i++)
1654 { 1653 {
1655 /* i bit 0: alters sign of offset 1654 /* i bit 0: alters sign of offset
1656 * other bits (i / 2): absolute value of offset 1655 * other bits (i / 2): absolute value of offset
1657 */ 1656 */
1658
1659 int offset = ((i ^ j) & 1) ? (i / 2) : -(i / 2); 1657 int offset = ((i ^ j) & 1) ? (i / 2) : -(i / 2);
1660 int tmpdir = absdir (op->direction + offset); 1658 int tmpdir = absdir (op->direction + offset);
1661 1659
1662 nx = op->x + freearr_x[tmpdir]; 1660 nx = op->x + freearr_x[tmpdir];
1663 ny = op->y + freearr_y[tmpdir]; 1661 ny = op->y + freearr_y[tmpdir];
1665 { 1663 {
1666 dir = tmpdir; 1664 dir = tmpdir;
1667 break; 1665 break;
1668 } 1666 }
1669 } 1667 }
1668
1670 if (dir == 0) 1669 if (dir == 0)
1671 { 1670 {
1672 nx = op->x; 1671 nx = op->x;
1673 ny = op->y; 1672 ny = op->y;
1674 m = op->map; 1673 m = op->map;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines