New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Broken reading of a Save of The Sacred Tears TRUE #155
Comments
I can't even get the KeyInput in a simple test case to work. Have an Auto Start Common Event that reads Left/Right and then Waits 1.0 second and a map event that changes its look based on the button. The look never changes :( |
That setup you've described works on my end. Try running it in TestPlay mode and looking at the table of variables during that second. |
Yeah the problem I encountered was a different bug |
This is a bug I knew about for a long time but not the cause. Turns out RM incorrectly saves this variable as boolean (which internally just copies 1 byte) instead of a var-len integer, probably a copy-paste error from the surrounding booleans. Unfortunately this means it's hard to fix for me because if I would simply change this into an integer, then RPG_RT would encounter the same problem you had for certain saves and crash with a "stream read error" for bytes with the highest bit set. I'll see, maybe I'll save in a new chunk and load from both so that compatibility (at least for variables <128) is still okay. |
Works around EasyRPG/liblcf#155 Also emulates EasyRPG#1674
This save file shared by @carstene1ns for EasyRPG/Player#579 is incorrectly parsed:
http://f4ke.de/dev/easyrpg/TSTT/Save03.lsd
When run with _DEBUG, it'll warn about multiple skipped chunks and it'll crash because of running out of bytes. What breaks liblcf is a keyinput_variable (0x16) at 0x3846, inside the SaveEventData of the 8th CommonEvent.
should be parsed as:
But it's actually parsed as:
keyinput_variable saves the variable used by the last KeyInputProc. Here's the funny part. In this case, the last KeyInputProc saves the input value in the variable 908. Now: 908 = 0x038C. So keyinput_variable seems to be actually saving the last byte, not the whole number.
The text was updated successfully, but these errors were encountered: