mirror of
https://github.com/PrimeDecomp/prime.git
synced 2025-12-16 04:57:00 +00:00
Various imps
This commit is contained in:
46
include/MetroidPrime/CObjectList.hpp
Normal file
46
include/MetroidPrime/CObjectList.hpp
Normal file
@@ -0,0 +1,46 @@
|
||||
#ifndef __COBJECTLIST_HPP__
|
||||
#define __COBJECTLIST_HPP__
|
||||
|
||||
#define kMaxObjects 1024
|
||||
enum EGameObjectList {
|
||||
kGOL_Invalid = -1,
|
||||
kGOL_All,
|
||||
kGOL_Actor,
|
||||
kGOL_PhysicsActor,
|
||||
kGOL_GameCamera,
|
||||
kGOL_GameLight,
|
||||
kGOL_ListeningAi,
|
||||
kGOL_AiWaypoint,
|
||||
kGOL_PlatformAndDoor,
|
||||
};
|
||||
|
||||
class CEntity;
|
||||
class CObjectList {
|
||||
struct SObjectListEntry {
|
||||
CEntity* mEnt;
|
||||
s16 mNext;
|
||||
s16 mPrev;
|
||||
SObjectListEntry();
|
||||
};
|
||||
|
||||
public:
|
||||
CObjectList(EGameObjectList list);
|
||||
bool IsQualified(CEntity& ent);
|
||||
void AddObject(CEntity& ent);
|
||||
void RemoveObject(TUniqueId uid);
|
||||
CEntity* GetObjectById();
|
||||
const CEntity* GetObjectById() const;
|
||||
CEntity* GetValidObjectById(TUniqueId uid);
|
||||
const CEntity* GetValidObjectById(TUniqueId uid) const;
|
||||
CEntity* operator[](s32 idx);
|
||||
const CEntity* operator[](s32 idx) const;
|
||||
const CEntity* GetValidObjectByIndex(s32 idx) const;
|
||||
s32 size() const { return mCount; }
|
||||
private:
|
||||
SObjectListEntry mObjects[1024];
|
||||
EGameObjectList mListType;
|
||||
s16 mFirstId = -1;
|
||||
s16 mCount = 0;
|
||||
}
|
||||
|
||||
#endif // __COBJECTLIST_HPP__
|
||||
32
include/MetroidPrime/Cameras/CBallCamera.hpp
Normal file
32
include/MetroidPrime/Cameras/CBallCamera.hpp
Normal file
@@ -0,0 +1,32 @@
|
||||
#ifndef __CBALLCAMERA_HPP__
|
||||
#define __CBALLCAMERA_HPP__
|
||||
|
||||
class CBallCamera {
|
||||
public:
|
||||
enum EBallCameraState {
|
||||
kBCS_Default,
|
||||
kBCS_One,
|
||||
kBCS_Chase,
|
||||
kBCS_Boost,
|
||||
kBCS_ToBall,
|
||||
kBCS_FromBall,
|
||||
};
|
||||
enum EBallCameraBehaviour {
|
||||
kBCB_Default,
|
||||
kBCB_FreezeLookPosition, // Unused
|
||||
kBCB_HintBallToCam,
|
||||
kBCB_HintInitializePosition,
|
||||
kBCB_HintFixedPosition,
|
||||
kBCB_HintFixedTransform,
|
||||
kBCB_PathCameraDesiredPos, // Unused
|
||||
kBCB_PathCamera,
|
||||
kBCB_SpindleCamera,
|
||||
};
|
||||
enum ESplineState {
|
||||
kSS_Invalid,
|
||||
kSS_Nav,
|
||||
kSS_Arc,
|
||||
};
|
||||
};
|
||||
|
||||
#endif // __CBALLCAMERA_HPP__
|
||||
38
include/MetroidPrime/Cameras/CCameraHint.hpp
Normal file
38
include/MetroidPrime/Cameras/CCameraHint.hpp
Normal file
@@ -0,0 +1,38 @@
|
||||
#ifndef __CCAMERAHINT_HPP__
|
||||
#define __CCAMERAHINT_HPP__
|
||||
|
||||
#include "types.h"
|
||||
#include "MetroidPrime/Cameras/CBallCamera.hpp"
|
||||
#include "Kyoto/Math/CVector3f.hpp"
|
||||
|
||||
class CCameraHint {
|
||||
public:
|
||||
CCameraHint(u32 overrideFlags, CBallCamera::EBallCameraBehaviour behaviour, f32 minDist, f32 maxDist,
|
||||
f32 backwardsDist, const CVector3f& lookAtOffset, const CVector3f& chaseLookAtOffset,
|
||||
const CVector3f& ballToCam, f32 fov, f32 attitudeRange, f32 azimuthRange,
|
||||
f32 anglePerSecond, f32 clampVelRange, f32 clampRotRange, f32 elevation, f32 interpolateTime,
|
||||
f32 clampVelTime, f32 controlInterpDur);
|
||||
virtual ~CCameraHint();
|
||||
|
||||
private:
|
||||
u32 mOverrideFlags;
|
||||
CBallCamera::EBallCameraBehaviour mBehaviour;
|
||||
f32 mMinDist;
|
||||
f32 mMaxDist;
|
||||
f32 mBackwardsDist;
|
||||
CVector3f mLookAtOffset;
|
||||
CVector3f mChaseLookAtOffset;
|
||||
CVector3f mBallToCam;
|
||||
f32 mFov;
|
||||
f32 mAttitudeRange;
|
||||
f32 mAzimuthRange;
|
||||
f32 mAnglePerSecond;
|
||||
f32 mClampVelRange;
|
||||
f32 mClampRotRange;
|
||||
f32 mElevation;
|
||||
f32 mInterpolateTime;
|
||||
f32 mClampVelTime;
|
||||
f32 mControlInterpDur;
|
||||
};
|
||||
|
||||
#endif // __CCAMERAHINT_HPP__
|
||||
Reference in New Issue
Block a user