SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
MirrorCamera.cpp
1#include "Game/LiveActor/MirrorCamera.hpp"
2#include "Game/Scene/SceneObjHolder.hpp"
3#include "Game/Util.hpp"
4
5void MirrorCamera::init(const JMapInfoIter &rIter) {
6 MR::connectToScene(this, 0x16, -1, -1, -1);
7}
8
9void MirrorCamera::setMirrorMapInfo(const TVec3f &a1, const TVec3f &a2) {
10 _18.set(a1);
11 _C.set(a2);
12 _24 = -PSVECDotProduct((const Vec*)&_18, (const Vec*)&_C);
13}
14
15f32 MirrorCamera::getDistance(const TVec3f &a1) const {
16 TVec3f stack_14;
17 TVec3f stack_8;
18
19 stack_8.set(_18);
20 stack_14.x = stack_8.dot(_C);
21 return stack_8.dot(a1) - stack_14.x;
22}
23
24namespace MR {
25 MirrorCamera* getMirrorCamera() {
26 return reinterpret_cast<MirrorCamera*>(MR::getSceneObjHolder()->getObj(SceneObj_MirrorCamera));
27 }
28
29 f32 getDistanceToMirror(const TVec3f &rVec) {
30 return reinterpret_cast<MirrorCamera*>(MR::getSceneObjHolder()->getObj(SceneObj_MirrorCamera))->getDistance(rVec);
31 }
32};
33
34MirrorCamera::~MirrorCamera() {
35
36}
37
38void MirrorCamera::movement() {
39 if (MR::isPlayerInAreaObj("MirrorArea")) {
40 updateViewMtx();
41 updateModelTexMtx();
42 }
43}
virtual void init(const JMapInfoIter &)
Intializes the NameObj and can set various settings and construct necessary classes.