BSInputDevice VR memory layout
In the VR build of the game the `BSInputDevice` class has an additional single-byte field inserted right after the vtable, which means all other fields get shifted back by 8 bytes. CLib currently doesn't account for this, so trying to access any fields of a device (for example by calling `BSInputDevice::IsPressed` ) will produce incorrect results or flat out crash the game.
Fixing this issue would probably entail pulling out all fields of `BSInputDevice` and its many subclasses into `RUNTIME_DATA` structs, as it is done for many other classes.
4 条评论