SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
GraviryFollower.cpp
1#pragma once
2
3#include "Game/Gravity.hpp"
4#include "Game/Util.hpp"
5
6GraviryFollower::GraviryFollower(GlobalGravityObj *pGravityObj, const JMapInfoIter &rIter) : BaseMatrixFollower(pGravityObj, rIter), mGravity(nullptr) {
7 mGravity = pGravityObj->getGravity();
8}
9
10void GraviryFollower::setGravityFollowHost(const NameObj *pHost) {
11 mGravity->mHost = pHost;
12}
13
14void GraviryFollower::update() {
15 GlobalGravityObj* pFollowTarget = static_cast<GlobalGravityObj*>(getFollowTargetActor());
16
17 if (MR::isDead(pFollowTarget) || MR::isClipped(pFollowTarget) || !isValid()) {
18 mGravity->mValidFollower = false;
19 }
20 else {
21 TPos3f followMtx;
22 calcFollowMatrix(&followMtx);
23
24 mGravity->updateMtx(followMtx);
25 mGravity->mValidFollower = true;
26 }
27}
28
29namespace MR {
30 bool addBaseMatrixFollowerGravity(GlobalGravityObj *pGravityObj, const JMapInfoIter &rIter) {
31 if (!MR::isValidFollowID(rIter)) {
32 return false;
33 }
34
35 MR::addBaseMatrixFollower(new GraviryFollower(pGravityObj, rIter));
36 return true;
37 }
38}
The most basic form of an object.
Definition NameObj.hpp:11