| 887 | } |
| 888 | |
| 889 | void zNPCVillager::AddTalking(xPsyche* psy, |
| 890 | S32 (*eval_plyrnear)(xGoal*, void*, en_trantype*, F32, void*), |
| 891 | S32 (*eval_talking)(xGoal*, void*, en_trantype*, F32, void*), |
| 892 | S32 (*eval_chatter)(xGoal*, void*, en_trantype*, F32, void*), |
| 893 | S32 (*eval_speak)(xGoal*, void*, en_trantype*, F32, void*)) |
| 894 | { |
| 895 | xGoal* goal; |
| 896 | goal = psy->AddGoal(NPC_GOAL_PLAYERNEAR, NULL); |
| 897 | if (eval_plyrnear) |
| 898 | { |
| 899 | goal->SetCallbacks(eval_plyrnear, NULL, NULL, NULL); |
| 900 | } |
| 901 | goal = psy->AddGoal(NPC_GOAL_TALK, NULL); |
| 902 | if (eval_talking) |
| 903 | { |
| 904 | goal->SetCallbacks(eval_talking, NULL, NULL, NULL); |
| 905 | } |
| 906 | goal = psy->AddGoal(NPC_GOAL_CHATTER, NULL); |
| 907 | if (eval_chatter) |
| 908 | { |
| 909 | goal->SetCallbacks(eval_chatter, NULL, NULL, NULL); |
| 910 | } |
| 911 | goal = psy->AddGoal(NPC_GOAL_SPEAK, NULL); |
| 912 | if (eval_speak) |
| 913 | { |
| 914 | goal->SetCallbacks(eval_speak, NULL, NULL, NULL); |
| 915 | } |
| 916 | } |
| 917 | |
| 918 | void zNPCVillager::FindMyConverse() |
| 919 | { |