c9ae1296d1e66380ce641df4946e93a1990a19e5
There are several initialization commands; they all serve distinct purposes. InitCommand is run exactly once; it sets initial state, typically state which never changes for the lifetime of the actor. Copied actors will not call this command again; they'll simply inherit the state from the original. BeginCommand is run from BeginScreen, and is intended to set the actor up for that run of the screen, as BeginScreen does for the screen. This includes setting text or graphics based on current game state; eg. "settext,GAMESTATE:GetCurrentSong():GetDisplayFullTitle()". OnCommand is also run from BeginScreen, and begins the actor's on tween. BeginCommand are mostly equivalent; they're run from the same place. BeginCommand is intended to be used from base XML actors; OnCommand is set by derived XML actors (explanation of this out of scope). Also, OnCommand is run inconsistently, at least in implementation, until the GenericTweenOn() transition is complete. BeginCommand is not. (As with all commands, this can be declared for the screen itself by using the "ScreenBeginCommand" metric--untested.)
Languages
C++
85.7%
Lua
4.3%
C
4.3%
Rich Text Format
2.3%
CMake
1.1%
Other
2%