mirror of
https://github.com/MonsterDruide1/OdysseyDecomp.git
synced 2024-11-26 23:00:25 +00:00
Update existing headers with LunaKit (#20)
This commit is contained in:
parent
02015fb45b
commit
e1d2971a1e
@ -5,6 +5,7 @@
|
||||
#include <prim/seadDelegate.h>
|
||||
|
||||
#include "Library/Execute/IUseExecutor.h"
|
||||
#include "Library/HostIO/HioNode.h"
|
||||
|
||||
namespace al {
|
||||
class ICollisionPartsKeeper;
|
||||
@ -20,7 +21,7 @@ struct SphereHitInfo;
|
||||
class CollisionParts;
|
||||
class ExecuteDirector;
|
||||
|
||||
class CollisionDirector : public IUseExecutor {
|
||||
class CollisionDirector : public HioNode, public IUseExecutor {
|
||||
public:
|
||||
CollisionDirector(ExecuteDirector* executeDirector);
|
||||
void setPartsKeeper(ICollisionPartsKeeper* partsKeeper);
|
||||
@ -55,8 +56,8 @@ private:
|
||||
CollisionPartsFilterBase* mCollisionPartsFilterBase;
|
||||
TriangleFilterBase* mTriangleFilterBase;
|
||||
sead::PtrArray<ArrowHitInfo>* mStrikeArrowHitInfos;
|
||||
sead::PtrArray<DiskHitInfo>* mStrikeDiskHitInfos;
|
||||
sead::PtrArray<SphereHitInfo>* mStrikeSphereHitInfos;
|
||||
sead::PtrArray<DiskHitInfo>* mStrikeDiskHitInfos;
|
||||
SphereHitInfo* mSphereHitArray;
|
||||
DiskHitInfo* mDiskHitArray;
|
||||
};
|
||||
|
@ -6,6 +6,16 @@
|
||||
|
||||
namespace al {
|
||||
class IUseEffectKeeper;
|
||||
class PtclSystem;
|
||||
|
||||
struct EffectSystemInfo {
|
||||
s32 _0;
|
||||
PtclSystem* mPtclSystem;
|
||||
void* _10;
|
||||
s32 _18;
|
||||
};
|
||||
|
||||
static_assert(sizeof(EffectSystemInfo) == 0x20);
|
||||
|
||||
void emitEffectCurrentPos(IUseEffectKeeper*, const char*);
|
||||
void emitEffect(IUseEffectKeeper*, const char*, const sead::Vector3<f32>*);
|
||||
|
@ -65,14 +65,14 @@ void offAreaTarget(LiveActor* actor) {
|
||||
}
|
||||
|
||||
bool isUpdateMovementEffectAudioCollisionSensor(const LiveActor* actor) {
|
||||
return actor->getFlags()->isUpdateOn;
|
||||
return actor->getFlags()->isUpdateMovementEffectAudioCollisionSensor;
|
||||
}
|
||||
|
||||
void onUpdateMovementEffectAudioCollisionSensor(LiveActor* actor) {
|
||||
actor->getFlags()->isUpdateOn = true;
|
||||
actor->getFlags()->isUpdateMovementEffectAudioCollisionSensor = true;
|
||||
}
|
||||
|
||||
void offUpdateMovementEffectAudioCollisionSensor(LiveActor* actor) {
|
||||
actor->getFlags()->isUpdateOn = false;
|
||||
actor->getFlags()->isUpdateMovementEffectAudioCollisionSensor = false;
|
||||
}
|
||||
} // namespace al
|
||||
|
@ -14,7 +14,7 @@ struct LiveActorFlag {
|
||||
bool isMaterialCodeValid = false;
|
||||
bool isPuddleMaterialValid = false;
|
||||
bool isAreaTargetOn = true;
|
||||
bool isUpdateOn = true;
|
||||
bool isUpdateMovementEffectAudioCollisionSensor = true;
|
||||
|
||||
LiveActorFlag();
|
||||
};
|
||||
|
@ -117,11 +117,11 @@ private:
|
||||
SubActorInfo** mBuffer = nullptr;
|
||||
};
|
||||
|
||||
void isExistSubActorKeeper(const LiveActor*);
|
||||
LiveActor* getSubActor(const LiveActor*, const char*); // NOTE: unknown return type
|
||||
bool isExistSubActorKeeper(const LiveActor*);
|
||||
LiveActor* getSubActor(const LiveActor* actor, const char* subActorName);
|
||||
LiveActor* tryGetSubActor(const LiveActor* actor, const char* subActorName);
|
||||
void getSubActor(const LiveActor*, s32);
|
||||
void getSubActorNum(const LiveActor*);
|
||||
LiveActor* getSubActor(const LiveActor*, s32);
|
||||
s32 getSubActorNum(const LiveActor*);
|
||||
void offSyncClippingSubActor(LiveActor*, const LiveActor*);
|
||||
void offSyncClippingSubActor(LiveActor*, const char*);
|
||||
void offSyncClippingSubActorAll(LiveActor*);
|
||||
|
@ -40,8 +40,8 @@ public:
|
||||
|
||||
private:
|
||||
sead::FixedSafeString<0x40> mName;
|
||||
Scene* mNextScene;
|
||||
Scene* mCurrentScene;
|
||||
Scene* mNextScene;
|
||||
SceneCreator* mSceneCreator;
|
||||
AudioDirector* mAudioDirector;
|
||||
AudioKeeper* mAudioKeeper;
|
||||
|
@ -25,7 +25,7 @@ public:
|
||||
|
||||
const char* mName; // _0
|
||||
s32 _8;
|
||||
f32 _C;
|
||||
f32 _c;
|
||||
f32 _10;
|
||||
f32 _14;
|
||||
f32 _18;
|
||||
|
@ -16,9 +16,9 @@ void BezierCurve::set(const sead::Vector3f& start, const sead::Vector3f& startHa
|
||||
sead::Vector3f diffDiffDiff = diffDiff2 - diffDiff1;
|
||||
|
||||
mStart = start;
|
||||
unk = diff1 * 3;
|
||||
unk2 = diffDiff1 * 3;
|
||||
unk3 = diffDiffDiff;
|
||||
mControlPoint1 = diff1 * 3;
|
||||
mControlPoint2 = diffDiff1 * 3;
|
||||
mControlPoint3 = diffDiffDiff;
|
||||
|
||||
mDistance = calcLength(0.0, 1.0, 10);
|
||||
}
|
||||
@ -47,30 +47,30 @@ void BezierCurve::calcPos(sead::Vector3f* pos, f32 param) const {
|
||||
f32 square = param * param;
|
||||
f32 cube = square * param;
|
||||
|
||||
pos->x = (unk.x * param) + mStart.x;
|
||||
pos->y = (unk.y * param) + mStart.y;
|
||||
pos->z = (unk.z * param) + mStart.z;
|
||||
pos->x = (mControlPoint1.x * param) + mStart.x;
|
||||
pos->y = (mControlPoint1.y * param) + mStart.y;
|
||||
pos->z = (mControlPoint1.z * param) + mStart.z;
|
||||
|
||||
pos->x = (unk2.x * square) + pos->x;
|
||||
pos->y = (unk2.y * square) + pos->y;
|
||||
pos->z = (unk2.z * square) + pos->z;
|
||||
pos->x = (mControlPoint2.x * square) + pos->x;
|
||||
pos->y = (mControlPoint2.y * square) + pos->y;
|
||||
pos->z = (mControlPoint2.z * square) + pos->z;
|
||||
|
||||
pos->x = (unk3.x * cube) + pos->x;
|
||||
pos->y = (unk3.y * cube) + pos->y;
|
||||
pos->z = (unk3.z * cube) + pos->z;
|
||||
pos->x = (mControlPoint3.x * cube) + pos->x;
|
||||
pos->y = (mControlPoint3.y * cube) + pos->y;
|
||||
pos->z = (mControlPoint3.z * cube) + pos->z;
|
||||
}
|
||||
|
||||
void BezierCurve::calcVelocity(sead::Vector3f* vel, f32 param) const {
|
||||
f32 fac1 = param + param;
|
||||
f32 fac2 = 3 * param * param;
|
||||
|
||||
vel->x = (unk2.x * fac1) + unk.x;
|
||||
vel->y = (unk2.y * fac1) + unk.y;
|
||||
vel->z = (unk2.z * fac1) + unk.z;
|
||||
vel->x = (mControlPoint2.x * fac1) + mControlPoint1.x;
|
||||
vel->y = (mControlPoint2.y * fac1) + mControlPoint1.y;
|
||||
vel->z = (mControlPoint2.z * fac1) + mControlPoint1.z;
|
||||
|
||||
vel->x = (unk3.x * fac2) + vel->x;
|
||||
vel->y = (unk3.y * fac2) + vel->y;
|
||||
vel->z = (unk3.z * fac2) + vel->z;
|
||||
vel->x = (mControlPoint3.x * fac2) + vel->x;
|
||||
vel->y = (mControlPoint3.y * fac2) + vel->y;
|
||||
vel->z = (mControlPoint3.z * fac2) + vel->z;
|
||||
}
|
||||
|
||||
f32 BezierCurve::calcDeltaLength(f32 param) const {
|
||||
@ -150,9 +150,9 @@ void BezierCurve::calcStartPos(sead::Vector3f* pos) const {
|
||||
}
|
||||
|
||||
void BezierCurve::calcCtrlPos1(sead::Vector3f* pos) const {
|
||||
pos->x = unk.x * 0.333333f;
|
||||
pos->y = unk.y * 0.333333f;
|
||||
pos->z = unk.z * 0.333333f;
|
||||
pos->x = mControlPoint1.x * 0.333333f;
|
||||
pos->y = mControlPoint1.y * 0.333333f;
|
||||
pos->z = mControlPoint1.z * 0.333333f;
|
||||
|
||||
pos->x = pos->x + mStart.x;
|
||||
pos->y = pos->y + mStart.y;
|
||||
@ -160,13 +160,13 @@ void BezierCurve::calcCtrlPos1(sead::Vector3f* pos) const {
|
||||
}
|
||||
|
||||
void BezierCurve::calcCtrlPos2(sead::Vector3f* pos) const {
|
||||
pos->x = unk2.x * 0.333333f;
|
||||
pos->y = unk2.y * 0.333333f;
|
||||
pos->z = unk2.z * 0.333333f;
|
||||
pos->x = mControlPoint2.x * 0.333333f;
|
||||
pos->y = mControlPoint2.y * 0.333333f;
|
||||
pos->z = mControlPoint2.z * 0.333333f;
|
||||
|
||||
pos->x = (unk.x * 0.6666667f) + pos->x;
|
||||
pos->y = (unk.y * 0.6666667f) + pos->y;
|
||||
pos->z = (unk.z * 0.6666667f) + pos->z;
|
||||
pos->x = (mControlPoint1.x * 0.6666667f) + pos->x;
|
||||
pos->y = (mControlPoint1.y * 0.6666667f) + pos->y;
|
||||
pos->z = (mControlPoint1.z * 0.6666667f) + pos->z;
|
||||
|
||||
pos->x = pos->x + mStart.x;
|
||||
pos->y = pos->y + mStart.y;
|
||||
@ -174,17 +174,17 @@ void BezierCurve::calcCtrlPos2(sead::Vector3f* pos) const {
|
||||
}
|
||||
|
||||
void BezierCurve::calcEndPos(sead::Vector3f* pos) const {
|
||||
pos->x = mStart.x + unk.x;
|
||||
pos->y = mStart.y + unk.y;
|
||||
pos->z = mStart.z + unk.z;
|
||||
pos->x = mStart.x + mControlPoint1.x;
|
||||
pos->y = mStart.y + mControlPoint1.y;
|
||||
pos->z = mStart.z + mControlPoint1.z;
|
||||
|
||||
pos->x = pos->x + unk2.x;
|
||||
pos->y = pos->y + unk2.y;
|
||||
pos->z = pos->z + unk2.z;
|
||||
pos->x = pos->x + mControlPoint2.x;
|
||||
pos->y = pos->y + mControlPoint2.y;
|
||||
pos->z = pos->z + mControlPoint2.z;
|
||||
|
||||
pos->x = pos->x + unk3.x;
|
||||
pos->y = pos->y + unk3.y;
|
||||
pos->z = pos->z + unk3.z;
|
||||
pos->x = pos->x + mControlPoint3.x;
|
||||
pos->y = pos->y + mControlPoint3.y;
|
||||
pos->z = pos->z + mControlPoint3.z;
|
||||
}
|
||||
|
||||
} // namespace al
|
||||
|
@ -27,9 +27,9 @@ public:
|
||||
|
||||
private:
|
||||
sead::Vector3f mStart = sead::Vector3f::zero;
|
||||
sead::Vector3f unk = sead::Vector3f::zero;
|
||||
sead::Vector3f unk2 = sead::Vector3f::zero;
|
||||
sead::Vector3f unk3 = sead::Vector3f::zero;
|
||||
sead::Vector3f mControlPoint1 = sead::Vector3f::zero;
|
||||
sead::Vector3f mControlPoint2 = sead::Vector3f::zero;
|
||||
sead::Vector3f mControlPoint3 = sead::Vector3f::zero; // maybe end point?
|
||||
f32 mDistance = 0;
|
||||
};
|
||||
|
||||
|
@ -1,10 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
namespace al {
|
||||
class PlayerHackKeeper;
|
||||
|
||||
class IUsePlayerHack {
|
||||
public:
|
||||
virtual PlayerHackKeeper* getPlayerHackKeeper() const = 0;
|
||||
};
|
||||
} // namespace al
|
||||
|
@ -10,7 +10,7 @@ IUsePlayerCollision* PlayerActorBase::getPlayerCollision() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
al::PlayerHackKeeper* PlayerActorBase::getPlayerHackKeeper() const {
|
||||
PlayerHackKeeper* PlayerActorBase::getPlayerHackKeeper() const {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -48,9 +48,11 @@ void PlayerActorBase::startDemoKeepCarry() {}
|
||||
|
||||
void PlayerActorBase::endDemoKeepCarry() {}
|
||||
|
||||
void PlayerActorBase::getDemoActor() {}
|
||||
al::DemoActor* PlayerActorBase::getDemoActor() {
|
||||
return reinterpret_cast<al::DemoActor*>(this);
|
||||
}
|
||||
|
||||
void* PlayerActorBase::getDemoAnimator() {
|
||||
PlayerAnimator* PlayerActorBase::getDemoAnimator() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
@ -58,7 +60,7 @@ bool PlayerActorBase::isDamageStopDemo() const {
|
||||
return false;
|
||||
}
|
||||
|
||||
void* PlayerActorBase::getPlayerPuppet() {
|
||||
PlayerPuppet* PlayerActorBase::getPlayerPuppet() {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
|
@ -4,21 +4,29 @@
|
||||
|
||||
#include "Player/IUsePlayerHack.h"
|
||||
|
||||
namespace al {
|
||||
class DemoActor;
|
||||
}
|
||||
|
||||
class IUsePlayerCollision;
|
||||
class PlayerAnimator;
|
||||
class PlayerInfo;
|
||||
class PlayerInitInfo;
|
||||
class PlayerHackKeeper;
|
||||
class PlayerPuppet;
|
||||
|
||||
class PlayerActorBase : public al::LiveActor, public al::IUsePlayerHack {
|
||||
class PlayerActorBase : public al::LiveActor, public IUsePlayerHack {
|
||||
public:
|
||||
PlayerActorBase(const char*);
|
||||
|
||||
virtual void init(const al::ActorInitInfo&) override;
|
||||
void init(const al::ActorInitInfo&) override;
|
||||
void movement() override;
|
||||
PlayerHackKeeper* getPlayerHackKeeper() const override;
|
||||
|
||||
virtual void initPlayer(const al::ActorInitInfo&, const PlayerInitInfo&);
|
||||
virtual u32 getPortNo() const;
|
||||
virtual void* getViewMtx() const; // NOTE: unknown return type
|
||||
virtual IUsePlayerCollision* getPlayerCollision() const;
|
||||
virtual al::PlayerHackKeeper* getPlayerHackKeeper() const override;
|
||||
virtual bool isEnableDemo();
|
||||
virtual void startDemo();
|
||||
virtual void endDemo();
|
||||
@ -35,17 +43,16 @@ public:
|
||||
virtual void endDemoKeepBind();
|
||||
virtual void startDemoKeepCarry();
|
||||
virtual void endDemoKeepCarry();
|
||||
virtual void getDemoActor();
|
||||
virtual void* getDemoAnimator(); // NOTE: unknown return type
|
||||
virtual bool isDamageStopDemo() const; // NOTE: unknown return type
|
||||
virtual void* getPlayerPuppet(); // NOTE: unknown return type
|
||||
virtual PlayerInfo* getPlayerInfo() const; // NOTE: unknown return type
|
||||
virtual void movement() override;
|
||||
virtual al::DemoActor* getDemoActor();
|
||||
virtual PlayerAnimator* getDemoAnimator();
|
||||
virtual bool isDamageStopDemo() const;
|
||||
virtual PlayerPuppet* getPlayerPuppet();
|
||||
virtual PlayerInfo* getPlayerInfo() const;
|
||||
virtual bool checkDeathArea();
|
||||
virtual void sendCollisionMsg();
|
||||
virtual bool receivePushMsg(const al::SensorMsg*, al::HitSensor*, al::HitSensor*);
|
||||
virtual bool receivePushMsg(const al::SensorMsg*, al::HitSensor*, al::HitSensor*, f32);
|
||||
|
||||
private:
|
||||
void* mViewMtx = nullptr; // NOTE: unknown type
|
||||
sead::Matrix34f* mViewMtx = nullptr;
|
||||
u32 mPortNo = 0;
|
||||
};
|
||||
|
@ -9,6 +9,7 @@ class HitSensor;
|
||||
class WaterSurfaceFinder;
|
||||
} // namespace al
|
||||
|
||||
class ComboCounter;
|
||||
class PlayerInfo;
|
||||
class PlayerConst;
|
||||
class PlayerInput;
|
||||
@ -58,6 +59,7 @@ class GaugeAir;
|
||||
class WaterSurfaceShadow;
|
||||
class WorldEndBorderKeeper;
|
||||
class PlayerSeCtrl;
|
||||
|
||||
class PlayerStateWait;
|
||||
class PlayerStateSquat;
|
||||
class PlayerStateRunHakoniwa2D3D;
|
||||
@ -87,6 +89,7 @@ class PlayerStateHack;
|
||||
class PlayerStateEndHack;
|
||||
class PlayerStateCameraSubjective;
|
||||
class PlayerStateAbyss;
|
||||
|
||||
class PlayerJudgeAirForceCount;
|
||||
class PlayerJudgeCameraSubjective;
|
||||
class PlayerJudgeCapCatchPop;
|
||||
@ -130,128 +133,212 @@ class PlayerJudgeWallKeep;
|
||||
|
||||
class PlayerActorHakoniwa : public PlayerActorBase, public IUseDimension {
|
||||
public:
|
||||
PlayerInfo* mPlayerInfo;
|
||||
PlayerConst* mPlayerConst;
|
||||
PlayerInput* mPlayerInput;
|
||||
PlayerTrigger* mPlayerTrigger;
|
||||
PlayerActorHakoniwa(const char*);
|
||||
void initAfterPlacement() override;
|
||||
void movement() override;
|
||||
void attackSensor(al::HitSensor*, al::HitSensor*) override;
|
||||
bool receiveMsg(const al::SensorMsg*, al::HitSensor*, al::HitSensor*) override;
|
||||
void control() override;
|
||||
void updateCollider() override;
|
||||
void initPlayer(const al::ActorInitInfo&, const PlayerInitInfo&) override;
|
||||
u32 getPortNo() const override;
|
||||
IUsePlayerCollision* getPlayerCollision() const override;
|
||||
PlayerHackKeeper* getPlayerHackKeeper() const override;
|
||||
bool isEnableDemo() override;
|
||||
void startDemo() override;
|
||||
void endDemo() override;
|
||||
void startDemoPuppetable() override;
|
||||
void endDemoPuppetable() override;
|
||||
void startDemoShineGet() override;
|
||||
void endDemoShineGet() override;
|
||||
void startDemoMainShineGet() override;
|
||||
void endDemoMainShineGet() override;
|
||||
void startDemoHack() override;
|
||||
void endDemoHack() override;
|
||||
void startDemoKeepBind() override;
|
||||
void noticeDemoKeepBindExecute() override;
|
||||
void endDemoKeepBind() override;
|
||||
void startDemoKeepCarry() override;
|
||||
void endDemoKeepCarry() override;
|
||||
al::DemoActor* getDemoActor() override;
|
||||
PlayerAnimator* getDemoAnimator() override;
|
||||
bool isDamageStopDemo() const override;
|
||||
PlayerPuppet* getPlayerPuppet() override;
|
||||
PlayerInfo* getPlayerInfo() const override;
|
||||
bool checkDeathArea() override;
|
||||
void sendCollisionMsg() override;
|
||||
bool receivePushMsg(const al::SensorMsg*, al::HitSensor*, al::HitSensor*, f32) override;
|
||||
ActorDimensionKeeper* getActorDimensionKeeper() const override;
|
||||
|
||||
void updateModelShadowDropLength();
|
||||
void executeAfterCapTarget();
|
||||
void syncSensorAndCollision();
|
||||
void checkDamageFromCollision();
|
||||
void executePreMovementNerveChange();
|
||||
void updateCarry();
|
||||
void setNerveOnGround();
|
||||
void startPlayerPuppet();
|
||||
void cancelHackPlayerPuppetDemo();
|
||||
void endPlayerPuppet();
|
||||
void exeWait();
|
||||
bool tryActionCapReturn();
|
||||
bool tryActionCapSpinAttack();
|
||||
void exeSquat();
|
||||
bool tryActionSeparateCapThrow();
|
||||
void exeRun();
|
||||
void exeSlope();
|
||||
void exeRolling();
|
||||
void exeSpinCap();
|
||||
bool tryChangeNerveFromAir();
|
||||
bool tryActionCapSpinAttackMiss();
|
||||
void exeJump();
|
||||
void exeCapCatchPop();
|
||||
void exeWallAir();
|
||||
void exeWallCatch();
|
||||
void exeGrabCeil();
|
||||
void exePoleClimb();
|
||||
void exeHipDrop();
|
||||
void exeHeadSliding();
|
||||
void exeLongJump();
|
||||
void exeFall();
|
||||
void exeSandSink();
|
||||
void exeSandGeyser();
|
||||
void exeRise();
|
||||
void exeSwim();
|
||||
void exeDamage();
|
||||
void exeDamageSwim();
|
||||
void exeDamageFire();
|
||||
void exePress();
|
||||
void exeHack();
|
||||
void exeEndHack();
|
||||
void exeBind();
|
||||
bool tryActionCapSpinAttackBindEnd();
|
||||
void exeDemo();
|
||||
void exeCamera();
|
||||
void exeAbyss();
|
||||
void exeDead();
|
||||
bool tryActionCapSpinAttackImpl(bool);
|
||||
|
||||
private:
|
||||
PlayerInfo* mInfo;
|
||||
PlayerConst* mConst;
|
||||
PlayerInput* mInput;
|
||||
PlayerTrigger* mTrigger;
|
||||
HackCap* mHackCap;
|
||||
ActorDimensionKeeper* mActorDimensionKeeper;
|
||||
PlayerModelHolder* mPlayerModelHolder;
|
||||
PlayerModelChangerHakoniwa* mPlayerModelChangerHakoniwa;
|
||||
PlayerAnimator* mPlayerAnimator;
|
||||
PlayerColliderHakoniwa* mPlayerColliderHakoniwa;
|
||||
PlayerPuppet* mPlayerPuppet;
|
||||
PlayerAreaChecker* mPlayerAreaChecker;
|
||||
ActorDimensionKeeper* mDimensionKeeper;
|
||||
PlayerModelHolder* mModelHolder;
|
||||
PlayerModelChangerHakoniwa* mModelChanger;
|
||||
PlayerAnimator* mAnimator;
|
||||
PlayerColliderHakoniwa* mCollider;
|
||||
PlayerPuppet* mPuppet;
|
||||
PlayerAreaChecker* mAreaChecker;
|
||||
al::WaterSurfaceFinder* mWaterSurfaceFinder;
|
||||
PlayerOxygen* mPlayerOxygen;
|
||||
PlayerDamageKeeper* mPlayerDamageKeeper;
|
||||
PlayerDemoActionFlag* mPlayerDemoActionFlag;
|
||||
PlayerCapActionHistory* mPlayerCapActionHistory;
|
||||
PlayerCapManHeroEyesControl* mPlayerCapManHeroEyesControl;
|
||||
PlayerContinuousJump* mPlayerContinuousJump;
|
||||
PlayerContinuousLongJump* mPlayerContinuousLongJump;
|
||||
PlayerCounterAfterUpperPunch* mPlayerCounterAfterUpperPunch;
|
||||
PlayerCounterForceRun* mPlayerCounterForceRun;
|
||||
PlayerCounterIceWater* mPlayerCounterIceWater;
|
||||
PlayerCounterQuickTurnJump* mPlayerCounterQuickTurnJump;
|
||||
PlayerWallActionHistory* mPlayerWallActionHistory;
|
||||
PlayerBindKeeper* mPlayerBindKeeper;
|
||||
PlayerCarryKeeper* mPlayerCarryKeeper;
|
||||
PlayerEquipmentUser* mPlayerEquipmentUser;
|
||||
PlayerHackKeeper* mPlayerHackKeeper;
|
||||
PlayerFormSensorCollisionArranger* mPlayerFormSensorCollisionArranger;
|
||||
PlayerJumpMessageRequest* mPlayerJumpMessageRequest;
|
||||
PlayerSandSinkAffect* mPlayerSandSinkAffect;
|
||||
PlayerSpinCapAttack* mPlayerSpinCapAttack;
|
||||
PlayerActionDiveInWater* mPlayerActionDiveInWater;
|
||||
PlayerEffect* mPlayerEffect;
|
||||
PlayerEyeSensorHitHolder* mPlayerEyeSensorHitHolder;
|
||||
PlayerPushReceiver* mPlayerPushReceiver;
|
||||
PlayerHitPush* mPlayerHitPush;
|
||||
PlayerExternalVelocity* mPlayerExternalVelocity;
|
||||
PlayerJointControlKeeper* mPlayerJointControlKeeper;
|
||||
PlayerPainPartsKeeper* mPlayerPainPartsKeeper;
|
||||
PlayerRecoverySafetyPoint* mPlayerRecoverySafetyPoint;
|
||||
PlayerRippleGenerator* mPlayerRippleGenerator;
|
||||
PlayerSeparateCapFlag* mPlayerSeparateCapFlag;
|
||||
PlayerWetControl* mPlayerWetControl;
|
||||
PlayerStainControl* mPlayerStainControl;
|
||||
PlayerOxygen* mOxygen;
|
||||
PlayerDamageKeeper* mDamageKeeper;
|
||||
PlayerDemoActionFlag* mDemoActionFlag;
|
||||
PlayerCapActionHistory* mCapActionHistory;
|
||||
PlayerCapManHeroEyesControl* mCapManHeroEyesControl;
|
||||
PlayerContinuousJump* mContinuousJump;
|
||||
PlayerContinuousLongJump* mContinuousLongJump;
|
||||
PlayerCounterAfterUpperPunch* mCounterAfterUpperPunch;
|
||||
PlayerCounterForceRun* mCounterForceRun;
|
||||
PlayerCounterIceWater* mCounterIceWater;
|
||||
PlayerCounterQuickTurnJump* mCounterQuickTurnJump;
|
||||
PlayerWallActionHistory* mWallActionHistory;
|
||||
PlayerBindKeeper* mBindKeeper;
|
||||
PlayerCarryKeeper* mCarryKeeper;
|
||||
PlayerEquipmentUser* mEquipmentUser;
|
||||
PlayerHackKeeper* mHackKeeper;
|
||||
PlayerFormSensorCollisionArranger* mFormSensorCollisionArranger;
|
||||
PlayerJumpMessageRequest* mJumpMessageRequest;
|
||||
PlayerSandSinkAffect* mSandSinkAffect;
|
||||
PlayerSpinCapAttack* mSpinCapAttack;
|
||||
PlayerActionDiveInWater* mActionDiveInWater;
|
||||
PlayerEffect* mEffect;
|
||||
PlayerEyeSensorHitHolder* mEyeSensorHitHolder;
|
||||
PlayerPushReceiver* mPushReceiver;
|
||||
PlayerHitPush* mHitPush;
|
||||
PlayerExternalVelocity* mExternalVelocity;
|
||||
PlayerJointControlKeeper* mJointControlKeeper;
|
||||
PlayerPainPartsKeeper* mPainPartsKeeper;
|
||||
PlayerRecoverySafetyPoint* mRecoverySafetyPoint;
|
||||
PlayerRippleGenerator* mRippleGenerator;
|
||||
PlayerSeparateCapFlag* mSeparateCapFlag;
|
||||
PlayerWetControl* mWetControl;
|
||||
PlayerStainControl* mStainControl;
|
||||
al::FootPrintHolder* mFootPrintHolder;
|
||||
GaugeAir* mGaugeAir;
|
||||
WaterSurfaceShadow* mWaterSurfaceShadow;
|
||||
WorldEndBorderKeeper* mWorldEndBorderKeeper;
|
||||
void* gap;
|
||||
PlayerSeCtrl* mPlayerSeCtrl;
|
||||
ComboCounter* mComboCounter;
|
||||
PlayerSeCtrl* mSeCtrl;
|
||||
al::HitSensor* mBodyHitSensor;
|
||||
bool mIsLongShadow;
|
||||
PlayerStateWait* mPlayerStateWait;
|
||||
PlayerStateSquat* mPlayerStateSquat;
|
||||
PlayerStateRunHakoniwa2D3D* mPlayerStateRunHakoniwa2D3D;
|
||||
PlayerStateSlope* mPlayerStateSlope;
|
||||
PlayerStateRolling* mPlayerStateRolling;
|
||||
PlayerStateSpinCap* mPlayerStateSpinCap;
|
||||
PlayerStateJump* mPlayerStateJump;
|
||||
PlayerStateCapCatchPop* mPlayerStateCapCatchPop;
|
||||
PlayerStateWallAir* mPlayerStateWallAir;
|
||||
PlayerStateWallCatch* mPlayerStateWallCatch;
|
||||
PlayerStateGrabCeil* mPlayerStateGrabCeil;
|
||||
PlayerStatePoleClimb* mPlayerStatePoleClimb;
|
||||
PlayerStateHipDrop* mPlayerStateHipDrop;
|
||||
PlayerStateHeadSliding* mPlayerStateHeadSliding;
|
||||
PlayerStateLongJump* mPlayerStateLongJump;
|
||||
PlayerStateFallHakoniwa* mPlayerStateFallHakoniwa;
|
||||
PlayerStateSandSink* mPlayerStateSandSink;
|
||||
PlayerStateWait* mStateWait;
|
||||
PlayerStateSquat* mStateSquat;
|
||||
PlayerStateRunHakoniwa2D3D* mStateRunHakoniwa2D3D;
|
||||
PlayerStateSlope* mStateSlope;
|
||||
PlayerStateRolling* mStateRolling;
|
||||
PlayerStateSpinCap* mStateSpinCap;
|
||||
PlayerStateJump* mStateJump;
|
||||
PlayerStateCapCatchPop* mStateCapCatchPop;
|
||||
PlayerStateWallAir* mStateWallAir;
|
||||
PlayerStateWallCatch* mStateWallCatch;
|
||||
PlayerStateGrabCeil* mStateGrabCeil;
|
||||
PlayerStatePoleClimb* mStatePoleClimb;
|
||||
PlayerStateHipDrop* mStateHipDrop;
|
||||
PlayerStateHeadSliding* mStateHeadSliding;
|
||||
PlayerStateLongJump* mStateLongJump;
|
||||
PlayerStateFallHakoniwa* mStateFallHakoniwa;
|
||||
PlayerStateSandSink* mStateSandSink;
|
||||
ActorStateSandGeyser* mActorStateSandGeyser;
|
||||
PlayerStateRise* mPlayerStateRise;
|
||||
PlayerStateSwim* mPlayerStateSwim;
|
||||
PlayerStateDamageLife* mPlayerStateDamageLife;
|
||||
PlayerStateDamageSwim* mPlayerStateDamageSwim;
|
||||
PlayerStateDamageFire* mPlayerStateDamageFire;
|
||||
PlayerStatePress* mPlayerStatePress;
|
||||
PlayerStateBind* mPlayerStateBind;
|
||||
PlayerStateHack* mPlayerStateHack;
|
||||
PlayerStateEndHack* mPlayerStateEndHack;
|
||||
PlayerStateCameraSubjective* mPlayerStateCameraSubjective;
|
||||
PlayerStateAbyss* mPlayerStateAbyss;
|
||||
PlayerJudgeAirForceCount* mPlayerJudgeAirForceCount;
|
||||
PlayerJudgeCameraSubjective* mPlayerJudgeCameraSubjective;
|
||||
PlayerJudgeCapCatchPop* mPlayerJudgeCapCatchPop;
|
||||
PlayerJudgeDeadWipeStart* mPlayerJudgeDeadWipeStart;
|
||||
PlayerJudgeDirectRolling* mPlayerJudgeDirectRolling;
|
||||
PlayerJudgeEnableStandUp* mPlayerJudgeEnableStandUp;
|
||||
PlayerJudgeForceLand* mPlayerJudgeForceLand;
|
||||
PlayerJudgeForceSlopeSlide* mPlayerJudgeForceSlopeSlide;
|
||||
PlayerJudgeForceRolling* mPlayerJudgeForceRolling;
|
||||
PlayerJudgeGrabCeil* mPlayerJudgeGrabCeil;
|
||||
PlayerJudgeInWater* mPlayerJudgeInWater1;
|
||||
PlayerJudgeInWater* mPlayerJudgeInWater2;
|
||||
PlayerJudgeInWater* mPlayerJudgeInWater3;
|
||||
PlayerJudgeInWater* mPlayerJudgeInWater4;
|
||||
PlayerJudgeInvalidateInputFall* mPlayerJudgeInvalidateInputFall;
|
||||
PlayerJudgeLongFall* mPlayerJudgeLongFall;
|
||||
PlayerJudgeOutInWater* mPlayerJudgeOutInWater;
|
||||
PlayerJudgeRecoveryLifeFast* mPlayerJudgeRecoveryLifeFast;
|
||||
PlayerJudgeSandSink* mPlayerJudgeSandSink;
|
||||
PlayerJudgeSpeedCheckFall* mPlayerJudgeSpeedCheckFall;
|
||||
PlayerJudgeStartHipDrop* mPlayerJudgeStartHipDrop;
|
||||
PlayerJudgeStartRise* mPlayerJudgeStartRise;
|
||||
PlayerJudgeStartRolling* mPlayerJudgeStartRolling;
|
||||
PlayerJudgeStartRun* mPlayerJudgeStartRun;
|
||||
PlayerJudgeStartSquat* mPlayerJudgeStartSquat;
|
||||
PlayerJudgeStartWaterSurfaceRun* mPlayerJudgeStartWaterSurfaceRun;
|
||||
PlayerJudgeSlopeSlide* mPlayerJudgeSlopeSlide;
|
||||
PlayerJudgePoleClimb* mPlayerJudgePoleClimb;
|
||||
PlayerJudgePreInputJump* mPlayerJudgePreInputJump;
|
||||
PlayerJudgePreInputCapThrow* mPlayerJudgePreInputCapThrow;
|
||||
PlayerJudgePreInputHackAction* mPlayerJudgePreInputHackAction;
|
||||
PlayerStateRise* mStateRise;
|
||||
PlayerStateSwim* mStateSwim;
|
||||
PlayerStateDamageLife* mStateDamageLife;
|
||||
PlayerStateDamageSwim* mStateDamageSwim;
|
||||
PlayerStateDamageFire* mStateDamageFire;
|
||||
PlayerStatePress* mStatePress;
|
||||
PlayerStateBind* mStateBind;
|
||||
PlayerStateHack* mStateHack;
|
||||
PlayerStateEndHack* mStateEndHack;
|
||||
PlayerStateCameraSubjective* mStateCameraSubjective;
|
||||
PlayerStateAbyss* mStateAbyss;
|
||||
PlayerJudgeAirForceCount* mJudgeAirForceCount;
|
||||
PlayerJudgeCameraSubjective* mJudgeCameraSubjective;
|
||||
PlayerJudgeCapCatchPop* mJudgeCapCatchPop;
|
||||
PlayerJudgeDeadWipeStart* mJudgeDeadWipeStart;
|
||||
PlayerJudgeDirectRolling* mJudgeDirectRolling;
|
||||
PlayerJudgeEnableStandUp* mJudgeEnableStandUp;
|
||||
PlayerJudgeForceLand* mJudgeForceLand;
|
||||
PlayerJudgeForceSlopeSlide* mJudgeForceSlopeSlide;
|
||||
PlayerJudgeForceRolling* mJudgeForceRolling;
|
||||
PlayerJudgeGrabCeil* mJudgeGrabCeil;
|
||||
PlayerJudgeInWater* mJudgeInWater[4];
|
||||
PlayerJudgeInvalidateInputFall* mJudgeInvalidateInputFall;
|
||||
PlayerJudgeLongFall* mJudgeLongFall;
|
||||
PlayerJudgeOutInWater* mJudgeOutInWater;
|
||||
PlayerJudgeRecoveryLifeFast* mJudgeRecoveryLifeFast;
|
||||
PlayerJudgeSandSink* mJudgeSandSink;
|
||||
PlayerJudgeSpeedCheckFall* mJudgeSpeedCheckFall;
|
||||
PlayerJudgeStartHipDrop* mJudgeStartHipDrop;
|
||||
PlayerJudgeStartRise* mJudgeStartRise;
|
||||
PlayerJudgeStartRolling* mJudgeStartRolling;
|
||||
PlayerJudgeStartRun* mJudgeStartRun;
|
||||
PlayerJudgeStartSquat* mJudgeStartSquat;
|
||||
PlayerJudgeStartWaterSurfaceRun* mJudgeStartWaterSurfaceRun;
|
||||
PlayerJudgeSlopeSlide* mJudgeSlopeSlide;
|
||||
PlayerJudgePoleClimb* mJudgePoleClimb;
|
||||
PlayerJudgePreInputJump* mJudgePreInputJump;
|
||||
PlayerJudgePreInputCapThrow* mJudgePreInputCapThrow;
|
||||
PlayerJudgePreInputHackAction* mJudgePreInputHackAction;
|
||||
HackCapJudgePreInputHoveringJump* mHackCapJudgePreInputHoveringJump;
|
||||
HackCapJudgePreInputSeparateThrow* mHackCapJudgePreInputSeparateThrow;
|
||||
HackCapJudgePreInputSeparateJump* mHackCapJudgePreInputSeparateJump;
|
||||
PlayerJudgeWallCatch* mPlayerJudgeWallCatch;
|
||||
PlayerJudgeWallCatchInputDir* mPlayerJudgeWallCatchInputDir;
|
||||
PlayerJudgeWallHitDown* mPlayerJudgeWallHitDown;
|
||||
PlayerJudgeWallHitDownForceRun* mPlayerJudgeWallHitDownForceRun;
|
||||
PlayerJudgeWallHitDownRolling* mPlayerJudgeWallHitDownRolling;
|
||||
PlayerJudgeWallKeep* mPlayerJudgeWallKeep;
|
||||
void* gap_2;
|
||||
PlayerJudgeWallCatch* mJudgeWallCatch;
|
||||
PlayerJudgeWallCatchInputDir* mJudgeWallCatchInputDir;
|
||||
PlayerJudgeWallHitDown* mJudgeWallHitDown;
|
||||
PlayerJudgeWallHitDownForceRun* mJudgeWallHitDownForceRun;
|
||||
PlayerJudgeWallHitDownRolling* mJudgeWallHitDownRolling;
|
||||
PlayerJudgeWallKeep* mJudgeWallKeep;
|
||||
bool mIsReduceOxygen;
|
||||
};
|
||||
|
@ -1,6 +1,13 @@
|
||||
#pragma once
|
||||
|
||||
#include <prim/seadSafeString.h>
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
}
|
||||
|
||||
class PlayerAnimFrameCtrl {
|
||||
public:
|
||||
const char* getActionName() const;
|
||||
void startAction(al::LiveActor* actor, const sead::SafeString& actionName);
|
||||
};
|
||||
|
@ -4,16 +4,52 @@
|
||||
|
||||
#include "Player/PlayerAnimFrameCtrl.h"
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
}
|
||||
class PlayerModelHolder;
|
||||
|
||||
class PlayerAnimator {
|
||||
public:
|
||||
void startAnim(const sead::SafeStringBase<char>& animName);
|
||||
void startAnim(const sead::SafeString& animName);
|
||||
void startSubAnim(const sead::SafeString& animName);
|
||||
void startSubAnimOnlyAir(const sead::SafeString& animName);
|
||||
void startUpperBodyAnimAndHeadVisKeep(const sead::SafeString& animName);
|
||||
void startAnimDead(); // chooses one of the 5 death animations and starts that animation
|
||||
void endSubAnim();
|
||||
|
||||
bool isAnim(const sead::SafeStringBase<char>& animName) const;
|
||||
void updateAnimFrame();
|
||||
void clearUpperBodyAnim();
|
||||
|
||||
bool isAnim(const sead::SafeString& animName) const;
|
||||
bool isSubAnim(const sead::SafeString& subAnimName) const;
|
||||
bool isSubAnimEnd() const;
|
||||
bool isUpperBodyAnimAttached() const;
|
||||
|
||||
f32 getAnimFrame() const;
|
||||
f32 getAnimFrameMax() const;
|
||||
f32 getAnimFrameRate() const;
|
||||
f32 getSubAnimFrame() const;
|
||||
f32 getSubAnimFrameMax() const;
|
||||
f32 getBlendWeight(s32 index);
|
||||
|
||||
unsigned char padding_18[0x18];
|
||||
void setAnimRate(f32);
|
||||
void setAnimRateCommon(f32);
|
||||
void setAnimFrame(f32);
|
||||
void setAnimFrameCommon(f32);
|
||||
void setSubAnimFrame(f32);
|
||||
void setSubAnimRate(f32);
|
||||
void setBlendWeight(f32, f32, f32, f32, f32, f32);
|
||||
void setModelAlpha(f32);
|
||||
void setPartsAnimRate(f32, const char*);
|
||||
void setPartsAnimFrame(f32, const char*);
|
||||
|
||||
private:
|
||||
PlayerModelHolder* mModelHolder;
|
||||
al::LiveActor* mPlayerDeco;
|
||||
void* _10;
|
||||
PlayerAnimFrameCtrl* mAnimFrameCtrl;
|
||||
sead::SafeString mCurAnim;
|
||||
unsigned char padding_78[0x78 - 0x30];
|
||||
sead::SafeString mCurSubAnim;
|
||||
};
|
||||
|
@ -4,100 +4,98 @@
|
||||
#include "Library/Math/MathUtil.h"
|
||||
|
||||
PlayerHeadCostumeInfo::PlayerHeadCostumeInfo(const char* a1) {
|
||||
_0 = a1;
|
||||
mCostumeName = a1;
|
||||
}
|
||||
|
||||
PlayerBodyCostumeInfo::PlayerBodyCostumeInfo(const char* a1) {
|
||||
_0 = a1;
|
||||
mCostumeName = a1;
|
||||
}
|
||||
|
||||
PlayerCostumeInfo::PlayerCostumeInfo() = default;
|
||||
|
||||
void PlayerCostumeInfo::init(const PlayerBodyCostumeInfo* body, const PlayerHeadCostumeInfo* head) {
|
||||
mPlayerBodyCostumeInfo = body;
|
||||
mPlayerHeadCostumeInfo = head;
|
||||
mBodyInfo = body;
|
||||
mHeadInfo = head;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isEnableBigEar() const {
|
||||
return mPlayerBodyCostumeInfo->mIsBigEar && mPlayerHeadCostumeInfo->mIsEnableBigEar;
|
||||
return mBodyInfo->mIsBigEar && mHeadInfo->mIsEnableBigEar;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isEnableHairNoCap() const {
|
||||
return mPlayerHeadCostumeInfo->mIsEnableHairNoCap &&
|
||||
(mPlayerBodyCostumeInfo->mIsUseBodyHair && mPlayerBodyCostumeInfo->mIsExistHairNoCap);
|
||||
return mHeadInfo->mIsEnableHairNoCap &&
|
||||
(mBodyInfo->mIsUseBodyHair && mBodyInfo->mIsExistHairNoCap);
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isEnableCostume2D() const {
|
||||
if (mPlayerBodyCostumeInfo->mIsNoPairHead)
|
||||
return al::isEqualString(mPlayerHeadCostumeInfo->_0, "Mario");
|
||||
return al::isEqualString(mPlayerBodyCostumeInfo->_0, mPlayerHeadCostumeInfo->_0);
|
||||
if (mBodyInfo->mIsNoPairHead)
|
||||
return al::isEqualString(mHeadInfo->mCostumeName, "Mario");
|
||||
return al::isEqualString(mBodyInfo->mCostumeName, mHeadInfo->mCostumeName);
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isNeedShrinkNose() const {
|
||||
return mPlayerHeadCostumeInfo->mIsShrinkNose;
|
||||
return mHeadInfo->mIsShrinkNose;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isNeedBodyHair() const {
|
||||
if (!mPlayerBodyCostumeInfo->mIsUseBodyHair ||
|
||||
(mPlayerBodyCostumeInfo->mIsMario64 && mPlayerHeadCostumeInfo->mIsMario64))
|
||||
if (!mBodyInfo->mIsUseBodyHair || (mBodyInfo->mIsMario64 && mHeadInfo->mIsMario64))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isNeedSyncBodyHair() const {
|
||||
#ifdef MATCHING_HACK_NX_CLANG
|
||||
s64 v1 = *(s64*)&mPlayerBodyCostumeInfo->mIsUseBodyHair;
|
||||
s64 v1 = *(s64*)&mBodyInfo->mIsUseBodyHair;
|
||||
if (!((char)v1))
|
||||
return false;
|
||||
if ((v1 & 0xFF00000000LL) && mPlayerHeadCostumeInfo->mIsMario64)
|
||||
if ((v1 & 0xFF00000000LL) && mHeadInfo->mIsMario64)
|
||||
return false;
|
||||
return !mPlayerBodyCostumeInfo->mIsMario64;
|
||||
return !mBodyInfo->mIsMario64;
|
||||
#else
|
||||
if (!mPlayerBodyCostumeInfo->mIsUseBodyHair)
|
||||
if (!mBodyInfo->mIsUseBodyHair)
|
||||
return false;
|
||||
if (mPlayerBodyCostumeInfo->mIsMario64 && mPlayerHeadCostumeInfo->mIsMario64)
|
||||
if (mBodyInfo->mIsMario64 && mHeadInfo->mIsMario64)
|
||||
return false;
|
||||
return !mPlayerBodyCostumeInfo->mIsMario64;
|
||||
return !mBodyInfo->mIsMario64;
|
||||
#endif
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isNeedFullFaceAnim() const {
|
||||
return mPlayerHeadCostumeInfo->mIsFullFace;
|
||||
return mHeadInfo->mIsFullFace;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isHidePainNose() const {
|
||||
return mPlayerBodyCostumeInfo->mIsHidePainNose || mPlayerHeadCostumeInfo->mIsInvisibleHead;
|
||||
return mBodyInfo->mIsHidePainNose || mHeadInfo->mIsInvisibleHead;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isEnableEarring() const {
|
||||
if (mPlayerBodyCostumeInfo->mIsUseEarringPeach)
|
||||
return !mPlayerHeadCostumeInfo->mIsHideEarringPeach;
|
||||
return !mPlayerBodyCostumeInfo->mIsUseEarringLink ||
|
||||
!mPlayerHeadCostumeInfo->mIsHideEarringLink;
|
||||
if (mBodyInfo->mIsUseEarringPeach)
|
||||
return !mHeadInfo->mIsHideEarringPeach;
|
||||
return !mBodyInfo->mIsUseEarringLink || !mHeadInfo->mIsHideEarringLink;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isSyncFaceBeard() const {
|
||||
return mPlayerBodyCostumeInfo->mIsUseBeard && mPlayerHeadCostumeInfo->mIsHideBeard;
|
||||
return mBodyInfo->mIsUseBeard && mHeadInfo->mIsHideBeard;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isSyncStrap() const {
|
||||
return mPlayerHeadCostumeInfo->mIsUseStrap && !mPlayerBodyCostumeInfo->mIsUseBeard;
|
||||
return mHeadInfo->mIsUseStrap && !mBodyInfo->mIsUseBeard;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isFollowJoeStrap() const {
|
||||
return mPlayerHeadCostumeInfo->mIsUseStrap && !mPlayerBodyCostumeInfo->mIsMario64;
|
||||
return mHeadInfo->mIsUseStrap && !mBodyInfo->mIsMario64;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isPreventHeadPain() const {
|
||||
return mPlayerHeadCostumeInfo->mIsPreventHead;
|
||||
return mHeadInfo->mIsPreventHead;
|
||||
}
|
||||
|
||||
bool PlayerCostumeInfo::isInvisibleHead() const {
|
||||
return mPlayerHeadCostumeInfo->mIsInvisibleHead;
|
||||
return mHeadInfo->mIsInvisibleHead;
|
||||
}
|
||||
|
||||
s32 PlayerCostumeInfo::calcWarmLevel(s32 baseLevel) const {
|
||||
if (mPlayerBodyCostumeInfo->mIsIgnoreTemperature)
|
||||
if (mBodyInfo->mIsIgnoreTemperature)
|
||||
return false;
|
||||
return al::clamp(mPlayerBodyCostumeInfo->mWarmLevel + baseLevel, -3, 3);
|
||||
return al::clamp(mBodyInfo->mWarmLevel + baseLevel, -3, 3);
|
||||
}
|
||||
|
@ -6,7 +6,7 @@ struct PlayerHeadCostumeInfo {
|
||||
public:
|
||||
PlayerHeadCostumeInfo(const char*);
|
||||
|
||||
const char* _0;
|
||||
const char* mCostumeName;
|
||||
bool mIsFullFace = false;
|
||||
bool mIsShrinkNose = false;
|
||||
bool mIsPreventHead = false;
|
||||
@ -25,8 +25,8 @@ struct PlayerBodyCostumeInfo {
|
||||
public:
|
||||
PlayerBodyCostumeInfo(const char*);
|
||||
|
||||
const char* _0;
|
||||
s32 mWarmLevel = false;
|
||||
const char* mCostumeName;
|
||||
s32 mWarmLevel = 0;
|
||||
bool mIsIgnoreTemperature = false;
|
||||
bool mIsUseHeadSuffix = false;
|
||||
bool mIsBigEar = false;
|
||||
@ -63,6 +63,6 @@ public:
|
||||
s32 calcWarmLevel(s32) const;
|
||||
|
||||
private:
|
||||
const PlayerBodyCostumeInfo* mPlayerBodyCostumeInfo = nullptr;
|
||||
const PlayerHeadCostumeInfo* mPlayerHeadCostumeInfo = nullptr;
|
||||
const PlayerBodyCostumeInfo* mBodyInfo = nullptr;
|
||||
const PlayerHeadCostumeInfo* mHeadInfo = nullptr;
|
||||
};
|
||||
|
@ -1,11 +1,47 @@
|
||||
#pragma once
|
||||
|
||||
#include <math/seadVector.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
}
|
||||
class ActorInitInfo;
|
||||
class Resource;
|
||||
class AudioKeeper;
|
||||
} // namespace al
|
||||
|
||||
class PlayerConst;
|
||||
class PlayerCostumeInfo;
|
||||
class PlayerBodyCostumeInfo;
|
||||
class PlayerJointControlPartsDynamics;
|
||||
|
||||
class PlayerFunction {
|
||||
public:
|
||||
static u32 getPlayerInputPort(const al::LiveActor*);
|
||||
static bool isPlayerDeadStatus(const al::LiveActor*);
|
||||
static bool tryActivateAmiiboPreventDamage(const al::LiveActor*);
|
||||
static bool isPlayerDeadStatus(const al::LiveActor* player);
|
||||
static void syncBodyHairVisibility(al::LiveActor*, al::LiveActor*);
|
||||
static void syncMarioFaceBeardVisibility(al::LiveActor*, al::LiveActor*);
|
||||
static void syncMarioHeadStrapVisibility(al::LiveActor*);
|
||||
static bool isNeedHairControl(const PlayerBodyCostumeInfo*, const char*);
|
||||
static bool isInvisibleCap(const PlayerCostumeInfo*);
|
||||
static void hideHairVisibility(al::LiveActor*);
|
||||
|
||||
static PlayerConst* createMarioConst(const char*);
|
||||
static void createCapModelName(sead::BufferedSafeStringBase<char>*, const char*);
|
||||
|
||||
static void initMarioModelActor2D(al::LiveActor* actor, const al::ActorInitInfo& initInfo,
|
||||
const char* model2DName, bool isInvisCap);
|
||||
static al::Resource* initCapModelActor(al::LiveActor*, const al::ActorInitInfo&, const char*);
|
||||
static al::Resource* initCapModelActorDemo(al::LiveActor*, const al::ActorInitInfo&,
|
||||
const char*);
|
||||
static PlayerCostumeInfo* initMarioModelActor(al::LiveActor* player,
|
||||
const al::ActorInitInfo& initInfo,
|
||||
const char* modelName, const char* capType,
|
||||
al::AudioKeeper* keeper, bool isCloset);
|
||||
static PlayerCostumeInfo*
|
||||
initMarioModelActorDemo(PlayerJointControlPartsDynamics** jointCtrlPtr, al::LiveActor* player,
|
||||
const al::ActorInitInfo& initInfo, const char* bodyName,
|
||||
const char* capName, const PlayerConst* pConst,
|
||||
sead::Vector3f* noseScale, sead::Vector3f* earScale, bool isCloset);
|
||||
};
|
||||
|
@ -5,14 +5,19 @@
|
||||
namespace al {
|
||||
class LiveActor;
|
||||
class HitSensor;
|
||||
class ActorInitInfo;
|
||||
} // namespace al
|
||||
|
||||
class PlayerRecoverySafetyPoint;
|
||||
class HackCap;
|
||||
class PlayerInput;
|
||||
class PlayerDamageKeeper;
|
||||
class IPlayerMoelChanger;
|
||||
class IPlayerModelChanger;
|
||||
class IUsePlayerHeightCheck;
|
||||
class HackEndParam;
|
||||
class PlayerCollider;
|
||||
class CapTargetInfo;
|
||||
class IUsePlayerHack;
|
||||
|
||||
class PlayerHackKeeper {
|
||||
public:
|
||||
@ -21,6 +26,54 @@ public:
|
||||
PlayerDamageKeeper* damageKeeper, const IPlayerModelChanger* modelChanger,
|
||||
const IUsePlayerHeightCheck* heightCheck);
|
||||
|
||||
void createHackModel(const al::ActorInitInfo&);
|
||||
void startHack(al::HitSensor*, al::HitSensor*, al::LiveActor*);
|
||||
void setupHack(al::HitSensor*, al::HitSensor*, al::LiveActor*);
|
||||
void endHack(const HackEndParam*);
|
||||
void endHackStartDemo(al::LiveActor*);
|
||||
void startHackStartDemo(al::LiveActor*);
|
||||
void startHackStartDemoPuppetable(al::LiveActor*);
|
||||
void addHackStartDemo(al::LiveActor*);
|
||||
void appearHackDemoModel(const sead::Matrix34f&, f32);
|
||||
void updateHackDemoModel(const sead::Matrix34f&, f32);
|
||||
void deleteHackDemoModelEffect();
|
||||
void killHackDemoModel();
|
||||
bool isActiveHackStartDemo() const;
|
||||
void recordHack();
|
||||
void cancelHackArea();
|
||||
void cancelHack();
|
||||
void cancelForceRecovery();
|
||||
void tryEscapeHack();
|
||||
void sendTransferHack();
|
||||
void sendMarioDemo();
|
||||
void forceKillHack();
|
||||
void sendMarioDead();
|
||||
void sendMarioInWater();
|
||||
void sendMarioDeathArea();
|
||||
void sendMsgEnableMapCheckPointWarp();
|
||||
void sendMsgSelfCeilingCheckMiss();
|
||||
void receiveRequestTransferHack(al::HitSensor*);
|
||||
void requestDamage();
|
||||
void receiveRequestDamage();
|
||||
void sendSyncDamageVisibility();
|
||||
void pushWorldEndBorder(const sead::Vector3f&);
|
||||
const char* getCurrentHackName() const;
|
||||
PlayerCollider* getPlayerCollision();
|
||||
f32 getHackGuideHeight();
|
||||
bool isHackGuideEnable() const;
|
||||
f32 getHackStayGravityMargine();
|
||||
void* getCollisionPartsFilter();
|
||||
bool isHackGroupTalkScare() const;
|
||||
bool isHackNoCollisionMsg() const;
|
||||
bool isHackNoSeparateCameraInput() const;
|
||||
bool isHackUsePlayerCollision() const;
|
||||
bool isHackCancelCeilingCheck() const;
|
||||
bool isHackInvalidLifeRecovery() const;
|
||||
void requestForceHackStageStart(al::HitSensor*, const CapTargetInfo*, al::LiveActor*);
|
||||
void executeForceHackStageStart(al::HitSensor*, IUsePlayerHack*);
|
||||
void startDemo();
|
||||
void endDemo();
|
||||
|
||||
al::LiveActor* getCurrentHackActor() const { return mCurrentHackActor; }
|
||||
|
||||
al::HitSensor* getUnkHitSensor() const { return mUnkHitSensor; }
|
||||
@ -29,4 +82,5 @@ private:
|
||||
char padding[0x68];
|
||||
al::LiveActor* mCurrentHackActor;
|
||||
al::HitSensor* mUnkHitSensor;
|
||||
// at 0x98 PlayerHackStartTexKeeper
|
||||
};
|
||||
|
@ -6,7 +6,7 @@ class HitSensor;
|
||||
} // namespace al
|
||||
|
||||
class HackCap;
|
||||
class IUseCeilingCheck;
|
||||
class IUsePlayerCeilingCheck;
|
||||
class PlayerAnimator;
|
||||
class PlayerBindKeeper;
|
||||
class PlayerCapManHeroEyesControl;
|
||||
@ -50,47 +50,47 @@ public:
|
||||
PlayerInfo();
|
||||
|
||||
private:
|
||||
PlayerModelChangerHakoniwa* mPlayerModelChangerHakoniwa = nullptr;
|
||||
PlayerOxygen* mPlayerOxygen = nullptr;
|
||||
PlayerAnimator* mPlayerAnimator = nullptr;
|
||||
PlayerBindKeeper* mPlayerBindKeeper = nullptr;
|
||||
PlayerDamageKeeper* mPlayerDamageKeeper = nullptr;
|
||||
PlayerDemoActionFlag* mPlayerDemoActionFlag = nullptr;
|
||||
PlayerEquipmentUser* mPlayerEquipmentUser = nullptr;
|
||||
PlayerModelChangerHakoniwa* mModelChangerHakoniwa = nullptr;
|
||||
PlayerOxygen* mOxygen = nullptr;
|
||||
PlayerAnimator* mAnimator = nullptr;
|
||||
PlayerBindKeeper* mBindKeeper = nullptr;
|
||||
PlayerDamageKeeper* mDamageKeeper = nullptr;
|
||||
PlayerDemoActionFlag* mDemoActionFlag = nullptr;
|
||||
PlayerEquipmentUser* mEquipmentUser = nullptr;
|
||||
HackCap* mHackCap = nullptr;
|
||||
WorldEndBorderKeeper* mWorldEndBorderKeeper = nullptr;
|
||||
PlayerCarryKeeper* mPlayerCarryKeeper = nullptr;
|
||||
PlayerJointControlKeeper* mPlayerJointControlKeeper = nullptr;
|
||||
PlayerCounterIceWater* mPlayerCounterIceWater = nullptr;
|
||||
PlayerStainControl* mPlayerStainControl = nullptr;
|
||||
PlayerCarryKeeper* mCarryKeeper = nullptr;
|
||||
PlayerJointControlKeeper* mJointControlKeeper = nullptr;
|
||||
PlayerCounterIceWater* mCounterIceWater = nullptr;
|
||||
PlayerStainControl* mStainControl = nullptr;
|
||||
al::FootPrintHolder* mFootPrintHolder = nullptr;
|
||||
al::HitSensor* mBodyHitSensor = nullptr;
|
||||
PlayerFormSensorCollisionArranger* mPlayerFormSensorCollisionArranger = nullptr;
|
||||
PlayerInput* mPlayerInput = nullptr;
|
||||
IUseCeilingCheck* mIUseCeilingCheck = nullptr;
|
||||
PlayerModelHolder* mPlayerModelHolder = nullptr;
|
||||
PlayerHackKeeper* mPlayerHackKeeper = nullptr;
|
||||
PlayerCapManHeroEyesControl* mPlayerCapManHeroEyesControl = nullptr;
|
||||
PlayerRecoverySafetyPoint* mPlayerRecoverySafetyPoint = nullptr;
|
||||
PlayerCostumeInfo* mPlayerCostumeInfo = nullptr;
|
||||
PlayerJudgeCameraInWater* mPlayerJudgeCameraInWater = nullptr;
|
||||
PlayerJudgeTalkGround* mPlayerJudgeTalkGround = nullptr;
|
||||
PlayerJudgeTalkSwim* mPlayerJudgeTalkSwim = nullptr;
|
||||
PlayerJudgeDead* mPlayerJudgeDead = nullptr;
|
||||
PlayerJudgeDeadWipeStart* mPlayerJudgeDeadWipeStart = nullptr;
|
||||
PlayerJudgeDrawForward* mPlayerJudgeDrawForward = nullptr;
|
||||
PlayerJudgeSameNerve* mPlayerJudgeNrvPoleClimb = nullptr;
|
||||
PlayerJudgeSameNerve* mPlayerJudgeNrvGrabCeil = nullptr;
|
||||
PlayerJudgeSameNerve* mPlayerJudgeNrvWallCatch = nullptr;
|
||||
PlayerJudgeActiveCameraSubjective* mPlayerJudgeActiveCameraSubjective = nullptr;
|
||||
PlayerJudgeSameNerve* mPlayerJudgeNrvSwim = nullptr;
|
||||
PlayerJudgeFailureCameraSubjective* mPlayerJudgeFailureCameraSubjective = nullptr;
|
||||
PlayerJudgeSafetyPointRecovery* mPlayerJudgeSafetyPointRecovery = nullptr;
|
||||
PlayerJudgeStatusPoleClimb* mPlayerJudgeStatusPoleClimb = nullptr;
|
||||
PlayerJudgePlaySwitchOnAreaWaitAnim* mPlayerJudgePlaySwitchOnAreaWaitAnim = nullptr;
|
||||
PlayerJudgeSleep* mPlayerJudgeSleep = nullptr;
|
||||
PlayerJudgeEnableGuideArrow* mPlayerJudgeEnableGuideArrow = nullptr;
|
||||
PlayerJudgeEnablePeachAmiibo* mPlayerJudgeEnablePeachAmiibo = nullptr;
|
||||
PlayerFormSensorCollisionArranger* mFormSensorCollisionArranger = nullptr;
|
||||
PlayerInput* mInput = nullptr;
|
||||
IUsePlayerCeilingCheck* mCeilingCheck = nullptr;
|
||||
PlayerModelHolder* mModelHolder = nullptr;
|
||||
PlayerHackKeeper* mHackKeeper = nullptr;
|
||||
PlayerCapManHeroEyesControl* mCapManHeroEyesControl = nullptr;
|
||||
PlayerRecoverySafetyPoint* mRecoverySafetyPoint = nullptr;
|
||||
PlayerCostumeInfo* mCostumeInfo = nullptr;
|
||||
PlayerJudgeCameraInWater* mJudgeCameraInWater = nullptr;
|
||||
PlayerJudgeTalkGround* mJudgeTalkGround = nullptr;
|
||||
PlayerJudgeTalkSwim* mJudgeTalkSwim = nullptr;
|
||||
PlayerJudgeDead* mJudgeDead = nullptr;
|
||||
PlayerJudgeDeadWipeStart* mJudgeDeadWipeStart = nullptr;
|
||||
PlayerJudgeDrawForward* mJudgeDrawForward = nullptr;
|
||||
PlayerJudgeSameNerve* mJudgeNrvPoleClimb = nullptr;
|
||||
PlayerJudgeSameNerve* mJudgeNrvGrabCeil = nullptr;
|
||||
PlayerJudgeSameNerve* mJudgeNrvWallCatch = nullptr;
|
||||
PlayerJudgeActiveCameraSubjective* mJudgeActiveCameraSubjective = nullptr;
|
||||
PlayerJudgeSameNerve* mJudgeNrvSwim = nullptr;
|
||||
PlayerJudgeFailureCameraSubjective* mJudgeFailureCameraSubjective = nullptr;
|
||||
PlayerJudgeSafetyPointRecovery* mJudgeSafetyPointRecovery = nullptr;
|
||||
PlayerJudgeStatusPoleClimb* mJudgeStatusPoleClimb = nullptr;
|
||||
PlayerJudgePlaySwitchOnAreaWaitAnim* mJudgePlaySwitchOnAreaWaitAnim = nullptr;
|
||||
PlayerJudgeSleep* mJudgeSleep = nullptr;
|
||||
PlayerJudgeEnableGuideArrow* mJudgeEnableGuideArrow = nullptr;
|
||||
PlayerJudgeEnablePeachAmiibo* mJudgeEnablePeachAmiibo = nullptr;
|
||||
bool mIsMoon = false;
|
||||
};
|
||||
|
||||
|
@ -15,6 +15,11 @@ class PlayerInput {
|
||||
public:
|
||||
PlayerInput(const al::LiveActor*, const IUsePlayerCollision*, const IUseDimension*);
|
||||
|
||||
bool isMove() const;
|
||||
bool isMoveDeepDown() const;
|
||||
bool isMoveDeepDownNoSnap() const;
|
||||
bool isNoInput() const;
|
||||
|
||||
bool isEnableCarry() const;
|
||||
bool isTriggerCarryStart() const;
|
||||
bool isTriggerCarryRelease() const;
|
||||
@ -62,8 +67,6 @@ public:
|
||||
bool isHoldCapAction() const;
|
||||
bool isHoldPoleClimbFast() const;
|
||||
bool isHoldWallCatchMoveFast() const;
|
||||
bool isMove() const;
|
||||
bool isMoveDeepDown() const;
|
||||
bool isHoldHackAction() const;
|
||||
bool isHoldHackJump() const;
|
||||
bool isSpinInput() const;
|
||||
|
@ -6,7 +6,7 @@ namespace al {
|
||||
class SystemKit;
|
||||
class GameFrameworkNx;
|
||||
class AccountHolder;
|
||||
struct DrawSystemInfo;
|
||||
class GameDrawInfo;
|
||||
} // namespace al
|
||||
|
||||
class RootTask;
|
||||
@ -24,9 +24,9 @@ public:
|
||||
|
||||
al::GameFrameworkNx* getGameFramework() const { return mGameFramework; }
|
||||
|
||||
al::AccountHolder* getAccountHolder() const { return mAccountHolder; }
|
||||
al::GameDrawInfo* getGameDrawInfo() const { return mGameDrawInfo; }
|
||||
|
||||
al::DrawSystemInfo* getDrawSystemInfo() const { return mDrawSystemInfo; }
|
||||
al::AccountHolder* getAccountHolder() const { return mAccountHolder; }
|
||||
|
||||
protected:
|
||||
friend class ApplicationFunction;
|
||||
@ -34,11 +34,6 @@ protected:
|
||||
private:
|
||||
al::SystemKit* mSystemKit;
|
||||
al::GameFrameworkNx* mGameFramework;
|
||||
al::GameDrawInfo* mGameDrawInfo;
|
||||
al::AccountHolder* mAccountHolder;
|
||||
al::DrawSystemInfo* mDrawSystemInfo;
|
||||
};
|
||||
|
||||
namespace agl {
|
||||
class RenderBuffer;
|
||||
class DrawContext;
|
||||
} // namespace agl
|
||||
|
@ -4,8 +4,6 @@
|
||||
#include <prim/seadBitFlag.h>
|
||||
#include <prim/seadSafeString.h>
|
||||
|
||||
#include "System/GameProgressData.h"
|
||||
|
||||
class GameProgressData;
|
||||
|
||||
class GameDataFile {
|
||||
|
@ -5,13 +5,14 @@
|
||||
#include "Library/Message/MessageSystem.h"
|
||||
#include "Library/Scene/GameDataHolderBase.h"
|
||||
|
||||
#include "System/GameDataFile.h"
|
||||
#include "System/WorldList.h"
|
||||
|
||||
namespace al {
|
||||
class PlacementId;
|
||||
}
|
||||
|
||||
class GameDataFile;
|
||||
|
||||
class GameDataHolder : public al::GameDataHolderBase {
|
||||
public:
|
||||
GameDataHolder(const al::MessageSystem*);
|
||||
@ -19,7 +20,7 @@ public:
|
||||
|
||||
virtual ~GameDataHolder();
|
||||
|
||||
virtual char* getSceneObjName() const;
|
||||
virtual const char* getSceneObjName() const;
|
||||
virtual al::MessageSystem* getMessageSystem() const;
|
||||
|
||||
void setPlayingFileId(s32 file);
|
||||
@ -68,6 +69,7 @@ public:
|
||||
|
||||
void resetMiniGameData();
|
||||
s32 getPlayingFileId() const;
|
||||
void requestSetPlayingFileId(s32);
|
||||
|
||||
s32 findUnlockShineNum(bool*, s32) const;
|
||||
s32 calcBeforePhaseWorldNumMax(s32) const;
|
||||
|
@ -5,9 +5,9 @@
|
||||
#include "Library/Scene/SceneUtil.h"
|
||||
|
||||
GameDataHolderAccessor::GameDataHolderAccessor(const al::IUseSceneObjHolder* holder) {
|
||||
mSceneObj = al::getSceneObj(holder, 18);
|
||||
mData = reinterpret_cast<GameDataHolder*>(al::getSceneObj(holder, 18));
|
||||
}
|
||||
|
||||
GameDataHolderAccessor::GameDataHolderAccessor(const al::SceneObjHolder* holder) {
|
||||
mSceneObj = holder->getObj(18);
|
||||
mData = reinterpret_cast<GameDataHolder*>(holder->getObj(18));
|
||||
}
|
||||
|
@ -1,5 +1,7 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/GameDataHolderWriter.h"
|
||||
|
||||
namespace al {
|
||||
class IUseSceneObjHolder;
|
||||
class SceneObjHolder;
|
||||
@ -7,13 +9,10 @@ class ISceneObj;
|
||||
class LiveActor;
|
||||
} // namespace al
|
||||
|
||||
class GameDataHolderAccessor { // maybe extends GameDataHolderWriter?
|
||||
class GameDataHolderAccessor : public GameDataHolderWriter { // maybe extends GameDataHolderWriter?
|
||||
public:
|
||||
GameDataHolderAccessor(const al::IUseSceneObjHolder*);
|
||||
GameDataHolderAccessor(const al::SceneObjHolder*);
|
||||
|
||||
private:
|
||||
al::ISceneObj* mSceneObj;
|
||||
};
|
||||
|
||||
namespace rs {
|
||||
|
@ -1,7 +1,8 @@
|
||||
#pragma once
|
||||
|
||||
#include "System/GameDataHolder.h"
|
||||
class GameDataHolder;
|
||||
|
||||
class GameDataHolderWriter : public GameDataHolder {
|
||||
// ima be real i dont think theres anything in this class
|
||||
class GameDataHolderWriter {
|
||||
public:
|
||||
GameDataHolder* mData;
|
||||
};
|
||||
|
@ -46,3 +46,7 @@ private:
|
||||
GameConfigData* mGameConfigData;
|
||||
bool mIsSequenceSetupIncomplete;
|
||||
};
|
||||
|
||||
namespace GameSystemFunction {
|
||||
GameSystem* getGameSystem();
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user