Files

43 lines
1.0 KiB
C++
Raw Permalink Normal View History

#ifndef _CSTATICINTERFERENCE
#define _CSTATICINTERFERENCE
2022-10-01 17:08:15 +03:00
#include "types.h"
#include "MetroidPrime/TGameTypes.hpp"
2022-10-01 17:08:15 +03:00
#include "rstl/vector.hpp"
2026-01-09 20:17:17 -08:00
class CStaticInterferenceSource {
public:
2022-11-10 12:55:04 +02:00
CStaticInterferenceSource(TUniqueId id, float magnitude, float timeLeft)
: x0_id(id), x4_magnitude(magnitude), x8_timeLeft(timeLeft) {}
2026-01-09 20:17:17 -08:00
const TUniqueId GetSourceId() const { return x0_id; }
const float GetIntensity() const { return x4_magnitude; }
void SetIntensity(const float v) { x4_magnitude = v; }
const float GetTime() const { return x8_timeLeft; }
void SetTime(const float v) { x8_timeLeft = v; }
private:
2022-10-01 17:08:15 +03:00
TUniqueId x0_id;
float x4_magnitude;
float x8_timeLeft;
};
class CStateManager;
2022-10-01 17:08:15 +03:00
class CStaticInterference {
public:
2022-10-03 20:00:46 -04:00
CStaticInterference(int sourceCount);
void AddSource(TUniqueId id, float magnitude, float duration);
void RemoveSource(TUniqueId id);
void Update(CStateManager&, float dt);
float GetTotalInterference() const;
2022-10-01 17:08:15 +03:00
private:
rstl::vector< CStaticInterferenceSource > sources;
};
#endif // _CSTATICINTERFERENCE