| 3469 | } |
| 3470 | |
| 3471 | void zNPCCommon::AddScripting(xPsyche* psy, |
| 3472 | S32 (*eval_script)(xGoal*, void*, en_trantype*, F32, void*), |
| 3473 | S32 (*eval_playanim)(xGoal*, void*, en_trantype*, F32, void*), |
| 3474 | S32 (*eval_attack)(xGoal*, void*, en_trantype*, F32, void*), |
| 3475 | S32 (*eval_move)(xGoal*, void*, en_trantype*, F32, void*), |
| 3476 | S32 (*eval_follow)(xGoal*, void*, en_trantype*, F32, void*), |
| 3477 | S32 (*eval_lead)(xGoal*, void*, en_trantype*, F32, void*), |
| 3478 | S32 (*eval_wait)(xGoal*, void*, en_trantype*, F32, void*)) |
| 3479 | { |
| 3480 | // non-matching: lwz scheduled too early |
| 3481 | this->DBG_Name(); |
| 3482 | if (this->flg_misc & 1) |
| 3483 | { |
| 3484 | xGoal* goal; |
| 3485 | goal = psy->AddGoal(NPC_GOAL_SCRIPT, NULL); |
| 3486 | goal->SetCallbacks(eval_script, NULL, NULL, NULL); |
| 3487 | goal = psy->AddGoal(NPC_GOAL_SCRIPTANIM, NULL); |
| 3488 | goal->SetCallbacks(eval_playanim, NULL, NULL, NULL); |
| 3489 | goal = psy->AddGoal(NPC_GOAL_SCRIPTATTACK, NULL); |
| 3490 | goal->SetCallbacks(eval_attack, NULL, NULL, NULL); |
| 3491 | goal = psy->AddGoal(NPC_GOAL_SCRIPTMOVE, NULL); |
| 3492 | goal->SetCallbacks(eval_move, NULL, NULL, NULL); |
| 3493 | goal = psy->AddGoal(NPC_GOAL_SCRIPTFOLLOW, NULL); |
| 3494 | goal->SetCallbacks(eval_follow, NULL, NULL, NULL); |
| 3495 | goal = psy->AddGoal(NPC_GOAL_SCRIPTLEAD, NULL); |
| 3496 | goal->SetCallbacks(eval_lead, NULL, NULL, NULL); |
| 3497 | goal = psy->AddGoal(NPC_GOAL_SCRIPTWAIT, NULL); |
| 3498 | goal->SetCallbacks(eval_wait, NULL, NULL, NULL); |
| 3499 | } |
| 3500 | } |
| 3501 | |
| 3502 | void zNPCCommon::AddDEVGoals(xPsyche*) |
| 3503 | { |