Skip to content

Commit dabc9a0

Browse files
Synchronize changes from 1.6 master branch [ci skip]
797331f Add "hanging" movement state to getPedMoveState (PR #4350) 3e6c1a5 Update client en_US pot
2 parents 67534c4 + 797331f commit dabc9a0

File tree

5 files changed

+17
-3
lines changed

5 files changed

+17
-3
lines changed

Client/game_sa/TaskJumpFallSA.h

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ class CTaskSimpleClimbSAInterface : public CTaskSimpleSAInterface
3131
bool m_bChangePosition;
3232
bool m_bForceClimb;
3333
bool m_bInvalidClimb;
34-
char m_nHeightForAnim;
35-
char m_nHeightForPos;
34+
eClimbHeights m_nHeightForAnim;
35+
eClimbHeights m_nHeightForPos;
3636
unsigned char m_nSurfaceType;
3737
char m_nFallAfterVault;
3838
float m_fHandholdHeading;
@@ -49,6 +49,8 @@ class CTaskSimpleClimbSA : public virtual CTaskSimpleSA, public virtual CTaskSim
4949
CTaskSimpleClimbSA(){};
5050
CTaskSimpleClimbSA(CEntity* pClimbEnt, const CVector& vecTarget, float fHeading, unsigned char nSurfaceType, char nHeight = CLIMB_GRAB,
5151
const bool bForceClimb = false);
52+
53+
eClimbHeights GetHeightForPos() const override { return static_cast<const CTaskSimpleClimbSAInterface*>(GetInterface())->m_nHeightForPos; }
5254
};
5355

5456
// ##############################################################################

Client/mods/deathmatch/logic/CClientPed.cpp

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -241,6 +241,7 @@ void CClientPed::Init(CClientManager* pManager, unsigned long ulModelID, bool bI
241241
m_MovementStateNames[MOVEMENTSTATE_ASCENT_JETPACK] = "ascent_jetpack";
242242
m_MovementStateNames[MOVEMENTSTATE_DESCENT_JETPACK] = "descent_jetpack";
243243
m_MovementStateNames[MOVEMENTSTATE_JETPACK] = "jetpack_flying";
244+
m_MovementStateNames[MOVEMENTSTATE_HANGING] = "hanging";
244245

245246
// Create the player model
246247
if (m_bIsLocalPlayer)
@@ -2426,7 +2427,13 @@ eMovementState CClientPed::GetMovementState()
24262427

24272428
// Check tasks
24282429
if (strcmp(szSimpleTaskName, "TASK_SIMPLE_CLIMB") == 0) // Is he climbing?
2430+
{
2431+
CTaskSimpleClimb* climbingTask = dynamic_cast<CTaskSimpleClimb*>(GetTaskManager()->GetSimplestActiveTask());
2432+
if (climbingTask && climbingTask->GetHeightForPos() == eClimbHeights::CLIMB_GRAB)
2433+
return MOVEMENTSTATE_HANGING;
2434+
24292435
return MOVEMENTSTATE_CLIMB;
2436+
}
24302437
else if (strcmp(szComplexTaskName, "TASK_COMPLEX_JUMP") == 0) // Is he jumping?
24312438
return MOVEMENTSTATE_JUMP;
24322439
else if (strcmp(szSimpleTaskName, "TASK_SIMPLE_GO_TO_POINT") == 0) // Entering vehicle (walking to the doors)?

Client/mods/deathmatch/logic/CClientPed.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ enum eMovementState
8282
MOVEMENTSTATE_ASCENT_JETPACK, // Ascending with jetpack
8383
MOVEMENTSTATE_DESCENT_JETPACK, // Descending with jetpack
8484
MOVEMENTSTATE_JETPACK, // Jetpack flying
85+
MOVEMENTSTATE_HANGING, // Hanging from the whall during climbing task
8586
};
8687

8788
enum eDeathAnims

Client/sdk/game/CTasks.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class CVehicle;
5252
typedef unsigned long AssocGroupId;
5353
typedef unsigned long AnimationId;
5454

55-
enum eClimbHeights
55+
enum eClimbHeights : std::int8_t
5656
{
5757
CLIMB_NOT_READY = 0,
5858
CLIMB_GRAB,

Client/sdk/game/TaskJumpFall.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,14 @@
1313

1414
#include "Task.h"
1515

16+
enum eClimbHeights : std::int8_t;
17+
1618
class CTaskSimpleClimb : public virtual CTaskSimple
1719
{
1820
public:
1921
virtual ~CTaskSimpleClimb(){};
22+
23+
virtual eClimbHeights GetHeightForPos() const = 0;
2024
};
2125

2226
class CTaskSimpleJetPack : public virtual CTaskSimple

0 commit comments

Comments
 (0)