diff --git a/Source/Core/Core/PrimeHack/AddressDBInit.cpp b/Source/Core/Core/PrimeHack/AddressDBInit.cpp index 3886e3d763..b3e3206dc9 100644 --- a/Source/Core/Core/PrimeHack/AddressDBInit.cpp +++ b/Source/Core/Core/PrimeHack/AddressDBInit.cpp @@ -55,6 +55,7 @@ void init_db(AddressDB& addr_db) { addr_db.register_address(Game::PRIME_1_GCN, "fov_tp_offset", -0x7fec, -0x7fe4); addr_db.register_address(Game::PRIME_1_GCN, "gun_pos", 0x8045bce8, 0x803e3c14); addr_db.register_address(Game::PRIME_1_GCN, "tweak_player", 0x8045c208, 0x803e4134); + addr_db.register_address(Game::PRIME_1_GCN, "grapple_swing_speed_offset", 0x2b0, 0x2b0); addr_db.register_address(Game::PRIME_1_GCN, "crosshair_color", 0x8045b678, 0x803e35a4); addr_db.register_address(Game::PRIME_1_GCN, "transform_offset", 0x34, 0x34); addr_db.register_dynamic_address(Game::PRIME_1_GCN, "world", "state_manager", {mrt1(0x850), rt0}); @@ -76,6 +77,7 @@ void init_db(AddressDB& addr_db) { addr_db.register_address(Game::PRIME_1_GCN_R1, "fov_tp_offset", -0x7fec); addr_db.register_address(Game::PRIME_1_GCN_R1, "gun_pos", 0x8045bec8); // [r13-5ecc]+4c addr_db.register_address(Game::PRIME_1_GCN_R1, "tweak_player", 0x8045c3e8); + addr_db.register_address(Game::PRIME_1_GCN_R2, "grapple_swing_speed_offset", 0x2b0); addr_db.register_address(Game::PRIME_1_GCN_R1, "crosshair_color", 0x8045b698); // [r13 - 5ec0]+1c0 addr_db.register_address(Game::PRIME_1_GCN_R1, "transform_offset", 0x34); addr_db.register_dynamic_address(Game::PRIME_1_GCN_R1, "world", "state_manager", {mrt1(0x850), rt0}); @@ -97,6 +99,7 @@ void init_db(AddressDB& addr_db) { addr_db.register_address(Game::PRIME_1_GCN_R2, "fov_tp_offset", -0x7fec); addr_db.register_address(Game::PRIME_1_GCN_R2, "gun_pos", 0x8045cd48); // [r13-5ecc]+4c addr_db.register_address(Game::PRIME_1_GCN_R2, "tweak_player", 0x8045d268); + addr_db.register_address(Game::PRIME_1_GCN_R2, "grapple_swing_speed_offset", 0x2b0); addr_db.register_address(Game::PRIME_1_GCN_R2, "crosshair_color", 0x8045c6d8); // [r13 - 5ec0]+1c0 addr_db.register_address(Game::PRIME_1_GCN_R2, "transform_offset", 0x34); addr_db.register_dynamic_address(Game::PRIME_1_GCN_R2, "world", "state_manager", {mrt1(0x850), rt0}); diff --git a/Source/Core/Core/PrimeHack/Mods/FpsControls.cpp b/Source/Core/Core/PrimeHack/Mods/FpsControls.cpp index 2350e40514..a2fed68f91 100644 --- a/Source/Core/Core/PrimeHack/Mods/FpsControls.cpp +++ b/Source/Core/Core/PrimeHack/Mods/FpsControls.cpp @@ -398,6 +398,7 @@ void FpsControls::run_mod_mp1_gc(Region region) { calculate_pitchyaw_delta(); LOOKUP(tweak_player); + LOOKUP(grapple_swing_speed_offset); LOOKUP_DYN(firstperson_pitch); LOOKUP_DYN(angular_vel); writef32(FpsControls::pitch, firstperson_pitch); @@ -410,6 +411,7 @@ void FpsControls::run_mod_mp1_gc(Region region) { writef32(0, (tweak_player + 0x84) + i * 4); writef32(0, (tweak_player + 0x84) + i * 4 - 32); } + writef32(1000.f, tweak_player + grapple_swing_speed_offset); LOOKUP_DYN(freelook_rotation_speed); LOOKUP_DYN(air_transitional_friction);