mirror of
https://github.com/MonsterDruide1/OdysseyDecomp
synced 2026-04-27 19:14:06 +00:00
59 lines
1.4 KiB
C++
59 lines
1.4 KiB
C++
#pragma once
|
|
|
|
#include <math/seadVector.h>
|
|
|
|
#include "Library/HostIO/HioNode.h"
|
|
|
|
namespace al {
|
|
|
|
class CameraTargetBase : public IUseHioNode {
|
|
public:
|
|
CameraTargetBase();
|
|
|
|
virtual const char* getTargetName() const = 0;
|
|
virtual void calcTrans(sead::Vector3f* trans) const = 0;
|
|
|
|
virtual void calcSide(sead::Vector3f* side) const {}
|
|
|
|
virtual void calcUp(sead::Vector3f* up) const {}
|
|
|
|
virtual void calcFront(sead::Vector3f* front) const {}
|
|
|
|
virtual void calcGravity(sead::Vector3f* gravity) const { *gravity = {0.0f, -1.0f, 0.0f}; }
|
|
|
|
virtual void calcVelocity(sead::Vector3f* velocity) const {}
|
|
|
|
virtual bool isCollideGround() const { return false; }
|
|
|
|
virtual bool isInWater() const { return false; }
|
|
|
|
virtual bool isInMoonGravity() const { return false; }
|
|
|
|
virtual bool isClimbPole() const { return false; }
|
|
|
|
virtual bool isGrabCeil() const { return false; }
|
|
|
|
virtual bool isWallCatch() const { return false; }
|
|
|
|
virtual bool isInvalidMoveByInput() const { return false; }
|
|
|
|
virtual bool isEnableEndAfterInterpole() const { return false; }
|
|
|
|
virtual void update() {}
|
|
|
|
virtual f32 getRequestDistance() const { return -1.0f; }
|
|
|
|
bool isActiveTarget() const { return mIsActiveTarget; }
|
|
|
|
void enableTarget() { mIsActiveTarget = true; }
|
|
|
|
void disableTarget() { mIsActiveTarget = false; }
|
|
|
|
private:
|
|
bool mIsActiveTarget = false;
|
|
};
|
|
|
|
static_assert(sizeof(CameraTargetBase) == 0x10);
|
|
|
|
} // namespace al
|