Move loadFileAsync to js file
This commit is contained in:
		
							parent
							
								
									2c08238259
								
							
						
					
					
						commit
						27d55a776e
					
				
					 2 changed files with 44 additions and 43 deletions
				
			
		| 
						 | 
				
			
			@ -18,3 +18,46 @@ function _base64ToBytes(base64) {
 | 
			
		|||
    }
 | 
			
		||||
    return bytes;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
window.loadFileAsync = function(fullPath, callback) {
 | 
			
		||||
    // Make cache object
 | 
			
		||||
    if (!window.fileAsyncCache) window.fileAsyncCache = {};
 | 
			
		||||
 | 
			
		||||
    // Check if already loaded
 | 
			
		||||
    if (window.fileAsyncCache.hasOwnProperty(fullPath)) return callback();
 | 
			
		||||
 | 
			
		||||
    // Show spinner
 | 
			
		||||
    if (window.setBusy) window.setBusy();
 | 
			
		||||
 | 
			
		||||
    // Get mapping key
 | 
			
		||||
    const mappingKey = fullPath.toLowerCase().replace(new RegExp("\\.[^/.]+$"), "");
 | 
			
		||||
    const mappingValue = mapping[mappingKey];
 | 
			
		||||
 | 
			
		||||
    // Check if this is a folder
 | 
			
		||||
    if (!mappingValue || mappingValue.endsWith("h=")) {
 | 
			
		||||
        console.error("Skipping loading", fullPath, mappingValue);
 | 
			
		||||
        return callback();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Get target URL
 | 
			
		||||
    const iurl = "gameasync/" + mappingValue;
 | 
			
		||||
 | 
			
		||||
    // Get path and filename
 | 
			
		||||
    const path = "/game/" + mappingValue.substring(0, mappingValue.lastIndexOf("/"));
 | 
			
		||||
    const filename = mappingValue.substring(mappingValue.lastIndexOf("/") + 1).split("?")[0];
 | 
			
		||||
 | 
			
		||||
    // Delete original file if existent
 | 
			
		||||
    try {
 | 
			
		||||
        FS.unlink(path + "/" + filename);
 | 
			
		||||
    } catch (err) {}
 | 
			
		||||
 | 
			
		||||
    // Get the new file
 | 
			
		||||
    getLazyAsset(iurl, filename, () => {
 | 
			
		||||
        FS.createPreloadedFile(path, filename, iurl, true, true, function() {
 | 
			
		||||
            window.fileAsyncCache[fullPath] = 1;
 | 
			
		||||
            if (window.setNotBusy) window.setNotBusy();
 | 
			
		||||
            if (window.fileLoadedAsync) window.fileLoadedAsync(fullPath);
 | 
			
		||||
            callback();
 | 
			
		||||
        }, console.error);
 | 
			
		||||
    });
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue