code: function(mapData, charToType, defaultTileType){
              var _this = this,
                  width = mapData[0].length,
                  height = mapData.length;
  
              this.width = width;
              this.height = height;
              this.reset();
  
              // loop over each coord in the Array2d (val will be undefined)
              this.each(function(val, x, y){
                  var char = mapData[y][x],
                      type = charToType[char];
                  if(type === void 0 && defaultTileType){
                      type = defaultTileType;
                  }
                  var tile = new RL.Tile(_this.game, type, x, y);
                  _this.set(x, y, tile);
              });
          }
docs: Loads Tile data from an array of strings
  @method loadTilesFromArrayString
  @param {Array} mapData - The array of strings to load.
  @param {Object} charToType - An object mapping string characters to Tile types (see Tile.Types[type]).
  @param {String} [defaultTileType] - The tile type to use if a character is not in charToType. This is used to allow characters representing entites or non-tile objects to be included in the mapData.
  @example
  
  'P' will be ignored and a floor tile will be placed at that position
  var mapData = [
  '####',
  '#..#',
  '#.P#',
  '####',
  ],
  
  charToType = {
  '#': 'wall',
  '.': 'floor'
  },
  defaultTileType = 'floor';
  
  map.loadTilesFromArrayString(mapData, charToType, defaultTileType);