| 574 | } |
| 575 | |
| 576 | void zNPCTiki::SelfSetup() |
| 577 | { |
| 578 | xBehaveMgr* bmgr; |
| 579 | xPsyche* psy; |
| 580 | xGoal* goal; |
| 581 | |
| 582 | bmgr = xBehaveMgr_GetSelf(); |
| 583 | psy = bmgr->Subscribe(this, 0); |
| 584 | this->psy_instinct = psy; |
| 585 | psy = this->psy_instinct; |
| 586 | psy->BrainBegin(); |
| 587 | |
| 588 | goal = psy->AddGoal(NPC_GOAL_TIKIIDLE, NULL); |
| 589 | ((zNPCGoalCommon*)goal)->flg_npcgauto = 0; |
| 590 | |
| 591 | switch (this->myNPCType) |
| 592 | { |
| 593 | case NPC_TYPE_TIKI_LOVEY: |
| 594 | goal->SetCallbacks(loveyIdleCB, NULL, NULL, NULL); |
| 595 | goal = psy->AddGoal(NPC_GOAL_TIKIPATROL, NULL); |
| 596 | goal->SetCallbacks(loveyPatrolCB, NULL, NULL, NULL); |
| 597 | break; |
| 598 | case NPC_TYPE_TIKI_QUIET: |
| 599 | goal->SetCallbacks(quietIdleCB, NULL, NULL, NULL); |
| 600 | goal = psy->AddGoal(NPC_GOAL_TIKIHIDE, NULL); |
| 601 | goal->SetCallbacks(quietHideCB, NULL, NULL, NULL); |
| 602 | break; |
| 603 | case NPC_TYPE_TIKI_THUNDER: |
| 604 | goal->SetCallbacks(thunderIdleCB, NULL, NULL, NULL); |
| 605 | goal = psy->AddGoal(NPC_GOAL_TIKICOUNT, NULL); |
| 606 | goal->SetCallbacks(thunderCountCB, NULL, NULL, NULL); |
| 607 | break; |
| 608 | case NPC_TYPE_TIKI_STONE: |
| 609 | default: |
| 610 | break; |
| 611 | } |
| 612 | |
| 613 | goal = psy->AddGoal(NPC_GOAL_TIKIDYING, NULL); |
| 614 | goal->SetCallbacks(tikiDyingCB, NULL, NULL, NULL); |
| 615 | |
| 616 | goal = psy->AddGoal(NPC_GOAL_TIKIDEAD, NULL); |
| 617 | goal->SetCallbacks(tikiDeadCB, NULL, NULL, NULL); |
| 618 | |
| 619 | psy->BrainEnd(); |
| 620 | psy->SetSafety(NPC_GOAL_TIKIIDLE); |
| 621 | } |
| 622 | |
| 623 | void zNPCTiki::ParseINI() |
| 624 | { |
nothing calls this directly
no test coverage detected