> > # this is good > > set npc ignore walls(npc, true) > > > > # this is bad > > set npc bit(npc, NPCbit:ignore walls, true) > > Well, I choose the second approach because I hate having too many > functions (and having to document them :) ), because it makes the > dictionary extremely verbose: consulting a compact table as for > alternpc is much faster (I actually prefer read/alternpc to trying to > remember over 100 menu functions, for example). And our commands are > inconsistent and difficult to remember as a rule -- I can never > remember whether to use "slice parent" or "parent slice" -- so I end > up looking up an awful lot. However a few paragraphs of documentation > for every tiny bit is much more fair for people who aren't familiar > with engine internals in the first place. > > However despite all that, I must agree with you: I didn't realise how > overly verbose the setnpcbit approach was.
I think a search field in the help screen in HamsterWhisper would go a very long way towards alleviating the difficulty of finding commands. > But while we're on the topic of too many functions which are > impossible to remember, I think I'll sidetrack into adding structures > to HS, which I've been meaning to talk about. Having actually used > Euphoria a whole a couple months back, I take back what I said about > it being a nice language. I think not supporting user defined data > structures in the new HamsterSpeak is out of the question, it's just > unworkable. This would be beautiful, I would love this! > And following this train of reasoning, if we have user defined > structures, and function objects, then we may as well add some form of > object orientation, since you're already nearly there. This would also be beautiful! > And if we now present a slice handle, npc reference, menu handle or > whatever else as an object with members and/or methods, we can provide > an alternative way to interact these objects that's less verbose, > highly consistent, easy to remember and compactly documentable: > menuitem.caption > instead of > get menu item caption (menuitem) > > heroes[who].stats[stat.hp] += x > instead of > set hero stat(who, stat:hp, get hero stat(who, stat:hp) + x) > and so on. *James falls on the floor and twitches with joy* > The exact details don't matter right now, but this is very similar to > the Magic Variables plan. Yes! Except better and less hacky! --- James _______________________________________________ Ohrrpgce mailing list [email protected] http://lists.motherhamster.org/listinfo.cgi/ohrrpgce-motherhamster.org
