feat(hotkey_service): disable on active chat (#651)

This commit is contained in:
Yimura 2022-11-29 20:48:58 +01:00 committed by GitHub
parent eb80ac54bd
commit 1cf0a34597
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 14 additions and 1 deletions

View File

@ -3,7 +3,7 @@ include(FetchContent)
FetchContent_Declare(
gtav_classes
GIT_REPOSITORY https://github.com/Yimura/GTAV-Classes.git
GIT_TAG 257115997e5ecea9fafbc820a746d9c6f5889e57
GIT_TAG 298907d8987862286512bc92cf97b022643315ce
GIT_PROGRESS TRUE
CONFIGURE_COMMAND ""
BUILD_COMMAND ""

View File

@ -592,6 +592,11 @@ namespace big
m_security = ptr.add(3).rip().as<rage::atSingleton<rage::RageSecurity>*>();
});
main_batch.add("CD", "48 8B 05 ? ? ? ? 0F 45 DF", [this](memory::handle ptr)
{
m_chat_data = ptr.add(3).rip().as<ChatData**>();
});
auto mem_region = memory::module("GTA5.exe");
main_batch.run(mem_region);

View File

@ -10,6 +10,7 @@ class CCommunications;
class FriendRegistry;
class CNetworkPlayerMgr;
class Network;
class ChatData;
namespace rage
{
@ -67,6 +68,7 @@ namespace big
functions::multiplayer_chat_filter* m_multiplayer_chat_filter{};
functions::write_player_game_state_data_node m_write_player_game_state_data_node{};
ChatData** m_chat_data;
FriendRegistry* m_friend_registry{};
functions::get_screen_coords_for_world_coords m_get_screen_coords_for_world_coords{};

View File

@ -3,6 +3,9 @@
#include "util/teleport.hpp"
#include "hotkey_functions.hpp"
#include "network/ChatData.hpp"
#include "pointers.hpp"
namespace big
{
hotkey_service::hotkey_service()
@ -50,6 +53,9 @@ namespace big
void hotkey_service::wndproc(eKeyState state, key_t key)
{
if (const auto chat_data = *g_pointers->m_chat_data; chat_data && (chat_data->m_chat_open || chat_data->m_timer_two))
return;
if (state == eKeyState::RELEASE || state == eKeyState::DOWN)
{
auto &hotkey_map = m_hotkeys[state == eKeyState::RELEASE];