Internally, there is reference to the top-level action list, "main" or "advanced" or w/e, that is used to find which action list should be executed when an input is requested. swap_action_list,name=xyz
aborts the existing action list execution, changes the reference of the top-level action list to "xyz", and then restarts the action list execution. Transitioning between action lists can be used to encode stateful information.
is roughly equivalent to copying the actions from list "xyz" and injecting them at this location (it works just like a subroutine.) Note: any conditionals on this action will propagate to all of these referenced actions.
Code: Select all
main+=/action2,if=abc == test+=/action1
So yes, run_action_list always returns to the calling list unless an action was taken or the top-level action list was changed.
HotW casting in Catus is implemented using a lot of action list runs and swaps:
https://dl.dropboxusercontent.com/u/298 ... Cleave.txt