mirror of
https://github.com/MonsterDruide1/OdysseyDecomp.git
synced 2025-02-17 03:38:44 +00:00
Player: Implement PlayerJudgeSlopeSlide
(#135)
This commit is contained in:
parent
a0b8e01c79
commit
e8d3b4d060
@ -27935,10 +27935,10 @@ Address,Quality,Size,Name
|
||||
0x000000710045b0d8,U,000008,_ZNK16PlayerJudgeSleep5judgeEv
|
||||
0x000000710045b0e0,U,000004,_ZN16PlayerJudgeSleep5resetEv
|
||||
0x000000710045b0e4,U,000004,_ZN16PlayerJudgeSleep6updateEv
|
||||
0x000000710045b0e8,U,000032,_ZN21PlayerJudgeSlopeSlideC1EPKN2al9LiveActorEPK11PlayerConstPK11PlayerInputPK19IUsePlayerCollisionPK19IPlayerModelChanger
|
||||
0x000000710045b108,U,000008,_ZN21PlayerJudgeSlopeSlide5resetEv
|
||||
0x000000710045b110,U,000088,_ZN21PlayerJudgeSlopeSlide6updateEv
|
||||
0x000000710045b168,U,000008,_ZNK21PlayerJudgeSlopeSlide5judgeEv
|
||||
0x000000710045b0e8,O,000032,_ZN21PlayerJudgeSlopeSlideC1EPKN2al9LiveActorEPK11PlayerConstPK11PlayerInputPK19IUsePlayerCollisionPK19IPlayerModelChanger
|
||||
0x000000710045b108,O,000008,_ZN21PlayerJudgeSlopeSlide5resetEv
|
||||
0x000000710045b110,O,000088,_ZN21PlayerJudgeSlopeSlide6updateEv
|
||||
0x000000710045b168,O,000008,_ZNK21PlayerJudgeSlopeSlide5judgeEv
|
||||
0x000000710045b170,U,000036,_ZN24PlayerJudgeSlopeSlideRunC1EPKN2al9LiveActorEPK11PlayerConstPK11PlayerInputPK19IUsePlayerCollision
|
||||
0x000000710045b194,U,000008,_ZN24PlayerJudgeSlopeSlideRun5resetEv
|
||||
0x000000710045b19c,U,000252,_ZN24PlayerJudgeSlopeSlideRun6updateEv
|
||||
|
Can't render this file because it is too large.
|
27
src/Player/PlayerJudgeSlopeSlide.cpp
Normal file
27
src/Player/PlayerJudgeSlopeSlide.cpp
Normal file
@ -0,0 +1,27 @@
|
||||
#include "Player/PlayerJudgeSlopeSlide.h"
|
||||
|
||||
#include "Player/IPlayerModelChanger.h"
|
||||
#include "Player/PlayerInput.h"
|
||||
#include "Util/PlayerCollisionUtil.h"
|
||||
|
||||
PlayerJudgeSlopeSlide::PlayerJudgeSlopeSlide(const al::LiveActor* player, const PlayerConst* pConst,
|
||||
const PlayerInput* input,
|
||||
const IUsePlayerCollision* collider,
|
||||
const IPlayerModelChanger* modelChanger)
|
||||
: mPlayer(player), mConst(pConst), mInput(input), mCollider(collider),
|
||||
mModelChanger(modelChanger) {}
|
||||
|
||||
void PlayerJudgeSlopeSlide::reset() {
|
||||
mIsJudge = false;
|
||||
}
|
||||
|
||||
void PlayerJudgeSlopeSlide::update() {
|
||||
mIsJudge = false;
|
||||
if (!mModelChanger->is2DModel() && mInput->isHoldHipDrop() &&
|
||||
rs::isOnGroundSlopeSlideStart(mPlayer, mCollider, mConst))
|
||||
mIsJudge = true;
|
||||
}
|
||||
|
||||
bool PlayerJudgeSlopeSlide::judge() const {
|
||||
return mIsJudge;
|
||||
}
|
29
src/Player/PlayerJudgeSlopeSlide.h
Normal file
29
src/Player/PlayerJudgeSlopeSlide.h
Normal file
@ -0,0 +1,29 @@
|
||||
#pragma once
|
||||
|
||||
#include "Player/IJudge.h"
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
}
|
||||
class PlayerConst;
|
||||
class PlayerInput;
|
||||
class IUsePlayerCollision;
|
||||
class IPlayerModelChanger;
|
||||
|
||||
class PlayerJudgeSlopeSlide : public IJudge {
|
||||
public:
|
||||
PlayerJudgeSlopeSlide(const al::LiveActor* player, const PlayerConst* pConst,
|
||||
const PlayerInput* input, const IUsePlayerCollision* collider,
|
||||
const IPlayerModelChanger* modelChanger);
|
||||
void reset() override;
|
||||
void update() override;
|
||||
bool judge() const override;
|
||||
|
||||
private:
|
||||
const al::LiveActor* mPlayer;
|
||||
const PlayerConst* mConst;
|
||||
const PlayerInput* mInput;
|
||||
const IUsePlayerCollision* mCollider;
|
||||
const IPlayerModelChanger* mModelChanger;
|
||||
bool mIsJudge = false;
|
||||
};
|
@ -28,6 +28,8 @@ const al::CollisionParts* getCollidedCeilingCollisionParts(const IUsePlayerColli
|
||||
|
||||
bool isCollidedGround(const IUsePlayerCollision*);
|
||||
bool isCollidedGroundRunAngle(const al::LiveActor*, const IUsePlayerCollision*, const PlayerConst*);
|
||||
bool isOnGroundSlopeSlideStart(const al::LiveActor*, const IUsePlayerCollision*,
|
||||
const PlayerConst*);
|
||||
bool isOnGroundForceSlideCode(const al::LiveActor*, const IUsePlayerCollision*, const PlayerConst*);
|
||||
bool isOnGroundForceRollingCode(const al::LiveActor*, const IUsePlayerCollision*);
|
||||
bool isOnGroundLessAngle(const al::LiveActor*, const IUsePlayerCollision*, f32);
|
||||
|
Loading…
x
Reference in New Issue
Block a user