Reply to Re: Help me Revise the DinkC reference.
If you don't have an account, just leave the password field blank.
====================
**FUNCTIONS (A - C)**
====================
Below is all the current changes/additions I've made to functions. I'm going through them from A - Z in order and will be posting what I add/change as I go. If a fucntion isn't listed, it didn't need changing.
Function: busy()
Addition: Added an example of one useful purpose of this function (maybe the only useful purpose):
One useful purpose of this function is to check if a sprite is currently saying something when it dies, and if so, kill off the text sprite. This will prevent the bug of the text sprite surviving, and instantly jumping to a different position on the screen.
====================
**FUNCTIONS (D - G)**
====================
Function: disable_all_sprites()
Changed: Rewritten and example of how to actually disable all sprites.
`disable_all_sprites()` is supposed to disable all sprites on the current screen but does not work as intended. If this function worked as intended, the equivalent would be setting sp_disabled() to 1 for all sprites.
This functions will disable several sprites, but will leave at least 1 enabled, sometimes more.
Here is a nice work around that will accomplish the true intention of this command, and will disable all sprites instantly.
===============================================
===============================================
Function: disable_all_sprites()
Changed: Rewritten and example of how to actually enable all sprites.
`enable_all_sprites()` is supposed to enables all sprites after they have been disabled with disable_all_sprites() or sp_diabled(). This function does not work as intended.
Here is a nice work around that will accomplish the true intention of this command, and will enable all sprites instantly.
===============================================
===============================================
Function: external()
Addition: Added warning for external bug
Calling a procedure with `external()` can randomly cause the calling script to continue past `}` and into code afterwards. In some cases it may even continue past a `return;`. A solution to this is using `goto` at the end of the calling procedure, and jump to the end of the script.`
===============================================
===============================================
Function: fade_up()
Addition: FreeDink bug of text not visible, and workaround explanation.
[FreeDink, all versions] when the game is in fullscreen mode, or the window is resized in window mode, text will be barely visible. A work around for this is to warp Dink to a screen with no sprites, filled with black tiles, and make Dink invisible using `sp_nodraw()`. Then do `fade_up()` and create your text.
===============================================
===============================================
Function: get_version()
Addition: Note that FreeDink engine version can be returned through Dinkc, and a link to Version Checker.
[i]Note: FreeDink Engine versions are not returned using this function, it will only return `108` (Or `107` if running in 1.07 mode). If you need to get the FreeDink engine version, this can be accomplished through DinkC, check out: Version Checker.
**FUNCTIONS (A - C)**
====================
Below is all the current changes/additions I've made to functions. I'm going through them from A - Z in order and will be posting what I add/change as I go. If a fucntion isn't listed, it didn't need changing.
Function: busy()
Addition: Added an example of one useful purpose of this function (maybe the only useful purpose):
One useful purpose of this function is to check if a sprite is currently saying something when it dies, and if so, kill off the text sprite. This will prevent the bug of the text sprite surviving, and instantly jumping to a different position on the screen.
void die(void) { //if this sprite is saying anything, kill the text sprite int &gettext = busy(¤t_sprite); if (&gettext > 0) { sp_active(&gettext, 0); } }
====================
**FUNCTIONS (D - G)**
====================
Function: disable_all_sprites()
Changed: Rewritten and example of how to actually disable all sprites.
`disable_all_sprites()` is supposed to disable all sprites on the current screen but does not work as intended. If this function worked as intended, the equivalent would be setting sp_disabled() to 1 for all sprites.
This functions will disable several sprites, but will leave at least 1 enabled, sometimes more.
Here is a nice work around that will accomplish the true intention of this command, and will disable all sprites instantly.
//there can be a maximum of 299 actve sprite numbers //we'll start at 2 to exlude Dink. //If you want to disable Dink as well, change the following line to 'int &getsp = 1;' int &getsp = 2; int &sprite_exist; loop: //check if a sprite exists with this active sprite number &sprite_exist = sp_active(&getsp, -1); if (&sprite_exist > 0) { //this sprite exists - so disable it. sp_disabled(&getsp, 1); } if (&getsp < 299) { //increment active sprite number '&getsp' and loop. &getsp += 1; goto loop; }
===============================================
===============================================
Function: disable_all_sprites()
Changed: Rewritten and example of how to actually enable all sprites.
`enable_all_sprites()` is supposed to enables all sprites after they have been disabled with disable_all_sprites() or sp_diabled(). This function does not work as intended.
Here is a nice work around that will accomplish the true intention of this command, and will enable all sprites instantly.
//there can be a maximum of 299 actve sprite numbers //check every active sprite number for active sprites and enable them all int &getsp = 1; int &sprite_exist; loop: //check if a sprite exists with this active sprite number &sprite_exist = sp_active(&getsp, -1); if (&sprite_exist > 0) { //this sprite exists - so enable it. sp_disabled(&getsp, 0); } if (&getsp < 299) { //increment active sprite number '&getsp' and loop. &getsp += 1; goto loop; }
===============================================
===============================================
Function: external()
Addition: Added warning for external bug
Calling a procedure with `external()` can randomly cause the calling script to continue past `}` and into code afterwards. In some cases it may even continue past a `return;`. A solution to this is using `goto` at the end of the calling procedure, and jump to the end of the script.`
===============================================
===============================================
Function: fade_up()
Addition: FreeDink bug of text not visible, and workaround explanation.
[FreeDink, all versions] when the game is in fullscreen mode, or the window is resized in window mode, text will be barely visible. A work around for this is to warp Dink to a screen with no sprites, filled with black tiles, and make Dink invisible using `sp_nodraw()`. Then do `fade_up()` and create your text.
===============================================
===============================================
Function: get_version()
Addition: Note that FreeDink engine version can be returned through Dinkc, and a link to Version Checker.
[i]Note: FreeDink Engine versions are not returned using this function, it will only return `108` (Or `107` if running in 1.07 mode). If you need to get the FreeDink engine version, this can be accomplished through DinkC, check out: Version Checker.