Update for b3717 (#169)
Nightly Build / Check Recent Commit (push) Has been cancelled
Nightly Build / Build Nightly (push) Has been cancelled
Nightly Build / Recreate Release (push) Has been cancelled

This commit is contained in:
Mr-X-GTA
2025-12-13 20:09:23 +01:00
committed by GitHub
parent ef587b3dfb
commit f82d930d8b
12 changed files with 86 additions and 85 deletions
+1 -1
View File
@@ -3,7 +3,7 @@ include(FetchContent)
FetchContent_Declare(
gtav_classes
GIT_REPOSITORY https://github.com/Mr-X-GTA/GTAV-Classes-1.git
GIT_TAG 98d4999a7f893d1ebbed7a4852599895afeadef1
GIT_TAG b74e688860b0df47d7ec87c1eb6227ee853fc90a
GIT_PROGRESS TRUE
CONFIGURE_COMMAND ""
BUILD_COMMAND ""
@@ -32,11 +32,11 @@ namespace big
}
else if (scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.Index != eSimpleInteriorIndex::SIMPLE_INTERIOR_INVALID)
{
*scr_globals::interiors.at(3824).as<Player*>() =
*scr_globals::interiors.at(3891).as<Player*>() =
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.Owner;
*scr_globals::interiors.at(4178).as<eSimpleInteriorIndex*>() =
*scr_globals::interiors.at(4248).as<eSimpleInteriorIndex*>() =
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.Index;
*scr_globals::interiors.at(4177).as<bool*>() = true;
*scr_globals::interiors.at(4247).as<bool*>() = true;
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[self::id].SimpleInteriorData.InteriorSubtype =
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[id].SimpleInteriorData.InteriorSubtype;
}
+2 -2
View File
@@ -14,14 +14,14 @@ namespace big
*scr_globals::disable_wasted_sound.as<bool*>() = true;
// triggers respawn instantly upon death, has no effect if not respawning so no need to check if the player's dead
misc::set_bit(&(*scr_globals::freemode_properties.at(1761).at(756).as<int*>()), 1); // Update: freemode -> KILL_STRIP_H -> Above that = "!IS_BIT_SET(global, 2)"
misc::set_bit(&(*scr_globals::freemode_properties.at(1762).at(756).as<int*>()), 1); // Update: freemode -> KILL_STRIP_H -> Above that = "!IS_BIT_SET(global, 2)"
}
virtual void on_disable() override
{
*scr_globals::disable_wasted_sound.as<bool*>() = false;
misc::clear_bit(&(*scr_globals::freemode_properties.at(1761).at(756).as<int*>()), 1);
misc::clear_bit(&(*scr_globals::freemode_properties.at(1762).at(756).as<int*>()), 1);
}
};
+2 -2
View File
@@ -14,7 +14,7 @@ namespace big
virtual void on_tick() override
{
if (g.self.ghost_org)
MISC::SET_BIT(scr_globals::freemode_global.at(4704).as<int*>(), 2);
MISC::SET_BIT(scr_globals::freemode_global.at(3758).as<int*>(), 2);
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[self::id].OffRadarActive = true;
*scr_globals::freemode_properties.at(58).as<int*>() = NETWORK::GET_NETWORK_TIME() + 1;
}
@@ -22,7 +22,7 @@ namespace big
virtual void on_disable() override
{
if (!g.self.ghost_org)
MISC::CLEAR_BIT(scr_globals::freemode_global.at(4704).as<int*>(), 2);
MISC::CLEAR_BIT(scr_globals::freemode_global.at(3758).as<int*>(), 2);
scr_globals::globalplayer_bd.as<GlobalPlayerBD*>()->Entries[self::id].OffRadarActive = false;
}
};
+1 -1
View File
@@ -15,7 +15,7 @@ namespace big
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({"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({"freemode"_J, "freemode8", "2D 00 CF 00 00", 5, {0x2E, 0x00, 0x00}, &g.session.block_ceo_raids});
g_script_patcher_service->add_patch({"freemode"_J, "freemode8", "2D 00 D0 00 00 5D", 5, {0x2E, 0x00, 0x00}, &g.session.block_ceo_raids});
g_script_patcher_service->add_patch({"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({"freemode"_J, "stop relinquishing invalid CEO slots", "2D 01 05 00 00 38 00 2C ? ? ? 39 03 38 03 2C ? ? ? 56", 5, {0x2E, 0x01, 0x00}, &g.session.block_ceo_creation}); // stop relinquishing invalid CEO slots
+37 -37
View File
@@ -4,16 +4,16 @@
namespace big::scr_globals
{
static inline const script_global gsbd(2648929);
static inline const script_global gsbd_kicking(1876908);
static inline const script_global gsbd_fm_events(1918241);
static inline const script_global gsbd(2649159);
static inline const script_global gsbd_kicking(1877125);
static inline const script_global gsbd_fm_events(1922477);
static inline const script_global globalplayer_bd(2658016);
static inline const script_global gpbd_fm_3(1888737);
static inline const script_global gpbd_fm_1(1845225);
static inline const script_global interiors(1945923);
static inline const script_global globalplayer_bd(2658291);
static inline const script_global gpbd_fm_3(1892653);
static inline const script_global gpbd_fm_1(1845250);
static inline const script_global interiors(1950198);
static inline const script_global launcher_global(2699544);
static inline const script_global launcher_global(2699984);
// creator globals usually remain the same after updates
static inline const script_global terminate_creator(1574607); // NETWORK::NETWORK_BAIL(1, 0, 0); fm_*_creator
@@ -21,84 +21,84 @@ namespace big::scr_globals
static inline const script_global mission_creator_radar_follows_camera(2621443);
static inline const script_global mission_creator_exited(1574530);
static inline const script_global transition_state(1575014);
static inline const script_global sctv_spectator(2698102); // pausemenu_multiplayer function 0xE49C42EC
static inline const script_global transition_state(1575018);
static inline const script_global sctv_spectator(2698539); // pausemenu_multiplayer function 0xE49C42EC
static inline const script_global vehicle_global(1586540);
static inline const script_global vehicle_global(1583765);
static inline const script_global freemode_properties(2672964);
static inline const script_global freemode_global(2740054);
static inline const script_global freemode_properties(2673271);
static inline const script_global freemode_global(2733002);
static inline const script_global spawn_global(2696579);
static inline const script_global spawn_global(2697006);
static inline const script_global transaction_overlimit(4538671);
static inline const script_global transaction_overlimit(4516902);
static inline const script_global stats(2359296);
static inline const script_global session(1574589);
static inline const script_global session2(1575038);
static inline const script_global session3(33282);
static inline const script_global session2(1575042);
static inline const script_global session3(33776);
static inline const script_global session4(1574943);
static inline const script_global session5(1575013);
static inline const script_global session6(2696496); // freemode -> if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() && !NETWORK::NETWORK_IS_ACTIVITY_SESSION())
static inline const script_global session5(1575017);
static inline const script_global session6(2696922); // freemode -> if (NETWORK::NETWORK_IS_GAME_IN_PROGRESS() && !NETWORK::NETWORK_IS_ACTIVITY_SESSION())
static inline const script_global interaction_menu_access(2711261); // am_pi_menu -> if (NETWORK::NETWORK_IS_SIGNED_ONLINE()) first global after that
static inline const script_global interaction_menu_access(2712075); // am_pi_menu -> if (NETWORK::NETWORK_IS_SIGNED_ONLINE()) first global after that
static inline const script_global disable_wasted_sound(2708261); // freemode -> AUDIO::PLAY_SOUND_FRONTEND(-1, "Wasted", "POWER_PLAY_General_Soundset", true);
static inline const script_global disable_wasted_sound(2708893); // freemode -> AUDIO::PLAY_SOUND_FRONTEND(-1, "Wasted", "POWER_PLAY_General_Soundset", true);
static inline const script_global passive(1574582); // if (((!PED::IS_PED_IN_ANY_VEHICLE(PLAYER::GET_PLAYER_PED(bVar1), false) || Global_
static inline const script_global property_garage(1940049);
static inline const script_global property_names(1312335);
static inline const script_global property_garage(1944263);
static inline const script_global property_names(1312440);
static inline const script_global reset_clothing(104448); // freemode 75, &iLocal_.*, 2\);
static inline const script_global reset_clothing(105008); // freemode 75, &iLocal_.*, 2\);
static inline const script_global gun_van(1952452); // return -29.532f, 6435.136f, 31.162f;
static inline const script_global gun_van(1956819); // return -29.532f, 6435.136f, 31.162f;
static inline const script_global disable_phone(21205);
static inline const script_global disable_phone(21593);
static inline const script_global should_reset_fm_weapons(1578044);
static inline const script_global should_reset_fm_weapons(1576473);
}
namespace big::scr_locals
{
namespace am_hunt_the_beast
{
constexpr static auto broadcast_idx = 624; // (bParam0) != 0;
constexpr static auto player_broadcast_idx = 2608; // if (NETWORK::PARTICIPANT_ID_TO_INT() != -1)
constexpr static auto broadcast_idx = 626; // (bParam0) != 0;
constexpr static auto player_broadcast_idx = 2610; // if (NETWORK::PARTICIPANT_ID_TO_INT() != -1)
}
namespace am_criminal_damage
{
constexpr static auto broadcast_idx = 119; // /* Tunable: CRIMINAL_DAMAGE_DISABLE_SHARE_CASH */)
constexpr static auto score_idx = 114; // AUDIO::PLAY_SOUND_FRONTEND(-1, "Criminal_Damage_High_Value", "GTAO_FM_Events_Soundset", false);
constexpr static auto broadcast_idx = 121; // /* Tunable: CRIMINAL_DAMAGE_DISABLE_SHARE_CASH */)
constexpr static auto score_idx = 116; // AUDIO::PLAY_SOUND_FRONTEND(-1, "Criminal_Damage_High_Value", "GTAO_FM_Events_Soundset", false);
}
namespace am_cp_collection
{
constexpr static auto broadcast_idx = 824; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
constexpr static auto player_broadcast_idx = 3465; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
constexpr static auto broadcast_idx = 826; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
constexpr static auto player_broadcast_idx = 3467; // bVar1 = NETWORK::NETWORK_GET_PLAYER_INDEX(PLAYER::INT_TO_PARTICIPANTINDEX(iVar0));
}
namespace am_king_of_the_castle
{
constexpr static auto broadcast_idx = 102; // KING_OF_THE_CASTLE_EVENT_TIME_LIMIT
constexpr static auto broadcast_idx = 104; // KING_OF_THE_CASTLE_EVENT_TIME_LIMIT
}
namespace fmmc_launcher
{
constexpr static auto broadcast_idx = 12827; // if (NETWORK::NETWORK_IS_PLAYER_ACTIVE(PLAYER::INT_TO_PLAYERINDEX(Global_
constexpr static auto broadcast_idx = 12888; // if (NETWORK::NETWORK_IS_PLAYER_ACTIVE(PLAYER::INT_TO_PLAYERINDEX(Global_
}
namespace fm_mission_controller
{
constexpr static auto mission_controller_wanted_state_flags = 60892; // if (PLAYER::GET_PLAYER_WANTED_LEVEL(bLocal_
constexpr static auto mission_controller_wanted_state_flags = 60898; // if (PLAYER::GET_PLAYER_WANTED_LEVEL(bLocal_
}
namespace freemode
{
// first uLocal_ in this function call
// func_\d+\((&.Local_\d+(, )?){9}\);
inline static script_local mobile(19361);
inline static script_local mobile(19547);
}
}
+2 -1
View File
@@ -405,13 +405,14 @@ namespace big
LOG_FIELD_B(CTrainGameStateDataNode, m_direction);
LOG_FIELD_B(CTrainGameStateDataNode, m_has_passenger_carriages);
LOG_FIELD_B(CTrainGameStateDataNode, m_render_derailed);
LOG_FIELD_B(CTrainGameStateDataNode, unk_00C6);
LOG_FIELD_B(CTrainGameStateDataNode, unk_00C7);
LOG_FIELD_B(CTrainGameStateDataNode, new_00C8);
LOG_FIELD_NI(CTrainGameStateDataNode, m_engine_id);
LOG_FIELD_C(CTrainGameStateDataNode, m_train_config_index);
LOG_FIELD_C(CTrainGameStateDataNode, m_carriage_config_index);
LOG_FIELD_C(CTrainGameStateDataNode, m_track_id);
LOG_FIELD(CTrainGameStateDataNode, m_distance_from_engine);
LOG_FIELD(CTrainGameStateDataNode, new_00D4);
LOG_FIELD(CTrainGameStateDataNode, m_cruise_speed);
LOG_FIELD_NI(CTrainGameStateDataNode, m_linked_to_backward_id);
LOG_FIELD_NI(CTrainGameStateDataNode, m_linked_to_forward_id);
+6 -6
View File
@@ -3,7 +3,7 @@
#include "gta_pointers_layout_info.hpp"
#include "sc_pointers_layout_info.hpp"
#define GTA_VERSION_TARGET "1.71-3586.0"
#define GTA_VERSION_TARGET "1.72-3717.0"
namespace big
{
@@ -636,19 +636,19 @@ namespace big
g_pointers->m_gta.m_script_vm = ptr.add(1).rip().as<functions::script_vm>();
}
},
// Handle Join Request (partially obfuscated now, crutches deployed)
// Handle Join Request
{
"HJR",
"4C 8B F1 45 33 ED 48 8D 4D",
"48 81 EC E8 03 00 00 4C 8B F1",
[](memory::handle ptr)
{
g_pointers->m_gta.m_handle_join_request = ptr.sub(0x2D).as<PVOID>();
g_pointers->m_gta.m_handle_join_request = ptr.sub(0x26).as<PVOID>();
}
},
// Write Join Response Data
{
"WJRD",
"E8 ? ? ? ? 41 8B DF 84 C0 74 06",
"E8 ? ? ? ? 84 C0 75 0A 44 89 23",
[](memory::handle ptr)
{
g_pointers->m_gta.m_write_join_response_data = ptr.add(1).rip().as<functions::write_join_response_data>();
@@ -1762,7 +1762,7 @@ namespace big
// Session Request Patch
{
"SRP",
"45 38 8E 48 B7 00 00 0F 85 43 FE FF FF",
"41 38 9E 98 B7 00 00 0F 85 6A FE FF FF",
[](memory::handle ptr)
{
g_pointers->m_gta.m_session_request_patch = ptr.add(0x14).as<PVOID>();
+2 -2
View File
@@ -157,7 +157,7 @@ namespace big
{
case 12: //Hangar
{
auto hangar_id = *scr_globals::gpbd_fm_1.at(self::id, 874).at(260).at(298).as<PINT>();
auto hangar_id = *scr_globals::gpbd_fm_1.at(self::id, 880).at(260).at(304).as<PINT>();
switch (hangar_id)
{
case 1: return HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION("MP_HANGAR_1"); //LSIA Hangar 1
@@ -170,7 +170,7 @@ namespace big
}
case 13: //Facility
{
auto facility_id = *scr_globals::gpbd_fm_1.at(self::id, 874).at(260).at(305).as<PINT>();
auto facility_id = *scr_globals::gpbd_fm_1.at(self::id, 880).at(260).at(311).as<PINT>();
switch (facility_id)
{
case 1: return HUD::GET_FILENAME_FOR_AUDIO_CONVERSATION("MP_DBASE_1"); //Grand Senora Desert Facility
+21 -21
View File
@@ -23,7 +23,7 @@ namespace big::mobile
inline int get_current_personal_vehicle()
{
return *scr_globals::stats.at(0, 5571).at(681).at(2).as<int*>();
return *scr_globals::stats.at(0, 5574).at(681).at(2).as<int*>();
}
}
@@ -31,27 +31,27 @@ namespace big::mobile
{
inline void request_ammo_drop()
{
*scr_globals::freemode_global.at(918).as<int*>() = 1;
*scr_globals::freemode_global.at(538).as<int*>() = 1;
}
inline void request_boat_pickup()
{
*scr_globals::freemode_global.at(919).as<int*>() = 1;
*scr_globals::freemode_global.at(539).as<int*>() = 1;
}
inline void request_helicopter_pickup()
{
*scr_globals::freemode_global.at(920).as<int*>() = 1;
*scr_globals::freemode_global.at(540).as<int*>() = 1;
}
inline void request_backup_helicopter()
{
*scr_globals::freemode_global.at(4524).as<int*>() = 1;
*scr_globals::freemode_global.at(3578).as<int*>() = 1;
}
inline void request_airstrike()
{
*scr_globals::freemode_global.at(4525).as<int*>() = 1;
*scr_globals::freemode_global.at(3579).as<int*>() = 1;
}
}
@@ -90,12 +90,12 @@ namespace big::mobile
{
inline void request_bullshark_testosterone()
{
*scr_globals::freemode_global.at(926).as<int*>() = 1;
*scr_globals::freemode_global.at(546).as<int*>() = 1;
}
inline void request_ballistic_armor() //i think this is a ceo ability atleast?
{
*scr_globals::freemode_global.at(928).as<int*>() = 1;
*scr_globals::freemode_global.at(548).as<int*>() = 1;
}
}
@@ -103,32 +103,32 @@ namespace big::mobile
{
inline void request_avenger()
{
*scr_globals::freemode_global.at(965).as<int*>() = 1;
*scr_globals::freemode_global.at(585).as<int*>() = 1;
}
inline void request_kosatka()
{
*scr_globals::freemode_global.at(992).as<int*>() = 1;
*scr_globals::freemode_global.at(613).as<int*>() = 1;
}
inline void request_mobile_operations_center()
{
*scr_globals::freemode_global.at(957).as<int*>() = 1;
*scr_globals::freemode_global.at(577).as<int*>() = 1;
}
inline void request_terrorbyte()
{
*scr_globals::freemode_global.at(970).as<int*>() = 1;
*scr_globals::freemode_global.at(591).as<int*>() = 1;
}
inline void request_acidlab()
{
*scr_globals::freemode_global.at(971).as<int*>() = 1;
*scr_globals::freemode_global.at(592).as<int*>() = 1;
}
inline void request_acidlab_bike()
{
*scr_globals::freemode_global.at(1026).as<int*>() = 1;
*scr_globals::freemode_global.at(647).as<int*>() = 1;
}
}
@@ -152,7 +152,7 @@ namespace big::mobile
inline void summon_vehicle_by_index(int veh_idx)
{
if (*scr_globals::freemode_global.at(1017).as<int*>() != -1)
if (*scr_globals::freemode_global.at(638).as<int*>() != -1)
return g_notification_service.push_warning("VEHICLE"_T.data(), "VEHICLE_MECHANIC_BUSY"_T.data());
if (g.clone_pv.spawn_inside && self::veh)
@@ -167,11 +167,11 @@ namespace big::mobile
// only do this when spawn inside is enabled otherwise the vehicle will spawn relatively far away from players
if (g.clone_pv.spawn_inside)
{
*scr_globals::freemode_global.at(969).as<int*>() = 1; // disable vehicle node distance check
*scr_globals::freemode_global.at(590).as<int*>() = 1; // disable vehicle node distance check
}
*scr_globals::freemode_global.at(955).as<int*>() = 1; // tell freemode to spawn our vehicle
*scr_globals::freemode_global.at(1020).as<int*>() = 0; // required
*scr_globals::freemode_global.at(1017).as<int*>() = veh_idx;
*scr_globals::freemode_global.at(575).as<int*>() = 1; // tell freemode to spawn our vehicle
*scr_globals::freemode_global.at(641).as<int*>() = 0; // required
*scr_globals::freemode_global.at(638).as<int*>() = veh_idx;
script::get_current()->yield(100ms);
@@ -186,7 +186,7 @@ namespace big::mobile
}
// blocking call till vehicle is delivered
notify::busy_spinner("Delivering vehicle...", scr_globals::freemode_global.at(1017).as<int*>(), -1);
notify::busy_spinner("Delivering vehicle...", scr_globals::freemode_global.at(638).as<int*>(), -1);
if (g.clone_pv.spawn_inside)
{
@@ -199,7 +199,7 @@ namespace big::mobile
{
inline void request_taxi()
{
*scr_globals::freemode_global.at(880).as<int*>() = 1;
*scr_globals::freemode_global.at(509).as<int*>() = 1;
}
inline void request_gun_van()
+5 -5
View File
@@ -57,26 +57,26 @@ namespace big::outfit
// usually each update increases 1//
inline char* get_slot_name_address(int slot)
{
return scr_globals::stats.at(0, 5571).at(681).at(2463).at(slot, 8).as<char*>();
return scr_globals::stats.at(0, 5574).at(681).at(2466).at(slot, 8).as<char*>();
}
inline int* get_component_drawable_id_address(int slot, int id)
{
return scr_globals::stats.at(0, 5571).at(681).at(1339).at(slot, 13).at(id, 1).as<int*>();
return scr_globals::stats.at(0, 5574).at(681).at(1342).at(slot, 13).at(id, 1).as<int*>();
}
inline int* get_component_texture_id_address(int slot, int id)
{
return scr_globals::stats.at(0, 5571).at(681).at(1613).at(slot, 13).at(id, 1).as<int*>();
return scr_globals::stats.at(0, 5574).at(681).at(1616).at(slot, 13).at(id, 1).as<int*>();
}
inline int* get_prop_drawable_id_address(int slot, int id)
{
return scr_globals::stats.at(0, 5571).at(681).at(1887).at(slot, 10).at(id, 1).as<int*>();
return scr_globals::stats.at(0, 5574).at(681).at(1890).at(slot, 10).at(id, 1).as<int*>();
}
inline int* get_prop_texture_id_address(int slot, int id)
{
return scr_globals::stats.at(0, 5571).at(681).at(2098).at(slot, 10).at(id, 1).as<int*>();
return scr_globals::stats.at(0, 5574).at(681).at(2101).at(slot, 10).at(id, 1).as<int*>();
}
}
+4 -4
View File
@@ -66,8 +66,8 @@ namespace big::session
{
int idx = index / 32;
int bit = index % 32;
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(397).at(idx, 1).as<int*>(), bit);
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(387).at(idx, 1).as<int*>(), bit);
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(402).at(idx, 1).as<int*>(), bit);
misc::set_bit(scr_globals::gsbd_fm_events.at(11).at(392).at(idx, 1).as<int*>(), bit);
misc::set_bit((int*)&scr_globals::gpbd_fm_3.as<GPBD_FM_3*>()->Entries[self::id].BossGoon.ActiveFreemodeEvents[idx], bit);
}
@@ -75,8 +75,8 @@ namespace big::session
{
int idx = index / 32;
int bit = index % 32;
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(397).at(idx, 1).as<int*>(), bit);
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(387).at(idx, 1).as<int*>(), bit);
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(402).at(idx, 1).as<int*>(), bit);
misc::clear_bit(scr_globals::gsbd_fm_events.at(11).at(392).at(idx, 1).as<int*>(), bit);
misc::clear_bit((int*)&scr_globals::gpbd_fm_3.as<GPBD_FM_3*>()->Entries[self::id].BossGoon.ActiveFreemodeEvents[idx], bit);
}