arx-convert 5.17.0 → 6.1.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.
Files changed (133) hide show
  1. package/README.md +1 -1
  2. package/dist/amb/AMB.d.ts +10 -0
  3. package/dist/amb/AMB.js +25 -0
  4. package/dist/amb/AMB.js.map +1 -0
  5. package/dist/amb/AmbHeader.d.ts +15 -0
  6. package/dist/amb/AmbHeader.js +31 -0
  7. package/dist/amb/AmbHeader.js.map +1 -0
  8. package/dist/amb/Key.d.ts +30 -0
  9. package/dist/amb/Key.js +46 -0
  10. package/dist/amb/Key.js.map +1 -0
  11. package/dist/amb/Setting.d.ts +28 -0
  12. package/dist/amb/Setting.js +40 -0
  13. package/dist/amb/Setting.js.map +1 -0
  14. package/dist/amb/Track.d.ts +39 -0
  15. package/dist/amb/Track.js +76 -0
  16. package/dist/amb/Track.js.map +1 -0
  17. package/dist/amb/constants.d.ts +14 -0
  18. package/dist/amb/constants.js +21 -0
  19. package/dist/amb/constants.js.map +1 -0
  20. package/dist/bin/constants.d.ts +2 -2
  21. package/dist/bin/constants.js +1 -1
  22. package/dist/bin/constants.js.map +1 -1
  23. package/dist/bin/convert.js +6 -2
  24. package/dist/bin/convert.js.map +1 -1
  25. package/dist/bin/helpers.d.ts +2 -2
  26. package/dist/bin/helpers.js +1 -1
  27. package/dist/bin/helpers.js.map +1 -1
  28. package/dist/common/BinaryIO.d.ts +5 -3
  29. package/dist/common/BinaryIO.js +12 -9
  30. package/dist/common/BinaryIO.js.map +1 -1
  31. package/dist/common/Color.js +1 -1
  32. package/dist/common/Color.js.map +1 -1
  33. package/dist/common/constants.d.ts +2 -6
  34. package/dist/common/constants.js +3 -140
  35. package/dist/common/constants.js.map +1 -1
  36. package/dist/common/helpers.d.ts +1 -5
  37. package/dist/common/helpers.js +10 -30
  38. package/dist/common/helpers.js.map +1 -1
  39. package/dist/common/types.d.ts +30 -0
  40. package/dist/dlf/DLF.d.ts +6 -14
  41. package/dist/dlf/DLF.js +5 -5
  42. package/dist/dlf/DLF.js.map +1 -1
  43. package/dist/dlf/DlfHeader.js +1 -1
  44. package/dist/dlf/DlfHeader.js.map +1 -1
  45. package/dist/dlf/Fog.js +1 -1
  46. package/dist/dlf/Fog.js.map +1 -1
  47. package/dist/dlf/InteactiveObject.js +1 -1
  48. package/dist/dlf/InteactiveObject.js.map +1 -1
  49. package/dist/dlf/Scene.js +1 -1
  50. package/dist/dlf/Scene.js.map +1 -1
  51. package/dist/dlf/ZoneAndPathHeader.js +1 -1
  52. package/dist/dlf/ZoneAndPathHeader.js.map +1 -1
  53. package/dist/dlf/{ZoneAndPoint.d.ts → ZoneAndPathPoint.d.ts} +0 -0
  54. package/dist/dlf/{ZoneAndPoint.js → ZoneAndPathPoint.js} +2 -2
  55. package/dist/dlf/ZoneAndPathPoint.js.map +1 -0
  56. package/dist/ftl/FTL.js +1 -1
  57. package/dist/ftl/FTL.js.map +1 -1
  58. package/dist/ftl/FtlHeader.js +1 -1
  59. package/dist/ftl/FtlHeader.js.map +1 -1
  60. package/dist/ftl/constants.d.ts +1 -0
  61. package/dist/ftl/constants.js +5 -0
  62. package/dist/ftl/constants.js.map +1 -0
  63. package/dist/fts/Anchor.js +1 -1
  64. package/dist/fts/Anchor.js.map +1 -1
  65. package/dist/fts/AnchorData.js +1 -1
  66. package/dist/fts/AnchorData.js.map +1 -1
  67. package/dist/fts/Cell.js +1 -1
  68. package/dist/fts/Cell.js.map +1 -1
  69. package/dist/fts/EPData.js +1 -1
  70. package/dist/fts/EPData.js.map +1 -1
  71. package/dist/fts/FTS.js +4 -3
  72. package/dist/fts/FTS.js.map +1 -1
  73. package/dist/fts/FtsHeader.js +3 -3
  74. package/dist/fts/FtsHeader.js.map +1 -1
  75. package/dist/fts/Polygon.js +1 -1
  76. package/dist/fts/Polygon.js.map +1 -1
  77. package/dist/fts/Portal.js +1 -1
  78. package/dist/fts/Portal.js.map +1 -1
  79. package/dist/fts/PortalPolygon.js +1 -1
  80. package/dist/fts/PortalPolygon.js.map +1 -1
  81. package/dist/fts/Room.js +1 -1
  82. package/dist/fts/Room.js.map +1 -1
  83. package/dist/fts/RoomData.js +1 -1
  84. package/dist/fts/RoomData.js.map +1 -1
  85. package/dist/fts/RoomDistance.js +1 -1
  86. package/dist/fts/RoomDistance.js.map +1 -1
  87. package/dist/fts/SceneHeader.js +3 -2
  88. package/dist/fts/SceneHeader.js.map +1 -1
  89. package/dist/fts/SceneInfo.js +1 -1
  90. package/dist/fts/SceneInfo.js.map +1 -1
  91. package/dist/fts/TextureContainer.js +1 -1
  92. package/dist/fts/TextureContainer.js.map +1 -1
  93. package/dist/fts/TextureVertex.js +1 -1
  94. package/dist/fts/TextureVertex.js.map +1 -1
  95. package/dist/fts/UniqueHeader.js +1 -1
  96. package/dist/fts/UniqueHeader.js.map +1 -1
  97. package/dist/fts/Vertex.js +1 -1
  98. package/dist/fts/Vertex.js.map +1 -1
  99. package/dist/fts/constants.d.ts +3 -0
  100. package/dist/fts/constants.js +140 -0
  101. package/dist/fts/constants.js.map +1 -0
  102. package/dist/fts/helpers.d.ts +5 -0
  103. package/dist/fts/helpers.js +37 -0
  104. package/dist/fts/helpers.js.map +1 -0
  105. package/dist/index.d.ts +1 -0
  106. package/dist/index.js +3 -1
  107. package/dist/index.js.map +1 -1
  108. package/dist/llf/LLF.js +1 -1
  109. package/dist/llf/LLF.js.map +1 -1
  110. package/dist/llf/Light.js +1 -1
  111. package/dist/llf/Light.js.map +1 -1
  112. package/dist/llf/LightingHeader.js +1 -1
  113. package/dist/llf/LightingHeader.js.map +1 -1
  114. package/dist/llf/LlfHeader.js +1 -1
  115. package/dist/llf/LlfHeader.js.map +1 -1
  116. package/dist/tea/NewKeyFrame.js +2 -2
  117. package/dist/tea/NewKeyFrame.js.map +1 -1
  118. package/dist/tea/OldKeyFrame.js +1 -1
  119. package/dist/tea/OldKeyFrame.js.map +1 -1
  120. package/dist/tea/TEA.d.ts +2 -2
  121. package/dist/tea/TEA.js +2 -2
  122. package/dist/tea/TEA.js.map +1 -1
  123. package/dist/tea/TeaHeader.js +2 -2
  124. package/dist/tea/TeaHeader.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/dist/types.d.ts +8 -2
  127. package/dist/types.js +7 -7
  128. package/dist/types.js.map +1 -1
  129. package/dist/utils.d.ts +2 -2
  130. package/dist/utils.js +1 -1
  131. package/dist/utils.js.map +1 -1
  132. package/package.json +6 -6
  133. package/dist/dlf/ZoneAndPoint.js.map +0 -1
package/README.md CHANGED
@@ -26,7 +26,7 @@ the inputfile and --output parameters can be omitted and then the code can be us
26
26
 
27
27
  `cat <inputfile> | arx-convert --from=<format> --to=<format> > <outputfile>`
28
28
 
29
- the format parameter can be one of the following arx formats: `dlf`, `llf`, `fts`
29
+ the format parameter can be one of the following arx formats: `dlf`, `llf`, `fts` or `amb`
30
30
 
31
31
  work in progress formats: `ftl` and `tea`
32
32
 
@@ -0,0 +1,10 @@
1
+ /// <reference types="node" />
2
+ import { Buffer } from 'node:buffer';
3
+ import { ArxTrack } from './Track';
4
+ export type ArxAMB = {
5
+ tracks: ArxTrack[];
6
+ };
7
+ export declare class AMB {
8
+ static load(decompressedFile: Buffer): ArxAMB;
9
+ static save(json: ArxAMB): Buffer;
10
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AMB = void 0;
4
+ const node_buffer_1 = require("node:buffer");
5
+ const BinaryIO_1 = require("../common/BinaryIO");
6
+ const helpers_1 = require("../common/helpers");
7
+ const AmbHeader_1 = require("./AmbHeader");
8
+ const Track_1 = require("./Track");
9
+ class AMB {
10
+ static load(decompressedFile) {
11
+ const file = new BinaryIO_1.BinaryIO(decompressedFile);
12
+ const { numberOfTracks, isNewerVersion } = AmbHeader_1.AmbHeader.readFrom(file);
13
+ const data = {
14
+ tracks: (0, helpers_1.times)(() => Track_1.Track.readFrom(file, isNewerVersion), numberOfTracks),
15
+ };
16
+ return data;
17
+ }
18
+ static save(json) {
19
+ const header = AmbHeader_1.AmbHeader.accumulateFrom(json);
20
+ const tracks = node_buffer_1.Buffer.concat(json.tracks.map(Track_1.Track.accumulateFrom));
21
+ return node_buffer_1.Buffer.concat([header, tracks]);
22
+ }
23
+ }
24
+ exports.AMB = AMB;
25
+ //# sourceMappingURL=AMB.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AMB.js","sourceRoot":"","sources":["../../src/amb/AMB.ts"],"names":[],"mappings":";;;AAAA,6CAAoC;AACpC,+CAA2C;AAC3C,6CAAuC;AACvC,8CAA0C;AAC1C,sCAA4C;AAM5C,MAAa,GAAG;IACd,MAAM,CAAC,IAAI,CAAC,gBAAwB;QAClC,MAAM,IAAI,GAAG,IAAI,mBAAQ,CAAC,gBAAgB,CAAC,CAAA;QAE3C,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,qBAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;QAEnE,MAAM,IAAI,GAAW;YACnB,MAAM,EAAE,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAK,CAAC,QAAQ,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,cAAc,CAAC;SAC1E,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,CAAC,IAAI,CAAC,IAAY;QACtB,MAAM,MAAM,GAAG,qBAAS,CAAC,cAAc,CAAC,IAAI,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,oBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,aAAK,CAAC,cAAc,CAAC,CAAC,CAAA;QAEnE,OAAO,oBAAM,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAA;IACxC,CAAC;CACF;AAnBD,kBAmBC"}
@@ -0,0 +1,15 @@
1
+ /// <reference types="node" />
2
+ import { BinaryIO } from '../common/BinaryIO';
3
+ import { ArxAMB } from './AMB';
4
+ export type ArxAmbHeader = {
5
+ isNewerVersion: boolean;
6
+ numberOfTracks: number;
7
+ };
8
+ export declare class AmbHeader {
9
+ /**
10
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L627
11
+ */
12
+ static readFrom(binary: BinaryIO): ArxAmbHeader;
13
+ static accumulateFrom(json: ArxAMB): Buffer;
14
+ static sizeOf(): number;
15
+ }
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AmbHeader = void 0;
4
+ const BinaryIO_1 = require("../common/BinaryIO");
5
+ const constants_1 = require("./constants");
6
+ class AmbHeader {
7
+ /**
8
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L627
9
+ */
10
+ static readFrom(binary) {
11
+ binary.readString(4); // identifier - always "GAMB"
12
+ const version = binary.readUint32();
13
+ return {
14
+ isNewerVersion: version >= constants_1.VERSION_1002,
15
+ numberOfTracks: binary.readUint32(),
16
+ };
17
+ }
18
+ static accumulateFrom(json) {
19
+ const buffer = Buffer.alloc(AmbHeader.sizeOf());
20
+ const binary = new BinaryIO_1.BinaryIO(buffer);
21
+ binary.writeString('GAMB', 4);
22
+ binary.writeInt32(constants_1.VERSION_1003);
23
+ binary.writeInt32(json.tracks.length);
24
+ return buffer;
25
+ }
26
+ static sizeOf() {
27
+ return BinaryIO_1.BinaryIO.sizeOfString(4) + BinaryIO_1.BinaryIO.sizeOfInt32() * 2;
28
+ }
29
+ }
30
+ exports.AmbHeader = AmbHeader;
31
+ //# sourceMappingURL=AmbHeader.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AmbHeader.js","sourceRoot":"","sources":["../../src/amb/AmbHeader.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C,8CAA2D;AAO3D,MAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAgB;QAC9B,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA,CAAC,6BAA6B;QAElD,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAEnC,OAAO;YACL,cAAc,EAAE,OAAO,IAAI,wBAAY;YACvC,cAAc,EAAE,MAAM,CAAC,UAAU,EAAE;SACpC,CAAA;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAY;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAA;QAC/C,MAAM,MAAM,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAA;QAC7B,MAAM,CAAC,UAAU,CAAC,wBAAY,CAAC,CAAA;QAC/B,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QAErC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,mBAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,mBAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IAC9D,CAAC;CACF;AA7BD,8BA6BC"}
@@ -0,0 +1,30 @@
1
+ /// <reference types="node" />
2
+ import { BinaryIO } from '../common/BinaryIO';
3
+ import { ArxSetting } from './Setting';
4
+ /**
5
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L168
6
+ */
7
+ export type ArxKey = {
8
+ flags: number;
9
+ /** milliseconds */
10
+ start: number;
11
+ loop: number;
12
+ /** milliseconds */
13
+ delayMin: number;
14
+ /** milliseconds */
15
+ delayMax: number;
16
+ volume: ArxSetting;
17
+ pitch: ArxSetting;
18
+ pan: ArxSetting;
19
+ x: ArxSetting;
20
+ y: ArxSetting;
21
+ z: ArxSetting;
22
+ };
23
+ export declare class Key {
24
+ /**
25
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L187
26
+ */
27
+ static readFrom(binary: BinaryIO): ArxKey;
28
+ static accumulateFrom(key: ArxKey): Buffer;
29
+ static sizeOf(): number;
30
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Key = void 0;
4
+ const BinaryIO_1 = require("../common/BinaryIO");
5
+ const Setting_1 = require("./Setting");
6
+ class Key {
7
+ /**
8
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L187
9
+ */
10
+ static readFrom(binary) {
11
+ return {
12
+ flags: binary.readUint32(),
13
+ start: binary.readUint32(),
14
+ loop: binary.readUint32() + 1,
15
+ delayMin: binary.readUint32(),
16
+ delayMax: binary.readUint32(),
17
+ volume: Setting_1.Setting.readFrom(binary),
18
+ pitch: Setting_1.Setting.readFrom(binary),
19
+ pan: Setting_1.Setting.readFrom(binary),
20
+ x: Setting_1.Setting.readFrom(binary),
21
+ y: Setting_1.Setting.readFrom(binary),
22
+ z: Setting_1.Setting.readFrom(binary),
23
+ };
24
+ }
25
+ static accumulateFrom(key) {
26
+ const buffer = Buffer.alloc(Key.sizeOf());
27
+ const binary = new BinaryIO_1.BinaryIO(buffer);
28
+ binary.writeUint32(key.flags);
29
+ binary.writeUint32(key.start);
30
+ binary.writeUint32(key.loop - 1);
31
+ binary.writeUint32(key.delayMin);
32
+ binary.writeUint32(key.delayMax);
33
+ binary.writeBuffer(Setting_1.Setting.accumulateFrom(key.volume));
34
+ binary.writeBuffer(Setting_1.Setting.accumulateFrom(key.pitch));
35
+ binary.writeBuffer(Setting_1.Setting.accumulateFrom(key.pan));
36
+ binary.writeBuffer(Setting_1.Setting.accumulateFrom(key.x));
37
+ binary.writeBuffer(Setting_1.Setting.accumulateFrom(key.y));
38
+ binary.writeBuffer(Setting_1.Setting.accumulateFrom(key.z));
39
+ return buffer;
40
+ }
41
+ static sizeOf() {
42
+ return BinaryIO_1.BinaryIO.sizeOfInt32() * 5 + Setting_1.Setting.sizeOf() * 6;
43
+ }
44
+ }
45
+ exports.Key = Key;
46
+ //# sourceMappingURL=Key.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Key.js","sourceRoot":"","sources":["../../src/amb/Key.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,0CAAkD;AAsBlD,MAAa,GAAG;IACd;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAgB;QAC9B,OAAO;YACL,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;YAC1B,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;YAC1B,IAAI,EAAE,MAAM,CAAC,UAAU,EAAE,GAAG,CAAC;YAC7B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE;YAC7B,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE;YAE7B,MAAM,EAAE,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAChC,KAAK,EAAE,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC/B,GAAG,EAAE,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC7B,CAAC,EAAE,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3B,CAAC,EAAE,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;YAC3B,CAAC,EAAE,iBAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;SAC5B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,GAAW;QAC/B,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAA;QACzC,MAAM,MAAM,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QAC7B,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,CAAA;QAChC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAChC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAEhC,MAAM,CAAC,WAAW,CAAC,iBAAO,CAAC,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAA;QACtD,MAAM,CAAC,WAAW,CAAC,iBAAO,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAA;QACrD,MAAM,CAAC,WAAW,CAAC,iBAAO,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;QACnD,MAAM,CAAC,WAAW,CAAC,iBAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACjD,MAAM,CAAC,WAAW,CAAC,iBAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QACjD,MAAM,CAAC,WAAW,CAAC,iBAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;QAEjD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,mBAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,GAAG,iBAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC1D,CAAC;CACF;AA5CD,kBA4CC"}
@@ -0,0 +1,28 @@
1
+ /// <reference types="node" />
2
+ import { BinaryIO } from '../common/BinaryIO';
3
+ /**
4
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L84
5
+ */
6
+ export declare enum ArxSettingFlag {
7
+ None = 0,
8
+ Random = 1,
9
+ Interpolate = 2
10
+ }
11
+ /**
12
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L90
13
+ */
14
+ export type ArxSetting = {
15
+ min: number;
16
+ max: number;
17
+ /** milliseconds */
18
+ interval: number;
19
+ flags: ArxSettingFlag;
20
+ };
21
+ export declare class Setting {
22
+ /**
23
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L107
24
+ */
25
+ static readFrom(binary: BinaryIO): ArxSetting;
26
+ static accumulateFrom(setting: ArxSetting): Buffer;
27
+ static sizeOf(): number;
28
+ }
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Setting = exports.ArxSettingFlag = void 0;
4
+ const BinaryIO_1 = require("../common/BinaryIO");
5
+ /**
6
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L84
7
+ */
8
+ var ArxSettingFlag;
9
+ (function (ArxSettingFlag) {
10
+ ArxSettingFlag[ArxSettingFlag["None"] = 0] = "None";
11
+ ArxSettingFlag[ArxSettingFlag["Random"] = 1] = "Random";
12
+ ArxSettingFlag[ArxSettingFlag["Interpolate"] = 2] = "Interpolate";
13
+ })(ArxSettingFlag = exports.ArxSettingFlag || (exports.ArxSettingFlag = {}));
14
+ class Setting {
15
+ /**
16
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L107
17
+ */
18
+ static readFrom(binary) {
19
+ return {
20
+ min: binary.readFloat32(),
21
+ max: binary.readFloat32(),
22
+ interval: binary.readUint32(),
23
+ flags: binary.readUint32(),
24
+ };
25
+ }
26
+ static accumulateFrom(setting) {
27
+ const buffer = Buffer.alloc(Setting.sizeOf());
28
+ const binary = new BinaryIO_1.BinaryIO(buffer);
29
+ binary.writeFloat32(setting.min);
30
+ binary.writeFloat32(setting.max);
31
+ binary.writeUint32(setting.interval);
32
+ binary.writeUint32(setting.flags);
33
+ return buffer;
34
+ }
35
+ static sizeOf() {
36
+ return BinaryIO_1.BinaryIO.sizeOfFloat32() * 2 + BinaryIO_1.BinaryIO.sizeOfInt32() * 2;
37
+ }
38
+ }
39
+ exports.Setting = Setting;
40
+ //# sourceMappingURL=Setting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Setting.js","sourceRoot":"","sources":["../../src/amb/Setting.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAE3C;;GAEG;AACH,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,mDAAQ,CAAA;IACR,uDAAe,CAAA;IACf,iEAAoB,CAAA;AACtB,CAAC,EAJW,cAAc,GAAd,sBAAc,KAAd,sBAAc,QAIzB;AAaD,MAAa,OAAO;IAClB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAgB;QAC9B,OAAO;YACL,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE;YACzB,GAAG,EAAE,MAAM,CAAC,WAAW,EAAE;YACzB,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE;YAC7B,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE;SAC3B,CAAA;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,OAAmB;QACvC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;QAC7C,MAAM,MAAM,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;QAChC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACpC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAEjC,OAAO,MAAM,CAAA;IACf,CAAC;IAED,MAAM,CAAC,MAAM;QACX,OAAO,mBAAQ,CAAC,aAAa,EAAE,GAAG,CAAC,GAAG,mBAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAA;IAClE,CAAC;CACF;AA5BD,0BA4BC"}
@@ -0,0 +1,39 @@
1
+ /// <reference types="node" />
2
+ import { BinaryIO } from '../common/BinaryIO';
3
+ import { ArxKey } from './Key';
4
+ /**
5
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L230
6
+ */
7
+ export declare enum ArxTrackFlags {
8
+ None = 0,
9
+ Position = 1,
10
+ Master = 4,
11
+ Paused = 16,
12
+ Prefetched = 32
13
+ }
14
+ export type ArxTrack = {
15
+ filename: string;
16
+ flags: ArxTrackFlags;
17
+ keys: ArxKey[];
18
+ };
19
+ export declare class Track {
20
+ /**
21
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L531
22
+ */
23
+ static readFrom(binary: BinaryIO, isNewerVersion: boolean): ArxTrack;
24
+ static accumulateFrom(track: ArxTrack): Buffer;
25
+ /**
26
+ * from: SFX\\AMBIANCE\\LOOP_GOBLIN_MAIN.WAV
27
+ * to: loop_goblin_main.wav
28
+ *
29
+ * from: SFX\\AMBIANCE\\FX_ADDON\\SCREAM3.WAV
30
+ * to: fx_addon/scream3.wav
31
+ */
32
+ static toRelativePath(filename: string): string;
33
+ /**
34
+ * from: loop_goblin_main.wav
35
+ * to: sfx\\ambiance\\loop_goblin_main.wav
36
+ */
37
+ static toAbsolutePath(filename: string): string;
38
+ static sizeOf(track: ArxTrack): number;
39
+ }
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Track = exports.ArxTrackFlags = void 0;
4
+ const BinaryIO_1 = require("../common/BinaryIO");
5
+ const helpers_1 = require("../common/helpers");
6
+ const Key_1 = require("./Key");
7
+ /**
8
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L230
9
+ */
10
+ var ArxTrackFlags;
11
+ (function (ArxTrackFlags) {
12
+ ArxTrackFlags[ArxTrackFlags["None"] = 0] = "None";
13
+ ArxTrackFlags[ArxTrackFlags["Position"] = 1] = "Position";
14
+ // ? = 1 << 1,
15
+ ArxTrackFlags[ArxTrackFlags["Master"] = 4] = "Master";
16
+ // ? = 1 << 3,
17
+ ArxTrackFlags[ArxTrackFlags["Paused"] = 16] = "Paused";
18
+ ArxTrackFlags[ArxTrackFlags["Prefetched"] = 32] = "Prefetched";
19
+ })(ArxTrackFlags = exports.ArxTrackFlags || (exports.ArxTrackFlags = {}));
20
+ class Track {
21
+ /**
22
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L531
23
+ */
24
+ static readFrom(binary, isNewerVersion) {
25
+ const filename = this.toRelativePath(binary.readString());
26
+ if (isNewerVersion) {
27
+ binary.readString(); // name - always ""
28
+ }
29
+ const flags = binary.readUint32();
30
+ const numberOfKeys = binary.readUint32();
31
+ const keys = (0, helpers_1.times)(() => Key_1.Key.readFrom(binary), numberOfKeys);
32
+ if (isNewerVersion) {
33
+ keys.reverse();
34
+ }
35
+ return {
36
+ filename,
37
+ flags,
38
+ keys,
39
+ };
40
+ }
41
+ static accumulateFrom(track) {
42
+ const buffer = Buffer.alloc(Track.sizeOf(track));
43
+ const binary = new BinaryIO_1.BinaryIO(buffer);
44
+ binary.writeString(this.toAbsolutePath(track.filename));
45
+ binary.writeString(''); // name
46
+ binary.writeUint32(track.flags);
47
+ binary.writeUint32(track.keys.length);
48
+ binary.writeBuffer(Buffer.concat(track.keys.reverse().map(Key_1.Key.accumulateFrom)));
49
+ return buffer;
50
+ }
51
+ /**
52
+ * from: SFX\\AMBIANCE\\LOOP_GOBLIN_MAIN.WAV
53
+ * to: loop_goblin_main.wav
54
+ *
55
+ * from: SFX\\AMBIANCE\\FX_ADDON\\SCREAM3.WAV
56
+ * to: fx_addon/scream3.wav
57
+ */
58
+ static toRelativePath(filename) {
59
+ return filename.toLowerCase().replace(/\\/g, '/').replace('sfx/ambiance/', '');
60
+ }
61
+ /**
62
+ * from: loop_goblin_main.wav
63
+ * to: sfx\\ambiance\\loop_goblin_main.wav
64
+ */
65
+ static toAbsolutePath(filename) {
66
+ return 'sfx\\ambiance\\' + filename.toLowerCase().replace(/\//g, '\\');
67
+ }
68
+ static sizeOf(track) {
69
+ return (BinaryIO_1.BinaryIO.sizeOfNullTerminatedString(track.filename) +
70
+ BinaryIO_1.BinaryIO.sizeOfNullTerminatedString('') +
71
+ BinaryIO_1.BinaryIO.sizeOfUint32() * 2 +
72
+ Key_1.Key.sizeOf() * track.keys.length);
73
+ }
74
+ }
75
+ exports.Track = Track;
76
+ //# sourceMappingURL=Track.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/amb/Track.ts"],"names":[],"mappings":";;;AAAA,+CAA2C;AAC3C,6CAAuC;AACvC,kCAAsC;AAEtC;;GAEG;AACH,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,iDAAQ,CAAA;IACR,yDAAiB,CAAA;IACjB,cAAc;IACd,qDAAe,CAAA;IACf,cAAc;IACd,sDAAe,CAAA;IACf,8DAAmB,CAAA;AACrB,CAAC,EARW,aAAa,GAAb,qBAAa,KAAb,qBAAa,QAQxB;AAQD,MAAa,KAAK;IAChB;;OAEG;IACH,MAAM,CAAC,QAAQ,CAAC,MAAgB,EAAE,cAAuB;QACvD,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAA;QAEzD,IAAI,cAAc,EAAE;YAClB,MAAM,CAAC,UAAU,EAAE,CAAA,CAAC,mBAAmB;SACxC;QAED,MAAM,KAAK,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QACjC,MAAM,YAAY,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAExC,MAAM,IAAI,GAAG,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,SAAG,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,YAAY,CAAC,CAAA;QAC5D,IAAI,cAAc,EAAE;YAClB,IAAI,CAAC,OAAO,EAAE,CAAA;SACf;QAED,OAAO;YACL,QAAQ;YACR,KAAK;YACL,IAAI;SACL,CAAA;IACH,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,KAAe;QACnC,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAA;QAChD,MAAM,MAAM,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAA;QAEnC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAA;QACvD,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA,CAAC,OAAO;QAC9B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;QAC/B,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,SAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAA;QAE/E,OAAO,MAAM,CAAA;IACf,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,cAAc,CAAC,QAAgB;QACpC,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAA;IAChF,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,QAAgB;QACpC,OAAO,iBAAiB,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;IACxE,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,KAAe;QAC3B,OAAO,CACL,mBAAQ,CAAC,0BAA0B,CAAC,KAAK,CAAC,QAAQ,CAAC;YACnD,mBAAQ,CAAC,0BAA0B,CAAC,EAAE,CAAC;YACvC,mBAAQ,CAAC,YAAY,EAAE,GAAG,CAAC;YAC3B,SAAG,CAAC,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CACjC,CAAA;IACH,CAAC;CACF;AAlED,sBAkEC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * 0x03 0x00 0x00 0x01
3
+ * used in sfx/ambience/ambient_blackthing.amb
4
+ *
5
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L78
6
+ */
7
+ export declare const VERSION_1003 = 16777219;
8
+ /**
9
+ * 0x02 0x00 0x00 0x01
10
+ * used in sfx/ambience/ambient_crypt_e.amb
11
+ *
12
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L77
13
+ */
14
+ export declare const VERSION_1002 = 16777218;
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.VERSION_1002 = exports.VERSION_1003 = void 0;
4
+ /**
5
+ * 0x03 0x00 0x00 0x01
6
+ * used in sfx/ambience/ambient_blackthing.amb
7
+ *
8
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L78
9
+ */
10
+ exports.VERSION_1003 = 16777219;
11
+ /**
12
+ * 0x02 0x00 0x00 0x01
13
+ * used in sfx/ambience/ambient_crypt_e.amb
14
+ *
15
+ * @see https://github.com/arx/ArxLibertatis/blob/1.2.1/src/audio/Ambiance.cpp#L77
16
+ */
17
+ exports.VERSION_1002 = 16777218;
18
+ // There exists an even older version: 16777218
19
+ // 0x01 0x00 0x00 0x01
20
+ // used in ambient_gob_intro.amb
21
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/amb/constants.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACU,QAAA,YAAY,GAAG,QAAQ,CAAA;AAEpC;;;;;GAKG;AACU,QAAA,YAAY,GAAG,QAAQ,CAAA;AAEpC,+CAA+C;AAC/C,sBAAsB;AACtB,gCAAgC"}
@@ -1,6 +1,6 @@
1
- export declare const SUPPORTED_ARX_FORMATS: readonly ["dlf", "fts", "llf", "ftl", "tea"];
1
+ export declare const SUPPORTED_ARX_FORMATS: readonly ["dlf", "fts", "llf", "ftl", "tea", "amb"];
2
2
  export declare const SUPPORTED_DATA_FORMATS: readonly ["json", "yaml", "yml"];
3
- export declare const SUPPORTED_FORMATS: readonly ["dlf", "fts", "llf", "ftl", "tea", "json", "yaml", "yml"];
3
+ export declare const SUPPORTED_FORMATS: readonly ["dlf", "fts", "llf", "ftl", "tea", "amb", "json", "yaml", "yml"];
4
4
  export type SupportedArxFormat = typeof SUPPORTED_ARX_FORMATS[number];
5
5
  export type SupportedDataFormat = typeof SUPPORTED_DATA_FORMATS[number];
6
6
  export type SupportedFormat = typeof SUPPORTED_FORMATS[number];
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.SUPPORTED_FORMATS = exports.SUPPORTED_DATA_FORMATS = exports.SUPPORTED_ARX_FORMATS = void 0;
4
- exports.SUPPORTED_ARX_FORMATS = ['dlf', 'fts', 'llf', 'ftl', 'tea'];
4
+ exports.SUPPORTED_ARX_FORMATS = ['dlf', 'fts', 'llf', 'ftl', 'tea', 'amb'];
5
5
  exports.SUPPORTED_DATA_FORMATS = ['json', 'yaml', 'yml'];
6
6
  exports.SUPPORTED_FORMATS = [...exports.SUPPORTED_ARX_FORMATS, ...exports.SUPPORTED_DATA_FORMATS];
7
7
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/bin/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAA;AACpE,QAAA,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAA;AACzD,QAAA,iBAAiB,GAAG,CAAC,GAAG,6BAAqB,EAAE,GAAG,8BAAsB,CAAU,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/bin/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAU,CAAA;AAC3E,QAAA,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAU,CAAA;AACzD,QAAA,iBAAiB,GAAG,CAAC,GAAG,6BAAqB,EAAE,GAAG,8BAAsB,CAAU,CAAA"}
@@ -112,6 +112,9 @@ const args = (0, minimist_lite_1.default)(process.argv.slice(2), {
112
112
  case 'tea':
113
113
  parsedIn = index_1.TEA.load(rawIn);
114
114
  break;
115
+ case 'amb':
116
+ parsedIn = index_1.AMB.load(rawIn);
117
+ break;
115
118
  }
116
119
  let rawOut;
117
120
  switch (args.to) {
@@ -137,8 +140,9 @@ const args = (0, minimist_lite_1.default)(process.argv.slice(2), {
137
140
  case 'tea':
138
141
  rawOut = index_1.TEA.save(parsedIn);
139
142
  break;
140
- default:
141
- rawOut = '';
143
+ case 'amb':
144
+ rawOut = index_1.AMB.save(parsedIn);
145
+ break;
142
146
  }
143
147
  (0, helpers_1.outputInChunks)(rawOut, output);
144
148
  }))();
@@ -1 +1 @@
1
- {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/bin/convert.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"convert.js","sourceRoot":"","sources":["../../src/bin/convert.ts"],"names":[],"mappings":"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"}
@@ -10,8 +10,8 @@ export declare const stringifyJSON: (json: any, prettify?: boolean) => string;
10
10
  export declare const stringifyYAML: (json: any) => Promise<string>;
11
11
  export declare const evenAndRemainder: (divisor: number, n: number) => [number, number];
12
12
  export declare const outputInChunks: (buffer: string | Buffer, stream: NodeJS.WritableStream, chunkSize?: number) => void;
13
- export declare const isValidFormat: (arg: string) => arg is "dlf" | "fts" | "llf" | "ftl" | "tea" | "json" | "yaml" | "yml";
14
- export declare const isArxFormat: (arg: SupportedFormat) => arg is "dlf" | "fts" | "llf" | "ftl" | "tea";
13
+ export declare const isValidFormat: (arg: string) => arg is "dlf" | "fts" | "llf" | "ftl" | "tea" | "amb" | "json" | "yaml" | "yml";
14
+ export declare const isArxFormat: (arg: SupportedFormat) => arg is "dlf" | "fts" | "llf" | "ftl" | "tea" | "amb";
15
15
  export declare const isDataFormat: (arg: SupportedFormat) => arg is "json" | "yaml" | "yml";
16
16
  export declare const getInputStream: (filename?: string) => Promise<NodeJS.ReadableStream>;
17
17
  export declare const getOutputStream: (filename?: string) => Promise<NodeJS.WritableStream>;
@@ -67,7 +67,7 @@ const streamToBuffer = (input) => {
67
67
  chunks.push(chunk);
68
68
  });
69
69
  input.on('end', () => {
70
- resolve(node_buffer_1.Buffer.concat(chunks));
70
+ resolve(node_buffer_1.Buffer.from(node_buffer_1.Buffer.concat(chunks), 0));
71
71
  });
72
72
  input.on('error', (e) => {
73
73
  reject(e);
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/bin/helpers.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/bin/helpers.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,9 @@
1
1
  /// <reference types="node" />
2
+ import { TRUNCATE_ZERO_BYTES, KEEP_ZERO_BYTES } from './constants';
2
3
  import { ArxQuaternion, ArxRotation, ArxVector3 } from './types';
3
4
  export declare class BinaryIO extends DataView {
4
5
  position: number;
5
- constructor(buffer: ArrayBufferLike, byteOffset?: number, byteLength?: number);
6
+ constructor(buffer: Buffer, byteOffset?: number, byteLength?: number);
6
7
  readFloat32(): number;
7
8
  readFloat32Array(length: number): number[];
8
9
  readInt8(): number;
@@ -31,8 +32,8 @@ export declare class BinaryIO extends DataView {
31
32
  writeUint16Array(values: number[]): void;
32
33
  writeUint32(value: number): void;
33
34
  writeUint32Array(values: number[]): void;
34
- readString(length?: number, truncateZeroBytes?: boolean): string;
35
- writeString(str: string, length: number): void;
35
+ readString(length?: number, truncateZeroBytes?: typeof TRUNCATE_ZERO_BYTES | typeof KEEP_ZERO_BYTES): string;
36
+ writeString(str: string, length?: number): void;
36
37
  readVector3(): ArxVector3;
37
38
  readVector3Array(length: number): ArxVector3[];
38
39
  writeVector3({ x, y, z }: ArxVector3): void;
@@ -57,6 +58,7 @@ export declare class BinaryIO extends DataView {
57
58
  static sizeOfUint32(): 4;
58
59
  static sizeOfUint32Array(length: number): number;
59
60
  static sizeOfString(length: number): number;
61
+ static sizeOfNullTerminatedString(str: string): number;
60
62
  static sizeOfVector3(): number;
61
63
  static sizeOfVector3Array(length: number): number;
62
64
  static sizeOfRotation(): number;
@@ -5,7 +5,7 @@ const helpers_1 = require("./helpers");
5
5
  const constants_1 = require("./constants");
6
6
  class BinaryIO extends DataView {
7
7
  constructor(buffer, byteOffset, byteLength) {
8
- super(buffer, byteOffset, byteLength);
8
+ super(buffer.buffer, byteOffset, byteLength);
9
9
  this.position = 0;
10
10
  }
11
11
  readFloat32() {
@@ -157,7 +157,14 @@ class BinaryIO extends DataView {
157
157
  }
158
158
  readString(length, truncateZeroBytes = constants_1.TRUNCATE_ZERO_BYTES) {
159
159
  const codes = [];
160
- if (length !== undefined) {
160
+ if (length === undefined) {
161
+ let c = this.readUint8();
162
+ while (c !== 0) {
163
+ codes.push(c);
164
+ c = this.readUint8();
165
+ }
166
+ }
167
+ else {
161
168
  for (let i = 0; i < length; i++) {
162
169
  const c = this.readUint8();
163
170
  if (c !== 0 || truncateZeroBytes === constants_1.KEEP_ZERO_BYTES) {
@@ -165,13 +172,6 @@ class BinaryIO extends DataView {
165
172
  }
166
173
  }
167
174
  }
168
- else {
169
- let c = this.readUint8();
170
- while (c !== 0) {
171
- codes.push(c);
172
- c = this.readUint8();
173
- }
174
- }
175
175
  return (0, helpers_1.decodeText)(codes);
176
176
  }
177
177
  writeString(str, length) {
@@ -275,6 +275,9 @@ class BinaryIO extends DataView {
275
275
  static sizeOfString(length) {
276
276
  return length;
277
277
  }
278
+ static sizeOfNullTerminatedString(str) {
279
+ return str.length + 1;
280
+ }
278
281
  static sizeOfVector3() {
279
282
  return BinaryIO.sizeOfFloat32Array(3);
280
283
  }