2023-12-13 00:40:16 -05:00
|
|
|
#include "Game/Camera/CameraTargetHolder.hpp"
|
|
|
|
|
#include "Game/Camera/CameraTargetObj.hpp"
|
|
|
|
|
#include "Game/LiveActor/LiveActor.hpp"
|
2021-12-20 18:24:20 +01:00
|
|
|
|
|
|
|
|
CameraTargetHolder::CameraTargetHolder() {
|
2023-02-13 03:33:10 -05:00
|
|
|
mTarget = nullptr;
|
2021-12-20 18:24:20 +01:00
|
|
|
mTargetActor = new CameraTargetActor("アクター注目");
|
|
|
|
|
mTargetPlayer = new CameraTargetPlayer("マリオ注目");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CameraTargetHolder::~CameraTargetHolder() {
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CameraTargetHolder::movement() {
|
|
|
|
|
mTargetActor->movement();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
CameraTargetObj *CameraTargetHolder::get() {
|
|
|
|
|
return mTarget;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CameraTargetHolder::set(CameraTargetObj *pTarget) {
|
|
|
|
|
mTarget = pTarget;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void CameraTargetHolder::set(const LiveActor *pActor) {
|
2021-12-26 22:59:17 +01:00
|
|
|
mTargetActor->mActor = pActor;
|
2021-12-20 18:24:20 +01:00
|
|
|
mTarget = mTargetActor;
|
|
|
|
|
}
|
|
|
|
|
|
2021-12-26 22:59:17 +01:00
|
|
|
void CameraTargetHolder::set(const MarioActor *pActor) {
|
|
|
|
|
mTargetPlayer->mActor = pActor;
|
2021-12-20 18:24:20 +01:00
|
|
|
mTarget = mTargetPlayer;
|
2021-12-26 22:59:17 +01:00
|
|
|
}
|
2021-12-20 18:24:20 +01:00
|
|
|
|
|
|
|
|
bool CameraTargetHolder::isOnGround() const {
|
|
|
|
|
return !mTarget->isJumping() || mTarget->isWaterMode() || mTarget->isOnWaterSurface();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool CameraTargetHolder::isMoving() const {
|
2021-12-26 15:48:42 +01:00
|
|
|
const TVec3f *lastMove = mTarget->getLastMove();
|
2021-12-20 18:24:20 +01:00
|
|
|
float length = PSVECMag(reinterpret_cast<const Vec *>(lastMove));
|
|
|
|
|
|
|
|
|
|
return length > 1.0f;
|
|
|
|
|
}
|