mirror of https://github.com/AxioDL/metaforce.git
Fix CScriptSound favoring the right speaker, cleanup CBallCamera, update amuse
This commit is contained in:
parent
b963ce1e85
commit
fdd41d87c4
File diff suppressed because it is too large
Load Diff
|
@ -150,12 +150,12 @@ private:
|
|||
zeus::CVector3f x35c_splineIntermediatePos;
|
||||
TUniqueId x368_obscuringObjectId = kInvalidUniqueId;
|
||||
ESplineState x36c_splineState = ESplineState::Invalid;
|
||||
bool x370_24_reevalSplineEnd : 1;
|
||||
bool x370_24_reevalSplineEnd : 1 = false;
|
||||
float x374_splineCtrl = 0.f;
|
||||
float x378_splineCtrlRange;
|
||||
CCameraSpline x37c_camSpline{false};
|
||||
CMaterialList x3c8_collisionExcludeList = {EMaterialTypes::NoStepLogic};
|
||||
bool x3d0_24_camBehindFloorOrWall : 1;
|
||||
bool x3d0_24_camBehindFloorOrWall : 1 = false;
|
||||
float x3d4_elevInterpTimer = 0.f;
|
||||
float x3d8_elevInterpStart = 0.f;
|
||||
TUniqueId x3dc_tooCloseActorId = kInvalidUniqueId;
|
||||
|
@ -202,12 +202,13 @@ private:
|
|||
void UpdateUsingPathCameras(float dt, CStateManager& mgr);
|
||||
zeus::CVector3f GetFixedLookTarget(const zeus::CVector3f& hintToLookDir, CStateManager& mgr) const;
|
||||
void UpdateUsingFixedCameras(float dt, CStateManager& mgr);
|
||||
zeus::CVector3f ComputeVelocity(const zeus::CVector3f& curVel, const zeus::CVector3f& posDelta) const;
|
||||
[[nodiscard]] zeus::CVector3f ComputeVelocity(const zeus::CVector3f& curVel, const zeus::CVector3f& posDelta) const;
|
||||
zeus::CVector3f TweenVelocity(const zeus::CVector3f& curVel, const zeus::CVector3f& newVel, float rate, float dt);
|
||||
zeus::CVector3f MoveCollisionActor(const zeus::CVector3f& pos, float dt, CStateManager& mgr);
|
||||
void UpdateUsingFreeLook(float dt, CStateManager& mgr);
|
||||
zeus::CVector3f InterpolateCameraElevation(const zeus::CVector3f& camPos, float dt);
|
||||
zeus::CVector3f CalculateCollidersCentroid(const std::vector<CCameraCollider>& colliderList, int numObscured) const;
|
||||
[[nodiscard]] zeus::CVector3f CalculateCollidersCentroid(const std::vector<CCameraCollider>& colliderList,
|
||||
int numObscured) const;
|
||||
zeus::CVector3f ApplyColliders();
|
||||
void UpdateColliders(const zeus::CTransform& xf, std::vector<CCameraCollider>& colliderList, int& it, int count,
|
||||
float tolerance, const rstl::reserved_vector<TUniqueId, 1024>& nearList, float dt,
|
||||
|
@ -218,7 +219,7 @@ private:
|
|||
float dt, CStateManager& mgr);
|
||||
zeus::CAABox CalculateCollidersBoundingBox(const std::vector<CCameraCollider>& colliderList,
|
||||
CStateManager& mgr) const;
|
||||
int CountObscuredColliders(const std::vector<CCameraCollider>& colliderList) const;
|
||||
[[nodiscard]] int CountObscuredColliders(const std::vector<CCameraCollider>& colliderList) const;
|
||||
void UpdateCollidersDistances(std::vector<CCameraCollider>& colliderList, float xMag, float zMag, float angOffset);
|
||||
void UpdateUsingColliders(float dt, CStateManager& mgr);
|
||||
void UpdateUsingSpindleCameras(float dt, CStateManager& mgr);
|
||||
|
@ -248,16 +249,16 @@ public:
|
|||
void ProcessInput(const CFinalInput& input, CStateManager& mgr) override;
|
||||
void Reset(const zeus::CTransform&, CStateManager& mgr) override;
|
||||
void Render(CStateManager& mgr) override;
|
||||
EBallCameraBehaviour GetBehaviour() const { return x188_behaviour; }
|
||||
EBallCameraState GetState() const { return x400_state; }
|
||||
[[nodiscard]] EBallCameraBehaviour GetBehaviour() const { return x188_behaviour; }
|
||||
[[nodiscard]] EBallCameraState GetState() const { return x400_state; }
|
||||
void SetState(EBallCameraState state, CStateManager& mgr);
|
||||
void Think(float dt, CStateManager& mgr) override;
|
||||
bool TransitionFromMorphBallState(CStateManager& mgr);
|
||||
TUniqueId GetTooCloseActorId() const { return x3dc_tooCloseActorId; }
|
||||
float GetTooCloseActorDistance() const { return x3e0_tooCloseActorDist; }
|
||||
[[nodiscard]] TUniqueId GetTooCloseActorId() const { return x3dc_tooCloseActorId; }
|
||||
[[nodiscard]] float GetTooCloseActorDistance() const { return x3e0_tooCloseActorDist; }
|
||||
void TeleportCamera(const zeus::CVector3f& pos, CStateManager& mgr);
|
||||
void TeleportCamera(const zeus::CTransform& xf, CStateManager& mgr);
|
||||
const zeus::CVector3f& GetLookPos() const { return x1d8_lookPos; }
|
||||
[[nodiscard]] const zeus::CVector3f& GetLookPos() const { return x1d8_lookPos; }
|
||||
void ResetToTweaks(CStateManager& mgr);
|
||||
void UpdateLookAtPosition(float dt, CStateManager& mgr);
|
||||
zeus::CTransform UpdateLookDirection(const zeus::CVector3f& dir, CStateManager& mgr);
|
||||
|
@ -267,8 +268,8 @@ public:
|
|||
void ResetPosition(CStateManager& mgr);
|
||||
void DoorClosed(TUniqueId doorId);
|
||||
void DoorClosing(TUniqueId doorId);
|
||||
const zeus::CVector3f& GetLookPosAhead() const { return x1c0_lookPosAhead; }
|
||||
const zeus::CVector3f& GetFixedLookPos() const { return x1cc_fixedLookPos; }
|
||||
[[nodiscard]] const zeus::CVector3f& GetLookPosAhead() const { return x1c0_lookPosAhead; }
|
||||
[[nodiscard]] const zeus::CVector3f& GetFixedLookPos() const { return x1cc_fixedLookPos; }
|
||||
|
||||
static bool IsBallNearDoor(const zeus::CVector3f& pos, CStateManager& mgr);
|
||||
};
|
||||
|
|
|
@ -13,11 +13,12 @@ void CCameraSpline::CalculateKnots(TUniqueId cameraId, const std::vector<SConnec
|
|||
const SConnection* lastConn = nullptr;
|
||||
|
||||
for (const SConnection& conn : connections) {
|
||||
if (conn.x0_state == EScriptObjectState::CameraPath && conn.x4_msg == EScriptObjectMessage::Follow)
|
||||
if (conn.x0_state == EScriptObjectState::CameraPath && conn.x4_msg == EScriptObjectMessage::Follow) {
|
||||
lastConn = &conn;
|
||||
}
|
||||
}
|
||||
|
||||
if (lastConn) {
|
||||
if (lastConn != nullptr) {
|
||||
TCastToConstPtr<CScriptCameraWaypoint> waypoint = mgr.ObjectById(mgr.GetIdForScript(lastConn->x8_objId));
|
||||
x14_wpTracker.clear();
|
||||
x14_wpTracker.reserve(4);
|
||||
|
@ -93,7 +94,7 @@ float CCameraSpline::GetKnotT(size_t idx) const {
|
|||
float CCameraSpline::CalculateSplineLength() {
|
||||
float ret = 0.f;
|
||||
x24_t.clear();
|
||||
if (x4_positions.size() > 0) {
|
||||
if (!x4_positions.empty()) {
|
||||
zeus::CVector3f prevPoint = x4_positions[0];
|
||||
float tDiv = 1.f / float(x4_positions.size() - 1);
|
||||
for (size_t i = 0; i < x4_positions.size(); ++i) {
|
||||
|
|
|
@ -25,7 +25,7 @@ CScriptSound::CScriptSound(TUniqueId uid, std::string_view name, const CEntityIn
|
|||
, x10e_vol(vol / 127.f)
|
||||
, x110_(w3)
|
||||
, x112_prio(s16(prio))
|
||||
, x114_pan(pan / 64.f - 1.f)
|
||||
, x114_pan(amuse::convertMusyXPanToAmusePan(pan))
|
||||
, x116_(w6)
|
||||
, x118_pitch(pitch / 8192.f)
|
||||
, x11c_25_looped(looped)
|
||||
|
|
|
@ -26,7 +26,7 @@ class CScriptSound : public CActor {
|
|||
s16 x110_;
|
||||
s16 x112_prio;
|
||||
float x114_pan;
|
||||
bool x116_;
|
||||
short x116_;
|
||||
float x118_pitch;
|
||||
bool x11c_24_playRequested : 1 = false;
|
||||
bool x11c_25_looped : 1;
|
||||
|
|
2
amuse
2
amuse
|
@ -1 +1 @@
|
|||
Subproject commit fa3188e569be2bebd6a05ada124b7d9ed71008f1
|
||||
Subproject commit 12752933271d7cf5ba48b8170e23c23c77257244
|
Loading…
Reference in New Issue