From 5d119cf985a3a24aa988e399ec4277c40cb6caa6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?eray=20or=C3=A7unus?= Date: Sat, 11 Jan 2020 20:36:46 +0300 Subject: Fixes 2 --- src/core/Frontend.cpp | 2 +- src/core/Timer.cpp | 22 +++++++++++----------- src/peds/PlayerPed.cpp | 8 ++++---- src/peds/PlayerPed.h | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) (limited to 'src') diff --git a/src/core/Frontend.cpp b/src/core/Frontend.cpp index 24cdad8e..38f6aff8 100644 --- a/src/core/Frontend.cpp +++ b/src/core/Frontend.cpp @@ -812,7 +812,7 @@ void CMenuManager::Draw() textToPrint[MENUCOLUMN_RIGHT] = TheText.Get(m_PrefsDMA ? "FEM_ON" : "FEM_OFF"); break; case MENUACTION_MOUSESTEER: - textToPrint[MENUCOLUMN_RIGHT] = TheText.Get(m_bDisableMouseSteering ? "FEM_ON" : "FEM_OFF"); + textToPrint[MENUCOLUMN_RIGHT] = TheText.Get(m_bDisableMouseSteering ? "FEM_OFF" : "FEM_ON"); break; } diff --git a/src/core/Timer.cpp b/src/core/Timer.cpp index 543f582b..8695f64b 100644 --- a/src/core/Timer.cpp +++ b/src/core/Timer.cpp @@ -75,7 +75,7 @@ void CTimer::Shutdown(void) ; } -#if 1 +#if 0 WRAPPER void CTimer::Update(void) { EAXJMP(0x4ACF70); } #else void CTimer::Update(void) @@ -87,22 +87,22 @@ void CTimer::Update(void) LARGE_INTEGER pc; QueryPerformanceCounter(&pc); - int32 updInCycles = (pc.LowPart - _oldPerfCounter.LowPart) & 0x7FFFFFFF; + int32 updInCycles = (pc.LowPart - _oldPerfCounter.LowPart); // & 0x7FFFFFFF; pointless _oldPerfCounter = pc; - double updInCyclesScaled = (double)updInCycles * ms_fTimeScale; + float updInCyclesScaled = updInCycles * ms_fTimeScale; double upd = updInCyclesScaled / (double)_nCyclesPerMS; - m_snTimeInMillisecondsPauseMode = (Int64)(m_snTimeInMillisecondsPauseMode + upd); + m_snTimeInMillisecondsPauseMode = m_snTimeInMillisecondsPauseMode + upd; if ( GetIsPaused() ) ms_fTimeStep = 0.0f; else { - m_snTimeInMilliseconds = (Int64)(m_snTimeInMilliseconds + upd); - m_snTimeInMillisecondsNonClipped = (Int64)(m_snTimeInMillisecondsNonClipped + upd); + m_snTimeInMilliseconds = m_snTimeInMilliseconds + upd; + m_snTimeInMillisecondsNonClipped = m_snTimeInMillisecondsNonClipped + upd; ms_fTimeStep = updInCyclesScaled / (double)_nCyclesPerMS / 20.0; } } @@ -116,14 +116,14 @@ void CTimer::Update(void) oldPcTimer = timer; - m_snTimeInMillisecondsPauseMode = (Int64)(m_snTimeInMillisecondsPauseMode + upd); + m_snTimeInMillisecondsPauseMode = m_snTimeInMillisecondsPauseMode + upd; if ( GetIsPaused() ) ms_fTimeStep = 0.0f; else { - m_snTimeInMilliseconds = (Int64)(m_snTimeInMilliseconds + upd); - m_snTimeInMillisecondsNonClipped = (Int64)(m_snTimeInMillisecondsNonClipped + upd); + m_snTimeInMilliseconds = m_snTimeInMilliseconds + upd; + m_snTimeInMillisecondsNonClipped = m_snTimeInMillisecondsNonClipped + upd; ms_fTimeStep = upd / 1000.0f * 50.0f; } } @@ -192,7 +192,7 @@ uint32 CTimer::GetCurrentTimeInCycles(void) { LARGE_INTEGER pc; QueryPerformanceCounter(&pc); - return (pc.LowPart - _oldPerfCounter.LowPart) & 0x7FFFFFFF; + return (pc.LowPart - _oldPerfCounter.LowPart); // & 0x7FFFFFFF; pointless } else return RsTimer() - oldPcTimer; @@ -218,7 +218,7 @@ void CTimer::EndUserPause(void) m_UserPause = false; } -#if 0 +#if 1 STARTPATCHES InjectHook(0x4ACE60, CTimer::Initialise, PATCH_JUMP); InjectHook(0x4ACF60, CTimer::Shutdown, PATCH_JUMP); diff --git a/src/peds/PlayerPed.cpp b/src/peds/PlayerPed.cpp index df234bfb..8892fc2a 100644 --- a/src/peds/PlayerPed.cpp +++ b/src/peds/PlayerPed.cpp @@ -573,8 +573,6 @@ CPlayerPed::ProcessWeaponSwitch(CPad *padUsed) if (CDarkel::FrenzyOnGoing()) goto switchDetectDone; - // The fact that m_nSelectedWepSlot is int8 makes below loops circular loop. - if (padUsed->CycleWeaponRightJustDown() && !m_pPointGunAt) { if (TheCamera.PlayerWeaponMode.Mode != CCam::MODE_M16_1STPERSON @@ -596,12 +594,14 @@ CPlayerPed::ProcessWeaponSwitch(CPad *padUsed) && TheCamera.PlayerWeaponMode.Mode != CCam::MODE_SNIPER && TheCamera.PlayerWeaponMode.Mode != CCam::MODE_ROCKETLAUNCHER) { - for (m_nSelectedWepSlot = m_currentWeapon - 1; m_nSelectedWepSlot >= 0; --m_nSelectedWepSlot) { + for (m_nSelectedWepSlot = m_currentWeapon - 1; ; --m_nSelectedWepSlot) { + if (m_nSelectedWepSlot < WEAPONTYPE_UNARMED) + m_nSelectedWepSlot = WEAPONTYPE_DETONATOR; + if (HasWeapon(m_nSelectedWepSlot) && GetWeapon(m_nSelectedWepSlot).HasWeaponAmmoToBeUsed()) { goto switchDetectDone; } } - m_nSelectedWepSlot = WEAPONTYPE_DETONATOR; } } else if (CWeaponInfo::GetWeaponInfo((eWeaponType)m_currentWeapon)->m_eWeaponFire != WEAPON_FIRE_MELEE) { if (GetWeapon(m_currentWeapon).m_nAmmoTotal <= 0) { diff --git a/src/peds/PlayerPed.h b/src/peds/PlayerPed.h index 5725a8ee..81d996be 100644 --- a/src/peds/PlayerPed.h +++ b/src/peds/PlayerPed.h @@ -13,7 +13,7 @@ public: float m_fCurrentStamina; float m_fMaxStamina; float m_fStaminaProgress; - uint8 m_nSelectedWepSlot; // eWeaponType + int8 m_nSelectedWepSlot; // eWeaponType bool m_bSpeedTimerFlag; bool m_bShouldEvade; int8 field_1367; -- cgit v1.2.3