diff options
author | eray orçunus <erayorcunus@gmail.com> | 2019-06-16 21:44:05 +0200 |
---|---|---|
committer | eray orçunus <erayorcunus@gmail.com> | 2019-06-16 21:44:05 +0200 |
commit | beb6f0d4c75fa5f7be4998f78929e0a66fc9540c (patch) | |
tree | 8a1f28b7f4987d222c26749e99529f9002e0f0ca /src/Radar.cpp | |
parent | CPed fixes and needed functions for further commits (diff) | |
parent | fix the cleanup... (diff) | |
download | re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.gz re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.bz2 re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.lz re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.xz re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.tar.zst re3-beb6f0d4c75fa5f7be4998f78929e0a66fc9540c.zip |
Diffstat (limited to 'src/Radar.cpp')
-rw-r--r-- | src/Radar.cpp | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/Radar.cpp b/src/Radar.cpp index a84d5b91..63a84680 100644 --- a/src/Radar.cpp +++ b/src/Radar.cpp @@ -1,5 +1,47 @@ #include "common.h" #include "patcher.h" #include "Radar.h" +#include "Camera.h" +#include "Hud.h" +#include "World.h" +#include "Frontend.h" WRAPPER void CRadar::ClearBlipForEntity(eBlipType type, int32 id) { EAXJMP(0x4A56C0); } +WRAPPER void CRadar::Draw3dMarkers() { EAXJMP(0x4A4C70); } +//WRAPPER void CRadar::DrawMap () { EAXJMP(0x4A4200); } +WRAPPER void CRadar::DrawBlips() { EAXJMP(0x4A42F0); } +WRAPPER void CRadar::DrawRadarMap() { EAXJMP(0x4A6C20); } + +Float &CRadar::m_RadarRange = *(Float*)0x8E281C; +CVector2D &CRadar::vec2DRadarOrigin = *(CVector2D*)0x6299B8; + +void CRadar::DrawMap() { + if (!TheCamera.m_WideScreenOn && CHud::m_Wants_To_Draw_Hud) { + if (FindPlayerVehicle()) { + if (FindPlayerVehicle()->GetSpeed().Magnitude() > 0.3f) { + if (FindPlayerVehicle()->GetSpeed().Magnitude() > 0.9f) + CRadar::m_RadarRange = 350.0f; + else + CRadar::m_RadarRange = (FindPlayerVehicle()->GetSpeed().Magnitude() + 0.3f) * 200.0f; + } + else { + CRadar::m_RadarRange = 120.0f; + } + } + else { + CRadar::m_RadarRange = 120.0f; + } + vec2DRadarOrigin.x = FindPlayerCentreOfWorld_NoSniperShift().x; + vec2DRadarOrigin.y = FindPlayerCentreOfWorld_NoSniperShift().y; + CRadar::DrawRadarMap(); + } +} + +void CRadar::TransformRadarPointToScreenSpace(CVector2D *out, CVector2D *in) { + out->x = in->x * HUD_STRETCH_X(47.0f) + HUD_STRETCH_X(47.0f + 20.0f); + out->y = (HUD_STRETCH_Y(76.0f)) * 0.5f + SCREEN_HEIGHT - (HUD_STRETCH_Y(123.0f)) - in->y * (HUD_STRETCH_Y(76.0f)) * 0.5f; +} + +STARTPATCHES + InjectHook(0x4A5040, CRadar::TransformRadarPointToScreenSpace, PATCH_JUMP); +ENDPATCHES
\ No newline at end of file |