mirror of https://github.com/PrimeDecomp/prime.git
36 lines
808 B
C++
36 lines
808 B
C++
#ifndef _CRUMBLEGENERATOR
|
|
#define _CRUMBLEGENERATOR
|
|
|
|
#include "types.h"
|
|
|
|
#include "Kyoto/Input/CRumbleVoice.hpp"
|
|
#include "Kyoto/Input/InputTypes.hpp"
|
|
|
|
class CRumbleGenerator {
|
|
private:
|
|
static const EMotorState kStopAll[4];
|
|
CRumbleVoice x0_voices[4];
|
|
float xc0_periodTime[4];
|
|
float xd0_onTime[4];
|
|
EMotorState xe0_commandArray[4];
|
|
bool xf0_24_disabled : 1;
|
|
|
|
public:
|
|
CRumbleGenerator();
|
|
~CRumbleGenerator();
|
|
|
|
short Rumble(const SAdsrData& adsr, float, ERumblePriority prio, EIOPort port);
|
|
void Stop(short id, EIOPort port) {
|
|
if (id == -1)
|
|
return;
|
|
CRumbleVoice& vox = x0_voices[size_t(port)];
|
|
vox.Deactivate(id, false);
|
|
}
|
|
void Deactivate(short, bool);
|
|
void Update(float);
|
|
void HardStopAll();
|
|
void SetDisabled(const bool disabled);
|
|
};
|
|
|
|
#endif // _CRUMBLEGENERATOR
|