mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-11 07:14:04 +09:00
tmpfs wip
This commit is contained in:
@@ -12,7 +12,7 @@ exports.Texture = function(w, h, bytes) {
|
||||
this.texData = bytes;
|
||||
|
||||
if (!Array.isArray(bytes) && !bytes.toString().startsWith("[B")) {
|
||||
throw "Texture data is not an instance of array";
|
||||
throw Error("Texture data is not an instance of array");
|
||||
}
|
||||
};
|
||||
exports.MonoTex = function(w, h, bits) {
|
||||
@@ -21,7 +21,7 @@ exports.MonoTex = function(w, h, bits) {
|
||||
this.texData = bits;
|
||||
|
||||
if (!Array.isArray(bits) && !bits.toString().startsWith("[B")) {
|
||||
throw "Texture data is not an instance of array";
|
||||
throw Error("Texture data is not an instance of array");
|
||||
}
|
||||
};
|
||||
exports.SpriteSheet = function(tilew, tileh, tex) {
|
||||
@@ -30,18 +30,18 @@ exports.SpriteSheet = function(tilew, tileh, tex) {
|
||||
this.texture = tex;
|
||||
|
||||
if (!tex instanceof exports.Texture) {
|
||||
throw "Texture is not an instance of exports.Texture";
|
||||
throw Error("Texture is not an instance of exports.Texture");
|
||||
}
|
||||
|
||||
this.getOffX = function(x) { // THIS, or: exports.SpriteSheet.prototype.getOffX
|
||||
let tx = this.tileWidth * (x|0);
|
||||
if (tx + this.tileWidth > this.texture.width) throw "Sprite x-offset of "+tx+" is greater than sprite width "+this.texture.width;
|
||||
if (tx + this.tileWidth > this.texture.width) throw Error("Sprite x-offset of "+tx+" is greater than sprite width "+this.texture.width);
|
||||
return tx;
|
||||
};
|
||||
|
||||
this.getOffY = function(y) {
|
||||
let ty = this.tileHeight * (y|0);
|
||||
if (ty + this.tileHeight > this.texture.height) throw "Sprite y-offset of "+ty+" is greater than sprite height "+this.texture.height;
|
||||
if (ty + this.tileHeight > this.texture.height) throw Error("Sprite y-offset of "+ty+" is greater than sprite height "+this.texture.height);
|
||||
return ty;
|
||||
};
|
||||
};
|
||||
|
||||
27
assets/disk0/tvdos/include/mload.js
Normal file
27
assets/disk0/tvdos/include/mload.js
Normal file
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
Loads files into the memory and returns their respective pointers. If the file was failed to load (file not found or
|
||||
out of memory), `null` will be used instead.
|
||||
|
||||
The path must be an absolute path including drive letter.
|
||||
|
||||
This program is not meant to be used by the end user, but the creators of packaged apps where the simple and easy way of
|
||||
pre-loading resources (e.g. graphical assets) into the memory is desirable.
|
||||
|
||||
This library requires TVDOS.SYS to be loaded.
|
||||
*/
|
||||
|
||||
|
||||
exports = function mload(paths) {
|
||||
return paths.map(path => {
|
||||
let f = files.open(path)
|
||||
let flen = f.size
|
||||
try {
|
||||
let p = sys.malloc(flen)
|
||||
f.pread(p, flen, 0)
|
||||
return p
|
||||
}
|
||||
catch (e) {
|
||||
return null
|
||||
}
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user