private void PushState(GameState a_state)
 {
     a_state.Init(m_game);
     m_states.Add(a_state);
 }
 public void Cmd(string a_name, cmds a_cmd, GameState a_state)
 {
     StateCmd newCmd = new StateCmd(a_name, a_cmd, a_state);
     m_cmds.Add(newCmd);
 }
 private void PopState(GameState a_state)
 {
     m_states.Remove(a_state);
 }
 public StateCmd(string a_name, cmds a_cmd, GameState a_state)
 {
     m_name = a_name;
     m_cmd = a_cmd;
     m_state = a_state;
 }