| 1 | #pragma once |
| 2 | |
| 3 | #include <basis/seadTypes.h> |
| 4 | #include <math/seadQuat.h> |
| 5 | #include <math/seadVector.h> |
| 6 | |
| 7 | namespace al { |
| 8 | struct ActorInitInfo; |
| 9 | class LiveActor; |
| 10 | class HitSensor; |
| 11 | class SensorMsg; |
| 12 | class MtxConnector; |
| 13 | } // namespace al |
| 14 | |
| 15 | class TalkNpcParam; |
| 16 | class NpcJointLookAtController; |
| 17 | class NpcStateReactionParam; |
| 18 | class PlayerEyeSensorHitHolder; |
| 19 | class ShellActorStateReaction; |
| 20 | |
| 21 | namespace rs { |
| 22 | bool tryApplyNpcMaterialAnimPresetFromPlacementInfo(al::LiveActor*, const al::ActorInitInfo&, |
| 23 | const TalkNpcParam*); |
| 24 | void setNpcMaterialAnimFromPlacementInfo(al::LiveActor*, const al::ActorInitInfo&); |
| 25 | bool tryUpdateNpcEyeLineAnim(al::LiveActor*, const TalkNpcParam*); |
| 26 | bool tryUpdateNpcEyeLineAnimToTarget(al::LiveActor*, const TalkNpcParam*, const sead::Vector3f&, |
| 27 | bool); |
| 28 | void resetNpcEyeLineAnim(al::LiveActor*); |
| 29 | bool tryUpdateNpcFacialAnim(al::LiveActor*, const TalkNpcParam*); |
| 30 | void trySwitchDepthToSelfShadow(al::LiveActor*); |
| 31 | bool tryReceiveMsgPlayerDisregard(const al::SensorMsg*, al::HitSensor*, const TalkNpcParam*); |
| 32 | void attackSensorNpcCommon(al::HitSensor*, al::HitSensor*); |
| 33 | bool receiveMsgNpcCommonNoReaction(const al::SensorMsg*, al::HitSensor*, al::HitSensor*); |
| 34 | void calcNpcPushVecBetweenSensors(sead::Vector3f*, al::HitSensor*, al::HitSensor*); |
| 35 | NpcJointLookAtController* createAndAppendNpcJointLookAtController(al::LiveActor*, |
| 36 | const TalkNpcParam*); |
| 37 | NpcJointLookAtController* tryCreateAndAppendNpcJointLookAtController(al::LiveActor*, |
| 38 | const TalkNpcParam*); |
| 39 | NpcJointLookAtController* tryCreateAndAppendNpcJointLookAtController(al::LiveActor*, |
| 40 | const TalkNpcParam*, f32); |
| 41 | void setPlayerEyeSensorHitHolder(NpcJointLookAtController*, const PlayerEyeSensorHitHolder*); |
| 42 | s32 getNpcJointLookAtControlJointNum(const TalkNpcParam*); |
| 43 | void updateNpcJointLookAtController(NpcJointLookAtController*); |
| 44 | void cancelUpdateNpcJointLookAtController(NpcJointLookAtController*); |
| 45 | void updateNpcJointLookAtControllerLookAtDistance(NpcJointLookAtController*, f32); |
| 46 | void invalidateNpcJointLookAtController(NpcJointLookAtController*); |
| 47 | void validateNpcJointLookAtController(NpcJointLookAtController*); |
| 48 | void requestLookAtTargetTrans(NpcJointLookAtController*, const sead::Vector3f&); |
| 49 | void initCapWorldNpcTail(al::LiveActor*); |
| 50 | bool tryStartForestManFlowerAnim(al::LiveActor*); |
| 51 | bool tryUpdateMaterialCodeByFloorCollisionOnArrow(al::LiveActor*); |
| 52 | void tryAttachConnectorToCollisionTFSV(al::LiveActor*, al::MtxConnector*, sead::Quatf*); |
| 53 | void tryConnectToCollisionTFSV(al::LiveActor*, const al::MtxConnector*, sead::Quatf*); |
| 54 | al::LiveActor* tryGetSubActorCityMayorFace(const al::LiveActor*); |
| 55 | void syncActionCityMayorFace(al::LiveActor*); |
| 56 | void syncMtsAnimCityMayorFace(al::LiveActor*); |
| 57 | bool isExistFaceAnim(al::LiveActor*, const char*); |
| 58 | void animateCityMayorFace(al::LiveActor*, const char*, f32); |
| 59 | ShellActorStateReaction* createNpcStateReaction(al::LiveActor*, const TalkNpcParam*, |
| 60 | const NpcStateReactionParam*); |
| 61 | bool isInvalidTrampleSensor(const al::HitSensor*, const TalkNpcParam*); |
| 62 | } // namespace rs |
| 63 | |