Lua is definitely something I want to play with. Mainly because so many people are familiar with it from WoW MOD programming. I've already seen that simple loops in VBScript are still much faster than even a compiled alias using local variables. It's still something that I haven't fully optimized, but from what I understand, Lua is also quite fast and efficient. And with these new ways to easily access CMUD objects, it might end up being pretty nice.

So far I think "cmudvar" might be the most descriptive name. Part of me likes the "cvar", but that's the same lazy part of me that still sometimes uses one-letter variable names :)

The main exciting bug fix is the handling of the %i, %j, %k loop variables. I've fixed this so that nested aliases that contain loops work as expected. I was able to maintain some compatibility if you call an alias within a loop that references the loop variable.

As before, %i refers to the outermost loop, %j to the next inner, %k to the next inner, etc. If you try to refer to a loop variable from outside of a loop, then it checks the stack for any parent routine that has a loop. For example:

Code:

#alias showi {#show %i}
#loop 10 {showi}

will properly show 1..10 as expected. But now, with this fix you can also do this:

Code:

#alias loop1 {#loop 10 {#show %i}}
#loop 2 {#show %i;loop1}

and it will show 1 1..10 2 1..10 as expected. So I think that finally takes care of nested loop issues.

Also modified the tab-completion so that it completes words on the screen, just like pressing Shift-Tab. Shift-Tab still restricts the tab completion to only use words on the screen. The normal Tab key will first cycle through any words in the stored tab list and when that list of matching words is exhausted, it will then loop through matching words from the screen. This makes the Tab key *much* more useful.

Also added ID values to Events and fixed issues with #T+/#T-/#CLASS (as mentioned over in the forums). Also added the \ operator for doing a MOD operation in expressions. I also fixed a really obscure bug when dealing with variable references. The reference linking that is used to update stuff like status bars and buttons had a wierd problem where every other definition was losing it's variable reference. So, if you created two status bar items containing variable references, the first status bar would work, but the second one wouldn't update when the variable changed.

I never got to working on the Package Library today, so that's my priority for tomorrow.

Woohoo...Developer Express just released their new version of components for Delphi 2007, along with their new Toolbar (ExpressBars) components. From the documentation, it looks like they fixed many of the problems and issues that I had with their previous toolbar controls. I'm sure it will take me a while to learn the new system and see what changes I still need to apply. Not something I'm going to do for 1.27, but it's something I'll need to work on over the coming months.

Well, I got the 1.27 version released. Looks like we had the usual beta release day problems. Hopefully the quick fix will take care of the serious function expansion bug. It was a side effect from allowing stuff like "%mxp.property=value" to work. Instead of just handling the %mxp system variable, it was changing how all *functions* were being parsed. Baaaaddd! Not sure why it didn't show up in my testing, but this was one of the last things that I was working on before the release, so it's just one of those issues that slipped through the cracks. I swear that odd-numbered versions just seem to be cursed.

As you might have seen in the version history, I finally decided on using the name "zvar" for referencing variables from other scripting languages. The "zfunc" and "zcmd" are not implemented yet, but should be added to v1.28.

The reason I choose "zvar" instead of "cvar" was that the CMUD scripting language is still technically "zScript". So the "z" still makes sense, even though it's CMUD. It should be easy to remember, and the chance of getting a keyword collision should be less.

There is still plenty of bugs and stuff left for the next 1.28 version. I thought about adding more bug fixes and delaying the 1.27 release until the end of next week, but it's really a never-ending issue. No matter how much I fix, there will always be plenty of stuff still left to fix. And it's easy to get sidetracked on tweaking new features. I finally decided that 1.27 had enough in it and needed to get into the hands of users to test some of the new stuff. I'll start a new blog for v1.28 when I start working on it in a couple of weeks.

My job for next week, assuming that I don't have to do another "quick fix" is to release the zMUD/CMUD Affiliate program. This will allow anyone to earn money by selling zMUD/CMUD from their own web sites. I'll be posting the top Affiliates on this site too, so it's a good way for some MUDs to get some advertising on this site without having to pay any money. I'm hoping this will be a good advertising alternative for free MUDs that can't afford a zMUD/CMUD icon. And hopefully it will also improve CMUD sales. I'll post more about how this will work next week.

I love the inclusion of the Scintilla editor component, as it's my text editor of choice (SciTE). Will the Editor window be using the Scintilla component any time in the future? I'd love to eliminate my need for editing larger scripts in the settings editor or in SciTE, and I really want to see the CMUD Editor become a nice place for me to build everything I write.

Yep, both the Text Editor and the CMUD command line will probably be using Scintilla soon. The issue with the Text Editor is a bit tricky. I still want to support plain text files and HTML files with WYSIWYG editing. For example, Scintilla is great for syntax highlighting, but it's not so good for actually creating rich text or HTML files where you select text and make it bold/italic/whatever. The current text editor component is better at actually editing text and HTML files.

So, the Editor will need some sort of mode selection between Code/Text. In Code mode it will use Scintilla, and in Text mode it will use the current RichText control.

Geez, how do you get so much work done, and write about it?
Im sure that if this site is indexed/spidered by google, the knowledge you share would generate as much traffic as the hits for the apps you release!

This site's been around for tenish years, so it has an excellent Google rating. It's quite frustrating actually - there've been times when I've googled things people have talked about on the forums and the first couple of entries are the post I've just read and related ones ;P