Helixhorned, on 13 January 2014 - 01:42 PM, said:
VOLUME and LEVEL are merely read-only aliases to the respective userdefs members. The general pattern is that you want to set these to affect commands that behave conditionally on them. So the real solution is to make the commands (in Lunatic: functions, for example in 'gv' if there's no better place for them) accept these conditioning values as arguments. For example, the Lunatic interface could (and probably will) look like that:
gv.currentLevel() -- will be one-based, I think. It's just more natural that way because it's how everyone thinks of these gv.currentEpisode() gv.currentMapName([ep, lev]) -- this one returns the current map name if passed no args, or that of E<ep>L<lev>
I think having those be one-based is weird. What's the point of breaking from the established functionality and operation here? It seems like you're going out of your way to make a programming language seem less like a programming language and the result is merely another sticking point on the list of differences between Lunatic and CON. Why? I mean, we aren't shifting all the tile numbers up by one and calling tile 0 tile 1 because logically it's the "first" tile...