GUI Scripting: Parsing of Set 'Cmd'
From The DarkMod Wiki
GUI commands
Commands in the main menu like:
set "command argument1 argument2;"
are handled in idGameLocal::HandleMainMenuCommands() in game/game_loca.cpp.
For each of the parts "command", "argument1", "argument2" and the final ";", the routine is called again.
It therefore keeps a stack of these parts, and when it has seen enough arguments, handles the command and clears the stack before returning. The routine will also complain if you give not enough arguments to a command.
One special case is just using "set" "command", this will call HandleMainMenuCommands() twice, once with "command" and once with ";" as the menuCommand parameter. Any stray ";" as command is silently skipped.
Examples
set "cmd" "play sound/meta/menu/mnu_hover"; set "cmd" "log 'Some text here'"; set "cmd" "mainmenu_heartbeat";
See also
- Introduction to Doom3 GUIs
- GUI Scripting on modwiki
- The "set" command on modiwki