This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
YimMenu/src/backend/backend.cpp

227 lines
4.6 KiB
C++
Raw Normal View History

2021-05-19 14:35:30 +02:00
#include "backend.hpp"
#include "looped/looped.hpp"
#include "looped_command.hpp"
#include "script.hpp"
#include "script_patches.hpp"
#include "services/context_menu/context_menu_service.hpp"
2023-07-09 23:03:05 +02:00
#include "services/custom_teleport/custom_teleport_service.hpp"
#include "services/orbital_drone/orbital_drone.hpp"
#include "services/script_connection/script_connection_service.hpp"
#include "services/squad_spawner/squad_spawner.hpp"
#include "services/tunables/tunables_service.hpp"
2023-04-05 19:54:29 +02:00
#include "services/vehicle/vehicle_control_service.hpp"
2023-07-07 11:11:54 +02:00
#include "services/vehicle/xml_vehicles_service.hpp"
2023-07-09 23:03:05 +02:00
#include "thread_pool.hpp"
2021-05-19 14:35:30 +02:00
2021-05-19 14:35:30 +02:00
namespace big
{
void backend::loop()
{
for (auto& command : g_looped_commands)
command->refresh();
register_script_patches();
2023-07-09 23:03:05 +02:00
2023-06-30 20:36:45 +02:00
g_squad_spawner_service.fetch_squads();
2023-07-07 11:11:54 +02:00
g_xml_vehicles_service->fetch_xml_files();
2023-07-09 23:03:05 +02:00
g_custom_teleport_service.fetch_saved_locations();
while (g_running)
{
looped::system_self_globals();
looped::system_update_pointers();
looped::system_desync_kick_protection();
looped::system_spoofing();
2022-12-06 16:12:02 +00:00
looped::system_mission_creator();
looped::system_rainbow();
for (auto command : g_looped_commands)
if (command->is_enabled())
command->on_tick();
script::get_current()->yield();
}
2021-05-19 14:35:30 +02:00
}
void backend::self_loop()
{
LOG(INFO) << "Starting script: Self";
while (g_running)
{
looped::self_police();
2022-11-07 13:23:24 -06:00
looped::self_hud();
2022-12-06 16:12:02 +00:00
looped::self_dance_mode();
script::get_current()->yield();
}
}
void backend::weapons_loop()
{
LOG(INFO) << "Starting script: Weapons";
while (g_running)
{
looped::weapons_tp_gun();
looped::weapons_paint_gun();
looped::weapons_ammo_special_type();
looped::weapons_cage_gun();
looped::weapons_delete_gun();
looped::weapons_gravity_gun();
looped::weapons_repair_gun();
looped::weapons_steal_vehicle_gun();
looped::weapons_vehicle_gun();
looped::weapons_c4_limit();
2023-07-09 17:01:42 -04:00
looped::weapons_do_persist_weapons();
2023-07-11 17:14:35 -04:00
looped::weapons_do_weapon_hotkeys();
script::get_current()->yield();
}
}
void backend::vehicles_loop()
{
LOG(INFO) << "Starting script: Vehicles";
while (g_running)
{
looped::vehicle_auto_drive();
looped::vehicle_allow_all_weapons();
looped::vehicle_boost_behavior();
looped::derail_train();
looped::drive_train();
script::get_current()->yield();
}
}
void backend::misc_loop()
{
LOG(INFO) << "Starting script: Miscellaneous";
while (g_running)
{
looped::hud_transition_state();
2022-12-06 16:12:02 +00:00
looped::session_pop_multiplier_areas();
looped::session_force_thunder();
looped::session_randomize_ceo_colors();
looped::session_auto_kick_host();
looped::session_block_jobs();
if (g_script_connection_service)
g_script_connection_service->on_tick();
script::get_current()->yield();
}
}
void backend::remote_loop()
{
LOG(INFO) << "Starting script: Remote";
while (g_running)
{
2022-11-21 15:42:12 +00:00
looped::player_good_options();
looped::player_toxic_options();
looped::player_spectate();
2022-11-21 15:42:12 +00:00
looped::player_remote_control_vehicle();
script::get_current()->yield();
}
}
void backend::lscustoms_loop()
{
LOG(INFO) << "Starting script: Ls customs";
while (g_running)
{
looped::vehicle_ls_customs();
script::get_current()->yield();
}
}
2022-08-14 18:19:33 +08:00
void backend::rainbowpaint_loop()
{
LOG(INFO) << "Starting script: Rainbow paint";
while (g_running)
{
looped::vehicle_rainbow_paint();
script::get_current()->yield();
}
}
void backend::disable_control_action_loop()
{
LOG(INFO) << "Starting script: Disable Control Action";
while (g_running)
{
looped::custom_gun_disable_control_action();
context_menu_service::disable_control_action_loop();
script::get_current()->yield();
}
}
void backend::world_loop()
{
LOG(INFO) << "Starting script: World";
while (g_running)
{
looped::world_spawn_ped();
script::get_current()->yield();
}
}
void backend::orbital_drone()
{
while (true)
{
if (g.world.orbital_drone.enabled && PAD::IS_CONTROL_JUST_PRESSED(2, (int)ControllerInputs::INPUT_VEH_LOOK_BEHIND))
{
if (!g_orbital_drone_service.initialized())
g_orbital_drone_service.init();
else
g_orbital_drone_service.destroy();
}
g_orbital_drone_service.tick();
script::get_current()->yield();
}
}
2023-04-05 19:54:29 +02:00
void backend::vehicle_control()
{
while (true)
{
g_vehicle_control_service.tick();
2023-04-05 19:54:29 +02:00
script::get_current()->yield();
}
}
2023-04-23 17:23:00 +02:00
void backend::tunables_script()
{
g_tunables_service->run_script();
}
2023-04-23 17:23:00 +02:00
void backend::squad_spawner()
{
while (true)
{
g_squad_spawner_service.tick();
2023-04-23 17:23:00 +02:00
script::get_current()->yield();
}
}
}