question: public static MoveCommand [ ] values ( int f , GameOptions opts , boolean forwardIni ) { boolean manualShutdown = false , selfDestruct = false ; if ( opts != null ) { manualShutdown = opts . booleanOption ( "manual_shutdown" ) ; selfDestruct = opts . booleanOption ( "tacops_self_destruct" ) ; } ArrayList < MoveCommand > flaggedCmds = new ArrayList < MoveCommand > ( ) ; for ( MoveCommand cmd : MoveCommand . values ( ) ) { if ( ( cmd == MOVE_SHUTDOWN || cmd == MOVE_STARTUP ) && ! manualShutdown ) { continue ; } if ( cmd == MOVE_SELF_DESTRUCT && ! selfDestruct ) { continue ; } if ( cmd == MOVE_FORWARD_INI && ! forwardIni ) { continue ; } if ( ( cmd . flag & f ) == f ) { flaggedCmds . add ( cmd ) ; } } return flaggedCmds . toArray ( new MoveCommand [ 0 ] ) ; }
target:  Return a list of valid commands for the given parameters.