if (!game.board.contains(dest)) {
if (!game.getBoard().contains(dest)) {
    private void doEntityDisplacement(Entity entity, Coords src, Coords dest,    PilotingRollData roll) {        if (!game.board.contains(dest)) {            // set position anyway, for pushes moving through and stuff like            // that            entity.setPosition(dest);            if (!entity.isDoomed()) {                game.removeEntity(entity.getId(),                        Entity.REMOVE_PUSHED);                send(createRemoveEntityPacket(entity.getId(),                                    Entity.REMOVE_PUSHED));                phaseReport.append("\n*** " ).append( entity.getDisplayName() ).append( " has been forced from the field. ***\n");                // TODO: remove passengers and swarmers.            }            return;        }        final IHex srcHex = game.board.getHex(src);        final IHex destHex = game.board.getHex(dest);        final int direction = src.direction(dest);        // Handle null hexes.        if ( srcHex == null || destHex == null ) {            System.err.println( "Can not displace " + entity.getShortName() +                                " from " + src +                                " to " + dest + "." );            return;        }        int fallElevation = entity.elevationOccupied(srcHex) - entity.elevationOccupied(destHex);        if (fallElevation > 1) {            doEntityFallsInto(entity, src, dest, roll);            return;        } else {            Entity violation = Compute.stackingViolation(game, entity.getId(), dest);            if (violation == null) {                // move and roll normally                phaseReport.append("    "                ).append( entity.getDisplayName()                ).append( " is displaced into hex "                ).append( dest.getBoardNum() ).append( ".\n");                entity.setPosition(dest);                doEntityDisplacementMinefieldCheck(entity, src, dest);                doSetLocationsExposure(entity, destHex, destHex.hasPavement(), false);                if (roll != null) {                    game.addPSR(roll);                }                // Update the entity's postion on the client.                entityUpdate( entity.getId() );                return;            } else {                // domino effect: move & displace target                phaseReport.append("    "                ).append( entity.getDisplayName()                ).append( " is displaced into hex "                ).append( dest.getBoardNum() ).append( ", violating stacking with "                ).append( violation.getDisplayName() ).append( ".\n");                entity.setPosition(dest);                doEntityDisplacementMinefieldCheck(entity, src, dest);                if (roll != null) {                    game.addPSR(roll);                }                doEntityDisplacement(violation, dest, dest.translated(direction), new PilotingRollData(violation.getId(), 0, "domino effect"));                // Update the violating entity's postion on the client,                // if it didn't get displaced off the board.                if ( !game.isOutOfGame(violation) ) {                    entityUpdate( violation.getId() );                }                return;            }        }    }