Compare commits
2 Commits
esppiral-m
...
Pgta/Duck-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d0ea5f41be | ||
|
|
f7d23f3bb3 |
@@ -3881,36 +3881,49 @@ bool CPad::CollectPickupJustDown(void)
|
||||
return false;
|
||||
}
|
||||
|
||||
bool CPad::DuckJustDown(void)
|
||||
bool CPad::DuckJustDown(void)
|
||||
{
|
||||
if (ArePlayerControlsDisabled())
|
||||
if (ArePlayerControlsDisabled()) {
|
||||
duckFrameCounter = 0;
|
||||
return false;
|
||||
}
|
||||
|
||||
#ifdef RW_DC
|
||||
switch (CPad::GetPad(0)->Mode)
|
||||
{
|
||||
case 0: //Xbox Mode
|
||||
if (CPad::GetPad(0)->IsDualAnalog)
|
||||
{
|
||||
return !!(NewState.X&& !OldState.X);
|
||||
}
|
||||
else
|
||||
{
|
||||
return !!(NewState.X&& !OldState.X);
|
||||
}
|
||||
case 1: //PS2 Mode
|
||||
if (CPad::GetPad(0)->IsDualAnalog)
|
||||
{
|
||||
return !!(NewState.X&& !OldState.X);
|
||||
}
|
||||
else
|
||||
{
|
||||
return !!(NewState.X&& !OldState.X);
|
||||
}
|
||||
bool buttonPressed = false;
|
||||
switch (CPad::GetPad(0)->Mode) {
|
||||
case 0: // Xbox Mode
|
||||
buttonPressed = NewState.X;
|
||||
break;
|
||||
case 1: // PS2 Mode
|
||||
buttonPressed = NewState.X;
|
||||
break;
|
||||
}
|
||||
|
||||
if (buttonPressed) {
|
||||
duckFrameCounter++;
|
||||
if (duckFrameCounter >= DUCK_DELAY_FRAMES && !isDucking) {
|
||||
isDucking = true;
|
||||
return true; // Trigger ducking after delay
|
||||
}
|
||||
} else {
|
||||
duckFrameCounter = 0;
|
||||
isDucking = false;
|
||||
}
|
||||
|
||||
return false;
|
||||
#else
|
||||
return !!(NewState.LeftShock && !OldState.LeftShock);
|
||||
bool buttonPressed = NewState.Square;
|
||||
if (buttonPressed) {
|
||||
duckFrameCounter++;
|
||||
if (duckFrameCounter >= DUCK_DELAY_FRAMES && !isDucking) {
|
||||
isDucking = true;
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
duckFrameCounter = 0;
|
||||
isDucking = false;
|
||||
}
|
||||
return false;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -173,11 +173,26 @@ public:
|
||||
uint32 CameraJustUpTime;
|
||||
uint32 CameraLastPressed;
|
||||
bool CameraIsDoublePressed;
|
||||
static const int DUCK_DELAY_FRAMES = 30; // 1 second at 30 FPS
|
||||
int duckFrameCounter; // Frames the duck button has been held
|
||||
bool isDucking; // Tracks if duck action is active
|
||||
|
||||
#ifdef DETECT_PAD_INPUT_SWITCH
|
||||
static bool IsAffectedByController;
|
||||
static bool IsAffectedByController;
|
||||
#endif
|
||||
CPad() { }
|
||||
|
||||
CPad() : duckFrameCounter(0), isDucking(false), // New variables initialized
|
||||
SteeringLeftRightBuffer{0}, DrunkDrivingBufferUsed(0), Phase(0), Mode(0),
|
||||
ShakeDur(0), DisablePlayerControls(0), ShakeFreq(0), iCurrHornHistory(0),
|
||||
JustOutOfFrontend(0), bApplyBrakes(0), LastTimeTouched(0), AverageWeapon(0),
|
||||
AverageEntries(0), IsKeyboardMouse(false), IsDualAnalog(false),
|
||||
CameraJustDown(false), CameraJustUp(false), CameraJustUpTime(0),
|
||||
CameraLastPressed(0), CameraIsDoublePressed(false) {
|
||||
Clear(false);
|
||||
memset(bHornHistory, 0, sizeof(bHornHistory));
|
||||
memset(CheatString, 0, sizeof(CheatString));
|
||||
}
|
||||
|
||||
~CPad() { }
|
||||
|
||||
static bool bDisplayNoControllerMessage;
|
||||
|
||||
Reference in New Issue
Block a user