| 1 | #pragma once |
| 2 | |
| 3 | #include <math/seadMatrix.h> |
| 4 | #include <math/seadQuat.h> |
| 5 | #include <math/seadVector.h> |
| 6 | |
| 7 | class IUsePlayerHack; |
| 8 | class IUsePlayerCollision; |
| 9 | class CapTargetInfo; |
| 10 | |
| 11 | namespace al { |
| 12 | class LiveActor; |
| 13 | class HitSensor; |
| 14 | class SensorMsg; |
| 15 | } // namespace al |
| 16 | |
| 17 | namespace rs { |
| 18 | CapTargetInfo* createCapTargetInfo(al::LiveActor*, const char*); |
| 19 | CapTargetInfo* createCapTargetInfoWithPlayerCollider(al::LiveActor*, IUsePlayerCollision*, |
| 20 | const char*); |
| 21 | CapTargetInfo* createCapTargetInfoHackMapParts(al::LiveActor*); |
| 22 | CapTargetInfo* createCapTargetInfoLockOnOnlyNoArchive(al::LiveActor*, const sead::Matrix34f*); |
| 23 | void requestLockOnCapHitReaction(const al::LiveActor*, const CapTargetInfo*, const char*); |
| 24 | IUsePlayerHack* startHack(al::HitSensor*, al::HitSensor*, al::LiveActor*); |
| 25 | void endHack(IUsePlayerHack**); |
| 26 | void endHackDir(IUsePlayerHack**, const sead::Vector3f&); |
| 27 | void endHackTargetQuat(IUsePlayerHack**, const sead::Quatf&, const sead::Vector3f&); |
| 28 | void endHackFromTargetPos(IUsePlayerHack**, const sead::Vector3f&); |
| 29 | void endHackFromTargetPos(IUsePlayerHack**, const sead::Vector3f&, const sead::Vector3f&); |
| 30 | void endHackFromTargetPos(IUsePlayerHack**, const sead::Vector3f&, const sead::Quatf&, |
| 31 | const sead::Vector3f&); |
| 32 | void endHackWithDamage(IUsePlayerHack**); |
| 33 | void endHackWithDamageAndVelocity(IUsePlayerHack**, const sead::Vector3f&); |
| 34 | void endHackEscapeScale(IUsePlayerHack**, f32); |
| 35 | void endHackDirEscapeScale(IUsePlayerHack**, const sead::Vector3f&, f32); |
| 36 | void endHackDirEscapeScalePose(IUsePlayerHack**, const sead::Quatf&, const sead::Vector3f&, f32); |
| 37 | void endHackAirVelocity(IUsePlayerHack**, const sead::Vector3f&, const sead::Quatf&, |
| 38 | const sead::Vector3f&, s32); |
| 39 | void endHackElectricWireToDestination(IUsePlayerHack**, const sead::Vector3f&, |
| 40 | const sead::Vector3f&); |
| 41 | void endHackFastenerToDestination(IUsePlayerHack**, const sead::Vector3f&, const sead::Vector3f&); |
| 42 | void endHackBazookaElectricToDestination(IUsePlayerHack**, const sead::Vector3f&, |
| 43 | const sead::Vector3f&, const sead::Quatf&, s32, f32); |
| 44 | void endHackThrowed(IUsePlayerHack**, const sead::Vector3f&); |
| 45 | bool requestDamage(IUsePlayerHack*); |
| 46 | void syncDamageVisibility(al::LiveActor*, const IUsePlayerHack*); |
| 47 | bool isDamageVisibilityHide(const IUsePlayerHack*); |
| 48 | bool isTouchHackCancelCollisionCode(const al::LiveActor*, const IUsePlayerCollision*); |
| 49 | bool isTouchHackDamageCollisionCode(const al::LiveActor*, const IUsePlayerCollision*); |
| 50 | void updateMaterialCode(al::LiveActor*, const IUsePlayerCollision*); |
| 51 | IUsePlayerHack* startHackStartDemo(IUsePlayerHack*, al::LiveActor*); |
| 52 | IUsePlayerHack* startHackStartDemoPuppetable(IUsePlayerHack*, al::LiveActor*); |
| 53 | void addHackStartDemoActor(IUsePlayerHack*, al::LiveActor*); |
| 54 | void endHackStartDemo(IUsePlayerHack*, al::LiveActor*); |
| 55 | bool tryEndHackStartDemo(IUsePlayerHack*, al::LiveActor*); |
| 56 | bool isActiveHackStartDemo(const IUsePlayerHack*); |
| 57 | bool isHackStartDemoEnterMario(const IUsePlayerHack*); |
| 58 | bool isHackerStopMove(const al::LiveActor*, const IUsePlayerHack*, f32); |
| 59 | bool isHackerStopMoveGround(const al::LiveActor*, const IUsePlayerHack*, f32, |
| 60 | const IUsePlayerCollision*); |
| 61 | bool sendMsgHackerNoReaction(const IUsePlayerHack*, al::HitSensor*, al::HitSensor*); |
| 62 | bool sendMsgHackerNoReactionWithoutShine(const IUsePlayerHack*, al::HitSensor*, al::HitSensor*); |
| 63 | bool isMsgHackerDamageAndCancel(const al::SensorMsg*); |
| 64 | bool isMsgEnableMapCheckPointWarpCollidedGround(const al::SensorMsg*, const al::LiveActor*); |
| 65 | bool isMsgEnableMapCheckPointWarpCollidedGround(const al::SensorMsg*, const IUsePlayerCollision*); |
| 66 | bool receiveMsgRequestTransferHack(const al::SensorMsg*, IUsePlayerHack*, al::HitSensor*); |
| 67 | void hideHackCap(IUsePlayerHack*); |
| 68 | void showHackCap(IUsePlayerHack*); |
| 69 | void hideShadowHackCap(IUsePlayerHack*); |
| 70 | bool isHackCapSeparateFlying(IUsePlayerHack*); |
| 71 | void calcGroundHeightHackerDepthShadowMapLength(al::LiveActor*, const IUsePlayerHack*, |
| 72 | const sead::Vector3f&, f32, f32); |
| 73 | void cutGroundHeightHackerDepthShadowMapLength(al::LiveActor*, const IUsePlayerHack*, const char*, |
| 74 | const sead::Vector3f&, f32, f32); |
| 75 | void checkExistHeightSpaceAboveGround(f32*, const IUsePlayerHack*, f32); |
| 76 | void requestRecoverySafetyPoint(IUsePlayerHack*, const sead::Vector3f&, const sead::Vector3f&); |
| 77 | bool trySnapTransToSnapMoveArea(al::LiveActor*, bool, const sead::Vector3f&, f32); |
| 78 | void updateHackActorVisibilityBySeparatePlay(al::LiveActor*, IUsePlayerHack*, const char*, |
| 79 | const char*); |
| 80 | void startReset(al::LiveActor*); |
| 81 | void endReset(al::LiveActor*); |
| 82 | void calcHackerMoveVec(sead::Vector3f*, const IUsePlayerHack*, const sead::Vector3f&); |
| 83 | bool calcHackerMoveDir(sead::Vector3f*, const IUsePlayerHack*, const sead::Vector3f&); |
| 84 | void calcHackerWallInputVec(sead::Vector3f*, sead::Vector3f*, const IUsePlayerHack*, |
| 85 | const sead::Vector3f&); |
| 86 | void calcHackerWallInputVec(sead::Vector3f*, sead::Vector3f*, const sead::Vector2f&, |
| 87 | const sead::Vector3f&); |
| 88 | f32 getHackMoveStickRaw(const IUsePlayerHack*); |
| 89 | void calcHackerWallInputDir(sead::Vector3f*, sead::Vector3f*, const IUsePlayerHack*, |
| 90 | const sead::Vector3f&); |
| 91 | bool addHackActorAccelStick(al::LiveActor*, const IUsePlayerHack*, sead::Vector3f*, f32, |
| 92 | const sead::Vector3f&); |
| 93 | void calcHackMovePower(const IUsePlayerHack*); |
| 94 | void checkHackerMoveDir(const IUsePlayerHack*, const sead::Vector3f&, const sead::Vector3f&, f32); |
| 95 | void calcHackerTrampleJumpParam(f32*, f32*, s32*, al::LiveActor*, const IUsePlayerHack*, f32, f32, |
| 96 | f32, f32, f32, s32, f32, f32, f32, f32, f32); |
| 97 | bool isOnHackMoveStick(const IUsePlayerHack*); |
| 98 | bool isHoldHackJump(const IUsePlayerHack*); |
| 99 | bool isOnHackMoveStickDeepDown(const IUsePlayerHack*); |
| 100 | bool isOnHackMoveStickGreater(const IUsePlayerHack*, f32); |
| 101 | bool isTriggerHackAction(const IUsePlayerHack*); |
| 102 | bool isTriggerHackPreInputAction(const IUsePlayerHack*); |
| 103 | bool isHoldHackAction(const IUsePlayerHack*); |
| 104 | bool isReleaseHackAction(const IUsePlayerHack*); |
| 105 | bool isTriggerHackJump(const IUsePlayerHack*); |
| 106 | bool isTriggerHackPreInputJump(const IUsePlayerHack*); |
| 107 | bool isReleaseHackJump(const IUsePlayerHack*); |
| 108 | bool isTriggerHackAnyButton(const IUsePlayerHack*); |
| 109 | bool isTriggerHackPreInputAnyButton(const IUsePlayerHack*); |
| 110 | bool isHoldHackAnyButton(const IUsePlayerHack*); |
| 111 | bool isReleaseHackAnyButton(const IUsePlayerHack*); |
| 112 | bool isTriggerHackSeparateJump(const IUsePlayerHack*); |
| 113 | bool isHoldHackSeparateJump(const IUsePlayerHack*); |
| 114 | void getHackStickRotateSpeed(const IUsePlayerHack*); |
| 115 | bool isTriggerHackSwing(const IUsePlayerHack*); |
| 116 | bool isTriggerHackSwingDirLeft(const IUsePlayerHack*); |
| 117 | bool isTriggerHackSwingDirRight(const IUsePlayerHack*); |
| 118 | bool isTriggerHackSwingDoubleHand(const IUsePlayerHack*); |
| 119 | bool isTriggerHackSwingDoubleHandReverseDir(const IUsePlayerHack*); |
| 120 | bool isTriggerHackSwingDoubleHandReverseInsideDir(const IUsePlayerHack*); |
| 121 | bool isTriggerHackSwingDoubleHandReverseOutsideDir(const IUsePlayerHack*); |
| 122 | void getHackPoseRotZDegreeLeft(const IUsePlayerHack*); |
| 123 | void getHackPoseRotZDegreeRight(const IUsePlayerHack*); |
| 124 | bool isTriggerTankCameraReset(const IUsePlayerHack*); |
| 125 | bool isTriggerHackSwingLeftHand(const IUsePlayerHack*); |
| 126 | bool isTriggerHackSwingRightHand(const IUsePlayerHack*); |
| 127 | void getHackSwingThrowDir(const IUsePlayerHack*); |
| 128 | void getHackSwingLeftHandDir(const IUsePlayerHack*); |
| 129 | void getHackSwingRightHandDir(const IUsePlayerHack*); |
| 130 | void getHackSwingVelLeftHand(const IUsePlayerHack*); |
| 131 | void getHackSwingVelRightHand(const IUsePlayerHack*); |
| 132 | void getHackCameraStickRaw(const IUsePlayerHack*); |
| 133 | void getRadiconInputSteeringValue(const IUsePlayerHack*); |
| 134 | void getRadiconInputThrottleValue(const IUsePlayerHack*); |
| 135 | bool isTriggerRecorderPlay(const IUsePlayerHack*); |
| 136 | bool isTriggerRecorderReverse(const IUsePlayerHack*); |
| 137 | bool isHoldRecorderPlay(const IUsePlayerHack*); |
| 138 | bool isHoldRecorderReverse(const IUsePlayerHack*); |
| 139 | bool isTriggerRecorderJump(const IUsePlayerHack*); |
| 140 | bool isTriggerRecorderCancel(const IUsePlayerHack*); |
| 141 | void getHackGemyLeftStickRaw(); |
| 142 | void getHackGemyRightStickRaw(); |
| 143 | bool isTriggerGemyResetCamera(const IUsePlayerHack*); |
| 144 | bool isTriggerGemyChangeCamera(const IUsePlayerHack*); |
| 145 | bool isTriggerSubjectiveCamera(const IUsePlayerHack*); |
| 146 | bool isTriggerFlutter(const IUsePlayerHack*, f32); |
| 147 | bool isTriggerFukankunZoomOn(const IUsePlayerHack*); |
| 148 | bool isTriggerFukankunZoomOff(const IUsePlayerHack*); |
| 149 | bool isHoldFukankunZoom(const IUsePlayerHack*); |
| 150 | void getPoleJumpPadPoseMtx(sead::Matrix33f*); |
| 151 | void getPoleJumpPadAcceleration(sead::Vector3f*); |
| 152 | bool isTriggerIceClimberClimbLeft(const IUsePlayerHack*); |
| 153 | bool isTriggerIceClimberClimbRight(const IUsePlayerHack*); |
| 154 | bool isTriggerIceClimberFall(const IUsePlayerHack*); |
| 155 | } // namespace rs |
| 156 | |
| 157 | namespace HackFunction { |
| 158 | bool isTriggerHackEnd(const IUsePlayerHack*); |
| 159 | bool isTriggerCancelBubbleLauncher(const IUsePlayerHack*); |
| 160 | } // namespace HackFunction |
| 161 | |