Skip to content

Commit d919eab

Browse files
authored
Fix jetpack issues after #3511 (#4102)
1 parent c939378 commit d919eab

File tree

3 files changed

+9
-1
lines changed

3 files changed

+9
-1
lines changed

Client/game_sa/TaskJumpFallSA.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ class CTaskSimpleClimbSA : public virtual CTaskSimpleSA, public virtual CTaskSim
5959
class CTaskSimpleJetPackSAInterface : public CTaskSimpleSAInterface
6060
{
6161
public:
62-
unsigned char m_bIsFinished;
62+
bool m_bIsFinished;
6363
unsigned char m_bAddedIdleAnim;
6464
unsigned char m_bAnimsReferenced;
6565
unsigned char m_bAttackButtonPressed;
@@ -100,4 +100,6 @@ class CTaskSimpleJetPackSA : public virtual CTaskSimpleSA, public virtual CTaskS
100100
public:
101101
CTaskSimpleJetPackSA(){};
102102
CTaskSimpleJetPackSA(const CVector* pVecTargetPos, float fCruiseHeight = 10.0f, int nHoverTime = 0);
103+
104+
bool IsFinished() const override { return static_cast<const CTaskSimpleJetPackSAInterface*>(GetInterface())->m_bIsFinished; }
103105
};

Client/mods/deathmatch/logic/CClientPed.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4602,6 +4602,10 @@ bool CClientPed::HasJetPack()
46024602
CTask* pPrimaryTask = m_pTaskManager->GetSimplestActiveTask();
46034603
if (pPrimaryTask && pPrimaryTask->GetTaskType() == TASK_SIMPLE_JETPACK)
46044604
{
4605+
auto* jetpackTask = dynamic_cast<CTaskSimpleJetPack*>(pPrimaryTask);
4606+
if (jetpackTask && jetpackTask->IsFinished())
4607+
return false;
4608+
46054609
return true;
46064610
}
46074611
return false;

Client/sdk/game/TaskJumpFall.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,4 +23,6 @@ class CTaskSimpleJetPack : public virtual CTaskSimple
2323
{
2424
public:
2525
virtual ~CTaskSimpleJetPack(){};
26+
27+
virtual bool IsFinished() const = 0;
2628
};

0 commit comments

Comments
 (0)