wc3maptranslator 4.0.3 → 5.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.
Files changed (77) hide show
  1. package/README.md +62 -43
  2. package/dist/src/AngleConverter.d.ts +3 -2
  3. package/dist/src/AngleConverter.d.ts.map +1 -1
  4. package/dist/src/AngleConverter.js.map +1 -1
  5. package/dist/src/CommonInterfaces.d.ts +12 -8
  6. package/dist/src/CommonInterfaces.d.ts.map +1 -1
  7. package/dist/src/CommonInterfaces.js +17 -0
  8. package/dist/src/CommonInterfaces.js.map +1 -1
  9. package/dist/src/HexBuffer.d.ts +5 -2
  10. package/dist/src/HexBuffer.d.ts.map +1 -1
  11. package/dist/src/HexBuffer.js +34 -34
  12. package/dist/src/HexBuffer.js.map +1 -1
  13. package/dist/src/PlayerBitfield.d.ts +30 -0
  14. package/dist/src/PlayerBitfield.d.ts.map +1 -0
  15. package/dist/src/PlayerBitfield.js +56 -0
  16. package/dist/src/PlayerBitfield.js.map +1 -0
  17. package/dist/src/TranslatorMappings.d.ts +12 -0
  18. package/dist/src/TranslatorMappings.d.ts.map +1 -0
  19. package/dist/src/TranslatorMappings.js +47 -0
  20. package/dist/src/TranslatorMappings.js.map +1 -0
  21. package/dist/src/W3Buffer.d.ts +4 -1
  22. package/dist/src/W3Buffer.d.ts.map +1 -1
  23. package/dist/src/W3Buffer.js +13 -9
  24. package/dist/src/W3Buffer.js.map +1 -1
  25. package/dist/src/cli.d.ts +3 -0
  26. package/dist/src/cli.d.ts.map +1 -0
  27. package/dist/src/cli.js +162 -0
  28. package/dist/src/cli.js.map +1 -0
  29. package/dist/src/index.d.ts +10 -1
  30. package/dist/src/index.d.ts.map +1 -1
  31. package/dist/src/index.js +23 -11
  32. package/dist/src/index.js.map +1 -1
  33. package/dist/src/translators/CamerasTranslator.d.ts +9 -4
  34. package/dist/src/translators/CamerasTranslator.d.ts.map +1 -1
  35. package/dist/src/translators/CamerasTranslator.js +25 -24
  36. package/dist/src/translators/CamerasTranslator.js.map +1 -1
  37. package/dist/src/translators/DoodadsTranslator.d.ts +22 -9
  38. package/dist/src/translators/DoodadsTranslator.d.ts.map +1 -1
  39. package/dist/src/translators/DoodadsTranslator.js +101 -109
  40. package/dist/src/translators/DoodadsTranslator.js.map +1 -1
  41. package/dist/src/translators/ImportsTranslator.d.ts +5 -13
  42. package/dist/src/translators/ImportsTranslator.d.ts.map +1 -1
  43. package/dist/src/translators/ImportsTranslator.js +15 -41
  44. package/dist/src/translators/ImportsTranslator.js.map +1 -1
  45. package/dist/src/translators/InfoTranslator.d.ts +98 -10
  46. package/dist/src/translators/InfoTranslator.d.ts.map +1 -1
  47. package/dist/src/translators/InfoTranslator.js +263 -164
  48. package/dist/src/translators/InfoTranslator.js.map +1 -1
  49. package/dist/src/translators/ObjectsTranslator.d.ts +23 -7
  50. package/dist/src/translators/ObjectsTranslator.d.ts.map +1 -1
  51. package/dist/src/translators/ObjectsTranslator.js +193 -162
  52. package/dist/src/translators/ObjectsTranslator.js.map +1 -1
  53. package/dist/src/translators/RegionsTranslator.d.ts +5 -4
  54. package/dist/src/translators/RegionsTranslator.d.ts.map +1 -1
  55. package/dist/src/translators/RegionsTranslator.js +18 -35
  56. package/dist/src/translators/RegionsTranslator.js.map +1 -1
  57. package/dist/src/translators/SoundsTranslator.d.ts +46 -6
  58. package/dist/src/translators/SoundsTranslator.d.ts.map +1 -1
  59. package/dist/src/translators/SoundsTranslator.js +127 -108
  60. package/dist/src/translators/SoundsTranslator.js.map +1 -1
  61. package/dist/src/translators/StringsTranslator.d.ts +10 -4
  62. package/dist/src/translators/StringsTranslator.d.ts.map +1 -1
  63. package/dist/src/translators/StringsTranslator.js +19 -20
  64. package/dist/src/translators/StringsTranslator.js.map +1 -1
  65. package/dist/src/translators/TerrainTranslator.d.ts +24 -2
  66. package/dist/src/translators/TerrainTranslator.d.ts.map +1 -1
  67. package/dist/src/translators/TerrainTranslator.js +74 -99
  68. package/dist/src/translators/TerrainTranslator.js.map +1 -1
  69. package/dist/src/translators/UnitsTranslator.d.ts +76 -14
  70. package/dist/src/translators/UnitsTranslator.d.ts.map +1 -1
  71. package/dist/src/translators/UnitsTranslator.js +235 -139
  72. package/dist/src/translators/UnitsTranslator.js.map +1 -1
  73. package/package.json +28 -25
  74. package/dist/src/translators/index.d.ts +0 -11
  75. package/dist/src/translators/index.d.ts.map +0 -1
  76. package/dist/src/translators/index.js +0 -23
  77. package/dist/src/translators/index.js.map +0 -1
@@ -1,146 +1,138 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DoodadsTranslator = void 0;
4
3
  const HexBuffer_1 = require("../HexBuffer");
5
4
  const W3Buffer_1 = require("../W3Buffer");
6
5
  const AngleConverter_1 = require("../AngleConverter");
7
- var flag;
8
- (function (flag) {
9
- // 0= invisible and non-solid tree
10
- // 1= visible but non-solid tree
11
- // 2= normal tree (visible and solid)
12
- flag[flag["undefined"] = 0] = "undefined";
13
- flag[flag["visible"] = 1 || 2] = "visible";
14
- flag[flag["solid"] = 3] = "solid";
15
- })(flag || (flag = {}));
16
- class DoodadsTranslator {
6
+ const CommonInterfaces_1 = require("../CommonInterfaces");
7
+ class DoodadsTranslator extends CommonInterfaces_1.ITranslator {
17
8
  static jsonToWar(doodadsJson) {
9
+ var _a;
18
10
  const outBufferToWar = new HexBuffer_1.HexBuffer();
19
- /*
20
- * Header
21
- */
22
- outBufferToWar.addChars('W3do'); // file id
23
- outBufferToWar.addInt(8); // file version
24
- outBufferToWar.addInt(11); // subversion 0x0B
25
- outBufferToWar.addInt(doodadsJson.length); // num of trees
26
- /*
27
- * Body
28
- */
29
- doodadsJson.forEach((tree) => {
30
- outBufferToWar.addChars(tree.type);
31
- outBufferToWar.addInt(tree.variation || 0); // optional - default value 0
32
- outBufferToWar.addFloat(tree.position[0]);
33
- outBufferToWar.addFloat(tree.position[1]);
34
- outBufferToWar.addFloat(tree.position[2]);
35
- // Angle
36
- // Doodads format is unique because it uses radians for angles, as opposed
37
- // to angles in any other file which use degrees. Hence conversion is needed.
38
- // war3map: Expects angle in RADIANS
39
- // JSON: Spec defines angle in DEGREES
40
- outBufferToWar.addFloat(AngleConverter_1.deg2Rad(tree.angle) || 0); // optional - default value 0
41
- // Scale
42
- if (!tree.scale)
43
- tree.scale = [1, 1, 1];
44
- outBufferToWar.addFloat(tree.scale[0] || 1);
45
- outBufferToWar.addFloat(tree.scale[1] || 1);
46
- outBufferToWar.addFloat(tree.scale[2] || 1);
47
- outBufferToWar.addChars(tree.skinId);
48
- // Tree flags
49
- /* | Visible | Solid | Flag value |
50
- | no | no | 0 |
51
- | yes | no | 1 |
52
- | yes | yes | 2 | */
53
- let treeFlag = 2; // default: normal tree
54
- if (!tree.flags)
55
- tree.flags = { visible: true, solid: true }; // defaults if no flags are specified
56
- if (!tree.flags.visible && !tree.flags.solid)
57
- treeFlag = 0;
58
- else if (tree.flags.visible && !tree.flags.solid)
59
- treeFlag = 1;
60
- else if (tree.flags.visible && tree.flags.solid)
61
- treeFlag = 2;
62
- // Note: invisible and solid is not an option
11
+ outBufferToWar.addChars('W3do');
12
+ outBufferToWar.addInt(8);
13
+ outBufferToWar.addInt(11);
14
+ outBufferToWar.addInt(doodadsJson.regular.length);
15
+ for (const doodad of doodadsJson.regular) {
16
+ outBufferToWar.addChars(doodad.type);
17
+ outBufferToWar.addInt(doodad.variation || 0);
18
+ outBufferToWar.addFloat(doodad.position[0]);
19
+ outBufferToWar.addFloat(doodad.position[1]);
20
+ outBufferToWar.addFloat(doodad.position[2]);
21
+ outBufferToWar.addFloat((0, AngleConverter_1.deg2Rad)(doodad.angle) || 0);
22
+ if (!doodad.scale)
23
+ doodad.scale = [1, 1, 1];
24
+ outBufferToWar.addFloat(doodad.scale[0] || 1);
25
+ outBufferToWar.addFloat(doodad.scale[1] || 1);
26
+ outBufferToWar.addFloat(doodad.scale[2] || 1);
27
+ outBufferToWar.addChars(doodad.skinId || doodad.type);
28
+ let treeFlag = 0;
29
+ if (doodad.flags.visible) {
30
+ treeFlag = (doodad.flags.solid) ? 2 : 1;
31
+ }
32
+ if (doodad.flags.fixedZ)
33
+ treeFlag += 4;
63
34
  outBufferToWar.addByte(treeFlag);
64
- outBufferToWar.addByte(tree.life || 100);
65
- outBufferToWar.addInt(0); // NOT SUPPORTED: random item table pointer: fixed to 0
66
- outBufferToWar.addInt(0); // NOT SUPPORTED: number of items dropped for item table
67
- outBufferToWar.addInt(tree.id);
68
- });
69
- /*
70
- * Footer
71
- */
72
- outBufferToWar.addInt(0); // special doodad format number, fixed at 0x00
73
- outBufferToWar.addInt(0); // NOT SUPPORTED: number of special doodads
35
+ outBufferToWar.addByte(doodad.life || 100);
36
+ outBufferToWar.addInt(doodad.randomItemSetId && doodad.randomItemSetId >= 0 ? doodad.randomItemSetId : -1);
37
+ if (doodad.customItemSets && (!doodad.randomItemSetId || doodad.randomItemSetId === -1)) {
38
+ outBufferToWar.addInt(doodad.customItemSets.length);
39
+ for (const itemSet of doodad.customItemSets) {
40
+ outBufferToWar.addInt(Object.keys(itemSet).length);
41
+ for (const [itemId, dropChance] of Object.entries(itemSet)) {
42
+ outBufferToWar.addChars(itemId);
43
+ outBufferToWar.addInt(dropChance);
44
+ }
45
+ }
46
+ }
47
+ else {
48
+ outBufferToWar.addInt(0);
49
+ }
50
+ outBufferToWar.addInt(doodad.id);
51
+ }
52
+ outBufferToWar.addInt(0);
53
+ outBufferToWar.addInt(((_a = doodadsJson.special) === null || _a === void 0 ? void 0 : _a.length) || 0);
54
+ for (const specialDoodad of doodadsJson.special || []) {
55
+ outBufferToWar.addChars(specialDoodad.type);
56
+ outBufferToWar.addInt(specialDoodad.position[2]);
57
+ outBufferToWar.addInt(specialDoodad.position[0]);
58
+ outBufferToWar.addInt(specialDoodad.position[1]);
59
+ }
74
60
  return {
75
- errors: [],
76
61
  buffer: outBufferToWar.getBuffer()
77
62
  };
78
63
  }
79
64
  static warToJson(buffer) {
80
- const result = [];
65
+ var _a;
66
+ const result = { regular: [], special: [] };
81
67
  const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
82
- const fileId = outBufferToJSON.readChars(4); // W3do for doodad file
83
- const fileVersion = outBufferToJSON.readInt(); // File version = 8
84
- const subVersion = outBufferToJSON.readInt(); // 0B 00 00 00
85
- const numDoodads = outBufferToJSON.readInt(); // # of doodads
68
+ outBufferToJSON.readChars(4);
69
+ (0, CommonInterfaces_1.expectVersion)(8, outBufferToJSON.readInt());
70
+ (0, CommonInterfaces_1.expectVersion)(11, outBufferToJSON.readInt());
71
+ const numDoodads = outBufferToJSON.readInt();
86
72
  for (let i = 0; i < numDoodads; i++) {
87
73
  const doodad = {
88
74
  type: '',
89
- variation: 0,
90
75
  position: [0, 0, 0],
91
76
  angle: -1,
92
77
  scale: [0, 0, 0],
93
- skinId: '',
94
- flags: { visible: flag.visible, solid: flag.solid },
95
- life: -1,
78
+ flags: { visible: true, solid: true, fixedZ: false },
96
79
  id: -1
97
80
  };
98
81
  doodad.type = outBufferToJSON.readChars(4);
99
82
  doodad.variation = outBufferToJSON.readInt();
100
- doodad.position = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()]; // X Y Z coords
101
- // Angle
102
- // Doodads format is unique because it uses radians for angles, as opposed
103
- // to angles in any other file which use degrees. Hence conversion is needed.
104
- // war3map: Expects angle in RADIANS
105
- // JSON: Spec defines angle in DEGREES
106
- doodad.angle = AngleConverter_1.rad2Deg(outBufferToJSON.readFloat());
107
- doodad.scale = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()]; // X Y Z scaling
108
- doodad.skinId = outBufferToJSON.readChars(4);
109
- const flags = outBufferToJSON.readByte();
110
- doodad.flags = {
111
- visible: flags === 1 || flags === 2,
112
- solid: flags === 2
113
- };
114
- doodad.life = outBufferToJSON.readByte(); // as a %
115
- // UNSUPPORTED: random item set drops when doodad is destroyed/killed
116
- // This section just consumes the bytes from the file
117
- const randomItemSetPtr = outBufferToJSON.readInt(); // points to an item set defined in the map (rather than custom one defined below)
118
- const numberOfItemSets = outBufferToJSON.readInt(); // this should be 0 if randomItemSetPtr is >= 0
119
- for (let j = 0; j < numberOfItemSets; j++) {
120
- // Read the item set
121
- const numberOfItems = outBufferToJSON.readInt();
122
- for (let k = 0; k < numberOfItems; k++) {
123
- outBufferToJSON.readChars(4); // Item ID
124
- outBufferToJSON.readInt(); // % chance to drop
83
+ doodad.position = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()];
84
+ doodad.angle = (0, AngleConverter_1.rad2Deg)(outBufferToJSON.readFloat());
85
+ doodad.scale = [outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()];
86
+ const skinId = outBufferToJSON.readChars(4);
87
+ if (skinId !== doodad.type)
88
+ doodad.skinId = skinId;
89
+ let flags = outBufferToJSON.readByte();
90
+ if (flags > 4) {
91
+ flags -= 4;
92
+ doodad.flags.fixedZ = true;
93
+ }
94
+ doodad.flags.visible = flags >= 1;
95
+ doodad.flags.solid = flags === 2;
96
+ const life = outBufferToJSON.readByte();
97
+ if (life !== 100)
98
+ doodad.life = life;
99
+ const randomItemSetPtr = outBufferToJSON.readInt();
100
+ const numberOfItemSets = outBufferToJSON.readInt();
101
+ if (randomItemSetPtr >= 0) {
102
+ doodad.randomItemSetId = randomItemSetPtr;
103
+ }
104
+ else if (numberOfItemSets) {
105
+ doodad.customItemSets = [];
106
+ for (let j = 0; j < numberOfItemSets; j++) {
107
+ const itemSet = {};
108
+ const numberOfItems = outBufferToJSON.readInt();
109
+ for (let k = 0; k < numberOfItems; k++) {
110
+ const itemId = outBufferToJSON.readChars(4);
111
+ const dropChance = outBufferToJSON.readInt();
112
+ itemSet[itemId] = dropChance;
113
+ }
114
+ doodad.customItemSets.push(itemSet);
125
115
  }
126
116
  }
127
117
  doodad.id = outBufferToJSON.readInt();
128
- result.push(doodad);
118
+ result.regular.push(doodad);
129
119
  }
130
- // UNSUPPORTED: Special doodads
131
- outBufferToJSON.readInt(); // special doodad format version set to '0'
120
+ outBufferToJSON.readInt();
132
121
  const numSpecialDoodads = outBufferToJSON.readInt();
133
122
  for (let i = 0; i < numSpecialDoodads; i++) {
134
- outBufferToJSON.readChars(4); // doodad ID
135
- outBufferToJSON.readInt();
136
- outBufferToJSON.readInt();
137
- outBufferToJSON.readInt();
123
+ const id = outBufferToJSON.readChars(4);
124
+ const posZ = outBufferToJSON.readInt();
125
+ const posX = outBufferToJSON.readInt();
126
+ const posY = outBufferToJSON.readInt();
127
+ (_a = result.special) === null || _a === void 0 ? void 0 : _a.push({
128
+ type: id,
129
+ position: [posX, posY, posZ]
130
+ });
138
131
  }
139
132
  return {
140
- errors: [],
141
133
  json: result
142
134
  };
143
135
  }
144
136
  }
145
- exports.DoodadsTranslator = DoodadsTranslator;
137
+ exports.default = DoodadsTranslator;
146
138
  //# sourceMappingURL=DoodadsTranslator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DoodadsTranslator.js","sourceRoot":"","sources":["../../../src/translators/DoodadsTranslator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DoodadsTranslator.js","sourceRoot":"","sources":["../../../src/translators/DoodadsTranslator.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,8 @@
1
1
  /// <reference types="node" />
2
- import { WarResult, JsonResult } from '../CommonInterfaces';
3
- declare enum ImportType {
4
- Standard = "standard",
5
- Custom = "custom"
6
- }
7
- interface Import {
8
- path: string;
9
- type: ImportType;
10
- }
11
- export declare class ImportsTranslator {
12
- static jsonToWar(imports: Import[]): WarResult;
13
- static warToJson(buffer: Buffer): JsonResult<Import[]>;
2
+ /// <reference types="node" />
3
+ import { WarResult, JsonResult, ITranslator } from '../CommonInterfaces';
4
+ export default abstract class ImportsTranslator extends ITranslator {
5
+ static jsonToWar(imports: string[]): WarResult;
6
+ static warToJson(buffer: Buffer): JsonResult<string[]>;
14
7
  }
15
- export {};
16
8
  //# sourceMappingURL=ImportsTranslator.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImportsTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/ImportsTranslator.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAA;AAE3D,aAAK,UAAU;IACX,QAAQ,aAAa;IACrB,MAAM,WAAW;CACpB;AAED,UAAU,MAAM;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;CACpB;AAED,qBAAa,iBAAiB;WAEZ,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;WA+BvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;CA8BhE"}
1
+ {"version":3,"file":"ImportsTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/ImportsTranslator.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAIxF,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iBAAkB,SAAQ,WAAW;WACjD,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,SAAS;WAsBvC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC;CAiBhE"}
@@ -1,62 +1,36 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ImportsTranslator = void 0;
4
3
  const HexBuffer_1 = require("../HexBuffer");
5
4
  const W3Buffer_1 = require("../W3Buffer");
6
- var ImportType;
7
- (function (ImportType) {
8
- ImportType["Standard"] = "standard";
9
- ImportType["Custom"] = "custom";
10
- })(ImportType || (ImportType = {}));
11
- class ImportsTranslator {
5
+ const CommonInterfaces_1 = require("../CommonInterfaces");
6
+ const CurrentPathVersion = 21;
7
+ class ImportsTranslator extends CommonInterfaces_1.ITranslator {
12
8
  static jsonToWar(imports) {
13
9
  const outBufferToWar = new HexBuffer_1.HexBuffer();
14
- /*
15
- * Header
16
- */
17
- outBufferToWar.addInt(1); // file version
18
- outBufferToWar.addInt(imports.length); // number of imports
19
- /*
20
- * Body
21
- */
22
- imports.forEach((importedFile) => {
23
- outBufferToWar.addByte(importedFile.type === ImportType.Custom ? 13 : 5);
24
- // Temporary: always start the file path with war3mapImported\ until other file support is added
25
- if (!importedFile.path.startsWith('war3mapImported\\') && importedFile.type === ImportType.Custom) {
26
- importedFile.path = 'war3mapImported\\' + importedFile.path;
27
- }
28
- outBufferToWar.addString(importedFile.path);
29
- });
10
+ outBufferToWar.addInt(1);
11
+ outBufferToWar.addInt(imports.length);
12
+ for (const importedFile of imports) {
13
+ outBufferToWar.addByte(CurrentPathVersion);
14
+ outBufferToWar.addString(importedFile);
15
+ }
30
16
  return {
31
- errors: [],
32
17
  buffer: outBufferToWar.getBuffer()
33
18
  };
34
19
  }
35
20
  static warToJson(buffer) {
36
21
  const result = [];
37
22
  const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
38
- const fileVersion = outBufferToJSON.readInt(); // File version
39
- const numImports = outBufferToJSON.readInt(); // # of imports
23
+ (0, CommonInterfaces_1.expectVersion)(1, outBufferToJSON.readInt());
24
+ const numImports = outBufferToJSON.readInt();
40
25
  for (let i = 0; i < numImports; i++) {
41
- const typeValue = outBufferToJSON.readByte();
42
- const typeEnum = {
43
- 0: 'standard',
44
- 5: 'standard',
45
- 8: 'standard',
46
- 10: 'custom',
47
- 13: 'custom' // * preferred
48
- };
49
- const importedFile = {
50
- type: typeEnum[typeValue],
51
- path: outBufferToJSON.readString() // e.g. "war3mapImported\mysound.wav"
52
- };
53
- result.push(importedFile);
26
+ outBufferToJSON.readByte();
27
+ const path = outBufferToJSON.readString();
28
+ result.push(path);
54
29
  }
55
30
  return {
56
- errors: [],
57
31
  json: result
58
32
  };
59
33
  }
60
34
  }
61
- exports.ImportsTranslator = ImportsTranslator;
35
+ exports.default = ImportsTranslator;
62
36
  //# sourceMappingURL=ImportsTranslator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ImportsTranslator.js","sourceRoot":"","sources":["../../../src/translators/ImportsTranslator.ts"],"names":[],"mappings":";;;AAAA,4CAAyC;AACzC,0CAAuC;AAGvC,IAAK,UAGJ;AAHD,WAAK,UAAU;IACX,mCAAqB,CAAA;IACrB,+BAAiB,CAAA;AACrB,CAAC,EAHI,UAAU,KAAV,UAAU,QAGd;AAOD,MAAa,iBAAiB;IAEnB,MAAM,CAAC,SAAS,CAAC,OAAiB;QACrC,MAAM,cAAc,GAAG,IAAI,qBAAS,EAAE,CAAC;QAEvC;;WAEG;QACH,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe;QACzC,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,oBAAoB;QAE3D;;WAEG;QACH,OAAO,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,EAAE;YAC7B,cAAc,CAAC,OAAO,CAClB,YAAY,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACnD,CAAC;YAEF,gGAAgG;YAChG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,IAAI,YAAY,CAAC,IAAI,KAAK,UAAU,CAAC,MAAM,EAAE;gBAC/F,YAAY,CAAC,IAAI,GAAG,mBAAmB,GAAG,YAAY,CAAC,IAAI,CAAC;aAC/D;YAED,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,OAAO;YACH,MAAM,EAAE,EAAE;YACV,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE;SACrC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,MAAc;QAClC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,eAAe,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC;QAE7C,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe;QAC9D,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC,eAAe;QAE7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACjC,MAAM,SAAS,GAAG,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC7C,MAAM,QAAQ,GAAG;gBACb,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,UAAU;gBACb,CAAC,EAAE,UAAU;gBACb,EAAE,EAAE,QAAQ;gBACZ,EAAE,EAAE,QAAQ,CAAE,cAAc;aAC/B,CAAC;YAEF,MAAM,YAAY,GAAG;gBACjB,IAAI,EAAE,QAAQ,CAAC,SAAS,CAAC;gBACzB,IAAI,EAAE,eAAe,CAAC,UAAU,EAAE,CAAC,qCAAqC;aAC3E,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;SAC7B;QAED,OAAO;YACH,MAAM,EAAE,EAAE;YACV,IAAI,EAAE,MAAM;SACf,CAAC;IACN,CAAC;CACJ;AA/DD,8CA+DC"}
1
+ {"version":3,"file":"ImportsTranslator.js","sourceRoot":"","sources":["../../../src/translators/ImportsTranslator.ts"],"names":[],"mappings":";;AAAA,4CAAyC;AACzC,0CAAuC;AACvC,0DAAwF;AAExF,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAE9B,MAA8B,iBAAkB,SAAQ,8BAAW;IACxD,MAAM,CAAC,SAAS,CAAC,OAAiB;QACrC,MAAM,cAAc,GAAG,IAAI,qBAAS,EAAE,CAAC;QAKvC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAKzB,cAAc,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE;YAChC,cAAc,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;YAC3C,cAAc,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;SAC1C;QAED,OAAO;YACH,MAAM,EAAE,cAAc,CAAC,SAAS,EAAE;SACrC,CAAC;IACN,CAAC;IAEM,MAAM,CAAC,SAAS,CAAC,MAAc;QAClC,MAAM,MAAM,GAAG,EAAE,CAAC;QAClB,MAAM,eAAe,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC;QAE7C,IAAA,gCAAa,EAAC,CAAC,EAAE,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;QAE5C,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,EAAE,CAAC;QAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,EAAE,CAAC,EAAE,EAAE;YACjC,eAAe,CAAC,QAAQ,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,eAAe,CAAC,UAAU,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACrB;QAED,OAAO;YACH,IAAI,EAAE,MAAM;SACf,CAAC;IACN,CAAC;CACJ;AAxCD,oCAwCC"}
@@ -1,5 +1,7 @@
1
1
  /// <reference types="node" />
2
- import { WarResult, JsonResult } from '../CommonInterfaces';
2
+ /// <reference types="node" />
3
+ import { WarResult, JsonResult, ITranslator } from '../CommonInterfaces';
4
+ import { PlayerArray } from '../PlayerBitfield';
3
5
  interface Map {
4
6
  name: string;
5
7
  author: string;
@@ -31,10 +33,15 @@ interface MapFlags {
31
33
  useCustomUpgrades: boolean;
32
34
  waterWavesOnCliffShores: boolean;
33
35
  waterWavesOnRollingShores: boolean;
36
+ useTerrainFog: boolean;
34
37
  useItemClassificationSystem: boolean;
35
38
  enableWaterTinting: boolean;
36
39
  useAccurateProbabilityForCalculations: boolean;
37
40
  useCustomAbilitySkins: boolean;
41
+ disableDenyIcon: boolean;
42
+ forceDefaultCameraZoom: boolean;
43
+ forceMaxCameraZoom: boolean;
44
+ forceMinCameraZoom: boolean;
38
45
  }
39
46
  interface LoadingScreen {
40
47
  background: number;
@@ -43,11 +50,6 @@ interface LoadingScreen {
43
50
  title: string;
44
51
  subtitle: string;
45
52
  }
46
- declare enum FogType {
47
- Linear = 0,
48
- Exponential1 = 1,
49
- Exponential2 = 2
50
- }
51
53
  interface Fog {
52
54
  type: FogType;
53
55
  startHeight: number;
@@ -69,6 +71,8 @@ interface Info {
69
71
  saves: number;
70
72
  gameVersion: GameVersion;
71
73
  editorVersion: number;
74
+ gameDataSet: GameDataSet;
75
+ gameDataVersion: GameDataVersion;
72
76
  scriptLanguage: ScriptLanguage;
73
77
  supportedModes: SupportedModes;
74
78
  map: Map;
@@ -82,6 +86,13 @@ interface Info {
82
86
  water: number[];
83
87
  players: Player[];
84
88
  forces: Force[];
89
+ forceDefaultCameraZoom: number;
90
+ forceMaxCameraZoom: number;
91
+ forceMinCameraZoom: number;
92
+ upgrades: Upgrade[];
93
+ techtree: Techtree[];
94
+ randomGroupTable: RandomGroupTable[];
95
+ randomItemTable: RandomItemTable[];
85
96
  }
86
97
  interface PlayerStartingPosition {
87
98
  x: number;
@@ -90,10 +101,14 @@ interface PlayerStartingPosition {
90
101
  }
91
102
  interface Player {
92
103
  playerNum: number;
93
- type: number;
94
- race: number;
104
+ type: PlayerType;
105
+ race: PlayerRace;
95
106
  name: string;
96
107
  startingPos: PlayerStartingPosition;
108
+ allyLowPriorityFlags?: PlayerArray;
109
+ allyHighPriorityFlags?: PlayerArray;
110
+ enemyLowPriorityFlags?: PlayerArray;
111
+ enemyHighPriorityFlags?: PlayerArray;
97
112
  }
98
113
  interface ForceFlags {
99
114
  allied: boolean;
@@ -104,9 +119,69 @@ interface ForceFlags {
104
119
  }
105
120
  interface Force {
106
121
  flags: ForceFlags;
107
- players: number;
122
+ players: PlayerArray;
108
123
  name: string;
109
124
  }
125
+ interface RandomItem {
126
+ chance: number;
127
+ id: string;
128
+ }
129
+ interface RandomItemTable {
130
+ number: number;
131
+ name: string;
132
+ sets: RandomItem[][];
133
+ }
134
+ interface RandomGroupRow {
135
+ chance: number;
136
+ entries: string[];
137
+ }
138
+ interface RandomGroupTable {
139
+ number: number;
140
+ name: string;
141
+ positions: RandomGroupType[];
142
+ rows: RandomGroupRow[];
143
+ }
144
+ interface Techtree {
145
+ players: PlayerArray;
146
+ id: string;
147
+ }
148
+ interface Upgrade {
149
+ players: PlayerArray;
150
+ id: string;
151
+ level: number;
152
+ availability: UpgradeAvailability;
153
+ }
154
+ declare enum UpgradeAvailability {
155
+ Unavailable = 0,
156
+ Available = 1,
157
+ Researched = 2
158
+ }
159
+ declare enum PlayerType {
160
+ Human = 1,
161
+ Computer = 2,
162
+ Neutral = 3,
163
+ Rescuable = 4
164
+ }
165
+ declare enum PlayerRace {
166
+ Human = 1,
167
+ Orc = 2,
168
+ Undead = 3,
169
+ NightElf = 4
170
+ }
171
+ declare enum FogType {
172
+ Linear = 0,
173
+ Exponential1 = 1,
174
+ Exponential2 = 2
175
+ }
176
+ declare enum GameDataSet {
177
+ Default = 0,
178
+ Custom101 = 1,
179
+ MeleeLatestPath = 2
180
+ }
181
+ declare enum GameDataVersion {
182
+ ROC = 0,
183
+ TFT = 1
184
+ }
110
185
  declare enum ScriptLanguage {
111
186
  JASS = 0,
112
187
  Lua = 1
@@ -116,7 +191,20 @@ declare enum SupportedModes {
116
191
  HD = 2,
117
192
  Both = 3
118
193
  }
119
- export declare abstract class InfoTranslator {
194
+ declare enum RandomGroupType {
195
+ Unit = 0,
196
+ Building = 1,
197
+ Item = 2
198
+ }
199
+ export default abstract class InfoTranslator extends ITranslator {
200
+ static readonly PlayerType: typeof PlayerType;
201
+ static readonly PlayerRace: typeof PlayerRace;
202
+ static readonly FogType: typeof FogType;
203
+ static readonly GameDataSet: typeof GameDataSet;
204
+ static readonly GameDataVersion: typeof GameDataVersion;
205
+ static readonly ScriptLanguage: typeof ScriptLanguage;
206
+ static readonly SupportedModes: typeof SupportedModes;
207
+ static readonly UpgradeAvailability: typeof UpgradeAvailability;
120
208
  static jsonToWar(infoJson: Info): WarResult;
121
209
  static warToJson(buffer: Buffer): JsonResult<Info>;
122
210
  }
@@ -1 +1 @@
1
- {"version":3,"file":"InfoTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/InfoTranslator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InfoTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/InfoTranslator.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAwC,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEtF,UAAU,GAAG;IACT,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,eAAe,CAAC;IAC9B,KAAK,EAAE,QAAQ,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACxB;AAED,UAAU,WAAW;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,UAAU,MAAM;IACZ,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,UAAU,QAAQ;IACd,oBAAoB,EAAE,OAAO,CAAC;IAC9B,oBAAoB,EAAE,OAAO,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAC;IAEpB,sBAAsB,EAAE,OAAO,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,eAAe,EAAE,OAAO,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,kBAAkB,EAAE,OAAO,CAAC;IAC5B,iBAAiB,EAAE,OAAO,CAAC;IAE3B,uBAAuB,EAAE,OAAO,CAAC;IACjC,yBAAyB,EAAE,OAAO,CAAC;IACnC,aAAa,EAAE,OAAO,CAAC;IAEvB,2BAA2B,EAAE,OAAO,CAAC;IACrC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,qCAAqC,EAAE,OAAO,CAAC;IAC/C,qBAAqB,EAAE,OAAO,CAAC;IAC/B,eAAe,EAAE,OAAO,CAAC;IACzB,sBAAsB,EAAE,OAAO,CAAC;IAChC,kBAAkB,EAAE,OAAO,CAAC;IAC5B,kBAAkB,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,aAAa;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,GAAG;IACT,IAAI,EAAE,OAAO,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,UAAU,eAAe;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,QAAQ;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,IAAI;IACV,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,eAAe,EAAE,eAAe,CAAC;IACjC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,GAAG,EAAE,GAAG,CAAC;IACT,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,QAAQ,CAAC;IACnB,aAAa,EAAE,aAAa,CAAC;IAC7B,GAAG,EAAE,GAAG,CAAC;IACT,aAAa,EAAE,MAAM,CAAC;IACtB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,sBAAsB,EAAE,MAAM,CAAC;IAC/B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,gBAAgB,EAAE,gBAAgB,EAAE,CAAC;IACrC,eAAe,EAAE,eAAe,EAAE,CAAC;CACtC;AAED,UAAU,sBAAsB;IAC5B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,OAAO,CAAC;CAClB;AAED,UAAU,MAAM;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,UAAU,CAAC;IAEjB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,sBAAsB,CAAC;IAEpC,oBAAoB,CAAC,EAAE,WAAW,CAAC;IACnC,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,qBAAqB,CAAC,EAAE,WAAW,CAAC;IACpC,sBAAsB,CAAC,EAAE,WAAW,CAAC;CACxC;AAED,UAAU,UAAU;IAChB,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,OAAO,CAAC;IAEvB,WAAW,EAAE,OAAO,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,EAAE,OAAO,CAAC;CAChC;AAED,UAAU,KAAK;IACX,KAAK,EAAE,UAAU,CAAC;IAClB,OAAO,EAAE,WAAW,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;CACd;AAED,UAAU,eAAe;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC;CACxB;AAED,UAAU,cAAc;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,gBAAgB;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,IAAI,EAAE,cAAc,EAAE,CAAC;CAC1B;AAED,UAAU,QAAQ;IACd,OAAO,EAAE,WAAW,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;CACd;AAED,UAAU,OAAO;IACb,OAAO,EAAE,WAAW,CAAC;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,mBAAmB,CAAC;CACrC;AAED,aAAK,mBAAmB;IACpB,WAAW,IAAI;IACf,SAAS,IAAA;IACT,UAAU,IAAA;CACb;AAED,aAAK,UAAU;IACX,KAAK,IAAI;IACT,QAAQ,IAAA;IACR,OAAO,IAAA;IACP,SAAS,IAAA;CACZ;AAED,aAAK,UAAU;IACX,KAAK,IAAI;IACT,GAAG,IAAA;IACH,MAAM,IAAA;IACN,QAAQ,IAAA;CACX;AAED,aAAK,OAAO;IACR,MAAM,IAAI;IACV,YAAY,IAAI;IAChB,YAAY,IAAI;CACnB;AAED,aAAK,WAAW;IACZ,OAAO,IAAI;IACX,SAAS,IAAI;IACb,eAAe,IAAI;CACtB;AAED,aAAK,eAAe;IAChB,GAAG,IAAI;IACP,GAAG,IAAI;CACV;AAED,aAAK,cAAc;IACf,IAAI,IAAI;IACR,GAAG,IAAI;CACV;AAED,aAAK,cAAc;IACf,EAAE,IAAI;IACN,EAAE,IAAI;IACN,IAAI,IAAI;CACX;AAED,aAAK,eAAe;IAChB,IAAI,IAAI;IACR,QAAQ,IAAI;IACZ,IAAI,IAAI;CACX;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,cAAe,SAAQ,WAAW;IAC5D,gBAAuB,UAAU,oBAAc;IAC/C,gBAAuB,UAAU,oBAAc;IAC/C,gBAAuB,OAAO,iBAAW;IACzC,gBAAuB,WAAW,qBAAe;IACjD,gBAAuB,eAAe,yBAAmB;IACzD,gBAAuB,cAAc,wBAAkB;IACvD,gBAAuB,cAAc,wBAAkB;IACvD,gBAAuB,mBAAmB,6BAAuB;WAEnD,SAAS,CAAC,QAAQ,EAAE,IAAI,GAAG,SAAS;WAwOpC,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;CAuT5D"}