From 4d942c998e16caa3e42006c0ec5e26969de63b88 Mon Sep 17 00:00:00 2001 From: Yimura Date: Wed, 19 May 2021 18:09:48 +0200 Subject: [PATCH] feat(Backend): Added godmode & speedo_meter --- BigBaseV2/src/backend/backend.cpp | 9 ++++ BigBaseV2/src/backend/looped/looped.hpp | 2 + BigBaseV2/src/backend/looped/self/godmode.cpp | 20 ++++++++ .../backend/looped/vehicle/speedo_meter.cpp | 51 +++++++++++++++++++ 4 files changed, 82 insertions(+) create mode 100644 BigBaseV2/src/backend/looped/self/godmode.cpp create mode 100644 BigBaseV2/src/backend/looped/vehicle/speedo_meter.cpp diff --git a/BigBaseV2/src/backend/backend.cpp b/BigBaseV2/src/backend/backend.cpp index 1638dcd1..d038de4e 100644 --- a/BigBaseV2/src/backend/backend.cpp +++ b/BigBaseV2/src/backend/backend.cpp @@ -8,6 +8,10 @@ namespace big { void backend::loop() { + QUEUE_JOB_BEGIN_CLAUSE() + { + looped::self_godmode(); + }QUEUE_JOB_END_CLAUSE QUEUE_JOB_BEGIN_CLAUSE() { looped::self_noclip(); @@ -17,5 +21,10 @@ namespace big { looped::weapons_gravity_gun(); }QUEUE_JOB_END_CLAUSE + + QUEUE_JOB_BEGIN_CLAUSE() + { + looped::vehicle_speedo_meter(); + }QUEUE_JOB_END_CLAUSE } } \ No newline at end of file diff --git a/BigBaseV2/src/backend/looped/looped.hpp b/BigBaseV2/src/backend/looped/looped.hpp index 2cf47247..d5a6b426 100644 --- a/BigBaseV2/src/backend/looped/looped.hpp +++ b/BigBaseV2/src/backend/looped/looped.hpp @@ -5,8 +5,10 @@ namespace big { class looped { public: + static void self_godmode(); static void self_noclip(); static void weapons_gravity_gun(); + static void vehicle_speedo_meter(); }; } \ No newline at end of file diff --git a/BigBaseV2/src/backend/looped/self/godmode.cpp b/BigBaseV2/src/backend/looped/self/godmode.cpp new file mode 100644 index 00000000..ffac0f4e --- /dev/null +++ b/BigBaseV2/src/backend/looped/self/godmode.cpp @@ -0,0 +1,20 @@ +#include "backend/looped/looped.hpp" +#include "core/globals.hpp" +#include "natives.hpp" + +namespace big +{ + static bool bLastGodMode = false; + + void looped::self_godmode() + { + bool bGodMode = g.self.godmode; + + if (bGodMode || (!bGodMode && bGodMode != bLastGodMode)) + { + ENTITY::SET_ENTITY_INVINCIBLE(PLAYER::PLAYER_PED_ID(), g.self.godmode); + + bLastGodMode = g.self.godmode; + } + } +} \ No newline at end of file diff --git a/BigBaseV2/src/backend/looped/vehicle/speedo_meter.cpp b/BigBaseV2/src/backend/looped/vehicle/speedo_meter.cpp new file mode 100644 index 00000000..bce74451 --- /dev/null +++ b/BigBaseV2/src/backend/looped/vehicle/speedo_meter.cpp @@ -0,0 +1,51 @@ +#include "backend/looped/looped.hpp" +#include "core/data/speedo_meters.hpp" +#include "core/globals.hpp" +#include "natives.hpp" + +namespace big +{ + void looped::vehicle_speedo_meter() + { + static const float x = .9f; + static const float y = .72f; + + SpeedoMeter speedo_type = g.vehicle.speedo_meter; + + if (speedo_type == SpeedoMeter::DISABLED || HUD::IS_PAUSE_MENU_ACTIVE()) return; + + Vehicle veh = PED::GET_VEHICLE_PED_IS_IN(PLAYER::PLAYER_PED_ID(), false); + + if (veh == 0) return; + + char speed_type[16], speed[16]; + float veh_speed = ENTITY::GET_ENTITY_SPEED(veh); + switch (speedo_type) + { + case SpeedoMeter::KMH: + veh_speed *= 3.6; + strcpy(speed_type, "kph"); + break; + case SpeedoMeter::MPH: + veh_speed *= 2.2369; + strcpy(speed_type, "mph"); + break; + } + + sprintf(speed, "%d", (int)veh_speed); + + HUD::SET_TEXT_FONT(2); + HUD::SET_TEXT_SCALE(.9f, .9f); + HUD::SET_TEXT_OUTLINE(); + HUD::BEGIN_TEXT_COMMAND_DISPLAY_TEXT("STRING"); + HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(speed); + HUD::END_TEXT_COMMAND_DISPLAY_TEXT(x, y + .04f, 1); + + HUD::SET_TEXT_FONT(2); + HUD::SET_TEXT_SCALE(.91f, .91f); + HUD::SET_TEXT_OUTLINE(); + HUD::BEGIN_TEXT_COMMAND_DISPLAY_TEXT("STRING"); + HUD::ADD_TEXT_COMPONENT_SUBSTRING_PLAYER_NAME(speed_type); + HUD::END_TEXT_COMMAND_DISPLAY_TEXT(x, y, 1); + } +} \ No newline at end of file