arx-convert 10.4.2 → 11.0.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/README.md +25 -8
- package/dist/common/BinaryIO.d.ts +2 -1
- package/dist/common/BinaryIO.js +4 -1
- package/dist/common/BinaryIO.js.map +1 -1
- package/dist/fts/FTS.d.ts +7 -1
- package/dist/fts/FTS.js +9 -3
- package/dist/fts/FTS.js.map +1 -1
- package/dist/fts/constants.d.ts +1 -1
- package/dist/fts/constants.js.map +1 -1
- package/dist/tea/KeyFrame.d.ts +97 -0
- package/dist/tea/KeyFrame.js +209 -0
- package/dist/tea/KeyFrame.js.map +1 -0
- package/dist/tea/TEA.d.ts +2 -16
- package/dist/tea/TEA.js +12 -52
- package/dist/tea/TEA.js.map +1 -1
- package/dist/tea/TeaHeader.d.ts +8 -3
- package/dist/tea/TeaHeader.js +17 -6
- package/dist/tea/TeaHeader.js.map +1 -1
- package/dist/tea/constants.d.ts +2 -0
- package/dist/tea/constants.js +3 -0
- package/dist/tea/constants.js.map +1 -0
- package/dist/tea/types.d.ts +7 -0
- package/dist/tea/types.js +2 -0
- package/dist/tea/types.js.map +1 -0
- package/dist/types.d.ts +5 -0
- package/dist/types.js +1 -0
- package/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/xo.config.ts +6 -1
- package/dist/tea/NewKeyFrame.d.ts +0 -14
- package/dist/tea/NewKeyFrame.js +0 -28
- package/dist/tea/NewKeyFrame.js.map +0 -1
- package/dist/tea/OldKeyFrame.d.ts +0 -20
- package/dist/tea/OldKeyFrame.js +0 -25
- package/dist/tea/OldKeyFrame.js.map +0 -1
package/README.md
CHANGED
|
@@ -6,11 +6,30 @@ Converts various Arx Fatalis formats (DLF, FTS, LLF, AMB and FTL) to JSON/YAML a
|
|
|
6
6
|
|
|
7
7
|
## Installation
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
9
|
+
### node.js
|
|
10
|
+
|
|
11
|
+
`npm i -g arx-convert`
|
|
12
|
+
|
|
13
|
+
### browser
|
|
14
|
+
|
|
15
|
+
```html
|
|
16
|
+
<script type="importmap">
|
|
17
|
+
{
|
|
18
|
+
"imports": {
|
|
19
|
+
"arx-convert": "https://esm.sh/arx-convert",
|
|
20
|
+
"arx-convert/types": "https://esm.sh/arx-convert/types",
|
|
21
|
+
"arx-convert/utils": "https://esm.sh/arx-convert/utils"
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
</script>
|
|
25
|
+
<script type="module">
|
|
26
|
+
import { DLF, FTS, LLF } from 'arx-convert'
|
|
27
|
+
import { type ArxPolygon, ArxPolygonFlags, type ArxFTS, type ArxLLF, type ArxDLF } from 'arx-convert/types'
|
|
28
|
+
import { isQuad } from 'arx-convert/utils'
|
|
29
|
+
|
|
30
|
+
// ...
|
|
31
|
+
</script>
|
|
32
|
+
```
|
|
14
33
|
|
|
15
34
|
### Recommended requirements
|
|
16
35
|
|
|
@@ -26,9 +45,7 @@ the inputfile and --output parameters can be omitted and then the code can be us
|
|
|
26
45
|
|
|
27
46
|
`cat <inputfile> | arx-convert --from=<format> --to=<format> > <outputfile>`
|
|
28
47
|
|
|
29
|
-
the `<format>` parameter can be one of the following arx formats: `dlf`, `llf`, `fts`, `amb` or `
|
|
30
|
-
|
|
31
|
-
work in progress formats: `tea`
|
|
48
|
+
the `<format>` parameter can be one of the following arx formats: `dlf`, `llf`, `fts`, `amb`, `ftl` or `tea`
|
|
32
49
|
|
|
33
50
|
and it can also a data format for the other side: `json` and `yaml`(can also be spelled as `yml`)
|
|
34
51
|
|
|
@@ -23,7 +23,7 @@ export declare class BinaryIO<TArrayBuffer extends ArrayBufferLike & {
|
|
|
23
23
|
static sizeOfVector3Array(length: number): number;
|
|
24
24
|
static sizeOfRotation(): number;
|
|
25
25
|
static sizeOfQuat(): number;
|
|
26
|
-
position
|
|
26
|
+
private position;
|
|
27
27
|
constructor(buffer: TArrayBuffer, byteOffset?: number, byteLength?: number);
|
|
28
28
|
readFloat32(): number;
|
|
29
29
|
readFloat32Array(length: number): number[];
|
|
@@ -64,4 +64,5 @@ export declare class BinaryIO<TArrayBuffer extends ArrayBufferLike & {
|
|
|
64
64
|
readQuat(): ArxQuaternion;
|
|
65
65
|
writeQuat({ x, y, z, w }: ArxQuaternion): void;
|
|
66
66
|
writeBuffer(buffer: ArrayBufferLike): void;
|
|
67
|
+
skipBytes(numberOfBytes: number): void;
|
|
67
68
|
}
|
package/dist/common/BinaryIO.js
CHANGED
|
@@ -61,7 +61,7 @@ export class BinaryIO extends DataView {
|
|
|
61
61
|
static sizeOfQuat() {
|
|
62
62
|
return BinaryIO.sizeOfFloat32Array(4);
|
|
63
63
|
}
|
|
64
|
-
position;
|
|
64
|
+
position;
|
|
65
65
|
constructor(buffer, byteOffset, byteLength) {
|
|
66
66
|
super(buffer, byteOffset, byteLength);
|
|
67
67
|
this.position = 0;
|
|
@@ -307,5 +307,8 @@ export class BinaryIO extends DataView {
|
|
|
307
307
|
writeBuffer(buffer) {
|
|
308
308
|
this.writeUint8Array(buffer);
|
|
309
309
|
}
|
|
310
|
+
skipBytes(numberOfBytes) {
|
|
311
|
+
this.position = this.position + numberOfBytes;
|
|
312
|
+
}
|
|
310
313
|
}
|
|
311
314
|
//# sourceMappingURL=BinaryIO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryIO.js","sourceRoot":"","sources":["../../src/common/BinaryIO.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BinaryIO.js","sourceRoot":"","sources":["../../src/common/BinaryIO.ts"],"names":[],"mappings":"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"}
|
package/dist/fts/FTS.d.ts
CHANGED
|
@@ -13,7 +13,7 @@ export type ArxFTS = {
|
|
|
13
13
|
uniqueHeaders: ArxUniqueHeader[];
|
|
14
14
|
sceneHeader: Omit<ArxSceneHeader, 'numberOfTextures' | 'numberOfAnchors' | 'numberOfPortals' | 'numberOfRooms'>;
|
|
15
15
|
textureContainers: ArxTextureContainer[];
|
|
16
|
-
cells: Omit<ArxCell, 'polygons'
|
|
16
|
+
cells: Array<Omit<ArxCell, 'polygons'>>;
|
|
17
17
|
polygons: ArxPolygon[];
|
|
18
18
|
anchors: ArxAnchor[];
|
|
19
19
|
portals: ArxPortal[];
|
|
@@ -22,5 +22,11 @@ export type ArxFTS = {
|
|
|
22
22
|
};
|
|
23
23
|
export declare class FTS {
|
|
24
24
|
static load(decompressedFile: ArrayBufferLike): ArxFTS;
|
|
25
|
+
/**
|
|
26
|
+
* @param {boolean} isCompressed when set to `true` (which is the default value) then the FTS will
|
|
27
|
+
* need to get partially compressed with {@link https://github.com/arx-tools/node-pkware | node-pkware}.
|
|
28
|
+
* `arx-libertatis-1.3-dev-2022-12-31` and later {@link https://arx-libertatis.org/files/snapshots/ | Arx Libertatis 1.3 snapshots }
|
|
29
|
+
* all support uncompressed FTS files, when targeting those versions isCompressed can be set to `false`.
|
|
30
|
+
*/
|
|
25
31
|
static save(json: ArxFTS, isCompressed?: boolean): ArrayBuffer;
|
|
26
32
|
}
|
package/dist/fts/FTS.js
CHANGED
|
@@ -15,12 +15,12 @@ import { addLightIndex, getCellCoords } from './helpers.js';
|
|
|
15
15
|
* Arx Libertatis feature: setting the uncompressed bytes' size in the header to 0 gets
|
|
16
16
|
* interpreted as the file being uncompressed
|
|
17
17
|
*
|
|
18
|
-
*
|
|
18
|
+
* Source of discussion: https://arx-libertatis.org/irclogs/2022/%23arx.2022-09-06.log
|
|
19
19
|
* and https://arx-libertatis.org/irclogs/2022/%23arx.2022-09-07.log
|
|
20
20
|
*
|
|
21
|
-
*
|
|
21
|
+
* Implemented in: https://github.com/arx/ArxLibertatis/commit/2d2226929780b6202f54982bacc79ddf75dbec53
|
|
22
22
|
*
|
|
23
|
-
*
|
|
23
|
+
* Available in Arx Libertatis 1.3 snapshots that came after `2022-09-17` in https://arx-libertatis.org/files/snapshots/
|
|
24
24
|
*/
|
|
25
25
|
const IS_AN_UNCOMPRESSED_FTS = 0;
|
|
26
26
|
export class FTS {
|
|
@@ -65,6 +65,12 @@ export class FTS {
|
|
|
65
65
|
}, numberOfRooms ** 2),
|
|
66
66
|
};
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* @param {boolean} isCompressed when set to `true` (which is the default value) then the FTS will
|
|
70
|
+
* need to get partially compressed with {@link https://github.com/arx-tools/node-pkware | node-pkware}.
|
|
71
|
+
* `arx-libertatis-1.3-dev-2022-12-31` and later {@link https://arx-libertatis.org/files/snapshots/ | Arx Libertatis 1.3 snapshots }
|
|
72
|
+
* all support uncompressed FTS files, when targeting those versions isCompressed can be set to `false`.
|
|
73
|
+
*/
|
|
68
74
|
static save(json, isCompressed = true) {
|
|
69
75
|
const { levelIdx } = json.header;
|
|
70
76
|
const sceneHeader = SceneHeader.accumulateFrom(json);
|
package/dist/fts/FTS.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FTS.js","sourceRoot":"","sources":["../../src/fts/FTS.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FTS.js","sourceRoot":"","sources":["../../src/fts/FTS.ts"],"names":[],"mappings":"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"}
|
package/dist/fts/constants.d.ts
CHANGED
|
@@ -73,4 +73,4 @@ export declare const FTS_VERSION = 0.14100000262260437;
|
|
|
73
73
|
* level 22 is the best example as it has both cases where the same fraction needs to be rounded
|
|
74
74
|
* in both ways within the same level (produced by different coordinates of course).
|
|
75
75
|
*/
|
|
76
|
-
export declare const COORDS_THAT_ROUND_UP: TripleOf<number
|
|
76
|
+
export declare const COORDS_THAT_ROUND_UP: Array<TripleOf<number>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/fts/constants.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,wBAAwB,CAAA;AAEnD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqEG;AACH,kBAAkB;AAClB,MAAM,CAAC,MAAM,oBAAoB,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/fts/constants.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
+
import type { ArxQuaternion, ArxVector3 } from '../common/types.js';
|
|
3
|
+
import type { ArxTheaSample } from './types.js';
|
|
4
|
+
/**
|
|
5
|
+
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/Animation.h#L131
|
|
6
|
+
* @see https://github.com/arx/ArxLibertatis/blob/ArxFatalis-1.21/Sources/Include/EERIETypes.h#L667
|
|
7
|
+
*/
|
|
8
|
+
export declare enum ArxAnimationPlayingFlags {
|
|
9
|
+
None = 0,
|
|
10
|
+
/**
|
|
11
|
+
* Must be looped at end (indefinitely...)
|
|
12
|
+
*/
|
|
13
|
+
Loop = 1,
|
|
14
|
+
/**
|
|
15
|
+
* Is played in reverse (from end to start)
|
|
16
|
+
*/
|
|
17
|
+
Reverse = 2,
|
|
18
|
+
/**
|
|
19
|
+
* Is paused
|
|
20
|
+
*/
|
|
21
|
+
Paused = 4,
|
|
22
|
+
/**
|
|
23
|
+
* Has just finished
|
|
24
|
+
*/
|
|
25
|
+
AnimEnd = 8,
|
|
26
|
+
/**
|
|
27
|
+
* Is a static Anim (no movement offset returned)
|
|
28
|
+
*/
|
|
29
|
+
StaticAnim = 16,
|
|
30
|
+
/**
|
|
31
|
+
* Must be stopped at end
|
|
32
|
+
*/
|
|
33
|
+
StopEnd = 32,
|
|
34
|
+
/**
|
|
35
|
+
* User controlled... MUST be played...
|
|
36
|
+
*/
|
|
37
|
+
ForcePlay = 64,
|
|
38
|
+
/**
|
|
39
|
+
* ctime externally set, no update
|
|
40
|
+
*/
|
|
41
|
+
ExControl = 128
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/AnimationFormat.h#L116
|
|
45
|
+
*/
|
|
46
|
+
export type ArxTheoAnimationGroup = {
|
|
47
|
+
isKey: boolean;
|
|
48
|
+
/**
|
|
49
|
+
* if value is missing than it means it's a quaternion with 0/0/0/1 values
|
|
50
|
+
*/
|
|
51
|
+
quaternion?: ArxQuaternion;
|
|
52
|
+
/**
|
|
53
|
+
* if value is missing than it means it's a vector with 0/0/0 values
|
|
54
|
+
*/
|
|
55
|
+
translate?: ArxVector3;
|
|
56
|
+
/**
|
|
57
|
+
* if value is missing than it means it's a vector with 0/0/0 values
|
|
58
|
+
*/
|
|
59
|
+
zoom?: ArxVector3;
|
|
60
|
+
};
|
|
61
|
+
/**
|
|
62
|
+
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/AnimationFormat.h#L91 - old keyframe format
|
|
63
|
+
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/AnimationFormat.h#L102 - new keyframe format
|
|
64
|
+
*
|
|
65
|
+
* The new keyframe format contains an "info_frame" field, but the runtime code doesn't use it, it holds no data or garbage
|
|
66
|
+
*
|
|
67
|
+
* The original data is extended with optional fields that get computed when parsing keyframe data
|
|
68
|
+
*/
|
|
69
|
+
export type ArxKeyFrame = {
|
|
70
|
+
/**
|
|
71
|
+
* Position of this keyframe on the timeline set between `0` (inclusive) and `ArxTeaHeader.totalNumberOfFrames` (exclusive)
|
|
72
|
+
*/
|
|
73
|
+
frame: number;
|
|
74
|
+
/**
|
|
75
|
+
* always set to -1 or 9 in tea files, so Arx Libertatis in debug mode expects only those 2 values
|
|
76
|
+
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/Animation.cpp#L304
|
|
77
|
+
*/
|
|
78
|
+
flags: ArxAnimationPlayingFlags;
|
|
79
|
+
/**
|
|
80
|
+
* not used by Arx
|
|
81
|
+
*/
|
|
82
|
+
isMasterKeyFrame: boolean;
|
|
83
|
+
/**
|
|
84
|
+
* not used by Arx
|
|
85
|
+
*/
|
|
86
|
+
isKeyFrame: boolean;
|
|
87
|
+
time_frame: number;
|
|
88
|
+
groups: ArxTheoAnimationGroup[];
|
|
89
|
+
translate?: ArxVector3;
|
|
90
|
+
quaternion?: ArxQuaternion;
|
|
91
|
+
sample?: ArxTheaSample;
|
|
92
|
+
};
|
|
93
|
+
export declare class KeyFrame {
|
|
94
|
+
static readFrom(binary: BinaryIO<ArrayBufferLike>, version: number, numberOfGroups: number): ArxKeyFrame;
|
|
95
|
+
static accumulateFrom(keyframe: ArxKeyFrame): ArrayBuffer;
|
|
96
|
+
static sizeOf(version: number, hasTranslateData: boolean, hasQuaternionData: boolean, hasMorphData: boolean, numberOfGroups: number, hasSample: boolean, sampleSize?: number): number;
|
|
97
|
+
}
|
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
+
import { repeat, times } from '../common/helpers.js';
|
|
3
|
+
import { TEA_VERSION_NEW, TEA_VERSION_OLD } from './constants.js';
|
|
4
|
+
/**
|
|
5
|
+
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/Animation.h#L131
|
|
6
|
+
* @see https://github.com/arx/ArxLibertatis/blob/ArxFatalis-1.21/Sources/Include/EERIETypes.h#L667
|
|
7
|
+
*/
|
|
8
|
+
export var ArxAnimationPlayingFlags;
|
|
9
|
+
(function (ArxAnimationPlayingFlags) {
|
|
10
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["None"] = 0] = "None";
|
|
11
|
+
/**
|
|
12
|
+
* Must be looped at end (indefinitely...)
|
|
13
|
+
*/
|
|
14
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["Loop"] = 1] = "Loop";
|
|
15
|
+
/**
|
|
16
|
+
* Is played in reverse (from end to start)
|
|
17
|
+
*/
|
|
18
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["Reverse"] = 2] = "Reverse";
|
|
19
|
+
/**
|
|
20
|
+
* Is paused
|
|
21
|
+
*/
|
|
22
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["Paused"] = 4] = "Paused";
|
|
23
|
+
/**
|
|
24
|
+
* Has just finished
|
|
25
|
+
*/
|
|
26
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["AnimEnd"] = 8] = "AnimEnd";
|
|
27
|
+
/**
|
|
28
|
+
* Is a static Anim (no movement offset returned)
|
|
29
|
+
*/
|
|
30
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["StaticAnim"] = 16] = "StaticAnim";
|
|
31
|
+
/**
|
|
32
|
+
* Must be stopped at end
|
|
33
|
+
*/
|
|
34
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["StopEnd"] = 32] = "StopEnd";
|
|
35
|
+
/**
|
|
36
|
+
* User controlled... MUST be played...
|
|
37
|
+
*/
|
|
38
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["ForcePlay"] = 64] = "ForcePlay";
|
|
39
|
+
/**
|
|
40
|
+
* ctime externally set, no update
|
|
41
|
+
*/
|
|
42
|
+
ArxAnimationPlayingFlags[ArxAnimationPlayingFlags["ExControl"] = 128] = "ExControl";
|
|
43
|
+
})(ArxAnimationPlayingFlags || (ArxAnimationPlayingFlags = {}));
|
|
44
|
+
export class KeyFrame {
|
|
45
|
+
static readFrom(binary, version, numberOfGroups) {
|
|
46
|
+
const frame = binary.readInt32();
|
|
47
|
+
const flags = binary.readInt32();
|
|
48
|
+
const isNewerVersion = version >= TEA_VERSION_NEW;
|
|
49
|
+
if (isNewerVersion) {
|
|
50
|
+
binary.readString(256); // info_frame - always an empty string
|
|
51
|
+
}
|
|
52
|
+
const isMasterKeyFrame = binary.readInt32() !== 0;
|
|
53
|
+
const isKeyFrame = binary.readInt32() !== 0;
|
|
54
|
+
const hasTranslateData = binary.readInt32() !== 0; // key_move
|
|
55
|
+
const hasQuaternionData = binary.readInt32() !== 0; // key_orient
|
|
56
|
+
const hasMorphData = binary.readInt32() !== 0; // key_morph - 16 bytes of unknown data - ignored by Arx
|
|
57
|
+
const keyframe = {
|
|
58
|
+
frame,
|
|
59
|
+
flags,
|
|
60
|
+
isMasterKeyFrame,
|
|
61
|
+
isKeyFrame,
|
|
62
|
+
time_frame: binary.readInt32(),
|
|
63
|
+
groups: [],
|
|
64
|
+
};
|
|
65
|
+
if (keyframe.time_frame !== 0) {
|
|
66
|
+
console.log(keyframe.time_frame);
|
|
67
|
+
}
|
|
68
|
+
if (hasTranslateData) {
|
|
69
|
+
keyframe.translate = binary.readVector3();
|
|
70
|
+
}
|
|
71
|
+
if (hasQuaternionData) {
|
|
72
|
+
binary.skipBytes(8); // theo angle - no info on the structure - not used by Arx
|
|
73
|
+
keyframe.quaternion = binary.readQuat();
|
|
74
|
+
}
|
|
75
|
+
if (hasMorphData) {
|
|
76
|
+
binary.skipBytes(16); // thea morph - no info on the structure - not used by Arx
|
|
77
|
+
}
|
|
78
|
+
keyframe.groups = times(() => {
|
|
79
|
+
const isKey = binary.readInt32() !== 0;
|
|
80
|
+
binary.readString(8); // angle - probably not a string as it holds garbage data, like "Ò?x19" when not empty - not used by Arx
|
|
81
|
+
const quaternion = binary.readQuat();
|
|
82
|
+
const translate = binary.readVector3();
|
|
83
|
+
const zoom = binary.readVector3();
|
|
84
|
+
const group = {
|
|
85
|
+
isKey,
|
|
86
|
+
};
|
|
87
|
+
if (quaternion.x !== 0 || quaternion.y !== 0 || quaternion.z !== 0 || quaternion.w !== 1) {
|
|
88
|
+
group.quaternion = quaternion;
|
|
89
|
+
}
|
|
90
|
+
if (translate.x !== 0 || translate.y !== 0 || translate.z !== 0) {
|
|
91
|
+
group.translate = translate;
|
|
92
|
+
}
|
|
93
|
+
if (zoom.x !== 0 || zoom.y !== 0 || zoom.z !== 0) {
|
|
94
|
+
group.zoom = zoom;
|
|
95
|
+
}
|
|
96
|
+
return group;
|
|
97
|
+
}, numberOfGroups);
|
|
98
|
+
const hasSample = binary.readInt32() !== -1;
|
|
99
|
+
if (hasSample) {
|
|
100
|
+
keyframe.sample = {
|
|
101
|
+
name: binary.readString(256),
|
|
102
|
+
sizeInBytes: binary.readInt32(),
|
|
103
|
+
};
|
|
104
|
+
binary.skipBytes(keyframe.sample.sizeInBytes); // contains audio data if sizeInBytes > 0, which is already present in SFX folder of the game * - not used by Arx
|
|
105
|
+
// * Only 4 audios are not present in the SFX folder of the released game:
|
|
106
|
+
// - Bell.wav
|
|
107
|
+
// - porticulis_close.wav
|
|
108
|
+
// - porticulis_open.wav
|
|
109
|
+
// - wooddoorclose.wav (same as sfx/door_wood_close.wav)
|
|
110
|
+
// 2 audios are present in SFX, but sound different:
|
|
111
|
+
// - LEVER.wav
|
|
112
|
+
// - Bow_end.wav
|
|
113
|
+
}
|
|
114
|
+
binary.readInt32(); // num_sfx - always -1 - not used by Arx
|
|
115
|
+
return keyframe;
|
|
116
|
+
}
|
|
117
|
+
static accumulateFrom(keyframe) {
|
|
118
|
+
const hasTranslateData = keyframe.translate !== undefined;
|
|
119
|
+
const hasQuaternionData = keyframe.quaternion !== undefined;
|
|
120
|
+
const hasSample = keyframe.sample !== undefined;
|
|
121
|
+
const buffer = new ArrayBuffer(KeyFrame.sizeOf(TEA_VERSION_OLD, hasTranslateData, hasQuaternionData, false, keyframe.groups.length, hasSample, 0));
|
|
122
|
+
const binary = new BinaryIO(buffer);
|
|
123
|
+
binary.writeInt32(keyframe.frame);
|
|
124
|
+
binary.writeInt32(keyframe.flags);
|
|
125
|
+
if (keyframe.isMasterKeyFrame) {
|
|
126
|
+
binary.writeInt32(1);
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
binary.writeInt32(0);
|
|
130
|
+
}
|
|
131
|
+
if (keyframe.isKeyFrame) {
|
|
132
|
+
binary.writeInt32(1);
|
|
133
|
+
}
|
|
134
|
+
else {
|
|
135
|
+
binary.writeInt32(0);
|
|
136
|
+
}
|
|
137
|
+
// key_move
|
|
138
|
+
if (hasTranslateData) {
|
|
139
|
+
binary.writeInt32(1);
|
|
140
|
+
}
|
|
141
|
+
else {
|
|
142
|
+
binary.writeInt32(0);
|
|
143
|
+
}
|
|
144
|
+
// key_orient
|
|
145
|
+
if (hasQuaternionData) {
|
|
146
|
+
binary.writeInt32(1);
|
|
147
|
+
}
|
|
148
|
+
else {
|
|
149
|
+
binary.writeInt32(0);
|
|
150
|
+
}
|
|
151
|
+
binary.writeInt32(0); // key_morph - ignored by Arx
|
|
152
|
+
binary.writeInt32(keyframe.time_frame);
|
|
153
|
+
if (keyframe.translate) {
|
|
154
|
+
binary.writeVector3(keyframe.translate);
|
|
155
|
+
}
|
|
156
|
+
if (keyframe.quaternion) {
|
|
157
|
+
binary.writeUint8Array(repeat(0, 8)); // theo angle - no info on the structure
|
|
158
|
+
binary.writeQuat(keyframe.quaternion);
|
|
159
|
+
}
|
|
160
|
+
keyframe.groups.forEach(({ isKey, quaternion = { x: 0, y: 0, z: 0, w: 1 }, translate = { x: 0, y: 0, z: 0 }, zoom = { x: 0, y: 0, z: 0 }, }) => {
|
|
161
|
+
if (isKey) {
|
|
162
|
+
binary.writeInt32(1);
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
binary.writeInt32(0);
|
|
166
|
+
}
|
|
167
|
+
binary.writeString('', 8); // angle
|
|
168
|
+
binary.writeQuat(quaternion);
|
|
169
|
+
binary.writeVector3(translate);
|
|
170
|
+
binary.writeVector3(zoom);
|
|
171
|
+
});
|
|
172
|
+
if (keyframe.sample === undefined) {
|
|
173
|
+
binary.writeInt32(-1); // num_sample
|
|
174
|
+
}
|
|
175
|
+
else {
|
|
176
|
+
binary.writeInt32(1); // num_sample
|
|
177
|
+
binary.writeString(keyframe.sample.name, 256); // sample_name
|
|
178
|
+
binary.writeInt32(0); // sample_size
|
|
179
|
+
}
|
|
180
|
+
binary.writeInt32(-1); // num_sfx
|
|
181
|
+
return buffer;
|
|
182
|
+
}
|
|
183
|
+
static sizeOf(version, hasTranslateData, hasQuaternionData, hasMorphData, numberOfGroups, hasSample, sampleSize = 0) {
|
|
184
|
+
let numberOfBytes = BinaryIO.sizeOfInt32() * 8;
|
|
185
|
+
const isNewerVersion = version >= TEA_VERSION_NEW;
|
|
186
|
+
if (isNewerVersion) {
|
|
187
|
+
numberOfBytes = numberOfBytes + BinaryIO.sizeOfString(256);
|
|
188
|
+
}
|
|
189
|
+
if (hasTranslateData) {
|
|
190
|
+
numberOfBytes = numberOfBytes + BinaryIO.sizeOfVector3();
|
|
191
|
+
}
|
|
192
|
+
if (hasQuaternionData) {
|
|
193
|
+
numberOfBytes = numberOfBytes + 8 * BinaryIO.sizeOfUint8() + BinaryIO.sizeOfQuat();
|
|
194
|
+
}
|
|
195
|
+
if (hasMorphData) {
|
|
196
|
+
numberOfBytes = numberOfBytes + 16 * BinaryIO.sizeOfUint8();
|
|
197
|
+
}
|
|
198
|
+
const sizeOfGroup = BinaryIO.sizeOfInt32() + BinaryIO.sizeOfString(8) + BinaryIO.sizeOfQuat() + 2 * BinaryIO.sizeOfVector3();
|
|
199
|
+
numberOfBytes = numberOfBytes + numberOfGroups * sizeOfGroup;
|
|
200
|
+
numberOfBytes = numberOfBytes + BinaryIO.sizeOfInt32();
|
|
201
|
+
if (hasSample) {
|
|
202
|
+
const sizeOfSample = BinaryIO.sizeOfString(256) + BinaryIO.sizeOfInt32() + sampleSize * BinaryIO.sizeOfUint8();
|
|
203
|
+
numberOfBytes = numberOfBytes + sizeOfSample;
|
|
204
|
+
}
|
|
205
|
+
numberOfBytes = numberOfBytes + BinaryIO.sizeOfInt32();
|
|
206
|
+
return numberOfBytes;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=KeyFrame.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"KeyFrame.js","sourceRoot":"","sources":["../../src/tea/KeyFrame.ts"],"names":[],"mappings":"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"}
|
package/dist/tea/TEA.d.ts
CHANGED
|
@@ -1,21 +1,7 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { type ArxNewKeyFrame } from './NewKeyFrame.js';
|
|
3
|
-
import { type ArxOldKeyFrame } from './OldKeyFrame.js';
|
|
1
|
+
import { type ArxKeyFrame } from './KeyFrame.js';
|
|
4
2
|
import { type ArxTeaHeader } from './TeaHeader.js';
|
|
5
|
-
/**
|
|
6
|
-
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/AnimationFormat.h#L124
|
|
7
|
-
*/
|
|
8
|
-
export type ArxTheaSample = {
|
|
9
|
-
name: string;
|
|
10
|
-
size: number;
|
|
11
|
-
};
|
|
12
|
-
export type ArxKeyFrame = (ArxNewKeyFrame | ArxOldKeyFrame) & {
|
|
13
|
-
translate?: ArxVector3;
|
|
14
|
-
quat?: ArxQuaternion;
|
|
15
|
-
sample?: ArxTheaSample;
|
|
16
|
-
};
|
|
17
3
|
export type ArxTEA = {
|
|
18
|
-
header: Omit<ArxTeaHeader, 'numberOfKeyFrames' | 'numberOfGroups'>;
|
|
4
|
+
header: Omit<ArxTeaHeader, 'numberOfKeyFrames' | 'numberOfGroups' | 'version'>;
|
|
19
5
|
keyframes: ArxKeyFrame[];
|
|
20
6
|
};
|
|
21
7
|
export declare class TEA {
|
package/dist/tea/TEA.js
CHANGED
|
@@ -1,67 +1,27 @@
|
|
|
1
1
|
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import { NewKeyFrame } from './NewKeyFrame.js';
|
|
5
|
-
import { OldKeyFrame } from './OldKeyFrame.js';
|
|
2
|
+
import { concatArrayBuffers, times } from '../common/helpers.js';
|
|
3
|
+
import { KeyFrame } from './KeyFrame.js';
|
|
6
4
|
import { TeaHeader } from './TeaHeader.js';
|
|
5
|
+
import { TEA_VERSION_OLD } from './constants.js';
|
|
7
6
|
export class TEA {
|
|
8
7
|
static load(decompressedFile) {
|
|
9
8
|
const file = new BinaryIO(decompressedFile);
|
|
10
|
-
const { numberOfKeyFrames, numberOfGroups, ...header } = TeaHeader.readFrom(file);
|
|
11
|
-
if (
|
|
12
|
-
throw new Error(`Invalid TEA version ${
|
|
9
|
+
const { numberOfKeyFrames, numberOfGroups, version, ...header } = TeaHeader.readFrom(file);
|
|
10
|
+
if (version < TEA_VERSION_OLD) {
|
|
11
|
+
throw new Error(`Invalid TEA version ${version}`);
|
|
13
12
|
}
|
|
14
13
|
const data = {
|
|
15
14
|
header,
|
|
16
|
-
keyframes:
|
|
15
|
+
keyframes: times(() => {
|
|
16
|
+
return KeyFrame.readFrom(file, version, numberOfGroups);
|
|
17
|
+
}, numberOfKeyFrames),
|
|
17
18
|
};
|
|
18
|
-
for (let i = 0; i < numberOfKeyFrames; i++) {
|
|
19
|
-
console.log(i, file.position);
|
|
20
|
-
let keyframe;
|
|
21
|
-
if (header.version >= 2015) {
|
|
22
|
-
keyframe = NewKeyFrame.readFrom(file);
|
|
23
|
-
}
|
|
24
|
-
else {
|
|
25
|
-
keyframe = OldKeyFrame.readFrom(file);
|
|
26
|
-
}
|
|
27
|
-
data.keyframes.push(keyframe);
|
|
28
|
-
if (keyframe.key_move) {
|
|
29
|
-
keyframe.translate = file.readVector3();
|
|
30
|
-
}
|
|
31
|
-
if (keyframe.key_orient) {
|
|
32
|
-
file.position = file.position + 8; // theo angle
|
|
33
|
-
keyframe.quat = file.readQuat();
|
|
34
|
-
}
|
|
35
|
-
if (keyframe.key_morph) {
|
|
36
|
-
file.position = file.position + 16; // thea morph
|
|
37
|
-
}
|
|
38
|
-
for (let j = 0; j < numberOfGroups; j++) {
|
|
39
|
-
// theo groupanim
|
|
40
|
-
const group = {
|
|
41
|
-
key: file.readInt32() !== 0,
|
|
42
|
-
angle: file.readString(8, KEEP_ZERO_BYTES), // ignored
|
|
43
|
-
quat: file.readQuat(),
|
|
44
|
-
translate: file.readVector3(),
|
|
45
|
-
zoom: file.readVector3(),
|
|
46
|
-
};
|
|
47
|
-
// TODO: create groups and fill it in with group data
|
|
48
|
-
}
|
|
49
|
-
const numberOfSamples = file.readInt32();
|
|
50
|
-
if (numberOfSamples !== -1) {
|
|
51
|
-
const sample = {
|
|
52
|
-
name: file.readString(256, KEEP_ZERO_BYTES),
|
|
53
|
-
size: file.readInt32(),
|
|
54
|
-
};
|
|
55
|
-
keyframe.sample = sample;
|
|
56
|
-
file.position = file.position + sample.size;
|
|
57
|
-
}
|
|
58
|
-
console.log(keyframe);
|
|
59
|
-
}
|
|
60
|
-
file.position = file.position + 4; // num_sfx?
|
|
61
19
|
return data;
|
|
62
20
|
}
|
|
63
21
|
static save(json) {
|
|
64
|
-
|
|
22
|
+
const header = TeaHeader.accumulateFrom(json);
|
|
23
|
+
const keyframes = concatArrayBuffers(json.keyframes.map(KeyFrame.accumulateFrom));
|
|
24
|
+
return concatArrayBuffers([header, keyframes]);
|
|
65
25
|
}
|
|
66
26
|
}
|
|
67
27
|
//# sourceMappingURL=TEA.js.map
|
package/dist/tea/TEA.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TEA.js","sourceRoot":"","sources":["../../src/tea/TEA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"TEA.js","sourceRoot":"","sources":["../../src/tea/TEA.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAA;AAC9D,OAAO,EAAoB,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC7D,OAAO,EAAqB,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAOhD,MAAM,OAAO,GAAG;IACd,MAAM,CAAC,IAAI,CAAC,gBAAiC;QAC3C,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,gBAAgB,CAAC,CAAA;QAE3C,MAAM,EAAE,iBAAiB,EAAE,cAAc,EAAE,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAE1F,IAAI,OAAO,GAAG,eAAe,EAAE,CAAC;YAC9B,MAAM,IAAI,KAAK,CAAC,uBAAuB,OAAO,EAAE,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,IAAI,GAAW;YACnB,MAAM;YACN,SAAS,EAAE,KAAK,CAAC,GAAG,EAAE;gBACpB,OAAO,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,cAAc,CAAC,CAAA;YACzD,CAAC,EAAE,iBAAiB,CAAC;SACtB,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,SAAS,GAAG,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAAA;QAEjF,OAAO,kBAAkB,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAA;IAChD,CAAC;CACF"}
|
package/dist/tea/TeaHeader.d.ts
CHANGED
|
@@ -4,15 +4,20 @@ import type { ArxTEA } from './TEA.js';
|
|
|
4
4
|
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/AnimationFormat.h#L82
|
|
5
5
|
*/
|
|
6
6
|
export type ArxTeaHeader = {
|
|
7
|
-
|
|
7
|
+
/**
|
|
8
|
+
* either 2014 or 2015
|
|
9
|
+
*/
|
|
8
10
|
version: number;
|
|
9
11
|
name: string;
|
|
10
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Total number of frames that make up the whole animation
|
|
14
|
+
*/
|
|
15
|
+
totalNumberOfFrames: number;
|
|
11
16
|
numberOfGroups: number;
|
|
12
17
|
numberOfKeyFrames: number;
|
|
13
18
|
};
|
|
14
19
|
export declare class TeaHeader {
|
|
15
20
|
static readFrom(binary: BinaryIO<ArrayBufferLike>): ArxTeaHeader;
|
|
16
|
-
static accumulateFrom(json: ArxTEA
|
|
21
|
+
static accumulateFrom(json: ArxTEA): ArrayBuffer;
|
|
17
22
|
static sizeOf(): number;
|
|
18
23
|
}
|
package/dist/tea/TeaHeader.js
CHANGED
|
@@ -1,20 +1,31 @@
|
|
|
1
1
|
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
-
import {
|
|
2
|
+
import { TEA_VERSION_OLD } from './constants.js';
|
|
3
3
|
export class TeaHeader {
|
|
4
4
|
static readFrom(binary) {
|
|
5
|
+
binary.readString(20); // identifier - always "Theo Animation File"
|
|
5
6
|
return {
|
|
6
|
-
ident: binary.readString(20),
|
|
7
7
|
version: binary.readUint32(),
|
|
8
|
-
name: binary.readString(256
|
|
9
|
-
|
|
8
|
+
name: binary.readString(256),
|
|
9
|
+
totalNumberOfFrames: binary.readInt32(),
|
|
10
10
|
numberOfGroups: binary.readInt32(),
|
|
11
11
|
numberOfKeyFrames: binary.readInt32(),
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
-
static accumulateFrom(json
|
|
14
|
+
static accumulateFrom(json) {
|
|
15
15
|
const buffer = new ArrayBuffer(TeaHeader.sizeOf());
|
|
16
16
|
const binary = new BinaryIO(buffer);
|
|
17
|
-
|
|
17
|
+
binary.writeString('Theo Animation File', 20);
|
|
18
|
+
binary.writeUint32(TEA_VERSION_OLD);
|
|
19
|
+
binary.writeString(json.header.name, 256);
|
|
20
|
+
binary.writeInt32(json.header.totalNumberOfFrames);
|
|
21
|
+
if (json.keyframes.length === 0) {
|
|
22
|
+
binary.writeInt32(0);
|
|
23
|
+
binary.writeInt32(0);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
binary.writeInt32(json.keyframes[0].groups.length);
|
|
27
|
+
binary.writeInt32(json.keyframes.length);
|
|
28
|
+
}
|
|
18
29
|
return buffer;
|
|
19
30
|
}
|
|
20
31
|
static sizeOf() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TeaHeader.js","sourceRoot":"","sources":["../../src/tea/TeaHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;
|
|
1
|
+
{"version":3,"file":"TeaHeader.js","sourceRoot":"","sources":["../../src/tea/TeaHeader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAE9C,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAmBnD,MAAM,OAAO,SAAS;IACpB,MAAM,CAAC,QAAQ,CAAC,MAAiC;QAC/C,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAA,CAAC,4CAA4C;QAElE,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE;YAC5B,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;YAC5B,mBAAmB,EAAE,MAAM,CAAC,SAAS,EAAE;YACvC,cAAc,EAAE,MAAM,CAAC,SAAS,EAAE;YAClC,iBAAiB,EAAE,MAAM,CAAC,SAAS,EAAE;SACtC,CAAA;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QAClD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,CAAC,WAAW,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAA;QAC7C,MAAM,CAAC,WAAW,CAAC,eAAe,CAAC,CAAA;QACnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAA;QACzC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAA;QAElD,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACpB,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;YAClD,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;QAC1C,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,CACL,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,YAAY,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAChH,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/tea/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/tea/types.ts"],"names":[],"mappings":""}
|
package/dist/types.d.ts
CHANGED
|
@@ -37,6 +37,10 @@ export type { ArxLLF } from './llf/LLF.js';
|
|
|
37
37
|
export type { ArxLightingHeader } from './llf/LightingHeader.js';
|
|
38
38
|
export type { ArxLlfHeader } from './llf/LlfHeader.js';
|
|
39
39
|
export type { ArxLight } from './llf/Light.js';
|
|
40
|
+
export type { ArxTEA } from './tea/TEA.js';
|
|
41
|
+
export type { ArxTeaHeader } from './tea/TeaHeader.js';
|
|
42
|
+
export type { ArxKeyFrame, ArxTheoAnimationGroup } from './tea/KeyFrame.js';
|
|
43
|
+
export type { ArxTheaSample } from './tea/types.js';
|
|
40
44
|
export type { ArxAMB } from './amb/AMB.js';
|
|
41
45
|
export type { ArxAmbHeader } from './amb/AmbHeader.js';
|
|
42
46
|
export type { ArxTrack } from './amb/Track.js';
|
|
@@ -48,3 +52,4 @@ export { ArxLightFlags } from './llf/Light.js';
|
|
|
48
52
|
export { ArxTrackFlags } from './amb/Track.js';
|
|
49
53
|
export { ArxSettingFlag } from './amb/Setting.js';
|
|
50
54
|
export { ArxFaceType } from './ftl/Face.js';
|
|
55
|
+
export { ArxAnimationPlayingFlags } from './tea/KeyFrame.js';
|
package/dist/types.js
CHANGED
|
@@ -10,4 +10,5 @@ export { ArxLightFlags } from './llf/Light.js';
|
|
|
10
10
|
export { ArxTrackFlags } from './amb/Track.js';
|
|
11
11
|
export { ArxSettingFlag } from './amb/Setting.js';
|
|
12
12
|
export { ArxFaceType } from './ftl/Face.js';
|
|
13
|
+
export { ArxAnimationPlayingFlags } from './tea/KeyFrame.js';
|
|
13
14
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,SAAS;AACT,mBAAmB;AAyDnB,mBAAmB;AACnB,SAAS;AACT,mBAAmB;AAEnB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,mBAAmB;AACnB,SAAS;AACT,mBAAmB;AAyDnB,mBAAmB;AACnB,SAAS;AACT,mBAAmB;AAEnB,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC1C,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA"}
|
package/package.json
CHANGED
package/xo.config.ts
CHANGED
|
@@ -37,7 +37,12 @@ const xoConfig: FlatXoConfig = {
|
|
|
37
37
|
{ fixStyle: 'separate-type-imports', prefer: 'type-imports' },
|
|
38
38
|
],
|
|
39
39
|
'@typescript-eslint/explicit-function-return-type': 'error',
|
|
40
|
-
'@typescript-eslint/array-type': [
|
|
40
|
+
'@typescript-eslint/array-type': [
|
|
41
|
+
'error',
|
|
42
|
+
{
|
|
43
|
+
default: 'array-simple',
|
|
44
|
+
},
|
|
45
|
+
],
|
|
41
46
|
'@typescript-eslint/parameter-properties': ['error', { prefer: 'class-property' }],
|
|
42
47
|
'operator-assignment': ['error', 'never'],
|
|
43
48
|
'logical-assignment-operators': ['error', 'never'],
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
-
import { type ArxOldKeyFrame } from './OldKeyFrame.js';
|
|
3
|
-
import type { ArxTEA } from './TEA.js';
|
|
4
|
-
/**
|
|
5
|
-
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/AnimationFormat.h#L102
|
|
6
|
-
*/
|
|
7
|
-
export type ArxNewKeyFrame = ArxOldKeyFrame & {
|
|
8
|
-
info_frame: string;
|
|
9
|
-
};
|
|
10
|
-
export declare class NewKeyFrame {
|
|
11
|
-
static readFrom(binary: BinaryIO<ArrayBufferLike>): ArxNewKeyFrame;
|
|
12
|
-
static accumulateFrom(json: ArxTEA): ArrayBuffer;
|
|
13
|
-
static sizeOf(): number;
|
|
14
|
-
}
|
package/dist/tea/NewKeyFrame.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
-
import { KEEP_ZERO_BYTES } from '../common/constants.js';
|
|
3
|
-
import { OldKeyFrame } from './OldKeyFrame.js';
|
|
4
|
-
export class NewKeyFrame {
|
|
5
|
-
static readFrom(binary) {
|
|
6
|
-
return {
|
|
7
|
-
num_frame: binary.readInt32(),
|
|
8
|
-
flag_frame: binary.readInt32(),
|
|
9
|
-
info_frame: binary.readString(256, KEEP_ZERO_BYTES),
|
|
10
|
-
master_key_frame: binary.readInt32() !== 0,
|
|
11
|
-
key_frame: binary.readInt32() !== 0,
|
|
12
|
-
key_move: binary.readInt32() !== 0, // is there a global translation?
|
|
13
|
-
key_orient: binary.readInt32() !== 0, // is there a global rotation?
|
|
14
|
-
key_morph: binary.readInt32() !== 0, // is there a global morph? (ignored)
|
|
15
|
-
time_frame: binary.readInt32(),
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
static accumulateFrom(json) {
|
|
19
|
-
const buffer = new ArrayBuffer(NewKeyFrame.sizeOf());
|
|
20
|
-
const binary = new BinaryIO(buffer);
|
|
21
|
-
// TODO
|
|
22
|
-
return buffer;
|
|
23
|
-
}
|
|
24
|
-
static sizeOf() {
|
|
25
|
-
return OldKeyFrame.sizeOf() + BinaryIO.sizeOfString(256);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
//# sourceMappingURL=NewKeyFrame.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NewKeyFrame.js","sourceRoot":"","sources":["../../src/tea/NewKeyFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AACtD,OAAO,EAAuB,WAAW,EAAE,MAAM,qBAAqB,CAAA;AAUtE,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,MAAiC;QAC/C,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;YAC7B,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE;YAC9B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,eAAe,CAAC;YACnD,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;YAC1C,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;YACnC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,iCAAiC;YACrE,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,8BAA8B;YACpE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,EAAE,qCAAqC;YAC1E,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE;SAC/B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEnC,OAAO;QAEP,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,WAAW,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,YAAY,CAAC,GAAG,CAAC,CAAA;IAC1D,CAAC;CACF"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
-
import type { ArxTEA } from './TEA.js';
|
|
3
|
-
/**
|
|
4
|
-
* @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/animation/AnimationFormat.h#L91
|
|
5
|
-
*/
|
|
6
|
-
export type ArxOldKeyFrame = {
|
|
7
|
-
num_frame: number;
|
|
8
|
-
flag_frame: number;
|
|
9
|
-
master_key_frame: boolean;
|
|
10
|
-
key_frame: boolean;
|
|
11
|
-
key_move: boolean;
|
|
12
|
-
key_orient: boolean;
|
|
13
|
-
key_morph: boolean;
|
|
14
|
-
time_frame: number;
|
|
15
|
-
};
|
|
16
|
-
export declare class OldKeyFrame {
|
|
17
|
-
static readFrom(binary: BinaryIO<ArrayBufferLike>): ArxOldKeyFrame;
|
|
18
|
-
static accumulateFrom(json: ArxTEA): ArrayBuffer;
|
|
19
|
-
static sizeOf(): number;
|
|
20
|
-
}
|
package/dist/tea/OldKeyFrame.js
DELETED
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { BinaryIO } from '../common/BinaryIO.js';
|
|
2
|
-
export class OldKeyFrame {
|
|
3
|
-
static readFrom(binary) {
|
|
4
|
-
return {
|
|
5
|
-
num_frame: binary.readInt32(),
|
|
6
|
-
flag_frame: binary.readInt32(),
|
|
7
|
-
master_key_frame: binary.readInt32() !== 0,
|
|
8
|
-
key_frame: binary.readInt32() !== 0,
|
|
9
|
-
key_move: binary.readInt32() !== 0,
|
|
10
|
-
key_orient: binary.readInt32() !== 0,
|
|
11
|
-
key_morph: binary.readInt32() !== 0,
|
|
12
|
-
time_frame: binary.readInt32(),
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
static accumulateFrom(json) {
|
|
16
|
-
const buffer = new ArrayBuffer(OldKeyFrame.sizeOf());
|
|
17
|
-
const binary = new BinaryIO(buffer);
|
|
18
|
-
// TODO
|
|
19
|
-
return buffer;
|
|
20
|
-
}
|
|
21
|
-
static sizeOf() {
|
|
22
|
-
return BinaryIO.sizeOfInt32Array(8);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=OldKeyFrame.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OldKeyFrame.js","sourceRoot":"","sources":["../../src/tea/OldKeyFrame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAiB9C,MAAM,OAAO,WAAW;IACtB,MAAM,CAAC,QAAQ,CAAC,MAAiC;QAC/C,OAAO;YACL,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE;YAC7B,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE;YAC9B,gBAAgB,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;YAC1C,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;YACnC,QAAQ,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;YAClC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;YACpC,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC;YACnC,UAAU,EAAE,MAAM,CAAC,SAAS,EAAE;SAC/B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,MAAM,MAAM,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAA;QACpD,MAAM,MAAM,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEnC,OAAO;QAEP,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC;CACF"}
|