(wL) Forums
ProcessMovement problem - Printable Version

+- (wL) Forums (https://war-lords.net/forum)
+-- Forum: Resources (https://war-lords.net/forum/forum-31.html)
+--- Forum: Programming (https://war-lords.net/forum/forum-33.html)
+--- Thread: ProcessMovement problem (/thread-19308.html)



ProcessMovement problem - bababooey - Oct 23 2024

Hello,  i was trying to make engine prediction work for csConfused but when i try to use ProcessMovement function i am getting access violations, most probably from a wrong index, i was trying to search for the index of the function and found a very similar void but it was taking 3 arguments instead of 2, can somebody explain where should i be looking for the valid one.I was looking in the CGameMovement but found only this:
Code:
    // #STR: "end %f %f %f", "start %f %f %f"
    void *__thiscall MaybeProcessMovement(_DWORD *this, float *a2, int a3)
    {
      void *result; // eax
      float v5; // [esp+20h] [ebp-4h]
    
      v5 = *((float *)off_1049A278 + 4);
      *((float *)off_1049A278 + 4) = a2[1167] * v5;
      sub_10116650();
      this[2] = a3;
      this[802] = 0;
      this[1] = a2;
      *(float *)(this[2] + 56) = ((double (__thiscall *)(float *))*(_DWORD *)(*(_DWORD *)a2 + 900))(a2);
      (*(void (**)(_DWORD *, const char *, ...))(*this + 16))(
        this,
        "start %f %f %f",
        *(float *)(this[2] + 152),
        *(float *)(this[2] + 156),
        *(float *)(this[2] + 160));
      (*(void (__thiscall **)(_DWORD *))(*this + 52))(this);
      *(_DWORD *)(this[2] + 40) = *(_DWORD *)(this[2] + 36);
      (*(void (**)(_DWORD *, const char *, ...))(*this + 16))(
        this,
        "end %f %f %f",
        *(float *)(this[2] + 152),
        *(float *)(this[2] + 156),
        *(float *)(this[2] + 160));
      result = off_1049A278;
      *((float *)off_1049A278 + 4) = v5;
      return result;
    }
Also here is how im getting ProcessMovement in my cheat:
Code:
         void ProcessMovement(player_t* pPlayer, CMoveData* pMove) {
            using ProcessMovementFn = void(__thiscall*)(void*, player_t*, CMoveData*);
            (*(ProcessMovementFn**)this)[1](this, pPlayer, pMove);
        }