Вызов игровой функции, принимающей в качестве аргумента массив или указатель на него
-
Здравствуйте, пытаюсь вызвать функцию в одной игре с помощью C++, раньше эта игра не была зашифрована(можно было спокойно изменять Assembly-CSharp.dll), но сейчас игра уже IL2CPP, поэтому у меня есть
Assembly-CSharp.dll
старой версии этой игры. Вот как на C# задается функция(SendMessage), которую я хочу вызвать(повторюсь, она из незашифрованной версии игры). Cразу говорю, вызывать ее на C# для меня не вариант.this._connectionManager.SendMessage(new NetworkMessage { MessageType = MessageType.InputBuildRequest, Content = new InputBuildRequest { Angle = angle, BuildType = (uint)this._buildingDef.EntityType, Id = 0, TestPass = false, X = vector.x, Y = vector.y }
А вот как выглядит InputBuildRequest:
public InputBuildRequest(InputBuildRequest other) : this() { this.id_ = other.id_; this.buildType_ = other.buildType_; this.x_ = other.x_; this.y_ = other.y_; this.angle_ = other.angle_; this.testPass_ = other.testPass_; this._unknownFields = UnknownFieldSet.Clone(other._unknownFields); }
В дампе эта функция выглядит следующим образом:
{ "Address": 3252048, "Name": "Game.Managers.ConnectionManager.ConnectionManager$$SendMessage", "Signature": "void Game_Managers_ConnectionManager_ConnectionManager__SendMessage (Game_Managers_ConnectionManager_ConnectionManager_o* __this, ServerDefinitions_NetworkMessage_o* message, const MethodInfo* method);", "TypeSignature": "viii" }
Передать в нее указатель на класс я могу(т.е. первый аргумент и третий тоже), но второй это и есть тип постройки, который я не понимаю как передать. Также я прикрепил скрины того, как она выглядит в ассемблере.
Вот так выглядит на C# вызов, который я хочу осуществить , но уже на C++:this._connectionManager.SendMessage(new NetworkMessage { MessageType = MessageType.InputBuildRequest, Content = new InputBuildRequest { Angle = 0.3926991f, BuildType = 23U, Id = 0, TestPass = false, X = 1f, Y = 20f } });
Может мне кто-то помочь сделать это, потому что функция выглядит очень непонятно, как с этим что-то делать у меня 0 идей.