diff options
author | aap <aap@papnet.eu> | 2019-08-02 14:02:02 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-08-02 14:02:02 +0200 |
commit | e30cfaf6871073ba56a5245d4d1b4da0eab784a3 (patch) | |
tree | 73434501fcd8b2167daf88c83c5a1e0f40671780 /src/peds/PlayerPed.cpp | |
parent | implemented CPlane (diff) | |
parent | The Peds (diff) | |
download | re3-e30cfaf6871073ba56a5245d4d1b4da0eab784a3.tar re3-e30cfaf6871073ba56a5245d4d1b4da0eab784a3.tar.gz re3-e30cfaf6871073ba56a5245d4d1b4da0eab784a3.tar.bz2 re3-e30cfaf6871073ba56a5245d4d1b4da0eab784a3.tar.lz re3-e30cfaf6871073ba56a5245d4d1b4da0eab784a3.tar.xz re3-e30cfaf6871073ba56a5245d4d1b4da0eab784a3.tar.zst re3-e30cfaf6871073ba56a5245d4d1b4da0eab784a3.zip |
Diffstat (limited to 'src/peds/PlayerPed.cpp')
-rw-r--r-- | src/peds/PlayerPed.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index 24eb4a35..361a9098 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -3,6 +3,7 @@ #include "PlayerPed.h" #include "Camera.h" #include "WeaponEffects.h" +#include "ModelIndices.h" CPlayerPed::~CPlayerPed() { @@ -14,7 +15,45 @@ WRAPPER void CPlayerPed::SetupPlayerPed(int32) { EAXJMP(0x4EFB60); } WRAPPER void CPlayerPed::DeactivatePlayerPed(int32) { EAXJMP(0x4EFC00); } WRAPPER void CPlayerPed::ReactivatePlayerPed(int32) { EAXJMP(0x4EFC20); } WRAPPER void CPlayerPed::KeepAreaAroundPlayerClear(void) { EAXJMP(0x4F3460); } +WRAPPER void CPlayerPed::MakeChangesForNewWeapon(int8) { EAXJMP(0x4F2560); } +WRAPPER void CPlayerPed::SetInitialState(void) { EAXJMP(0x4EFC40); } +WRAPPER void CPlayerPed::SetMoveAnim(void) { EAXJMP(0x4F3760); } +WRAPPER void CPlayerPed::ProcessControl(void) { EAXJMP(0x4EFD90); } +CPlayerPed::CPlayerPed(void) : CPed(PEDTYPE_PLAYER1) +{ + m_fMoveSpeed = 0.0f; + SetModelIndex(MI_PLAYER); + SetInitialState(); + + m_pWanted = new CWanted(); + m_pWanted->Initialise(); + m_pArrestingCop = nil; + m_currentWeapon = WEAPONTYPE_UNARMED; + m_nSelectedWepSlot = 0; + m_nSpeedTimer = 0; + m_bSpeedTimerFlag = 0; + m_pPointGunAt = nil; + m_nPedState = PED_IDLE; + m_fMaxStamina = 150.0f; + m_fCurrentStamina = m_fMaxStamina; + m_fStaminaProgress = 0.0f; + m_bShouldEvade = 0; + field_1367 = 0; + m_nShotDelay = 0; + field_1376 = 0.0f; + field_1380 = 0; + m_bHasLockOnTarget = false; + m_bCanBeDamaged = true; + m_fWalkAngle = 0.0f; + m_fFPSMoveHeading = 0.0f; + m_nTargettableObjects[0] = m_nTargettableObjects[1] = m_nTargettableObjects[2] = m_nTargettableObjects[3] = -1; + field_1413 = 0; + for (int i = 0; i < 6; i++) { + m_vecSafePos[i] = CVector(0.0f, 0.0f, 0.0f); + field_1488[i] = 0; + } +} void CPlayerPed::ClearWeaponTarget() { @@ -58,10 +97,12 @@ CPlayerPed::AnnoyPlayerPed(bool itsPolice) class CPlayerPed_ : public CPlayerPed { public: + CPlayerPed* ctor(void) { return ::new (this) CPlayerPed(); } void dtor(void) { CPlayerPed::~CPlayerPed(); } }; STARTPATCHES + InjectHook(0x4EF7E0, &CPlayerPed_::ctor, PATCH_JUMP); InjectHook(0x4EFB30, &CPlayerPed_::dtor, PATCH_JUMP); InjectHook(0x4F28A0, &CPlayerPed::ClearWeaponTarget, PATCH_JUMP); InjectHook(0x4F3700, &CPlayerPed::AnnoyPlayerPed, PATCH_JUMP); |