| 1 | #pragma once |
| 2 | |
| 3 | #include <basis/seadTypes.h> |
| 4 | #include <math/seadMatrix.h> |
| 5 | #include <math/seadVector.h> |
| 6 | |
| 7 | #include "Library/Base/StringUtil.h" |
| 8 | |
| 9 | namespace al { |
| 10 | class GamePadSystem; |
| 11 | class HitSensor; |
| 12 | class IUseMessageSystem; |
| 13 | class LiveActor; |
| 14 | struct SklAnimRetargettingInfo; |
| 15 | } // namespace al |
| 16 | |
| 17 | class CapTargetInfo; |
| 18 | class PlayerActorBase; |
| 19 | class PlayerInitInfo; |
| 20 | |
| 21 | namespace rs { |
| 22 | |
| 23 | void initPlayerActorInfo(PlayerActorBase*, const PlayerInitInfo&); |
| 24 | const char* getInitPlayerModelName(const PlayerInitInfo&); |
| 25 | bool isNeedCreateNoseNeedle(const PlayerInitInfo&); |
| 26 | bool isClosetScenePlayer(const PlayerInitInfo&); |
| 27 | al::GamePadSystem* getGamePadSystem(const PlayerInitInfo&); |
| 28 | const char* getInitCapTypeName(const PlayerInitInfo&); |
| 29 | al::SklAnimRetargettingInfo* createPlayerSklRetargettingInfo(al::LiveActor*, const sead::Vector3f&); |
| 30 | const sead::Vector3f& getPlayerPos(const al::LiveActor*); |
| 31 | const sead::Vector3f& getPlayerHeadPos(const al::LiveActor*); |
| 32 | const sead::Vector3f& getPlayerBodyPos(const al::LiveActor*); |
| 33 | void calcPlayerSideDir(sead::Vector3f*, const al::LiveActor*); |
| 34 | void calcPlayerUpDir(sead::Vector3f*, const al::LiveActor*); |
| 35 | void calcPlayerFrontDir(sead::Vector3f*, const al::LiveActor*); |
| 36 | void calcPlayerGroundPoseUp(sead::Vector3f*, const al::LiveActor*); |
| 37 | bool isNearPlayerH(const al::LiveActor*, f32); |
| 38 | void calcPlayerFollowLayoutWorldPos(sead::Vector3f*, const al::LiveActor*); |
| 39 | bool isPlayerHack(const al::LiveActor*); |
| 40 | bool isPlayerHackGroupUseCameraStick(const al::LiveActor*); |
| 41 | bool tryCalcPlayerCeilingSpace(f32*, const al::LiveActor*, f32, f32); |
| 42 | bool tryCalcKidsGuideCeilingSpace(f32*, const al::LiveActor*, f32, f32); |
| 43 | const sead::Vector3f& getPlayerVelocity(const al::LiveActor*); |
| 44 | bool tryCalcPlayerModelHeadJointPos(sead::Vector3f*, const al::LiveActor*); |
| 45 | bool tryCalcPlayerModelHeadJointUp(sead::Vector3f*, const al::LiveActor*); |
| 46 | bool tryCalcPlayerModelHeadJointFront(sead::Vector3f*, const al::LiveActor*); |
| 47 | bool tryCalcPlayerModelHeadJointSide(sead::Vector3f*, const al::LiveActor*); |
| 48 | bool tryCalcPlayerModelNoseJointMtx(sead::Matrix34f*, const al::LiveActor*); |
| 49 | bool isPlayerDamageStopDemo(const al::LiveActor*); |
| 50 | bool isPlayerHackType(const al::LiveActor*, s32); |
| 51 | bool isPlayerHackRigidBody(const al::LiveActor*); |
| 52 | bool isPlayerHackJugemFishing(const al::LiveActor*); |
| 53 | bool isPlayerHackKuriboAny(const al::LiveActor*); |
| 54 | bool isPlayerHackKuribo(const al::LiveActor*); |
| 55 | bool isPlayerHackKuriboWing(const al::LiveActor*); |
| 56 | bool isPlayerHackStatueMario(const al::LiveActor*); |
| 57 | bool isPlayerHackEnemy(const al::LiveActor*); |
| 58 | bool isPlayerHackTrilemmaRock(const al::LiveActor*); |
| 59 | bool isPlayerHackTrilemmaPaper(const al::LiveActor*); |
| 60 | bool isPlayerHackTrilemmaScissors(const al::LiveActor*); |
| 61 | bool isPlayerHackElectricWire(const al::LiveActor*); |
| 62 | bool isPlayerHackTRex(const al::LiveActor*); |
| 63 | bool isPlayerHackFukankun(const al::LiveActor*); |
| 64 | bool isPlayerHackHosui(const al::LiveActor*); |
| 65 | bool isPlayerHackYoshi(const al::LiveActor*); |
| 66 | bool isPlayerHackYukimaru(const al::LiveActor*); |
| 67 | bool isPlayerHackHammerBros(const al::LiveActor*); |
| 68 | bool isPlayerHackBazookaElectric(const al::LiveActor*); |
| 69 | bool isPlayerHackBubble(const al::LiveActor*); |
| 70 | bool isPlayerHackTank(const al::LiveActor*); |
| 71 | bool isPlayerHackTsukkun(const al::LiveActor*); |
| 72 | bool isPlayerHackPukupuku(const al::LiveActor*); |
| 73 | bool isPlayerHackPukupukuAll(const al::LiveActor*); |
| 74 | bool isPlayerHackRadiconNpc(const al::LiveActor*); |
| 75 | bool isPlayerHackSenobi(const al::LiveActor*); |
| 76 | bool isPlayerHackKakku(const al::LiveActor*); |
| 77 | bool isPlayerHackGroupTalkScare(const al::LiveActor*); |
| 78 | bool isPlayerHackGroupUseCameraStick(const al::LiveActor*); |
| 79 | bool isPlayerHackNoSeparateCameraInput(const al::LiveActor*); |
| 80 | bool isPlayerEnableToSeeOddSpace(const al::LiveActor*); |
| 81 | bool isPlayerMini(const al::LiveActor*); |
| 82 | bool isPlayer3D(const al::LiveActor*); |
| 83 | bool isPlayer2D(const al::LiveActor*); |
| 84 | bool isPlayerSquat(const al::LiveActor*); |
| 85 | bool isPlayerInWater(const al::LiveActor*); |
| 86 | bool isPlayerPoleClimb(const al::LiveActor*); |
| 87 | bool isPlayerWallCatch(const al::LiveActor*); |
| 88 | bool isPlayerCameraSubjective(const al::LiveActor*); |
| 89 | bool isPlayerEnableTalkGround(const al::LiveActor*); |
| 90 | bool isPlayerEnableTalkSwim(const al::LiveActor*); |
| 91 | bool isPlayerBinding(const al::LiveActor*); |
| 92 | bool isPlayerEquipSomething(const al::LiveActor*); |
| 93 | bool isPlayerEquipRocketFlower(const al::LiveActor*); |
| 94 | bool isPlayerEquipNoSeparateAction(const al::LiveActor*); |
| 95 | bool isPlayerCarrySomething(const al::LiveActor*); |
| 96 | bool isPlayerNoInput(const al::LiveActor*); |
| 97 | bool isPlayerEnableShowTutorialInput(const al::LiveActor*); |
| 98 | bool isPlayerSafetyPointRecovery(const al::LiveActor*); |
| 99 | bool isPlayerPlayingSwitchOnAnim(const al::LiveActor*); |
| 100 | bool isPlayerEquipNoSeparateTutorial(const al::LiveActor*); |
| 101 | bool isPlayerWaitSleep(const al::LiveActor*); |
| 102 | bool isPlayerAboveSeparateCapGuideArrow(const al::LiveActor*); |
| 103 | bool isPlayerInvalidateGuideArrow(const al::LiveActor*); |
| 104 | bool isPlayerInvisibleCap(const al::LiveActor*); |
| 105 | bool isPlayerEnablePeachAmiibo(const al::LiveActor*); |
| 106 | bool isPlayerActiveMarioAmiiboInvincible(const al::LiveActor*); |
| 107 | bool isPlayerCollidedGround(const al::LiveActor*); |
| 108 | bool isPlayerCollidedCeiling(const al::LiveActor*); |
| 109 | bool isPlayerOnGround(const al::LiveActor*); |
| 110 | bool isPlayerOnActor(const al::LiveActor*); |
| 111 | bool isPlayerOnChairActor(const al::LiveActor*); |
| 112 | bool isPlayerOnBedActor(const al::LiveActor*); |
| 113 | bool isPlayerFaceToTarget(const al::LiveActor*, const sead::Vector3f&); |
| 114 | bool isPlayerFaceToTarget(const al::LiveActor*); |
| 115 | bool isPlayerFaceToTargetInRange(const al::LiveActor*, const sead::Vector3f&, f32); |
| 116 | bool isPlayerFaceToTargetInRange(const al::LiveActor*, f32); |
| 117 | bool tryGetFlyingCapPos(sead::Vector3f*, const al::LiveActor*); |
| 118 | bool tryGetFlyingCapVelocity(sead::Vector3f*, const al::LiveActor*); |
| 119 | bool isEnableReceiveCapStartLockOnAngle(const al::LiveActor*, const al::HitSensor*); |
| 120 | bool isGuardNosePainCap(const al::LiveActor*); |
| 121 | bool isEquipCapCatched(const al::LiveActor*); |
| 122 | f32 getFlyingCapThrowSpeedMax(const al::LiveActor*); |
| 123 | bool isPlayerCapSpinOrFlying(const al::LiveActor*); |
| 124 | bool isPlayerCapFlying(const al::LiveActor*); |
| 125 | bool isPlayerCapSeparateThrow(const al::LiveActor*); |
| 126 | bool isEmptyPlayerOxygen(const al::LiveActor*); |
| 127 | void recoveryPlayerOxygen(const al::LiveActor*); |
| 128 | void requestBindPlayer(const al::LiveActor*, al::HitSensor*); |
| 129 | void sendMsgBreakFloorToPlayer(const al::LiveActor*); |
| 130 | void requestStageStartHack(const al::LiveActor*, al::HitSensor*, const CapTargetInfo*, |
| 131 | al::LiveActor*); |
| 132 | bool isEnableOpenMap(const al::LiveActor*); |
| 133 | void syncPlayerModelAlpha(al::LiveActor*); |
| 134 | f32 getPlayerShadowDropLength(const al::LiveActor*); |
| 135 | bool isExistLabelInPlayerHackSystemMstxt(const al::LiveActor*, const al::IUseMessageSystem*, |
| 136 | const char*, const char*); |
| 137 | const char16* getPlayerHackSystemMessageString(const al::LiveActor*, const al::IUseMessageSystem*, |
| 138 | const char*, const char*); |
| 139 | void getPlayerHackTutorialMoviePath(al::StringTmp<64>*, const al::LiveActor*, const char*); |
| 140 | void calcPlayerAmiiboPeachAppearBasePos(sead::Vector3f*, const al::LiveActor*); |
| 141 | bool isPlayerInputHoldBalloonSet(const al::LiveActor*); |
| 142 | bool isPlayerInputHoldSquat(const al::LiveActor*); |
| 143 | bool isPlayerInputHoldCapKeepLockOn(const al::LiveActor*); |
| 144 | bool isPlayerInputHoldCarryAction(const al::LiveActor*); |
| 145 | bool isPlayerInputHoldEnterUpperDokan2D(const al::LiveActor*); |
| 146 | bool isPlayerInputHoldEnterSideDokan2D(const al::LiveActor*, const sead::Vector3f&); |
| 147 | bool isPlayerInputTriggerStartTalk(const al::LiveActor*); |
| 148 | bool isPlayerInputTriggerRide(const al::LiveActor*); |
| 149 | bool isPlayerInputTriggerSeparateCapJangoHelp(const al::LiveActor*); |
| 150 | bool tryGetPlayerInputWallAlongWallNormal(sead::Vector3f*, const al::LiveActor*); |
| 151 | void calcPlayerHoldPos(sead::Vector3f*, const al::HitSensor*); |
| 152 | void calcPlayerHoldMtx(sead::Matrix34f*, const al::HitSensor*); |
| 153 | void setPlayerHoldJointAngle(const al::HitSensor*, const sead::Vector3f&); |
| 154 | void updatePosePlayerHold(al::LiveActor*, const al::HitSensor*); |
| 155 | void updatePosePlayerHoldAddOffset(al::LiveActor*, const al::HitSensor*, const sead::Vector3f&); |
| 156 | f32 calcPlayerGuideOffsetY(const al::LiveActor*); |
| 157 | bool isEnablePlayerHeadGuide(const al::LiveActor*); |
| 158 | void calcPlayerGuidePos(sead::Vector3f*, const al::LiveActor*); |
| 159 | void calcPlayerGuidePos(sead::Vector3f*, const al::LiveActor*, f32); |
| 160 | |
| 161 | } // namespace rs |
| 162 | |