Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mumble-voip/mumble.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavide Beatrici <git@davidebeatrici.dev>2021-03-15 09:47:26 +0300
committerDavide Beatrici <git@davidebeatrici.dev>2021-03-15 09:47:26 +0300
commite152fa7603976785b130b829cccf47b35e329fdc (patch)
treeb0774bb25d907a8d70004fa3d3369a4c427c7444
parentf5177b8bfac723c950e78a1143e5633c275b926c (diff)
FIX(positional-audio): Update Among Us plugin to work with v2021.3.5s
https://store.steampowered.com/news/app/945360/view/3050597789009577255
-rw-r--r--plugins/amongus/Game.cpp5
-rw-r--r--plugins/amongus/structs.h28
2 files changed, 18 insertions, 15 deletions
diff --git a/plugins/amongus/Game.cpp b/plugins/amongus/Game.cpp
index 5a41e72d1..decf24576 100644
--- a/plugins/amongus/Game.cpp
+++ b/plugins/amongus/Game.cpp
@@ -18,11 +18,10 @@ Game::Game(const procid_t id, const std::string name) : m_ok(false), m_proc(id,
return;
}
- // 74 39 jz short loc_????????
+ // 75 58 jnz short loc_????????
// A1 ?? ?? ?? ?? mov eax, AmongUsClient_c **
// 8B 40 5C mov eax, [eax+5Ch]
- // 8B 00 mov eax, [eax]
- const std::vector< uint8_t > clientPattern = { 0x74, 0x39, 0xA1, '?', '?', '?', '?', 0x8B, 0x40, 0x5C, 0x8B, 0x00 };
+ const std::vector< uint8_t > clientPattern = { 0x75, 0x58, 0xA1, '?', '?', '?', '?', 0x8B, 0x40, 0x5C };
m_client = m_proc.findPattern(clientPattern, iter->second);
if (!m_client) {
diff --git a/plugins/amongus/structs.h b/plugins/amongus/structs.h
index 02e0d3af0..0f02a5bab 100644
--- a/plugins/amongus/structs.h
+++ b/plugins/amongus/structs.h
@@ -9,9 +9,6 @@
#include <cstdint>
typedef uint32_t ptr_t;
-typedef int32_t sptr_t;
-
-typedef ptr_t il2cpp_array_size_t; // Originally uintptr_t
enum class DisconnectReason {
ExitGame = 0x0,
@@ -48,7 +45,7 @@ struct Il2CppType {
uint32_t bits;
};
-struct Il2CppClass_1 {
+struct Il2CppClass_0 {
ptr_t image;
ptr_t gcDesc;
ptr_t name;
@@ -69,7 +66,6 @@ struct Il2CppClass_1 {
ptr_t methods;
ptr_t nestedTypes;
ptr_t implementedInterfaces;
- ptr_t interfaceOffsets;
};
struct UnityEngine_Vector2_Fields {
@@ -93,7 +89,7 @@ struct String_o {
};
struct UnityEngine_Object_Fields {
- sptr_t cachedPtr;
+ ptr_t cachedPtr;
};
struct InnerNet_InnerNetClient_Fields : UnityEngine_Object_Fields {
@@ -101,11 +97,13 @@ struct InnerNet_InnerNetClient_Fields : UnityEngine_Object_Fields {
uint32_t netIdCnt;
float timer;
ptr_t spawnableObjects;
+ ptr_t nonAddressableSpawnableObjects;
bool inOnlineScene;
ptr_t destroyedObjects;
ptr_t allObjects;
ptr_t allObjectsFast;
- ptr_t streams;
+ ptr_t messageWriterArray;
+ int32_t unknown;
ptr_t networkAddress;
int32_t networkPort;
ptr_t connection;
@@ -155,13 +153,13 @@ struct CustomNetworkTransform_o {
};
struct AmongUsClient_Fields : InnerNet_InnerNetClient_Fields {
- int32_t autoOpenStore;
GameMode gameMode;
ptr_t onlineScene;
ptr_t mainMenuScene;
ptr_t gameDataPrefab;
ptr_t playerPrefab;
ptr_t shipPrefabs;
+ ptr_t nonAddressableShipPrefabs;
int32_t tutorialMapId;
float spawnRadius;
DiscoverState discoverState;
@@ -174,7 +172,8 @@ struct AmongUsClient_StaticFields {
};
struct AmongUsClient_c {
- Il2CppClass_1 _1;
+ Il2CppClass_0 _0;
+ ptr_t interfaceOffsets;
ptr_t staticFields;
};
@@ -199,18 +198,21 @@ struct PlayerControl_Fields : InnerNet_InnerNetObject_Fields {
ptr_t nameText;
ptr_t lightPrefab;
ptr_t myLight;
+ ptr_t textTranslator;
ptr_t collider;
ptr_t myPhysics;
ptr_t netTransform;
ptr_t currentPet;
ptr_t hatRenderer;
- ptr_t myRend;
- ptr_t hitBuffer;
+ ptr_t spriteRenderer;
+ ptr_t colliderArray;
ptr_t myTasks;
ptr_t scannerAnims;
ptr_t scannersImages;
ptr_t closest;
bool isNew;
+ bool isDummy;
+ bool notRealPlayer;
ptr_t cache;
ptr_t itemsInRange;
ptr_t newItemsInRange;
@@ -225,7 +227,8 @@ struct PlayerControl_StaticFields {
};
struct PlayerControl_c {
- Il2CppClass_1 _1;
+ Il2CppClass_0 _0;
+ ptr_t interfaceOffsets;
ptr_t staticFields;
};
@@ -238,6 +241,7 @@ struct PlayerControl_o {
struct GameData_PlayerInfo_Fields {
uint8_t playerId;
ptr_t playerName;
+ bool unknown;
uint8_t colorId;
uint32_t hatId;
uint32_t petId;