HD and Yeoldedink fail to run some scripts that 1.08 can run
In The Creeping Sands, screen 116 contains a secret that is supposed to become visible after killing the enemy on the screen. This is done by having the hole a script that calls sp_nodraw in it's main procedure, and the enemy's death procedure makes it visible.
In Dink 1.08 this works as it should. However, in all of HD, Freedink and Yeoldedink the hole is visible before killing the enemy.
For refence here is the hole's script:
I believe that the issue is caused because there are two null bytes in the start of the script (omitted from the code above).
The comment is missing a slash, but it does not affect the issue.
Side note:
The hole is made appear by having the following in the monster's death procedure:
Incidentally, the value of &aaaa is likely correct, because one screen left there is a sprite that also happens to use &aaaaa and sets it to correct value.
In Dink 1.08 this works as it should. However, in all of HD, Freedink and Yeoldedink the hole is visible before killing the enemy.
For refence here is the hole's script:
/this script is for secret entrance to top of mountains void main( void ) { &aaaa = ¤t_sprite; sp_nodraw(¤t_sprite, 1); }
I believe that the issue is caused because there are two null bytes in the start of the script (omitted from the code above).
The comment is missing a slash, but it does not affect the issue.
Side note:
The hole is made appear by having the following in the monster's death procedure:
sp_nodraw(&aaaa, 0); sp_script(&aaaa, "s3-sec2");
Incidentally, the value of &aaaa is likely correct, because one screen left there is a sprite that also happens to use &aaaaa and sets it to correct value.
Upon visiting that screen I was greeted with a script decompressor failure in the log.
I've then attempted to unpack them all using a decompressor I wrote years ago that hasn't let me down so far, which failed on start-4.d, and indeed the title screen's "leave" button does nothing. For the files it managed to decompress, it added strange characters to the beginning of the first line:
etc suggesting that SimonK didn't miss the comment when he was writing the script, and instead something went very wrong with the byte-pair encoder. Thankfully the stars have aligned and he graces us with his presence meaning that if WDED or something is able to decompress them they could be reuploaded in plain text format as a patch.
I've then attempted to unpack them all using a decompressor I wrote years ago that hasn't let me down so far, which failed on start-4.d, and indeed the title screen's "leave" button does nothing. For the files it managed to decompress, it added strange characters to the beginning of the first line:
)/guard at the castle s/item Thor's Hammer ;/script for individual super fireball
etc suggesting that SimonK didn't miss the comment when he was writing the script, and instead something went very wrong with the byte-pair encoder. Thankfully the stars have aligned and he graces us with his presence meaning that if WDED or something is able to decompress them they could be reuploaded in plain text format as a patch.
For the files it managed to decompress, it added strange characters to the beginning of the first line
etc suggesting that SimonK didn't miss the comment when he was writing the script, and instead something went very wrong with the byte-pair encoder.
I didn't even think about it could be a compression issue.
I was wondering how someone could accidentally add nulls to start of the file, but that explains it.
etc suggesting that SimonK didn't miss the comment when he was writing the script, and instead something went very wrong with the byte-pair encoder.
I didn't even think about it could be a compression issue.
I was wondering how someone could accidentally add nulls to start of the file, but that explains it.
In this old post by Tyrsis it's claimed that the compile.exe included with v1.07 and earlier has something wrong with it, which may mean anything from that era using compressed scripts is affected.
I'll take a look...
have submitted a v0.7 which fixes this and have made sure all scripts have the correct // comment line. Replaced the somewhat annoying menu/choice sounds but left pretty much everything else, including the incredibly long victory dance sequence Dink can do.
have submitted a v0.7 which fixes this and have made sure all scripts have the correct // comment line. Replaced the somewhat annoying menu/choice sounds but left pretty much everything else, including the incredibly long victory dance sequence Dink can do.
Also found this error message from when Seth rewrote the decompressor. Seems it's only visible in debug builds rather than release builds for the end user though.
Might have caused some interesting unreproducible bugs back in the day if it was overwriting random stuff.
Might have caused some interesting unreproducible bugs back in the day if it was overwriting random stuff.
. Replaced the somewhat annoying menu/choice sounds but left pretty much everything else, including the incredibly long victory dance sequence Dink can do.
You have some new fresh Dink dance animations now, so you should have stretched it to an hour long show
.
You have some new fresh Dink dance animations now, so you should have stretched it to an hour long show

True, but I think I'll leave The Creeping Sands as is... unless other errors pop up.
I had completely forgotten that end dance sequence, as well as an end boss that fights with farts. Low-brow toilet humour is not everyone's type of humour, but it made me laugh.
I had completely forgotten that end dance sequence, as well as an end boss that fights with farts. Low-brow toilet humour is not everyone's type of humour, but it made me laugh.