SlyCooperReloadCoded

Joined 8 October 2023
no edit summary
No edit summary
No edit summary
Line 19:
have an "is being touched" float like entities do - unmoving ones don't, the only excepting being the map model itself. Visibility will be nearby, and -0x2C from that is the start of the struct. Alternatively, you can find the start of the struct of anything with collision by using address 0x3E0988 with an offset of 0x1A0, which points to the struct of the object Bentley's first placed bomb attaches to. There seems to be no way to do this for map objects that lack collision, or for specific map objects (i.e. changing the color of the hidden ice wall in Ep7). Most map objects do generally work with entity offsets like +0xD4 for Render Priority or +0x12C for Opacity. Doing an entity swap with an object in the fk$x list and an object not in the fk$x list will always crash, whether it was done with the ID method or the pointer method.
 
Inside structs for map objects that can move is a set of addresses with the values 00000006 and 00010005 right next to each other. Above the 00010005 is a pointer to an animation speed region, but this is already known. The new discovery is that to the left of the 00000006 is a value of 0 when it's not in motion, and acts as a pointer whenever it is. Additionally, the 00010005 is 0 when it's not in motion. Putting them back to how they were before, freezing them, and reloading the map can sometimes reanimate them, usually at the wrong speed. Sometimes the 00010005 can be other values, such as 00050007.
If you search for the address that marks the start of a moving map object's struct, you'll also find it in some other lists. Some values in that list near the struct start address value control some kind of animation set thing - changing them will make them and some nearby objects to move erratically before crashing the game. I once swapped some values belonging to the turret tower and the tilty tree building in Ep3 hub, and both started swinging around wildly before the game crashed. Interestingly, the elephant satellite's dish started rotating super fast as well, even though it was on a 100% complete save file... could static things be reanimated somehow?
 
Job beacons have their own visibility value. If frozen to 010F0200 and game is reloaded, they appear with their correct waypoints as well. Touching them as the correct character just makes them disappear, but touching them as the wrong character makes the "Only XXX can complete this job!" text box appear.