Return: Difference between revisions
Jump to navigation
Jump to search
Helixhorned (talk | contribs) m wording |
Helixhorned (talk | contribs) m make example run with vanilla EDuke32 |
||
Line 1: | Line 1: | ||
A '''return''' command is similar to '''[[break]]''' in that it stops code after the '''return''' from executing and thus can be used to exit a state early. However, a '''return''' proparates along a call chain of [[state]]s, so that when the following code snippet is run, only quote 125 ("SPAWNED LIGHTEFFECT1") is displayed. | A '''return''' command is similar to '''[[break]]''' in that it stops code after the '''return''' from executing and thus can be used to exit a state early. However, a '''return''' proparates along a call chain of [[state]]s, so that when the following code snippet is run, only quote 125 ("SPAWNED LIGHTEFFECT1") is displayed. | ||
'''definequote''' 125 SPAWNED | '''definequote''' 125 SPAWNED HEAVYHBOMB | ||
'''definequote''' 126 RAN EVENT_EGS | '''definequote''' 126 RAN EVENT_EGS | ||
'''definequote''' 127 RAN TEST STATE | '''definequote''' 127 RAN TEST STATE | ||
Line 11: | Line 11: | ||
'''onevent''' [[EVENT_EGS]] | '''onevent''' [[EVENT_EGS]] | ||
ifactor | ifactor HEAVYHBOMB | ||
{ | { | ||
state teststate1 ''// after teststate1's return, return from EVENT_EGS!'' | state teststate1 ''// after teststate1's return, return from EVENT_EGS!'' | ||
Line 22: | Line 22: | ||
{ | { | ||
''// the concrete actor is irrelevant, only placeholder'' | ''// the concrete actor is irrelevant, only placeholder'' | ||
[[spawn]] | [[spawn]] HEAVYHBOMB ''// --> EVENT_EGS'' | ||
userquote 125 | userquote 125 | ||
} | } |
Revision as of 10:33, 23 December 2012
A return command is similar to break in that it stops code after the return from executing and thus can be used to exit a state early. However, a return proparates along a call chain of states, so that when the following code snippet is run, only quote 125 ("SPAWNED LIGHTEFFECT1") is displayed.
definequote 125 SPAWNED HEAVYHBOMB definequote 126 RAN EVENT_EGS definequote 127 RAN TEST STATE state teststate1 return userquote 127 ends onevent EVENT_EGS ifactor HEAVYHBOMB { state teststate1 // after teststate1's return, return from EVENT_EGS! userquote 126 } endevent onevent EVENT_LOADACTOR ifvare THISACTOR 0 { // the concrete actor is irrelevant, only placeholder spawn HEAVYHBOMB // --> EVENT_EGS userquote 125 } endevent
Replacing the return by a break in the above example would lead to quotes 126 and 125 being displayed (in that order) at run time.