-
Notifications
You must be signed in to change notification settings - Fork 11
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #43 from Mars2032/stable
Added more 1.2 support, fixed Replay desync
- Loading branch information
Showing
22 changed files
with
995 additions
and
966 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,76 +1,114 @@ | ||
/** | ||
* @file PlayerHackKeeper.h | ||
* @brief Contains info on the current hack (capture) | ||
*/ | ||
|
||
#pragma once | ||
|
||
#include "al/LiveActor/LiveActor.h" | ||
#include "game/Interfaces/IUsePlayerHack.h" | ||
#include "game/Player/PlayerInput.h" | ||
#include "game/Player/HackCap.h" | ||
#include "game/Player/PlayerCollider.h" | ||
#include "game/Player/HackCap/CapTargetInfo.h" | ||
#include <container/seadPtrArray.h> | ||
#include <math/seadMatrix.h> | ||
|
||
namespace al { | ||
class LiveActor; | ||
class HitSensor; | ||
class CollisionPartsFilterBase; | ||
} // namespace al | ||
|
||
class PlayerRecoverySafetyPoint; | ||
class HackCap; | ||
class PlayerInput; | ||
class PlayerDamageKeeper; | ||
class IPlayerModelChanger; | ||
class IUsePlayerHeightCheck; | ||
class IUsePlayerHack; | ||
class HackObjInfo; | ||
class CapTargetInfo; | ||
class PlayerHackStartTexKeeper; | ||
class HackEndParam; | ||
|
||
struct HackEndParam; | ||
struct PlayerRecoverySafetyPoint; | ||
struct PlayerDamageKeeper; | ||
struct IPlayerModelChanger; | ||
struct IUsePlayerHeightCheck; | ||
class PlayerHackKeeper { | ||
public: | ||
al::LiveActor* mParent; | ||
HackCap* mHackCap; | ||
PlayerRecoverySafetyPoint* mRecoverySafePoint; | ||
void* field_18; | ||
void* field_20; | ||
PlayerInput* mInput; | ||
sead::Matrix34f* field_30; | ||
PlayerDamageKeeper* mDamageKeeper; | ||
IPlayerModelChanger* mModelChanger; | ||
IUsePlayerHeightCheck* mHeightCheck; | ||
al::HitSensor* mParentBodySensor; | ||
bool mIsPuppetable; | ||
bool mIsCancellingHack; | ||
bool mIsHackDemoStarted; | ||
bool mIsPuppetable2; | ||
bool mIsStartedHacking; | ||
bool mIsHack; | ||
bool mIsTookDamage; | ||
al::CollisionPartsFilterBase* mCollisionFilter; | ||
al::LiveActor* mHackActor; | ||
al::HitSensor* mHackHitSensor; | ||
HackObjInfo* mHackObjectInfo; | ||
al::HitSensor* mStageStartActorSensor; | ||
al::LiveActor* mStageStartActor; | ||
CapTargetInfo* mStageStartCapTargetInfo; | ||
PlayerHackStartTexKeeper* mHackStartTexKeeper; | ||
al::LiveActor* mHackModel; | ||
sead::PtrArray<sead::Matrix34f> mHackModelSlices; | ||
sead::Matrix34f* field_b8; | ||
s32 field_c0; | ||
s32 field_c4; | ||
s32 field_c8; | ||
|
||
class PlayerHackKeeper | ||
{ | ||
public: | ||
PlayerHackKeeper(al::LiveActor *,HackCap *,PlayerRecoverySafetyPoint *,PlayerInput const*,sead::Matrix34f const*,PlayerDamageKeeper const*,IPlayerModelChanger const*,IUsePlayerHeightCheck const*); | ||
void createHackModel(al::ActorInitInfo const&); | ||
void startHack(al::HitSensor *,al::HitSensor *,al::LiveActor *); | ||
void setupHack(al::HitSensor *,al::HitSensor *,al::LiveActor *); | ||
void endHack(HackEndParam const*); | ||
void endHackStartDemo(al::LiveActor *); | ||
void startHackStartDemo(al::LiveActor *); | ||
void startHackStartDemoPuppetable(al::LiveActor *); | ||
void addHackStartDemo(al::LiveActor *); | ||
void appearHackDemoModel(sead::Matrix34f const&,float); | ||
void updateHackDemoModel(sead::Matrix34f const&,float); | ||
void deleteHackDemoModelEffect(void); | ||
void killHackDemoModel(void); | ||
bool isActiveHackStartDemo(void) const; | ||
void recordHack(void); | ||
void cancelHackArea(void); | ||
void cancelHack(void); | ||
void cancelForceRecovery(void); | ||
void tryEscapeHack(void); | ||
void sendTransferHack(void); | ||
void sendMarioDemo(void); | ||
void forceKillHack(void); | ||
void sendMarioDead(void); | ||
void sendMarioInWater(void); | ||
void sendMarioDeathArea(void); | ||
void sendMsgEnableMapCheckPointWarp(void); | ||
void sendMsgSelfCeilingCheckMiss(void); | ||
void receiveRequestTransferHack(al::HitSensor *); | ||
void requestDamage(void); | ||
void receiveRequestDamage(void); | ||
void sendSyncDamageVisibility(void); | ||
void pushWorldEndBorder(sead::Vector3f const&); | ||
const char *getCurrentHackName(void) const; | ||
PlayerCollider *getPlayerCollision(void); | ||
float getHackGuideHeight(void); | ||
bool isHackGuideEnable(void) const; | ||
float getHackStayGravityMargine(void); | ||
void *getCollisionPartsFilter(void); | ||
bool isHackGroupTalkScare(void) const; | ||
bool isHackNoCollisionMsg(void) const; | ||
bool isHackNoSeparateCameraInput(void) const; | ||
bool isHackUsePlayerCollision(void) const; | ||
bool isHackCancelCeilingCheck(void) const; | ||
bool isHackInvalidLifeRecovery(void) const; | ||
void requestForceHackStageStart(al::HitSensor *,CapTargetInfo const*,al::LiveActor *); | ||
void executeForceHackStageStart(al::HitSensor *,IUsePlayerHack *); | ||
void startDemo(void); | ||
void endDemo(void); | ||
PlayerHackKeeper(al::LiveActor*, HackCap*, PlayerRecoverySafetyPoint*, const PlayerInput*, const sead::Matrix34f*, const PlayerDamageKeeper*, | ||
const IPlayerModelChanger*, const IUsePlayerHeightCheck*); | ||
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(); | ||
bool tryEscapeHack(); | ||
void sendTransferHack(); | ||
void sendMarioCheckpointFlagWarp(); | ||
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; | ||
void* getPlayerCollision() const; | ||
void* getHackGuideHeight() const; | ||
bool isHackGuideEnable() const; | ||
void getHackStayGravityMargine() const; | ||
void getCollisionPartsFilter() const; | ||
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(); | ||
}; | ||
|
||
char padding[0x68]; | ||
al::LiveActor *currentHackActor; | ||
// 0x98 PlayerHackStartTexKeeper | ||
class IUsePlayerHack { | ||
public: | ||
virtual PlayerHackKeeper* getPlayerHackKeeper() const = 0; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.