UpdateRACButton();
    public void selectEntity(int en) {	boolean isInfantry;	boolean infMoveLast =	    client.game.getOptions().booleanOption("inf_move_last");	boolean infMoveMulti =	    client.game.getOptions().booleanOption("inf_move_multi");        // hmm, sometimes this gets called when there's no ready entities?        if (client.game.getEntity(en) == null) {            System.err.println("MovementDisplay: tried to select non-existant entity: " + en);            System.err.println("MovementDisplay: sending ready signal...");            client.sendReady(true);            return;        }        // okay.        this.cen = en;	isInfantry = (ce() instanceof Infantry);	// If the current entity is Infantry, and infantry move last, then	// make sure that all other entities for the player have moved.	if ( isInfantry && infMoveLast && turnInfMoved == 0 ) {	    // Walk through the list of entities for this player.	    for ( int nextId = client.getNextEntityNum(en);		  nextId != en;		  nextId = client.getNextEntityNum(nextId) ) {		// If we find a non-Infantry entity, make the		// player move it instead, and stop looping.		if ( !(client.game.getEntity(nextId) instanceof Infantry) ) {		    this.cen = nextId;		    isInfantry = false;		    break;		}	    } // Check the player's next entity.	} // End check-inf_move_last	// If the current entity is not infantry, and we're in a middle of an	// infantry move block, make sure that the player has no other infantry	else if ( !isInfantry && infMoveMulti && 		  (turnInfMoved % Game.INF_MOVE_MULTI) > 0 ) {	    // Walk through the list of entities for this player.	    for ( int nextId = client.getNextEntityNum(en);		  nextId != en;		  nextId = client.getNextEntityNum(nextId) ) {		// If we find an Infantry platoon, make the		// player move it instead, and stop looping.		if ( client.game.getEntity(nextId) instanceof Infantry ) {		    this.cen = nextId;		    isInfantry = true;		    break;		}	    } // Check the player's next entity.	    // If the current entity isn't infantry, all player's infantry	    // have been moved; reset the counter so we never check again.	    if ( !isInfantry ) {		turnInfMoved = 0;	    }	} // End check-inf_move_multi        md = new MovementData();        cmd = new MovementData();        gear = Compute.GEAR_LAND;        butWalk.setEnabled(ce().getWalkMP() > 0);        butJump.setEnabled(ce().getJumpMP() > 0);        butBackup.setEnabled(ce().getWalkMP() > 0);	// Infantry can't charge or DFA.	if ( isInfantry ) {	    butCharge.setEnabled(false);	    butDfa.setEnabled(false);	} else {        butCharge.setEnabled(ce().getWalkMP() > 0);        butDfa.setEnabled(ce().getJumpMP() > 0);	}        butTurn.setEnabled(ce().getWalkMP() > 0 || ce().getJumpMP() > 0);                if (ce().isProne()) {            butUp.setEnabled(true);        } else {            butDown.setEnabled(false);        }        butFlee.setEnabled(Compute.canEntityFlee(client.game, cen));        client.game.board.highlight(ce().getPosition());        client.game.board.select(null);        client.game.board.cursor(null);        client.mechD.displayEntity(ce());        client.mechD.showPanel("movement");        client.bv.centerOnHex(ce().getPosition());    }