No, not being filthy cheater. Been using it as a workaround.
Been playing since a couple weeks ago, and for the past few experimental builds I’ve been using save file editing to get around the bug that makes it so you can’t learn martial arts from NPCs. (Specifically, using debug command to give all of them, then going into the file to change it from “20 style_this style_that etc_etc” to “2 style_snake style_crane” or whatever.)
But I’ve noticed now in this latest build that any change to the .sav file, even simply opening it up in a text editor, making no changes, and resaving it as is, causes the game to crash (Microsoft Visual C++ library error popup) upon loading it.
Is this an anti-cheating measure, or a bug related to however it’s getting resaved or something? I’ve checked if maybe it was a DOS/UNIX file format thing, but it doesn’t seem to be that. If it’s a security measure, is there any way to turn it off?
There’s something in the Git about compressing the savefile format? Didn’t think it’d been merged though.
(It’s to reduce the problem with map expansion: since you can explore infinitely, your save file will also grow infinitely along with. Over time this will eat ALL THE SPACE and take forever to load. Not an anti-cheat measure.)
Okay, I found what’s going on, I think.
The character coding/character set/carriage returns or something else (I’m no programmer, totally out of my depth, so forgive me for poor terminology here) used in the save file has changed in the last day or two. It used to be that I could edit the file using UltraEdit, but now there’s something in it that UltraEdit does not replicate when it saves it. WinMerge detected the difference in the image below between the original save file and one simply loaded and resaved, unchanged, in UltraEdit. I also noticed that the re-saved version is about a kb smaller (41.2kb as opposed to 42.2kb).
If I edit the file with Notepad++, no problem, apparently; I can make the changes to the save file and load it into the game fine without crashing. So that allows me to move on, but just pointing it out if it’s not intentional.
Yeah many texteditors treat control-characters and the like as spam and delete/replace them on saving, which in this case would mangle the savefile…
But ill have look at the code to see if this saveformat quirk is intentional or not.
Edit: It was not! A fix is now pending for approval.
Thanks for reporting!
There’s a null character (0x00) in the save file (maybe 2) that UltraEdit by default converts to spaces (0x20). You can turn that off, though I suppose it won’t be necessary if they’re going to fix it. This drove me nuts when it first happened, and it irritated the hell out of me that UltraEdit thought it had the right to change my text files. I’d probably have stopped using it altogether if it didn’t have the convenience of also being a hex-editor.