… | |
… | |
768 | |
768 | |
769 | if (!string) |
769 | if (!string) |
770 | return 0; |
770 | return 0; |
771 | |
771 | |
772 | for (skop = op->inv; skop; skop = skop->below) |
772 | for (skop = op->inv; skop; skop = skop->below) |
|
|
773 | if ((skop->type == SKILL || skop->type == SKILL_TOOL) |
|
|
774 | && !strncmp (string, skop->skill, min (strlen (string), strlen (skop->skill)))) |
773 | { |
775 | { |
774 | if (skop->type == SKILL |
776 | skop = find_skill_by_name (op, skop->skill); |
775 | && skop->flag [FLAG_CAN_USE_SKILL] |
|
|
776 | && skop->skill.starts_with (string)) |
|
|
777 | break; |
777 | break; |
778 | else if (skop->type == SKILL_TOOL |
|
|
779 | && skop->skill.starts_with (string) |
|
|
780 | && op->apply (skop)) |
|
|
781 | break; |
|
|
782 | } |
778 | } |
783 | |
779 | |
784 | if (!skop) |
780 | if (!skop) |
785 | { |
781 | { |
786 | op->failmsg (format ("Unable to find skill %s.", string)); |
782 | op->failmsg (format ("Unable to find skill %s.", string)); |
787 | return 0; |
783 | return 0; |
… | |
… | |
789 | |
785 | |
790 | if (!(skill_flags [skop->subtype] & SF_USE)) |
786 | if (!(skill_flags [skop->subtype] & SF_USE)) |
791 | { |
787 | { |
792 | op->failmsg (format ( |
788 | op->failmsg (format ( |
793 | "You feel as if you wanted to do something funny, but you can't remember what. " |
789 | "You feel as if you wanted to do something funny, but you can't remember what. " |
794 | "H<The %s skill cannot be used - maybe you need to ready it, use it with some item, or it's always active.>", |
790 | "H<The %s skill cannot be C<use_skill>'ed - maybe you need to C<ready_skill> it, " |
|
|
791 | "use it with some item, or it's always active.>", |
795 | &skop->skill |
792 | &skop->skill |
796 | )); |
793 | )); |
797 | return 0; |
794 | return 0; |
798 | } |
795 | } |
799 | |
796 | |