SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
OceanRing.cpp
1#include "Game/Map/OceanRing.hpp"
2
3void OceanRing::initAfterPlacement() {
4 for (s32 i = 0; i < mWaterPointNum; i++) {
5 mWaterPoints[i]->initAfterPlacement();
6 }
7}
8
9bool OceanRing::isInWater(const TVec3f &rVec) const {
10 if (!mClippingBox.intersectsPoint(rVec)) {
11 return false;
12 }
13
14 TVec3f nearPos;
15 f32 pos = calcNearestPos(rVec, &nearPos, nullptr, nullptr);
16 f32 w = (mWidthMax * calcCurrentWidthRate(pos));
17
18 if (PSVECDistance(nearPos.toCVec(), rVec.toCVec()) > w) {
19 return false;
20 }
21
22 TVec3f stack_14(rVec);
23 stack_14.subtract(nearPos);
24 TVec3f gravVec;
25 MR::calcGravityVector(this, rVec, &gravVec, nullptr, 0);
26 return !(stack_14.dot(gravVec) < 0.0f);
27}