1#include "Game/MapObj/SpinDriverCamera.hpp"
2#include "Game/Camera/CameraTargetMtx.hpp"
4SpinDriverCamera::SpinDriverCamera() {
8 mAppearCameraFrame = 0;
11void SpinDriverCamera::startAppearCamera(
LiveActor *pActor,
const TVec3f &a2,
const TVec3f &a3,
const TVec3f &a4) {
13 mAppearCameraFrame = MR::getMultiActorCameraFrames(pActor, mCameraInfo,
"出現イベント用");
15 if (mAppearCameraFrame > 0) {
16 MR::startMultiActorCameraTargetOther(pActor, mCameraInfo,
"出現イベント用",
CameraTargetArg(mTargetMtx), -1);
18 MR::makeMtxUpFrontPos(&upPos, a2, a3, a4);
19 mTargetMtx->setMtx(upPos.toMtxPtr());
24void SpinDriverCamera::endAppearCamera(
LiveActor *pActor) {
25 if (mCameraInfo && mAppearCameraFrame > 0) {
26 MR::endMultiActorCamera(pActor, mCameraInfo,
"出現イベント用",
false, -1);
30u32 SpinDriverCamera::getAppearCameraFrames()
const {
31 return mAppearCameraFrame;
34void SpinDriverCamera::update(
const TVec3f &a1,
const TVec3f &a2) {
36 switch(mCamera->isEnd()) {
39 updateTargetMatrix(a1, a2);
45void SpinDriverCamera::cancel() {
47 mCamera->endForceSoon();
51void SpinDriverCamera::end() {
53 mCamera->endForceAtLanding();
54 mCamera->changeTargetPlayer();
60BOOL SpinDriverCamera::isUseAppearCamera(
LiveActor *pActor)
const {
65 u32 frames = MR::getMultiActorCameraFrames(pActor, mCameraInfo,
"出現イベント用");
66 return (-frames & ~frames) >> 31;
72 if (info.mCameraSetID != -1) {
74 MR::getJMapInfoArg3NoInit(rIter, &arg3);
77 mCamera->setEndCameraTypeAtLanding();
84 if (info.mCameraSetID != -1) {
85 MR::initMultiActorCamera(pActor, rIter, &mCameraInfo,
"出現イベント用");
86 mAppearCameraFrame = MR::getMultiActorCameraFrames(pActor, mCameraInfo,
"出現イベント用");
The basis of a drawable actor that can contain states (see: Nerve)
const char * mName
A string to identify the NameObj.