// This function works with the base class to couple state classes to the
 // machine. In this example, the state machine is passed as the first
 // argument to setup. The BaseSampleState class expects this in its Setup()
 // function. In your own implementations, you can pass other arguments here
 protected override void SetupState(IFsmState state)
 {
     state.Setup(this);
 }