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

Comparing deliantra/server/server/player.C (file contents):
Revision 1.262 by root, Sat Apr 3 03:35:33 2010 UTC vs.
Revision 1.263 by root, Sat Apr 3 22:30:21 2010 UTC

1654} 1654}
1655 1655
1656/* Received a fire command for the player - go and do it. 1656/* Received a fire command for the player - go and do it.
1657 */ 1657 */
1658bool 1658bool
1659fire (object *op, int dir) 1659fire (object *who, int dir)
1660{ 1660{
1661 int spellcost = 0; 1661 int spellcost = 0;
1662 1662
1663 player *pl = op->contr; 1663 player *pl = who->contr;
1664 1664
1665 if (pl->golem) 1665 if (pl->golem)
1666 { 1666 {
1667 control_golem (op->contr->golem, dir); 1667 control_golem (who->contr->golem, dir);
1668 return false; 1668 return false;
1669 } 1669 }
1670 1670
1671 object *ob = pl->ranged_ob; 1671 object *ob = pl->ranged_ob;
1672 1672
1673 if (!ob) 1673 if (!ob)
1674 return false; 1674 return false;
1675 1675
1676 if (op->speed_left > 0.f) 1676 if (who->speed_left > 0.f)
1677 --op->speed_left; 1677 --who->speed_left;
1678 else 1678 else
1679 return false; 1679 return false;
1680 1680
1681 if (!op->apply (ob)) 1681 if (!who->apply (ob))
1682 return false; 1682 return false;
1683 1683
1684 /* check for loss of invisiblity/hide */ 1684 /* check for loss of invisiblity/hide */
1685 if (action_makes_visible (op)) 1685 if (action_makes_visible (who))
1686 make_visible (op); 1686 make_visible (who);
1687 1687
1688 switch (ob->type) 1688 switch (ob->type)
1689 { 1689 {
1690 case BOW: 1690 case BOW:
1691 player_fire_bow (op, dir); 1691 player_fire_bow (who, dir);
1692 break; 1692 break;
1693 1693
1694 case SPELL: 1694 case SPELL:
1695 spellcost = cast_spell (op, op, dir, ob, *pl->spellparam ? pl->spellparam : 0); 1695 spellcost = cast_spell (who, who, dir, ob, *pl->spellparam ? pl->spellparam : 0);
1696 break; 1696 break;
1697 1697
1698 case BUILDER: 1698 case BUILDER:
1699 apply_map_builder (op, dir); 1699 apply_map_builder (who, dir);
1700 break; 1700 break;
1701 1701
1702 case SKILL: 1702 case SKILL:
1703 do_skill (op, op, ob, dir, 0); 1703 do_skill (who, who, ob, dir, 0);
1704 break; 1704 break;
1705 1705
1706 case RANGED: 1706 case RANGED:
1707 //TODO: use skill to fire (do_skill_fire?) 1707 do_skill (who, ob, who->chosen_skill, dir, 0);
1708 break; 1708 break;
1709 1709
1710 default: 1710 default:
1711 fire_misc_object (op, dir); 1711 fire_misc_object (who, dir);
1712 break; 1712 break;
1713 } 1713 }
1714 1714
1715 return true; 1715 return true;
1716} 1716}

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines