Updated File: GNU FreeDink
FreeDink has been updated by Beuc, the main changes being 64-bit support and playing sounds for Windows, some new/updated translations and other bits and pieces.
The source code is also updated of course!
The source code is also updated of course!
I had noticed the problem with the title MIDI. I didn't know it was a FreeDink problem.
After starting up my DMOD in v1.08, I found that the truecolor fade_down doesn't really work very well. It doesn't turn completely black and the text looks ugly on top.
So I started it up in freedink thinking I could have something to complain about. I don't. It's already fixed in freedink. I'm going to make my DMOD for freedink now.
So I started it up in freedink thinking I could have something to complain about. I don't. It's already fixed in freedink. I'm going to make my DMOD for freedink now.
Okay, I've been playing around with this some more and it's not entirely bug-free yet.
I found that freedink (at least the 64-bit version) has trouble with choice menu's. If you include any comment's line the choice menu will skip. For example this will work:
But this will not:
In Dink v1.08 the second snippet will work just fine.
On the other hand I must say that freedink works nice and smooth on my system while v1.08 looks quite jirky. What an improvement that makes to the feel...
EDIT: Also, one of my scripts failed because in v1.08 if you ask for Dink's coordinates you get Dink's coordinates on the previous screen. Apparently you do get the values for the new screen on freedink. Teaches me to do a wait(1) before checking positions. Just something to be aware off... It's more of a bug in v1.08 than one in freedink I suppose.
I found that freedink (at least the 64-bit version) has trouble with choice menu's. If you include any comment's line the choice menu will skip. For example this will work:
choice_start() "Option 1" "Option 2" choice_end()
But this will not:
choice_start() //Here we see what options we have: "Option 1" "Option 2" choice_end()
In Dink v1.08 the second snippet will work just fine.
On the other hand I must say that freedink works nice and smooth on my system while v1.08 looks quite jirky. What an improvement that makes to the feel...
EDIT: Also, one of my scripts failed because in v1.08 if you ask for Dink's coordinates you get Dink's coordinates on the previous screen. Apparently you do get the values for the new screen on freedink. Teaches me to do a wait(1) before checking positions. Just something to be aware off... It's more of a bug in v1.08 than one in freedink I suppose.
metatarasal: thanks a lot for the testing
I'll have a look at this by the end of the week.
Generally if something was working in a released D-Mod, then it should in FreeDink, so at first glance there is something to fix in both cases.
I'll have a look at this by the end of the week.
Generally if something was working in a released D-Mod, then it should in FreeDink, so at first glance there is something to fix in both cases.
metatarasal: the following code doesn't work for me in either FreeDink or 1.08. E.g. add it in key-65.c:
About the coordinates: do you have some code sample?
void main(void) { choice_start() //Here we see what options we have: "Option 1" "Option 2" choice_end() }
About the coordinates: do you have some code sample?
That one bracket seems to be in the wrong place. If it's placed like that in the actual script itself, no wonder it won't work. If it's just a mistake you made in the post, then I'm note sure what would be wrong. Works fine for me on version 1.08.
Can you copy/paste the exact code that works for you?
doesn't work anywhere and you should see "Dink:Error with choice() statement in script key-65, offset 73. (//Here we see what options we have:?)" in the debug log.
With the comment above choice_start():
it works everywhere, so we've got textbook compatibility.
I must be missing something obvious.
void main ( void ) { choice_start() //Here we see what options we have: "Option 1" "Option 2" choice_end() }
doesn't work anywhere and you should see "Dink:Error with choice() statement in script key-65, offset 73. (//Here we see what options we have:?)" in the debug log.
With the comment above choice_start():
void main ( void ) { //Here we see what options we have: choice_start() "Option 1" "Option 2" choice_end() }
it works everywhere, so we've got textbook compatibility.
I must be missing something obvious.
Ok, so now all of a sudden, it doesn't work for me anymore. It worked just a second back, but now if I put the comment under choice_start(), it won't work. Strange. Unless I screwed up (pretty sure I didn't), it worked just a while back.
Though the "Dink:Error with choice() statement in script key-65, offset 73. (//Here we see what options we have:?)" message you were talking about, doesn't show up for me in the debug log.
Though the "Dink:Error with choice() statement in script key-65, offset 73. (//Here we see what options we have:?)" message you were talking about, doesn't show up for me in the debug log.
dang, hopefully metatarasal can post his code then
(about the debug log, just to make sure, you enabled debug mode before starting the script right?)
(about the debug log, just to make sure, you enabled debug mode before starting the script right?)
I don't think that stuff has ever worked.
This, however, does (on both 108 and Freedink):
This, however, does (on both 108 and Freedink):
choice_start //Here we see what options we have: "Option 1" "Option 2" choice_end
I really thought it worked. There was a script with a choice menu and commented out parts that failed on me only in freedink. Now I can't replicate it anymore...
As for the scripts on positions, here's the ones I used. Attached to the screen:
Here the variables &difper1 and &difper2 are globals. Another script attached to a sprite on the screen:
If I enter a screen from below this shows "277 , -10 , -10 , 277" in dink v1.08, in freedink I get "277 , 399 , 399 , 277". I kinda expected it to show "277 , 399 , -10 , 277" as dink (sprite # 1 gets drawn before the other sprites and after the screenload. Ah well...
As for the scripts on positions, here's the ones I used. Attached to the screen:
void main(void) { &difper1 = sp_y(1,-1); &difper2 = sp_x(1,-1); }
Here the variables &difper1 and &difper2 are globals. Another script attached to a sprite on the screen:
void main(void) { int &dix = sp_x(1,-1); int &diy = sp_y(1,-1); } void talk(void) { say("&dix , &diy , &difper1 , &difper2",1); }
If I enter a screen from below this shows "277 , -10 , -10 , 277" in dink v1.08, in freedink I get "277 , 399 , 399 , 277". I kinda expected it to show "277 , 399 , -10 , 277" as dink (sprite # 1 gets drawn before the other sprites and after the screenload. Ah well...
Thanks for the details metatarasal
Indeed I see that I modified this behavior back in 2008 by mistake.
There is even a case where X is set before the screen is loaded, and Y after (fortunately it's a vertical move).
This is fixed in the FreeDink development version
As for the choice issue, for now it looks like we've got compatibility. Let me know if you find anything.
Indeed I see that I modified this behavior back in 2008 by mistake.
There is even a case where X is set before the screen is loaded, and Y after (fortunately it's a vertical move).
This is fixed in the FreeDink development version
As for the choice issue, for now it looks like we've got compatibility. Let me know if you find anything.