Before I had the game, I thought that fixing it would probably be a simple task, considering that I had fixed the pillarboxing and FOV of the original in 2019 and then the weapon model scaling a year later. Moreover, as you know, I always take extra time to make my solutions as resilient to updates as possible and I try to write notes on my findings so that revisiting a game is not as hard as starting anew.
Well, this enhanced edition rendered the past findings completely unhelpful! The game was on an updated version of Unreal Engine but that was only part of the problem. After I removed the black bars and corrected the FOV, I still had to address the dreaded issue of the weapons and hands model being effectively cropped.
The problem with the model was that although my prior patterns were finding things and the old code was there, it was no longer used by the game, and neither was any of the adjacent code to help me get to anything relevant.
Once again I was working for nearly every hour of the day and even had to postpone my life plans.
At first I looked for any similar or related code that would get me to the right place - all to no avail. I also looked for typical FOV values and went through countless to see if the model could be controlled by that - also to no results.
By then I was already exhausted but I still thought of even crazier ideas, like finding every single 1 value in the game memory and changing that to see if it leads somewhere. Normally you can't just change all of them, because blindly doing it to thousands of values tends to crash the game (which did happen here many times), so I had to do it in groups and then eventually one by one. This did produce some results, allowing me to rotate the weapon, make it wider or taller, move the player's hand in all directions (even like so - potentially NSFW), or do other kinds of things like rotating around the character, changing the time of day, or leaning left and right.
Remember how I talked about UI being a needle in a haystack problem? It is, but at least you can use the on-screen coordinates to guide you in the search. What do you use to find the weapon? What if it's not even meant to scale, so it's not represented in a numerical value?
And still, I then looked for generic functions, finding hundreds of instances and going through each one by one. Eventually I did come across something that affected the model, so I dug deeper from there and after further experimentation had a fix in mind.
Then I had to think of the implementation. Making it a trainer is always an option, but in this case it couldn't be quite real-time, and a DLL injection tends to be easier to use anyway.
That is when my rework of The Quarry solution helped in that I already had the code and I just needed to adapt it to this game.
And so we have another solution that is one of the most complex pieces of my work. It's mentally rewarding to get it done but in the realm of depressing while getting to it. You know how it is from all the posts!
Oh, and I almost forgot that I also covered the game in a Detailed Report on WSGF, so this post is light on side-by-side images!