mirror of
https://github.com/GTAmodding/re3.git
synced 2021-02-19 17:49:54 +01:00
367 lines
12 KiB
C++
367 lines
12 KiB
C++
#pragma once
|
|
|
|
// same as RW skeleton
|
|
/*
|
|
enum Key
|
|
{
|
|
// ascii...
|
|
|
|
KEY_ESC = 128,
|
|
|
|
KEY_F1 = 129,
|
|
KEY_F2 = 130,
|
|
KEY_F3 = 131,
|
|
KEY_F4 = 132,
|
|
KEY_F5 = 133,
|
|
KEY_F6 = 134,
|
|
KEY_F7 = 135,
|
|
KEY_F8 = 136,
|
|
KEY_F9 = 137,
|
|
KEY_F10 = 138,
|
|
KEY_F11 = 139,
|
|
KEY_F12 = 140,
|
|
|
|
KEY_INS = 141,
|
|
KEY_DEL = 142,
|
|
KEY_HOME = 143,
|
|
KEY_END = 144,
|
|
KEY_PGUP = 145,
|
|
KEY_PGDN = 146,
|
|
|
|
KEY_UP = 147,
|
|
KEY_DOWN = 148,
|
|
KEY_LEFT = 149,
|
|
KEY_RIGHT = 150,
|
|
|
|
// some stuff ommitted
|
|
|
|
KEY_BACKSP = 168,
|
|
KEY_TAB = 169,
|
|
KEY_CAPSLK = 170,
|
|
KEY_ENTER = 171,
|
|
KEY_LSHIFT = 172,
|
|
KEY_RSHIFT = 173,
|
|
KEY_LCTRL = 174,
|
|
KEY_RCTRL = 175,
|
|
KEY_LALT = 176,
|
|
KEY_RALT = 177,
|
|
|
|
KEY_NULL, // unused
|
|
KEY_NUMKEYS
|
|
};
|
|
*/
|
|
|
|
|
|
class CControllerState
|
|
{
|
|
public:
|
|
int16 LeftStickX, LeftStickY;
|
|
int16 RightStickX, RightStickY;
|
|
int16 LeftShoulder1, LeftShoulder2;
|
|
int16 RightShoulder1, RightShoulder2;
|
|
int16 DPadUp, DPadDown, DPadLeft, DPadRight;
|
|
int16 Start, Select;
|
|
int16 Square, Triangle, Cross, Circle;
|
|
int16 LeftShock, RightShock;
|
|
int16 NetworkTalk;
|
|
float GetLeftStickX(void) { return LeftStickX/32767.0f; };
|
|
float GetLeftStickY(void) { return LeftStickY/32767.0f; };
|
|
float GetRightStickX(void) { return RightStickX/32767.0f; };
|
|
float GetRightStickY(void) { return RightStickY/32767.0f; };
|
|
|
|
void Clear(void);
|
|
};
|
|
VALIDATE_SIZE(CControllerState, 0x2A);
|
|
|
|
class CMouseControllerState
|
|
{
|
|
public:
|
|
//uint32 btns; // bit 0-2 button 1-3
|
|
|
|
Bool LMB;
|
|
Bool RMB;
|
|
Bool MMB;
|
|
Bool WHEELUP;
|
|
Bool WHEELDN;
|
|
Bool MXB1;
|
|
Bool MXB2;
|
|
char _pad0;
|
|
|
|
Float x, y;
|
|
|
|
CMouseControllerState();
|
|
void Clear();
|
|
};
|
|
|
|
VALIDATE_SIZE(CMouseControllerState, 0x10);
|
|
|
|
class CMousePointerStateHelper
|
|
{
|
|
public:
|
|
Bool bInvertHorizontally;
|
|
Bool bInvertVertically;
|
|
|
|
CMouseControllerState GetMouseSetUp();
|
|
};
|
|
|
|
VALIDATE_SIZE(CMousePointerStateHelper, 0x2);
|
|
|
|
extern CMousePointerStateHelper &MousePointerStateHelper;
|
|
|
|
|
|
class CKeyboardState
|
|
{
|
|
public:
|
|
Int16 F[12];
|
|
Int16 VK_KEYS[256];
|
|
Int16 ESC;
|
|
Int16 INS;
|
|
Int16 DEL;
|
|
Int16 HOME;
|
|
Int16 END;
|
|
Int16 PGUP;
|
|
Int16 PGDN;
|
|
Int16 UP;
|
|
Int16 DOWN;
|
|
Int16 LEFT;
|
|
Int16 RIGHT;
|
|
Int16 SCROLLLOCK;
|
|
Int16 PAUSE;
|
|
Int16 NUMLOCK;
|
|
Int16 DIV;
|
|
Int16 MUL;
|
|
Int16 SUB;
|
|
Int16 ADD;
|
|
Int16 ENTER;
|
|
Int16 DECIMAL;
|
|
Int16 NUM1;
|
|
Int16 NUM2;
|
|
Int16 NUM3;
|
|
Int16 NUM4;
|
|
Int16 NUM5;
|
|
Int16 NUM6;
|
|
Int16 NUM7;
|
|
Int16 NUM8;
|
|
Int16 NUM9;
|
|
Int16 NUM0;
|
|
Int16 BACKSP;
|
|
Int16 TAB;
|
|
Int16 CAPSLOCK;
|
|
Int16 EXTENTER;
|
|
Int16 LSHIFT;
|
|
Int16 RSHIFT;
|
|
Int16 SHIFT;
|
|
Int16 LCTRL;
|
|
Int16 RCTRL;
|
|
Int16 LALT;
|
|
Int16 RALT;
|
|
Int16 LWIN;
|
|
Int16 RWIN;
|
|
Int16 APPS;
|
|
|
|
void Clear();
|
|
};
|
|
|
|
VALIDATE_SIZE(CKeyboardState, 0x270);
|
|
|
|
enum
|
|
{
|
|
// taken from miss2
|
|
PAD1 = 0,
|
|
PAD2,
|
|
|
|
MAX_PADS
|
|
};
|
|
|
|
class CPad
|
|
{
|
|
public:
|
|
CControllerState NewState;
|
|
CControllerState OldState;
|
|
CControllerState PCTempKeyState;
|
|
CControllerState PCTempJoyState;
|
|
CControllerState PCTempMouseState;
|
|
// straight out of my IDB
|
|
int16 Phase;
|
|
int16 Mode;
|
|
int16 ShakeDur;
|
|
UInt8 ShakeFreq;
|
|
int8 bHornHistory[5];
|
|
UInt8 iCurrHornHistory;
|
|
Bool DisablePlayerControls;
|
|
int8 bApplyBrakes;
|
|
Char _unk[12]; //int32 unk[3];
|
|
char _pad0[3];
|
|
int32 LastTimeTouched;
|
|
int32 AverageWeapon;
|
|
int32 AverageEntries;
|
|
|
|
CPad() { }
|
|
~CPad() { }
|
|
|
|
static Bool &bDisplayNoControllerMessage;
|
|
static Bool &bObsoleteControllerMessage;
|
|
static Bool &m_bMapPadOneToPadTwo;
|
|
|
|
static CKeyboardState &OldKeyState;
|
|
static CKeyboardState &NewKeyState;
|
|
static CKeyboardState &TempKeyState;
|
|
static Char KeyBoardCheatString[18];
|
|
static CMouseControllerState &OldMouseControllerState;
|
|
static CMouseControllerState &NewMouseControllerState;
|
|
static CMouseControllerState &PCTempMouseControllerState;
|
|
|
|
|
|
|
|
|
|
void Clear(Bool bResetPlayerControls);
|
|
void ClearMouseHistory();
|
|
void UpdateMouse();
|
|
CControllerState ReconcileTwoControllersInput(CControllerState const &State1, CControllerState const &State2);
|
|
void StartShake(Int16 nDur, UInt8 nFreq);
|
|
void StartShake_Distance(Int16 nDur, UInt8 nFreq, Float fX, Float fY, Float fz);
|
|
void StartShake_Train(Float fX, Float fY);
|
|
void AddToPCCheatString(Char c);
|
|
|
|
static void UpdatePads(void);
|
|
void ProcessPCSpecificStuff(void);
|
|
void Update(Int16 unk);
|
|
|
|
static void DoCheats(void);
|
|
void DoCheats(Int16 unk);
|
|
|
|
static void StopPadsShaking(void);
|
|
void StopShaking(Int16 unk);
|
|
|
|
static CPad *GetPad(Int32 pad);
|
|
|
|
Int16 GetSteeringLeftRight(void);
|
|
Int16 GetSteeringUpDown(void);
|
|
Int16 GetCarGunUpDown(void);
|
|
Int16 GetCarGunLeftRight(void);
|
|
Int16 GetPedWalkLeftRight(void);
|
|
Int16 GetPedWalkUpDown(void);
|
|
Int16 GetAnalogueUpDown(void);
|
|
Bool GetLookLeft(void);
|
|
Bool GetLookRight(void);
|
|
Bool GetLookBehindForCar(void);
|
|
Bool GetLookBehindForPed(void);
|
|
Bool GetHorn(void);
|
|
Bool HornJustDown(void);
|
|
Bool GetCarGunFired(void);
|
|
Bool CarGunJustDown(void);
|
|
Int16 GetHandBrake(void);
|
|
Int16 GetBrake(void);
|
|
Bool GetExitVehicle(void);
|
|
Bool ExitVehicleJustDown(void);
|
|
Int32 GetWeapon(void);
|
|
Bool WeaponJustDown(void);
|
|
Int16 GetAccelerate(void);
|
|
Bool CycleCameraModeUpJustDown(void);
|
|
Bool CycleCameraModeDownJustDown(void);
|
|
Bool ChangeStationJustDown(void);
|
|
Bool CycleWeaponLeftJustDown(void);
|
|
Bool CycleWeaponRightJustDown(void);
|
|
Bool GetTarget(void);
|
|
Bool TargetJustDown(void);
|
|
Bool JumpJustDown(void);
|
|
Bool GetSprint(void);
|
|
Bool ShiftTargetLeftJustDown(void);
|
|
Bool ShiftTargetRightJustDown(void);
|
|
Bool GetAnaloguePadUp(void);
|
|
Bool GetAnaloguePadDown(void);
|
|
Bool GetAnaloguePadLeft(void);
|
|
Bool GetAnaloguePadRight(void);
|
|
Bool GetAnaloguePadLeftJustUp(void);
|
|
Bool GetAnaloguePadRightJustUp(void);
|
|
Bool ForceCameraBehindPlayer(void);
|
|
Bool SniperZoomIn(void);
|
|
Bool SniperZoomOut(void);
|
|
Int16 SniperModeLookLeftRight(void);
|
|
Int16 SniperModeLookUpDown(void);
|
|
Int16 LookAroundLeftRight(void);
|
|
Int16 LookAroundUpDown(void);
|
|
void ResetAverageWeapon(void);
|
|
static void PrintErrorMessage(void);
|
|
static void ResetCheats(void);
|
|
static Char *EditString(Char *pStr, Int32 nSize);
|
|
static Int32 *EditCodesForControls(Int32 *pRsKeys, Int32 nSize);
|
|
|
|
// mouse
|
|
inline Bool GetLeftMouseJustDown() { return !!(NewMouseControllerState.LMB && !OldMouseControllerState.LMB); }
|
|
|
|
// keyboard
|
|
|
|
inline Bool GetCharJustDown(Char c) { return !!(NewKeyState.VK_KEYS[c] && !OldKeyState.VK_KEYS[c]); }
|
|
inline Bool GetFJustDown(Int32 n) { return !!(NewKeyState.F[n] && !OldKeyState.F[n]); }
|
|
inline Bool GetEscapeJustDown() { return !!(NewKeyState.ESC && !OldKeyState.ESC); }
|
|
inline Bool GetInsertJustDown() { return !!(NewKeyState.INS && !OldKeyState.INS); }
|
|
inline Bool GetDeleteJustDown() { return !!(NewKeyState.DEL && !OldKeyState.DEL); }
|
|
inline Bool GetHomeJustDown() { return !!(NewKeyState.HOME && !OldKeyState.HOME); }
|
|
inline Bool GetEndJustDown() { return !!(NewKeyState.END && !OldKeyState.END); }
|
|
inline Bool GetPageUpJustDown() { return !!(NewKeyState.PGUP && !OldKeyState.PGUP); }
|
|
inline Bool GetPageDownJustDown() { return !!(NewKeyState.PGDN && !OldKeyState.PGDN); }
|
|
inline Bool GetUpJustDown() { return !!(NewKeyState.UP && !OldKeyState.UP); }
|
|
inline Bool GetDownJustDown() { return !!(NewKeyState.DOWN && !OldKeyState.DOWN); }
|
|
inline Bool GetLeftJustDown() { return !!(NewKeyState.LEFT && !OldKeyState.LEFT); }
|
|
inline Bool GetRightJustDown() { return !!(NewKeyState.RIGHT && !OldKeyState.RIGHT); }
|
|
inline Bool GetScrollLockJustDown() { return !!(NewKeyState.SCROLLLOCK && !OldKeyState.SCROLLLOCK); }
|
|
inline Bool GetPauseJustDown() { return !!(NewKeyState.PAUSE && !OldKeyState.PAUSE); }
|
|
inline Bool GetNumLockJustDown() { return !!(NewKeyState.NUMLOCK && !OldKeyState.NUMLOCK); }
|
|
inline Bool GetDivideJustDown() { return !!(NewKeyState.DIV && !OldKeyState.DIV); }
|
|
inline Bool GetTimesJustDown() { return !!(NewKeyState.MUL && !OldKeyState.MUL); }
|
|
inline Bool GetMinusJustDown() { return !!(NewKeyState.SUB && !OldKeyState.SUB); }
|
|
inline Bool GetPlusJustDown() { return !!(NewKeyState.ADD && !OldKeyState.ADD); }
|
|
inline Bool GetPadEnterJustDown() { return !!(NewKeyState.ENTER && !OldKeyState.ENTER); } // GetEnterJustDown
|
|
inline Bool GetPadDelJustDown() { return !!(NewKeyState.DECIMAL && !OldKeyState.DECIMAL); }
|
|
inline Bool GetPad1JustDown() { return !!(NewKeyState.NUM1 && !OldKeyState.NUM1); }
|
|
inline Bool GetPad2JustDown() { return !!(NewKeyState.NUM2 && !OldKeyState.NUM2); }
|
|
inline Bool GetPad3JustDown() { return !!(NewKeyState.NUM3 && !OldKeyState.NUM3); }
|
|
inline Bool GetPad4JustDown() { return !!(NewKeyState.NUM4 && !OldKeyState.NUM4); }
|
|
inline Bool GetPad5JustDown() { return !!(NewKeyState.NUM5 && !OldKeyState.NUM5); }
|
|
inline Bool GetPad6JustDown() { return !!(NewKeyState.NUM6 && !OldKeyState.NUM6); }
|
|
inline Bool GetPad7JustDown() { return !!(NewKeyState.NUM7 && !OldKeyState.NUM7); }
|
|
inline Bool GetPad8JustDown() { return !!(NewKeyState.NUM8 && !OldKeyState.NUM8); }
|
|
inline Bool GetPad9JustDown() { return !!(NewKeyState.NUM9 && !OldKeyState.NUM9); }
|
|
inline Bool GetPad0JustDown() { return !!(NewKeyState.NUM0 && !OldKeyState.NUM0); }
|
|
inline Bool GetBackspaceJustDown() { return !!(NewKeyState.BACKSP && !OldKeyState.BACKSP); }
|
|
inline Bool GetTabJustDown() { return !!(NewKeyState.TAB && !OldKeyState.TAB); }
|
|
inline Bool GetCapsLockJustDown() { return !!(NewKeyState.CAPSLOCK && !OldKeyState.CAPSLOCK); }
|
|
inline Bool GetEnterJustDown() { return !!(NewKeyState.EXTENTER && !OldKeyState.EXTENTER); }
|
|
inline Bool GetLeftShiftJustDown() { return !!(NewKeyState.LSHIFT && !OldKeyState.LSHIFT); }
|
|
inline Bool GetShiftJustDown() { return !!(NewKeyState.SHIFT && !OldKeyState.SHIFT); }
|
|
inline Bool GetRightShiftJustDown() { return !!(NewKeyState.RSHIFT && !OldKeyState.RSHIFT); }
|
|
inline Bool GetLeftCtrlJustDown() { return !!(NewKeyState.LCTRL && !OldKeyState.LCTRL); }
|
|
inline Bool GetRightCtrlJustDown() { return !!(NewKeyState.RCTRL && !OldKeyState.RCTRL); }
|
|
inline Bool GetLeftAltJustDown() { return !!(NewKeyState.LALT && !OldKeyState.LALT); }
|
|
inline Bool GetRightAltJustDown() { return !!(NewKeyState.RALT && !OldKeyState.RALT); }
|
|
inline Bool GetLeftWinJustDown() { return !!(NewKeyState.LWIN && !OldKeyState.LWIN); }
|
|
inline Bool GetRightWinJustDown() { return !!(NewKeyState.RWIN && !OldKeyState.RWIN); }
|
|
inline Bool GetAppsJustDown() { return !!(NewKeyState.APPS && !OldKeyState.APPS); }
|
|
|
|
// pad
|
|
|
|
inline Bool GetTriangleJustDown() { return !!(NewState.Triangle && !OldState.Triangle); }
|
|
inline Bool GetCircleJustDown() { return !!(NewState.Circle && !OldState.Circle); }
|
|
inline Bool GetCrossJustDown() { return !!(NewState.Cross && !OldState.Cross); }
|
|
inline Bool GetSquareJustDown() { return !!(NewState.Square && !OldState.Square); }
|
|
inline Bool GetDPadUpJustDown() { return !!(NewState.DPadUp && !OldState.DPadUp); }
|
|
inline Bool GetDPadDownJustDown() { return !!(NewState.DPadDown && !OldState.DPadDown); }
|
|
inline Bool GetDPadLeftJustDown() { return !!(NewState.DPadLeft && !OldState.DPadLeft); }
|
|
inline Bool GetDPadRightJustDown() { return !!(NewState.DPadRight && !OldState.DPadRight); }
|
|
inline Bool GetLeftShoulder1JustDown() { return !!(NewState.LeftShoulder1 && !OldState.LeftShoulder1); }
|
|
inline Bool GetLeftShoulder2JustDown() { return !!(NewState.LeftShoulder2 && !OldState.LeftShoulder2); }
|
|
inline Bool GetRightShoulder1JustDown() { return !!(NewState.RightShoulder1 && !OldState.RightShoulder1); }
|
|
inline Bool GetRightShoulder2JustDown() { return !!(NewState.RightShoulder2 && !OldState.RightShoulder2); }
|
|
|
|
inline Int32 GetLeftShoulder1(void) { return NewState.LeftShoulder1; }
|
|
inline Int32 GetLeftShoulder2(void) { return NewState.LeftShoulder2; }
|
|
inline Int32 GetRightShoulder1(void) { return NewState.RightShoulder1; }
|
|
inline Int32 GetRightShoulder2(void) { return NewState.RightShoulder2; }
|
|
};
|
|
VALIDATE_SIZE(CPad, 0xFC);
|
|
|
|
#define IsButtonJustDown(pad, btn) \
|
|
(!(pad)->OldState.btn && (pad)->NewState.btn)
|
|
|
|
void LittleTest(void); |