resourceMap = {};

async function loadImages(urlList) {
  for(let url of urlList) {
    let rv = await loadImage(url);
    if(!rv) {
      console.error("Unable to load image '" + url + "'.");
    }
  }
}

async function loadImage(url) {
  return new Promise(resolve => {
    let img = new Image();
    img.onload = () => {
      resourceMap[url] = img;
      resolve(true);
    }
    img.onerror = () => {
      resolve(false);
    }
    resourceMap[url] = false;
    img.src = url;
  });
}

function getImage(url) {
  if(resourceMap.hasOwnProperty(url) == false) {
    console.error("Image '" + url + "' does not exist");
    return null;
  } else if(resourceMap[url] == false) {
    console.error("Image '" + url + "' is not loaded.");
    return null;
  }
  return resourceMap[url];
}