MATCH behavior with exists taking args (SF issue)
tanabi opened this issue · 0 comments
To give an example:
If you have an action named 'a' that takes arguments
and a program like this:
: main "a thing" match unparseobj .tell ;
It will match the action a if there is no 'a thing' object
in the vicinity...
This is an artifact of the fact the matching code is
used to match commands, but seems undesriable behavior.
I feel that we should remove this behavior from the
MATCH, etc. primitives as it's likely to only confuse
people.
Prehaps we could have a MATCH_EXIT primitive to
keep this behavior, which would allow people to
get whether it was a split match like 'a thing' is?
......
I have another idea for this 'problem':
For compatability purposes I believe that 'match' should be left as is... Just in case. But instead, why not add a new set of match prims:
'full_match' it would require for the full string to be matched to an object/exit/etc.
And also a set of prims that will match the string to different object types. Ie. prog_match, thing_match, exit_match, room_match... Sort of like your 'match_exit' idea.
Of course, since I'm not one of the developers I am merely submitting this as an idea to think on. It is just that I believe that compatability is very important, even though it is also a good idea to make it possible to do, well, more. :)
.....
What would be nice actually is if MATCH took two parmeters,
one for the search string, and one for type of objects to
look for, muck like @find allowed things like '@find
guest=p' to find any players named guest. Probably best
added as a new primitive.