refactor: switch RAGE_JOAAT with string literal functions (#2806)

Why? Shorter to write and removes the macro usage

I used the following regex to find all occurrences:
```r
RAGE_JOAAT\("(.*?)"\)
```
then the following to replace it all:
```r
"$1"_J
```
This commit is contained in:
Andreas Maerten 2024-03-12 09:42:11 +01:00 committed by GitHub
parent 10fc7a5e13
commit e07601347d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
89 changed files with 1788 additions and 1788 deletions

View File

@ -19,7 +19,7 @@ namespace big
{
if (!player)
return;
if (!scripts::force_host(RAGE_JOAAT("freemode")))
if (!scripts::force_host("freemode"_J))
{
g_notification_service->push_error("END_KICK"_T.data(), "BACKEND_END_SESSION_KICK_FORCE_SCRIPT_HOST_FAILED"_T.data());
return;
@ -33,4 +33,4 @@ namespace big
};
end_session_kick g_end_session_kick("endkick", "END_KICK", "END_KICK_DESC", 0, false);
}
}

View File

@ -17,19 +17,19 @@ namespace big
virtual void execute(player_ptr player, const command_arguments& _args, const std::shared_ptr<command_context> ctx) override
{
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("nfkick")))->call(player, {});
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("oomkick")))->call(player, {});
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("endkick")))->call(player, {});
dynamic_cast<player_command*>(command::get("nfkick"_J))->call(player, {});
dynamic_cast<player_command*>(command::get("oomkick"_J))->call(player, {});
dynamic_cast<player_command*>(command::get("endkick"_J))->call(player, {});
script::get_current()->yield(700ms);
if (g_player_service->get_self()->is_host())
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("hostkick")))->call(player, {});
dynamic_cast<player_command*>(command::get("hostkick"_J))->call(player, {});
if (player && !g_player_service->get_self()->is_host() && player->is_valid() && !player->is_host())
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("desync")))->call(player, {});
dynamic_cast<player_command*>(command::get("desync"_J))->call(player, {});
if (g_player_service->get_self()->is_host())
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("breakup")))->call(player, {}),
dynamic_cast<player_command*>(command::get("breakup"_J))->call(player, {}),
NETWORK::NETWORK_SESSION_KICK_PLAYER(player->id());
}
};

View File

@ -19,7 +19,7 @@ namespace big
{
if (!player)
return;
if (!scripts::force_host(RAGE_JOAAT("freemode")))
if (!scripts::force_host("freemode"_J))
{
g_notification_service->push_error("Kick", "Force script host failed!");
return;
@ -30,4 +30,4 @@ namespace big
};
script_host_kick g_script_host_kick("shkick", "SCRIPT_HOST_KICK", "SCRIPT_HOST_KICK_DESC", 0, false);
}
}

View File

@ -23,7 +23,7 @@ namespace big
player->get_ped()->m_navigation->get_position(),
0,
true,
RAGE_JOAAT("weapon_explosion"),
"weapon_explosion"_J,
10000.0f,
2,
0,
@ -40,4 +40,4 @@ namespace big
};
kill_player g_kill_player("kill", "KILL_PLAYER", "KILL_PLAYER_DESC", 0);
}
}

View File

@ -46,13 +46,13 @@ namespace big
if (!NETWORK::NETWORK_IS_PLAYER_CONNECTED(id))
return;
if (!scripts::force_host(RAGE_JOAAT("am_hunt_the_beast")))
if (!scripts::force_host("am_hunt_the_beast"_J))
{
g_notification_service->push_error("TURN_INTO_BEAST"_T.data(), "BACKEND_TURN_INTO_BEAST_FAILED_CONTROL"_T.data());
return;
}
auto thread = gta_util::find_script_thread(RAGE_JOAAT("am_hunt_the_beast"));
auto thread = gta_util::find_script_thread("am_hunt_the_beast"_J);
auto stack = thread->m_stack;
auto net_component = (CGameScriptHandlerNetComponent*)thread->m_net_component;
auto idx = scr_locals::am_hunt_the_beast::broadcast_idx;
@ -85,7 +85,7 @@ namespace big
{
scripts::start_launcher_script(47);
for (int i = 0; !scripts::is_running(RAGE_JOAAT("am_launcher")); i++)
for (int i = 0; !scripts::is_running("am_launcher"_J); i++)
{
if (i >= 7000)
{
@ -98,7 +98,7 @@ namespace big
script::get_current()->yield(500ms);
if (!scripts::force_host(RAGE_JOAAT("am_hunt_the_beast")))
if (!scripts::force_host("am_hunt_the_beast"_J))
{
g_notification_service->push_error("TURN_INTO_BEAST"_T.data(), "BACKEND_TURN_INTO_BEAST_FAILED_CONTROL"_T.data());
return;
@ -106,7 +106,7 @@ namespace big
script::get_current()->yield(3s);
auto thread = gta_util::find_script_thread(RAGE_JOAAT("am_hunt_the_beast"));
auto thread = gta_util::find_script_thread("am_hunt_the_beast"_J);
if (!thread)
return;
@ -149,4 +149,4 @@ namespace big
turn_into_beast g_turn_into_beast("beast", "TURN_INTO_BEAST", "TURN_INTO_BEAST_DESC", 0, false);
turn_into_beast_all g_turn_into_beast_all("beastall", "TURN_INTO_BEAST_ALL", "TURN_INTO_BEAST_ALL_DESC", 0);
}
}

View File

@ -18,7 +18,7 @@ namespace big
const auto state = *scr_globals::transition_state.as<eTransitionState*>();
const std::vector<std::string_view> transition_states = {"TRANSITION_STATE_EMPTY"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_SINGLEPLAYER_SWOOP_UP"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_MULTIPLAYER_SWOOP_UP"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CREATOR_SWOOP_UP"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_PRE_HUD_CHECKS"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_HUD_EXIT"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_FOR_SUMMON"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_SINGLEPLAYER_SWOOP_DOWN"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_MULTIPLAYER_SWOOP_DOWN"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CANCEL_JOINING"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_RETRY_LOADING"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_RETRY_LOADING_SLOT_1"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_RETRY_LOADING_SLOT_2"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_RETRY_LOADING_SLOT_3"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_RETRY_LOADING_SLOT_4"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_ON_INVITE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_PREJOINING_FREEMODE_SESSION_CHECKS"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_LOOK_FOR_FRESH_JOIN_FREEMODE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_LOOK_TO_JOIN_ANOTHER_SESSION_FREEMODE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CONFIRM_FREEMODE_SESSION_JOINING"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_JOIN_FREEMODE_SESSION"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CREATION_ENTER_SESSION"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_PRE_FREEMODE_LAUNCH_SCRIPT"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_FREEMODE_TEAMFULL_CHECK"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_START_FREEMODE_LAUNCH_SCRIPT"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_FREEMODE_TRANSITION_CREATE_PLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_IS_FREEMODE_AND_TRANSITION_READY"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_FREEMODE_SWOOP_DOWN"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_POST_BINK_VIDEO_WARP"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_FREEMODE_FINAL_SETUP_PLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_MOVE_FREEMODE_TO_RUNNING_STATE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_FREEMODE_HOW_TO_TERMINATE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_START_CREATOR_PRE_LAUNCH_SCRIPT_CHECK"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_START_CREATOR_LAUNCH_SCRIPT"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CREATOR_TRANSITION_CREATE_PLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_IS_CREATOR_AND_TRANSITION_READY"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CREATOR_SWOOP_DOWN"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CREATOR_FINAL_SETUP_PLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_MOVE_CREATOR_TO_RUNNING_STATE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_PREJOINING_TESTBED_SESSION_CHECKS"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_LOOK_FOR_FRESH_JOIN_TESTBED"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_LOOK_FOR_FRESH_HOST_TESTBED"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_LOOK_TO_JOIN_ANOTHER_SESSION_TESTBED"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_LOOK_TO_HOST_SESSION_TESTBED"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_CONFIRM_TESTBED_SESSION_JOINING"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_JOIN_TESTBED_SESSION"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_START_TESTBED_LAUNCH_SCRIPT"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TESTBED_TRANSITION_CREATE_PLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_IS_TESTBED_AND_TRANSITION_READY"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TESTBED_SWOOP_DOWN"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TESTBED_FINAL_SETUP_PLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_MOVE_TESTBED_TO_RUNNING_STATE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TESTBED_HOW_TO_TERMINATE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_QUIT_CURRENT_SESSION_PROMPT"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_FOR_TRANSITION_SESSION_TO_SETUP"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TERMINATE_SINGLEPLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_TERMINATE_SINGLEPLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_KICK_TERMINATE_SESSION"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TERMINATE_SESSION"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_TERMINATE_SESSION"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TERMINATE_SESSION_AND_HOLD"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TERMINATE_SESSION_AND_MOVE_INTO_HOLDING_STATE"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TEAM_SWAPPING_CHECKS"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_RETURN_TO_SINGLEPLAYER"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_FOR_SINGLEPLAYER_TO_START"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAITING_FOR_EXTERNAL_TERMINATION_CALL"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_TERMINATE_MAINTRANSITION"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_WAIT_FOR_DIRTY_LOAD_CONFIRM"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_DLC_INTRO_BINK"_T, "BACKEND_LOOPED_HUD_TRANSITION_STATE_SPAWN_INTO_PERSONAL_VEHICLE"_T};
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0)
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0)
return;
// When freemode script loaded remove loading screen.
@ -41,7 +41,7 @@ namespace big
{
rage::scrThread* freemode{};
if (state == eTransitionState::TRANSITION_STATE_FM_TRANSITION_CREATE_PLAYER
&& (freemode = gta_util::find_script_thread(RAGE_JOAAT("freemode")), freemode && freemode->m_net_component))
&& (freemode = gta_util::find_script_thread("freemode"_J), freemode && freemode->m_net_component))
{
int num_array_handlers{};
int received_array_handlers{};

View File

@ -23,7 +23,7 @@ namespace big
entry.second->get_ped()->m_navigation->get_position(),
0,
true,
RAGE_JOAAT("weapon_explosion"),
"weapon_explosion"_J,
10000.0f,
2,
0,

View File

@ -10,24 +10,24 @@ namespace big
bool bLastDanceMode = false;
void looped::self_dance_mode()
{
if (g.self.dance_mode && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) > 0)
if (g.self.dance_mode && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) > 0)
g.self.dance_mode = false;
if (g.self.dance_mode && g.self.dance_mode != bLastDanceMode)
{
g_script_patcher_service->update();
scripts::request_script(RAGE_JOAAT("am_mp_nightclub"));
if (!scripts::wait_till_loaded(RAGE_JOAAT("am_mp_nightclub")))
scripts::request_script("am_mp_nightclub"_J);
if (!scripts::wait_till_loaded("am_mp_nightclub"_J))
return;
auto thread = SYSTEM::START_NEW_SCRIPT_WITH_NAME_HASH(RAGE_JOAAT("am_mp_nightclub"), 19400 /*PROPERTY_INT*/);
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(RAGE_JOAAT("am_mp_nightclub"));
auto thread = SYSTEM::START_NEW_SCRIPT_WITH_NAME_HASH("am_mp_nightclub"_J, 19400 /*PROPERTY_INT*/);
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED("am_mp_nightclub"_J);
if (!thread)
return;
g.m_dance_thread = gta_util::find_script_thread_by_id(thread);
g.m_dance_program = gta_util::find_script_program(RAGE_JOAAT("am_mp_nightclub"));
g.m_dance_program = gta_util::find_script_program("am_mp_nightclub"_J);
(*g_pointers->m_gta.m_script_handler_mgr)->attach_thread(g.m_dance_thread);
@ -63,4 +63,4 @@ namespace big
scr_functions::dance_loop.call(g.m_dance_thread, g.m_dance_program, {});
}
}
}
}

View File

@ -15,8 +15,8 @@ namespace big
int offset = 0;
switch (model)
{
case RAGE_JOAAT("mp_m_freemode_01"): break;
case RAGE_JOAAT("mp_f_freemode_01"):
case "mp_m_freemode_01"_J: break;
case "mp_f_freemode_01"_J:
{
offset = 1;
break;
@ -31,7 +31,7 @@ namespace big
{
//Disable clothing validation
*scr_globals::reset_clothing.as<PBOOL>() = FALSE;
if (auto tunable = g_tunables_service->get_tunable<PBOOL>(RAGE_JOAAT("DISABLE_CLOTHING_SAVE_SLOT_VALIDATION")))
if (auto tunable = g_tunables_service->get_tunable<PBOOL>("DISABLE_CLOTHING_SAVE_SLOT_VALIDATION"_J))
*tunable = TRUE;
if (g.self.persist_outfit.empty())
@ -62,4 +62,4 @@ namespace big
if (outfit.contains("model") && outfit["model"].get<uint32_t>() == model)
outfit_service::apply_outfit(outfit, false);
}
}
}

View File

@ -213,7 +213,7 @@ namespace big
if (!m_landing && m_flying)
{
//Negative Z velocity results in gravity assuming we are falling, hence the removal of the parachute.
constexpr auto parachute_hash = RAGE_JOAAT("GADGET_PARACHUTE");
constexpr auto parachute_hash = "GADGET_PARACHUTE"_J;
WEAPON::REMOVE_WEAPON_FROM_PED(self::ped, parachute_hash);
detach_delete_vehicle();
TASK::CLEAR_PED_TASKS_IMMEDIATELY(self::ped);
@ -408,4 +408,4 @@ namespace big
bool_command charge_ptfx("superheroflychargeptfx", "SUPER_HERO_FLY_CHARGE_PTFX", "SUPER_HERO_FLY_CHARGE_PTFX_DESC", g.self.super_hero_fly.ptfx);
float_command speed("superheroflyspeed", "SUPER_HERO_FLY_SPEED", "SUPER_HERO_FLY_SPEED_DESC", g.self.super_hero_fly.fly_speed, 1.f, 50.f);
float_command initial_launch("superheroflyinitiallaunch", "SUPER_HERO_FLY_INITIAL_LAUNCH", "SUPER_HERO_FLY_INITIAL_LAUNCH_DESC", g.self.super_hero_fly.initial_launch, 1.f, 50.f);
}
}

View File

@ -15,7 +15,7 @@ namespace big
virtual void on_tick() override
{
if (scr_globals::gpbd_fm_3.as<GPBD_FM_3*>()->Entries[self::id].BossGoon.Boss != -1 || gta_util::find_script_thread(RAGE_JOAAT("fm_mission_controller")) || gta_util::find_script_thread(RAGE_JOAAT("fm_mission_controller_2020")))
if (scr_globals::gpbd_fm_3.as<GPBD_FM_3*>()->Entries[self::id].BossGoon.Boss != -1 || gta_util::find_script_thread("fm_mission_controller"_J) || gta_util::find_script_thread("fm_mission_controller_2020"_J))
{
on_disable();
g.self.passive = false;
@ -39,4 +39,4 @@ namespace big
};
toggle_passive g_toggle_passive("passive", "PASSIVE", "PASSIVE_DESC", g.self.passive);
}
}

View File

@ -14,7 +14,7 @@ namespace big
g_player_service->iterate([](auto& plyr) {
if (plyr.second->is_host())
{
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("multikick")))->call(plyr.second, {});
dynamic_cast<player_command*>(command::get("multikick"_J))->call(plyr.second, {});
}
});
}

View File

@ -14,18 +14,18 @@ namespace big
bool used = g.session.block_jobs && *g_pointers->m_gta.m_is_session_started;
if (!bLastBlockJobsEnabled && used)
{
if (!STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0 && NETWORK::NETWORK_GET_HOST_OF_SCRIPT("fmmc_launcher", -1, 0) == self::id)
if (!STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0 && NETWORK::NETWORK_GET_HOST_OF_SCRIPT("fmmc_launcher", -1, 0) == self::id)
{
auto fmmc = gta_util::find_script_thread(RAGE_JOAAT("fmmc_launcher"));
auto fmmc = gta_util::find_script_thread("fmmc_launcher"_J);
*script_local(fmmc->m_stack, scr_locals::fmmc_launcher::broadcast_idx).at(47).at(7).as<int*>() = (-1 & ~(1 << self::id));
bLastBlockJobsEnabled = true;
}
}
else if (bLastBlockJobsEnabled && !used)
{
if (*g_pointers->m_gta.m_is_session_started && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread(RAGE_JOAAT("fmmc_launcher")))
if (*g_pointers->m_gta.m_is_session_started && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread("fmmc_launcher"_J))
{
auto fmmc = gta_util::find_script_thread(RAGE_JOAAT("fmmc_launcher"));
auto fmmc = gta_util::find_script_thread("fmmc_launcher"_J);
*script_local(fmmc->m_stack, scr_locals::fmmc_launcher::broadcast_idx).at(47).at(7).as<int*>() = 0;
}

View File

@ -13,7 +13,7 @@ namespace big
bool used = g.session.force_thunder && *g_pointers->m_gta.m_is_session_started;
if (!bLastForceThunderEnabled && used)
{
if (!STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread(RAGE_JOAAT("freemode")) && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0)
if (!STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread("freemode"_J) && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0)
{
session::set_fm_event_index(9);
session::set_fm_event_index(10);
@ -23,7 +23,7 @@ namespace big
}
else if (bLastForceThunderEnabled && !used)
{
if (*g_pointers->m_gta.m_is_session_started && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread(RAGE_JOAAT("freemode")))
if (*g_pointers->m_gta.m_is_session_started && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread("freemode"_J))
{
session::clear_fm_event_index(9);
session::clear_fm_event_index(10);

View File

@ -15,9 +15,9 @@ namespace big
bool used = (g.session.disable_traffic || g.session.disable_peds) && *g_pointers->m_gta.m_is_session_started;
if (!bLastPopMultiplierAreasEnabled && used)
{
if (!STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread(RAGE_JOAAT("freemode")) && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0)
if (!STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && gta_util::find_script_thread("freemode"_J) && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0)
{
gta_util::execute_as_script(RAGE_JOAAT("freemode"), [] {
gta_util::execute_as_script("freemode"_J, [] {
pop_multiplier_id = MISC::ADD_POP_MULTIPLIER_SPHERE(1.1f,
1.1f,
1.1f,
@ -44,9 +44,9 @@ namespace big
if (bLastPopMultiplierAreasEnabled && !used)
{
if (gta_util::find_script_thread(RAGE_JOAAT("freemode")))
if (gta_util::find_script_thread("freemode"_J))
{
gta_util::execute_as_script(RAGE_JOAAT("freemode"), [] {
gta_util::execute_as_script("freemode"_J, [] {
MISC::REMOVE_POP_MULTIPLIER_SPHERE(pop_multiplier_id, false);
});
}

View File

@ -9,9 +9,9 @@ namespace big
{
void looped::session_randomize_ceo_colors()
{
if (g.session.randomize_ceo_colors && *g_pointers->m_gta.m_is_session_started && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0)
if (g.session.randomize_ceo_colors && *g_pointers->m_gta.m_is_session_started && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0)
{
if (auto freemode = gta_util::find_script_thread(RAGE_JOAAT("freemode"));
if (auto freemode = gta_util::find_script_thread("freemode"_J);
freemode && freemode->m_net_component && ((CGameScriptHandlerNetComponent*)freemode->m_net_component)->is_local_player_host())
{
for (int i = 0; i < *scr_globals::gsbd.at(818).at(44).as<int*>(); i++)

View File

@ -14,7 +14,7 @@ namespace big
{
*scr_globals::terminate_creator.as<bool*>() = false;
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) > 0)
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) > 0)
{
if (g.m_mission_creator_thread)
g.m_mission_creator_thread->kill();
@ -36,4 +36,4 @@ namespace big
bLastMissionCreator = false;
}
}
}
}

View File

@ -16,7 +16,7 @@ namespace big
self::ped = PLAYER::PLAYER_PED_ID();
STATS::STAT_GET_INT(RAGE_JOAAT("MPPLY_LAST_MP_CHAR"), &self::char_index, true);
STATS::STAT_GET_INT("MPPLY_LAST_MP_CHAR"_J, &self::char_index, true);
self::pos = ENTITY::GET_ENTITY_COORDS(self::ped, false /*Unused*/);

View File

@ -37,7 +37,7 @@ namespace big
if (*g_pointers->m_gta.m_is_session_started)
{
gta_util::execute_as_script(RAGE_JOAAT("freemode"), [] {
gta_util::execute_as_script("freemode"_J, [] {
if (NETWORK::NETWORK_GET_THIS_SCRIPT_IS_NETWORK_SCRIPT() && NETWORK::NETWORK_GET_SCRIPT_STATUS() == 2)
{
if (g.spoofing.spoof_rank)

View File

@ -17,14 +17,14 @@ namespace big
{
if (!m_ready_to_use)
{
m_tunables[0] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("IDLEKICK_WARNING1"));
m_tunables[1] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("IDLEKICK_WARNING2"));
m_tunables[2] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("IDLEKICK_WARNING3"));
m_tunables[3] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("IDLEKICK_KICK"));
m_tunables[4] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("ConstrainedKick_Warning1"));
m_tunables[5] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("ConstrainedKick_Warning2"));
m_tunables[6] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("ConstrainedKick_Warning3"));
m_tunables[7] = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("ConstrainedKick_Kick"));
m_tunables[0] = g_tunables_service->get_tunable<int*>("IDLEKICK_WARNING1"_J);
m_tunables[1] = g_tunables_service->get_tunable<int*>("IDLEKICK_WARNING2"_J);
m_tunables[2] = g_tunables_service->get_tunable<int*>("IDLEKICK_WARNING3"_J);
m_tunables[3] = g_tunables_service->get_tunable<int*>("IDLEKICK_KICK"_J);
m_tunables[4] = g_tunables_service->get_tunable<int*>("ConstrainedKick_Warning1"_J);
m_tunables[5] = g_tunables_service->get_tunable<int*>("ConstrainedKick_Warning2"_J);
m_tunables[6] = g_tunables_service->get_tunable<int*>("ConstrainedKick_Warning3"_J);
m_tunables[7] = g_tunables_service->get_tunable<int*>("ConstrainedKick_Kick"_J);
// create backup of tunables
m_ready_to_use = true;

View File

@ -6,7 +6,7 @@
namespace big
{
constexpr auto list_of_hashes = {RAGE_JOAAT("GR_BLOCK_APC_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_ARDENT_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_NIGHTSHARK_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_INSURGENT3_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_TECHNICAL3_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_HALFTRACK_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_TRAILERSMALL_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_TAMPA3_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_DUNE3_IN_HEISTS"), RAGE_JOAAT("GR_BLOCK_OPPRESSOR_IN_HEISTS"), RAGE_JOAAT("SMUG_BLOCK_VIGILANTE_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_THRUSTER_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_DELUXO_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_STROMBERG_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_RCV_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_CHERNOBOG_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_BARRAGE_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_KHANJALI_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_SAFARI_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_SAVESTRA_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_AVENGER_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_VOLATOL_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_AKULA_IN_HEISTS"), RAGE_JOAAT("BB_BLOCK_OPPRESSOR2_IN_HEISTS"), RAGE_JOAAT("BB_BLOCK_SCRAMJET_IN_HEISTS"), RAGE_JOAAT("BLOCK_HYDRA_IN_HEISTS"), RAGE_JOAAT("BLOCK_TOREADOR_IN_HEISTS"), RAGE_JOAAT("H2_BLOCK_VISERIS_IN_HEISTS")};
constexpr auto list_of_hashes = {"GR_BLOCK_APC_IN_HEISTS"_J, "GR_BLOCK_ARDENT_IN_HEISTS"_J, "GR_BLOCK_NIGHTSHARK_IN_HEISTS"_J, "GR_BLOCK_INSURGENT3_IN_HEISTS"_J, "GR_BLOCK_TECHNICAL3_IN_HEISTS"_J, "GR_BLOCK_HALFTRACK_IN_HEISTS"_J, "GR_BLOCK_TRAILERSMALL_IN_HEISTS"_J, "GR_BLOCK_TAMPA3_IN_HEISTS"_J, "GR_BLOCK_DUNE3_IN_HEISTS"_J, "GR_BLOCK_OPPRESSOR_IN_HEISTS"_J, "SMUG_BLOCK_VIGILANTE_IN_HEISTS"_J, "H2_BLOCK_THRUSTER_IN_HEISTS"_J, "H2_BLOCK_DELUXO_IN_HEISTS"_J, "H2_BLOCK_STROMBERG_IN_HEISTS"_J, "H2_BLOCK_RCV_IN_HEISTS"_J, "H2_BLOCK_CHERNOBOG_IN_HEISTS"_J, "H2_BLOCK_BARRAGE_IN_HEISTS"_J, "H2_BLOCK_KHANJALI_IN_HEISTS"_J, "H2_BLOCK_SAFARI_IN_HEISTS"_J, "H2_BLOCK_SAVESTRA_IN_HEISTS"_J, "H2_BLOCK_AVENGER_IN_HEISTS"_J, "H2_BLOCK_VOLATOL_IN_HEISTS"_J, "H2_BLOCK_AKULA_IN_HEISTS"_J, "BB_BLOCK_OPPRESSOR2_IN_HEISTS"_J, "BB_BLOCK_SCRAMJET_IN_HEISTS"_J, "BLOCK_HYDRA_IN_HEISTS"_J, "BLOCK_TOREADOR_IN_HEISTS"_J, "H2_BLOCK_VISERIS_IN_HEISTS"_J};
class allvehsinheists : looped_command
{
@ -28,4 +28,4 @@ namespace big
};
allvehsinheists g_allvehsinheists("allvehsinheists", "VEHICLE_ALLOW_ALL_IN_HEISTS", "VEHICLE_ALLOW_ALL_IN_HEISTS_DESC", g.vehicle.all_vehs_in_heists);
}
}

View File

@ -10,7 +10,7 @@ namespace big
{
using looped_command::looped_command;
const rage::joaat_t drive_on_water_surface_hash = RAGE_JOAAT("stt_prop_stunt_bblock_xl3");
const rage::joaat_t drive_on_water_surface_hash = "stt_prop_stunt_bblock_xl3"_J;
Vector3 drive_on_water_last_loc;
Object surface;

View File

@ -18,8 +18,8 @@ namespace big
if (g.vehicle.ls_customs && g.vehicle.ls_customs != bLastLsCustoms)
{
g_fiber_pool->queue_job([] {
scripts::request_script(RAGE_JOAAT("carmod_shop"));
if (scripts::wait_till_loaded(RAGE_JOAAT("carmod_shop")))
scripts::request_script("carmod_shop"_J);
if (scripts::wait_till_loaded("carmod_shop"_J))
{
HUD::REQUEST_ADDITIONAL_TEXT("MOD_MNU", 9);
@ -37,7 +37,7 @@ namespace big
script::get_current()->yield();
// clang-format on
auto id = SYSTEM::START_NEW_SCRIPT_WITH_NAME_HASH(RAGE_JOAAT("carmod_shop"), 5050);
auto id = SYSTEM::START_NEW_SCRIPT_WITH_NAME_HASH("carmod_shop"_J, 5050);
if (!id)
return;
@ -51,7 +51,7 @@ namespace big
g_script_patcher_service->update();
scr_functions::setup_modshop.call_latent(g.m_modshop_thread, gta_util::find_script_program(RAGE_JOAAT("carmod_shop")), {45, 0, 18, 0}, bModshopReady);
scr_functions::setup_modshop.call_latent(g.m_modshop_thread, gta_util::find_script_program("carmod_shop"_J), {45, 0, 18, 0}, bModshopReady);
*scr_locals::carmod_shop::maintainer.set(g.m_modshop_thread->m_stack).at(scr_locals::carmod_shop::state).as<PINT>() = 2;
*scr_locals::carmod_shop::input_button.set(g.m_modshop_thread->m_stack).as<ControllerInputs*>() = ControllerInputs::INPUT_FRONTEND_LT;
}
@ -73,7 +73,7 @@ namespace big
g_script_patcher_service->update();
}
if (self::veh == 0 || SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) > 0 || (!g.m_modshop_thread && bModshopReady))
if (self::veh == 0 || SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) > 0 || (!g.m_modshop_thread && bModshopReady))
{
g.vehicle.ls_customs = false;
return;
@ -96,7 +96,7 @@ namespace big
if (*scr_locals::carmod_shop::maintainer.set(g.m_modshop_thread->m_stack).at(scr_locals::carmod_shop::state).as<PINT>() == 0)
*scr_locals::carmod_shop::maintainer.set(g.m_modshop_thread->m_stack).at(scr_locals::carmod_shop::state).as<PINT>() = 2;
scr_functions::modshop_loop.call(g.m_modshop_thread, gta_util::find_script_program(RAGE_JOAAT("carmod_shop")), {});
scr_functions::modshop_loop.call(g.m_modshop_thread, gta_util::find_script_program("carmod_shop"_J), {});
}
}
}
}

View File

@ -92,7 +92,7 @@ namespace big
// this is to differentiate missiles from turrets, mortars and barrage
CAmmoRocketInfo* rocket_info = (CAmmoRocketInfo*)weapon_info->m_ammo_info;
uint32_t trail_hash = rocket_info->m_m_trail_fx_hash;
return (trail_hash == RAGE_JOAAT("proj_rpg_trail") || trail_hash == RAGE_JOAAT("proj_xm_thruster_rpg_trail"));
return (trail_hash == "proj_rpg_trail"_J || trail_hash == "proj_xm_thruster_rpg_trail"_J);
}
void restore_mg()

View File

@ -71,11 +71,11 @@ namespace big
}
}
if (it->is_attacker && TASK::GET_SCRIPT_TASK_STATUS(it->ped_handle, RAGE_JOAAT("SCRIPT_TASK_COMBAT")) == 7)
if (it->is_attacker && TASK::GET_SCRIPT_TASK_STATUS(it->ped_handle, "SCRIPT_TASK_COMBAT"_J) == 7)
{
TASK::TASK_COMBAT_PED(it->ped_handle, PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(it->spawned_for_player), 0, 16);
}
else if (it->is_bodyguard && it->spawned_for_player != self::id && TASK::GET_SCRIPT_TASK_STATUS(it->ped_handle, RAGE_JOAAT("SCRIPT_TASK_FOLLOW_TO_OFFSET_OF_ENTITY")) == 7)
else if (it->is_bodyguard && it->spawned_for_player != self::id && TASK::GET_SCRIPT_TASK_STATUS(it->ped_handle, "SCRIPT_TASK_FOLLOW_TO_OFFSET_OF_ENTITY"_J) == 7)
{
TASK::TASK_FOLLOW_TO_OFFSET_OF_ENTITY(it->ped_handle, PLAYER::GET_PLAYER_PED_SCRIPT_INDEX(it->spawned_for_player), 0.0f, 0.0f, 0.0f, 4.0f, -1, 0.0f, true);
}

View File

@ -19,7 +19,7 @@ namespace big
virtual void on_tick() override
{
if (!turn_snow_on_off)
turn_snow_on_off = g_tunables_service->get_tunable<bool*>(RAGE_JOAAT("TURN_SNOW_ON_OFF"));
turn_snow_on_off = g_tunables_service->get_tunable<bool*>("TURN_SNOW_ON_OFF"_J);
if (current_weather_idx != g.world.local_weather)
{
@ -38,4 +38,4 @@ namespace big
};
weather_override g_weather_override("weatheroverride", "BACKEND_LOOPED_WORLD_OVERRIDE_WEATHER", "BACKEND_LOOPED_WORLD_OVERRIDE_WEATHER_DESC", g.world.override_weather);
}
}

View File

@ -33,7 +33,7 @@ namespace big
if (kick)
{
g_fiber_pool->queue_job([player] {
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("multikick")))->call(player, {});
dynamic_cast<player_command*>(command::get("multikick"_J))->call(player, {});
});
}

View File

@ -9,63 +9,63 @@ namespace big
void register_script_patches()
{
g_script_patcher_service->add_patch(
{RAGE_JOAAT("freemode"), "freemode1", "2D 01 08 00 ? 38 00 5D ? ? ? 2A 06", 5, {0x71, 0x2E, 0x01, 0x01}, &g.session.decloak_players});
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"), "script host kick", "2D 01 04 00 ? 2C ? ? ? 5D ? ? ? 71 57 ? ? 2C", 5, {0x2E, 0x01, 0x00}, nullptr}); // script host kick
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"), "end session kick protection", "5D ? ? ? 76 57 ? ? 5D ? ? ? 76", 0, {0x2E, 0x00, 0x00}, nullptr}); // end session kick protection
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"), "disable death when undermap/spectating", "2D 01 09 00 00 5D ? ? ? 56 ? ? 3A", 5, {0x2E, 0x01, 0x00}, nullptr}); // disable death when undermap/spectating
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"), "load island even if stranded animal IPL choice is not set", "71 2E ? ? 55 ? ? 61 ? ? ? 47 ? ? 63", 0, {0x72}, nullptr}); // load island even if stranded animal IPL choice is not set
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"), "disable population load balancing", "2D 00 07 00 00 7B", 5, {0x2E, 0x00, 0x00}, nullptr}); // disable population load balancing
{"freemode"_J, "freemode1", "2D 01 08 00 ? 38 00 5D ? ? ? 2A 06", 5, {0x71, 0x2E, 0x01, 0x01}, &g.session.decloak_players});
g_script_patcher_service->add_patch({"freemode"_J, "script host kick", "2D 01 04 00 ? 2C ? ? ? 5D ? ? ? 71 57 ? ? 2C", 5, {0x2E, 0x01, 0x00}, nullptr}); // script host kick
g_script_patcher_service->add_patch({"freemode"_J, "end session kick protection", "5D ? ? ? 76 57 ? ? 5D ? ? ? 76", 0, {0x2E, 0x00, 0x00}, nullptr}); // end session kick protection
g_script_patcher_service->add_patch({"freemode"_J, "disable death when undermap/spectating", "2D 01 09 00 00 5D ? ? ? 56 ? ? 3A", 5, {0x2E, 0x01, 0x00}, nullptr}); // disable death when undermap/spectating
g_script_patcher_service->add_patch({"freemode"_J, "load island even if stranded animal IPL choice is not set", "71 2E ? ? 55 ? ? 61 ? ? ? 47 ? ? 63", 0, {0x72}, nullptr}); // load island even if stranded animal IPL choice is not set
g_script_patcher_service->add_patch({"freemode"_J, "disable population load balancing", "2D 00 07 00 00 7B", 5, {0x2E, 0x00, 0x00}, nullptr}); // disable population load balancing
g_script_patcher_service->add_patch(
{RAGE_JOAAT("freemode"), "freemode7", "2D 02 08 00 00 38 01 56", 5, {0x2E, 0x02, 0x00}, &g.session.block_muggers});
{"freemode"_J, "freemode7", "2D 02 08 00 00 38 01 56", 5, {0x2E, 0x02, 0x00}, &g.session.block_muggers});
g_script_patcher_service->add_patch(
{RAGE_JOAAT("freemode"), "freemode8", "2D 00 CF 00 00", 5, {0x2E, 0x00, 0x00}, &g.session.block_ceo_raids});
{"freemode"_J, "freemode8", "2D 00 CF 00 00", 5, {0x2E, 0x00, 0x00}, &g.session.block_ceo_raids});
g_script_patcher_service->add_patch(
{RAGE_JOAAT("freemode"), "prevent normal blip update", "06 56 ? ? 38 02 2C ? ? ? 71 71", 0, {0x2B, 0x55}, &g.spoofing.spoof_blip}); // prevent normal blip update
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"),
{"freemode"_J, "prevent normal blip update", "06 56 ? ? 38 02 2C ? ? ? 71 71", 0, {0x2B, 0x55}, &g.spoofing.spoof_blip}); // prevent normal blip update
g_script_patcher_service->add_patch({"freemode"_J,
"prevent normal blip update 2",
"2C ? ? ? 55 ? ? 71 2C ? ? ? 61",
7,
std::vector<uint8_t>(16, 0x0),
&g.spoofing.spoof_blip}); // prevent normal blip update 2
g_script_patcher_service->add_patch({RAGE_JOAAT("shop_controller"), "despawn bypass", "2D 01 04 00 00 2C ? ? ? 56 ? ? 71", 5, {0x71, 0x2E, 0x01, 0x01}, nullptr}); // despawn bypass
g_script_patcher_service->add_patch({RAGE_JOAAT("shop_controller"), "godmode/invisibility detection bypass", "2D 01 03 00 00 5D ? ? ? 06 56 ? ? 2E ? ? 2C", 5, {0x2E, 0x01, 0x00}, nullptr}); // godmode/invisibility detection bypass
g_script_patcher_service->add_patch({RAGE_JOAAT("am_mp_nightclub"),
g_script_patcher_service->add_patch({"shop_controller"_J, "despawn bypass", "2D 01 04 00 00 2C ? ? ? 56 ? ? 71", 5, {0x71, 0x2E, 0x01, 0x01}, nullptr}); // despawn bypass
g_script_patcher_service->add_patch({"shop_controller"_J, "godmode/invisibility detection bypass", "2D 01 03 00 00 5D ? ? ? 06 56 ? ? 2E ? ? 2C", 5, {0x2E, 0x01, 0x00}, nullptr}); // godmode/invisibility detection bypass
g_script_patcher_service->add_patch({"am_mp_nightclub"_J,
"am_mp_nightclub1",
"2D 01 03 00 00 2C ? ? ? 56 ? ? 72 2E ? ? 38 00",
5,
{0x72, 0x2E, 0x01, 0x01},
&g.self.dance_mode});
g_script_patcher_service->add_patch({RAGE_JOAAT("am_mp_nightclub"),
g_script_patcher_service->add_patch({"am_mp_nightclub"_J,
"am_mp_nightclub2",
"20 56 ? ? 4F ? ? 46 ? ? 41 ? 71",
0,
{0x2B, 0x55},
&g.self.dance_mode});
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"),
g_script_patcher_service->add_patch({"freemode"_J,
"freemode9",
"5D ? ? ? 56 ? ? 72 39 05 38 04 2C ? ? ? 58",
0,
{0x2B, 0x2B, 0x2B, 0x00, 0x55},
&g.self.invisibility});
g_script_patcher_service->add_patch({RAGE_JOAAT("freemode"),
g_script_patcher_service->add_patch({"freemode"_J,
"freemode10",
"2D 01 03 00 00 38 00 71 72 5D ? ? ? 06 56 ? ? 71 2E ? ? 2C ? ? ? 71",
5,
{0x72, 0x2E, 0x01, 0x01},
&g.session.unhide_players_from_player_list});
g_script_patcher_service->add_patch({RAGE_JOAAT("carmod_shop"),
g_script_patcher_service->add_patch({"carmod_shop"_J,
"disable camera",
"2D 01 0A 00 00 4F ? ? 40 ? 41 ? 39 03",
5,
{0x2E, 0x01, 0x00},
&g.vehicle.ls_customs}); // disable camera
g_script_patcher_service->add_patch(
{RAGE_JOAAT("carmod_shop"), "carmod_shop1", "2D 02 10 00 00 2C", 5, {0x71, 0x2E, 0x02, 0x01}, &g.vehicle.ls_customs});
{"carmod_shop"_J, "carmod_shop1", "2D 02 10 00 00 2C", 5, {0x71, 0x2E, 0x02, 0x01}, &g.vehicle.ls_customs});
g_script_patcher_service->add_patch(
{RAGE_JOAAT("carmod_shop"), "carmod_shop2", "2D 00 B8 00 00", 5, {0x2E, 0x00, 0x00}, &g.vehicle.ls_customs});
g_script_patcher_service->add_patch({RAGE_JOAAT("carmod_shop"), "allow all vehicles", "2D 03 16 00 00 5D", 5, {0x72, 0x2E, 0x03, 0x01}, nullptr}); // allow all vehicles
g_script_patcher_service->add_patch({RAGE_JOAAT("carmod_shop"),
{"carmod_shop"_J, "carmod_shop2", "2D 00 B8 00 00", 5, {0x2E, 0x00, 0x00}, &g.vehicle.ls_customs});
g_script_patcher_service->add_patch({"carmod_shop"_J, "allow all vehicles", "2D 03 16 00 00 5D", 5, {0x72, 0x2E, 0x03, 0x01}, nullptr}); // allow all vehicles
g_script_patcher_service->add_patch({"carmod_shop"_J,
"allow all vehicles 2",
"2D 03 07 00 00 71 38 02",
5,
@ -78,4 +78,4 @@ namespace big
g_script_patcher_service->on_script_load(entry.m_program);
}
}
}
}

View File

@ -4,232 +4,232 @@ namespace big
{
constexpr const static inline auto launcher_scripts = std::to_array({
0u,
RAGE_JOAAT("AM_HOLD_UP"),
"AM_HOLD_UP"_J,
0u,
RAGE_JOAAT("AM_CR_SELL_DRUGS"),
RAGE_JOAAT("AM_STRIPPER"),
RAGE_JOAAT("stripclub_mp"),
RAGE_JOAAT("AM_ArmWrestling"),
RAGE_JOAAT("AM_ImportExport"),
RAGE_JOAAT("AM_Tennis"),
RAGE_JOAAT("AM_Darts"),
RAGE_JOAAT("AM_FistFight"),
RAGE_JOAAT("AM_DropOffHooker"),
RAGE_JOAAT("AM_Safehouse"),
RAGE_JOAAT("AM_Hitchhiker"),
"AM_CR_SELL_DRUGS"_J,
"AM_STRIPPER"_J,
"stripclub_mp"_J,
"AM_ArmWrestling"_J,
"AM_ImportExport"_J,
"AM_Tennis"_J,
"AM_Darts"_J,
"AM_FistFight"_J,
"AM_DropOffHooker"_J,
"AM_Safehouse"_J,
"AM_Hitchhiker"_J,
0u,
RAGE_JOAAT("AM_DOORS"),
RAGE_JOAAT("MG_RACE_TO_POINT"),
RAGE_JOAAT("AM_PI_MENU"),
RAGE_JOAAT("AM_CRATE_DROP"),
RAGE_JOAAT("AM_IMP_EXP"),
RAGE_JOAAT("FM_INTRO"),
RAGE_JOAAT("AM_PROSTITUTE"),
RAGE_JOAAT("AM_TAXI"),
RAGE_JOAAT("AM_TAXI_LAUNCHER"),
RAGE_JOAAT("AM_GANG_CALL"),
RAGE_JOAAT("heli_gun"),
RAGE_JOAAT("AM_backup_heli"),
RAGE_JOAAT("AM_airstrike"),
RAGE_JOAAT("AM_AMMO_DROP"),
RAGE_JOAAT("AM_VEHICLE_DROP"),
RAGE_JOAAT("AM_BRU_BOX"),
RAGE_JOAAT("AM_GA_PICKUPS"),
RAGE_JOAAT("AM_JOYRIDER"),
RAGE_JOAAT("AM_PLANE_TAKEDOWN"),
RAGE_JOAAT("AM_DISTRACT_COPS"),
RAGE_JOAAT("AM_DESTROY_VEH"),
RAGE_JOAAT("AM_HOT_TARGET"),
RAGE_JOAAT("AM_KILL_LIST"),
RAGE_JOAAT("AM_TIME_TRIAL"),
RAGE_JOAAT("AM_CP_COLLECTION"),
RAGE_JOAAT("AM_CHALLENGES"),
RAGE_JOAAT("AM_PENNED_IN"),
RAGE_JOAAT("AM_PASS_THE_PARCEL"),
RAGE_JOAAT("AM_HOT_PROPERTY"),
RAGE_JOAAT("AM_DEAD_DROP"),
RAGE_JOAAT("AM_KING_OF_THE_CASTLE"),
RAGE_JOAAT("AM_CRIMINAL_DAMAGE"),
RAGE_JOAAT("AM_HUNT_THE_BEAST"),
RAGE_JOAAT("GB_LIMO_ATTACK"),
RAGE_JOAAT("GB_DEATHMATCH"),
RAGE_JOAAT("GB_STEAL_VEH"),
RAGE_JOAAT("GB_POINT_TO_POINT"),
RAGE_JOAAT("GB_TERMINATE"),
RAGE_JOAAT("GB_YACHT_ROB"),
RAGE_JOAAT("GB_BELLYBEAST"),
RAGE_JOAAT("GB_FIVESTAR"),
RAGE_JOAAT("GB_ROB_SHOP"),
RAGE_JOAAT("GB_COLLECT_MONEY"),
RAGE_JOAAT("GB_ASSAULT"),
RAGE_JOAAT("GB_VEH_SURV"),
RAGE_JOAAT("GB_SIGHTSEER"),
RAGE_JOAAT("GB_FLYING_IN_STYLE"),
RAGE_JOAAT("GB_FINDERSKEEPERS"),
RAGE_JOAAT("GB_HUNT_THE_BOSS"),
RAGE_JOAAT("GB_CARJACKING"),
RAGE_JOAAT("GB_HEADHUNTER"),
RAGE_JOAAT("GB_CONTRABAND_BUY"),
RAGE_JOAAT("GB_CONTRABAND_SELL"),
RAGE_JOAAT("GB_CONTRABAND_DEFEND"),
RAGE_JOAAT("GB_AIRFREIGHT"),
RAGE_JOAAT("GB_CASHING_OUT"),
RAGE_JOAAT("GB_SALVAGE"),
RAGE_JOAAT("GB_FRAGILE_GOODS"),
RAGE_JOAAT("GB_VEHICLE_EXPORT"),
RAGE_JOAAT("GB_VEHICLE_EXPORT"),
RAGE_JOAAT("GB_PLOUGHED"),
RAGE_JOAAT("GB_FULLY_LOADED"),
RAGE_JOAAT("GB_AMPHIBIOUS_ASSAULT"),
RAGE_JOAAT("GB_TRANSPORTER"),
RAGE_JOAAT("GB_FORTIFIED"),
RAGE_JOAAT("GB_VELOCITY"),
RAGE_JOAAT("GB_RAMPED_UP"),
RAGE_JOAAT("GB_STOCKPILING"),
RAGE_JOAAT("GB_BIKER_RACE_P2P"),
RAGE_JOAAT("GB_BIKER_JOUST"),
RAGE_JOAAT("GB_BIKER_UNLOAD_WEAPONS"),
"AM_DOORS"_J,
"MG_RACE_TO_POINT"_J,
"AM_PI_MENU"_J,
"AM_CRATE_DROP"_J,
"AM_IMP_EXP"_J,
"FM_INTRO"_J,
"AM_PROSTITUTE"_J,
"AM_TAXI"_J,
"AM_TAXI_LAUNCHER"_J,
"AM_GANG_CALL"_J,
"heli_gun"_J,
"AM_backup_heli"_J,
"AM_airstrike"_J,
"AM_AMMO_DROP"_J,
"AM_VEHICLE_DROP"_J,
"AM_BRU_BOX"_J,
"AM_GA_PICKUPS"_J,
"AM_JOYRIDER"_J,
"AM_PLANE_TAKEDOWN"_J,
"AM_DISTRACT_COPS"_J,
"AM_DESTROY_VEH"_J,
"AM_HOT_TARGET"_J,
"AM_KILL_LIST"_J,
"AM_TIME_TRIAL"_J,
"AM_CP_COLLECTION"_J,
"AM_CHALLENGES"_J,
"AM_PENNED_IN"_J,
"AM_PASS_THE_PARCEL"_J,
"AM_HOT_PROPERTY"_J,
"AM_DEAD_DROP"_J,
"AM_KING_OF_THE_CASTLE"_J,
"AM_CRIMINAL_DAMAGE"_J,
"AM_HUNT_THE_BEAST"_J,
"GB_LIMO_ATTACK"_J,
"GB_DEATHMATCH"_J,
"GB_STEAL_VEH"_J,
"GB_POINT_TO_POINT"_J,
"GB_TERMINATE"_J,
"GB_YACHT_ROB"_J,
"GB_BELLYBEAST"_J,
"GB_FIVESTAR"_J,
"GB_ROB_SHOP"_J,
"GB_COLLECT_MONEY"_J,
"GB_ASSAULT"_J,
"GB_VEH_SURV"_J,
"GB_SIGHTSEER"_J,
"GB_FLYING_IN_STYLE"_J,
"GB_FINDERSKEEPERS"_J,
"GB_HUNT_THE_BOSS"_J,
"GB_CARJACKING"_J,
"GB_HEADHUNTER"_J,
"GB_CONTRABAND_BUY"_J,
"GB_CONTRABAND_SELL"_J,
"GB_CONTRABAND_DEFEND"_J,
"GB_AIRFREIGHT"_J,
"GB_CASHING_OUT"_J,
"GB_SALVAGE"_J,
"GB_FRAGILE_GOODS"_J,
"GB_VEHICLE_EXPORT"_J,
"GB_VEHICLE_EXPORT"_J,
"GB_PLOUGHED"_J,
"GB_FULLY_LOADED"_J,
"GB_AMPHIBIOUS_ASSAULT"_J,
"GB_TRANSPORTER"_J,
"GB_FORTIFIED"_J,
"GB_VELOCITY"_J,
"GB_RAMPED_UP"_J,
"GB_STOCKPILING"_J,
"GB_BIKER_RACE_P2P"_J,
"GB_BIKER_JOUST"_J,
"GB_BIKER_UNLOAD_WEAPONS"_J,
0u,
RAGE_JOAAT("GB_BIKER_BAD_DEAL"),
RAGE_JOAAT("GB_BIKER_RESCUE_CONTACT"),
RAGE_JOAAT("GB_BIKER_LAST_RESPECTS"),
RAGE_JOAAT("GB_BIKER_CONTRACT_KILLING"),
RAGE_JOAAT("GB_BIKER_CONTRABAND_SELL"),
RAGE_JOAAT("GB_BIKER_CONTRABAND_DEFEND"),
RAGE_JOAAT("GB_ILLICIT_GOODS_RESUPPLY"),
RAGE_JOAAT("GB_BIKER_DRIVEBY_ASSASSIN"),
RAGE_JOAAT("GB_BIKER_RIPPIN_IT_UP"),
RAGE_JOAAT("GB_BIKER_FREE_PRISONER"),
RAGE_JOAAT("GB_BIKER_SAFECRACKER"),
RAGE_JOAAT("GB_BIKER_STEAL_BIKES"),
RAGE_JOAAT("GB_BIKER_SEARCH_AND_DESTROY"),
RAGE_JOAAT("AM_PENNED_IN"),
RAGE_JOAAT("GB_BIKER_STAND_YOUR_GROUND"),
RAGE_JOAAT("GB_BIKER_CRIMINAL_MISCHIEF"),
RAGE_JOAAT("GB_BIKER_DESTROY_VANS"),
RAGE_JOAAT("GB_BIKER_BURN_ASSETS"),
RAGE_JOAAT("GB_BIKER_SHUTTLE"),
RAGE_JOAAT("GB_BIKER_WHEELIE_RIDER"),
RAGE_JOAAT("GB_GUNRUNNING"),
RAGE_JOAAT("GB_GUNRUNNING"),
RAGE_JOAAT("GB_GUNRUNNING_DEFEND"),
RAGE_JOAAT("GB_SMUGGLER"),
RAGE_JOAAT("GB_SMUGGLER"),
RAGE_JOAAT("GB_SMUGGLER"),
RAGE_JOAAT("GB_GANGOPS"),
RAGE_JOAAT("BUSINESS_BATTLES"),
RAGE_JOAAT("BUSINESS_BATTLES_SELL"),
RAGE_JOAAT("BUSINESS_BATTLES_DEFEND"),
RAGE_JOAAT("GB_SECURITY_VAN"),
RAGE_JOAAT("GB_TARGET_PURSUIT"),
RAGE_JOAAT("GB_JEWEL_STORE_GRAB"),
RAGE_JOAAT("GB_BANK_JOB"),
RAGE_JOAAT("GB_DATA_HACK"),
RAGE_JOAAT("GB_INFILTRATION"),
RAGE_JOAAT("BUSINESS_BATTLES_DEFEND"),
RAGE_JOAAT("BUSINESS_BATTLES_SELL"),
RAGE_JOAAT("GB_CASINO"),
RAGE_JOAAT("GB_CASINO_HEIST"),
RAGE_JOAAT("fm_content_business_battles"),
RAGE_JOAAT("fm_content_drug_vehicle"),
RAGE_JOAAT("fm_content_movie_props"),
RAGE_JOAAT("fm_content_island_heist"),
RAGE_JOAAT("fm_content_island_dj"),
RAGE_JOAAT("AM_ISLAND_BACKUP_HELI"),
RAGE_JOAAT("fm_content_golden_gun"),
RAGE_JOAAT("fm_content_tuner_robbery"),
RAGE_JOAAT("fm_content_vehicle_list"),
RAGE_JOAAT("tuner_sandbox_activity"),
RAGE_JOAAT("fm_content_auto_shop_delivery"),
RAGE_JOAAT("fm_content_payphone_hit"),
RAGE_JOAAT("fm_content_security_contract"),
RAGE_JOAAT("fm_content_vip_contract_1"),
RAGE_JOAAT("fm_content_metal_detector"),
RAGE_JOAAT("am_agency_suv"),
RAGE_JOAAT("fm_content_phantom_car"),
RAGE_JOAAT("fm_content_slasher"),
RAGE_JOAAT("fm_content_sightseeing"),
RAGE_JOAAT("fm_content_smuggler_trail"),
RAGE_JOAAT("fm_content_smuggler_plane"),
RAGE_JOAAT("fm_content_skydive"),
RAGE_JOAAT("fm_content_cerberus"),
RAGE_JOAAT("fm_content_parachuter"),
RAGE_JOAAT("fm_content_crime_scene"),
RAGE_JOAAT("fm_content_bar_resupply"),
RAGE_JOAAT("fm_content_bike_shop_delivery"),
RAGE_JOAAT("fm_content_clubhouse_contracts"),
RAGE_JOAAT("fm_content_cargo"),
RAGE_JOAAT("fm_content_export_cargo"),
RAGE_JOAAT("fm_content_ammunation"),
RAGE_JOAAT("fm_content_gunrunning"),
RAGE_JOAAT("fm_content_source_research"),
RAGE_JOAAT("fm_content_club_management"),
RAGE_JOAAT("fm_content_club_odd_jobs"),
RAGE_JOAAT("fm_content_club_source"),
RAGE_JOAAT("fm_content_convoy"),
RAGE_JOAAT("fm_content_robbery"),
RAGE_JOAAT("fm_content_acid_lab_setup"),
RAGE_JOAAT("fm_content_acid_lab_source"),
RAGE_JOAAT("fm_content_acid_lab_sell"),
RAGE_JOAAT("fm_content_drug_lab_work"),
RAGE_JOAAT("fm_content_stash_house"),
RAGE_JOAAT("fm_content_taxi_driver"),
RAGE_JOAAT("fm_content_xmas_mugger"),
RAGE_JOAAT("fm_content_bank_shootout"),
RAGE_JOAAT("fm_content_armoured_truck"),
RAGE_JOAAT("fm_content_ghosthunt"),
RAGE_JOAAT("fm_content_smuggler_sell"),
RAGE_JOAAT("fm_content_smuggler_resupply"),
RAGE_JOAAT("fm_content_smuggler_ops"),
RAGE_JOAAT("fm_content_bicycle_time_trial"),
RAGE_JOAAT("fm_content_possessed_animals"),
RAGE_JOAAT("AM_BOAT_TAXI"),
RAGE_JOAAT("AM_HELI_TAXI"),
RAGE_JOAAT("fm_hold_up_tut"),
RAGE_JOAAT("AM_CAR_MOD_TUT"),
RAGE_JOAAT("AM_CONTACT_REQUESTS"),
RAGE_JOAAT("am_mission_launch"),
RAGE_JOAAT("am_npc_invites"),
RAGE_JOAAT("am_lester_cut"),
RAGE_JOAAT("am_heist_int"),
RAGE_JOAAT("am_lowrider_int"),
RAGE_JOAAT("AM_VEHICLE_SPAWN"),
RAGE_JOAAT("am_ronTrevor_Cut"),
RAGE_JOAAT("AM_ARMYBASE"),
RAGE_JOAAT("AM_PRISON"),
RAGE_JOAAT("am_rollercoaster"),
RAGE_JOAAT("am_ferriswheel"),
RAGE_JOAAT("AM_LAUNCHER"),
RAGE_JOAAT("AM_DAILY_OBJECTIVES"),
RAGE_JOAAT("AM_ArmWrestling"),
RAGE_JOAAT("AM_Darts"),
RAGE_JOAAT("golf_mp"),
RAGE_JOAAT("Range_Modern_MP"),
RAGE_JOAAT("tennis_network_mp"),
RAGE_JOAAT("Pilot_School_MP"),
RAGE_JOAAT("FM_Impromptu_DM_Controler"),
RAGE_JOAAT("fm_Bj_race_controler"),
RAGE_JOAAT("fm_deathmatch_controler"),
RAGE_JOAAT("fm_hideout_controler"),
RAGE_JOAAT("fm_mission_controller"),
RAGE_JOAAT("FM_Race_Controler"),
RAGE_JOAAT("FM_Horde_Controler"),
RAGE_JOAAT("dont_cross_the_line"),
RAGE_JOAAT("am_darts_apartment"),
RAGE_JOAAT("AM_Armwrestling_Apartment"),
RAGE_JOAAT("grid_arcade_cabinet"),
RAGE_JOAAT("scroll_arcade_cabinet"),
RAGE_JOAAT("example_arcade"),
RAGE_JOAAT("road_arcade"),
RAGE_JOAAT("gunslinger_arcade"),
RAGE_JOAAT("wizard_arcade"),
RAGE_JOAAT("AM_CASINO_LIMO"),
RAGE_JOAAT("AM_CASINO_LUXURY_CAR"),
RAGE_JOAAT("Degenatron Games"),
RAGE_JOAAT("ggsm_arcade"),
RAGE_JOAAT("puzzle"),
RAGE_JOAAT("camhedz_arcade"),
RAGE_JOAAT("SCTV"),
"GB_BIKER_BAD_DEAL"_J,
"GB_BIKER_RESCUE_CONTACT"_J,
"GB_BIKER_LAST_RESPECTS"_J,
"GB_BIKER_CONTRACT_KILLING"_J,
"GB_BIKER_CONTRABAND_SELL"_J,
"GB_BIKER_CONTRABAND_DEFEND"_J,
"GB_ILLICIT_GOODS_RESUPPLY"_J,
"GB_BIKER_DRIVEBY_ASSASSIN"_J,
"GB_BIKER_RIPPIN_IT_UP"_J,
"GB_BIKER_FREE_PRISONER"_J,
"GB_BIKER_SAFECRACKER"_J,
"GB_BIKER_STEAL_BIKES"_J,
"GB_BIKER_SEARCH_AND_DESTROY"_J,
"AM_PENNED_IN"_J,
"GB_BIKER_STAND_YOUR_GROUND"_J,
"GB_BIKER_CRIMINAL_MISCHIEF"_J,
"GB_BIKER_DESTROY_VANS"_J,
"GB_BIKER_BURN_ASSETS"_J,
"GB_BIKER_SHUTTLE"_J,
"GB_BIKER_WHEELIE_RIDER"_J,
"GB_GUNRUNNING"_J,
"GB_GUNRUNNING"_J,
"GB_GUNRUNNING_DEFEND"_J,
"GB_SMUGGLER"_J,
"GB_SMUGGLER"_J,
"GB_SMUGGLER"_J,
"GB_GANGOPS"_J,
"BUSINESS_BATTLES"_J,
"BUSINESS_BATTLES_SELL"_J,
"BUSINESS_BATTLES_DEFEND"_J,
"GB_SECURITY_VAN"_J,
"GB_TARGET_PURSUIT"_J,
"GB_JEWEL_STORE_GRAB"_J,
"GB_BANK_JOB"_J,
"GB_DATA_HACK"_J,
"GB_INFILTRATION"_J,
"BUSINESS_BATTLES_DEFEND"_J,
"BUSINESS_BATTLES_SELL"_J,
"GB_CASINO"_J,
"GB_CASINO_HEIST"_J,
"fm_content_business_battles"_J,
"fm_content_drug_vehicle"_J,
"fm_content_movie_props"_J,
"fm_content_island_heist"_J,
"fm_content_island_dj"_J,
"AM_ISLAND_BACKUP_HELI"_J,
"fm_content_golden_gun"_J,
"fm_content_tuner_robbery"_J,
"fm_content_vehicle_list"_J,
"tuner_sandbox_activity"_J,
"fm_content_auto_shop_delivery"_J,
"fm_content_payphone_hit"_J,
"fm_content_security_contract"_J,
"fm_content_vip_contract_1"_J,
"fm_content_metal_detector"_J,
"am_agency_suv"_J,
"fm_content_phantom_car"_J,
"fm_content_slasher"_J,
"fm_content_sightseeing"_J,
"fm_content_smuggler_trail"_J,
"fm_content_smuggler_plane"_J,
"fm_content_skydive"_J,
"fm_content_cerberus"_J,
"fm_content_parachuter"_J,
"fm_content_crime_scene"_J,
"fm_content_bar_resupply"_J,
"fm_content_bike_shop_delivery"_J,
"fm_content_clubhouse_contracts"_J,
"fm_content_cargo"_J,
"fm_content_export_cargo"_J,
"fm_content_ammunation"_J,
"fm_content_gunrunning"_J,
"fm_content_source_research"_J,
"fm_content_club_management"_J,
"fm_content_club_odd_jobs"_J,
"fm_content_club_source"_J,
"fm_content_convoy"_J,
"fm_content_robbery"_J,
"fm_content_acid_lab_setup"_J,
"fm_content_acid_lab_source"_J,
"fm_content_acid_lab_sell"_J,
"fm_content_drug_lab_work"_J,
"fm_content_stash_house"_J,
"fm_content_taxi_driver"_J,
"fm_content_xmas_mugger"_J,
"fm_content_bank_shootout"_J,
"fm_content_armoured_truck"_J,
"fm_content_ghosthunt"_J,
"fm_content_smuggler_sell"_J,
"fm_content_smuggler_resupply"_J,
"fm_content_smuggler_ops"_J,
"fm_content_bicycle_time_trial"_J,
"fm_content_possessed_animals"_J,
"AM_BOAT_TAXI"_J,
"AM_HELI_TAXI"_J,
"fm_hold_up_tut"_J,
"AM_CAR_MOD_TUT"_J,
"AM_CONTACT_REQUESTS"_J,
"am_mission_launch"_J,
"am_npc_invites"_J,
"am_lester_cut"_J,
"am_heist_int"_J,
"am_lowrider_int"_J,
"AM_VEHICLE_SPAWN"_J,
"am_ronTrevor_Cut"_J,
"AM_ARMYBASE"_J,
"AM_PRISON"_J,
"am_rollercoaster"_J,
"am_ferriswheel"_J,
"AM_LAUNCHER"_J,
"AM_DAILY_OBJECTIVES"_J,
"AM_ArmWrestling"_J,
"AM_Darts"_J,
"golf_mp"_J,
"Range_Modern_MP"_J,
"tennis_network_mp"_J,
"Pilot_School_MP"_J,
"FM_Impromptu_DM_Controler"_J,
"fm_Bj_race_controler"_J,
"fm_deathmatch_controler"_J,
"fm_hideout_controler"_J,
"fm_mission_controller"_J,
"FM_Race_Controler"_J,
"FM_Horde_Controler"_J,
"dont_cross_the_line"_J,
"am_darts_apartment"_J,
"AM_Armwrestling_Apartment"_J,
"grid_arcade_cabinet"_J,
"scroll_arcade_cabinet"_J,
"example_arcade"_J,
"road_arcade"_J,
"gunslinger_arcade"_J,
"wizard_arcade"_J,
"AM_CASINO_LIMO"_J,
"AM_CASINO_LUXURY_CAR"_J,
"Degenatron Games"_J,
"ggsm_arcade"_J,
"puzzle"_J,
"camhedz_arcade"_J,
"SCTV"_J,
});
constexpr const static inline auto all_script_names = std::to_array({
@ -1255,4 +1255,4 @@ namespace big
"net_test_drive",
"simeon_showroom_seating",
});
}
}

View File

@ -6,46 +6,47 @@
#include <string_view>
#include <type_traits>
namespace rage
inline consteval char consteval_to_lower(char c)
{
template<size_t N>
inline constexpr joaat_t consteval_joaat(char const (&data)[N])
{
joaat_t hash = 0;
for (std::size_t i = 0; i < N - 1; ++i)
{
hash += joaat_to_lower(data[i]);
hash += (hash << 10);
hash ^= (hash >> 6);
}
hash += (hash << 3);
hash ^= (hash >> 11);
hash += (hash << 15);
return hash;
}
inline consteval joaat_t consteval_joaat(const std::span<const char>& data)
{
joaat_t hash = 0;
for (std::size_t i = 0; i < data.size() - 1; ++i)
{
hash += joaat_to_lower(data[i]);
hash += (hash << 10);
hash ^= (hash >> 6);
}
hash += (hash << 3);
hash ^= (hash >> 11);
hash += (hash << 15);
return hash;
}
static_assert(consteval_joaat("test") == 0x3f75ccc1);
return c >= 'A' && c <= 'Z' ? c | 1 << 5 : c;
}
#define RAGE_JOAAT_IMPL(str) (::rage::consteval_joaat(str))
#define RAGE_JOAAT(str) (std::integral_constant<rage::joaat_t, RAGE_JOAAT_IMPL(str)>::value)
namespace rage
{
inline constexpr joaat_t constexpr_joaat(const std::string_view s)
{
joaat_t result = 0;
for (std::size_t i = 0; i < s.size(); i++)
{
result += joaat_to_lower(s[i]);
result += (result << 10);
result ^= (result >> 6);
}
result += (result << 3);
result ^= (result >> 11);
result += (result << 15);
return result;
}
}
inline consteval rage::joaat_t operator""_J(const char* s, std::size_t n)
{
rage::joaat_t result = 0;
for (std::size_t i = 0; i < n; i++)
{
result += consteval_to_lower(s[i]);
result += (result << 10);
result ^= (result >> 6);
}
result += (result << 3);
result ^= (result >> 11);
result += (result << 15);
return result;
}
static_assert("test"_J == 0x3f75ccc1);

View File

@ -5,156 +5,156 @@
enum Rewards : Hash
{
REWARD_AMMO_ADVANCEDRIFLE = RAGE_JOAAT("REWARD_AMMO_ADVANCEDRIFLE"),
REWARD_AMMO_APPISTOL = RAGE_JOAAT("REWARD_AMMO_APPISTOL"),
REWARD_AMMO_ASSAULTRIFLE = RAGE_JOAAT("REWARD_AMMO_ASSAULTRIFLE"),
REWARD_AMMO_ASSAULTSHOTGUN = RAGE_JOAAT("REWARD_AMMO_ASSAULTSHOTGUN"),
REWARD_AMMO_ASSAULTSMG = RAGE_JOAAT("REWARD_AMMO_ASSAULTSMG"),
REWARD_AMMO_AUTOSHOTGUN = RAGE_JOAAT("REWARD_AMMO_AUTOSHOTGUN"),
REWARD_AMMO_BULLET_MP = RAGE_JOAAT("REWARD_AMMO_BULLET_MP"),
REWARD_AMMO_BULLPUPRIFLE = RAGE_JOAAT("REWARD_AMMO_BULLPUPRIFLE"),
REWARD_AMMO_BULLPUPSHOTGUN = RAGE_JOAAT("REWARD_AMMO_BULLPUPSHOTGUN"),
REWARD_AMMO_CARBINERIFLE = RAGE_JOAAT("REWARD_AMMO_CARBINERIFLE"),
REWARD_AMMO_COMBATMG = RAGE_JOAAT("REWARD_AMMO_COMBATMG"),
REWARD_AMMO_COMBATPDW = RAGE_JOAAT("REWARD_AMMO_COMBATPDW"),
REWARD_AMMO_COMBATPISTOL = RAGE_JOAAT("REWARD_AMMO_COMBATPISTOL"),
REWARD_AMMO_COMPACTLAUNCHER = RAGE_JOAAT("REWARD_AMMO_COMPACTLAUNCHER"),
REWARD_AMMO_COMPACTRIFLE = RAGE_JOAAT("REWARD_AMMO_COMPACTRIFLE"),
REWARD_AMMO_DBSHOTGUN = RAGE_JOAAT("REWARD_AMMO_DBSHOTGUN"),
REWARD_AMMO_DOUBLEACTION = RAGE_JOAAT("REWARD_AMMO_DOUBLEACTION"),
REWARD_AMMO_FIREWORK = RAGE_JOAAT("REWARD_AMMO_FIREWORK"),
REWARD_AMMO_FIREWORK_MP = RAGE_JOAAT("REWARD_AMMO_FIREWORK_MP"),
REWARD_AMMO_FLAREGUN = RAGE_JOAAT("REWARD_AMMO_FLAREGUN"),
REWARD_AMMO_GRENADE = RAGE_JOAAT("REWARD_AMMO_GRENADE"),
REWARD_AMMO_GRENADELAUNCHER = RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER"),
REWARD_AMMO_GRENADELAUNCHER_MP = RAGE_JOAAT("REWARD_AMMO_GRENADELAUNCHER_MP"),
REWARD_AMMO_GUSENBERG = RAGE_JOAAT("REWARD_AMMO_GUSENBERG"),
REWARD_AMMO_HEAVYPISTOL = RAGE_JOAAT("REWARD_AMMO_HEAVYPISTOL"),
REWARD_AMMO_HEAVYSHOTGUN = RAGE_JOAAT("REWARD_AMMO_HEAVYSHOTGUN"),
REWARD_AMMO_HEAVYSNIPER = RAGE_JOAAT("REWARD_AMMO_HEAVYSNIPER"),
REWARD_AMMO_HOMINGLAUNCHER = RAGE_JOAAT("REWARD_AMMO_HOMINGLAUNCHER"),
REWARD_AMMO_MACHINEPISTOL = RAGE_JOAAT("REWARD_AMMO_MACHINEPISTOL"),
REWARD_AMMO_MARKSMANPISTOL = RAGE_JOAAT("REWARD_AMMO_MARKSMANPISTOL"),
REWARD_AMMO_MARKSMANRIFLE = RAGE_JOAAT("REWARD_AMMO_MARKSMANRIFLE"),
REWARD_AMMO_MG = RAGE_JOAAT("REWARD_AMMO_MG"),
REWARD_AMMO_MICROSMG = RAGE_JOAAT("REWARD_AMMO_MICROSMG"),
REWARD_AMMO_MINIGUN = RAGE_JOAAT("REWARD_AMMO_MINIGUN"),
REWARD_AMMO_MINISMG = RAGE_JOAAT("REWARD_AMMO_MINISMG"),
REWARD_AMMO_MISSILE_MP = RAGE_JOAAT("REWARD_AMMO_MISSILE_MP"),
REWARD_AMMO_MOLOTOV = RAGE_JOAAT("REWARD_AMMO_MOLOTOV"),
REWARD_AMMO_MUSKET = RAGE_JOAAT("REWARD_AMMO_MUSKET"),
REWARD_AMMO_PETROLCAN = RAGE_JOAAT("REWARD_AMMO_PETROLCAN"),
REWARD_AMMO_PIPEBOMB = RAGE_JOAAT("REWARD_AMMO_PIPEBOMB"),
REWARD_AMMO_PISTOL = RAGE_JOAAT("REWARD_AMMO_PISTOL"),
REWARD_AMMO_PISTOL50 = RAGE_JOAAT("REWARD_AMMO_PISTOL50"),
REWARD_AMMO_PROXMINE = RAGE_JOAAT("REWARD_AMMO_PROXMINE"),
REWARD_AMMO_PUMPSHOTGUN = RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN"),
REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE = RAGE_JOAAT("REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE"),
REWARD_AMMO_RAILGUN = RAGE_JOAAT("REWARD_AMMO_RAILGUN"),
REWARD_AMMO_RAYPISTOL = RAGE_JOAAT("REWARD_AMMO_RAYPISTOL"),
REWARD_AMMO_REVOLVER = RAGE_JOAAT("REWARD_AMMO_REVOLVER"),
REWARD_AMMO_RPG = RAGE_JOAAT("REWARD_AMMO_RPG"),
REWARD_AMMO_SAWNOFFSHOTGUN = RAGE_JOAAT("REWARD_AMMO_SAWNOFFSHOTGUN"),
REWARD_AMMO_SMG = RAGE_JOAAT("REWARD_AMMO_SMG"),
REWARD_AMMO_SMOKEGRENADE = RAGE_JOAAT("REWARD_AMMO_SMOKEGRENADE"),
REWARD_AMMO_SNIPERRIFLE = RAGE_JOAAT("REWARD_AMMO_SNIPERRIFLE"),
REWARD_AMMO_SNSPISTOL = RAGE_JOAAT("REWARD_AMMO_SNSPISTOL"),
REWARD_AMMO_SPECIALCARBINE = RAGE_JOAAT("REWARD_AMMO_SPECIALCARBINE"),
REWARD_AMMO_STICKYBOMB = RAGE_JOAAT("REWARD_AMMO_STICKYBOMB"),
REWARD_AMMO_STUNGUN = RAGE_JOAAT("REWARD_AMMO_STUNGUN"),
REWARD_AMMO_VINTAGEPISTOL = RAGE_JOAAT("REWARD_AMMO_VINTAGEPISTOL"),
REWARD_ARMOUR = RAGE_JOAAT("REWARD_ARMOUR"),
REWARD_HEALTH = RAGE_JOAAT("REWARD_HEALTH"),
REWARD_HEALTH_ENTER_VEHICLE = RAGE_JOAAT("REWARD_HEALTH_ENTER_VEHICLE"),
REWARD_HEALTH_VARIABLE = RAGE_JOAAT("REWARD_HEALTH_VARIABLE"),
REWARD_MONEY_VARIABLE = RAGE_JOAAT("REWARD_MONEY_VARIABLE"),
REWARD_PARACHUTE = RAGE_JOAAT("REWARD_PARACHUTE"),
REWARD_STAT_HEALTH = RAGE_JOAAT("REWARD_STAT_HEALTH"),
REWARD_STAT_HEALTH_VARIABLE = RAGE_JOAAT("REWARD_STAT_HEALTH_VARIABLE"),
REWARD_STAT_WEAPON = RAGE_JOAAT("REWARD_STAT_WEAPON"),
REWARD_VEHICLE_FIX = RAGE_JOAAT("REWARD_VEHICLE_FIX"),
REWARD_WEAPON_ADVANCEDRIFLE = RAGE_JOAAT("REWARD_WEAPON_ADVANCEDRIFLE"),
REWARD_WEAPON_APPISTOL = RAGE_JOAAT("REWARD_WEAPON_APPISTOL"),
REWARD_WEAPON_ASSAULTRIFLE = RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE"),
REWARD_WEAPON_ASSAULTRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_ASSAULTRIFLE_MK2"),
REWARD_WEAPON_ASSAULTSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_ASSAULTSHOTGUN"),
REWARD_WEAPON_ASSAULTSMG = RAGE_JOAAT("REWARD_WEAPON_ASSAULTSMG"),
REWARD_WEAPON_AUTOSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_AUTOSHOTGUN"),
REWARD_WEAPON_BAT = RAGE_JOAAT("REWARD_WEAPON_BAT"),
REWARD_WEAPON_BATTLEAXE = RAGE_JOAAT("REWARD_WEAPON_BATTLEAXE"),
REWARD_WEAPON_BOTTLE = RAGE_JOAAT("REWARD_WEAPON_BOTTLE"),
REWARD_WEAPON_BULLPUPRIFLE = RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE"),
REWARD_WEAPON_BULLPUPRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_BULLPUPRIFLE_MK2"),
REWARD_WEAPON_BULLPUPSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_BULLPUPSHOTGUN"),
REWARD_WEAPON_CARBINERIFLE = RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE"),
REWARD_WEAPON_CARBINERIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_CARBINERIFLE_MK2"),
REWARD_WEAPON_COMBATMG = RAGE_JOAAT("REWARD_WEAPON_COMBATMG"),
REWARD_WEAPON_COMBATMG_MK2 = RAGE_JOAAT("REWARD_WEAPON_COMBATMG_MK2"),
REWARD_WEAPON_COMBATPDW = RAGE_JOAAT("REWARD_WEAPON_COMBATPDW"),
REWARD_WEAPON_COMBATPISTOL = RAGE_JOAAT("REWARD_WEAPON_COMBATPISTOL"),
REWARD_WEAPON_COMPACTLAUNCHER = RAGE_JOAAT("REWARD_WEAPON_COMPACTLAUNCHER"),
REWARD_WEAPON_COMPACTRIFLE = RAGE_JOAAT("REWARD_WEAPON_COMPACTRIFLE"),
REWARD_WEAPON_CROWBAR = RAGE_JOAAT("REWARD_WEAPON_CROWBAR"),
REWARD_WEAPON_DAGGER = RAGE_JOAAT("REWARD_WEAPON_DAGGER"),
REWARD_WEAPON_DBSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_DBSHOTGUN"),
REWARD_WEAPON_DOUBLEACTION = RAGE_JOAAT("REWARD_WEAPON_DOUBLEACTION"),
REWARD_WEAPON_FIREWORK = RAGE_JOAAT("REWARD_WEAPON_FIREWORK"),
REWARD_WEAPON_FLAREGUN = RAGE_JOAAT("REWARD_WEAPON_FLAREGUN"),
REWARD_WEAPON_FLASHLIGHT = RAGE_JOAAT("REWARD_WEAPON_FLASHLIGHT"),
REWARD_WEAPON_GOLFCLUB = RAGE_JOAAT("REWARD_WEAPON_GOLFCLUB"),
REWARD_WEAPON_GRENADE = RAGE_JOAAT("REWARD_WEAPON_GRENADE"),
REWARD_WEAPON_GRENADELAUNCHER = RAGE_JOAAT("REWARD_WEAPON_GRENADELAUNCHER"),
REWARD_WEAPON_GUSENBERG = RAGE_JOAAT("REWARD_WEAPON_GUSENBERG"),
REWARD_WEAPON_HAMMER = RAGE_JOAAT("REWARD_WEAPON_HAMMER"),
REWARD_WEAPON_HATCHET = RAGE_JOAAT("REWARD_WEAPON_HATCHET"),
REWARD_WEAPON_HEAVYPISTOL = RAGE_JOAAT("REWARD_WEAPON_HEAVYPISTOL"),
REWARD_WEAPON_HEAVYSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_HEAVYSHOTGUN"),
REWARD_WEAPON_HEAVYSNIPER = RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER"),
REWARD_WEAPON_HEAVYSNIPER_MK2 = RAGE_JOAAT("REWARD_WEAPON_HEAVYSNIPER_MK2"),
REWARD_WEAPON_HOMINGLAUNCHER = RAGE_JOAAT("REWARD_WEAPON_HOMINGLAUNCHER"),
REWARD_WEAPON_KNIFE = RAGE_JOAAT("REWARD_WEAPON_KNIFE"),
REWARD_WEAPON_KNUCKLE = RAGE_JOAAT("REWARD_WEAPON_KNUCKLE"),
REWARD_WEAPON_MACHETE = RAGE_JOAAT("REWARD_WEAPON_MACHETE"),
REWARD_WEAPON_MACHINEPISTOL = RAGE_JOAAT("REWARD_WEAPON_MACHINEPISTOL"),
REWARD_WEAPON_MARKSMANPISTOL = RAGE_JOAAT("REWARD_WEAPON_MARKSMANPISTOL"),
REWARD_WEAPON_MARKSMANRIFLE = RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE"),
REWARD_WEAPON_MARKSMANRIFLE_MK2 = RAGE_JOAAT("REWARD_WEAPON_MARKSMANRIFLE_MK2"),
REWARD_WEAPON_MG = RAGE_JOAAT("REWARD_WEAPON_MG"),
REWARD_WEAPON_MICROSMG = RAGE_JOAAT("REWARD_WEAPON_MICROSMG"),
REWARD_WEAPON_MINIGUN = RAGE_JOAAT("REWARD_WEAPON_MINIGUN"),
REWARD_WEAPON_MINISMG = RAGE_JOAAT("REWARD_WEAPON_MINISMG"),
REWARD_WEAPON_MOLOTOV = RAGE_JOAAT("REWARD_WEAPON_MOLOTOV"),
REWARD_WEAPON_MUSKET = RAGE_JOAAT("REWARD_WEAPON_MUSKET"),
REWARD_WEAPON_NIGHTSTICK = RAGE_JOAAT("REWARD_WEAPON_NIGHTSTICK"),
REWARD_WEAPON_PETROLCAN = RAGE_JOAAT("REWARD_WEAPON_PETROLCAN"),
REWARD_WEAPON_PIPEBOMB = RAGE_JOAAT("REWARD_WEAPON_PIPEBOMB"),
REWARD_WEAPON_PISTOL = RAGE_JOAAT("REWARD_WEAPON_PISTOL"),
REWARD_WEAPON_PISTOL50 = RAGE_JOAAT("REWARD_WEAPON_PISTOL50"),
REWARD_WEAPON_PISTOL_MK2 = RAGE_JOAAT("REWARD_WEAPON_PISTOL_MK2"),
REWARD_WEAPON_POOLCUE = RAGE_JOAAT("REWARD_WEAPON_POOLCUE"),
REWARD_WEAPON_PROXMINE = RAGE_JOAAT("REWARD_WEAPON_PROXMINE"),
REWARD_WEAPON_PUMPSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN"),
REWARD_WEAPON_PUMPSHOTGUN_MK2 = RAGE_JOAAT("REWARD_WEAPON_PUMPSHOTGUN_MK2"),
REWARD_WEAPON_RAILGUN = RAGE_JOAAT("REWARD_WEAPON_RAILGUN"),
REWARD_WEAPON_RAYCARBINE = RAGE_JOAAT("REWARD_WEAPON_RAYCARBINE"),
REWARD_WEAPON_RAYMINIGUN = RAGE_JOAAT("REWARD_WEAPON_RAYMINIGUN"),
REWARD_WEAPON_RAYPISTOL = RAGE_JOAAT("REWARD_WEAPON_RAYPISTOL"),
REWARD_WEAPON_REVOLVER = RAGE_JOAAT("REWARD_WEAPON_REVOLVER"),
REWARD_WEAPON_REVOLVER_MK2 = RAGE_JOAAT("REWARD_WEAPON_REVOLVER_MK2"),
REWARD_WEAPON_RPG = RAGE_JOAAT("REWARD_WEAPON_RPG"),
REWARD_WEAPON_SAWNOFFSHOTGUN = RAGE_JOAAT("REWARD_WEAPON_SAWNOFFSHOTGUN"),
REWARD_WEAPON_SMG = RAGE_JOAAT("REWARD_WEAPON_SMG"),
REWARD_WEAPON_SMG_MK2 = RAGE_JOAAT("REWARD_WEAPON_SMG_MK2"),
REWARD_WEAPON_SMOKEGRENADE = RAGE_JOAAT("REWARD_WEAPON_SMOKEGRENADE"),
REWARD_WEAPON_SNIPERRIFLE = RAGE_JOAAT("REWARD_WEAPON_SNIPERRIFLE"),
REWARD_WEAPON_SNSPISTOL = RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL"),
REWARD_WEAPON_SNSPISTOL_MK2 = RAGE_JOAAT("REWARD_WEAPON_SNSPISTOL_MK2"),
REWARD_WEAPON_SPECIALCARBINE = RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE"),
REWARD_WEAPON_SPECIALCARBINE_MK2 = RAGE_JOAAT("REWARD_WEAPON_SPECIALCARBINE_MK2"),
REWARD_WEAPON_STICKYBOMB = RAGE_JOAAT("REWARD_WEAPON_STICKYBOMB"),
REWARD_WEAPON_STONE_HATCHET = RAGE_JOAAT("REWARD_WEAPON_STONE_HATCHET"),
REWARD_WEAPON_STUNGUN = RAGE_JOAAT("REWARD_WEAPON_STUNGUN"),
REWARD_WEAPON_SWITCHBLADE = RAGE_JOAAT("REWARD_WEAPON_SWITCHBLADE"),
REWARD_WEAPON_VINTAGEPISTOL = RAGE_JOAAT("REWARD_WEAPON_VINTAGEPISTOL"),
REWARD_WEAPON_WRENCH = RAGE_JOAAT("REWARD_WEAPON_WRENCH")
};
REWARD_AMMO_ADVANCEDRIFLE = "REWARD_AMMO_ADVANCEDRIFLE"_J,
REWARD_AMMO_APPISTOL = "REWARD_AMMO_APPISTOL"_J,
REWARD_AMMO_ASSAULTRIFLE = "REWARD_AMMO_ASSAULTRIFLE"_J,
REWARD_AMMO_ASSAULTSHOTGUN = "REWARD_AMMO_ASSAULTSHOTGUN"_J,
REWARD_AMMO_ASSAULTSMG = "REWARD_AMMO_ASSAULTSMG"_J,
REWARD_AMMO_AUTOSHOTGUN = "REWARD_AMMO_AUTOSHOTGUN"_J,
REWARD_AMMO_BULLET_MP = "REWARD_AMMO_BULLET_MP"_J,
REWARD_AMMO_BULLPUPRIFLE = "REWARD_AMMO_BULLPUPRIFLE"_J,
REWARD_AMMO_BULLPUPSHOTGUN = "REWARD_AMMO_BULLPUPSHOTGUN"_J,
REWARD_AMMO_CARBINERIFLE = "REWARD_AMMO_CARBINERIFLE"_J,
REWARD_AMMO_COMBATMG = "REWARD_AMMO_COMBATMG"_J,
REWARD_AMMO_COMBATPDW = "REWARD_AMMO_COMBATPDW"_J,
REWARD_AMMO_COMBATPISTOL = "REWARD_AMMO_COMBATPISTOL"_J,
REWARD_AMMO_COMPACTLAUNCHER = "REWARD_AMMO_COMPACTLAUNCHER"_J,
REWARD_AMMO_COMPACTRIFLE = "REWARD_AMMO_COMPACTRIFLE"_J,
REWARD_AMMO_DBSHOTGUN = "REWARD_AMMO_DBSHOTGUN"_J,
REWARD_AMMO_DOUBLEACTION = "REWARD_AMMO_DOUBLEACTION"_J,
REWARD_AMMO_FIREWORK = "REWARD_AMMO_FIREWORK"_J,
REWARD_AMMO_FIREWORK_MP = "REWARD_AMMO_FIREWORK_MP"_J,
REWARD_AMMO_FLAREGUN = "REWARD_AMMO_FLAREGUN"_J,
REWARD_AMMO_GRENADE = "REWARD_AMMO_GRENADE"_J,
REWARD_AMMO_GRENADELAUNCHER = "REWARD_AMMO_GRENADELAUNCHER"_J,
REWARD_AMMO_GRENADELAUNCHER_MP = "REWARD_AMMO_GRENADELAUNCHER_MP"_J,
REWARD_AMMO_GUSENBERG = "REWARD_AMMO_GUSENBERG"_J,
REWARD_AMMO_HEAVYPISTOL = "REWARD_AMMO_HEAVYPISTOL"_J,
REWARD_AMMO_HEAVYSHOTGUN = "REWARD_AMMO_HEAVYSHOTGUN"_J,
REWARD_AMMO_HEAVYSNIPER = "REWARD_AMMO_HEAVYSNIPER"_J,
REWARD_AMMO_HOMINGLAUNCHER = "REWARD_AMMO_HOMINGLAUNCHER"_J,
REWARD_AMMO_MACHINEPISTOL = "REWARD_AMMO_MACHINEPISTOL"_J,
REWARD_AMMO_MARKSMANPISTOL = "REWARD_AMMO_MARKSMANPISTOL"_J,
REWARD_AMMO_MARKSMANRIFLE = "REWARD_AMMO_MARKSMANRIFLE"_J,
REWARD_AMMO_MG = "REWARD_AMMO_MG"_J,
REWARD_AMMO_MICROSMG = "REWARD_AMMO_MICROSMG"_J,
REWARD_AMMO_MINIGUN = "REWARD_AMMO_MINIGUN"_J,
REWARD_AMMO_MINISMG = "REWARD_AMMO_MINISMG"_J,
REWARD_AMMO_MISSILE_MP = "REWARD_AMMO_MISSILE_MP"_J,
REWARD_AMMO_MOLOTOV = "REWARD_AMMO_MOLOTOV"_J,
REWARD_AMMO_MUSKET = "REWARD_AMMO_MUSKET"_J,
REWARD_AMMO_PETROLCAN = "REWARD_AMMO_PETROLCAN"_J,
REWARD_AMMO_PIPEBOMB = "REWARD_AMMO_PIPEBOMB"_J,
REWARD_AMMO_PISTOL = "REWARD_AMMO_PISTOL"_J,
REWARD_AMMO_PISTOL50 = "REWARD_AMMO_PISTOL50"_J,
REWARD_AMMO_PROXMINE = "REWARD_AMMO_PROXMINE"_J,
REWARD_AMMO_PUMPSHOTGUN = "REWARD_AMMO_PUMPSHOTGUN"_J,
REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE = "REWARD_AMMO_PUMPSHOTGUN_ENTER_VEHICLE"_J,
REWARD_AMMO_RAILGUN = "REWARD_AMMO_RAILGUN"_J,
REWARD_AMMO_RAYPISTOL = "REWARD_AMMO_RAYPISTOL"_J,
REWARD_AMMO_REVOLVER = "REWARD_AMMO_REVOLVER"_J,
REWARD_AMMO_RPG = "REWARD_AMMO_RPG"_J,
REWARD_AMMO_SAWNOFFSHOTGUN = "REWARD_AMMO_SAWNOFFSHOTGUN"_J,
REWARD_AMMO_SMG = "REWARD_AMMO_SMG"_J,
REWARD_AMMO_SMOKEGRENADE = "REWARD_AMMO_SMOKEGRENADE"_J,
REWARD_AMMO_SNIPERRIFLE = "REWARD_AMMO_SNIPERRIFLE"_J,
REWARD_AMMO_SNSPISTOL = "REWARD_AMMO_SNSPISTOL"_J,
REWARD_AMMO_SPECIALCARBINE = "REWARD_AMMO_SPECIALCARBINE"_J,
REWARD_AMMO_STICKYBOMB = "REWARD_AMMO_STICKYBOMB"_J,
REWARD_AMMO_STUNGUN = "REWARD_AMMO_STUNGUN"_J,
REWARD_AMMO_VINTAGEPISTOL = "REWARD_AMMO_VINTAGEPISTOL"_J,
REWARD_ARMOUR = "REWARD_ARMOUR"_J,
REWARD_HEALTH = "REWARD_HEALTH"_J,
REWARD_HEALTH_ENTER_VEHICLE = "REWARD_HEALTH_ENTER_VEHICLE"_J,
REWARD_HEALTH_VARIABLE = "REWARD_HEALTH_VARIABLE"_J,
REWARD_MONEY_VARIABLE = "REWARD_MONEY_VARIABLE"_J,
REWARD_PARACHUTE = "REWARD_PARACHUTE"_J,
REWARD_STAT_HEALTH = "REWARD_STAT_HEALTH"_J,
REWARD_STAT_HEALTH_VARIABLE = "REWARD_STAT_HEALTH_VARIABLE"_J,
REWARD_STAT_WEAPON = "REWARD_STAT_WEAPON"_J,
REWARD_VEHICLE_FIX = "REWARD_VEHICLE_FIX"_J,
REWARD_WEAPON_ADVANCEDRIFLE = "REWARD_WEAPON_ADVANCEDRIFLE"_J,
REWARD_WEAPON_APPISTOL = "REWARD_WEAPON_APPISTOL"_J,
REWARD_WEAPON_ASSAULTRIFLE = "REWARD_WEAPON_ASSAULTRIFLE"_J,
REWARD_WEAPON_ASSAULTRIFLE_MK2 = "REWARD_WEAPON_ASSAULTRIFLE_MK2"_J,
REWARD_WEAPON_ASSAULTSHOTGUN = "REWARD_WEAPON_ASSAULTSHOTGUN"_J,
REWARD_WEAPON_ASSAULTSMG = "REWARD_WEAPON_ASSAULTSMG"_J,
REWARD_WEAPON_AUTOSHOTGUN = "REWARD_WEAPON_AUTOSHOTGUN"_J,
REWARD_WEAPON_BAT = "REWARD_WEAPON_BAT"_J,
REWARD_WEAPON_BATTLEAXE = "REWARD_WEAPON_BATTLEAXE"_J,
REWARD_WEAPON_BOTTLE = "REWARD_WEAPON_BOTTLE"_J,
REWARD_WEAPON_BULLPUPRIFLE = "REWARD_WEAPON_BULLPUPRIFLE"_J,
REWARD_WEAPON_BULLPUPRIFLE_MK2 = "REWARD_WEAPON_BULLPUPRIFLE_MK2"_J,
REWARD_WEAPON_BULLPUPSHOTGUN = "REWARD_WEAPON_BULLPUPSHOTGUN"_J,
REWARD_WEAPON_CARBINERIFLE = "REWARD_WEAPON_CARBINERIFLE"_J,
REWARD_WEAPON_CARBINERIFLE_MK2 = "REWARD_WEAPON_CARBINERIFLE_MK2"_J,
REWARD_WEAPON_COMBATMG = "REWARD_WEAPON_COMBATMG"_J,
REWARD_WEAPON_COMBATMG_MK2 = "REWARD_WEAPON_COMBATMG_MK2"_J,
REWARD_WEAPON_COMBATPDW = "REWARD_WEAPON_COMBATPDW"_J,
REWARD_WEAPON_COMBATPISTOL = "REWARD_WEAPON_COMBATPISTOL"_J,
REWARD_WEAPON_COMPACTLAUNCHER = "REWARD_WEAPON_COMPACTLAUNCHER"_J,
REWARD_WEAPON_COMPACTRIFLE = "REWARD_WEAPON_COMPACTRIFLE"_J,
REWARD_WEAPON_CROWBAR = "REWARD_WEAPON_CROWBAR"_J,
REWARD_WEAPON_DAGGER = "REWARD_WEAPON_DAGGER"_J,
REWARD_WEAPON_DBSHOTGUN = "REWARD_WEAPON_DBSHOTGUN"_J,
REWARD_WEAPON_DOUBLEACTION = "REWARD_WEAPON_DOUBLEACTION"_J,
REWARD_WEAPON_FIREWORK = "REWARD_WEAPON_FIREWORK"_J,
REWARD_WEAPON_FLAREGUN = "REWARD_WEAPON_FLAREGUN"_J,
REWARD_WEAPON_FLASHLIGHT = "REWARD_WEAPON_FLASHLIGHT"_J,
REWARD_WEAPON_GOLFCLUB = "REWARD_WEAPON_GOLFCLUB"_J,
REWARD_WEAPON_GRENADE = "REWARD_WEAPON_GRENADE"_J,
REWARD_WEAPON_GRENADELAUNCHER = "REWARD_WEAPON_GRENADELAUNCHER"_J,
REWARD_WEAPON_GUSENBERG = "REWARD_WEAPON_GUSENBERG"_J,
REWARD_WEAPON_HAMMER = "REWARD_WEAPON_HAMMER"_J,
REWARD_WEAPON_HATCHET = "REWARD_WEAPON_HATCHET"_J,
REWARD_WEAPON_HEAVYPISTOL = "REWARD_WEAPON_HEAVYPISTOL"_J,
REWARD_WEAPON_HEAVYSHOTGUN = "REWARD_WEAPON_HEAVYSHOTGUN"_J,
REWARD_WEAPON_HEAVYSNIPER = "REWARD_WEAPON_HEAVYSNIPER"_J,
REWARD_WEAPON_HEAVYSNIPER_MK2 = "REWARD_WEAPON_HEAVYSNIPER_MK2"_J,
REWARD_WEAPON_HOMINGLAUNCHER = "REWARD_WEAPON_HOMINGLAUNCHER"_J,
REWARD_WEAPON_KNIFE = "REWARD_WEAPON_KNIFE"_J,
REWARD_WEAPON_KNUCKLE = "REWARD_WEAPON_KNUCKLE"_J,
REWARD_WEAPON_MACHETE = "REWARD_WEAPON_MACHETE"_J,
REWARD_WEAPON_MACHINEPISTOL = "REWARD_WEAPON_MACHINEPISTOL"_J,
REWARD_WEAPON_MARKSMANPISTOL = "REWARD_WEAPON_MARKSMANPISTOL"_J,
REWARD_WEAPON_MARKSMANRIFLE = "REWARD_WEAPON_MARKSMANRIFLE"_J,
REWARD_WEAPON_MARKSMANRIFLE_MK2 = "REWARD_WEAPON_MARKSMANRIFLE_MK2"_J,
REWARD_WEAPON_MG = "REWARD_WEAPON_MG"_J,
REWARD_WEAPON_MICROSMG = "REWARD_WEAPON_MICROSMG"_J,
REWARD_WEAPON_MINIGUN = "REWARD_WEAPON_MINIGUN"_J,
REWARD_WEAPON_MINISMG = "REWARD_WEAPON_MINISMG"_J,
REWARD_WEAPON_MOLOTOV = "REWARD_WEAPON_MOLOTOV"_J,
REWARD_WEAPON_MUSKET = "REWARD_WEAPON_MUSKET"_J,
REWARD_WEAPON_NIGHTSTICK = "REWARD_WEAPON_NIGHTSTICK"_J,
REWARD_WEAPON_PETROLCAN = "REWARD_WEAPON_PETROLCAN"_J,
REWARD_WEAPON_PIPEBOMB = "REWARD_WEAPON_PIPEBOMB"_J,
REWARD_WEAPON_PISTOL = "REWARD_WEAPON_PISTOL"_J,
REWARD_WEAPON_PISTOL50 = "REWARD_WEAPON_PISTOL50"_J,
REWARD_WEAPON_PISTOL_MK2 = "REWARD_WEAPON_PISTOL_MK2"_J,
REWARD_WEAPON_POOLCUE = "REWARD_WEAPON_POOLCUE"_J,
REWARD_WEAPON_PROXMINE = "REWARD_WEAPON_PROXMINE"_J,
REWARD_WEAPON_PUMPSHOTGUN = "REWARD_WEAPON_PUMPSHOTGUN"_J,
REWARD_WEAPON_PUMPSHOTGUN_MK2 = "REWARD_WEAPON_PUMPSHOTGUN_MK2"_J,
REWARD_WEAPON_RAILGUN = "REWARD_WEAPON_RAILGUN"_J,
REWARD_WEAPON_RAYCARBINE = "REWARD_WEAPON_RAYCARBINE"_J,
REWARD_WEAPON_RAYMINIGUN = "REWARD_WEAPON_RAYMINIGUN"_J,
REWARD_WEAPON_RAYPISTOL = "REWARD_WEAPON_RAYPISTOL"_J,
REWARD_WEAPON_REVOLVER = "REWARD_WEAPON_REVOLVER"_J,
REWARD_WEAPON_REVOLVER_MK2 = "REWARD_WEAPON_REVOLVER_MK2"_J,
REWARD_WEAPON_RPG = "REWARD_WEAPON_RPG"_J,
REWARD_WEAPON_SAWNOFFSHOTGUN = "REWARD_WEAPON_SAWNOFFSHOTGUN"_J,
REWARD_WEAPON_SMG = "REWARD_WEAPON_SMG"_J,
REWARD_WEAPON_SMG_MK2 = "REWARD_WEAPON_SMG_MK2"_J,
REWARD_WEAPON_SMOKEGRENADE = "REWARD_WEAPON_SMOKEGRENADE"_J,
REWARD_WEAPON_SNIPERRIFLE = "REWARD_WEAPON_SNIPERRIFLE"_J,
REWARD_WEAPON_SNSPISTOL = "REWARD_WEAPON_SNSPISTOL"_J,
REWARD_WEAPON_SNSPISTOL_MK2 = "REWARD_WEAPON_SNSPISTOL_MK2"_J,
REWARD_WEAPON_SPECIALCARBINE = "REWARD_WEAPON_SPECIALCARBINE"_J,
REWARD_WEAPON_SPECIALCARBINE_MK2 = "REWARD_WEAPON_SPECIALCARBINE_MK2"_J,
REWARD_WEAPON_STICKYBOMB = "REWARD_WEAPON_STICKYBOMB"_J,
REWARD_WEAPON_STONE_HATCHET = "REWARD_WEAPON_STONE_HATCHET"_J,
REWARD_WEAPON_STUNGUN = "REWARD_WEAPON_STUNGUN"_J,
REWARD_WEAPON_SWITCHBLADE = "REWARD_WEAPON_SWITCHBLADE"_J,
REWARD_WEAPON_VINTAGEPISTOL = "REWARD_WEAPON_VINTAGEPISTOL"_J,
REWARD_WEAPON_WRENCH = "REWARD_WEAPON_WRENCH"_J
};

File diff suppressed because it is too large Load Diff

View File

@ -5,31 +5,31 @@
enum Weapons : Hash
{
WEAPON_UNARMED = RAGE_JOAAT("WEAPON_UNARMED")
WEAPON_UNARMED = "WEAPON_UNARMED"_J
};
enum Gadgets : Hash
{
GADGET_OBJECT = RAGE_JOAAT("OBJECT"),
GADGET_PARACHUTE = RAGE_JOAAT("GADGET_PARACHUTE")
GADGET_OBJECT = "OBJECT"_J,
GADGET_PARACHUTE = "GADGET_PARACHUTE"_J
};
enum WeaponGroup : Hash
{
GROUP_MELEE = RAGE_JOAAT("GROUP_MELEE"),
GROUP_UNARMED = RAGE_JOAAT("GROUP_UNARMED"),
GROUP_PISTOL = RAGE_JOAAT("GROUP_PISTOL"),
GROUP_RIFLE = RAGE_JOAAT("GROUP_RIFLE"),
GROUP_MG = RAGE_JOAAT("GROUP_MG"),
GROUP_SMG = RAGE_JOAAT("GROUP_SMG"),
GROUP_SHOTGUN = RAGE_JOAAT("GROUP_SHOTGUN"),
GROUP_STUNGUN = RAGE_JOAAT("GROUP_STUNGUN"),
GROUP_SNIPER = RAGE_JOAAT("GROUP_SNIPER"),
GROUP_HEAVY = RAGE_JOAAT("GROUP_HEAVY"),
GROUP_THROWN = RAGE_JOAAT("GROUP_THROWN"),
GROUP_FIREEXTINGUISHER = RAGE_JOAAT("GROUP_FIREEXTINGUISHER"),
GROUP_PETROLCAN = RAGE_JOAAT("GROUP_PETROLCAN"),
GROUP_DIGISCANNER = RAGE_JOAAT("GROUP_DIGISCANNER"),
GROUP_NIGHTVISION = RAGE_JOAAT("GROUP_NIGHTVISION"),
GROUP_PARACHUTE = RAGE_JOAAT("GROUP_PARACHUTE")
};
GROUP_MELEE = "GROUP_MELEE"_J,
GROUP_UNARMED = "GROUP_UNARMED"_J,
GROUP_PISTOL = "GROUP_PISTOL"_J,
GROUP_RIFLE = "GROUP_RIFLE"_J,
GROUP_MG = "GROUP_MG"_J,
GROUP_SMG = "GROUP_SMG"_J,
GROUP_SHOTGUN = "GROUP_SHOTGUN"_J,
GROUP_STUNGUN = "GROUP_STUNGUN"_J,
GROUP_SNIPER = "GROUP_SNIPER"_J,
GROUP_HEAVY = "GROUP_HEAVY"_J,
GROUP_THROWN = "GROUP_THROWN"_J,
GROUP_FIREEXTINGUISHER = "GROUP_FIREEXTINGUISHER"_J,
GROUP_PETROLCAN = "GROUP_PETROLCAN"_J,
GROUP_DIGISCANNER = "GROUP_DIGISCANNER"_J,
GROUP_NIGHTVISION = "GROUP_NIGHTVISION"_J,
GROUP_PARACHUTE = "GROUP_PARACHUTE"_J
};

View File

@ -41,7 +41,7 @@ namespace big
template<template_str cmd_str, ImVec2 size = ImVec2(0, 0), ImVec4 color = ImVec4(0.24f, 0.23f, 0.29f, 1.00f)>
static void command_button(const std::vector<uint64_t> args = {}, std::optional<const std::string_view> label_override = std::nullopt)
{
static command* command = command::get(rage::consteval_joaat(cmd_str.value));
static command* command = command::get(rage::joaat(cmd_str.value));
if (command == nullptr)
return ImGui::Text("INVALID COMMAND");
@ -57,7 +57,7 @@ namespace big
template<template_str cmd_str, ImVec2 size = ImVec2(0, 0), ImVec4 color = ImVec4(0.24f, 0.23f, 0.29f, 1.00f)>
static void player_command_button(player_ptr player = g_player_service->get_selected(), const std::vector<uint64_t> args = {}, std::optional<const std::string_view> label_override = std::nullopt)
{
static player_command* command = dynamic_cast<player_command*>(command::get(rage::consteval_joaat(cmd_str.value)));
static player_command* command = dynamic_cast<player_command*>(command::get(rage::joaat(cmd_str.value)));
if (command == nullptr)
return ImGui::Text("INVALID COMMAND");
@ -70,7 +70,7 @@ namespace big
template<template_str cmd_str>
static bool command_checkbox(std::optional<const std::string_view> label_override = std::nullopt)
{
static bool_command* command = dynamic_cast<bool_command*>(command::get(rage::consteval_joaat(cmd_str.value)));
static bool_command* command = dynamic_cast<bool_command*>(command::get(rage::joaat(cmd_str.value)));
if (command == nullptr)
{
ImGui::Text("INVALID COMMAND");
@ -89,7 +89,7 @@ namespace big
template<template_str cmd_str>
static void command_int_slider(std::optional<const std::string_view> label_override = std::nullopt)
{
static int_command* command = (int_command*)command::get(rage::consteval_joaat(cmd_str.value));
static int_command* command = (int_command*)command::get(rage::joaat(cmd_str.value));
if (command == nullptr)
return ImGui::Text("INVALID COMMAND");
@ -105,7 +105,7 @@ namespace big
template<template_str cmd_str>
static void command_float_slider(std::optional<const std::string_view> label_override = std::nullopt)
{
static float_command* command = (float_command*)command::get(rage::consteval_joaat(cmd_str.value));
static float_command* command = (float_command*)command::get(rage::joaat(cmd_str.value));
if (command == nullptr)
return ImGui::Text("INVALID COMMAND");
@ -121,7 +121,7 @@ namespace big
template<template_str cmd_str>
static void command_float_input(std::optional<const std::string_view> label_override = std::nullopt)
{
static float_command* command = (float_command*)command::get(rage::consteval_joaat(cmd_str.value));
static float_command* command = (float_command*)command::get(rage::joaat(cmd_str.value));
if (command == nullptr)
return ImGui::Text("INVALID COMMAND");

View File

@ -59,7 +59,7 @@ namespace big
{
case rage::eEventNetworkType::CEventNetworkRemovedFromSessionDueToComplaints:
{
if (g.protections.kick_rejoin && !NETWORK::NETWORK_IS_ACTIVITY_SESSION() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0 && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
if (g.protections.kick_rejoin && !NETWORK::NETWORK_IS_ACTIVITY_SESSION() && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0 && !STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
{
g_fiber_pool->queue_job([] {
session::join_session(gta_util::get_network()->m_last_joined_session.m_session_info);
@ -77,9 +77,9 @@ namespace big
rage::sEntityDamagedData damage_data;
net_event->get_extra_information(&damage_data, sizeof(damage_data));
if (damage_data.m_weapon_used == RAGE_JOAAT("WEAPON_STICKYBOMB") || damage_data.m_weapon_used == RAGE_JOAAT("VEHICLE_WEAPON_MINE_KINETIC_RC")
|| damage_data.m_weapon_used == RAGE_JOAAT("VEHICLE_WEAPON_MINE_EMP_RC") || damage_data.m_weapon_used == RAGE_JOAAT("VEHICLE_WEAPON_MINE_KINETIC")
|| damage_data.m_weapon_used == RAGE_JOAAT("VEHICLE_WEAPON_MINE_EMP") || damage_data.m_weapon_used == RAGE_JOAAT("VEHICLE_WEAPON_MINE_SPIKE"))
if (damage_data.m_weapon_used == "WEAPON_STICKYBOMB"_J || damage_data.m_weapon_used == "VEHICLE_WEAPON_MINE_KINETIC_RC"_J
|| damage_data.m_weapon_used == "VEHICLE_WEAPON_MINE_EMP_RC"_J || damage_data.m_weapon_used == "VEHICLE_WEAPON_MINE_KINETIC"_J
|| damage_data.m_weapon_used == "VEHICLE_WEAPON_MINE_EMP"_J || damage_data.m_weapon_used == "VEHICLE_WEAPON_MINE_SPIKE"_J)
break;
if (auto damager = g_pointers->m_gta.m_handle_to_ptr(damage_data.m_damager_index);
@ -100,8 +100,8 @@ namespace big
{
if (auto vehicle = player->get_current_vehicle())
if (auto model_info = vehicle->m_model_info)
if (model_info->m_hash == RAGE_JOAAT("rcbandito") || model_info->m_hash == RAGE_JOAAT("minitank")
|| model_info->m_hash == RAGE_JOAAT("kosatka"))
if (model_info->m_hash == "rcbandito"_J || model_info->m_hash == "minitank"_J
|| model_info->m_hash == "kosatka"_J)
break;
}
@ -129,8 +129,8 @@ namespace big
if (!reinterpret_cast<CPed*>(victim)->m_player_info)
break;
if (damage_data.m_weapon_used == RAGE_JOAAT("WEAPON_EXPLOSION") || damage_data.m_weapon_used == RAGE_JOAAT("WEAPON_RAMMED_BY_CAR")
|| damage_data.m_weapon_used == RAGE_JOAAT("WEAPON_RUN_OVER_BY_CAR"))
if (damage_data.m_weapon_used == "WEAPON_EXPLOSION"_J || damage_data.m_weapon_used == "WEAPON_RAMMED_BY_CAR"_J
|| damage_data.m_weapon_used == "WEAPON_RUN_OVER_BY_CAR"_J)
break;
session::add_infraction(player, Infraction::ATTACKING_WITH_INVISIBILITY);

View File

@ -31,7 +31,7 @@ namespace big
void hooks::log_error_message_box(rage::joaat_t joaated_error_code, bool a2)
{
if (joaated_error_code == RAGE_JOAAT("ERR_NET_EVENT"))
if (joaated_error_code == "ERR_NET_EVENT"_J)
return;
LOG(WARNING) << "Error Code: " << string_conversions::utf_16_to_code_page(CP_UTF8, g_pointers->m_gta.m_get_title_caption_error_message_box(joaated_error_code));

View File

@ -121,11 +121,11 @@ namespace big
{
if (g_player_service->get_self()->is_host())
{
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("breakup")))->call(plyr, {});
dynamic_cast<player_command*>(command::get("breakup"_J))->call(plyr, {});
}
else
{
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("desync")))->call(plyr, {});
dynamic_cast<player_command*>(command::get("desync"_J))->call(plyr, {});
}
}
@ -139,7 +139,7 @@ namespace big
}
else
{
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("multikick")))->call(plyr, {});
dynamic_cast<player_command*>(command::get("multikick"_J))->call(plyr, {});
g_notification_service->push_warning("LOBBY_LOCK"_T.data(),
std::vformat("LOBBY_LOCK_DENIED"_T.data(), std::make_format_args(plyr->get_net_data()->m_name)));
}

View File

@ -1538,7 +1538,7 @@ namespace big
}
for (int i = 0; i < game_state_node->m_num_equiped_gadgets; i++)
{
if (game_state_node->m_gadget_hash[i] != RAGE_JOAAT("gadget_parachute") && game_state_node->m_gadget_hash[i] != RAGE_JOAAT("gadget_nightvision"))
if (game_state_node->m_gadget_hash[i] != "gadget_parachute"_J && game_state_node->m_gadget_hash[i] != "gadget_nightvision"_J)
{
notify::crash_blocked(sender, "invalid gadget");
return true;
@ -1678,4 +1678,4 @@ namespace big
return g_hooking->get_original<hooks::can_apply_data>()(tree, object);
}
}
}

View File

@ -10,20 +10,20 @@ namespace big
{
switch (net_event->m_stat)
{
case RAGE_JOAAT("MPPLY_BAD_CREW_STATUS"):
case RAGE_JOAAT("MPPLY_BAD_CREW_MOTTO"):
case RAGE_JOAAT("MPPLY_BAD_CREW_NAME"):
case RAGE_JOAAT("MPPLY_BAD_CREW_EMBLEM"):
case RAGE_JOAAT("MPPLY_EXPLOITS"):
case RAGE_JOAAT("MPPLY_GAME_EXPLOITS"):
case RAGE_JOAAT("MPPLY_TC_ANNOYINGME"):
case RAGE_JOAAT("MPPLY_TC_HATE"):
case RAGE_JOAAT("MPPLY_VC_ANNOYINGME"):
case RAGE_JOAAT("MPPLY_VC_HATE"):
case "MPPLY_BAD_CREW_STATUS"_J:
case "MPPLY_BAD_CREW_MOTTO"_J:
case "MPPLY_BAD_CREW_NAME"_J:
case "MPPLY_BAD_CREW_EMBLEM"_J:
case "MPPLY_EXPLOITS"_J:
case "MPPLY_GAME_EXPLOITS"_J:
case "MPPLY_TC_ANNOYINGME"_J:
case "MPPLY_TC_HATE"_J:
case "MPPLY_VC_ANNOYINGME"_J:
case "MPPLY_VC_HATE"_J:
g.reactions.report.process(g_player_service->get_by_id(sender->m_player_id));
return true;
}
return false;
}
}
}

View File

@ -125,11 +125,11 @@ namespace big
&& !(player->is_trusted || (player->is_friend() && g.session.trust_friends) || g.session.trust_session))
{
if (g_player_service->get_self()->is_host())
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("breakup")))->call(player, {}),
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("hostkick")))->call(player, {});
dynamic_cast<player_command*>(command::get("breakup"_J))->call(player, {}),
dynamic_cast<player_command*>(command::get("hostkick"_J))->call(player, {});
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("endkick")))->call(player, {});
dynamic_cast<player_command*>(command::get(RAGE_JOAAT("nfkick")))->call(player, {});
dynamic_cast<player_command*>(command::get("endkick"_J))->call(player, {});
dynamic_cast<player_command*>(command::get("nfkick"_J))->call(player, {});
}
return true;
}
@ -178,7 +178,7 @@ namespace big
CGameScriptId script;
script_id_deserialize(script, buffer);
if (script.m_hash == RAGE_JOAAT("freemode") && g.session.force_script_host)
if (script.m_hash == "freemode"_J && g.session.force_script_host)
return true;
break;

View File

@ -16,7 +16,7 @@ namespace big
{
int old_beast_index = -1;
int participant_id = 0;
auto beast = gta_util::find_script_thread(RAGE_JOAAT("am_hunt_the_beast"));
auto beast = gta_util::find_script_thread("am_hunt_the_beast"_J);
if (beast)
{
@ -74,4 +74,4 @@ namespace big
return result;
}
}
}

View File

@ -30,7 +30,7 @@ namespace big
{
for (const auto& info : g_pointers->m_gta.m_weapon_info_manager->m_item_infos)
{
if (info && info->m_name == hash && info->GetClassId() == RAGE_JOAAT("cweaponinfo"))
if (info && info->m_name == hash && info->GetClassId() == "cweaponinfo"_J)
{
return true;
}
@ -602,7 +602,7 @@ namespace big
std::int16_t net_id = buffer->Read<std::int16_t>(13);
Hash hash = buffer->Read<Hash>(32);
if (hash == RAGE_JOAAT("WEAPON_UNARMED"))
if (hash == "WEAPON_UNARMED"_J)
{
notify::crash_blocked(source_player, "remove unarmed");
g_pointers->m_gta.m_send_event_ack(event_manager, source_player, target_player, event_index, event_handled_bitset);
@ -707,7 +707,7 @@ namespace big
uint32_t sound_hash = buffer->Read<uint32_t>(32);
if (sound_hash == RAGE_JOAAT("Remote_Ring") && plyr)
if (sound_hash == "Remote_Ring"_J && plyr)
{
g.reactions.sound_spam.process(plyr);
return;

View File

@ -138,7 +138,7 @@ namespace big
session::add_infraction(plyr, Infraction::TRIED_CRASH_PLAYER); // stand user detected
return true;
case eRemoteEvent::NotificationCrash2:
if (!gta_util::find_script_thread(RAGE_JOAAT("gb_salvage")))
if (!gta_util::find_script_thread("gb_salvage"_J))
{
// This looks like it's meant to trigger a sound crash by spamming too many notifications. We've already patched it, but the notifications are still annoying
session::add_infraction(plyr, Infraction::TRIED_CRASH_PLAYER); // stand user detected
@ -392,7 +392,7 @@ namespace big
break;
case eRemoteEvent::TriggerCEORaid:
{
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("freemode")))
if (auto script = gta_util::find_script_thread("freemode"_J))
{
if (script->m_net_component && ((CGameScriptHandlerNetComponent*)script->m_net_component)->m_host
&& ((CGameScriptHandlerNetComponent*)script->m_net_component)->m_host->m_net_game_player != player)
@ -406,7 +406,7 @@ namespace big
case eRemoteEvent::StartScriptProceed:
{
// TODO: Breaks stuff
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("freemode")))
if (auto script = gta_util::find_script_thread("freemode"_J))
{
if (script->m_net_component && ((CGameScriptHandlerNetComponent*)script->m_net_component)->m_host
&& ((CGameScriptHandlerNetComponent*)script->m_net_component)->m_host->m_net_game_player != player)

View File

@ -6,14 +6,14 @@
namespace big
{
constexpr uint32_t valid_parachute_models[] = {
RAGE_JOAAT("p_parachute_s"),
RAGE_JOAAT("vw_p_para_bag_vine_s"),
RAGE_JOAAT("reh_p_para_bag_reh_s_01a"),
RAGE_JOAAT("xm_prop_x17_scuba_tank"),
RAGE_JOAAT("lts_p_para_bag_pilot2_s"),
RAGE_JOAAT("lts_p_para_bag_lts_s"),
RAGE_JOAAT("p_para_bag_tr_s_01a"),
RAGE_JOAAT("p_para_bag_xmas_s"),
"p_parachute_s"_J,
"vw_p_para_bag_vine_s"_J,
"reh_p_para_bag_reh_s_01a"_J,
"xm_prop_x17_scuba_tank"_J,
"lts_p_para_bag_pilot2_s"_J,
"lts_p_para_bag_lts_s"_J,
"p_para_bag_tr_s_01a"_J,
"p_para_bag_xmas_s"_J,
};
bool is_valid_parachute_model(rage::joaat_t hash)

View File

@ -11,7 +11,7 @@ namespace big
bool hooks::update_presence_attribute_int(void* presence_data, int profile_index, char* attr, uint64_t value)
{
auto hash = rage::joaat(attr);
if (block_session_presence() && (hash == RAGE_JOAAT("gstok") || hash == RAGE_JOAAT("gsid") || hash == RAGE_JOAAT("gstype") || hash == RAGE_JOAAT("gshost") || hash == RAGE_JOAAT("gsjoin")))
if (block_session_presence() && (hash == "gstok"_J || hash == "gsid"_J || hash == "gstype"_J || hash == "gshost"_J || hash == "gsjoin"_J))
{
return true;
}
@ -22,17 +22,17 @@ namespace big
bool hooks::update_presence_attribute_string(void* presence_data, int profile_index, char* attr, char* value)
{
auto hash = rage::joaat(attr);
if (block_session_presence() && hash == RAGE_JOAAT("gsinfo"))
if (block_session_presence() && hash == "gsinfo"_J)
{
return true;
}
// shouldn't have any side effects
if (hash == RAGE_JOAAT("peeraddr"))
if (hash == "peeraddr"_J)
{
value = (char*)"";
}
return g_hooking->get_original<hooks::update_presence_attribute_string>()(presence_data, profile_index, attr, value);
}
}
}

View File

@ -16,12 +16,12 @@ namespace big
{
CStatSerializationEntry* entry = reinterpret_cast<CStatSerializationEntry*>(&data[i]);
if (g.spoofing.spoof_rank && (entry->m_hash == RAGE_JOAAT("MP0_CHAR_RANK_FM") || entry->m_hash == RAGE_JOAAT("MP1_CHAR_RANK_FM")))
if (g.spoofing.spoof_rank && (entry->m_hash == "MP0_CHAR_RANK_FM"_J || entry->m_hash == "MP1_CHAR_RANK_FM"_J))
{
entry->m_int_value = g.spoofing.rank;
}
if (g.spoofing.spoof_bad_sport && entry->m_hash == RAGE_JOAAT("MPPLY_OVERALL_BADSPORT"))
if (g.spoofing.spoof_bad_sport && entry->m_hash == "MPPLY_OVERALL_BADSPORT"_J)
{
switch (g.spoofing.badsport_type)
{
@ -33,15 +33,15 @@ namespace big
if (g.spoofing.spoof_kd_ratio)
{
if (entry->m_hash == RAGE_JOAAT("MPPLY_KILLS_PLAYERS"))
if (entry->m_hash == "MPPLY_KILLS_PLAYERS"_J)
entry->m_int_value = g.spoofing.kd_ratio;// TODO precision loss
if (entry->m_hash == RAGE_JOAAT("MPPLY_DEATHS_PLAYER"))
if (entry->m_hash == "MPPLY_DEATHS_PLAYER"_J)
entry->m_int_value = 1;
if (entry->m_hash == RAGE_JOAAT("MPPLY_DEATHS_PLAYER_SUICIDE"))
if (entry->m_hash == "MPPLY_DEATHS_PLAYER_SUICIDE"_J)
entry->m_int_value = 0;
}
}
}
}
}

View File

@ -22,11 +22,11 @@ namespace lua::gui
switch (hash)
{
case RAGE_JOAAT("title"): m_font = big::g.window.font_title; break;
case RAGE_JOAAT("subtitle"): m_font = big::g.window.font_sub_title; break;
case RAGE_JOAAT("small"): m_font = big::g.window.font_small; break;
case RAGE_JOAAT("icon"): m_font = big::g.window.font_icon; break;
case "title"_J: m_font = big::g.window.font_title; break;
case "subtitle"_J: m_font = big::g.window.font_sub_title; break;
case "small"_J: m_font = big::g.window.font_small; break;
case "icon"_J: m_font = big::g.window.font_icon; break;
default: m_font = nullptr; break;
}
}
}
}

View File

@ -47,14 +47,14 @@ namespace big
{
for (rage::game_skeleton_update_base* update_node = mode->m_head; update_node; update_node = update_node->m_next)
{
if (update_node->m_hash != RAGE_JOAAT("Common Main"))
if (update_node->m_hash != "Common Main"_J)
continue;
rage::game_skeleton_update_group* group = reinterpret_cast<rage::game_skeleton_update_group*>(update_node);
for (rage::game_skeleton_update_base* group_child_node = group->m_head; group_child_node;
group_child_node = group_child_node->m_next)
{
// TamperActions is a leftover from the old AC, but still useful to block anyway
if (group_child_node->m_hash != 0xA0F39FB6 && group_child_node->m_hash != RAGE_JOAAT("TamperActions"))
if (group_child_node->m_hash != 0xA0F39FB6 && group_child_node->m_hash != "TamperActions"_J)
continue;
patched = true;
//LOG(INFO) << "Patching problematic skeleton update";
@ -67,7 +67,7 @@ namespace big
for (rage::skeleton_data& i : g_pointers->m_gta.m_game_skeleton->m_sys_data)
{
if (i.m_hash != 0xA0F39FB6 && i.m_hash != RAGE_JOAAT("TamperActions"))
if (i.m_hash != 0xA0F39FB6 && i.m_hash != "TamperActions"_J)
continue;
i.m_init_func = reinterpret_cast<uint64_t>(g_pointers->m_gta.m_nullsub);
i.m_shutdown_func = reinterpret_cast<uint64_t>(g_pointers->m_gta.m_nullsub);

View File

@ -52,7 +52,7 @@ namespace big
const auto ped = src->get_arg<Ped>(0);
const auto hash = src->get_arg<rage::joaat_t>(1);
if (g.weapons.interior_weapon && ped == self::ped && hash == RAGE_JOAAT("WEAPON_UNARMED"))
if (g.weapons.interior_weapon && ped == self::ped && hash == "WEAPON_UNARMED"_J)
return;
WEAPON::SET_CURRENT_PED_WEAPON(ped, hash, src->get_arg<int>(2));
@ -185,4 +185,4 @@ namespace big
{
}
}
}
}

View File

@ -4,7 +4,7 @@ namespace big
{
namespace am_launcher
{
static const std::unordered_set<Hash> bad_script_hashes = {RAGE_JOAAT("ggsm_arcade"), RAGE_JOAAT("camhedz_arcade"), RAGE_JOAAT("wizard_arcade"), RAGE_JOAAT("puzzle"), RAGE_JOAAT("fm_intro"), RAGE_JOAAT("pilot_school_mp"), RAGE_JOAAT("golf_mp"), RAGE_JOAAT("tennis_network_mp"), RAGE_JOAAT("fm_race_controler"), RAGE_JOAAT("fm_horde_controler"), RAGE_JOAAT("fm_mission_controller"), RAGE_JOAAT("fm_mission_controller_2020"), RAGE_JOAAT("fm_impromptu_dm_controler"), RAGE_JOAAT("fm_deathmatch_controler"), RAGE_JOAAT("fm_bj_race_controler"), RAGE_JOAAT("fm_survival_controller"), RAGE_JOAAT("sctv"), RAGE_JOAAT("am_pi_menu"), RAGE_JOAAT("scroll_arcade_cabinet"), RAGE_JOAAT("grid_arcade_cabinet"), RAGE_JOAAT("degenatron_games"), RAGE_JOAAT("gunslinger_arcade"), RAGE_JOAAT("road_arcade"), RAGE_JOAAT("AM_MP_DRONE")};
static const std::unordered_set<Hash> bad_script_hashes = {"ggsm_arcade"_J, "camhedz_arcade"_J, "wizard_arcade"_J, "puzzle"_J, "fm_intro"_J, "pilot_school_mp"_J, "golf_mp"_J, "tennis_network_mp"_J, "fm_race_controler"_J, "fm_horde_controler"_J, "fm_mission_controller"_J, "fm_mission_controller_2020"_J, "fm_impromptu_dm_controler"_J, "fm_deathmatch_controler"_J, "fm_bj_race_controler"_J, "fm_survival_controller"_J, "sctv"_J, "am_pi_menu"_J, "scroll_arcade_cabinet"_J, "grid_arcade_cabinet"_J, "degenatron_games"_J, "gunslinger_arcade"_J, "road_arcade"_J, "AM_MP_DRONE"_J};
static void START_NEW_SCRIPT_WITH_ARGS(rage::scrNativeCallContext* src)
{
@ -23,4 +23,4 @@ namespace big
src->set_return_value<int>(SYSTEM::START_NEW_SCRIPT_WITH_ARGS(name, args, argc, stackSize));
}
}
}
}

View File

@ -14,38 +14,38 @@ namespace big
switch (hash)
{
case RAGE_JOAAT("MP0_RACES_WON"):
case RAGE_JOAAT("MP0_NUMBER_TURBO_STARTS_IN_RACE"):
case RAGE_JOAAT("MP0_USJS_COMPLETED"):
case RAGE_JOAAT("MP0_AWD_FM_RACES_FASTEST_LAP"):
case RAGE_JOAAT("MP1_RACES_WON"):
case RAGE_JOAAT("MP1_NUMBER_TURBO_STARTS_IN_RACE"):
case RAGE_JOAAT("MP1_USJS_COMPLETED"):
case RAGE_JOAAT("MP1_AWD_FM_RACES_FASTEST_LAP"): *out = 50; break;
case RAGE_JOAAT("MP0_NUMBER_SLIPSTREAMS_IN_RACE"):
case RAGE_JOAAT("MP1_NUMBER_SLIPSTREAMS_IN_RACE"): *out = 100; break;
case RAGE_JOAAT("MP0_CHAR_FM_CARMOD_1_UNLCK"):
case RAGE_JOAAT("MP0_CHAR_FM_CARMOD_2_UNLCK"):
case RAGE_JOAAT("MP0_CHAR_FM_CARMOD_3_UNLCK"):
case RAGE_JOAAT("MP0_CHAR_FM_CARMOD_4_UNLCK"):
case RAGE_JOAAT("MP0_CHAR_FM_CARMOD_5_UNLCK"):
case RAGE_JOAAT("MP0_CHAR_FM_CARMOD_6_UNLCK"):
case RAGE_JOAAT("MP0_CHAR_FM_CARMOD_7_UNLCK"):
case RAGE_JOAAT("MP1_CHAR_FM_CARMOD_1_UNLCK"):
case RAGE_JOAAT("MP1_CHAR_FM_CARMOD_2_UNLCK"):
case RAGE_JOAAT("MP1_CHAR_FM_CARMOD_3_UNLCK"):
case RAGE_JOAAT("MP1_CHAR_FM_CARMOD_4_UNLCK"):
case RAGE_JOAAT("MP1_CHAR_FM_CARMOD_5_UNLCK"):
case RAGE_JOAAT("MP1_CHAR_FM_CARMOD_6_UNLCK"):
case RAGE_JOAAT("MP1_CHAR_FM_CARMOD_7_UNLCK"): *out = -1; break;
case RAGE_JOAAT("MP0_AWD_FMRALLYWONDRIVE"):
case RAGE_JOAAT("MP0_AWD_FMRALLYWONNAV"):
case RAGE_JOAAT("MP0_AWD_FMWINSEARACE"):
case RAGE_JOAAT("MP0_AWD_FMWINAIRRACE"):
case RAGE_JOAAT("MP1_AWD_FMRALLYWONDRIVE"):
case RAGE_JOAAT("MP1_AWD_FMRALLYWONNAV"):
case RAGE_JOAAT("MP1_AWD_FMWINSEARACE"):
case RAGE_JOAAT("MP1_AWD_FMWINAIRRACE"): *out = 1; break;
case "MP0_RACES_WON"_J:
case "MP0_NUMBER_TURBO_STARTS_IN_RACE"_J:
case "MP0_USJS_COMPLETED"_J:
case "MP0_AWD_FM_RACES_FASTEST_LAP"_J:
case "MP1_RACES_WON"_J:
case "MP1_NUMBER_TURBO_STARTS_IN_RACE"_J:
case "MP1_USJS_COMPLETED"_J:
case "MP1_AWD_FM_RACES_FASTEST_LAP"_J: *out = 50; break;
case "MP0_NUMBER_SLIPSTREAMS_IN_RACE"_J:
case "MP1_NUMBER_SLIPSTREAMS_IN_RACE"_J: *out = 100; break;
case "MP0_CHAR_FM_CARMOD_1_UNLCK"_J:
case "MP0_CHAR_FM_CARMOD_2_UNLCK"_J:
case "MP0_CHAR_FM_CARMOD_3_UNLCK"_J:
case "MP0_CHAR_FM_CARMOD_4_UNLCK"_J:
case "MP0_CHAR_FM_CARMOD_5_UNLCK"_J:
case "MP0_CHAR_FM_CARMOD_6_UNLCK"_J:
case "MP0_CHAR_FM_CARMOD_7_UNLCK"_J:
case "MP1_CHAR_FM_CARMOD_1_UNLCK"_J:
case "MP1_CHAR_FM_CARMOD_2_UNLCK"_J:
case "MP1_CHAR_FM_CARMOD_3_UNLCK"_J:
case "MP1_CHAR_FM_CARMOD_4_UNLCK"_J:
case "MP1_CHAR_FM_CARMOD_5_UNLCK"_J:
case "MP1_CHAR_FM_CARMOD_6_UNLCK"_J:
case "MP1_CHAR_FM_CARMOD_7_UNLCK"_J: *out = -1; break;
case "MP0_AWD_FMRALLYWONDRIVE"_J:
case "MP0_AWD_FMRALLYWONNAV"_J:
case "MP0_AWD_FMWINSEARACE"_J:
case "MP0_AWD_FMWINAIRRACE"_J:
case "MP1_AWD_FMRALLYWONDRIVE"_J:
case "MP1_AWD_FMRALLYWONNAV"_J:
case "MP1_AWD_FMWINSEARACE"_J:
case "MP1_AWD_FMWINAIRRACE"_J: *out = 1; break;
default: src->set_return_value<BOOL>(STATS::STAT_GET_INT(hash, out, src->get_arg<int>(2))); break;
}
}
@ -53,7 +53,7 @@ namespace big
inline void STAT_SET_INT(rage::scrNativeCallContext* src)
{
const auto hash = src->get_arg<Hash>(0);
if (hash == RAGE_JOAAT("SP0_TOTAL_CASH") || hash == RAGE_JOAAT("SP1_TOTAL_CASH") || hash == RAGE_JOAAT("SP2_TOTAL_CASH"))
if (hash == "SP0_TOTAL_CASH"_J || hash == "SP1_TOTAL_CASH"_J || hash == "SP2_TOTAL_CASH"_J)
return;
src->set_return_value<BOOL>(STATS::STAT_SET_INT(hash, src->get_arg<int>(1), src->get_arg<int>(2)));
@ -91,4 +91,4 @@ namespace big
}
}
}
}
}

View File

@ -13,7 +13,7 @@ namespace big
{
const auto hash = src->get_arg<rage::joaat_t>(0);
if (hash == RAGE_JOAAT("freemode") || hash == RAGE_JOAAT("main"))
if (hash == "freemode"_J || hash == "main"_J)
{
src->set_return_value(0);
return;
@ -29,8 +29,8 @@ namespace big
if (entity == self::ped)
{
if (model != RAGE_JOAAT("mp_m_freemode_01") && model != RAGE_JOAAT("mp_f_freemode_01"))
model = RAGE_JOAAT("mp_m_freemode_01");
if (model != "mp_m_freemode_01"_J && model != "mp_f_freemode_01"_J)
model = "mp_m_freemode_01"_J;
}
src->set_return_value<Hash>(std::move(model));
@ -44,4 +44,4 @@ namespace big
src->set_return_value<float>(STREAMING::GET_USED_CREATOR_BUDGET());
}
}
}
}

View File

@ -10,7 +10,7 @@ namespace big
{
const auto hash = src->get_arg<rage::joaat_t>(0);
if (hash == RAGE_JOAAT("director_mode") || hash == RAGE_JOAAT("main"))
if (hash == "director_mode"_J || hash == "main"_J)
{
src->set_return_value(0);
return;
@ -21,7 +21,7 @@ namespace big
void STAT_GET_INT(rage::scrNativeCallContext* src)
{
if (g_vehicle_control_service.m_driver_performing_task && (src->get_arg<Hash>(0) == RAGE_JOAAT("MP0_PERSONAL_VEHICLE_ACCESS") || src->get_arg<Hash>(0) == RAGE_JOAAT("MP1_PERSONAL_VEHICLE_ACCESS")))
if (g_vehicle_control_service.m_driver_performing_task && (src->get_arg<Hash>(0) == "MP0_PERSONAL_VEHICLE_ACCESS"_J || src->get_arg<Hash>(0) == "MP1_PERSONAL_VEHICLE_ACCESS"_J))
{
src->set_return_value<int>(0);
return;
@ -81,7 +81,7 @@ namespace big
});
}
if (SCRIPT::GET_HASH_OF_THIS_SCRIPT_NAME() == RAGE_JOAAT("freemode") && g.session.fast_join)
if (SCRIPT::GET_HASH_OF_THIS_SCRIPT_NAME() == "freemode"_J && g.session.fast_join)
{
scr_functions::set_freemode_session_active({});
src->set_return_value<BOOL>(TRUE);
@ -93,4 +93,4 @@ namespace big
}
}
}
}
}

View File

@ -83,7 +83,7 @@ namespace big
}
}
constexpr auto ALL_SCRIPT_HASH = RAGE_JOAAT("ALL_SCRIPTS");
constexpr auto ALL_SCRIPT_HASH = "ALL_SCRIPTS"_J;
native_hooks::native_hooks()
{
@ -101,69 +101,69 @@ namespace big
add_native_detour(NativeIndex::UNREGISTER_SCRIPT_VARIABLE, all_scripts::DO_NOTHING);
add_native_detour(NativeIndex::FORCE_CHECK_SCRIPT_VARIABLES, all_scripts::DO_NOTHING);
add_native_detour(RAGE_JOAAT("shop_controller"), NativeIndex::IS_PED_SHOOTING, all_scripts::RETURN_FALSE); // prevent exploit reports
add_native_detour(RAGE_JOAAT("shop_controller"), NativeIndex::SET_WARNING_MESSAGE_WITH_HEADER, shop_controller::SET_WARNING_MESSAGE_WITH_HEADER);
add_native_detour("shop_controller"_J, NativeIndex::IS_PED_SHOOTING, all_scripts::RETURN_FALSE); // prevent exploit reports
add_native_detour("shop_controller"_J, NativeIndex::SET_WARNING_MESSAGE_WITH_HEADER, shop_controller::SET_WARNING_MESSAGE_WITH_HEADER);
add_native_detour(RAGE_JOAAT("carmod_shop"), NativeIndex::SET_ENTITY_COORDS, carmod_shop::SET_ENTITY_COORDS);
add_native_detour(RAGE_JOAAT("carmod_shop"), NativeIndex::SET_ENTITY_HEADING, carmod_shop::SET_ENTITY_HEADING);
add_native_detour(RAGE_JOAAT("carmod_shop"), NativeIndex::SET_VEHICLE_LIGHTS, carmod_shop::SET_VEHICLE_LIGHTS);
add_native_detour(RAGE_JOAAT("carmod_shop"), NativeIndex::STAT_GET_INT, carmod_shop::STAT_GET_INT);
add_native_detour(RAGE_JOAAT("carmod_shop"), NativeIndex::STAT_SET_INT, carmod_shop::STAT_SET_INT);
add_native_detour(RAGE_JOAAT("carmod_shop"), NativeIndex::DISABLE_ALL_CONTROL_ACTIONS, carmod_shop::DISABLE_ALL_CONTROL_ACTIONS);
add_native_detour("carmod_shop"_J, NativeIndex::SET_ENTITY_COORDS, carmod_shop::SET_ENTITY_COORDS);
add_native_detour("carmod_shop"_J, NativeIndex::SET_ENTITY_HEADING, carmod_shop::SET_ENTITY_HEADING);
add_native_detour("carmod_shop"_J, NativeIndex::SET_VEHICLE_LIGHTS, carmod_shop::SET_VEHICLE_LIGHTS);
add_native_detour("carmod_shop"_J, NativeIndex::STAT_GET_INT, carmod_shop::STAT_GET_INT);
add_native_detour("carmod_shop"_J, NativeIndex::STAT_SET_INT, carmod_shop::STAT_SET_INT);
add_native_detour("carmod_shop"_J, NativeIndex::DISABLE_ALL_CONTROL_ACTIONS, carmod_shop::DISABLE_ALL_CONTROL_ACTIONS);
add_native_detour(RAGE_JOAAT("freemode"), NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, freemode::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour(RAGE_JOAAT("freemode"), NativeIndex::STAT_GET_INT, freemode::STAT_GET_INT);
add_native_detour(RAGE_JOAAT("freemode"), NativeIndex::IS_PLAYER_PLAYING, freemode::IS_PLAYER_PLAYING);
add_native_detour(RAGE_JOAAT("freemode"), NativeIndex::SET_ENTITY_VISIBLE, freemode::SET_ENTITY_VISIBLE);
add_native_detour(RAGE_JOAAT("freemode"), NativeIndex::SET_BIGMAP_ACTIVE, freemode::SET_BIGMAP_ACTIVE);
add_native_detour(RAGE_JOAAT("freemode"), NativeIndex::SET_BLIP_DISPLAY, freemode::SET_BLIP_DISPLAY);
add_native_detour(RAGE_JOAAT("freemode"), NativeIndex::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA, freemode::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA);
add_native_detour("freemode"_J, NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, freemode::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour("freemode"_J, NativeIndex::STAT_GET_INT, freemode::STAT_GET_INT);
add_native_detour("freemode"_J, NativeIndex::IS_PLAYER_PLAYING, freemode::IS_PLAYER_PLAYING);
add_native_detour("freemode"_J, NativeIndex::SET_ENTITY_VISIBLE, freemode::SET_ENTITY_VISIBLE);
add_native_detour("freemode"_J, NativeIndex::SET_BIGMAP_ACTIVE, freemode::SET_BIGMAP_ACTIVE);
add_native_detour("freemode"_J, NativeIndex::SET_BLIP_DISPLAY, freemode::SET_BLIP_DISPLAY);
add_native_detour("freemode"_J, NativeIndex::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA, freemode::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA);
add_native_detour(RAGE_JOAAT("fmmc_launcher"), NativeIndex::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA, freemode::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA);
add_native_detour(RAGE_JOAAT("maintransition"), NativeIndex::NETWORK_SESSION_HOST, network::NETWORK_SESSION_HOST);
add_native_detour("fmmc_launcher"_J, NativeIndex::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA, freemode::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA);
add_native_detour("maintransition"_J, NativeIndex::NETWORK_SESSION_HOST, network::NETWORK_SESSION_HOST);
add_native_detour(RAGE_JOAAT("am_launcher"), NativeIndex::START_NEW_SCRIPT_WITH_ARGS, am_launcher::START_NEW_SCRIPT_WITH_ARGS);
add_native_detour(RAGE_JOAAT("am_launcher"), NativeIndex::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA, freemode::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA);
add_native_detour("am_launcher"_J, NativeIndex::START_NEW_SCRIPT_WITH_ARGS, am_launcher::START_NEW_SCRIPT_WITH_ARGS);
add_native_detour("am_launcher"_J, NativeIndex::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA, freemode::NETWORK_HAS_RECEIVED_HOST_BROADCAST_DATA);
add_native_detour(RAGE_JOAAT("fm_race_creator"), NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour(RAGE_JOAAT("fm_capture_creator"), NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour(RAGE_JOAAT("fm_deathmatch_creator"), NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour(RAGE_JOAAT("fm_lts_creator"), NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour("fm_race_creator"_J, NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour("fm_capture_creator"_J, NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour("fm_deathmatch_creator"_J, NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour("fm_lts_creator"_J, NativeIndex::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH, creator::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH);
add_native_detour(RAGE_JOAAT("fm_race_creator"), NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
add_native_detour(RAGE_JOAAT("fm_capture_creator"), NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
add_native_detour(RAGE_JOAAT("fm_deathmatch_creator"), NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
add_native_detour(RAGE_JOAAT("fm_lts_creator"), NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
add_native_detour("fm_race_creator"_J, NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
add_native_detour("fm_capture_creator"_J, NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
add_native_detour("fm_deathmatch_creator"_J, NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
add_native_detour("fm_lts_creator"_J, NativeIndex::GET_ENTITY_MODEL, creator::GET_ENTITY_MODEL);
// Infinite Model Memory
add_native_detour(RAGE_JOAAT("fm_race_creator"), NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour(RAGE_JOAAT("fm_capture_creator"), NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour(RAGE_JOAAT("fm_deathmatch_creator"), NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour(RAGE_JOAAT("fm_lts_creator"), NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour(RAGE_JOAAT("fm_survival_creator"), NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour("fm_race_creator"_J, NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour("fm_capture_creator"_J, NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour("fm_deathmatch_creator"_J, NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour("fm_lts_creator"_J, NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour("fm_survival_creator"_J, NativeIndex::GET_USED_CREATOR_BUDGET, creator::GET_USED_CREATOR_BUDGET);
add_native_detour(RAGE_JOAAT("tuneables_processing"), NativeIndex::WAIT, tunables::WAIT);
add_native_detour(RAGE_JOAAT("tuneables_processing"), NativeIndex::NETWORK_ACCESS_TUNABLE_INT_HASH, tunables::NETWORK_ACCESS_TUNABLE_INT_HASH);
add_native_detour(RAGE_JOAAT("tuneables_processing"), NativeIndex::NETWORK_ACCESS_TUNABLE_BOOL_MODIFICATION_DETECTION_REGISTRATION_HASH, tunables::NETWORK_ACCESS_TUNABLE_BOOL_MODIFICATION_DETECTION_REGISTRATION_HASH);
add_native_detour(RAGE_JOAAT("tuneables_processing"), NativeIndex::NETWORK_ACCESS_TUNABLE_FLOAT_HASH, tunables::NETWORK_ACCESS_TUNABLE_FLOAT_HASH);
add_native_detour("tuneables_processing"_J, NativeIndex::WAIT, tunables::WAIT);
add_native_detour("tuneables_processing"_J, NativeIndex::NETWORK_ACCESS_TUNABLE_INT_HASH, tunables::NETWORK_ACCESS_TUNABLE_INT_HASH);
add_native_detour("tuneables_processing"_J, NativeIndex::NETWORK_ACCESS_TUNABLE_BOOL_MODIFICATION_DETECTION_REGISTRATION_HASH, tunables::NETWORK_ACCESS_TUNABLE_BOOL_MODIFICATION_DETECTION_REGISTRATION_HASH);
add_native_detour("tuneables_processing"_J, NativeIndex::NETWORK_ACCESS_TUNABLE_FLOAT_HASH, tunables::NETWORK_ACCESS_TUNABLE_FLOAT_HASH);
// TODO: is this safe?
add_native_detour(RAGE_JOAAT("arena_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("armory_aircraft_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("base_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("business_hub_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("car_meet_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("carmod_shop"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("fixer_hq_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("hacker_truck_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("hangar_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("juggalo_hideout_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("personal_carmod_shop"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("tuner_property_carmod"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("clothes_shop_mp"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("gunclub_shop"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("hairdo_shop_mp"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour(RAGE_JOAAT("tattoo_shop"), NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("arena_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("armory_aircraft_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("base_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("business_hub_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("car_meet_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("carmod_shop"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("fixer_hq_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("hacker_truck_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("hangar_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("juggalo_hideout_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("personal_carmod_shop"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("tuner_property_carmod"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("clothes_shop_mp"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("gunclub_shop"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("hairdo_shop_mp"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
add_native_detour("tattoo_shop"_J, NativeIndex::FORCE_PED_AI_AND_ANIMATION_UPDATE, all_scripts::DO_NOTHING); //Fix jittering weapons.
for (auto& entry : *g_pointers->m_gta.m_script_program_table)
if (entry.m_program)

View File

@ -27,17 +27,17 @@ namespace big
namespace scr_functions
{
static inline script_function join_ceo("JC", RAGE_JOAAT("freemode"), "2D 04 1D 00 00 5D", 0);
static inline script_function set_freemode_session_active("SFSA", RAGE_JOAAT("freemode"), "2D 00 02 00 00 75 5D ? ? ? 50", 0);
static inline script_function dance_loop("DL", RAGE_JOAAT("am_mp_nightclub"), "2D 00 14 00 00 4F ? ? 47 ? ? 5D ? ? ? 56", 0);
static inline script_function init_nightclub_script("INS", RAGE_JOAAT("am_mp_nightclub"), "2D 00 11 00 00 4F", 0);
static inline script_function join_ceo("JC", "freemode"_J, "2D 04 1D 00 00 5D", 0);
static inline script_function set_freemode_session_active("SFSA", "freemode"_J, "2D 00 02 00 00 75 5D ? ? ? 50", 0);
static inline script_function dance_loop("DL", "am_mp_nightclub"_J, "2D 00 14 00 00 4F ? ? 47 ? ? 5D ? ? ? 56", 0);
static inline script_function init_nightclub_script("INS", "am_mp_nightclub"_J, "2D 00 11 00 00 4F", 0);
static inline script_function save_to_datafile("STD", RAGE_JOAAT("fm_race_creator"), "2D 01 03 00 00 71 2C", 0);
static inline script_function load_from_datafile("LFD", RAGE_JOAAT("fm_race_creator"), "2D 04 0D 00 00 71 2C", 0);
static inline script_function save_to_datafile("STD", "fm_race_creator"_J, "2D 01 03 00 00 71 2C", 0);
static inline script_function load_from_datafile("LFD", "fm_race_creator"_J, "2D 04 0D 00 00 71 2C", 0);
static inline script_function modshop_loop("ML", RAGE_JOAAT("carmod_shop"), "2D 00 07 00 00 71 51", 0);
static inline script_function setup_modshop("SM", RAGE_JOAAT("carmod_shop"), "2D 04 12 00 00 38 00 51", 0);
static inline script_function modshop_loop("ML", "carmod_shop"_J, "2D 00 07 00 00 71 51", 0);
static inline script_function setup_modshop("SM", "carmod_shop"_J, "2D 04 12 00 00 38 00 51", 0);
static inline script_function reset_session_data("RSD", RAGE_JOAAT("pausemenu_multiplayer"), "2D 02 7D 00 00", 0);
static inline script_function reset_session_data("RSD", "pausemenu_multiplayer"_J, "2D 02 7D 00 00", 0);
}
}
}

View File

@ -24,7 +24,7 @@ namespace big
void script_mgr::tick()
{
gta_util::execute_as_script(RAGE_JOAAT("main_persistent"), std::mem_fn(&script_mgr::tick_internal), this);
gta_util::execute_as_script("main_persistent"_J, std::mem_fn(&script_mgr::tick_internal), this);
}
void script_mgr::ensure_main_fiber()

View File

@ -132,7 +132,7 @@ namespace big
[this] {
if (ped::get_player_from_ped(VEHICLE::GET_PED_IN_VEHICLE_SEAT(m_handle, -1, 0)) != NULL)
{
static player_command* command = dynamic_cast<player_command*>(command::get(rage::consteval_joaat("vehkick")));
static player_command* command = dynamic_cast<player_command*>(command::get("vehkick"_J));
command->call(ped::get_player_from_ped(VEHICLE::GET_PED_IN_VEHICLE_SEAT(m_handle, -1, 0)), {});
}
@ -182,8 +182,8 @@ namespace big
PED::SET_PED_CONFIG_FLAG(m_handle, 394, true);
PED::SET_PED_CONFIG_FLAG(m_handle, 400, true);
PED::SET_PED_CONFIG_FLAG(m_handle, 134, true);
WEAPON::GIVE_WEAPON_TO_PED(m_handle, RAGE_JOAAT("weapon_microsmg"), 9999, false, false);
WEAPON::GIVE_WEAPON_TO_PED(m_handle, RAGE_JOAAT("weapon_carbinerifle"), 9999, false, true);
WEAPON::GIVE_WEAPON_TO_PED(m_handle, "weapon_microsmg"_J, 9999, false, false);
WEAPON::GIVE_WEAPON_TO_PED(m_handle, "weapon_carbinerifle"_J, 9999, false, true);
TASK::TASK_COMBAT_HATED_TARGETS_AROUND_PED(self::ped, 100, 67108864);
}}
}};
@ -204,17 +204,17 @@ namespace big
}},
{"KICK",
[this] {
static player_command* command = dynamic_cast<player_command*>(command::get(rage::consteval_joaat("multikick")));
static player_command* command = dynamic_cast<player_command*>(command::get("multikick"_J));
command->call(ped::get_player_from_ped(m_handle), {});
script::get_current()->yield(500ms);
}},
{"DISARM",
[this] {
static player_command* command = dynamic_cast<player_command*>(command::get(rage::consteval_joaat("remweaps")));
static player_command* command = dynamic_cast<player_command*>(command::get("remweaps"_J));
command->call(ped::get_player_from_ped(m_handle), {});
}},
{"RAGDOLL", [this] {
static player_command* command = dynamic_cast<player_command*>(command::get(rage::consteval_joaat("ragdoll")));
static player_command* command = dynamic_cast<player_command*>(command::get("ragdoll"_J));
command->call(ped::get_player_from_ped(m_handle), {});
}}
}};

View File

@ -30,9 +30,9 @@ namespace big
{
std::ofstream file(check_jobs_folder().get_file(filename).get_path());
while (!SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED(RAGE_JOAAT("fm_race_creator")))
while (!SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED("fm_race_creator"_J))
{
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH(RAGE_JOAAT("fm_race_creator"));
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH("fm_race_creator"_J);
script::get_current()->yield();
}
@ -40,7 +40,7 @@ namespace big
scr_functions::save_to_datafile.static_call({(uint64_t)storage});
delete[] storage;
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(RAGE_JOAAT("fm_race_creator"));
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED("fm_race_creator"_J);
auto buffer = g_pointers->m_gta.m_save_json_data(g_pointers->m_gta.m_main_file_object, nullptr, "to save it to a file I guess?");
@ -71,15 +71,15 @@ namespace big
g_pointers->m_gta.m_load_cloud_file(&cloud_file, buffer.data(), buffer.length(), "to load it from a file I guess?");
g_pointers->m_gta.m_set_as_active_cloud_file(g_pointers->m_gta.m_main_file_object, &cloud_file);
while (!SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED(RAGE_JOAAT("fm_race_creator")))
while (!SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED("fm_race_creator"_J))
{
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH(RAGE_JOAAT("fm_race_creator"));
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH("fm_race_creator"_J);
script::get_current()->yield();
}
scr_functions::load_from_datafile.static_call({1, true, false, 0});
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(RAGE_JOAAT("fm_race_creator"));
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED("fm_race_creator"_J);
file_stream.close();
}

View File

@ -6,9 +6,9 @@ namespace big
{
custom_text_service::custom_text_service()
{
add_callback_for_labels({RAGE_JOAAT("RESPAWN_W"), RAGE_JOAAT("RESPAWN_W_MP")}, respawn_label_callback);
add_label_overwrite(RAGE_JOAAT("GC_OTR_TMR"), "HIDING FROM CLOWNS");
// add_label_overwrite(RAGE_JOAAT("TICK_LEFTCHEAT"), "~a~~HUD_COLOUR_WHITE~ has been swatted by Rockstar.");
add_callback_for_labels({"RESPAWN_W"_J, "RESPAWN_W_MP"_J}, respawn_label_callback);
add_label_overwrite("GC_OTR_TMR"_J, "HIDING FROM CLOWNS");
// add_label_overwrite("TICK_LEFTCHEAT"_J, "~a~~HUD_COLOUR_WHITE~ has been swatted by Rockstar.");
g_custom_text_service = this;
}
@ -49,4 +49,4 @@ namespace big
return it->second.get();
return nullptr;
}
}
}

View File

@ -352,7 +352,7 @@ namespace big
const auto name = item.child("Name").text().as_string();
const auto hash = rage::joaat(name);
if (hash == RAGE_JOAAT("WEAPON_BIRD_CRAP"))
if (hash == "WEAPON_BIRD_CRAP"_J)
continue;
if (exists(mapped_weapons, hash))
@ -578,4 +578,4 @@ namespace big
load_data();
});
}
}
}

View File

@ -12,30 +12,30 @@ namespace big
hotkey_service::hotkey_service()
{
// ordered alphabetically to more easily see if a certain hotkey is present
register_hotkey("beastjump", g.settings.hotkeys.beastjump, RAGE_JOAAT("beastjump"));
register_hotkey("bringpv", g.settings.hotkeys.bringvehicle, RAGE_JOAAT("bringpv"));
register_hotkey("clearwantedlvl", g.settings.hotkeys.clear_wanted, RAGE_JOAAT("clearwantedlvl"));
register_hotkey("cmdexecutor", g.settings.hotkeys.cmd_excecutor, RAGE_JOAAT("cmdexecutor"));
register_hotkey("fastquit", g.settings.hotkeys.fast_quit, RAGE_JOAAT("fastquit"));
register_hotkey("fastrun", g.settings.hotkeys.superrun, RAGE_JOAAT("fastrun"));
register_hotkey("fillammo", g.settings.hotkeys.fill_ammo, RAGE_JOAAT("fillammo"));
register_hotkey("fillsnacks", g.settings.hotkeys.fill_inventory, RAGE_JOAAT("fillsnacks"));
register_hotkey("freecam", g.settings.hotkeys.freecam, RAGE_JOAAT("freecam"));
register_hotkey("heal", g.settings.hotkeys.heal, RAGE_JOAAT("heal"));
register_hotkey("invis", g.settings.hotkeys.invis, RAGE_JOAAT("invis"));
register_hotkey("invisveh", g.settings.hotkeys.invisveh, RAGE_JOAAT("invisveh"));
register_hotkey("localinvisveh", g.settings.hotkeys.localinvisveh, RAGE_JOAAT("localinvisveh"));
register_hotkey("noclip", g.settings.hotkeys.noclip, RAGE_JOAAT("noclip"));
register_hotkey("objective", g.settings.hotkeys.teleport_objective, RAGE_JOAAT("objectivetp"));
register_hotkey("pvtp", g.settings.hotkeys.teleport_pv, RAGE_JOAAT("pvtp"));
register_hotkey("passive", g.settings.hotkeys.passive, RAGE_JOAAT("passive"));
register_hotkey("repairpv", g.settings.hotkeys.repairpv, RAGE_JOAAT("repairpv"));
register_hotkey("skipcutscene", g.settings.hotkeys.skip_cutscene, RAGE_JOAAT("skipcutscene"));
register_hotkey("superjump", g.settings.hotkeys.superjump, RAGE_JOAAT("superjump"));
register_hotkey("vehiclecontroller", g.settings.hotkeys.open_vehicle_controller, RAGE_JOAAT("vehiclecontrol"));
register_hotkey("vehiclefly", g.settings.hotkeys.vehicle_flymode, RAGE_JOAAT("vehiclefly"));
register_hotkey("waypoint", g.settings.hotkeys.teleport_waypoint, RAGE_JOAAT("waypointtp"));
register_hotkey("highlighttp", g.settings.hotkeys.teleport_selected, RAGE_JOAAT("highlighttp"));
register_hotkey("beastjump", g.settings.hotkeys.beastjump, "beastjump"_J);
register_hotkey("bringpv", g.settings.hotkeys.bringvehicle, "bringpv"_J);
register_hotkey("clearwantedlvl", g.settings.hotkeys.clear_wanted, "clearwantedlvl"_J);
register_hotkey("cmdexecutor", g.settings.hotkeys.cmd_excecutor, "cmdexecutor"_J);
register_hotkey("fastquit", g.settings.hotkeys.fast_quit, "fastquit"_J);
register_hotkey("fastrun", g.settings.hotkeys.superrun, "fastrun"_J);
register_hotkey("fillammo", g.settings.hotkeys.fill_ammo, "fillammo"_J);
register_hotkey("fillsnacks", g.settings.hotkeys.fill_inventory, "fillsnacks"_J);
register_hotkey("freecam", g.settings.hotkeys.freecam, "freecam"_J);
register_hotkey("heal", g.settings.hotkeys.heal, "heal"_J);
register_hotkey("invis", g.settings.hotkeys.invis, "invis"_J);
register_hotkey("invisveh", g.settings.hotkeys.invisveh, "invisveh"_J);
register_hotkey("localinvisveh", g.settings.hotkeys.localinvisveh, "localinvisveh"_J);
register_hotkey("noclip", g.settings.hotkeys.noclip, "noclip"_J);
register_hotkey("objective", g.settings.hotkeys.teleport_objective, "objectivetp"_J);
register_hotkey("pvtp", g.settings.hotkeys.teleport_pv, "pvtp"_J);
register_hotkey("passive", g.settings.hotkeys.passive, "passive"_J);
register_hotkey("repairpv", g.settings.hotkeys.repairpv, "repairpv"_J);
register_hotkey("skipcutscene", g.settings.hotkeys.skip_cutscene, "skipcutscene"_J);
register_hotkey("superjump", g.settings.hotkeys.superjump, "superjump"_J);
register_hotkey("vehiclecontroller", g.settings.hotkeys.open_vehicle_controller, "vehiclecontrol"_J);
register_hotkey("vehiclefly", g.settings.hotkeys.vehicle_flymode, "vehiclefly"_J);
register_hotkey("waypoint", g.settings.hotkeys.teleport_waypoint, "waypointtp"_J);
register_hotkey("highlighttp", g.settings.hotkeys.teleport_selected, "highlighttp"_J);
g_renderer.add_wndproc_callback([this](HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam) {
wndproc(static_cast<eKeyState>(msg), wparam);
@ -91,7 +91,7 @@ namespace big
bool is_using_cellphone = false;
for (auto script : *g_pointers->m_gta.m_script_threads)
{
if (script && script->m_script_hash == RAGE_JOAAT("cellphone_flashhand"))
if (script && script->m_script_hash == "cellphone_flashhand"_J)
{
is_using_cellphone = script->m_context.m_state == rage::eThreadState::running;
}

View File

@ -97,36 +97,36 @@ namespace big
Hash stat = NULL;
switch (property)
{
case 0: stat = self::char_index ? RAGE_JOAAT("MP1_PROPERTY_HOUSE") : RAGE_JOAAT("MP0_PROPERTY_HOUSE"); break;
case 1: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_1") : RAGE_JOAAT("MP0_MULTI_PROPERTY_1"); break;
case 2: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_2") : RAGE_JOAAT("MP0_MULTI_PROPERTY_2"); break;
case 3: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_3") : RAGE_JOAAT("MP0_MULTI_PROPERTY_3"); break;
case 4: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_4") : RAGE_JOAAT("MP0_MULTI_PROPERTY_4"); break;
case 5: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_OFFICE") : RAGE_JOAAT("MP0_PROP_OFFICE"); break;
case 6: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_CLUBHOUSE") : RAGE_JOAAT("MP0_PROP_CLUBHOUSE"); break;
case 7: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_5") : RAGE_JOAAT("MP0_MULTI_PROPERTY_5"); break;
case 8: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_OFFICE_GAR1") : RAGE_JOAAT("MP0_PROP_OFFICE_GAR1"); break;
case 9: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_OFFICE_GAR2") : RAGE_JOAAT("MP0_PROP_OFFICE_GAR2"); break;
case 10: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_OFFICE_GAR3") : RAGE_JOAAT("MP0_PROP_OFFICE_GAR3"); break;
case 11: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_IE_WAREHOUSE") : RAGE_JOAAT("MP0_PROP_IE_WAREHOUSE"); break;
case 12: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_HANGAR") : RAGE_JOAAT("MP0_PROP_HANGAR"); break;
case 13: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_DEFUNCBASE") : RAGE_JOAAT("MP0_PROP_DEFUNCBASE"); break;
case 14: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_NIGHTCLUB") : RAGE_JOAAT("MP0_PROP_NIGHTCLUB"); break;
case 15: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_MEGAWARE_GAR1") : RAGE_JOAAT("MP0_PROP_MEGAWARE_GAR1"); break;
case 16: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_MEGAWARE_GAR2") : RAGE_JOAAT("MP0_PROP_MEGAWARE_GAR2"); break;
case 17: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_MEGAWARE_GAR3") : RAGE_JOAAT("MP0_PROP_MEGAWARE_GAR3"); break;
case 18: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_ARENAWARS_GAR1") : RAGE_JOAAT("MP0_PROP_ARENAWARS_GAR1"); break;
case 19: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_ARENAWARS_GAR2") : RAGE_JOAAT("MP0_PROP_ARENAWARS_GAR2"); break;
case 20: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_ARENAWARS_GAR3") : RAGE_JOAAT("MP0_PROP_ARENAWARS_GAR3"); break;
case 21: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_CASINO_GAR1") : RAGE_JOAAT("MP0_PROP_CASINO_GAR1"); break;
case 22: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_ARCADE_GAR1") : RAGE_JOAAT("MP0_PROP_ARCADE_GAR1"); break;
case 23: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_6") : RAGE_JOAAT("MP0_MULTI_PROPERTY_6"); break;
case 24: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_7") : RAGE_JOAAT("MP0_MULTI_PROPERTY_7"); break;
case 25: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_AUTO_SHOP") : RAGE_JOAAT("MP0_PROP_AUTO_SHOP"); break;
case 26: stat = self::char_index ? RAGE_JOAAT("MP1_PROP_SECURITY_OFFICE_GAR") : RAGE_JOAAT("MP0_PROP_SECURITY_OFFICE_GAR"); break;
case 27: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_8") : RAGE_JOAAT("MP0_MULTI_PROPERTY_8"); break;
case 28: stat = self::char_index ? RAGE_JOAAT("MP1_MULTI_PROPERTY_9") : RAGE_JOAAT("MP0_MULTI_PROPERTY_9"); break;
case 29: stat = self::char_index ? RAGE_JOAAT("MP1_MULTSTOREY_GAR_OWNED") : RAGE_JOAAT("MP0_MULTSTOREY_GAR_OWNED"); break;
case 0: stat = self::char_index ? "MP1_PROPERTY_HOUSE"_J : "MP0_PROPERTY_HOUSE"_J; break;
case 1: stat = self::char_index ? "MP1_MULTI_PROPERTY_1"_J : "MP0_MULTI_PROPERTY_1"_J; break;
case 2: stat = self::char_index ? "MP1_MULTI_PROPERTY_2"_J : "MP0_MULTI_PROPERTY_2"_J; break;
case 3: stat = self::char_index ? "MP1_MULTI_PROPERTY_3"_J : "MP0_MULTI_PROPERTY_3"_J; break;
case 4: stat = self::char_index ? "MP1_MULTI_PROPERTY_4"_J : "MP0_MULTI_PROPERTY_4"_J; break;
case 5: stat = self::char_index ? "MP1_PROP_OFFICE"_J : "MP0_PROP_OFFICE"_J; break;
case 6: stat = self::char_index ? "MP1_PROP_CLUBHOUSE"_J : "MP0_PROP_CLUBHOUSE"_J; break;
case 7: stat = self::char_index ? "MP1_MULTI_PROPERTY_5"_J : "MP0_MULTI_PROPERTY_5"_J; break;
case 8: stat = self::char_index ? "MP1_PROP_OFFICE_GAR1"_J : "MP0_PROP_OFFICE_GAR1"_J; break;
case 9: stat = self::char_index ? "MP1_PROP_OFFICE_GAR2"_J : "MP0_PROP_OFFICE_GAR2"_J; break;
case 10: stat = self::char_index ? "MP1_PROP_OFFICE_GAR3"_J : "MP0_PROP_OFFICE_GAR3"_J; break;
case 11: stat = self::char_index ? "MP1_PROP_IE_WAREHOUSE"_J : "MP0_PROP_IE_WAREHOUSE"_J; break;
case 12: stat = self::char_index ? "MP1_PROP_HANGAR"_J : "MP0_PROP_HANGAR"_J; break;
case 13: stat = self::char_index ? "MP1_PROP_DEFUNCBASE"_J : "MP0_PROP_DEFUNCBASE"_J; break;
case 14: stat = self::char_index ? "MP1_PROP_NIGHTCLUB"_J : "MP0_PROP_NIGHTCLUB"_J; break;
case 15: stat = self::char_index ? "MP1_PROP_MEGAWARE_GAR1"_J : "MP0_PROP_MEGAWARE_GAR1"_J; break;
case 16: stat = self::char_index ? "MP1_PROP_MEGAWARE_GAR2"_J : "MP0_PROP_MEGAWARE_GAR2"_J; break;
case 17: stat = self::char_index ? "MP1_PROP_MEGAWARE_GAR3"_J : "MP0_PROP_MEGAWARE_GAR3"_J; break;
case 18: stat = self::char_index ? "MP1_PROP_ARENAWARS_GAR1"_J : "MP0_PROP_ARENAWARS_GAR1"_J; break;
case 19: stat = self::char_index ? "MP1_PROP_ARENAWARS_GAR2"_J : "MP0_PROP_ARENAWARS_GAR2"_J; break;
case 20: stat = self::char_index ? "MP1_PROP_ARENAWARS_GAR3"_J : "MP0_PROP_ARENAWARS_GAR3"_J; break;
case 21: stat = self::char_index ? "MP1_PROP_CASINO_GAR1"_J : "MP0_PROP_CASINO_GAR1"_J; break;
case 22: stat = self::char_index ? "MP1_PROP_ARCADE_GAR1"_J : "MP0_PROP_ARCADE_GAR1"_J; break;
case 23: stat = self::char_index ? "MP1_MULTI_PROPERTY_6"_J : "MP0_MULTI_PROPERTY_6"_J; break;
case 24: stat = self::char_index ? "MP1_MULTI_PROPERTY_7"_J : "MP0_MULTI_PROPERTY_7"_J; break;
case 25: stat = self::char_index ? "MP1_PROP_AUTO_SHOP"_J : "MP0_PROP_AUTO_SHOP"_J; break;
case 26: stat = self::char_index ? "MP1_PROP_SECURITY_OFFICE_GAR"_J : "MP0_PROP_SECURITY_OFFICE_GAR"_J; break;
case 27: stat = self::char_index ? "MP1_MULTI_PROPERTY_8"_J : "MP0_MULTI_PROPERTY_8"_J; break;
case 28: stat = self::char_index ? "MP1_MULTI_PROPERTY_9"_J : "MP0_MULTI_PROPERTY_9"_J; break;
case 29: stat = self::char_index ? "MP1_MULTSTOREY_GAR_OWNED"_J : "MP0_MULTSTOREY_GAR_OWNED"_J; break;
case MAX_GARAGE_NUM+0:
case MAX_GARAGE_NUM+1:
case MAX_GARAGE_NUM+2:
@ -283,23 +283,23 @@ namespace big
{
switch (m_hash)
{
case RAGE_JOAAT("avenger"):
case RAGE_JOAAT("avenger3"):
case RAGE_JOAAT("hauler2"):
case RAGE_JOAAT("phantom3"):
case RAGE_JOAAT("trailersmall2"):
case RAGE_JOAAT("khanjali"):
case RAGE_JOAAT("chernobog"):
case RAGE_JOAAT("riot2"):
case RAGE_JOAAT("thruster"):
case RAGE_JOAAT("brickade2"):
case RAGE_JOAAT("manchez3"):
case RAGE_JOAAT("terbyte"):
case RAGE_JOAAT("speedo4"):
case RAGE_JOAAT("mule4"):
case RAGE_JOAAT("pounder2"):
case RAGE_JOAAT("rcbandito"):
case RAGE_JOAAT("minitank"):
case "avenger"_J:
case "avenger3"_J:
case "hauler2"_J:
case "phantom3"_J:
case "trailersmall2"_J:
case "khanjali"_J:
case "chernobog"_J:
case "riot2"_J:
case "thruster"_J:
case "brickade2"_J:
case "manchez3"_J:
case "terbyte"_J:
case "speedo4"_J:
case "mule4"_J:
case "pounder2"_J:
case "rcbandito"_J:
case "minitank"_J:
return !g.clone_pv.spawn_clone;
}
return false;
@ -395,4 +395,4 @@ namespace big
}
}
}
}
}

View File

@ -108,7 +108,7 @@ namespace big
j_props[std::to_string(item.id)] = tmp;
}
if (model == RAGE_JOAAT("mp_m_freemode_01") || model == RAGE_JOAAT("mp_f_freemode_01"))
if (model == "mp_m_freemode_01"_J || model == "mp_f_freemode_01"_J)
{
head_blend_data blend_data{};
PED::GET_PED_HEAD_BLEND_DATA(self::ped, (Any*)&blend_data);
@ -123,4 +123,4 @@ namespace big
std::ofstream o(saved_outfit_path.get_file(filename).get_path());
o << std::setw(4) << j << std::endl;
}
}
}

View File

@ -51,15 +51,15 @@ namespace big
void pickup_service::give_armour(const int targets) const
{
g_pointers->m_gta.m_give_pickup_rewards(targets, RAGE_JOAAT("REWARD_ARMOUR"));
g_pointers->m_gta.m_give_pickup_rewards(targets, "REWARD_ARMOUR"_J);
script::get_current()->yield(20ms);
}
void pickup_service::give_health(const int targets) const
{
g_pointers->m_gta.m_give_pickup_rewards(targets, RAGE_JOAAT("REWARD_HEALTH"));
g_pointers->m_gta.m_give_pickup_rewards(targets, "REWARD_HEALTH"_J);
script::get_current()->yield(20ms);
g_pointers->m_gta.m_give_pickup_rewards(targets, RAGE_JOAAT("REWARD_HEALTH"));
g_pointers->m_gta.m_give_pickup_rewards(targets, "REWARD_HEALTH"_J);
script::get_current()->yield(20ms);
}
@ -74,7 +74,7 @@ namespace big
}
}
g_pointers->m_gta.m_give_pickup_rewards(targets, RAGE_JOAAT("REWARD_PARACHUTE"));
g_pointers->m_gta.m_give_pickup_rewards(targets, "REWARD_PARACHUTE"_J);
script::get_current()->yield(20ms);
}
}

View File

@ -277,7 +277,7 @@ namespace big
{
if (veh_spawned)
PED::SET_PED_INTO_VEHICLE(s.m_members[i].handle, s.m_veh_handle, (i - 1));
PED::SET_PED_RELATIONSHIP_GROUP_HASH(s.m_members[i].handle, RAGE_JOAAT("HATES_PLAYER"));
PED::SET_PED_RELATIONSHIP_GROUP_HASH(s.m_members[i].handle, "HATES_PLAYER"_J);
squad_spawner::build_and_perform_sequence(s, i);

View File

@ -42,18 +42,18 @@ namespace big
if (m_initialized || m_loading)
return;
if (!m_script_started && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("tuneables_processing")) > 0)
if (!m_script_started && SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("tuneables_processing"_J) > 0)
continue;
if (!m_script_started)
{
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH(RAGE_JOAAT("tuneables_processing"));
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH("tuneables_processing"_J);
if (SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED(RAGE_JOAAT("tuneables_processing")))
if (SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED("tuneables_processing"_J))
{
uint64_t args[] = {6, 27}; // TODO: check args
int id = SYSTEM::START_NEW_SCRIPT_WITH_NAME_HASH_AND_ARGS(RAGE_JOAAT("tuneables_processing"), (Any*)args, sizeof(args) / 8, DEFAULT_STACK_SIZE);
int id = SYSTEM::START_NEW_SCRIPT_WITH_NAME_HASH_AND_ARGS("tuneables_processing"_J, (Any*)args, sizeof(args) / 8, DEFAULT_STACK_SIZE);
if (!id)
{
@ -61,17 +61,17 @@ namespace big
return;
}
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(RAGE_JOAAT("tuneables_processing"));
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED("tuneables_processing"_J);
m_script_started = true;
g_script_patcher_service->add_patch({RAGE_JOAAT("tuneables_processing"), "tuneables_processing1", "2E ? ? 55 ? ? 38 06", 0, std::vector<uint8_t>(17, 0x0), &m_script_started}); // bool tunables registration hack
if (auto program = gta_util::find_script_program(RAGE_JOAAT("tuneables_processing")))
g_script_patcher_service->add_patch({"tuneables_processing"_J, "tuneables_processing1", "2E ? ? 55 ? ? 38 06", 0, std::vector<uint8_t>(17, 0x0), &m_script_started}); // bool tunables registration hack
if (auto program = gta_util::find_script_program("tuneables_processing"_J))
g_script_patcher_service->on_script_load(program);
}
}
else
{
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("tuneables_processing")) == 0)
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("tuneables_processing"_J) == 0)
{
if (m_tunables.size() == 0)
{
@ -129,4 +129,4 @@ namespace big
m_initialized = true;
m_loading = false;
}
}
}

View File

@ -384,7 +384,7 @@ namespace big
continue;
// Don't save tow hook.
if (is_towed_vehicle && ENTITY::GET_ENTITY_MODEL(object) == RAGE_JOAAT("prop_v_hook_s"))
if (is_towed_vehicle && ENTITY::GET_ENTITY_MODEL(object) == "prop_v_hook_s"_J)
continue;
attached_objects.push_back(get_model_attachment(vehicle, object));

View File

@ -199,7 +199,7 @@ namespace big
{
//LOG(INFO) << "Driver didnt exist, creating one";
m_driver = ped::spawn(PED_TYPE_CIVMALE,
RAGE_JOAAT("s_m_y_devinsec_01"),
"s_m_y_devinsec_01"_J,
-1,
ENTITY::GET_ENTITY_COORDS(m_controlled_vehicle.handle, 1),
0,
@ -400,4 +400,4 @@ namespace big
case eControlledVehSelectionMode::CLOSEST: get_closest_vehicle(); break;
}
}
}
}

View File

@ -4,7 +4,7 @@ namespace big::entity
{
void cage_ped(Ped ped)
{
Hash hash = RAGE_JOAAT("prop_gold_cont_01");
Hash hash = "prop_gold_cont_01"_J;
Vector3 location = ENTITY::GET_ENTITY_COORDS(ped, true);
OBJECT::CREATE_OBJECT(hash, location.x, location.y, location.z - 1.f, true, false, false);

View File

@ -50,41 +50,41 @@ namespace big::fuzzer
{
// TODO: trailer models?
std::vector<rage::joaat_t> models = {
RAGE_JOAAT("player_zero"), // ped
RAGE_JOAAT("kosatka"), // submarine
RAGE_JOAAT("akula"), // heli
RAGE_JOAAT("alkonost"), // plane
RAGE_JOAAT("jetmax"), // boat
RAGE_JOAAT("faggio"), // bike
RAGE_JOAAT("zentorno"), // automobile
RAGE_JOAAT("apa_heist_apart2_door"), // object, pickup, pickup placement, door (?)
RAGE_JOAAT("freight"), // train
"player_zero"_J, // ped
"kosatka"_J, // submarine
"akula"_J, // heli
"alkonost"_J, // plane
"jetmax"_J, // boat
"faggio"_J, // bike
"zentorno"_J, // automobile
"apa_heist_apart2_door"_J, // object, pickup, pickup placement, door (?)
"freight"_J, // train
};
auto info = model_info::get_model(original);
auto veh_model = model_info::get_vehicle_model(original);
if (is_object_model(original))
std::erase(models, RAGE_JOAAT("apa_heist_apart2_door"));
std::erase(models, "apa_heist_apart2_door"_J);
else if (info && info->m_model_type == eModelType::Vehicle)
{
if (veh_model->m_vehicle_type == eVehicleType::VEHICLE_TYPE_BIKE)
std::erase(models, RAGE_JOAAT("faggio"));
std::erase(models, "faggio"_J);
else if (veh_model->m_vehicle_type == eVehicleType::VEHICLE_TYPE_SUBMARINE)
std::erase(models, RAGE_JOAAT("kosatka"));
std::erase(models, "kosatka"_J);
else if (veh_model->m_vehicle_type == eVehicleType::VEHICLE_TYPE_BOAT)
std::erase(models, RAGE_JOAAT("jetmax"));
std::erase(models, "jetmax"_J);
else if (veh_model->m_vehicle_type == eVehicleType::VEHICLE_TYPE_HELI)
std::erase(models, RAGE_JOAAT("akula"));
std::erase(models, "akula"_J);
else if (veh_model->m_vehicle_type == eVehicleType::VEHICLE_TYPE_PLANE)
std::erase(models, RAGE_JOAAT("alkonost"));
std::erase(models, "alkonost"_J);
else if (veh_model->m_vehicle_type == eVehicleType::VEHICLE_TYPE_TRAIN)
std::erase(models, RAGE_JOAAT("freight"));
std::erase(models, "freight"_J);
else
std::erase(models, RAGE_JOAAT("zentorno"));
std::erase(models, "zentorno"_J);
}
else if (info && (info->m_model_type == eModelType::Ped || info->m_model_type == eModelType::OnlineOnlyPed))
std::erase(models, RAGE_JOAAT("player_zero"));
std::erase(models, "player_zero"_J);
return models[rand(models.size())];
}
@ -94,13 +94,13 @@ namespace big::fuzzer
auto info = model_info::get_model(original);
if (is_object_model(original))
return RAGE_JOAAT("urbanweeds01");
return "urbanweeds01"_J;
else if (info && (info->m_model_type == eModelType::Ped || info->m_model_type == eModelType::OnlineOnlyPed))
return RAGE_JOAAT("slod_human");
return "slod_human"_J;
else if (info && info->m_model_type == eModelType::Vehicle)
return RAGE_JOAAT("arbitergt");
return "arbitergt"_J;
else
return rand(2) ? RAGE_JOAAT("urbanweeds01") : RAGE_JOAAT("slod_human");
return rand(2) ? "urbanweeds01"_J : "slod_human"_J;
}
inline std::int16_t get_first_ped_id()
@ -383,4 +383,4 @@ namespace big::fuzzer
return orig;
}
}
}

View File

@ -164,7 +164,7 @@ namespace big::mobile
script::get_current()->yield(100ms);
GtaThread* freemode_thread = gta_util::find_script_thread(RAGE_JOAAT("freemode"));
GtaThread* freemode_thread = gta_util::find_script_thread("freemode"_J);
if (freemode_thread)
{
// regex to find this shit easily

View File

@ -501,7 +501,7 @@ namespace big::ped
if (!ptr)
return;
g_pointers->m_gta.m_send_network_damage(g_player_service->get_self()->get_ped(), ptr, ptr->get_position(), 0, true, RAGE_JOAAT("weapon_explosion"), 10000.0f, 2, 0, (1 << 4), 0, 0, 0, false, false, true, true, nullptr);
g_pointers->m_gta.m_send_network_damage(g_player_service->get_self()->get_ped(), ptr, ptr->get_position(), 0, true, "weapon_explosion"_J, 10000.0f, 2, 0, (1 << 4), 0, 0, 0, false, false, true, true, nullptr);
}
}

View File

@ -4,7 +4,7 @@
namespace big::protection
{
constexpr auto crash_objects = {RAGE_JOAAT("prop_dummy_01"), RAGE_JOAAT("prop_dummy_car"), RAGE_JOAAT("prop_dummy_light"), RAGE_JOAAT("prop_dummy_plane"), RAGE_JOAAT("prop_distantcar_night"), RAGE_JOAAT("prop_distantcar_day"), RAGE_JOAAT("hei_bh1_08_details4_em_night"), RAGE_JOAAT("dt1_18_sq_night_slod"), RAGE_JOAAT("ss1_12_night_slod"), RAGE_JOAAT("hash_b334b5e2_qyquzxq_collision"), RAGE_JOAAT("h4_prop_bush_bgnvla_med_01"), RAGE_JOAAT("h4_prop_bush_bgnvla_lrg_01"), RAGE_JOAAT("h4_prop_bush_buddleia_low_01"), RAGE_JOAAT("h4_prop_bush_ear_aa"), RAGE_JOAAT("h4_prop_bush_ear_ab"), RAGE_JOAAT("h4_prop_bush_fern_low_01"), RAGE_JOAAT("h4_prop_bush_fern_tall_cc"), RAGE_JOAAT("h4_prop_bush_mang_ad"), RAGE_JOAAT("h4_prop_bush_mang_low_aa"), RAGE_JOAAT("h4_prop_bush_mang_low_ab"), RAGE_JOAAT("h4_prop_bush_seagrape_low_01"), RAGE_JOAAT("prop_h4_ground_cover"), RAGE_JOAAT("h4_prop_weed_groundcover_01"), RAGE_JOAAT("h4_prop_grass_med_01"), RAGE_JOAAT("h4_prop_grass_tropical_lush_01"), RAGE_JOAAT("h4_prop_grass_wiregrass_01"), RAGE_JOAAT("h4_prop_weed_01_plant"), RAGE_JOAAT("h4_prop_weed_01_row"), RAGE_JOAAT("urbanweeds02_l1"), RAGE_JOAAT("proc_forest_grass01"), RAGE_JOAAT("prop_small_bushyba"), RAGE_JOAAT("v_res_d_dildo_a"), RAGE_JOAAT("v_res_d_dildo_b"), RAGE_JOAAT("v_res_d_dildo_c"), RAGE_JOAAT("v_res_d_dildo_d"), RAGE_JOAAT("v_res_d_dildo_e"), RAGE_JOAAT("v_res_d_dildo_f"), RAGE_JOAAT("v_res_skateboard"), RAGE_JOAAT("prop_battery_01"), RAGE_JOAAT("prop_barbell_01"), RAGE_JOAAT("prop_barbell_02"), RAGE_JOAAT("prop_bandsaw_01"), RAGE_JOAAT("prop_bbq_3"), RAGE_JOAAT("v_med_curtainsnewcloth2"), RAGE_JOAAT("bh1_07_flagpoles"), RAGE_JOAAT("hash_058a7eb5_deihiws_collision"), RAGE_JOAAT("proc_dry_plants_01"), RAGE_JOAAT("proc_leafyplant_01"), RAGE_JOAAT("proc_grassplantmix_02"), RAGE_JOAAT("proc_dryplantsgrass_01"), RAGE_JOAAT("proc_dryplantsgrass_02"), RAGE_JOAAT("proc_dryplantsgrass_02"), RAGE_JOAAT("proc_grasses01"), RAGE_JOAAT("prop_dryweed_002_a"), RAGE_JOAAT("prop_fernba"), RAGE_JOAAT("prop_weed_001_aa"), RAGE_JOAAT("urbangrnfrnds_01"), RAGE_JOAAT("urbanweeds01"), RAGE_JOAAT("prop_dandy_b"), RAGE_JOAAT("v_proc2_temp"), RAGE_JOAAT("prop_fernbb"), RAGE_JOAAT("proc_drygrassfronds01"), RAGE_JOAAT("prop_log_ae"), RAGE_JOAAT("prop_grass_da"), RAGE_JOAAT("prop_fragtest_cnst_04")};
constexpr auto crash_objects = {"prop_dummy_01"_J, "prop_dummy_car"_J, "prop_dummy_light"_J, "prop_dummy_plane"_J, "prop_distantcar_night"_J, "prop_distantcar_day"_J, "hei_bh1_08_details4_em_night"_J, "dt1_18_sq_night_slod"_J, "ss1_12_night_slod"_J, "hash_b334b5e2_qyquzxq_collision"_J, "h4_prop_bush_bgnvla_med_01"_J, "h4_prop_bush_bgnvla_lrg_01"_J, "h4_prop_bush_buddleia_low_01"_J, "h4_prop_bush_ear_aa"_J, "h4_prop_bush_ear_ab"_J, "h4_prop_bush_fern_low_01"_J, "h4_prop_bush_fern_tall_cc"_J, "h4_prop_bush_mang_ad"_J, "h4_prop_bush_mang_low_aa"_J, "h4_prop_bush_mang_low_ab"_J, "h4_prop_bush_seagrape_low_01"_J, "prop_h4_ground_cover"_J, "h4_prop_weed_groundcover_01"_J, "h4_prop_grass_med_01"_J, "h4_prop_grass_tropical_lush_01"_J, "h4_prop_grass_wiregrass_01"_J, "h4_prop_weed_01_plant"_J, "h4_prop_weed_01_row"_J, "urbanweeds02_l1"_J, "proc_forest_grass01"_J, "prop_small_bushyba"_J, "v_res_d_dildo_a"_J, "v_res_d_dildo_b"_J, "v_res_d_dildo_c"_J, "v_res_d_dildo_d"_J, "v_res_d_dildo_e"_J, "v_res_d_dildo_f"_J, "v_res_skateboard"_J, "prop_battery_01"_J, "prop_barbell_01"_J, "prop_barbell_02"_J, "prop_bandsaw_01"_J, "prop_bbq_3"_J, "v_med_curtainsnewcloth2"_J, "bh1_07_flagpoles"_J, "hash_058a7eb5_deihiws_collision"_J, "proc_dry_plants_01"_J, "proc_leafyplant_01"_J, "proc_grassplantmix_02"_J, "proc_dryplantsgrass_01"_J, "proc_dryplantsgrass_02"_J, "proc_dryplantsgrass_02"_J, "proc_grasses01"_J, "prop_dryweed_002_a"_J, "prop_fernba"_J, "prop_weed_001_aa"_J, "urbangrnfrnds_01"_J, "urbanweeds01"_J, "prop_dandy_b"_J, "v_proc2_temp"_J, "prop_fernbb"_J, "proc_drygrassfronds01"_J, "prop_log_ae"_J, "prop_grass_da"_J, "prop_fragtest_cnst_04"_J};
bool is_crash_object(rage::joaat_t model)
{
if (!model_info::get_model(model))
@ -17,7 +17,7 @@ namespace big::protection
return false;
}
constexpr auto crash_peds = {RAGE_JOAAT("slod_human"), RAGE_JOAAT("slod_small_quadped"), RAGE_JOAAT("slod_large_quadped")};
constexpr auto crash_peds = {"slod_human"_J, "slod_small_quadped"_J, "slod_large_quadped"_J};
bool is_crash_ped(rage::joaat_t model)
{
for (auto iterator : crash_peds)
@ -28,7 +28,7 @@ namespace big::protection
return false;
}
constexpr auto crash_vehicles = {RAGE_JOAAT("arbitergt"), RAGE_JOAAT("astron2"), RAGE_JOAAT("cyclone2"), RAGE_JOAAT("ignus2"), RAGE_JOAAT("s95")};
constexpr auto crash_vehicles = {"arbitergt"_J, "astron2"_J, "cyclone2"_J, "ignus2"_J, "s95"_J};
bool is_crash_vehicle(rage::joaat_t model)
{
for (auto iterator : crash_vehicles)
@ -40,43 +40,43 @@ namespace big::protection
}
constexpr auto valid_player_models = {
RAGE_JOAAT("mp_m_freemode_01"),
RAGE_JOAAT("mp_f_freemode_01"),
RAGE_JOAAT("u_m_m_filmdirector"),
RAGE_JOAAT("player_zero"),
RAGE_JOAAT("player_one"),
RAGE_JOAAT("player_two"),
"mp_m_freemode_01"_J,
"mp_f_freemode_01"_J,
"u_m_m_filmdirector"_J,
"player_zero"_J,
"player_one"_J,
"player_two"_J,
// peyote
RAGE_JOAAT("A_C_Boar"),
RAGE_JOAAT("A_C_Cat_01"),
RAGE_JOAAT("A_C_Cow"),
RAGE_JOAAT("A_C_Coyote"),
RAGE_JOAAT("A_C_Deer"),
RAGE_JOAAT("A_C_Husky"),
RAGE_JOAAT("A_C_MtLion"),
RAGE_JOAAT("A_C_Pig"),
RAGE_JOAAT("A_C_Poodle"),
RAGE_JOAAT("A_C_Pug"),
RAGE_JOAAT("A_C_Rabbit_01"),
RAGE_JOAAT("A_C_Retriever"),
RAGE_JOAAT("A_C_Rottweiler"),
RAGE_JOAAT("A_C_shepherd"),
RAGE_JOAAT("A_C_Westy"),
RAGE_JOAAT("A_C_Chickenhawk"),
RAGE_JOAAT("A_C_Cormorant"),
RAGE_JOAAT("A_C_Crow"),
RAGE_JOAAT("A_C_Hen"),
RAGE_JOAAT("A_C_Pigeon"),
RAGE_JOAAT("A_C_Seagull"),
RAGE_JOAAT("A_C_Dolphin"),
RAGE_JOAAT("A_C_Fish"),
RAGE_JOAAT("A_C_KillerWhale"),
RAGE_JOAAT("A_C_SharkHammer"),
RAGE_JOAAT("A_C_SharkTiger"),
RAGE_JOAAT("A_C_Stingray"),
RAGE_JOAAT("IG_Orleans"),
RAGE_JOAAT("A_C_Chop"),
RAGE_JOAAT("A_C_HumpBack"),
"A_C_Boar"_J,
"A_C_Cat_01"_J,
"A_C_Cow"_J,
"A_C_Coyote"_J,
"A_C_Deer"_J,
"A_C_Husky"_J,
"A_C_MtLion"_J,
"A_C_Pig"_J,
"A_C_Poodle"_J,
"A_C_Pug"_J,
"A_C_Rabbit_01"_J,
"A_C_Retriever"_J,
"A_C_Rottweiler"_J,
"A_C_shepherd"_J,
"A_C_Westy"_J,
"A_C_Chickenhawk"_J,
"A_C_Cormorant"_J,
"A_C_Crow"_J,
"A_C_Hen"_J,
"A_C_Pigeon"_J,
"A_C_Seagull"_J,
"A_C_Dolphin"_J,
"A_C_Fish"_J,
"A_C_KillerWhale"_J,
"A_C_SharkHammer"_J,
"A_C_SharkTiger"_J,
"A_C_Stingray"_J,
"IG_Orleans"_J,
"A_C_Chop"_J,
"A_C_HumpBack"_J,
};
bool is_valid_player_model(rage::joaat_t model)
{
@ -85,4 +85,4 @@ namespace big::protection
return true;
return false;
}
}
}

View File

@ -114,10 +114,10 @@ namespace big::scripts
};
// 1) Get launcher
if (auto launcher = gta_util::find_script_thread(RAGE_JOAAT("am_launcher")))
if (auto launcher = gta_util::find_script_thread("am_launcher"_J))
{
// 2) Force host of launcher
if (!force_host(RAGE_JOAAT("am_launcher")))
if (!force_host("am_launcher"_J))
{
// 2F) Failed to force host of launcher
g_notification_service->push_error("Script", "Cannot force script host of am_launcher");
@ -214,7 +214,7 @@ namespace big::scripts
return arr[0] + (arr[1] << 8) + (arr[2] << 16);
};
if (g.m_mission_creator_thread || SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("creator")) != 0 || SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() || CUTSCENE::IS_CUTSCENE_ACTIVE())
if (g.m_mission_creator_thread || SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("creator"_J) != 0 || SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS() || CUTSCENE::IS_CUTSCENE_ACTIVE())
{
g_notification_service->push_warning("Creator", "Cannot start creator now");
return;
@ -269,4 +269,4 @@ namespace big::scripts
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(hash);
}
}
}

View File

@ -36,9 +36,9 @@ namespace big::session
inline bool join_type(eSessionType session)
{
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH(RAGE_JOAAT("pausemenu_multiplayer"));
SCRIPT::REQUEST_SCRIPT_WITH_NAME_HASH("pausemenu_multiplayer"_J);
while (!SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED(RAGE_JOAAT("pausemenu_multiplayer")))
while (!SCRIPT::HAS_SCRIPT_WITH_NAME_HASH_LOADED("pausemenu_multiplayer"_J))
script::get_current()->yield();
*scr_globals::sctv_spectator.as<int*>() = (session == eSessionType::SC_TV ? 1 : 0); // If SCTV then enable spectator mode
@ -67,14 +67,14 @@ namespace big::session
*scr_globals::session4.as<int*>() = 1;
*scr_globals::session5.as<int*>() = 32;
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0)
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0)
{
*scr_globals::session6.as<int*>() = 1;
script::get_current()->yield(200ms);
*scr_globals::session.as<int*>() = 0;
}
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED(RAGE_JOAAT("pausemenu_multiplayer"));
SCRIPT::SET_SCRIPT_WITH_NAME_HASH_AS_NO_LONGER_NEEDED("pausemenu_multiplayer"_J);
return true;
}
@ -98,7 +98,7 @@ namespace big::session
inline void join_session(const rage::rlSessionInfo& info)
{
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
{
g_notification_service->push_error("RID Joiner", "Player switch in progress, wait a bit.");
return;
@ -107,7 +107,7 @@ namespace big::session
g.session.join_queued = true;
g.session.info = info;
session::join_type({eSessionType::NEW_PUBLIC});
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) == 0)
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) == 0)
{
g.session.join_queued = false;
g_notification_service->push_error("RID Joiner", "Unable to launch maintransition");
@ -117,7 +117,7 @@ namespace big::session
inline void join_by_rockstar_id(uint64_t rid)
{
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
{
g_notification_service->push_error("RID Joiner", "Player switch in progress, wait a bit.");
return;

View File

@ -17,10 +17,9 @@ namespace big
template<size_t N>
constexpr sync_node_id(char const (&pp)[N])
{
id = rage::consteval_joaat(pp);
id = rage::constexpr_joaat(pp);
name = pp;
}
// implicit conversion
constexpr operator Hash() const
{
@ -561,4 +560,4 @@ namespace big
inited = true;
}
};
}
}

View File

@ -12,7 +12,7 @@ namespace big::train
{
for (auto veh : pools::get_all_vehicles())
{
if (veh->m_model_info->m_hash == RAGE_JOAAT("freight"))
if (veh->m_model_info->m_hash == "freight"_J)
return g_pointers->m_gta.m_ptr_to_handle(veh);
}
return 0;
@ -59,4 +59,4 @@ namespace big::train
if (PED::IS_PED_IN_ANY_VEHICLE(PLAYER::PLAYER_PED_ID(), false))
VEHICLE::SET_TRAIN_CRUISE_SPEED(get_closest_train(), value);
}
}
}

View File

@ -44,10 +44,10 @@ namespace big
});
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);
STATS::STAT_SET_INT("MPPLY_BADSPORT_MESSAGE"_J, 0, 1);
STATS::STAT_SET_INT("MPPLY_BECAME_BADSPORT_NUM"_J, 0, 1);
STATS::STAT_SET_FLOAT("MPPLY_OVERALL_BADSPORT"_J, 0, true);
STATS::STAT_SET_BOOL("MPPLY_CHAR_IS_BADSPORT"_J, false, true);
});
components::button("LOAD_MP_MAP"_T, [] {

View File

@ -11,19 +11,19 @@ namespace big
ImGui::PushID(1);
components::button("VIEW_NET_MISSIONS_START_EVENT"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_cp_collection")))
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("am_cp_collection")))
if (scripts::force_host("am_cp_collection"_J))
if (auto script = gta_util::find_script_thread("am_cp_collection"_J))
*script_local(script->m_stack, scr_locals::am_cp_collection::broadcast_idx).at(667).as<int*>() = 0;
});
ImGui::SameLine();
components::button("VIEW_NET_MISSIONS_FINISH_EVENT"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_cp_collection")))
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("am_cp_collection")))
if (scripts::force_host("am_cp_collection"_J))
if (auto script = gta_util::find_script_thread("am_cp_collection"_J))
*script_local(script->m_stack, scr_locals::am_cp_collection::broadcast_idx).at(661).as<int*>() = 0;
});
ImGui::PopID();
components::button("VIEW_NET_MISSIONS_WIN_EVENT"_T, [] {
if (auto checkpoints = gta_util::find_script_thread(RAGE_JOAAT("am_cp_collection")))
if (auto checkpoints = gta_util::find_script_thread("am_cp_collection"_J))
*script_local(checkpoints->m_stack, scr_locals::am_cp_collection::player_broadcast_idx)
.at(((CGameScriptHandlerNetComponent*)checkpoints->m_net_component)->m_local_participant_index, 5)
.at(4)
@ -31,9 +31,9 @@ namespace big
script::get_current()->yield(1s);
if (scripts::force_host(RAGE_JOAAT("am_cp_collection")))
if (scripts::force_host("am_cp_collection"_J))
{
if (auto checkpoints = gta_util::find_script_thread(RAGE_JOAAT("am_cp_collection")))
if (auto checkpoints = gta_util::find_script_thread("am_cp_collection"_J))
{
*script_local(checkpoints->m_stack, scr_locals::am_cp_collection::broadcast_idx).at(708).as<int*>() = 0;
}
@ -52,9 +52,9 @@ namespace big
}
}
if (scripts::force_host(RAGE_JOAAT("am_cp_collection")))
if (scripts::force_host("am_cp_collection"_J))
{
if (auto checkpoints = gta_util::find_script_thread(RAGE_JOAAT("am_cp_collection")))
if (auto checkpoints = gta_util::find_script_thread("am_cp_collection"_J))
{
for (int i = 0; i < 100; i++)
{
@ -65,4 +65,4 @@ namespace big
}
});
}
}
}

View File

@ -9,21 +9,21 @@ namespace big
components::sub_title("CRIMINAL_DAMAGE"_T);
ImGui::PushID(2);
components::button("VIEW_NET_MISSIONS_START_EVENT"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_criminal_damage")))
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("am_criminal_damage")))
if (scripts::force_host("am_criminal_damage"_J))
if (auto script = gta_util::find_script_thread("am_criminal_damage"_J))
*script_local(script->m_stack, scr_locals::am_criminal_damage::broadcast_idx).at(43).as<int*>() = 0;
});
ImGui::SameLine();
components::button("VIEW_NET_MISSIONS_FINISH_EVENT"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_criminal_damage")))
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("am_criminal_damage")))
if (scripts::force_host("am_criminal_damage"_J))
if (auto script = gta_util::find_script_thread("am_criminal_damage"_J))
*script_local(script->m_stack, scr_locals::am_criminal_damage::broadcast_idx).at(39).as<int*>() = 0;
});
ImGui::PopID();
components::button("VIEW_NET_MISSIONS_MAX_SCORE"_T, [] {
if (auto criminal_damage = gta_util::find_script_thread(RAGE_JOAAT("am_criminal_damage")))
if (auto criminal_damage = gta_util::find_script_thread("am_criminal_damage"_J))
*script_local(criminal_damage->m_stack, scr_locals::am_criminal_damage::score_idx).as<int*>() = 999'999'999;
});
}
}
}

View File

@ -34,7 +34,7 @@ namespace big
inline void render_hunt_the_beast_ui()
{
if (auto hunt_the_beast_script_thread = gta_util::find_script_thread(RAGE_JOAAT("am_hunt_the_beast")))
if (auto hunt_the_beast_script_thread = gta_util::find_script_thread("am_hunt_the_beast"_J))
{
auto beast_player_index =
*script_local(hunt_the_beast_script_thread, scr_locals::am_hunt_the_beast::broadcast_idx).at(1).at(6).as<uint32_t*>();
@ -53,7 +53,7 @@ namespace big
static int* num_landmarks = nullptr;
if (!num_landmarks)
num_landmarks = g_tunables_service->get_tunable<int*>(RAGE_JOAAT("HUNT_THE_BEAST_NUMBER_OF_ACTIVE_LANDMARKS"));
num_landmarks = g_tunables_service->get_tunable<int*>("HUNT_THE_BEAST_NUMBER_OF_ACTIVE_LANDMARKS"_J);
if (ImGui::BeginListBox("##beastlandmarks", ImVec2(400, 300)))
{
@ -77,4 +77,4 @@ namespace big
}
}
}
}
}

View File

@ -7,22 +7,22 @@ namespace big
components::sub_title("KING_OF_THE_CASTLE"_T);
ImGui::PushID(3);
components::button("VIEW_NET_MISSIONS_START_EVENT"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_king_of_the_castle")))
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("am_king_of_the_castle")))
if (scripts::force_host("am_king_of_the_castle"_J))
if (auto script = gta_util::find_script_thread("am_king_of_the_castle"_J))
*script_local(script->m_stack, scr_locals::am_king_of_the_castle::broadcast_idx).at(1).at(1).as<int*>() = 0;
});
ImGui::SameLine();
components::button("VIEW_NET_MISSIONS_FINISH_EVENT"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_king_of_the_castle")))
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("am_king_of_the_castle")))
if (scripts::force_host("am_king_of_the_castle"_J))
if (auto script = gta_util::find_script_thread("am_king_of_the_castle"_J))
*script_local(script->m_stack, scr_locals::am_king_of_the_castle::broadcast_idx).at(1).at(3).as<int*>() = 0;
});
ImGui::PopID();
components::button("VIEW_NET_MISSIONS_KOTC_BECOME_THE_KING"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_king_of_the_castle")))
if (scripts::force_host("am_king_of_the_castle"_J))
{
if (auto kotc = gta_util::find_script_thread(RAGE_JOAAT("am_king_of_the_castle")))
if (auto kotc = gta_util::find_script_thread("am_king_of_the_castle"_J))
{
auto kotc_king = script_local(kotc->m_stack, scr_locals::am_king_of_the_castle::broadcast_idx).at(6).at(0, 204).at(74).at(0, 4);
*kotc_king.as<int*>() = 0;
@ -34,9 +34,9 @@ namespace big
});
ImGui::SameLine();
components::button("VIEW_NET_MISSIONS_KOTC_DETHRONE_EVERYONE"_T, [] {
if (scripts::force_host(RAGE_JOAAT("am_king_of_the_castle")))
if (scripts::force_host("am_king_of_the_castle"_J))
{
if (auto kotc = gta_util::find_script_thread(RAGE_JOAAT("am_king_of_the_castle")))
if (auto kotc = gta_util::find_script_thread("am_king_of_the_castle"_J))
{
for (int i = 0; i < *script_local(kotc->m_stack, scr_locals::am_king_of_the_castle::broadcast_idx)
.at(6)
@ -77,4 +77,4 @@ namespace big
}
});
}
}
}

View File

@ -112,16 +112,16 @@ namespace big
ImGui::Separator();
if (check_script(RAGE_JOAAT("am_criminal_damage")))
if (check_script("am_criminal_damage"_J))
render_criminal_damage_ui();
if (check_script(RAGE_JOAAT("am_cp_collection")))
if (check_script("am_cp_collection"_J))
render_cp_collection_ui();
if (check_script(RAGE_JOAAT("am_king_of_the_castle")))
if (check_script("am_king_of_the_castle"_J))
render_king_of_the_castle_ui();
if (check_script(RAGE_JOAAT("am_hunt_the_beast")))
if (check_script("am_hunt_the_beast"_J))
render_hunt_the_beast_ui();
if (!mission_found)
@ -129,4 +129,4 @@ namespace big
ImGui::Text("VIEW_NET_MISSIONS_NO_ACTIVE_MISSION"_T.data());
}
}
}
}

View File

@ -334,12 +334,12 @@ namespace big
{
if (g.session.force_script_host)
g_fiber_pool->queue_job([] {
scripts::force_host(RAGE_JOAAT("freemode"));
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("freemode")); script && script->m_net_component)
scripts::force_host("freemode"_J);
if (auto script = gta_util::find_script_thread("freemode"_J); script && script->m_net_component)
((CGameScriptHandlerNetComponent*)script->m_net_component)->block_host_migration(true);
scripts::force_host(RAGE_JOAAT("fmmc_launcher"));
if (auto script = gta_util::find_script_thread(RAGE_JOAAT("fmmc_launcher")); script && script->m_net_component)
scripts::force_host("fmmc_launcher"_J);
if (auto script = gta_util::find_script_thread("fmmc_launcher"_J); script && script->m_net_component)
((CGameScriptHandlerNetComponent*)script->m_net_component)->block_host_migration(true);
});
}

View File

@ -77,7 +77,7 @@ namespace big
});
ImGui::SameLine();
components::button("JOIN"_T, [session] {
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH(RAGE_JOAAT("maintransition")) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
if (SCRIPT::GET_NUMBER_OF_THREADS_RUNNING_THE_SCRIPT_WITH_THIS_HASH("maintransition"_J) != 0 || STREAMING::IS_PLAYER_SWITCH_IN_PROGRESS())
{
g_notification_service->push_error("JOIN_SESSION"_T.data(), "PLAYER_SWITCH_IN_PROGRESS"_T.data());
return;

View File

@ -45,8 +45,8 @@ namespace big
// clang-format off
ImGui::BeginDisabled(!*g_pointers->m_gta.m_is_session_started ||
gpbd_fm_3->Entries[self::id].BossGoon.Boss != -1 ||
gta_util::find_script_thread(RAGE_JOAAT("fm_mission_controller")) ||
gta_util::find_script_thread(RAGE_JOAAT("fm_mission_controller_2020")));
gta_util::find_script_thread("fm_mission_controller"_J) ||
gta_util::find_script_thread("fm_mission_controller_2020"_J));
// clang-format on
components::command_checkbox<"passive">();
ImGui::EndDisabled();

View File

@ -105,14 +105,14 @@ namespace big
WEAPON::GIVE_DELAYED_WEAPON_TO_PED(self::ped, weapon.m_hash, 9999, false);
}
constexpr auto parachute_hash = RAGE_JOAAT("GADGET_PARACHUTE");
constexpr auto parachute_hash = "GADGET_PARACHUTE"_J;
WEAPON::GIVE_DELAYED_WEAPON_TO_PED(self::ped, parachute_hash, 0, true);
});
ImGui::SameLine();
components::button("REMOVE_CUR_WEAPON"_T, [] {
Hash weaponHash;
WEAPON::GET_CURRENT_PED_WEAPON(self::ped, &weaponHash, 1);
if (weaponHash != RAGE_JOAAT("WEAPON_UNARMED"))
if (weaponHash != "WEAPON_UNARMED"_J)
{
WEAPON::REMOVE_WEAPON_FROM_PED(self::ped, weaponHash);
}

View File

@ -114,19 +114,19 @@ namespace big
components::sub_title("CREATOR_LAUNCH"_T);
ImGui::BeginGroup();
components::button("RACE"_T, [] {
scripts::start_creator_script(RAGE_JOAAT("fm_race_creator"));
scripts::start_creator_script("fm_race_creator"_J);
});
ImGui::SameLine();
components::button("CAPTURE"_T, [] {
scripts::start_creator_script(RAGE_JOAAT("fm_capture_creator"));
scripts::start_creator_script("fm_capture_creator"_J);
});
ImGui::SameLine();
components::button("DEATHMATCH"_T, [] {
scripts::start_creator_script(RAGE_JOAAT("fm_deathmatch_creator"));
scripts::start_creator_script("fm_deathmatch_creator"_J);
});
ImGui::SameLine();
components::button("LTS"_T, [] {
scripts::start_creator_script(RAGE_JOAAT("fm_lts_creator"));
scripts::start_creator_script("fm_lts_creator"_J);
});
ImGui::EndGroup();

View File

@ -35,7 +35,7 @@ namespace big
{
if (selected_ped_weapon_type == SPAWN_PED_ALL_WEAPONS || weapon.m_weapon_type == weapon_type_arr[selected_ped_weapon_type])
{
if ((selected_ped_weapon_hash == 0 || weapon.m_hash == selected_ped_weapon_hash) && weapon.m_hash != RAGE_JOAAT("WEAPON_UNARMED"))
if ((selected_ped_weapon_hash == 0 || weapon.m_hash == selected_ped_weapon_hash) && weapon.m_hash != "WEAPON_UNARMED"_J)
{
WEAPON::GIVE_WEAPON_TO_PED(ped, weapon.m_hash, 9999, false, selected_ped_weapon_hash != 0);
}
@ -132,7 +132,7 @@ namespace big
PED::SET_PED_SEEING_RANGE(ped, 200.0f);
PED::SET_PED_HEARING_RANGE(ped, 200.0f);
PED::SET_PED_ID_RANGE(ped, 200.0f);
PED::SET_PED_FIRING_PATTERN(ped, RAGE_JOAAT("FIRING_PATTERN_FULL_AUTO"));
PED::SET_PED_FIRING_PATTERN(ped, "FIRING_PATTERN_FULL_AUTO"_J);
PED::SET_PED_SHOOT_RATE(ped, 150);
if (!clone)
@ -177,7 +177,7 @@ namespace big
PED::SET_PED_KEEP_TASK(ped, true);
PED::SET_BLOCKING_OF_NON_TEMPORARY_EVENTS(ped, true);
TASK::TASK_COMBAT_PED(ped, player_ped, 0, 16);
PED::SET_PED_RELATIONSHIP_GROUP_HASH(ped, RAGE_JOAAT("HATES_PLAYER"));
PED::SET_PED_RELATIONSHIP_GROUP_HASH(ped, "HATES_PLAYER"_J);
PED::SET_PED_ALERTNESS(ped, 3);
}