SuperMarioOdysseyOnline/include/game/Player/PlayerHackKeeper.h
2022-06-16 14:33:18 -07:00

76 lines
No EOL
3 KiB
C++

/**
* @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"
struct HackEndParam;
struct PlayerRecoverySafetyPoint;
struct PlayerDamageKeeper;
struct IPlayerModelChanger;
struct IUsePlayerHeightCheck;
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);
char padding[0x68];
al::LiveActor *currentHackActor;
// 0x98 PlayerHackStartTexKeeper
};