1#include "Game/AreaObj/CubeCamera.hpp"
2#include "Game/Camera/CameraTargetMtx.hpp"
3#include "Game/Util/GravityUtil.hpp"
9bool CameraTargetObj::isTurning()
const {
13bool CameraTargetObj::isLongDrop()
const {
17bool CameraTargetObj::isBeeMode()
const {
21u32 CameraTargetObj::getSpecialMode()
const {
25GravityInfo *CameraTargetObj::getGravityInfo()
const {
29void CameraTargetObj::enableCameraWall() {
33void CameraTargetObj::disableCameraWall() {
37void CameraTargetObj::setCameraWall(
bool enable) {
41bool CameraTargetObj::isDebugMode()
const {
45void CameraTargetObj::resetStatus() {
49CameraTargetMtx::CameraTargetMtx(
const char *pName) :
CameraTargetObj(pName) {
56 mGravityVector.x = 0.0f;
57 mGravityVector.y = -1.0f;
58 mGravityVector.z = 0.0f;
68 mInvalidLastMove =
false;
69 mCameraArea =
nullptr;
73CameraTargetMtx::~CameraTargetMtx() {
79void CameraTargetMtx::movement() {
80 mUp.set(mMatrix.mMtx[0][1], mMatrix.mMtx[1][1], mMatrix.mMtx[2][1]);
81 mFront.set(mMatrix.mMtx[0][2], mMatrix.mMtx[1][2], mMatrix.mMtx[2][2]);
82 mSide.set(mMatrix.mMtx[0][0], mMatrix.mMtx[1][0], mMatrix.mMtx[2][0]);
85 position.set(mMatrix.mMtx[0][3], mMatrix.mMtx[1][3], mMatrix.mMtx[2][3]);
87 if (mInvalidLastMove) {
88 mInvalidLastMove =
false;
94 register TVec3f &rPos = position;
95 register TVec3f &thisPos = mPosition;
96 register TVec3f &thisLastMove = mLastMove;
99 psq_l f0, 0(rPos), 0, 0
100 psq_l f1, 0(thisPos), 0, 0
101 psq_l f2, 8(thisPos), 1, 0
103 psq_st f0, 0(thisLastMove), 0, 0
104 psq_l f0, 8(rPos), 1, 0
106 psq_st f0, 8(thisLastMove), 1, 0
110 mPosition.x = position.x;
111 mPosition.y = position.y;
112 mPosition.z = position.z;
114 AreaObj *area = MR::getAreaObj(
"CubeCamera", mPosition);
116 if (area ==
nullptr) {
117 mCameraArea =
nullptr;
123 MR::calcGravityVectorOrZero(
this, mPosition, &mGravityVector,
nullptr, 0);
127const TVec3f *CameraTargetMtx::getPosition()
const {
131const TVec3f *CameraTargetMtx::getUpVec()
const {
135const TVec3f *CameraTargetMtx::getFrontVec()
const {
139const TVec3f *CameraTargetMtx::getSideVec()
const {
143const TVec3f *CameraTargetMtx::getLastMove()
const {
147const TVec3f *CameraTargetMtx::getGroundPos()
const {
151const TVec3f *CameraTargetMtx::getGravityVector()
const {
152 return &mGravityVector;
159void CameraTargetMtx::invalidateLastMove() {
160 mInvalidLastMove =
true;
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.