mirror of
https://github.com/AxioDL/metaforce.git
synced 2025-06-07 09:53:28 +00:00
Restore CCameraManager::GetCurrentCamera's proper behavior (AKA, I'm an idiot)
This commit is contained in:
parent
d78feb1196
commit
fe72458f48
@ -142,16 +142,16 @@ void CCameraManager::Update(float dt, CStateManager& stateMgr)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
CEntity* CCameraManager::GetCurrentCamera(CStateManager& stateMgr) const
|
CGameCamera* CCameraManager::GetCurrentCamera(CStateManager& stateMgr) const
|
||||||
{
|
{
|
||||||
CObjectList* camList = stateMgr.ObjectListById(EGameObjectList::GameCamera);
|
CObjectList* camList = stateMgr.ObjectListById(EGameObjectList::GameCamera);
|
||||||
return camList->GetObjectById(GetCurrentCameraId());
|
return static_cast<CGameCamera*>(camList->GetObjectById(GetCurrentCameraId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
const CEntity* CCameraManager::GetCurrentCamera(const CStateManager& stateMgr) const
|
const CGameCamera* CCameraManager::GetCurrentCamera(const CStateManager& stateMgr) const
|
||||||
{
|
{
|
||||||
const CObjectList* camList = stateMgr.GetObjectListById(EGameObjectList::GameCamera);
|
const CObjectList* camList = stateMgr.GetObjectListById(EGameObjectList::GameCamera);
|
||||||
return camList->GetObjectById(GetCurrentCameraId());
|
return static_cast<const CGameCamera*>(camList->GetObjectById(GetCurrentCameraId()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void CCameraManager::SkipCinematic(CStateManager& stateMgr)
|
void CCameraManager::SkipCinematic(CStateManager& stateMgr)
|
||||||
|
@ -81,8 +81,8 @@ public:
|
|||||||
void AddCinemaCamera(TUniqueId, CStateManager& stateMgr);
|
void AddCinemaCamera(TUniqueId, CStateManager& stateMgr);
|
||||||
void SetInsideFluid(bool, TUniqueId);
|
void SetInsideFluid(bool, TUniqueId);
|
||||||
void Update(float dt, CStateManager& stateMgr);
|
void Update(float dt, CStateManager& stateMgr);
|
||||||
CEntity* GetCurrentCamera(CStateManager& stateMgr) const;
|
CGameCamera* GetCurrentCamera(CStateManager& stateMgr) const;
|
||||||
const CEntity* GetCurrentCamera(const CStateManager& stateMgr) const;
|
const CGameCamera* GetCurrentCamera(const CStateManager& stateMgr) const;
|
||||||
void SetCurrentCameraId(TUniqueId id, CStateManager& stateMgr) {x0_curCameraId = id;}
|
void SetCurrentCameraId(TUniqueId id, CStateManager& stateMgr) {x0_curCameraId = id;}
|
||||||
TUniqueId GetCurrentCameraId() const
|
TUniqueId GetCurrentCameraId() const
|
||||||
{
|
{
|
||||||
|
@ -82,7 +82,21 @@ void CCollisionActor::SetDamageVulnerability(const CDamageVulnerability& vuln) {
|
|||||||
zeus::CVector3f CCollisionActor::GetScanObjectIndicatorPosition(const CStateManager& mgr)
|
zeus::CVector3f CCollisionActor::GetScanObjectIndicatorPosition(const CStateManager& mgr)
|
||||||
{
|
{
|
||||||
const CGameCamera* gameCamera = static_cast<const CGameCamera*>(mgr.GetCameraManager()->GetCurrentCamera(mgr));
|
const CGameCamera* gameCamera = static_cast<const CGameCamera*>(mgr.GetCameraManager()->GetCurrentCamera(mgr));
|
||||||
return {};
|
|
||||||
|
float scanScale;
|
||||||
|
if (x258_primitiveType == EPrimitiveType::Sphere)
|
||||||
|
scanScale = GetSphereRadius();
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const zeus::CVector3f v = GetBoxSize();
|
||||||
|
float comp = (v.x < v.y ? v.y : v.z);
|
||||||
|
comp = (comp < v.z ? v.x : comp);
|
||||||
|
|
||||||
|
scanScale = 0.5f * comp;
|
||||||
|
}
|
||||||
|
scanScale *= 3.0f;
|
||||||
|
zeus::CVector3f orbitPos = GetOrbitPosition(mgr);
|
||||||
|
return (scanScale * (orbitPos - gameCamera->GetTransform().origin).normalized()) - orbitPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
const CCollisionPrimitive* CCollisionActor::GetCollisionPrimitive() const
|
const CCollisionPrimitive* CCollisionActor::GetCollisionPrimitive() const
|
||||||
|
@ -56,6 +56,7 @@ public:
|
|||||||
TUniqueId GetLastTouchedObject() const { return x2fc_lastTouched; }
|
TUniqueId GetLastTouchedObject() const { return x2fc_lastTouched; }
|
||||||
zeus::CVector3f GetScanObjectIndicatorPosition(const CStateManager &);
|
zeus::CVector3f GetScanObjectIndicatorPosition(const CStateManager &);
|
||||||
void SetExtendedTouchBounds(const zeus::CVector3f& boundExt) { x304_extendedTouchBounds = boundExt; }
|
void SetExtendedTouchBounds(const zeus::CVector3f& boundExt) { x304_extendedTouchBounds = boundExt; }
|
||||||
|
float GetSphereRadius() const { return x288_sphereRadius; }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
#include "CCompoundTargetReticle.hpp"
|
#include "CCompoundTargetReticle.hpp"
|
||||||
#include "GameGlobalObjects.hpp"
|
#include "GameGlobalObjects.hpp"
|
||||||
|
#include "Camera/CGameCamera.hpp"
|
||||||
#include "CSimplePool.hpp"
|
#include "CSimplePool.hpp"
|
||||||
#include "Graphics/CModel.hpp"
|
#include "Graphics/CModel.hpp"
|
||||||
#include "CStateManager.hpp"
|
#include "CStateManager.hpp"
|
||||||
@ -23,8 +24,8 @@ CTargetReticleRenderState::CTargetReticleRenderState(TUniqueId target, float f1,
|
|||||||
}
|
}
|
||||||
|
|
||||||
CCompoundTargetReticle::CCompoundTargetReticle(const CStateManager& mgr)
|
CCompoundTargetReticle::CCompoundTargetReticle(const CStateManager& mgr)
|
||||||
: x0_(static_cast<const CActor*>(mgr.GetCameraManager()->GetCurrentCamera(mgr))->GetTransform().buildMatrix3f())
|
: x0_(mgr.GetCameraManager()->GetCurrentCamera(mgr)->GetTransform().buildMatrix3f())
|
||||||
, x10_(static_cast<const CActor*>(mgr.GetCameraManager()->GetCurrentCamera(mgr))->GetTransform().buildMatrix3f())
|
, x10_(mgr.GetCameraManager()->GetCurrentCamera(mgr)->GetTransform().buildMatrix3f())
|
||||||
, x2c_overshootOffsetHalf(0.5f * g_tweakTargeting->GetOvershootOffset())
|
, x2c_overshootOffsetHalf(0.5f * g_tweakTargeting->GetOvershootOffset())
|
||||||
, x30_premultOvershootOffset(calculate_premultiplied_overshoot_offset(g_tweakTargeting->GetOvershootOffset()))
|
, x30_premultOvershootOffset(calculate_premultiplied_overshoot_offset(g_tweakTargeting->GetOvershootOffset()))
|
||||||
, x34_crosshairs(g_SimplePool->GetObj(skCrosshairsReticleAssetName))
|
, x34_crosshairs(g_SimplePool->GetObj(skCrosshairsReticleAssetName))
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
#include "CScriptActor.hpp"
|
#include "CScriptActor.hpp"
|
||||||
#include "CStateManager.hpp"
|
#include "CStateManager.hpp"
|
||||||
#include "CScriptTrigger.hpp"
|
#include "CScriptTrigger.hpp"
|
||||||
|
#include "Camera/CGameCamera.hpp"
|
||||||
#include "CDamageVulnerability.hpp"
|
#include "CDamageVulnerability.hpp"
|
||||||
#include "CPlayerState.hpp"
|
#include "CPlayerState.hpp"
|
||||||
#include "CScriptColorModulate.hpp"
|
#include "CScriptColorModulate.hpp"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user