@4bitlabs/sci0 2.5.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/dist/models/draw-command.d.ts +29 -15
- package/dist/models/draw-command.d.ts.map +1 -1
- package/dist/models/draw-command.js +7 -1
- package/dist/models/draw-command.js.map +1 -1
- package/dist/models/resource-id.d.ts.map +1 -1
- package/dist/models/resource-id.js +3 -2
- package/dist/models/resource-id.js.map +1 -1
- package/dist/models/vec2.d.ts +0 -1
- package/dist/models/vec2.d.ts.map +1 -1
- package/dist/models/vec2.js.map +1 -1
- package/dist/parsers/compression.d.ts.map +1 -1
- package/dist/parsers/compression.js +4 -3
- package/dist/parsers/compression.js.map +1 -1
- package/dist/parsers/mapping.d.ts.map +1 -1
- package/dist/parsers/pic/handlers.d.ts +7 -3
- package/dist/parsers/pic/handlers.d.ts.map +1 -1
- package/dist/parsers/pic/handlers.js +89 -92
- package/dist/parsers/pic/handlers.js.map +1 -1
- package/dist/parsers/pic/parser.d.ts.map +1 -1
- package/dist/parsers/pic/parser.js +11 -8
- package/dist/parsers/pic/parser.js.map +1 -1
- package/dist/parsers/pic/points.d.ts +3 -3
- package/dist/parsers/pic/points.d.ts.map +1 -1
- package/dist/parsers/pic/points.js.map +1 -1
- package/dist/screen/render-pic.d.ts +2 -0
- package/dist/screen/render-pic.d.ts.map +1 -1
- package/dist/screen/render-pic.js +9 -17
- package/dist/screen/render-pic.js.map +1 -1
- package/dist/screen/screen-buffer.d.ts +1 -1
- package/dist/screen/screen-buffer.d.ts.map +1 -1
- package/dist/screen/screen-buffer.js +19 -21
- package/dist/screen/screen-buffer.js.map +1 -1
- package/dist/screen/screen.d.ts +3 -0
- package/dist/screen/screen.d.ts.map +1 -1
- package/dist/screen/tools/create-blitter.d.ts +5 -0
- package/dist/screen/tools/create-blitter.d.ts.map +1 -0
- package/dist/screen/tools/create-blitter.js +22 -0
- package/dist/screen/tools/create-blitter.js.map +1 -0
- package/dist/screen/tools/create-brush.d.ts +1 -2
- package/dist/screen/tools/create-brush.d.ts.map +1 -1
- package/dist/screen/tools/create-brush.js.map +1 -1
- package/dist/screen/tools/create-flood-fill.d.ts +1 -2
- package/dist/screen/tools/create-flood-fill.d.ts.map +1 -1
- package/dist/screen/tools/create-flood-fill.js.map +1 -1
- package/dist/screen/tools/index.d.ts +1 -0
- package/dist/screen/tools/index.d.ts.map +1 -1
- package/dist/screen/tools/index.js +3 -1
- package/dist/screen/tools/index.js.map +1 -1
- package/dist/utils/exhaustive.d.ts +2 -0
- package/dist/utils/exhaustive.d.ts.map +1 -0
- package/dist/utils/exhaustive.js +8 -0
- package/dist/utils/exhaustive.js.map +1 -0
- package/dist/utils/repeat.d.ts.map +1 -1
- package/package.json +5 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
export type { ResourceHeader } from './models/resource-header';
|
|
2
2
|
export type { ResourceMap } from './models/resource-map';
|
|
3
3
|
export type { ResourceType } from './models/resource-type';
|
|
4
|
-
export type { DrawCommand } from './models/draw-command';
|
|
4
|
+
export type { PatternCode, DrawCodes, SetPaletteCommand, UpdatePaletteCommand, BrushCommand, FillCommand, PolylineCommand, EmbeddedCelCommand, DrawCommand, } from './models/draw-command';
|
|
5
|
+
export { DrawMode } from './models/draw-command';
|
|
5
6
|
export { getResourceNumber, getResourceType, getResourceIdStr, getResourceTypeStr, isResourceType, isResourceNumber, } from './models/resource-id';
|
|
6
7
|
export { ResourceTypes } from './models/resource-type';
|
|
7
8
|
export { renderPic, loopPaddingFilter } from './screen';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC/D,YAAY,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAC3D,YAAY,EACV,WAAW,EACX,SAAS,EACT,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,GACZ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,gBAAgB,GACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAExD,OAAO,EACL,QAAQ,IAAI,gBAAgB,EAC5B,OAAO,IAAI,uBAAuB,GACnC,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,SAAS,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,SAAS,IAAI,QAAQ,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;AAEvD,OAAO,EAAE,KAAK,IAAI,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,KAAK,GAAG,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnD,4CAA4C;AAC5C,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,0CAA0C;AAC1C,eAAO,MAAM,IAAI;;CAEhB,CAAC;AAEF,yCAAyC;AACzC,eAAO,MAAM,GAAG;;CAEf,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Pic = exports.View = exports.Font = exports.Cursor = exports.parsePic = exports.parseView = exports.parseFont = exports.parseCursor = exports.decompress = exports.parseHeaderFrom = exports.getPayloadLength = exports.consumeNextMappingChunk = exports.parseAllMappings = exports.loopPaddingFilter = exports.renderPic = exports.ResourceTypes = exports.isResourceNumber = exports.isResourceType = exports.getResourceTypeStr = exports.getResourceIdStr = exports.getResourceType = exports.getResourceNumber = void 0;
|
|
3
|
+
exports.Pic = exports.View = exports.Font = exports.Cursor = exports.parsePic = exports.parseView = exports.parseFont = exports.parseCursor = exports.decompress = exports.parseHeaderFrom = exports.getPayloadLength = exports.consumeNextMappingChunk = exports.parseAllMappings = exports.loopPaddingFilter = exports.renderPic = exports.ResourceTypes = exports.isResourceNumber = exports.isResourceType = exports.getResourceTypeStr = exports.getResourceIdStr = exports.getResourceType = exports.getResourceNumber = exports.DrawMode = void 0;
|
|
4
|
+
var draw_command_1 = require("./models/draw-command");
|
|
5
|
+
Object.defineProperty(exports, "DrawMode", { enumerable: true, get: function () { return draw_command_1.DrawMode; } });
|
|
4
6
|
var resource_id_1 = require("./models/resource-id");
|
|
5
7
|
Object.defineProperty(exports, "getResourceNumber", { enumerable: true, get: function () { return resource_id_1.getResourceNumber; } });
|
|
6
8
|
Object.defineProperty(exports, "getResourceType", { enumerable: true, get: function () { return resource_id_1.getResourceType; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAcA,sDAAiD;AAAxC,wGAAA,QAAQ,OAAA;AAEjB,oDAO8B;AAN5B,gHAAA,iBAAiB,OAAA;AACjB,8GAAA,eAAe,OAAA;AACf,+GAAA,gBAAgB,OAAA;AAChB,iHAAA,kBAAkB,OAAA;AAClB,6GAAA,cAAc,OAAA;AACd,+GAAA,gBAAgB,OAAA;AAElB,wDAAuD;AAA9C,8GAAA,aAAa,OAAA;AAEtB,mCAAwD;AAA/C,mGAAA,SAAS,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AAErC,6CAG2B;AAFzB,2GAAA,QAAQ,OAAoB;AAC5B,kHAAA,OAAO,OAA2B;AAEpC,6DAA8E;AAArE,mHAAA,gBAAgB,OAAA;AAAE,kHAAA,eAAe,OAAA;AAC1C,qDAAmD;AAA1C,yGAAA,UAAU,OAAA;AACnB,6CAA4D;AAKnD,4FALa,kBAAW,OAKb;AAJpB,yCAAwD;AAIlC,0FAJA,gBAAS,OAIA;AAH/B,yCAAwD;AAGvB,0FAHX,gBAAS,OAGW;AAF1C,uCAAsD;AAEV,yFAFtB,eAAQ,OAEsB;AAMpD,4CAA4C;AAC/B,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE,kBAAW;CACvB,CAAC;AAEF,0CAA0C;AAC7B,QAAA,IAAI,GAAG;IAClB,SAAS,EAAE,gBAAS;CACrB,CAAC;AAEF,0CAA0C;AAC7B,QAAA,IAAI,GAAG;IAClB,SAAS,EAAE,gBAAS;CACrB,CAAC;AAEF,yCAAyC;AAC5B,QAAA,GAAG,GAAG;IACjB,SAAS,EAAE,eAAQ;CACpB,CAAC"}
|
|
@@ -1,43 +1,57 @@
|
|
|
1
1
|
import { Cel } from './cel';
|
|
2
|
-
import {
|
|
2
|
+
import { Vec2 } from './vec2';
|
|
3
3
|
export declare enum DrawMode {
|
|
4
4
|
Visual = 1,
|
|
5
5
|
Priority = 2,
|
|
6
6
|
Control = 4
|
|
7
7
|
}
|
|
8
|
-
export
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
type
|
|
8
|
+
export declare const isVisualMode: (mode: DrawMode) => boolean;
|
|
9
|
+
export declare const isPriorityMode: (mode: DrawMode) => boolean;
|
|
10
|
+
export declare const isControlMode: (mode: DrawMode) => boolean;
|
|
11
|
+
export type PatternCode = readonly [
|
|
12
|
+
size: number,
|
|
13
|
+
isRect: boolean,
|
|
14
|
+
isSpray: boolean
|
|
15
|
+
];
|
|
16
|
+
export type DrawCodes = readonly [
|
|
17
|
+
visual: number,
|
|
18
|
+
priority: number,
|
|
19
|
+
control: number
|
|
20
|
+
];
|
|
21
|
+
export type SetPaletteCommand = readonly [
|
|
22
|
+
mode: 'SET_PALETTE',
|
|
23
|
+
pal: number,
|
|
24
|
+
colors: readonly number[]
|
|
25
|
+
];
|
|
26
|
+
export type UpdatePaletteCommand = readonly [
|
|
12
27
|
mode: 'UPDATE_PALETTE',
|
|
13
|
-
entries: [pal: number, idx: number, color: number][]
|
|
28
|
+
entries: readonly [pal: number, idx: number, color: number][]
|
|
14
29
|
];
|
|
15
|
-
type BrushCommand = [
|
|
30
|
+
export type BrushCommand = readonly [
|
|
16
31
|
mode: 'BRUSH',
|
|
17
32
|
drawMode: DrawMode,
|
|
18
33
|
drawCodes: DrawCodes,
|
|
19
34
|
patternCode: PatternCode,
|
|
20
35
|
textureCode: number,
|
|
21
|
-
pos:
|
|
36
|
+
pos: Vec2
|
|
22
37
|
];
|
|
23
|
-
type FillCommand = [
|
|
38
|
+
export type FillCommand = readonly [
|
|
24
39
|
mode: 'FILL',
|
|
25
40
|
drawMode: DrawMode,
|
|
26
41
|
drawCodes: DrawCodes,
|
|
27
|
-
pos:
|
|
42
|
+
pos: Vec2
|
|
28
43
|
];
|
|
29
|
-
type PolylineCommand = [
|
|
44
|
+
export type PolylineCommand = readonly [
|
|
30
45
|
mode: 'PLINE',
|
|
31
46
|
drawMode: DrawMode,
|
|
32
47
|
drawCodes: DrawCodes,
|
|
33
|
-
...points:
|
|
48
|
+
...points: Vec2[]
|
|
34
49
|
];
|
|
35
|
-
type EmbeddedCelCommand = [
|
|
50
|
+
export type EmbeddedCelCommand = readonly [
|
|
36
51
|
mode: 'CEL',
|
|
37
52
|
drawMode: DrawMode,
|
|
38
|
-
pos:
|
|
53
|
+
pos: Vec2,
|
|
39
54
|
cel: Cel
|
|
40
55
|
];
|
|
41
56
|
export type DrawCommand = BrushCommand | FillCommand | PolylineCommand | SetPaletteCommand | UpdatePaletteCommand | EmbeddedCelCommand;
|
|
42
|
-
export {};
|
|
43
57
|
//# sourceMappingURL=draw-command.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw-command.d.ts","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"draw-command.d.ts","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAC5B,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,oBAAY,QAAQ;IAClB,MAAM,IAAQ;IACd,QAAQ,IAAQ;IAChB,OAAO,IAAQ;CAChB;AAED,eAAO,MAAM,YAAY,SAAU,QAAQ,YACiB,CAAC;AAE7D,eAAO,MAAM,cAAc,SAAU,QAAQ,YACmB,CAAC;AAEjE,eAAO,MAAM,aAAa,SAAU,QAAQ,YACkB,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG,SAAS;IACjC,IAAI,EAAE,MAAM;IACZ,MAAM,EAAE,OAAO;IACf,OAAO,EAAE,OAAO;CACjB,CAAC;AAEF,MAAM,MAAM,SAAS,GAAG,SAAS;IAC/B,MAAM,EAAE,MAAM;IACd,QAAQ,EAAE,MAAM;IAChB,OAAO,EAAE,MAAM;CAChB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,SAAS;IACvC,IAAI,EAAE,aAAa;IACnB,GAAG,EAAE,MAAM;IACX,MAAM,EAAE,SAAS,MAAM,EAAE;CAC1B,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,SAAS;IAC1C,IAAI,EAAE,gBAAgB;IACtB,OAAO,EAAE,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,EAAE;CAC9D,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,SAAS;IAClC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,WAAW,EAAE,WAAW;IACxB,WAAW,EAAE,MAAM;IACnB,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,SAAS;IACjC,IAAI,EAAE,MAAM;IACZ,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,GAAG,EAAE,IAAI;CACV,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,SAAS;IACrC,IAAI,EAAE,OAAO;IACb,QAAQ,EAAE,QAAQ;IAClB,SAAS,EAAE,SAAS;IACpB,GAAG,MAAM,EAAE,IAAI,EAAE;CAClB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,SAAS;IACxC,IAAI,EAAE,KAAK;IACX,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,IAAI;IACT,GAAG,EAAE,GAAG;CACT,CAAC;AAEF,MAAM,MAAM,WAAW,GACnB,YAAY,GACZ,WAAW,GACX,eAAe,GACf,iBAAiB,GACjB,oBAAoB,GACpB,kBAAkB,CAAC"}
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DrawMode = void 0;
|
|
3
|
+
exports.isControlMode = exports.isPriorityMode = exports.isVisualMode = exports.DrawMode = void 0;
|
|
4
4
|
var DrawMode;
|
|
5
5
|
(function (DrawMode) {
|
|
6
6
|
DrawMode[DrawMode["Visual"] = 1] = "Visual";
|
|
7
7
|
DrawMode[DrawMode["Priority"] = 2] = "Priority";
|
|
8
8
|
DrawMode[DrawMode["Control"] = 4] = "Control";
|
|
9
9
|
})(DrawMode || (exports.DrawMode = DrawMode = {}));
|
|
10
|
+
const isVisualMode = (mode) => (mode & DrawMode.Visual) === DrawMode.Visual;
|
|
11
|
+
exports.isVisualMode = isVisualMode;
|
|
12
|
+
const isPriorityMode = (mode) => (mode & DrawMode.Priority) === DrawMode.Priority;
|
|
13
|
+
exports.isPriorityMode = isPriorityMode;
|
|
14
|
+
const isControlMode = (mode) => (mode & DrawMode.Control) === DrawMode.Control;
|
|
15
|
+
exports.isControlMode = isControlMode;
|
|
10
16
|
//# sourceMappingURL=draw-command.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draw-command.js","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":";;;AAGA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,
|
|
1
|
+
{"version":3,"file":"draw-command.js","sourceRoot":"","sources":["../../src/models/draw-command.ts"],"names":[],"mappings":";;;AAGA,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,2CAAc,CAAA;IACd,+CAAgB,CAAA;IAChB,6CAAe,CAAA;AACjB,CAAC,EAJW,QAAQ,wBAAR,QAAQ,QAInB;AAEM,MAAM,YAAY,GAAG,CAAC,IAAc,EAAE,EAAE,CAC5C,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAc,KAAK,QAAQ,CAAC,MAAM,CAAC;AADhD,QAAA,YAAY,gBACoC;AAEtD,MAAM,cAAc,GAAG,CAAC,IAAc,EAAE,EAAE,CAC9C,CAAC,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAc,KAAK,QAAQ,CAAC,QAAQ,CAAC;AADpD,QAAA,cAAc,kBACsC;AAE1D,MAAM,aAAa,GAAG,CAAC,IAAc,EAAE,EAAE,CAC7C,CAAC,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAc,KAAK,QAAQ,CAAC,OAAO,CAAC;AADlD,QAAA,aAAa,iBACqC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-id.d.ts","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-id.d.ts","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAI/C,eAAO,MAAM,eAAe,OAAQ,MAAM,KAAG,YAChB,CAAC;AAE9B,eAAO,MAAM,iBAAiB,OAAQ,MAAM,KAAG,MAA8B,CAAC;AAE9E,eAAO,MAAM,gBAAgB,OAAQ,MAAM,WAC0B,CAAC;AAEtE,eAAO,MAAM,kBAAkB,OAAQ,MAAM,oGA0B5C,CAAC;AAEF,KAAK,mBAAmB,GAAG,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;AAEnD,eAAO,MAAM,cAAc,aACd,YAAY,EAAE,KAAG,mBAES,CAAC;AAExC,eAAO,MAAM,gBAAgB,eACd,MAAM,EAAE,KAAG,mBAEiB,CAAC"}
|
|
@@ -25,11 +25,12 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.isResourceNumber = exports.isResourceType = exports.getResourceTypeStr = exports.getResourceIdStr = exports.getResourceNumber = exports.getResourceType = void 0;
|
|
27
27
|
const ResourceTypes = __importStar(require("./resource-type"));
|
|
28
|
+
const exhaustive_1 = require("../utils/exhaustive");
|
|
28
29
|
const getResourceType = (id) => (id >>> 11);
|
|
29
30
|
exports.getResourceType = getResourceType;
|
|
30
31
|
const getResourceNumber = (id) => id & 2047;
|
|
31
32
|
exports.getResourceNumber = getResourceNumber;
|
|
32
|
-
const getResourceIdStr = (id) => `(${(0, exports.getResourceTypeStr)(id)}:${(0, exports.getResourceNumber)(id)})`;
|
|
33
|
+
const getResourceIdStr = (id) => `(${(0, exports.getResourceTypeStr)(id)}:${(0, exports.getResourceNumber)(id).toString(10)})`;
|
|
33
34
|
exports.getResourceIdStr = getResourceIdStr;
|
|
34
35
|
const getResourceTypeStr = (id) => {
|
|
35
36
|
const type = (0, exports.getResourceType)(id);
|
|
@@ -55,7 +56,7 @@ const getResourceTypeStr = (id) => {
|
|
|
55
56
|
case ResourceTypes.PATCH_TYPE:
|
|
56
57
|
return 'Patch';
|
|
57
58
|
default:
|
|
58
|
-
|
|
59
|
+
(0, exhaustive_1.exhaustive)('Unsupported resource type', type);
|
|
59
60
|
}
|
|
60
61
|
};
|
|
61
62
|
exports.getResourceTypeStr = getResourceTypeStr;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resource-id.js","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAiD;AAE1C,MAAM,eAAe,GAAG,CAAC,EAAU,EAAgB,EAAE,CAC1D,CAAC,EAAE,KAAK,EAAE,CAAiB,CAAC;AADjB,QAAA,eAAe,mBACE;AAEvB,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,EAAE,GAAG,IAAe,CAAC;AAAjE,QAAA,iBAAiB,qBAAgD;AAEvE,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE,CAC7C,IAAI,IAAA,0BAAkB,EAAC,EAAE,CAAC,IAAI,IAAA,yBAAiB,EAAC,EAAE,CAAC,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"resource-id.js","sourceRoot":"","sources":["../../src/models/resource-id.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,+DAAiD;AACjD,oDAAiD;AAE1C,MAAM,eAAe,GAAG,CAAC,EAAU,EAAgB,EAAE,CAC1D,CAAC,EAAE,KAAK,EAAE,CAAiB,CAAC;AADjB,QAAA,eAAe,mBACE;AAEvB,MAAM,iBAAiB,GAAG,CAAC,EAAU,EAAU,EAAE,CAAC,EAAE,GAAG,IAAe,CAAC;AAAjE,QAAA,iBAAiB,qBAAgD;AAEvE,MAAM,gBAAgB,GAAG,CAAC,EAAU,EAAE,EAAE,CAC7C,IAAI,IAAA,0BAAkB,EAAC,EAAE,CAAC,IAAI,IAAA,yBAAiB,EAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC;AADzD,QAAA,gBAAgB,oBACyC;AAE/D,MAAM,kBAAkB,GAAG,CAAC,EAAU,EAAE,EAAE;IAC/C,MAAM,IAAI,GAAG,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC;IACjC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC,QAAQ;YACzB,OAAO,KAAK,CAAC;QACf,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,OAAO,CAAC;QACjB,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,OAAO,CAAC;QACjB,KAAK,aAAa,CAAC,SAAS;YAC1B,OAAO,MAAM,CAAC;QAChB,KAAK,aAAa,CAAC,WAAW;YAC5B,OAAO,QAAQ,CAAC;QAClB,KAAK,aAAa,CAAC,UAAU;YAC3B,OAAO,OAAO,CAAC;QACjB;YACE,IAAA,uBAAU,EAAC,2BAA2B,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;AACH,CAAC,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B;AAIK,MAAM,cAAc,GACzB,CAAC,GAAG,KAAqB,EAAuB,EAAE,CAClD,CAAC,EAAU,EAAW,EAAE,CACtB,KAAK,CAAC,QAAQ,CAAC,IAAA,uBAAe,EAAC,EAAE,CAAC,CAAC,CAAC;AAH3B,QAAA,cAAc,kBAGa;AAEjC,MAAM,gBAAgB,GAC3B,CAAC,GAAG,OAAiB,EAAuB,EAAE,CAC9C,CAAC,EAAU,EAAW,EAAE,CACtB,OAAO,CAAC,QAAQ,CAAC,IAAA,yBAAiB,EAAC,EAAE,CAAC,CAAC,CAAC;AAH/B,QAAA,gBAAgB,oBAGe"}
|
package/dist/models/vec2.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../src/models/vec2.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"vec2.d.ts","sourceRoot":"","sources":["../../src/models/vec2.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAEpC,eAAO,MAAM,IAAI;;;;sBAYG,MAAM,KAAK,MAAM;CAKpC,CAAC"}
|
package/dist/models/vec2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vec2.js","sourceRoot":"","sources":["../../src/models/vec2.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"vec2.js","sourceRoot":"","sources":["../../src/models/vec2.ts"],"names":[],"mappings":";;;AAEa,QAAA,IAAI,GAAG;IAClB,MAAM;QACJ,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IACD,KAAK,CAAC,MAAY;QAChB,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,GAAS,EAAE,CAAO;QACrB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACd,OAAO,GAAG,CAAC;IACb,CAAC;IACD,GAAG,CAAC,GAAS,EAAE,CAAS,EAAE,CAAS;QACjC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,OAAO,GAAG,CAAC;IACb,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"compression.d.ts","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":"AA4BA,eAAO,MAAM,UAAU,SACf,MAAM,GAAG,OAAO,UACd,MAAM,SACP,UAAU,KAChB,UAmBF,CAAC"}
|
|
@@ -4,6 +4,7 @@ exports.decompress = void 0;
|
|
|
4
4
|
const huffman_1 = require("@4bitlabs/codecs/huffman");
|
|
5
5
|
const lzw_1 = require("@4bitlabs/codecs/lzw");
|
|
6
6
|
const comp3_1 = require("@4bitlabs/codecs/comp3");
|
|
7
|
+
const exhaustive_1 = require("../utils/exhaustive");
|
|
7
8
|
const sci0Supported = (it) => typeof it === 'number' && Number.isInteger(it) && [0, 1, 2].includes(it);
|
|
8
9
|
const sci01Supported = (it) => typeof it === 'number' && Number.isInteger(it) && [0, 1, 2].includes(it);
|
|
9
10
|
const SCI0 = {
|
|
@@ -20,16 +21,16 @@ const decompress = (mode, method, bytes) => {
|
|
|
20
21
|
switch (mode) {
|
|
21
22
|
case 'sci0': {
|
|
22
23
|
if (!sci0Supported(method))
|
|
23
|
-
throw new Error(`unsupported compression algorithm: ${method}`);
|
|
24
|
+
throw new Error(`unsupported compression algorithm: ${method.toString(10)}`);
|
|
24
25
|
return SCI0[method](bytes);
|
|
25
26
|
}
|
|
26
27
|
case 'sci01': {
|
|
27
28
|
if (!sci01Supported(method))
|
|
28
|
-
throw new Error(`unsupported compression algorithm: ${method}`);
|
|
29
|
+
throw new Error(`unsupported compression algorithm: ${method.toString(10)}`);
|
|
29
30
|
return SCI01[method](bytes);
|
|
30
31
|
}
|
|
31
32
|
default:
|
|
32
|
-
|
|
33
|
+
(0, exhaustive_1.exhaustive)('unsupported compression mode', mode);
|
|
33
34
|
}
|
|
34
35
|
};
|
|
35
36
|
exports.decompress = decompress;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":";;;AAAA,sDAAmE;AACnE,8CAA2D;AAC3D,kDAA+D;
|
|
1
|
+
{"version":3,"file":"compression.js","sourceRoot":"","sources":["../../src/parsers/compression.ts"],"names":[],"mappings":";;;AAAA,sDAAmE;AACnE,8CAA2D;AAC3D,kDAA+D;AAE/D,oDAAiD;AAMjD,MAAM,aAAa,GAAG,CAAC,EAAW,EAAwB,EAAE,CAC1D,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE3E,MAAM,cAAc,GAAG,CAAC,EAAW,EAAyB,EAAE,CAC5D,OAAO,EAAE,KAAK,QAAQ,IAAI,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAE3E,MAAM,IAAI,GAAyC;IACjD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,YAAS,EAAC,KAAK,EAAE,EAAE,YAAY,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;IACjE,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAa,EAAC,KAAK,CAAC;CACnC,CAAC;AAEF,MAAM,KAAK,GAA0C;IACnD,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK;IACnB,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,gBAAa,EAAC,KAAK,CAAC;IAClC,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,IAAA,cAAW,EAAC,KAAK,CAAC;CACjC,CAAC;AAEK,MAAM,UAAU,GAAG,CACxB,IAAsB,EACtB,MAAc,EACd,KAAiB,EACL,EAAE;IACd,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAC5D,CAAC;YACJ,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBACzB,MAAM,IAAI,KAAK,CACb,sCAAsC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAC5D,CAAC;YACJ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;QAC9B,CAAC;QACD;YACE,IAAA,uBAAU,EAAC,8BAA8B,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;AACH,CAAC,CAAC;AAvBW,QAAA,UAAU,cAuBrB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/parsers/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAuBrD,eAAO,MAAM,OAAO,UACX,UAAU,
|
|
1
|
+
{"version":3,"file":"mapping.d.ts","sourceRoot":"","sources":["../../src/parsers/mapping.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAuBrD,eAAO,MAAM,OAAO,UACX,UAAU,YACP,CAAC,CAAC,EAAE,WAAW,KAAK,IAAI,KACjC,IAAI,GAAG,UAUT,CAAC;AAEF,eAAO,MAAM,QAAQ,UAAW,UAAU,KAAG,CAAC,WAAW,EAAE,EAAE,OAAO,CAInE,CAAC"}
|
|
@@ -2,8 +2,12 @@ import { BitReader } from '@4bitlabs/readers';
|
|
|
2
2
|
import { OpCode } from './op-codes';
|
|
3
3
|
import { PicState } from './pic-state';
|
|
4
4
|
import { DrawCommand } from '../../models/draw-command';
|
|
5
|
-
export
|
|
6
|
-
|
|
7
|
-
|
|
5
|
+
export interface CodeHandlerContext {
|
|
6
|
+
r: BitReader;
|
|
7
|
+
state: PicState;
|
|
8
|
+
push(...cmds: DrawCommand[]): void;
|
|
9
|
+
}
|
|
10
|
+
type CodeHandler = (ctx: CodeHandlerContext) => void;
|
|
11
|
+
export declare const CodeHandlers: Record<Exclude<OpCode, OpCode.Done>, CodeHandler>;
|
|
8
12
|
export {};
|
|
9
13
|
//# sourceMappingURL=handlers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/parsers/pic/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAoC,MAAM,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAY,MAAM,2BAA2B,CAAC;AAKlE,
|
|
1
|
+
{"version":3,"file":"handlers.d.ts","sourceRoot":"","sources":["../../../src/parsers/pic/handlers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAoC,MAAM,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,OAAO,EAAE,WAAW,EAAY,MAAM,2BAA2B,CAAC;AAKlE,MAAM,WAAW,kBAAkB;IACjC,CAAC,EAAE,SAAS,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC;IAChB,IAAI,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;CACpC;AAED,KAAK,WAAW,GAAG,CAAC,GAAG,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAErD,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAmJ1E,CAAC"}
|
|
@@ -1,87 +1,87 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.CodeHandlers =
|
|
3
|
+
exports.CodeHandlers = void 0;
|
|
4
4
|
const op_codes_1 = require("./op-codes");
|
|
5
5
|
const points_1 = require("./points");
|
|
6
6
|
const draw_command_1 = require("../../models/draw-command");
|
|
7
7
|
const vec2_1 = require("../../models/vec2");
|
|
8
8
|
const repeat_1 = require("../../utils/repeat");
|
|
9
9
|
const cel_1 = require("../cel");
|
|
10
|
-
exports.IS_DONE = Symbol('done');
|
|
11
10
|
exports.CodeHandlers = {
|
|
12
|
-
[op_codes_1.OpCode.SetVisual](
|
|
11
|
+
[op_codes_1.OpCode.SetVisual]({ r, state }) {
|
|
13
12
|
const [, priorityCode, controlCode] = state.drawCodes;
|
|
14
|
-
const visualCode =
|
|
13
|
+
const visualCode = r.read32(8);
|
|
15
14
|
state.drawCodes = [visualCode, priorityCode, controlCode];
|
|
16
15
|
state.drawMode |= draw_command_1.DrawMode.Visual;
|
|
17
16
|
},
|
|
18
|
-
[op_codes_1.OpCode.ClearVisual](
|
|
17
|
+
[op_codes_1.OpCode.ClearVisual]({ state }) {
|
|
19
18
|
state.drawMode &= ~draw_command_1.DrawMode.Visual;
|
|
20
19
|
},
|
|
21
|
-
[op_codes_1.OpCode.SetPriority](br, state) {
|
|
20
|
+
[op_codes_1.OpCode.SetPriority]({ r: br, state }) {
|
|
22
21
|
const [visualCode, , controlCode] = state.drawCodes;
|
|
23
22
|
const priorityCode = br.read32(8);
|
|
24
23
|
state.drawCodes = [visualCode, priorityCode, controlCode];
|
|
25
24
|
state.drawMode |= draw_command_1.DrawMode.Priority;
|
|
26
25
|
},
|
|
27
|
-
[op_codes_1.OpCode.ClearPriority](
|
|
26
|
+
[op_codes_1.OpCode.ClearPriority]({ state }) {
|
|
28
27
|
state.drawMode &= ~draw_command_1.DrawMode.Priority;
|
|
29
28
|
},
|
|
30
|
-
[op_codes_1.OpCode.SetControl](
|
|
29
|
+
[op_codes_1.OpCode.SetControl]({ r, state }) {
|
|
31
30
|
const [visualCode, priorityCode] = state.drawCodes;
|
|
32
|
-
const controlCode =
|
|
31
|
+
const controlCode = r.read32(8);
|
|
33
32
|
state.drawCodes = [visualCode, priorityCode, controlCode];
|
|
34
33
|
state.drawMode |= draw_command_1.DrawMode.Control;
|
|
35
34
|
},
|
|
36
|
-
[op_codes_1.OpCode.ClearControl](
|
|
35
|
+
[op_codes_1.OpCode.ClearControl]({ state }) {
|
|
37
36
|
state.drawMode &= ~draw_command_1.DrawMode.Control;
|
|
38
37
|
},
|
|
39
|
-
|
|
38
|
+
// Lines
|
|
39
|
+
[op_codes_1.OpCode.ShortLines]({ r, state, push }) {
|
|
40
40
|
const points = [];
|
|
41
|
-
const prev = (0, points_1.getPoint24)(
|
|
41
|
+
const prev = (0, points_1.getPoint24)(r, vec2_1.vec2.create());
|
|
42
42
|
points.push(vec2_1.vec2.clone(prev));
|
|
43
|
-
while (
|
|
44
|
-
const next = (0, points_1.getPoint8)(
|
|
43
|
+
while (r.peek32(8) < 0xf0) {
|
|
44
|
+
const next = (0, points_1.getPoint8)(r, vec2_1.vec2.create(), prev);
|
|
45
45
|
points.push(next);
|
|
46
46
|
vec2_1.vec2.copy(prev, next);
|
|
47
47
|
}
|
|
48
|
-
|
|
48
|
+
push(['PLINE', state.drawMode, state.drawCodes, ...points]);
|
|
49
49
|
},
|
|
50
|
-
[op_codes_1.OpCode.MediumLines](
|
|
50
|
+
[op_codes_1.OpCode.MediumLines]({ r, state, push }) {
|
|
51
51
|
const points = [];
|
|
52
|
-
const prev = (0, points_1.getPoint24)(
|
|
52
|
+
const prev = (0, points_1.getPoint24)(r, vec2_1.vec2.create());
|
|
53
53
|
points.push(vec2_1.vec2.clone(prev));
|
|
54
|
-
while (
|
|
55
|
-
const next = (0, points_1.getPoint16)(
|
|
54
|
+
while (r.peek32(8) < 0xf0) {
|
|
55
|
+
const next = (0, points_1.getPoint16)(r, vec2_1.vec2.create(), prev);
|
|
56
56
|
points.push(next);
|
|
57
57
|
vec2_1.vec2.copy(prev, next);
|
|
58
58
|
}
|
|
59
|
-
|
|
59
|
+
push(['PLINE', state.drawMode, state.drawCodes, ...points]);
|
|
60
60
|
},
|
|
61
|
-
[op_codes_1.OpCode.LongLines](
|
|
61
|
+
[op_codes_1.OpCode.LongLines]({ r, state, push }) {
|
|
62
62
|
const points = [];
|
|
63
|
-
points.push((0, points_1.getPoint24)(
|
|
64
|
-
while (
|
|
65
|
-
points.push((0, points_1.getPoint24)(
|
|
63
|
+
points.push((0, points_1.getPoint24)(r, vec2_1.vec2.create()));
|
|
64
|
+
while (r.peek32(8) < 0xf0) {
|
|
65
|
+
points.push((0, points_1.getPoint24)(r, vec2_1.vec2.create()));
|
|
66
66
|
}
|
|
67
|
-
|
|
67
|
+
push(['PLINE', state.drawMode, state.drawCodes, ...points]);
|
|
68
68
|
},
|
|
69
69
|
// Patterns
|
|
70
|
-
[op_codes_1.OpCode.SetPattern](
|
|
71
|
-
const code =
|
|
70
|
+
[op_codes_1.OpCode.SetPattern]({ r, state }) {
|
|
71
|
+
const code = r.read32(8);
|
|
72
72
|
state.patternCode = [
|
|
73
73
|
code & 0b00111,
|
|
74
74
|
(code & 0b010000) !== 0,
|
|
75
75
|
(code & 0b100000) !== 0,
|
|
76
76
|
];
|
|
77
77
|
},
|
|
78
|
-
[op_codes_1.OpCode.ShortBrushes](
|
|
79
|
-
const cmds = [];
|
|
78
|
+
[op_codes_1.OpCode.ShortBrushes]({ r, state, push }) {
|
|
80
79
|
const prev = vec2_1.vec2.create();
|
|
80
|
+
const { drawMode, drawCodes, patternCode } = state;
|
|
81
81
|
const [, , isTextured] = patternCode;
|
|
82
|
-
let texture = isTextured ?
|
|
83
|
-
(0, points_1.getPoint24)(
|
|
84
|
-
|
|
82
|
+
let texture = isTextured ? r.read32(8) >> 1 : 0;
|
|
83
|
+
(0, points_1.getPoint24)(r, prev);
|
|
84
|
+
push([
|
|
85
85
|
'BRUSH',
|
|
86
86
|
drawMode,
|
|
87
87
|
drawCodes,
|
|
@@ -89,21 +89,20 @@ exports.CodeHandlers = {
|
|
|
89
89
|
texture,
|
|
90
90
|
vec2_1.vec2.clone(prev),
|
|
91
91
|
]);
|
|
92
|
-
while (
|
|
93
|
-
texture = isTextured ?
|
|
94
|
-
const next = (0, points_1.getPoint8)(
|
|
95
|
-
|
|
92
|
+
while (r.peek32(8) < 0xf0) {
|
|
93
|
+
texture = isTextured ? r.read32(8) >> 1 : 0;
|
|
94
|
+
const next = (0, points_1.getPoint8)(r, vec2_1.vec2.create(), prev);
|
|
95
|
+
push(['BRUSH', drawMode, drawCodes, patternCode, texture, next]);
|
|
96
96
|
vec2_1.vec2.copy(prev, next);
|
|
97
97
|
}
|
|
98
|
-
return cmds;
|
|
99
98
|
},
|
|
100
|
-
[op_codes_1.OpCode.MediumBrushes](
|
|
101
|
-
const cmds = [];
|
|
99
|
+
[op_codes_1.OpCode.MediumBrushes]({ r, state, push }) {
|
|
102
100
|
const prev = vec2_1.vec2.create();
|
|
101
|
+
const { drawMode, drawCodes, patternCode } = state;
|
|
103
102
|
const [, , isTextured] = patternCode;
|
|
104
|
-
let texture = isTextured ?
|
|
105
|
-
(0, points_1.getPoint24)(
|
|
106
|
-
|
|
103
|
+
let texture = isTextured ? r.read32(8) >> 1 : 0;
|
|
104
|
+
(0, points_1.getPoint24)(r, prev);
|
|
105
|
+
push([
|
|
107
106
|
'BRUSH',
|
|
108
107
|
drawMode,
|
|
109
108
|
drawCodes,
|
|
@@ -111,98 +110,96 @@ exports.CodeHandlers = {
|
|
|
111
110
|
texture,
|
|
112
111
|
vec2_1.vec2.clone(prev),
|
|
113
112
|
]);
|
|
114
|
-
while (
|
|
115
|
-
texture = isTextured ?
|
|
116
|
-
const next = (0, points_1.getPoint16)(
|
|
117
|
-
|
|
113
|
+
while (r.peek32(8) < 0xf0) {
|
|
114
|
+
texture = isTextured ? r.read32(8) >> 1 : 0;
|
|
115
|
+
const next = (0, points_1.getPoint16)(r, vec2_1.vec2.create(), prev);
|
|
116
|
+
push(['BRUSH', drawMode, drawCodes, patternCode, texture, next]);
|
|
118
117
|
vec2_1.vec2.copy(prev, next);
|
|
119
118
|
}
|
|
120
|
-
return cmds;
|
|
121
119
|
},
|
|
122
|
-
[op_codes_1.OpCode.LongBrushes](
|
|
123
|
-
const
|
|
120
|
+
[op_codes_1.OpCode.LongBrushes]({ r, state, push }) {
|
|
121
|
+
const { drawMode, drawCodes, patternCode } = state;
|
|
124
122
|
const [, , isTextured] = patternCode;
|
|
125
|
-
while (
|
|
126
|
-
const texture = isTextured ?
|
|
127
|
-
const pos = (0, points_1.getPoint24)(
|
|
128
|
-
|
|
123
|
+
while (r.peek32(8) < 0xf0) {
|
|
124
|
+
const texture = isTextured ? r.read32(8) >> 1 : 0;
|
|
125
|
+
const pos = (0, points_1.getPoint24)(r, vec2_1.vec2.create());
|
|
126
|
+
push(['BRUSH', drawMode, drawCodes, patternCode, texture, pos]);
|
|
129
127
|
}
|
|
130
|
-
return cmds;
|
|
131
128
|
},
|
|
132
129
|
// Fills
|
|
133
|
-
[op_codes_1.OpCode.Fills](
|
|
134
|
-
const
|
|
130
|
+
[op_codes_1.OpCode.Fills]({ r, state, push }) {
|
|
131
|
+
const { drawMode, drawCodes } = state;
|
|
135
132
|
const p1 = vec2_1.vec2.create();
|
|
136
133
|
while (true) {
|
|
137
|
-
const peek =
|
|
134
|
+
const peek = r.peek32(8);
|
|
138
135
|
if (peek >= 0xf0)
|
|
139
136
|
break;
|
|
140
|
-
(0, points_1.getPoint24)(
|
|
141
|
-
|
|
137
|
+
(0, points_1.getPoint24)(r, p1);
|
|
138
|
+
push(['FILL', drawMode, drawCodes, vec2_1.vec2.clone(p1)]);
|
|
142
139
|
}
|
|
143
|
-
return fills;
|
|
144
140
|
},
|
|
145
|
-
[op_codes_1.OpCode.XOp](
|
|
146
|
-
const opx =
|
|
141
|
+
[op_codes_1.OpCode.XOp](ctx) {
|
|
142
|
+
const opx = ctx.r.read32(8);
|
|
147
143
|
if (!(0, op_codes_1.isExtendedOpCode)(opx))
|
|
148
144
|
throw new Error(`Unrecognized xopcode: 0x${opx.toString(16)}`);
|
|
149
|
-
|
|
145
|
+
ExtendedHandlers[opx](ctx);
|
|
150
146
|
},
|
|
151
|
-
[op_codes_1.OpCode.Done]: () => exports.IS_DONE,
|
|
152
147
|
};
|
|
153
148
|
const ExtendedHandlers = {
|
|
154
|
-
[op_codes_1.ExtendedOpCode.UpdatePalette](
|
|
149
|
+
[op_codes_1.ExtendedOpCode.UpdatePalette]({ r, push }) {
|
|
155
150
|
const entries = [];
|
|
156
|
-
while (
|
|
157
|
-
const entry =
|
|
151
|
+
while (r.peek32(8) < 0xf0) {
|
|
152
|
+
const entry = r.read32(8);
|
|
158
153
|
const pal = (entry / 40) >>> 0;
|
|
159
154
|
const idx = entry % 40;
|
|
160
|
-
const code =
|
|
155
|
+
const code = r.read32(8);
|
|
161
156
|
entries.push([pal, idx, code]);
|
|
162
157
|
}
|
|
163
|
-
|
|
164
|
-
},
|
|
165
|
-
[op_codes_1.ExtendedOpCode.SetPalette](
|
|
166
|
-
const pal =
|
|
167
|
-
const colors =
|
|
168
|
-
(0, repeat_1.repeat)(40, (i) => (colors[i] =
|
|
169
|
-
|
|
170
|
-
},
|
|
171
|
-
[op_codes_1.ExtendedOpCode.x02](
|
|
172
|
-
// Looks like a palette, but
|
|
173
|
-
|
|
174
|
-
|
|
158
|
+
push(['UPDATE_PALETTE', entries]);
|
|
159
|
+
},
|
|
160
|
+
[op_codes_1.ExtendedOpCode.SetPalette]({ r, push }) {
|
|
161
|
+
const pal = r.read32(8);
|
|
162
|
+
const colors = Array(40).fill(0);
|
|
163
|
+
(0, repeat_1.repeat)(40, (i) => (colors[i] = r.read32(8)));
|
|
164
|
+
push(['SET_PALETTE', pal, colors]);
|
|
165
|
+
},
|
|
166
|
+
[op_codes_1.ExtendedOpCode.x02]({ r }) {
|
|
167
|
+
// Looks like a palette, but I'm not sure what this chunk is for
|
|
168
|
+
r.skip(8);
|
|
169
|
+
r.skip(8 * 40);
|
|
175
170
|
// in Colonels Bequest Demo, PIC.991 this opcode appears to have a 141 byte payload.
|
|
176
|
-
// Looks like another palette, but
|
|
171
|
+
// Looks like another palette, but I'm not sure what this chunk is for
|
|
177
172
|
// br.skip(141 * 8);
|
|
178
173
|
},
|
|
179
|
-
[op_codes_1.ExtendedOpCode.x03](
|
|
174
|
+
[op_codes_1.ExtendedOpCode.x03]({ r }) {
|
|
180
175
|
// Not sure what byte this is for
|
|
181
|
-
|
|
176
|
+
r.skip(8);
|
|
182
177
|
},
|
|
183
178
|
[op_codes_1.ExtendedOpCode.x04]() {
|
|
184
179
|
// Not sure what this code means
|
|
185
180
|
// NOOP
|
|
186
181
|
},
|
|
187
|
-
[op_codes_1.ExtendedOpCode.x05](
|
|
182
|
+
[op_codes_1.ExtendedOpCode.x05]({ r }) {
|
|
188
183
|
// Not sure what byte this is for
|
|
189
|
-
|
|
184
|
+
r.skip(8);
|
|
190
185
|
},
|
|
191
186
|
[op_codes_1.ExtendedOpCode.x06]() {
|
|
192
187
|
// Not sure what this code means
|
|
193
188
|
// NOOP
|
|
194
189
|
},
|
|
195
|
-
[op_codes_1.ExtendedOpCode.x07](
|
|
196
|
-
const pos = (0, points_1.getPoint24)(
|
|
197
|
-
const size =
|
|
190
|
+
[op_codes_1.ExtendedOpCode.x07]({ r, state, push }) {
|
|
191
|
+
const pos = (0, points_1.getPoint24)(r, vec2_1.vec2.create());
|
|
192
|
+
const size = r.read32(8) | (r.read32(8) << 8);
|
|
198
193
|
const buffer = new ArrayBuffer(size);
|
|
199
194
|
const view = new DataView(buffer);
|
|
200
|
-
(0, repeat_1.repeat)(size, (i) =>
|
|
195
|
+
(0, repeat_1.repeat)(size, (i) => {
|
|
196
|
+
view.setUint8(i, r.read32(8));
|
|
197
|
+
});
|
|
201
198
|
const cel = (0, cel_1.parseCel)(view);
|
|
202
|
-
|
|
199
|
+
push(['CEL', state.drawMode, pos, cel]);
|
|
203
200
|
},
|
|
204
|
-
[op_codes_1.ExtendedOpCode.x08](
|
|
205
|
-
(0, repeat_1.repeat)(14, () =>
|
|
201
|
+
[op_codes_1.ExtendedOpCode.x08]({ r }) {
|
|
202
|
+
(0, repeat_1.repeat)(14, () => r.read32(8));
|
|
206
203
|
},
|
|
207
204
|
};
|
|
208
205
|
//# sourceMappingURL=handlers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/parsers/pic/handlers.ts"],"names":[],"mappings":";;;AACA,yCAAsE;AAEtE,qCAA6D;AAC7D,4DAAkE;AAClE,4CAA+C;AAC/C,+CAA4C;AAC5C,gCAAkC;
|
|
1
|
+
{"version":3,"file":"handlers.js","sourceRoot":"","sources":["../../../src/parsers/pic/handlers.ts"],"names":[],"mappings":";;;AACA,yCAAsE;AAEtE,qCAA6D;AAC7D,4DAAkE;AAClE,4CAA+C;AAC/C,+CAA4C;AAC5C,gCAAkC;AAUrB,QAAA,YAAY,GAAsD;IAC7E,CAAC,iBAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;QAC7B,MAAM,CAAC,EAAE,YAAY,EAAE,WAAW,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QACtD,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,SAAS,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1D,KAAK,CAAC,QAAQ,IAAI,uBAAQ,CAAC,MAAM,CAAC;IACpC,CAAC;IACD,CAAC,iBAAM,CAAC,WAAW,CAAC,CAAC,EAAE,KAAK,EAAE;QAC5B,KAAK,CAAC,QAAQ,IAAI,CAAC,uBAAQ,CAAC,MAAM,CAAC;IACrC,CAAC;IAED,CAAC,iBAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE;QACnC,MAAM,CAAC,UAAU,EAAE,AAAD,EAAG,WAAW,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QACpD,MAAM,YAAY,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAClC,KAAK,CAAC,SAAS,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1D,KAAK,CAAC,QAAQ,IAAI,uBAAQ,CAAC,QAAQ,CAAC;IACtC,CAAC;IACD,CAAC,iBAAM,CAAC,aAAa,CAAC,CAAC,EAAE,KAAK,EAAE;QAC9B,KAAK,CAAC,QAAQ,IAAI,CAAC,uBAAQ,CAAC,QAAQ,CAAC;IACvC,CAAC;IAED,CAAC,iBAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;QAC9B,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QACnD,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAChC,KAAK,CAAC,SAAS,GAAG,CAAC,UAAU,EAAE,YAAY,EAAE,WAAW,CAAC,CAAC;QAC1D,KAAK,CAAC,QAAQ,IAAI,uBAAQ,CAAC,OAAO,CAAC;IACrC,CAAC;IACD,CAAC,iBAAM,CAAC,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE;QAC7B,KAAK,CAAC,QAAQ,IAAI,CAAC,uBAAQ,CAAC,OAAO,CAAC;IACtC,CAAC;IAED,QAAQ;IACR,CAAC,iBAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACpC,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,WAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,WAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,CAAC,iBAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACrC,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,WAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAC9B,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YAChD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,WAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IACD,CAAC,iBAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACnC,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,MAAM,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC1C,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5C,CAAC;QACD,IAAI,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,WAAW;IACX,CAAC,iBAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE;QAC9B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACzB,KAAK,CAAC,WAAW,GAAG;YAClB,IAAI,GAAG,OAAO;YACd,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;YACvB,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC;SACxB,CAAC;IACJ,CAAC;IACD,CAAC,iBAAM,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACtC,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QACnD,MAAM,CAAC,EAAE,AAAD,EAAG,UAAU,CAAC,GAAG,WAAW,CAAC;QAErC,IAAI,OAAO,GAAW,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAA,mBAAU,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC;YACH,OAAO;YACP,QAAQ;YACR,SAAS;YACT,WAAW;YACX,OAAO;YACP,WAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SACjB,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAA,kBAAS,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YAC/C,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACjE,WAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,CAAC,iBAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACvC,MAAM,IAAI,GAAG,WAAI,CAAC,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QACnD,MAAM,CAAC,EAAE,AAAD,EAAG,UAAU,CAAC,GAAG,WAAW,CAAC;QAErC,IAAI,OAAO,GAAW,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxD,IAAA,mBAAU,EAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACpB,IAAI,CAAC;YACH,OAAO;YACP,QAAQ;YACR,SAAS;YACT,WAAW;YACX,OAAO;YACP,WAAI,CAAC,KAAK,CAAC,IAAI,CAAC;SACjB,CAAC,CAAC;QAEH,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YAChD,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC;YACjE,WAAI,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;IACH,CAAC;IACD,CAAC,iBAAM,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACrC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QACnD,MAAM,CAAC,EAAE,AAAD,EAAG,UAAU,CAAC,GAAG,WAAW,CAAC;QAErC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAClD,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,QAAQ;IACR,CAAC,iBAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QAC/B,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,KAAK,CAAC;QACtC,MAAM,EAAE,GAAG,WAAI,CAAC,MAAM,EAAE,CAAC;QACzB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,IAAI,IAAI,IAAI;gBAAE,MAAM;YACxB,IAAA,mBAAU,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAClB,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;IAED,CAAC,iBAAM,CAAC,GAAG,CAAC,CAAC,GAAG;QACd,MAAM,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAA,2BAAgB,EAAC,GAAG,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,2BAA2B,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QACjE,gBAAgB,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;CACF,CAAC;AAEF,MAAM,gBAAgB,GAAwC;IAC5D,CAAC,yBAAc,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;QACxC,MAAM,OAAO,GAA+B,EAAE,CAAC;QAC/C,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC;YAC1B,MAAM,KAAK,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,GAAG,GAAG,CAAC,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;YAC/B,MAAM,GAAG,GAAG,KAAK,GAAG,EAAE,CAAC;YAEvB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;YACzB,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QACjC,CAAC;QAED,IAAI,CAAC,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC,CAAC;IACpC,CAAC;IACD,CAAC,yBAAc,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE;QACrC,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,MAAM,GAAa,KAAK,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC3C,IAAA,eAAM,EAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,CAAC,aAAa,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;IACrC,CAAC;IACD,CAAC,yBAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;QACxB,gEAAgE;QAChE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACV,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;QAEf,oFAAoF;QACpF,sEAAsE;QACtE,oBAAoB;IACtB,CAAC;IACD,CAAC,yBAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;QACxB,iCAAiC;QACjC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,CAAC,yBAAc,CAAC,GAAG,CAAC;QAClB,gCAAgC;QAChC,OAAO;IACT,CAAC;IACD,CAAC,yBAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;QACxB,iCAAiC;QACjC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACZ,CAAC;IACD,CAAC,yBAAc,CAAC,GAAG,CAAC;QAClB,gCAAgC;QAChC,OAAO;IACT,CAAC;IACD,CAAC,yBAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE;QACrC,MAAM,GAAG,GAAG,IAAA,mBAAU,EAAC,CAAC,EAAE,WAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACzC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,CAAC;QAErC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;QAClC,IAAA,eAAM,EAAC,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE;YACjB,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;QACH,MAAM,GAAG,GAAG,IAAA,cAAQ,EAAC,IAAI,CAAC,CAAC;QAE3B,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IACD,CAAC,yBAAc,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE;QACxB,IAAA,eAAM,EAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;CACF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parsers/pic/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,SAAS,SAAU,UAAU,KAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"parser.d.ts","sourceRoot":"","sources":["../../../src/parsers/pic/parser.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,eAAO,MAAM,SAAS,SAAU,UAAU,KAAG,WAAW,EAyBvD,CAAC"}
|
|
@@ -7,20 +7,23 @@ const op_codes_1 = require("./op-codes");
|
|
|
7
7
|
const pic_state_1 = require("./pic-state");
|
|
8
8
|
const parseFrom = (data) => {
|
|
9
9
|
const commands = [];
|
|
10
|
-
const
|
|
11
|
-
|
|
10
|
+
const ctx = {
|
|
11
|
+
r: (0, readers_1.createBitReader)(data, { mode: 'msb' }),
|
|
12
|
+
state: (0, pic_state_1.createPicState)(),
|
|
13
|
+
push(...next) {
|
|
14
|
+
commands.push(...next);
|
|
15
|
+
},
|
|
16
|
+
};
|
|
12
17
|
while (true) {
|
|
13
|
-
const op =
|
|
18
|
+
const op = ctx.r.read32(8);
|
|
14
19
|
if (!(0, op_codes_1.isOpCode)(op))
|
|
15
20
|
throw new Error(`Unrecognized opcode: 0x${op.toString(16)}`);
|
|
21
|
+
if (op === op_codes_1.OpCode.Done)
|
|
22
|
+
break;
|
|
16
23
|
const handler = handlers_1.CodeHandlers[op];
|
|
17
24
|
if (!handler)
|
|
18
25
|
throw new Error(`Unhandled opcode: 0x${op.toString(16)}`);
|
|
19
|
-
|
|
20
|
-
if (next === handlers_1.IS_DONE)
|
|
21
|
-
break;
|
|
22
|
-
if (next)
|
|
23
|
-
commands.push(...next);
|
|
26
|
+
handler(ctx);
|
|
24
27
|
}
|
|
25
28
|
return commands;
|
|
26
29
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parsers/pic/parser.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AACpD,
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../../../src/parsers/pic/parser.ts"],"names":[],"mappings":";;;AAAA,+CAAoD;AACpD,yCAA8D;AAC9D,yCAA8C;AAC9C,2CAA6C;AAGtC,MAAM,SAAS,GAAG,CAAC,IAAgB,EAAiB,EAAE;IAC3D,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,GAAG,GAAuB;QAC9B,CAAC,EAAE,IAAA,yBAAe,EAAC,IAAI,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACzC,KAAK,EAAE,IAAA,0BAAc,GAAE;QACvB,IAAI,CAAC,GAAG,IAAmB;YACzB,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;QACzB,CAAC;KACF,CAAC;IAEF,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAE3B,IAAI,CAAC,IAAA,mBAAQ,EAAC,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,0BAA0B,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAE/D,IAAI,EAAE,KAAK,iBAAM,CAAC,IAAI;YAAE,MAAM;QAE9B,MAAM,OAAO,GAAG,uBAAY,CAAC,EAAE,CAAC,CAAC;QACjC,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAExE,OAAO,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAzBW,QAAA,SAAS,aAyBpB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BitReader } from '@4bitlabs/readers';
|
|
2
|
-
import { Vec2
|
|
2
|
+
import { Vec2 } from '../../models/vec2';
|
|
3
3
|
export declare function getPoint24(br: BitReader, out: Vec2): Vec2;
|
|
4
|
-
export declare function getPoint16(br: BitReader, out: Vec2, ref:
|
|
5
|
-
export declare function getPoint8(br: BitReader, out: Vec2, ref:
|
|
4
|
+
export declare function getPoint16(br: BitReader, out: Vec2, ref: Readonly<Vec2>): Vec2;
|
|
5
|
+
export declare function getPoint8(br: BitReader, out: Vec2, ref: Readonly<Vec2>): Vec2;
|
|
6
6
|
//# sourceMappingURL=points.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"points.d.ts","sourceRoot":"","sources":["../../../src/parsers/pic/points.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,IAAI,
|
|
1
|
+
{"version":3,"file":"points.d.ts","sourceRoot":"","sources":["../../../src/parsers/pic/points.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAQ,MAAM,mBAAmB,CAAC;AAW/C,wBAAgB,UAAU,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,GAAG,IAAI,CAKzD;AASD,wBAAgB,UAAU,CACxB,EAAE,EAAE,SAAS,EACb,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAClB,IAAI,CASN;AASD,wBAAgB,SAAS,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,IAAI,CAa7E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"points.js","sourceRoot":"","sources":["../../../src/parsers/pic/points.ts"],"names":[],"mappings":";;;AACA,
|
|
1
|
+
{"version":3,"file":"points.js","sourceRoot":"","sources":["../../../src/parsers/pic/points.ts"],"names":[],"mappings":";;;AACA,4CAA+C;AAE/C,sDAAsD;AACtD,0CAA0C;AAC1C,EAAE;AACF,UAAU;AACV,oCAAoC;AACpC,oCAAoC;AACpC,iCAAiC;AACjC,iCAAiC;AACjC,EAAE;AACF,SAAgB,UAAU,CAAC,EAAa,EAAE,GAAS;IACjD,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC3B,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9D,OAAO,WAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC7B,CAAC;AALD,gCAKC;AAED,8DAA8D;AAC9D,0CAA0C;AAC1C,EAAE;AACF,SAAS;AACT,iBAAiB;AACjB,iBAAiB;AACjB,EAAE;AACF,SAAgB,UAAU,CACxB,EAAa,EACb,GAAS,EACT,GAAmB;IAEnB,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,IAAI,GAAG,CAAC,GAAG,GAAW,CAAC;IAC7B,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,GAAW,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAElD,MAAM,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IACvB,MAAM,EAAE,GAAG,CAAC,GAAG,GAAW,CAAC,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAEzC,OAAO,WAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AACjD,CAAC;AAbD,gCAaC;AAED,6DAA6D;AAC7D,yCAAyC;AACzC,EAAE;AACF,SAAS;AACT,iBAAiB;AACjB,iBAAiB;AACjB,EAAE;AACF,SAAgB,SAAS,CAAC,EAAa,EAAE,GAAS,EAAE,GAAmB;IACrE,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE1B,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAChC,MAAM,EAAE,GAAG,CAAC,IAAI,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IAEhC,OAAO,WAAI,CAAC,GAAG,CACb,GAAG,EACH,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAC3B,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAC5B,CAAC;AACJ,CAAC;AAbD,8BAaC"}
|
|
@@ -2,6 +2,8 @@ import { DrawCommand } from '../models/draw-command';
|
|
|
2
2
|
import { RenderResult } from './render-result';
|
|
3
3
|
interface RenderOptions {
|
|
4
4
|
forcePal?: 0 | 1 | 2 | 3 | undefined;
|
|
5
|
+
width?: number;
|
|
6
|
+
height?: number;
|
|
5
7
|
}
|
|
6
8
|
export declare const renderPic: (commands: DrawCommand[], options?: RenderOptions) => RenderResult;
|
|
7
9
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-pic.d.ts","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"render-pic.d.ts","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,SAAS,aACV,WAAW,EAAE,YACd,aAAa,KACrB,YAkEF,CAAC"}
|
|
@@ -3,16 +3,19 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.renderPic = void 0;
|
|
4
4
|
const screen_buffer_1 = require("./screen-buffer");
|
|
5
5
|
const default_palette_1 = require("./default-palette");
|
|
6
|
-
const
|
|
6
|
+
const exhaustive_1 = require("../utils/exhaustive");
|
|
7
7
|
const renderPic = (commands, options = {}) => {
|
|
8
|
-
const { forcePal } = options;
|
|
8
|
+
const { forcePal, width = 320, height = 190 } = options;
|
|
9
9
|
const palettes = [
|
|
10
10
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
11
11
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
12
12
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
13
13
|
Uint8Array.from(default_palette_1.DEFAULT_PALETTE),
|
|
14
14
|
];
|
|
15
|
-
const [result, screen] = (0, screen_buffer_1.createScreenBuffer)(forcePal, palettes
|
|
15
|
+
const [result, screen] = (0, screen_buffer_1.createScreenBuffer)(forcePal, palettes, [
|
|
16
|
+
width,
|
|
17
|
+
height,
|
|
18
|
+
]);
|
|
16
19
|
for (const cmd of commands) {
|
|
17
20
|
const [mode] = cmd;
|
|
18
21
|
switch (mode) {
|
|
@@ -46,23 +49,12 @@ const renderPic = (commands, options = {}) => {
|
|
|
46
49
|
break;
|
|
47
50
|
}
|
|
48
51
|
case 'CEL': {
|
|
49
|
-
const [, drawMode,
|
|
50
|
-
|
|
51
|
-
continue;
|
|
52
|
-
const data = cel.pixels;
|
|
53
|
-
for (let y = pos[1]; y < pos[1] + cel.height; y++)
|
|
54
|
-
for (let x = pos[0]; x < pos[0] + cel.width; x++) {
|
|
55
|
-
if (x >= 320 || y >= 190)
|
|
56
|
-
continue;
|
|
57
|
-
const color = data[x + y * cel.width];
|
|
58
|
-
if (color === cel.keyColor)
|
|
59
|
-
continue;
|
|
60
|
-
screen.setPixel(x, y, color);
|
|
61
|
-
}
|
|
52
|
+
const [, drawMode, [x, y], cel] = cmd;
|
|
53
|
+
screen.blit(x, y, drawMode, cel);
|
|
62
54
|
break;
|
|
63
55
|
}
|
|
64
56
|
default:
|
|
65
|
-
|
|
57
|
+
(0, exhaustive_1.exhaustive)('unhandled opcode', mode);
|
|
66
58
|
}
|
|
67
59
|
}
|
|
68
60
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render-pic.js","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":";;;AAAA,mDAAqD;AACrD,uDAAoD;
|
|
1
|
+
{"version":3,"file":"render-pic.js","sourceRoot":"","sources":["../../src/screen/render-pic.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { type Screen } from './screen';
|
|
2
2
|
import { type RenderResult } from './render-result';
|
|
3
|
-
export declare const createScreenBuffer: (forcePal: 0 | 1 | 2 | 3 | undefined, palettes: [Uint8Array, Uint8Array, Uint8Array, Uint8Array]) => [RenderResult, Screen];
|
|
3
|
+
export declare const createScreenBuffer: (forcePal: 0 | 1 | 2 | 3 | undefined, palettes: [Uint8Array, Uint8Array, Uint8Array, Uint8Array], [width, height]: [number, number]) => [RenderResult, Screen];
|
|
4
4
|
//# sourceMappingURL=screen-buffer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-buffer.d.ts","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"screen-buffer.d.ts","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":"AACA,OAAO,EAAwC,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAM7E,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAQpD,eAAO,MAAM,kBAAkB,aACnB,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,SAAS,YACzB,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,CAAC,mBACzC,CAAC,MAAM,EAAE,MAAM,CAAC,KAChC,CAAC,YAAY,EAAE,MAAM,CAmEvB,CAAC"}
|
|
@@ -4,40 +4,39 @@ exports.createScreenBuffer = void 0;
|
|
|
4
4
|
const image_1 = require("@4bitlabs/image");
|
|
5
5
|
const draw_command_1 = require("../models/draw-command");
|
|
6
6
|
const tools_1 = require("./tools");
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const control = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
|
|
13
|
-
const alpha = (0, image_1.createIndexedPixelData)(bufferWidth, bufferHeight);
|
|
7
|
+
const createScreenBuffer = (forcePal, palettes, [width, height]) => {
|
|
8
|
+
const visible = (0, image_1.createIndexedPixelData)(width, height);
|
|
9
|
+
const priority = (0, image_1.createIndexedPixelData)(width, height);
|
|
10
|
+
const control = (0, image_1.createIndexedPixelData)(width, height);
|
|
11
|
+
const alpha = (0, image_1.createIndexedPixelData)(width, height);
|
|
14
12
|
visible.pixels.fill(0xff);
|
|
15
13
|
priority.pixels.fill(0x00);
|
|
16
14
|
control.pixels.fill(0x00);
|
|
17
15
|
const setPixel = (x, y, color) => {
|
|
18
|
-
const idx =
|
|
16
|
+
const idx = width * y + x;
|
|
19
17
|
visible.pixels[idx] = (color & 0b1111) | (color << 4);
|
|
20
18
|
};
|
|
21
19
|
const plot = (x, y, drawMode, drawCodes) => {
|
|
22
|
-
|
|
23
|
-
|
|
20
|
+
if (x < 0 || x >= width || y < 0 || y >= height)
|
|
21
|
+
return;
|
|
22
|
+
const idx = width * y + x;
|
|
23
|
+
if ((0, draw_command_1.isVisualMode)(drawMode)) {
|
|
24
24
|
const pal = forcePal !== null && forcePal !== void 0 ? forcePal : (drawCodes[0] / 40) >>> 0;
|
|
25
25
|
const palette = palettes[pal];
|
|
26
26
|
const palIndex = drawCodes[0] % 40 >>> 0;
|
|
27
27
|
visible.pixels[idx] = palette[palIndex];
|
|
28
28
|
alpha.pixels[idx] = 255;
|
|
29
29
|
}
|
|
30
|
-
if ((
|
|
30
|
+
if ((0, draw_command_1.isPriorityMode)(drawMode)) {
|
|
31
31
|
priority.pixels[idx] = drawCodes[1];
|
|
32
32
|
}
|
|
33
|
-
if ((
|
|
33
|
+
if ((0, draw_command_1.isControlMode)(drawMode)) {
|
|
34
34
|
control.pixels[idx] = drawCodes[2];
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
const isFillable = (x, y, drawMode) => {
|
|
38
|
-
const idx = x + y *
|
|
39
|
-
|
|
40
|
-
if (isVisible) {
|
|
38
|
+
const idx = x + y * width;
|
|
39
|
+
if ((0, draw_command_1.isVisualMode)(drawMode)) {
|
|
41
40
|
const dither = (x & 1) ^ (y & 1);
|
|
42
41
|
const val = visible.pixels[idx];
|
|
43
42
|
return 0xf === (dither ? val & 0xf : val >>> 4);
|
|
@@ -47,18 +46,17 @@ const createScreenBuffer = (forcePal, palettes) => {
|
|
|
47
46
|
* replaced 0x00 pixels in control and priority layers. Not sure if its intentional or not. But
|
|
48
47
|
* may require a different way of modeling indexed "alpha" channel.
|
|
49
48
|
*/
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
return ((isPriority && priority.pixels[idx] === 0x00) ||
|
|
53
|
-
(isControl && control.pixels[idx] === 0x00));
|
|
49
|
+
return (((0, draw_command_1.isPriorityMode)(drawMode) && priority.pixels[idx] === 0x00) ||
|
|
50
|
+
((0, draw_command_1.isControlMode)(drawMode) && control.pixels[idx] === 0x00));
|
|
54
51
|
};
|
|
55
52
|
return [
|
|
56
53
|
{ visible, priority, control, alpha },
|
|
57
54
|
{
|
|
58
55
|
setPixel,
|
|
59
|
-
brush: (0, tools_1.createBrush)(plot, [
|
|
60
|
-
fill: (0, tools_1.createFloodFill)(plot, isFillable, [
|
|
56
|
+
brush: (0, tools_1.createBrush)(plot, [width, height]),
|
|
57
|
+
fill: (0, tools_1.createFloodFill)(plot, isFillable, [width, height]),
|
|
61
58
|
line: (0, tools_1.createLine)(plot),
|
|
59
|
+
blit: (0, tools_1.createBlitter)(setPixel, [width, height]),
|
|
62
60
|
},
|
|
63
61
|
];
|
|
64
62
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen-buffer.js","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":";;;AAAA,2CAAyD;AAEzD,
|
|
1
|
+
{"version":3,"file":"screen-buffer.js","sourceRoot":"","sources":["../../src/screen/screen-buffer.ts"],"names":[],"mappings":"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"}
|
package/dist/screen/screen.d.ts
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
1
|
import { DrawCodes, DrawMode } from '../models/draw-command';
|
|
2
|
+
import { Cel } from '../models/cel';
|
|
2
3
|
export type RawPlotter = (x: number, y: number, color: number) => void;
|
|
3
4
|
export type Plotter = (x: number, y: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
4
5
|
export type IsFillable = (x: number, y: number, drawMode: DrawMode) => boolean;
|
|
5
6
|
export type Filler = (x: number, y: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
6
7
|
export type Liner = (x0: number, y0: number, x1: number, y1: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
7
8
|
export type Brusher = (cx: number, cy: number, size: number, isRect: boolean, isSpray: boolean, textureCode: number, drawMode: DrawMode, drawCodes: DrawCodes) => void;
|
|
9
|
+
export type Blitter = (x: number, y: number, drawMode: DrawMode, cel: Cel) => void;
|
|
8
10
|
export interface Screen {
|
|
9
11
|
brush: Brusher;
|
|
10
12
|
fill: Filler;
|
|
11
13
|
line: Liner;
|
|
12
14
|
setPixel: RawPlotter;
|
|
15
|
+
blit: Blitter;
|
|
13
16
|
}
|
|
14
17
|
//# sourceMappingURL=screen.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/screen/screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"screen.d.ts","sourceRoot":"","sources":["../../src/screen/screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,GAAG,EAAE,MAAM,eAAe,CAAC;AAEpC,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAEvE,MAAM,MAAM,OAAO,GAAG,CACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC;AAE/E,MAAM,MAAM,MAAM,GAAG,CACnB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,KAAK,GAAG,CAClB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,OAAO,GAAG,CACpB,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,OAAO,EACf,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,QAAQ,EAClB,SAAS,EAAE,SAAS,KACjB,IAAI,CAAC;AAEV,MAAM,MAAM,OAAO,GAAG,CACpB,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,GAAG,KACL,IAAI,CAAC;AAEV,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,UAAU,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;CACf"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { DrawMode } from '../../models/draw-command';
|
|
2
|
+
import { Cel } from '../../models/cel';
|
|
3
|
+
import { RawPlotter } from '../screen';
|
|
4
|
+
export declare const createBlitter: (plot: RawPlotter, [stageWidth, stageHeight]: readonly [number, number]) => (x0: number, y0: number, drawMode: DrawMode, cel: Cel) => void;
|
|
5
|
+
//# sourceMappingURL=create-blitter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-blitter.d.ts","sourceRoot":"","sources":["../../../src/screen/tools/create-blitter.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EAIT,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC,eAAO,MAAM,aAAa,SACjB,UAAU,gEACZ,MAAM,MAAM,MAAM,YAAY,QAAQ,OAAO,GAAG,SAepD,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createBlitter = void 0;
|
|
4
|
+
const draw_command_1 = require("../../models/draw-command");
|
|
5
|
+
const createBlitter = (plot, [stageWidth, stageHeight]) => (x0, y0, drawMode, cel) => {
|
|
6
|
+
if ((0, draw_command_1.isControlMode)(drawMode) || (0, draw_command_1.isPriorityMode)(drawMode))
|
|
7
|
+
console.warn('unhandled CEL command on Control/Priority layer');
|
|
8
|
+
if (!(0, draw_command_1.isVisualMode)(drawMode))
|
|
9
|
+
return;
|
|
10
|
+
const data = cel.pixels;
|
|
11
|
+
for (let y = y0; y < y0 + cel.height; y++)
|
|
12
|
+
for (let x = x0; x < x0 + cel.width; x++) {
|
|
13
|
+
if (x >= stageWidth || y >= stageHeight)
|
|
14
|
+
continue;
|
|
15
|
+
const color = data[x + y * cel.width];
|
|
16
|
+
if (color === cel.keyColor)
|
|
17
|
+
continue;
|
|
18
|
+
plot(x, y, color);
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
exports.createBlitter = createBlitter;
|
|
22
|
+
//# sourceMappingURL=create-blitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-blitter.js","sourceRoot":"","sources":["../../../src/screen/tools/create-blitter.ts"],"names":[],"mappings":";;;AAAA,4DAKmC;AAK5B,MAAM,aAAa,GACxB,CAAC,IAAgB,EAAE,CAAC,UAAU,EAAE,WAAW,CAAiB,EAAE,EAAE,CAChE,CAAC,EAAU,EAAE,EAAU,EAAE,QAAkB,EAAE,GAAQ,EAAE,EAAE;IACvD,IAAI,IAAA,4BAAa,EAAC,QAAQ,CAAC,IAAI,IAAA,6BAAc,EAAC,QAAQ,CAAC;QACrD,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAElE,IAAI,CAAC,IAAA,2BAAY,EAAC,QAAQ,CAAC;QAAE,OAAO;IAEpC,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC;IACxB,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;QACvC,KAAK,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,IAAI,WAAW;gBAAE,SAAS;YAElD,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,KAAK,KAAK,GAAG,CAAC,QAAQ;gBAAE,SAAS;YACrC,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACpB,CAAC;AACL,CAAC,CAAC;AAjBS,QAAA,aAAa,iBAiBtB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { Brusher, Plotter } from '../screen';
|
|
2
|
-
|
|
3
|
-
export declare const createBrush: (plot: Plotter, [stageWidth, stageHeight]: StaticVec2) => Brusher;
|
|
2
|
+
export declare const createBrush: (plot: Plotter, [stageWidth, stageHeight]: readonly [number, number]) => Brusher;
|
|
4
3
|
//# sourceMappingURL=create-brush.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-brush.d.ts","sourceRoot":"","sources":["../../../src/screen/tools/create-brush.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create-brush.d.ts","sourceRoot":"","sources":["../../../src/screen/tools/create-brush.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAM7C,eAAO,MAAM,WAAW,SAChB,OAAO,2DAEZ,OAmCA,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-brush.js","sourceRoot":"","sources":["../../../src/screen/tools/create-brush.ts"],"names":[],"mappings":";;;;;;AAGA,mCAA+C;AAC/C,wDAAgC;AAEzB,MAAM,WAAW,GAAG,CACzB,IAAa,EACb,CAAC,UAAU,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"create-brush.js","sourceRoot":"","sources":["../../../src/screen/tools/create-brush.ts"],"names":[],"mappings":";;;;;;AAGA,mCAA+C;AAC/C,wDAAgC;AAEzB,MAAM,WAAW,GAAG,CACzB,IAAa,EACb,CAAC,UAAU,EAAE,WAAW,CAAiB,EAChC,EAAE,CACX,SAAS,KAAK,CACZ,EAAE,EACF,EAAE,EACF,IAAI,EACJ,MAAM,EACN,OAAO,EACP,WAAW,EACX,QAAkB,EAClB,SAAoB;IAEpB,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACjC,MAAM,KAAK,GAAG,SAAS,GAAG,IAAI,GAAG,CAAC,CAAC;IACnC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;IAE5B,IAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IACjC,IAAI,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,CAAC;IAClC,MAAM,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,GAAG,KAAK,CAAC;IAC3B,IAAI,KAAK,IAAI,UAAU;QAAE,IAAI,GAAG,UAAU,GAAG,KAAK,CAAC;IACnD,IAAI,MAAM,IAAI,WAAW;QAAE,GAAG,GAAG,WAAW,GAAG,MAAM,CAAC;IAEtD,IAAI,QAAQ,GAAG,qBAAa,CAAC,WAAW,CAAC,CAAC;IAE1C,KAAK,IAAI,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC;QACrC,KAAK,IAAI,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC;YACxC,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,MAAM,GAAG,iBAAO,CAAC,IAAI,CAAC,CAAC;gBAC7B,MAAM,GAAG,GAAG,MAAM,CAAC,EAAE,GAAG,GAAG,CAAC,CAAC;gBAC7B,MAAM,KAAK,GAAG,KAAK,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;gBACtC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC;oBAAE,SAAS;YAC9C,CAAC;YACD,IAAI,OAAO,IAAI,CAAC,aAAK,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;gBAAE,SAAS;YACnD,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QACpC,CAAC;AACL,CAAC,CAAC;AAtCS,QAAA,WAAW,eAsCpB"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
1
|
import { Filler, IsFillable, Plotter } from '../screen';
|
|
2
|
-
|
|
3
|
-
export declare const createFloodFill: (plot: Plotter, isLegal: IsFillable, [width, height]: StaticVec2) => Filler;
|
|
2
|
+
export declare const createFloodFill: (plot: Plotter, isLegal: IsFillable, [width, height]: readonly [number, number]) => Filler;
|
|
4
3
|
//# sourceMappingURL=create-flood-fill.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-flood-fill.d.ts","sourceRoot":"","sources":["../../../src/screen/tools/create-flood-fill.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"create-flood-fill.d.ts","sourceRoot":"","sources":["../../../src/screen/tools/create-flood-fill.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIxD,eAAO,MAAM,eAAe,SACpB,OAAO,WACJ,UAAU,iDAElB,MAuEF,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-flood-fill.js","sourceRoot":"","sources":["../../../src/screen/tools/create-flood-fill.ts"],"names":[],"mappings":";;;AAAA,2DAAuD;AAKhD,MAAM,eAAe,GAAG,CAC7B,IAAa,EACb,OAAmB,EACnB,CAAC,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"create-flood-fill.js","sourceRoot":"","sources":["../../../src/screen/tools/create-flood-fill.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,5 @@ export { createBrush } from './create-brush';
|
|
|
2
2
|
export { createFloodFill } from './create-flood-fill';
|
|
3
3
|
export { createLine } from './create-line';
|
|
4
4
|
export { createMarker } from './create-marker';
|
|
5
|
+
export { createBlitter } from './create-blitter';
|
|
5
6
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screen/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/screen/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createMarker = exports.createLine = exports.createFloodFill = exports.createBrush = void 0;
|
|
3
|
+
exports.createBlitter = exports.createMarker = exports.createLine = exports.createFloodFill = exports.createBrush = void 0;
|
|
4
4
|
var create_brush_1 = require("./create-brush");
|
|
5
5
|
Object.defineProperty(exports, "createBrush", { enumerable: true, get: function () { return create_brush_1.createBrush; } });
|
|
6
6
|
var create_flood_fill_1 = require("./create-flood-fill");
|
|
@@ -9,4 +9,6 @@ var create_line_1 = require("./create-line");
|
|
|
9
9
|
Object.defineProperty(exports, "createLine", { enumerable: true, get: function () { return create_line_1.createLine; } });
|
|
10
10
|
var create_marker_1 = require("./create-marker");
|
|
11
11
|
Object.defineProperty(exports, "createMarker", { enumerable: true, get: function () { return create_marker_1.createMarker; } });
|
|
12
|
+
var create_blitter_1 = require("./create-blitter");
|
|
13
|
+
Object.defineProperty(exports, "createBlitter", { enumerable: true, get: function () { return create_blitter_1.createBlitter; } });
|
|
12
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screen/tools/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/screen/tools/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,yDAAsD;AAA7C,oHAAA,eAAe,OAAA;AACxB,6CAA2C;AAAlC,yGAAA,UAAU,OAAA;AACnB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,mDAAiD;AAAxC,+GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exhaustive.d.ts","sourceRoot":"","sources":["../../src/utils/exhaustive.ts"],"names":[],"mappings":"AAAA,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,GAAG,KAAK,CAEvD"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.exhaustive = void 0;
|
|
4
|
+
function exhaustive(msg, _) {
|
|
5
|
+
throw new Error(`${msg}: ${JSON.stringify(_)}`);
|
|
6
|
+
}
|
|
7
|
+
exports.exhaustive = exhaustive;
|
|
8
|
+
//# sourceMappingURL=exhaustive.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"exhaustive.js","sourceRoot":"","sources":["../../src/utils/exhaustive.ts"],"names":[],"mappings":";;;AAAA,SAAgB,UAAU,CAAC,GAAW,EAAE,CAAQ;IAC9C,MAAM,IAAI,KAAK,CAAC,GAAG,GAAG,KAAK,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAClD,CAAC;AAFD,gCAEC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repeat.d.ts","sourceRoot":"","sources":["../../src/utils/repeat.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,SAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"repeat.d.ts","sourceRoot":"","sources":["../../src/utils/repeat.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,MAAM,SAAU,MAAM,MAAM,CAAC,CAAC,EAAE,MAAM,KAAK,CAAC,KAAG,CAAC,EAGpC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@4bitlabs/sci0",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.6.0",
|
|
4
4
|
"description": "Library for parsing and rendering assets from Sierra On-line's SCI-engine.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"author": "J. Holmes <j@holmes.codes>",
|
|
25
25
|
"license": "ISC",
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@4bitlabs/codecs": "^2.0.
|
|
28
|
-
"@4bitlabs/image": "^3.3.
|
|
29
|
-
"@4bitlabs/numeric-deque": "^1.1.
|
|
30
|
-
"@4bitlabs/readers": "^2.0.
|
|
27
|
+
"@4bitlabs/codecs": "^2.0.1",
|
|
28
|
+
"@4bitlabs/image": "^3.3.9",
|
|
29
|
+
"@4bitlabs/numeric-deque": "^1.1.5",
|
|
30
|
+
"@4bitlabs/readers": "^2.0.5"
|
|
31
31
|
}
|
|
32
32
|
}
|