From 4422655b3288fd9b1e155bf04c377a5bf7ff23dd Mon Sep 17 00:00:00 2001 From: Rxann <80224521+Rxann@users.noreply.github.com> Date: Thu, 27 Apr 2023 04:11:05 -0400 Subject: [PATCH] chore: change C-style casts to dynamic_cast (#1299) --- src/backend/looped/session/auto_kick_host.cpp | 2 +- src/backend/reactions/reaction.cpp | 8 +- src/gui/components/components.hpp | 6 +- src/hooks/protections/receive_net_message.cpp | 7 +- .../protections/script_event_handler.cpp | 6 +- .../context_menu/context_menu_service.hpp | 101 +++++++++--------- 6 files changed, 68 insertions(+), 62 deletions(-) diff --git a/src/backend/looped/session/auto_kick_host.cpp b/src/backend/looped/session/auto_kick_host.cpp index 30fe0cc4..2e7f3096 100644 --- a/src/backend/looped/session/auto_kick_host.cpp +++ b/src/backend/looped/session/auto_kick_host.cpp @@ -14,7 +14,7 @@ namespace big g_player_service->iterate([](auto& plyr) { if (plyr.second->is_host()) { - ((player_command*)(command::get(RAGE_JOAAT("breakup"))))->call(plyr.second, {}); + dynamic_cast(command::get(RAGE_JOAAT("breakup")))->call(plyr.second, {}); } }); } diff --git a/src/backend/reactions/reaction.cpp b/src/backend/reactions/reaction.cpp index 419001aa..51eba918 100644 --- a/src/backend/reactions/reaction.cpp +++ b/src/backend/reactions/reaction.cpp @@ -39,10 +39,10 @@ namespace big if (kick) { g_fiber_pool->queue_job([player] { - ((player_command*)command::get(RAGE_JOAAT("bailkick")))->call(player, {}); - ((player_command*)command::get(RAGE_JOAAT("nfkick")))->call(player, {}); + dynamic_cast(command::get(RAGE_JOAAT("bailkick")))->call(player, {}); + dynamic_cast(command::get(RAGE_JOAAT("nfkick")))->call(player, {}); script::get_current()->yield(700ms); - ((player_command*)command::get(RAGE_JOAAT("breakup")))->call(player, {}); + dynamic_cast(command::get(RAGE_JOAAT("breakup")))->call(player, {}); }); } } @@ -71,7 +71,7 @@ namespace big if (notify) { - char notification[500]{};// I don't like using sprintf but there isn't an alternative afaik + char notification[500]{}; // I don't like using sprintf but there isn't an alternative afaik snprintf(notification, sizeof(notification), m_notify_message, player->get_name()); g_notification_service->push_warning("Protections", notification); } diff --git a/src/gui/components/components.hpp b/src/gui/components/components.hpp index d8030b4d..00a93065 100644 --- a/src/gui/components/components.hpp +++ b/src/gui/components/components.hpp @@ -23,7 +23,7 @@ namespace big static void input_text_with_hint(const std::string_view label, const std::string_view hint, char* buf, size_t buf_size, ImGuiInputTextFlags_ flag = ImGuiInputTextFlags_None, std::function cb = nullptr); static void input_text_with_hint(const std::string_view label, const std::string_view hint, std::string* buf, ImGuiInputTextFlags_ flag = ImGuiInputTextFlags_None, std::function cb = nullptr); - + static void input_text(const std::string_view label, char* buf, size_t buf_size, ImGuiInputTextFlags_ flag = ImGuiInputTextFlags_None, std::function cb = nullptr); static bool selectable(const std::string_view, bool); @@ -49,7 +49,7 @@ namespace big template static void player_command_button(player_ptr player = g_player_service->get_selected(), const std::vector args = {}, std::optional label_override = std::nullopt) { - static player_command* command = (player_command*)command::get(rage::consteval_joaat(cmd_str.value)); + static player_command* command = dynamic_cast(command::get(rage::consteval_joaat(cmd_str.value))); if (command == nullptr) return ImGui::Text("INVALID COMMAND"); @@ -62,7 +62,7 @@ namespace big template static void command_checkbox(std::optional label_override = std::nullopt) { - static bool_command* command = (bool_command*)command::get(rage::consteval_joaat(cmd_str.value)); + static bool_command* command = dynamic_cast(command::get(rage::consteval_joaat(cmd_str.value))); if (command == nullptr) return ImGui::Text("INVALID COMMAND"); diff --git a/src/hooks/protections/receive_net_message.cpp b/src/hooks/protections/receive_net_message.cpp index e856d2c6..0f8ae41a 100644 --- a/src/hooks/protections/receive_net_message.cpp +++ b/src/hooks/protections/receive_net_message.cpp @@ -116,7 +116,7 @@ namespace big player->is_spammer = true; if (g.session.kick_chat_spammers) { - ((player_command*)command::get(RAGE_JOAAT("breakup")))->call(player, {}); + dynamic_cast(command::get(RAGE_JOAAT("breakup")))->call(player, {}); } return true; } @@ -177,7 +177,7 @@ namespace big return true; if (g.reactions.breakup_others.karma) - ((player_command*)command::get(RAGE_JOAAT("breakup")))->call(player, {}); + dynamic_cast(command::get(RAGE_JOAAT("breakup")))->call(player, {}); } else { @@ -185,7 +185,8 @@ namespace big session::add_infraction(player, Infraction::BREAKUP_KICK_DETECTED); if (g.reactions.breakup_others.karma) - ((player_command*)command::get(RAGE_JOAAT("breakup")))->call(player, {}); + dynamic_cast(command::get(RAGE_JOAAT("breakup")))->call(player, {}); + ; } } diff --git a/src/hooks/protections/script_event_handler.cpp b/src/hooks/protections/script_event_handler.cpp index 17d30f51..c014bd5d 100644 --- a/src/hooks/protections/script_event_handler.cpp +++ b/src/hooks/protections/script_event_handler.cpp @@ -92,7 +92,7 @@ namespace big break; case eRemoteEvent::Crash: g.reactions.crash.process(plyr); return true; case eRemoteEvent::Crash2: - if (args[2] > 32)// actual crash condition is if args[2] is above 255 + if (args[2] > 32) // actual crash condition is if args[2] is above 255 { g.reactions.crash.process(plyr); return true; @@ -321,7 +321,7 @@ namespace big case eRemoteEvent::InteriorControl: { int interior = (int)args[2]; - if (interior < 0 || interior > 161)// the upper bound will change after an update + if (interior < 0 || interior > 161) // the upper bound will change after an update { if (auto plyr = g_player_service->get_by_id(player->m_player_id)) session::add_infraction(plyr, Infraction::TRIED_KICK_PLAYER); @@ -337,7 +337,7 @@ namespace big { if (auto plyr = g_player_service->get_by_id(player->m_player_id)) { - ((player_command*)command::get(RAGE_JOAAT("breakup")))->call(plyr, {}); + dynamic_cast(command::get(RAGE_JOAAT("breakup")))->call(plyr, {}); } } diff --git a/src/services/context_menu/context_menu_service.hpp b/src/services/context_menu/context_menu_service.hpp index 33ed49e9..f8103c9c 100644 --- a/src/services/context_menu/context_menu_service.hpp +++ b/src/services/context_menu/context_menu_service.hpp @@ -1,12 +1,13 @@ #pragma once +#include "backend/command.hpp" +#include "backend/player_command.hpp" #include "natives.hpp" +#include "services/gta_data/gta_data_service.hpp" +#include "services/vehicle/persist_car_service.hpp" #include "util/entity.hpp" #include "util/ped.hpp" #include "util/teleport.hpp" -#include "services/vehicle/persist_car_service.hpp" -#include "backend/command.hpp" -#include "backend/player_command.hpp" -#include "services/gta_data/gta_data_service.hpp" + namespace big { @@ -72,17 +73,16 @@ namespace big }}, {"COPY VEHICLE", [this] { - Vehicle v = persist_car_service::clone_ped_car(PLAYER::PLAYER_PED_ID(), m_handle); + Vehicle v = persist_car_service::clone_ped_car(PLAYER::PLAYER_PED_ID(), m_handle); script::get_current()->yield(); PED::SET_PED_INTO_VEHICLE(PLAYER::PLAYER_PED_ID(), v, -1); }}, {"BOOST", [this] { if (entity::take_control_of(m_handle)) - VEHICLE::SET_VEHICLE_FORWARD_SPEED(m_handle, 79); + VEHICLE::SET_VEHICLE_FORWARD_SPEED(m_handle, 79); else g_notification_service->push_warning("Toxic", "Failed to take control of vehicle."); - }}, {"LAUNCH", [this] { @@ -95,13 +95,12 @@ namespace big [this] { if (ped::get_player_from_ped(VEHICLE::GET_PED_IN_VEHICLE_SEAT(m_handle, -1, 0)) != NULL) { - static player_command* command = (player_command*)command::get(rage::consteval_joaat("vehkick")); + static player_command* command = dynamic_cast(command::get(rage::consteval_joaat("vehkick"))); command->call(ped::get_player_from_ped(VEHICLE::GET_PED_IN_VEHICLE_SEAT(m_handle, -1, 0)), {}); } - - TASK::CLEAR_PED_TASKS_IMMEDIATELY(VEHICLE::GET_PED_IN_VEHICLE_SEAT(m_handle, -1, 0)); - TASK::CLEAR_PED_TASKS_IMMEDIATELY(m_handle); - + + TASK::CLEAR_PED_TASKS_IMMEDIATELY(VEHICLE::GET_PED_IN_VEHICLE_SEAT(m_handle, -1, 0)); + TASK::CLEAR_PED_TASKS_IMMEDIATELY(m_handle); }}, {"DELETE", [this] { @@ -114,48 +113,54 @@ namespace big teleport::into_vehicle(m_handle); }}}}; - s_context_menu ped_menu{ContextEntityType::PED, 0, {}, { - {"DISARM", - [this] { - for (auto& [_, weapon] : g_gta_data_service->weapons()) - WEAPON::REMOVE_WEAPON_FROM_PED(m_handle, weapon.m_hash); - }}, - {"RAGDOLL", - [this] { - PED::SET_PED_TO_RAGDOLL(m_handle, 2000, 2000, 0, 0, 0, 0); + s_context_menu ped_menu{ContextEntityType::PED, + 0, + {}, + {{"DISARM", + [this] { + for (auto& [_, weapon] : g_gta_data_service->weapons()) + WEAPON::REMOVE_WEAPON_FROM_PED(m_handle, weapon.m_hash); + }}, + {"RAGDOLL", + [this] { + PED::SET_PED_TO_RAGDOLL(m_handle, 2000, 2000, 0, 0, 0, 0); }}, - {"DANCE", [this] { + {"DANCE", [this] { ped::ped_play_animation(m_handle, "mini@strip_club@private_dance@part1", "priv_dance_p1"); - }} - }}; + }}}}; s_context_menu object_menu{ContextEntityType::OBJECT, 0, {}, {}}; - s_context_menu player_menu{ContextEntityType::PLAYER, 0, {}, { - {"STEAL IDENTITY", [this] { - ped::steal_identity(m_handle); - }}, - {"BREAKUP KICK", [this] { - static player_command* command = (player_command*)command::get(rage::consteval_joaat("breakup")); + s_context_menu player_menu{ContextEntityType::PLAYER, + 0, + {}, + {{"STEAL IDENTITY", + [this] { + ped::steal_identity(m_handle); + }}, + {"BREAKUP KICK", + [this] { + static player_command* command = dynamic_cast(command::get(rage::consteval_joaat("breakup"))); + command->call(ped::get_player_from_ped(m_handle), {}); + }}, + {"KICK", + [this] { + static player_command* command = dynamic_cast(command::get(rage::consteval_joaat("nfkick"))); + static player_command* command1 = dynamic_cast(command::get(rage::consteval_joaat("shkick"))); + static player_command* command2 = dynamic_cast(command::get(rage::consteval_joaat("endkick"))); + command->call(ped::get_player_from_ped(m_handle), {}); + command1->call(ped::get_player_from_ped(m_handle), {}); + command2->call(ped::get_player_from_ped(m_handle), {}); + }}, + {"DISARM", + [this] { + static player_command* command = dynamic_cast(command::get(rage::consteval_joaat("remweaps"))); + command->call(ped::get_player_from_ped(m_handle), {}); + }}, + {"RAGDOLL", [this] { + static player_command* command = dynamic_cast(command::get(rage::consteval_joaat("ragdoll"))); command->call(ped::get_player_from_ped(m_handle), {}); - }}, - {"KICK", [this] { - static player_command* command = (player_command*)command::get(rage::consteval_joaat("nfkick")); - static player_command* command1 = (player_command*)command::get(rage::consteval_joaat("shkick")); - static player_command* command2 = (player_command*)command::get(rage::consteval_joaat("endkick")); - command->call(ped::get_player_from_ped(m_handle), {}); - command1->call(ped::get_player_from_ped(m_handle), {}); - command2->call(ped::get_player_from_ped(m_handle), {}); - }}, - {"DISARM", [this] { - static player_command* command = (player_command*)command::get(rage::consteval_joaat("remweaps")); - command->call(ped::get_player_from_ped(m_handle), {}); - }}, - {"RAGDOLL", [this] { - static player_command* command = (player_command*)command::get(rage::consteval_joaat("ragdoll")); - command->call(ped::get_player_from_ped(m_handle), {}); - }} - }}; + }}}}; s_context_menu shared_menu{ContextEntityType::SHARED, 0,