Features for D-mod developers
Although YeOldeDink is designed to ultimately be transparent in terms of features when compared to Freedink, there are a few new DinkC commands and other caveats to be aware of. Included in 0.86 and later is Phoenix's DinkLua backend which allows for Lua 5.4 to be used instead of DinkC. The use of DinkLua is covered separately.
Debug mode
After activating debug mode, a setting may be found in the relevant menu to switch on "Developer mode". This displays the normally hidden functions such as the inbuilt cheat, and potentially data-destructive sprite and map editors.
To type into text boxes, it is advised to mouse over the relevant box first before attempting to type, or to gain exclusive keyboard input by activating the console. Sliders can have their default limits overridden by CTRL+clicking on them.
The Lua console does not currently support every feature in DinkLua.
Debug menu
Info window: shows a floating window indicating FPS, plus the last log message. The console(s) will appear here when activated. Right-click to change its position.
Game pop-out: a separate window showing the main display at native res.
Debug Log: the full debug log, along with some extra logging options. The console(s) will also appear here when activated.
PNG Graphics
The Portable Network Graphic format may be used for sprites and tiles as d-mod resources (not main data). All colour depths should be supported.
Sound effects
From 0.7, the loading of MP3, Ogg Vorbis, and FLAC files as sound effects is supported with load_sound().
Background Music
Builds that are linked against MixerX (usually the case) support the following extra codecs with playmidi():
MP3
FLAC
Opus
Various game console formats (spc/vgz etc)
Pxtone
New DinkC commands
get_client_fork()
will return 3 to check for YeOldeDink.get_client_version()
returns the version string multiplied by 100. For example, v0.91 will return "91".get_platform()
returns the platform roughly corresponding with RTDink's valuesplay_mod_order(int pattern)
changes the pattern number for tracker formats.get_dinkspeed()
returns the internal variable that controls the player sprite speed.playavi(string filename)
will allow you to play a video file of some sort. Requires FFMPeg's FFPlay to be installed on the user's computer.
All of these are available under DinkLua as part of the "dink" table such that get_platform()
becomes dink.get_platform()
etc.
Changed DinkC commands
Specifying a frequency of zero to playsound() will cause the sound to be played back at its native speed.
Differences in behaviour
Save file data will list the date and time rather than the level, unless a manual string is specified.
The twirling arrows in choice menus will use all frames in the sequence rather than restarting at 7.