@Csimbi or others that may be able to help:
Regarding unlocking all camera heights/positions:
I'll lay out a little of what I've found after a few hours of tinkering. I'm very unfamiliar with and lack knowledge and understanding of EDI, RDI, RDX and all of those and moving values between them, and most things related to properly understanding memory and making cheats, but it seems this knowledge I lack is needed for this task. I'm hoping for some potential guidance or for others to take what I can share and run with it to create an "Unlock All Camera Positions" option that can be used in the live game instead of only in Photo mode.
When you are in the live game, there are 5 available camera positions:
- "Low"
- "Medium"
- "High"
- "Very High"
- "World Map"
However, there are 2 additional camera positions that become available when you enter into "Photo Mode":
- "Ground/Rooftop"
- "Top Down"
Ground is looking straight across the city at rooftop level, while Top Down is the position used by the timelapse screenshots shown at scenario completion.
I've found the 4byte instruction that shows the active camera position:
Live Game:
- 0 = "Low"
- 1 = "Medium"
- 2 = "High"
- 3 = "Very High"
- 4 = "World Map"
These instructions appear to write to the address that has this value:
- Frostpunk.exe+124DDC0 - 8B 93 F4010000 - mov edx,[rbx+000001F4]
- Frostpunk.exe+124DDDE - 89 BB F4010000 - mov [rbx+000001F4],edi
- Frostpunk.exe+124E832 - 8B 81 F4010000 - mov eax,[rcx+000001F4]
However, when you activate Photo Mode, these values shift to being:
- 0 = "Ground/Rooftop"
- 1 = "Low"
- 2 = "Medium"
- 3 = "High"
- 4 = "Very High"
- 5 = "Top Down"
- 6 = "World Map"
Switching to Photo Mode changes quite a few things; e.g. game is paused, UI is hidden and replaced, different keybinds for controlling Photo Mode, etc.
Several instructions are 0 or 1 value when in the live game, but switching to Photo Mode changes these to being 1 or a similar value (3, 4).
There is then an instruction that adds all of these values up and a compare instruction is run to see if the sum of these instructions + 8 = a value (20). If it is equal then another instruction gets decrimented and another compare is run and it seems that if it matches then it tells the game that you are in Photo Mode and certain things become active. I'm not entirely certain and am not knowledgeable enough in this area to follow what I would need to do to create this option.
I've managed to mess around with some of the addresses and lock certain values and change others to get all camera positions to be available in the live game by first entering into Photo Mode to unlock the positions and then it not re-locking them upon exiting back into the live game.
However, I also couldn't get the live game UI to come back up.
It was fairly easy to get most of the addresses/relevant instructions/bytes by doing a scan for values between 0 and 20 while in a paused live game, entering into Photo Mode, then reducing the results to only those that increased in value. A few minutes and I got down to about 8 different things that entering into Photo Mode causes to happen, including unlocking the camera positions.
I'm just messing around blind in there. I've crashed quite a few times changing the wrong thing. I will keep messing around and trying to learn what is needed to understand this to create this option, but it is quite the task I don't know if I can dedicate as much time to figuring out as I truly wish to.
If anyone can take what I've said and put it to use to create this option, I would definitely appreciate having it and I am sure many others would also considering I keep seeing people saying they wish there was a "Street" view and Top Down view as viewing from an angle is tricky at times.