private void init(final String mapPath, final Properties props)
    {
        this.props = props;
        
        // Hajo: walls for all squares of this map
        if(props.get("walls") != null) {
            walls = getIntegers(props, "walls", '#');
        }
    
        // Hajo: Floor for all squares of this map that have no other floor
        //       Floors are randomly picked from the interval, including both borders.
        if(props.get("floors") != null) {
            standardGrounds = getIntegers(props, "floors", '.');
        }
        
        // Hajo: floor tile range for corridors
        if(props.get("corridor_floors") != null) {
            corridorFloors = getIntegers(props, "corridor_floors", '.');
        }
        
        // Hajo: standard floor for rooms
        // Hajo: floor tile range for corridors
        if(props.get("room_floors") != null) {
            roomFloors = getIntegers(props, "room_floors", '.');
        }
        
        if(props.get("room_features") != null) {
            roomFeatures = getIntegers(props, "room_features", '.');
        }

        roomWidthMin = getInt(props, "room_width_min", roomWidthMin);
        roomHeightMin = getInt(props, "room_height_min", roomHeightMin);
        roomWidthMax = getInt(props, "room_width_max", roomWidthMax);
        roomHeightMax = getInt(props, "room_height_max", roomHeightMax);
    
        roomGapHoriz = getInt(props, "room_gap_horiz", roomGapHoriz);
        roomGapVert = getInt(props, "room_gap_vert", roomGapVert);
        
        corridorWidth = getInt(props, "corridor_width", corridorWidth);
        
        hiddenWall = getInt(props, "hidden_wall", hiddenWall);
        outsideFloor = getInt(props, "outside_floor", outsideFloor);
        
        stairsUp = getInt(props, "stairs_up", stairsUp);
        door = getInt(props, "door", door);
        
        damagedFloorChance = getInt(props, "damaged_floor_chance", damagedFloorChance);
        viewRadius = getInt(props, "view_radius", viewRadius);

        // Hajo: at least 2 layers are needed.
        mapLayers = Math.max(getInt(props, "map_layers", mapLayers) , 2);
    }