TmpMenu/src/views/debug/view_debug_misc.cpp

169 lines
5.2 KiB
C++
Raw Normal View History

#include "gta/joaat.hpp"
#include "gta_util.hpp"
#include "gui/components/components.hpp"
#include "hooking.hpp"
#include "natives.hpp"
2022-11-24 21:49:05 +00:00
#include "network/Network.hpp"
#include "script.hpp"
2022-12-06 16:12:02 +00:00
#include "script_global.hpp"
#include "util/misc.hpp"
#include "util/pathfind.hpp"
#include "util/ped.hpp"
#include "util/system.hpp"
#include "view_debug.hpp"
namespace big
{
void debug::misc()
{
if (ImGui::BeginTabItem("DEBUG_TAB_MISC"_T.data()))
{
components::command_checkbox<"windowhook">("Disable GTA Window Hook");
ImGui::Text("Fiber Pool Usage %d/%d", g_fiber_pool->get_used_fibers(), g_fiber_pool->get_total_fibers());
ImGui::SameLine();
2023-06-10 09:21:57 -04:00
if (components::button("RESET"_T.data()))
{
g_fiber_pool->reset();
}
if (components::button("Trigger GTA Error Message Box"))
{
hooks::log_error_message_box(0xBAFD530B, 1);
}
2023-06-10 09:21:57 -04:00
if (components::button("DUMP_ENTRYPOINTS"_T.data()))
{
system::dump_entry_points();
}
2023-06-10 09:21:57 -04:00
components::button("NETWORK_BAIL"_T.data(), [] {
NETWORK::NETWORK_BAIL(16, 0, 0);
});
2022-12-06 16:12:02 +00:00
components::button("DEBUG_REMOVE_FROM_BAD_SPORT"_T, [] {
STATS::STAT_SET_INT(RAGE_JOAAT("MPPLY_BADSPORT_MESSAGE"), 0, 1);
STATS::STAT_SET_INT(RAGE_JOAAT("MPPLY_BECAME_BADSPORT_NUM"), 0, 1);
STATS::STAT_SET_FLOAT(RAGE_JOAAT("MPPLY_OVERALL_BADSPORT"), 0, true);
STATS::STAT_SET_BOOL(RAGE_JOAAT("MPPLY_CHAR_IS_BADSPORT"), false, true);
2022-12-06 16:12:02 +00:00
});
2023-06-10 09:21:57 -04:00
components::button("LOAD_MP_MAP"_T.data(), [] {
DLC::ON_ENTER_MP();
});
2023-01-23 05:56:21 -05:00
ImGui::SameLine();
2023-06-10 09:21:57 -04:00
components::button("LOAD_SP_MAP"_T.data(), [] {
DLC::ON_ENTER_SP();
});
2023-01-23 05:56:21 -05:00
2023-06-10 09:21:57 -04:00
components::button("SKIP_CUTSCENE"_T.data(), [] {
CUTSCENE::STOP_CUTSCENE_IMMEDIATELY();
});
2023-06-10 09:21:57 -04:00
components::button("REFRESH_INTERIOR"_T.data(), [] {
2023-01-23 05:56:21 -05:00
Interior interior = INTERIOR::GET_INTERIOR_AT_COORDS(self::pos.x, self::pos.y, self::pos.z);
INTERIOR::REFRESH_INTERIOR(interior);
2023-02-20 06:04:13 +08:00
});
2023-01-23 05:56:21 -05:00
components::button("NET_SHUTDOWN_AND_LOAD_SP"_T.data(), [] {
2023-02-20 06:04:13 +08:00
NETWORK::SHUTDOWN_AND_LAUNCH_SINGLE_PLAYER_GAME();
});
2023-06-10 09:21:57 -04:00
components::button("NET_SHUTDOWN_AND_LOAD_SAVE"_T.data(), [] {
2023-02-20 06:04:13 +08:00
NETWORK::SHUTDOWN_AND_LOAD_MOST_RECENT_SAVE();
});
2023-06-10 09:21:57 -04:00
components::button("REMOVE_BLACKSCREEN"_T.data(), [] {
2023-04-23 17:23:00 +02:00
CAM::DO_SCREEN_FADE_IN(0);
});
2023-06-10 09:21:57 -04:00
components::button("TP_TO_SAFE_POS"_T.data(), [] {
2023-04-05 19:54:29 +02:00
Vector3 safepos{};
float heading;
if (pathfind::find_closest_vehicle_node(self::pos, safepos, heading, 0))
ENTITY::SET_ENTITY_COORDS(self::ped, safepos.x, safepos.y, safepos.z, 0, 0, 0, false);
else
g_notification_service->push_error("Find safe pos", "Failed to find a safe position");
});
ImGui::Checkbox("ImGui Demo", &g.window.demo);
components::command_button<"fastquit">();
if (ImGui::TreeNode("Fuzzer"))
{
ImGui::Checkbox("Enabled", &g.debug.fuzzer.enabled);
for (int i = 0; i < net_object_type_strs.size(); i++)
{
ImGui::Checkbox(net_object_type_strs[i], &g.debug.fuzzer.enabled_object_types[i]);
}
ImGui::TreePop();
}
2023-06-10 09:21:57 -04:00
if (ImGui::TreeNode("ADDRESSES"_T.data()))
{
uint64_t local_cped = (uint64_t)g_local_player;
2023-06-10 09:21:57 -04:00
ImGui::InputScalar("Local_CPED"_T.data(), ImGuiDataType_U64, &local_cped, NULL, NULL, "%p", ImGuiInputTextFlags_CharsHexadecimal);
if (g_local_player)
{
uint64_t local_playerinfo = (uint64_t)g_local_player->m_player_info;
2023-06-10 09:21:57 -04:00
ImGui::InputScalar("LOCAL_CPLAYERINFO"_T.data(), ImGuiDataType_U64, &local_playerinfo, NULL, NULL, "%p", ImGuiInputTextFlags_CharsHexadecimal);
uint64_t local_vehicle = (uint64_t)g_local_player->m_vehicle;
2023-06-10 09:21:57 -04:00
ImGui::InputScalar("LOCAL_CAUTOMOBILE"_T.data(), ImGuiDataType_U64, &local_vehicle, NULL, NULL, "%p", ImGuiInputTextFlags_CharsHexadecimal);
}
2023-04-14 18:54:07 +02:00
if (auto mgr = *g_pointers->m_gta.m_network_player_mgr)
{
uint64_t local_netplayer = (uint64_t)mgr->m_local_net_player;
2023-06-10 09:21:57 -04:00
ImGui::InputScalar("LOCAL_CNETGAMEPLAYER"_T.data(), ImGuiDataType_U64, &local_netplayer, NULL, NULL, "%p", ImGuiInputTextFlags_CharsHexadecimal);
if (mgr->m_local_net_player)
{
uint64_t local_netplayer = (uint64_t)mgr->m_local_net_player->get_net_data();
2023-06-10 09:21:57 -04:00
ImGui::InputScalar("LOCAL_NETPLAYERDATA"_T.data(), ImGuiDataType_U64, &local_netplayer, NULL, NULL, "%p", ImGuiInputTextFlags_CharsHexadecimal);
}
}
2023-04-14 18:54:07 +02:00
if (auto network = *g_pointers->m_gta.m_network)
{
uint64_t nw = (uint64_t)network;
2023-06-10 09:21:57 -04:00
ImGui::InputScalar("NETWORK"_T.data(), ImGuiDataType_U64, &nw, NULL, NULL, "%p", ImGuiInputTextFlags_CharsHexadecimal);
}
2023-04-14 18:54:07 +02:00
if (auto omgr = *g_pointers->m_gta.m_network_object_mgr)
{
uint64_t nw = (uint64_t)omgr;
2023-06-10 09:21:57 -04:00
ImGui::InputScalar("NETWORK_OBJ_MGR"_T.data(), ImGuiDataType_U64, &nw, NULL, NULL, "%p", ImGuiInputTextFlags_CharsHexadecimal);
}
ImGui::TreePop();
}
2023-06-10 09:21:57 -04:00
if (ImGui::TreeNode("ANIMATION_PLAYER"_T.data()))
2023-04-05 19:54:29 +02:00
{
static char dict[100], anim[100];
ImGui::PushItemWidth(200);
2023-06-10 09:21:57 -04:00
components::input_text_with_hint("##dictionary", "DICT"_T.data(), dict, IM_ARRAYSIZE(dict));
components::input_text_with_hint("##animation", "ANIMATION"_T.data(), anim, IM_ARRAYSIZE(anim));
if (ImGui::Button("PLAY_ANIMATION"_T.data()))
2023-04-05 19:54:29 +02:00
g_fiber_pool->queue_job([=] {
ped::ped_play_animation(self::ped, dict, anim);
});
ImGui::PopItemWidth();
ImGui::TreePop();
}
2022-12-06 16:12:02 +00:00
ImGui::EndTabItem();
}
}
}