From 3d69148497d9d6415b2a67348fac4531a5952adf Mon Sep 17 00:00:00 2001 From: Sergeanur Date: Sat, 1 Feb 2020 18:40:54 +0200 Subject: Added enum to OnscreenTimer, fixed mistakes in CCarCtrl::SteerAIBoatWithPhysicsHeadingForTarget --- src/control/CarCtrl.cpp | 4 ++-- src/control/OnscreenTimer.cpp | 4 ++-- src/control/OnscreenTimer.h | 6 ++++++ src/render/Hud.cpp | 16 ++++++++-------- 4 files changed, 18 insertions(+), 12 deletions(-) (limited to 'src') diff --git a/src/control/CarCtrl.cpp b/src/control/CarCtrl.cpp index 209a5e21..ab7a4aa1 100644 --- a/src/control/CarCtrl.cpp +++ b/src/control/CarCtrl.cpp @@ -2421,8 +2421,8 @@ void CCarCtrl::SteerAIBoatWithPhysicsHeadingForTarget(CBoat* pBoat, float target float angleForward = CGeneral::GetATanOfXY(forward.x, forward.y); float angleDiff = LimitRadianAngle(angleToTarget - angleForward); angleDiff = min(DEFAULT_MAX_STEER_ANGLE, max(-DEFAULT_MAX_STEER_ANGLE, angleDiff)); - float currentSpeed = pBoat->GetMoveSpeed().Magnitude(); // +0.0f for some reason - float speedDiff = pBoat->AutoPilot.m_nCruiseSpeed - currentSpeed; + float currentSpeed = pBoat->GetMoveSpeed().Magnitude2D(); // +0.0f for some reason + float speedDiff = pBoat->AutoPilot.m_nCruiseSpeed - currentSpeed * 60.0f; if (speedDiff > 0.0f){ float accRemaining = speedDiff / pBoat->AutoPilot.m_nCruiseSpeed; *pAccel = (accRemaining > 0.25f) ? 1.0f : 1.0f - (0.25f - accRemaining) * 4.0f; diff --git a/src/control/OnscreenTimer.cpp b/src/control/OnscreenTimer.cpp index 12aa2923..1677df06 100644 --- a/src/control/OnscreenTimer.cpp +++ b/src/control/OnscreenTimer.cpp @@ -19,7 +19,7 @@ void COnscreenTimer::Init() { m_sEntries[i].m_aCounterText[j] = 0; } - m_sEntries[i].m_nType = 0; + m_sEntries[i].m_nType = COUNTER_DISPLAY_NUMBER; m_sEntries[i].m_bTimerProcessed = 0; m_sEntries[i].m_bCounterProcessed = 0; } @@ -49,7 +49,7 @@ void COnscreenTimer::ClearCounter(uint32 offset) { if(offset == m_sEntries[i].m_nCounterOffset) { m_sEntries[i].m_nCounterOffset = 0; m_sEntries[i].m_aCounterText[0] = 0; - m_sEntries[i].m_nType = 0; + m_sEntries[i].m_nType = COUNTER_DISPLAY_NUMBER; m_sEntries[i].m_bCounterProcessed = 0; } } diff --git a/src/control/OnscreenTimer.h b/src/control/OnscreenTimer.h index bf92b988..b1e0e622 100644 --- a/src/control/OnscreenTimer.h +++ b/src/control/OnscreenTimer.h @@ -1,5 +1,11 @@ #pragma once +enum +{ + COUNTER_DISPLAY_NUMBER, + COUNTER_DISPLAY_BAR, +}; + class COnscreenTimerEntry { public: diff --git a/src/render/Hud.cpp b/src/render/Hud.cpp index 1d6a6474..be7329e2 100644 --- a/src/render/Hud.cpp +++ b/src/render/Hud.cpp @@ -701,14 +701,7 @@ void CHud::Draw() } if (CTimer::GetFrameCounter() & 4 || !CounterFlashTimer) { - if (CUserDisplay::OnscnTimer.m_sEntries[0].m_nType) { - int counter = atoi(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer); -#ifdef FIX_BUGS - counter = min(counter, 100); -#endif - CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 80)); - CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_X(counter) / 2.0f + SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET + 50.0f) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 255)); - } else { + if (CUserDisplay::OnscnTimer.m_sEntries[0].m_nType == COUNTER_DISPLAY_NUMBER) { AsciiToUnicode(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer, sTimer); CFont::SetPropOn(); @@ -728,6 +721,13 @@ void CHud::Draw() CFont::SetColor(CRGBA(0, 106, 164, 255)); CFont::PrintString(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET), SCREEN_SCALE_Y(132.0f), sTimer); + } else { + int counter = atoi(CUserDisplay::OnscnTimer.m_sEntries[0].m_bCounterBuffer); +#ifdef FIX_BUGS + counter = min(counter, 100); +#endif + CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 80)); + CSprite2d::DrawRect(CRect(SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET) - SCREEN_SCALE_X(100.0f) / 2 + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(8.0f), SCREEN_SCALE_X(counter) / 2.0f + SCREEN_SCALE_FROM_RIGHT(TIMER_RIGHT_OFFSET + 50.0f) + SCREEN_SCALE_X(4.0f), SCREEN_SCALE_Y(132.0f) + SCREEN_SCALE_Y(11.0f) + SCREEN_SCALE_Y(8.0f)), CRGBA(0, 106, 164, 255)); } if (CUserDisplay::OnscnTimer.m_sEntries[0].m_aCounterText[0]) { -- cgit v1.2.3