diff options
author | eray orçunus <erayorcunus@gmail.com> | 2020-06-20 16:23:32 +0300 |
---|---|---|
committer | eray orçunus <erayorcunus@gmail.com> | 2020-06-20 16:23:32 +0300 |
commit | 0625954bb74e687ed73b496bc06e9db58407e045 (patch) | |
tree | 3ec342a96685889bf2512ececcfc76f1bdac14a0 /src/core | |
parent | e9e533b0cba04a06b6ac9dfaddee2ea4fa19a72d (diff) |
Ducking, shooting vehicle occupants and weapon fixes
Diffstat (limited to 'src/core')
-rw-r--r-- | src/core/Collision.cpp | 13 | ||||
-rw-r--r-- | src/core/Collision.h | 2 | ||||
-rw-r--r-- | src/core/ControllerConfig.cpp | 4 | ||||
-rw-r--r-- | src/core/Pad.cpp | 8 | ||||
-rw-r--r-- | src/core/Pad.h | 1 |
5 files changed, 26 insertions, 2 deletions
diff --git a/src/core/Collision.cpp b/src/core/Collision.cpp index 77e28a10..76019c2f 100644 --- a/src/core/Collision.cpp +++ b/src/core/Collision.cpp @@ -1861,6 +1861,19 @@ CColTrianglePlane::Set(const CVector *v, CColTriangle &tri) dir = normal.z < 0.0f ? DIR_Z_NEG : DIR_Z_POS; } +CColPoint& +CColPoint::operator=(const CColPoint& other) +{ + point = other.point; + normal = other.normal; + surfaceA = other.surfaceA; + pieceA = other.pieceA; + surfaceB = other.surfaceB; + pieceB = other.pieceB; + // doesn't copy depth + return *this; +} + CColModel::CColModel(void) { numSpheres = 0; diff --git a/src/core/Collision.h b/src/core/Collision.h index 9f08ccd6..09abaa1c 100644 --- a/src/core/Collision.h +++ b/src/core/Collision.h @@ -89,6 +89,8 @@ struct CColPoint uint8 surfaceB; uint8 pieceB; float depth; + + CColPoint& operator=(const CColPoint& other); }; struct CStoredCollPoly diff --git a/src/core/ControllerConfig.cpp b/src/core/ControllerConfig.cpp index 2a5d20f0..c3e4e872 100644 --- a/src/core/ControllerConfig.cpp +++ b/src/core/ControllerConfig.cpp @@ -767,7 +767,7 @@ void CControllerConfigManager::AffectControllerStateOn_ButtonDown_FirstPersonOnl if (button == GetControllerKeyAssociatedWithAction(PED_SNIPER_ZOOM_OUT, type)) state.Cross = 255; if (button == GetControllerKeyAssociatedWithAction(PED_DUCK, type)) - state.RightShock = 255; + state.LeftShock = 255; } void CControllerConfigManager::AffectControllerStateOn_ButtonDown_ThirdPersonOnly(int32 button, eControllerType type, CControllerState &state) @@ -785,7 +785,7 @@ void CControllerConfigManager::AffectControllerStateOn_ButtonDown_ThirdPersonOnl if (button == GetControllerKeyAssociatedWithAction(PED_SPRINT, type)) state.Cross = 255; if (button == GetControllerKeyAssociatedWithAction(PED_DUCK, type)) - state.RightShock = 255; + state.LeftShock = 255; if (FrontEndMenuManager.m_ControlMethod == CONTROL_CLASSIC) { diff --git a/src/core/Pad.cpp b/src/core/Pad.cpp index ab66dd9b..084fe888 100644 --- a/src/core/Pad.cpp +++ b/src/core/Pad.cpp @@ -2336,6 +2336,14 @@ bool CPad::TargetJustDown(void) return false; } +bool CPad::DuckJustDown(void) +{ + if (ArePlayerControlsDisabled()) + return false; + + return !!(NewState.LeftShock && !OldState.LeftShock); +} + bool CPad::JumpJustDown(void) { if ( ArePlayerControlsDisabled() ) diff --git a/src/core/Pad.h b/src/core/Pad.h index a1461575..d0623a1e 100644 --- a/src/core/Pad.h +++ b/src/core/Pad.h @@ -237,6 +237,7 @@ public: bool CycleWeaponRightJustDown(void); bool GetTarget(void); bool TargetJustDown(void); + bool DuckJustDown(void); bool JumpJustDown(void); bool GetSprint(void); bool ShiftTargetLeftJustDown(void); |