| 1 | #pragma once |
|---|---|
| 2 | |
| 3 | #include "Player/PlayerActorBase.h" |
| 4 | #include "Util/IUseDimension.h" |
| 5 | |
| 6 | namespace al { |
| 7 | class FootPrintHolder; |
| 8 | class HitSensor; |
| 9 | class WaterSurfaceFinder; |
| 10 | } // namespace al |
| 11 | |
| 12 | class ComboCounter; |
| 13 | class PlayerInfo; |
| 14 | class PlayerConst; |
| 15 | class PlayerInput; |
| 16 | class PlayerTrigger; |
| 17 | class HackCap; |
| 18 | class ActorDimensionKeeper; |
| 19 | class PlayerModelHolder; |
| 20 | class PlayerModelChangerHakoniwa; |
| 21 | class PlayerAnimator; |
| 22 | class PlayerColliderHakoniwa; |
| 23 | class PlayerPuppet; |
| 24 | class PlayerAreaChecker; |
| 25 | class PlayerOxygen; |
| 26 | class PlayerDamageKeeper; |
| 27 | class PlayerDemoActionFlag; |
| 28 | class PlayerCapActionHistory; |
| 29 | class PlayerCapManHeroEyesControl; |
| 30 | class PlayerContinuousJump; |
| 31 | class PlayerContinuousLongJump; |
| 32 | class PlayerCounterAfterUpperPunch; |
| 33 | class PlayerCounterForceRun; |
| 34 | class PlayerCounterIceWater; |
| 35 | class PlayerCounterQuickTurnJump; |
| 36 | class PlayerWallActionHistory; |
| 37 | class PlayerBindKeeper; |
| 38 | class PlayerCarryKeeper; |
| 39 | class PlayerEquipmentUser; |
| 40 | class PlayerHackKeeper; |
| 41 | class PlayerFormSensorCollisionArranger; |
| 42 | class PlayerJumpMessageRequest; |
| 43 | class PlayerSandSinkAffect; |
| 44 | class PlayerSpinCapAttack; |
| 45 | class PlayerActionDiveInWater; |
| 46 | class PlayerEffect; |
| 47 | class PlayerEyeSensorHitHolder; |
| 48 | class PlayerPushReceiver; |
| 49 | class PlayerHitPush; |
| 50 | class PlayerExternalVelocity; |
| 51 | class PlayerJointControlKeeper; |
| 52 | class PlayerPainPartsKeeper; |
| 53 | class PlayerRecoverySafetyPoint; |
| 54 | class PlayerRippleGenerator; |
| 55 | class PlayerSeparateCapFlag; |
| 56 | class PlayerWetControl; |
| 57 | class PlayerStainControl; |
| 58 | class GaugeAir; |
| 59 | class WaterSurfaceShadow; |
| 60 | class WorldEndBorderKeeper; |
| 61 | class PlayerSeCtrl; |
| 62 | |
| 63 | class PlayerStateWait; |
| 64 | class PlayerStateSquat; |
| 65 | class PlayerStateRunHakoniwa2D3D; |
| 66 | class PlayerStateSlope; |
| 67 | class PlayerStateRolling; |
| 68 | class PlayerStateSpinCap; |
| 69 | class PlayerStateJump; |
| 70 | class PlayerStateCapCatchPop; |
| 71 | class PlayerStateWallAir; |
| 72 | class PlayerStateWallCatch; |
| 73 | class PlayerStateGrabCeil; |
| 74 | class PlayerStatePoleClimb; |
| 75 | class PlayerStateHipDrop; |
| 76 | class PlayerStateHeadSliding; |
| 77 | class PlayerStateLongJump; |
| 78 | class PlayerStateFallHakoniwa; |
| 79 | class PlayerStateSandSink; |
| 80 | class ActorStateSandGeyser; |
| 81 | class PlayerStateRise; |
| 82 | class PlayerStateSwim; |
| 83 | class PlayerStateDamageLife; |
| 84 | class PlayerStateDamageSwim; |
| 85 | class PlayerStateDamageFire; |
| 86 | class PlayerStatePress; |
| 87 | class PlayerStateBind; |
| 88 | class PlayerStateHack; |
| 89 | class PlayerStateEndHack; |
| 90 | class PlayerStateCameraSubjective; |
| 91 | class PlayerStateAbyss; |
| 92 | |
| 93 | class PlayerJudgeAirForceCount; |
| 94 | class PlayerJudgeCameraSubjective; |
| 95 | class PlayerJudgeCapCatchPop; |
| 96 | class PlayerJudgeDeadWipeStart; |
| 97 | class PlayerJudgeDirectRolling; |
| 98 | class PlayerJudgeEnableStandUp; |
| 99 | class PlayerJudgeForceLand; |
| 100 | class PlayerJudgeForceSlopeSlide; |
| 101 | class PlayerJudgeForceRolling; |
| 102 | class PlayerJudgeGrabCeil; |
| 103 | class PlayerJudgeInWater; |
| 104 | class PlayerJudgeInWater; |
| 105 | class PlayerJudgeInWater; |
| 106 | class PlayerJudgeInWater; |
| 107 | class PlayerJudgeInvalidateInputFall; |
| 108 | class PlayerJudgeLongFall; |
| 109 | class PlayerJudgeOutInWater; |
| 110 | class PlayerJudgeRecoveryLifeFast; |
| 111 | class PlayerJudgeSandSink; |
| 112 | class PlayerJudgeSpeedCheckFall; |
| 113 | class PlayerJudgeStartHipDrop; |
| 114 | class PlayerJudgeStartRise; |
| 115 | class PlayerJudgeStartRolling; |
| 116 | class PlayerJudgeStartRun; |
| 117 | class PlayerJudgeStartSquat; |
| 118 | class PlayerJudgeStartWaterSurfaceRun; |
| 119 | class PlayerJudgeSlopeSlide; |
| 120 | class PlayerJudgePoleClimb; |
| 121 | class PlayerJudgePreInputJump; |
| 122 | class PlayerJudgePreInputCapThrow; |
| 123 | class PlayerJudgePreInputHackAction; |
| 124 | class HackCapJudgePreInputHoveringJump; |
| 125 | class HackCapJudgePreInputSeparateThrow; |
| 126 | class HackCapJudgePreInputSeparateJump; |
| 127 | class PlayerJudgeWallCatch; |
| 128 | class PlayerJudgeWallCatchInputDir; |
| 129 | class PlayerJudgeWallHitDown; |
| 130 | class PlayerJudgeWallHitDownForceRun; |
| 131 | class PlayerJudgeWallHitDownRolling; |
| 132 | class PlayerJudgeWallKeep; |
| 133 | |
| 134 | class PlayerActorHakoniwa : public PlayerActorBase, public IUseDimension { |
| 135 | public: |
| 136 | PlayerActorHakoniwa(const char*); |
| 137 | void initAfterPlacement() override; |
| 138 | void movement() override; |
| 139 | void attackSensor(al::HitSensor* self, al::HitSensor* other) override; |
| 140 | bool receiveMsg(const al::SensorMsg* message, al::HitSensor* other, |
| 141 | al::HitSensor* self) override; |
| 142 | void control() override; |
| 143 | void updateCollider() override; |
| 144 | void initPlayer(const al::ActorInitInfo&, const PlayerInitInfo&) override; |
| 145 | u32 getPortNo() const override; |
| 146 | IUsePlayerCollision* getPlayerCollision() const override; |
| 147 | PlayerHackKeeper* getPlayerHackKeeper() const override; |
| 148 | bool isEnableDemo() override; |
| 149 | void startDemo() override; |
| 150 | void endDemo() override; |
| 151 | void startDemoPuppetable() override; |
| 152 | void endDemoPuppetable() override; |
| 153 | void startDemoShineGet() override; |
| 154 | void endDemoShineGet() override; |
| 155 | void startDemoMainShineGet() override; |
| 156 | void endDemoMainShineGet() override; |
| 157 | void startDemoHack() override; |
| 158 | void endDemoHack() override; |
| 159 | void startDemoKeepBind() override; |
| 160 | void noticeDemoKeepBindExecute() override; |
| 161 | void endDemoKeepBind() override; |
| 162 | void startDemoKeepCarry() override; |
| 163 | void endDemoKeepCarry() override; |
| 164 | al::DemoActor* getDemoActor() override; |
| 165 | PlayerAnimator* getDemoAnimator() override; |
| 166 | bool isDamageStopDemo() const override; |
| 167 | PlayerPuppet* getPlayerPuppet() override; |
| 168 | PlayerInfo* getPlayerInfo() const override; |
| 169 | bool checkDeathArea() override; |
| 170 | void sendCollisionMsg() override; |
| 171 | bool receivePushMsg(const al::SensorMsg*, al::HitSensor*, al::HitSensor*, f32) override; |
| 172 | ActorDimensionKeeper* getActorDimensionKeeper() const override; |
| 173 | |
| 174 | void updateModelShadowDropLength(); |
| 175 | void executeAfterCapTarget(); |
| 176 | void syncSensorAndCollision(); |
| 177 | void checkDamageFromCollision(); |
| 178 | void executePreMovementNerveChange(); |
| 179 | void updateCarry(); |
| 180 | void setNerveOnGround(); |
| 181 | void startPlayerPuppet(); |
| 182 | void cancelHackPlayerPuppetDemo(); |
| 183 | void endPlayerPuppet(); |
| 184 | void exeWait(); |
| 185 | bool tryActionCapReturn(); |
| 186 | bool tryActionCapSpinAttack(); |
| 187 | void exeSquat(); |
| 188 | bool tryActionSeparateCapThrow(); |
| 189 | void exeRun(); |
| 190 | void exeSlope(); |
| 191 | void exeRolling(); |
| 192 | void exeSpinCap(); |
| 193 | bool tryChangeNerveFromAir(); |
| 194 | bool tryActionCapSpinAttackMiss(); |
| 195 | void exeJump(); |
| 196 | void exeCapCatchPop(); |
| 197 | void exeWallAir(); |
| 198 | void exeWallCatch(); |
| 199 | void exeGrabCeil(); |
| 200 | void exePoleClimb(); |
| 201 | void exeHipDrop(); |
| 202 | void exeHeadSliding(); |
| 203 | void exeLongJump(); |
| 204 | void exeFall(); |
| 205 | void exeSandSink(); |
| 206 | void exeSandGeyser(); |
| 207 | void exeRise(); |
| 208 | void exeSwim(); |
| 209 | void exeDamage(); |
| 210 | void exeDamageSwim(); |
| 211 | void exeDamageFire(); |
| 212 | void exePress(); |
| 213 | void exeHack(); |
| 214 | void exeEndHack(); |
| 215 | void exeBind(); |
| 216 | bool tryActionCapSpinAttackBindEnd(); |
| 217 | void exeDemo(); |
| 218 | void exeCamera(); |
| 219 | void exeAbyss(); |
| 220 | void exeDead(); |
| 221 | bool tryActionCapSpinAttackImpl(bool); |
| 222 | |
| 223 | private: |
| 224 | PlayerInfo* mInfo; |
| 225 | PlayerConst* mConst; |
| 226 | PlayerInput* mInput; |
| 227 | PlayerTrigger* mTrigger; |
| 228 | HackCap* mHackCap; |
| 229 | ActorDimensionKeeper* mDimensionKeeper; |
| 230 | PlayerModelHolder* mModelHolder; |
| 231 | PlayerModelChangerHakoniwa* mModelChanger; |
| 232 | PlayerAnimator* mAnimator; |
| 233 | PlayerColliderHakoniwa* mCollider; |
| 234 | PlayerPuppet* mPuppet; |
| 235 | PlayerAreaChecker* mAreaChecker; |
| 236 | al::WaterSurfaceFinder* mWaterSurfaceFinder; |
| 237 | PlayerOxygen* mOxygen; |
| 238 | PlayerDamageKeeper* mDamageKeeper; |
| 239 | PlayerDemoActionFlag* mDemoActionFlag; |
| 240 | PlayerCapActionHistory* mCapActionHistory; |
| 241 | PlayerCapManHeroEyesControl* mCapManHeroEyesControl; |
| 242 | PlayerContinuousJump* mContinuousJump; |
| 243 | PlayerContinuousLongJump* mContinuousLongJump; |
| 244 | PlayerCounterAfterUpperPunch* mCounterAfterUpperPunch; |
| 245 | PlayerCounterForceRun* mCounterForceRun; |
| 246 | PlayerCounterIceWater* mCounterIceWater; |
| 247 | PlayerCounterQuickTurnJump* mCounterQuickTurnJump; |
| 248 | PlayerWallActionHistory* mWallActionHistory; |
| 249 | PlayerBindKeeper* mBindKeeper; |
| 250 | PlayerCarryKeeper* mCarryKeeper; |
| 251 | PlayerEquipmentUser* mEquipmentUser; |
| 252 | PlayerHackKeeper* mHackKeeper; |
| 253 | PlayerFormSensorCollisionArranger* mFormSensorCollisionArranger; |
| 254 | PlayerJumpMessageRequest* mJumpMessageRequest; |
| 255 | PlayerSandSinkAffect* mSandSinkAffect; |
| 256 | PlayerSpinCapAttack* mSpinCapAttack; |
| 257 | PlayerActionDiveInWater* mActionDiveInWater; |
| 258 | PlayerEffect* mEffect; |
| 259 | PlayerEyeSensorHitHolder* mEyeSensorHitHolder; |
| 260 | PlayerPushReceiver* mPushReceiver; |
| 261 | PlayerHitPush* mHitPush; |
| 262 | PlayerExternalVelocity* mExternalVelocity; |
| 263 | PlayerJointControlKeeper* mJointControlKeeper; |
| 264 | PlayerPainPartsKeeper* mPainPartsKeeper; |
| 265 | PlayerRecoverySafetyPoint* mRecoverySafetyPoint; |
| 266 | PlayerRippleGenerator* mRippleGenerator; |
| 267 | PlayerSeparateCapFlag* mSeparateCapFlag; |
| 268 | PlayerWetControl* mWetControl; |
| 269 | PlayerStainControl* mStainControl; |
| 270 | al::FootPrintHolder* mFootPrintHolder; |
| 271 | GaugeAir* mGaugeAir; |
| 272 | WaterSurfaceShadow* mWaterSurfaceShadow; |
| 273 | WorldEndBorderKeeper* mWorldEndBorderKeeper; |
| 274 | ComboCounter* mComboCounter; |
| 275 | PlayerSeCtrl* mSeCtrl; |
| 276 | al::HitSensor* mBodyHitSensor; |
| 277 | bool mIsLongShadow; |
| 278 | PlayerStateWait* mStateWait; |
| 279 | PlayerStateSquat* mStateSquat; |
| 280 | PlayerStateRunHakoniwa2D3D* mStateRunHakoniwa2D3D; |
| 281 | PlayerStateSlope* mStateSlope; |
| 282 | PlayerStateRolling* mStateRolling; |
| 283 | PlayerStateSpinCap* mStateSpinCap; |
| 284 | PlayerStateJump* mStateJump; |
| 285 | PlayerStateCapCatchPop* mStateCapCatchPop; |
| 286 | PlayerStateWallAir* mStateWallAir; |
| 287 | PlayerStateWallCatch* mStateWallCatch; |
| 288 | PlayerStateGrabCeil* mStateGrabCeil; |
| 289 | PlayerStatePoleClimb* mStatePoleClimb; |
| 290 | PlayerStateHipDrop* mStateHipDrop; |
| 291 | PlayerStateHeadSliding* mStateHeadSliding; |
| 292 | PlayerStateLongJump* mStateLongJump; |
| 293 | PlayerStateFallHakoniwa* mStateFallHakoniwa; |
| 294 | PlayerStateSandSink* mStateSandSink; |
| 295 | ActorStateSandGeyser* mActorStateSandGeyser; |
| 296 | PlayerStateRise* mStateRise; |
| 297 | PlayerStateSwim* mStateSwim; |
| 298 | PlayerStateDamageLife* mStateDamageLife; |
| 299 | PlayerStateDamageSwim* mStateDamageSwim; |
| 300 | PlayerStateDamageFire* mStateDamageFire; |
| 301 | PlayerStatePress* mStatePress; |
| 302 | PlayerStateBind* mStateBind; |
| 303 | PlayerStateHack* mStateHack; |
| 304 | PlayerStateEndHack* mStateEndHack; |
| 305 | PlayerStateCameraSubjective* mStateCameraSubjective; |
| 306 | PlayerStateAbyss* mStateAbyss; |
| 307 | PlayerJudgeAirForceCount* mJudgeAirForceCount; |
| 308 | PlayerJudgeCameraSubjective* mJudgeCameraSubjective; |
| 309 | PlayerJudgeCapCatchPop* mJudgeCapCatchPop; |
| 310 | PlayerJudgeDeadWipeStart* mJudgeDeadWipeStart; |
| 311 | PlayerJudgeDirectRolling* mJudgeDirectRolling; |
| 312 | PlayerJudgeEnableStandUp* mJudgeEnableStandUp; |
| 313 | PlayerJudgeForceLand* mJudgeForceLand; |
| 314 | PlayerJudgeForceSlopeSlide* mJudgeForceSlopeSlide; |
| 315 | PlayerJudgeForceRolling* mJudgeForceRolling; |
| 316 | PlayerJudgeGrabCeil* mJudgeGrabCeil; |
| 317 | PlayerJudgeInWater* mJudgeInWater[4]; |
| 318 | PlayerJudgeInvalidateInputFall* mJudgeInvalidateInputFall; |
| 319 | PlayerJudgeLongFall* mJudgeLongFall; |
| 320 | PlayerJudgeOutInWater* mJudgeOutInWater; |
| 321 | PlayerJudgeRecoveryLifeFast* mJudgeRecoveryLifeFast; |
| 322 | PlayerJudgeSandSink* mJudgeSandSink; |
| 323 | PlayerJudgeSpeedCheckFall* mJudgeSpeedCheckFall; |
| 324 | PlayerJudgeStartHipDrop* mJudgeStartHipDrop; |
| 325 | PlayerJudgeStartRise* mJudgeStartRise; |
| 326 | PlayerJudgeStartRolling* mJudgeStartRolling; |
| 327 | PlayerJudgeStartRun* mJudgeStartRun; |
| 328 | PlayerJudgeStartSquat* mJudgeStartSquat; |
| 329 | PlayerJudgeStartWaterSurfaceRun* mJudgeStartWaterSurfaceRun; |
| 330 | PlayerJudgeSlopeSlide* mJudgeSlopeSlide; |
| 331 | PlayerJudgePoleClimb* mJudgePoleClimb; |
| 332 | PlayerJudgePreInputJump* mJudgePreInputJump; |
| 333 | PlayerJudgePreInputCapThrow* mJudgePreInputCapThrow; |
| 334 | PlayerJudgePreInputHackAction* mJudgePreInputHackAction; |
| 335 | HackCapJudgePreInputHoveringJump* mHackCapJudgePreInputHoveringJump; |
| 336 | HackCapJudgePreInputSeparateThrow* mHackCapJudgePreInputSeparateThrow; |
| 337 | HackCapJudgePreInputSeparateJump* mHackCapJudgePreInputSeparateJump; |
| 338 | PlayerJudgeWallCatch* mJudgeWallCatch; |
| 339 | PlayerJudgeWallCatchInputDir* mJudgeWallCatchInputDir; |
| 340 | PlayerJudgeWallHitDown* mJudgeWallHitDown; |
| 341 | PlayerJudgeWallHitDownForceRun* mJudgeWallHitDownForceRun; |
| 342 | PlayerJudgeWallHitDownRolling* mJudgeWallHitDownRolling; |
| 343 | PlayerJudgeWallKeep* mJudgeWallKeep; |
| 344 | bool mIsReduceOxygen; |
| 345 | }; |
| 346 |