mirror of
https://github.com/Patoke/4JLibs.git
synced 2026-06-03 21:44:30 +00:00
60 lines
1.4 KiB
C++
60 lines
1.4 KiB
C++
#pragma once
|
|
#include "LinkedList.h"
|
|
|
|
#define MAX_EFFECTS 10
|
|
|
|
class CForceFeedback
|
|
{
|
|
public:
|
|
enum FF_PARAMS
|
|
{
|
|
FF_PARAMS_RAMP,
|
|
FF_PARAMS_PERIODIC
|
|
};
|
|
|
|
struct RUMBLE_EFFECT
|
|
{
|
|
DWORD m_Pad;
|
|
uint64_t m_TimeLeft;
|
|
XINPUT_VIBRATION m_RumbleData;
|
|
WORD unk;
|
|
};
|
|
|
|
struct FF_EFFECT
|
|
{
|
|
unsigned int m_uiEffectType;
|
|
unsigned int m_uiDurationMs;
|
|
BYTE gap8[4];
|
|
unsigned int m_uiMagnitude;
|
|
BYTE gap10[8];
|
|
DWORD dword18;
|
|
DWORD dword1C;
|
|
};
|
|
|
|
struct FF_EFFECT_INSTANCE
|
|
{
|
|
bool m_bIsActive;
|
|
unsigned int m_uiInst;
|
|
CForceFeedback::FF_EFFECT *m_Effect;
|
|
};
|
|
|
|
void Initialise(int iInputStateC, unsigned char ucMapC, unsigned char ucActionC, unsigned char ucMenuActionC);
|
|
void RumbleEnable(int iQuadrant, bool bRumbleEnabled);
|
|
void CreateEffect(void);
|
|
void AddEffectInstance(unsigned int uiEffect);
|
|
void SetEffectInstanceState(unsigned int uiEffectInstance, unsigned int uiState);
|
|
|
|
void ProcessEventInstance(FF_EFFECT_INSTANCE *pEffectInst);
|
|
void PauseEventInstance(FF_EFFECT_INSTANCE *pEffectInst);
|
|
|
|
void AddRumble(unsigned int uiPad, WORD leftMotorSpeed, WORD rightMotorSpeed, float fSeconds);
|
|
|
|
void Tick(void);
|
|
|
|
LinkedList m_EffectList;
|
|
FF_EFFECT *m_Effects;
|
|
int m_EffectC;
|
|
LinkedList m_RumbleList;
|
|
float m_TicksPerSecond;
|
|
bool m_unkBool;
|
|
}; |