SMG-Decomp
A decompilation of Super Mario Galaxy 1
Loading...
Searching...
No Matches
PlanetGravityManager.hpp
1#pragma once
2
3#include "Game/NameObj/NameObj.hpp"
4#include "Game/Gravity/GravityInfo.hpp"
5#include "Game/Gravity/PlanetGravity.hpp"
6
10public:
13 PlanetGravityManager(const char *pName);
14
15 virtual ~PlanetGravityManager() {}
16
19 virtual void init(const JMapInfoIter &rIter);
20
31 bool calcTotalGravityVector(TVec3f *pGravity, GravityInfo *pInfo, const TVec3f &rPosition, u32 gravityType, u32 requester) const;
32
37 void registerGravity(PlanetGravity *pGravity);
38
39private:
42 void sortGravities();
43
46 void bubbleDown(int i);
47
48 /* 0x00C*/ PlanetGravity* mGravities[128]; //<Array of registered PlanetGravity instances
49 /* 0x20C*/ s32 mNumGravities; //<Number of registered PlanetGravity instances
50};
The most basic form of an object.
Definition NameObj.hpp:11
Registers and holds individual PlanetGravity instances. Also provides the main function for calculati...
PlanetGravityManager(const char *pName)
Constructs a new PlanetGravityManager instance.
virtual void init(const JMapInfoIter &rIter)
Effectively does nothing.
void bubbleDown(int i)
Swaps the PlanetGravity instance at the specified index with the one instance right before it.
void sortGravities()
Sorts all PlanetGravity instances by their priority in reverse order. The higher the priority is,...
bool calcTotalGravityVector(TVec3f *pGravity, GravityInfo *pInfo, const TVec3f &rPosition, u32 gravityType, u32 requester) const
Calculates the total gravity vector at the specified position in space. If the object that requests g...
void registerGravity(PlanetGravity *pGravity)
Registers a PlanetGravity instance to the array of gravities. The higher the gravity's priority is,...