nataliapc / msx2daad

DAAD interpreter created from scratch for MSX2/MSX2+ systems using the graphical capabilities of this machines.
Other
35 stars 3 forks source link

ISDONE/ISNOTDONE mechanics not working properly #13

Closed rockersuke closed 2 years ago

rockersuke commented 4 years ago

Say we have this entry at PRO 5:

XYZZY _ MESSAGE "HEY HEY XYZZY!"

On running the game, typing "XYZZY" would output the message "HEY HEY XYZZY!" , which is OK... but it will be inmediaytely followed by a "No puedo hacer eso.", which is obvlously wrong (this very same code won't output "No puedo..." in any of the original DAAD terps).

At the very moment a condact is executed 'cause no condition has prevoiusly avoided it (in this case a MESSAGE condact) DAAD is aware that "something has been DONE" even when no DONE condact has been explicitly reached. That means the ISDONE condact at PRO 1 (right after we come back from PRO 5) equals to True, so REDO happens and the part of PRO 5 that invokes sysmess 8 ("No puedo...") is not reached.

This is not working in msax2daad, I mean, at least not the way it works in DAAD.

01 02

Ensayo DRC.zip

nataliapc commented 4 years ago

Seems fixed in the last commit, please check it.

If you need the compiled executable please contact me...

nataliapc commented 4 years ago

Not fixed yet...

nataliapc commented 2 years ago

ISDONE/ISNOTDONE is fixed finally.

In the next commit I will publish the bugfix.

Thanks!