ID:2542720
 
Applies to:DM Language
Status: Open

Issue hasn't been assigned a status value.
This is simply a request to be able to get the argument names from within the code when you have a proc path. Something like the following

var/list/argument_names = callargs(/atom.proc/Enter)


The name doesn't particularly matter but it fits in with the somewhat related procs call() and hascall()

This would be very useful for debug tools since it allows you to know which arguments a proc is expecting if you want to be able to call custom procs during runtime from a debug menu.
This could return an associative list to include any default value, input type(s), or list to check, for each of the arguments. The indices can be named differently. The following is just an example of the structure.
[
"[ARG_1]" = [
default = DEFAULT_VALUE,
argtypes = [
"[INPUT_TYPE_1]",
"[INPUT_TYPE_2]",
...
],
inlist = LIST_REF
],
"[ARG_2]" = [
default = DEFAULT_VALUE,
argtypes = [
"[INPUT_TYPE_1]",
"[INPUT_TYPE_2]",
...
],
inlist = LIST_REF
],
...
]

This would allow us to programmatically access the verb/command usage info, so we could integrate this into our own custom interfaces, such as screen object names, or a help command in a command-line interface. This would also be very useful for the creation of user-defined commands and macros.

I consider this to be a missing link in the core of BYOND's design, with a potentially far-reaching impact on many BYOND games. It could facilitate the transition away from historically terrible interface designs, and pave the way towards much nicer ones.