wc3maptranslator 4.0.4 → 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 (130) hide show
  1. package/README.md +62 -43
  2. package/dist/src/AngleConverter.d.ts +4 -0
  3. package/dist/src/AngleConverter.d.ts.map +1 -0
  4. package/dist/{AngleConverter.js.map → src/AngleConverter.js.map} +1 -1
  5. package/dist/src/CommonInterfaces.d.ts +21 -0
  6. package/dist/src/CommonInterfaces.d.ts.map +1 -0
  7. package/dist/src/CommonInterfaces.js +20 -0
  8. package/dist/src/CommonInterfaces.js.map +1 -0
  9. package/dist/{HexBuffer.d.ts → src/HexBuffer.d.ts} +5 -2
  10. package/dist/src/HexBuffer.d.ts.map +1 -0
  11. package/dist/src/HexBuffer.js +71 -0
  12. package/dist/src/HexBuffer.js.map +1 -0
  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/{W3Buffer.d.ts → src/W3Buffer.d.ts} +4 -1
  22. package/dist/src/W3Buffer.d.ts.map +1 -0
  23. package/dist/{W3Buffer.js → src/W3Buffer.js} +13 -9
  24. package/dist/src/W3Buffer.js.map +1 -0
  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 +12 -0
  30. package/dist/src/index.d.ts.map +1 -0
  31. package/dist/src/index.js +27 -0
  32. package/dist/src/index.js.map +1 -0
  33. package/dist/src/translators/CamerasTranslator.d.ts +28 -0
  34. package/dist/src/translators/CamerasTranslator.d.ts.map +1 -0
  35. package/dist/{translators → src/translators}/CamerasTranslator.js +25 -24
  36. package/dist/src/translators/CamerasTranslator.js.map +1 -0
  37. package/dist/src/translators/DoodadsTranslator.d.ts +36 -0
  38. package/dist/src/translators/DoodadsTranslator.d.ts.map +1 -0
  39. package/dist/src/translators/DoodadsTranslator.js +138 -0
  40. package/dist/src/translators/DoodadsTranslator.js.map +1 -0
  41. package/dist/src/translators/ImportsTranslator.d.ts +8 -0
  42. package/dist/src/translators/ImportsTranslator.d.ts.map +1 -0
  43. package/dist/src/translators/ImportsTranslator.js +36 -0
  44. package/dist/src/translators/ImportsTranslator.js.map +1 -0
  45. package/dist/src/translators/InfoTranslator.d.ts +212 -0
  46. package/dist/src/translators/InfoTranslator.d.ts.map +1 -0
  47. package/dist/src/translators/InfoTranslator.js +521 -0
  48. package/dist/src/translators/InfoTranslator.js.map +1 -0
  49. package/dist/src/translators/ObjectsTranslator.d.ts +39 -0
  50. package/dist/src/translators/ObjectsTranslator.d.ts.map +1 -0
  51. package/dist/src/translators/ObjectsTranslator.js +239 -0
  52. package/dist/src/translators/ObjectsTranslator.js.map +1 -0
  53. package/dist/{translators → src/translators}/RegionsTranslator.d.ts +5 -4
  54. package/dist/src/translators/RegionsTranslator.d.ts.map +1 -0
  55. package/dist/{translators → src/translators}/RegionsTranslator.js +18 -35
  56. package/dist/src/translators/RegionsTranslator.js.map +1 -0
  57. package/dist/src/translators/SoundsTranslator.d.ts +75 -0
  58. package/dist/src/translators/SoundsTranslator.d.ts.map +1 -0
  59. package/dist/src/translators/SoundsTranslator.js +202 -0
  60. package/dist/src/translators/SoundsTranslator.js.map +1 -0
  61. package/dist/src/translators/StringsTranslator.d.ts +13 -0
  62. package/dist/src/translators/StringsTranslator.d.ts.map +1 -0
  63. package/dist/src/translators/StringsTranslator.js +43 -0
  64. package/dist/src/translators/StringsTranslator.js.map +1 -0
  65. package/dist/src/translators/TerrainTranslator.d.ts +55 -0
  66. package/dist/src/translators/TerrainTranslator.d.ts.map +1 -0
  67. package/dist/src/translators/TerrainTranslator.js +196 -0
  68. package/dist/src/translators/TerrainTranslator.js.map +1 -0
  69. package/dist/src/translators/UnitsTranslator.d.ts +102 -0
  70. package/dist/src/translators/UnitsTranslator.d.ts.map +1 -0
  71. package/dist/src/translators/UnitsTranslator.js +295 -0
  72. package/dist/src/translators/UnitsTranslator.js.map +1 -0
  73. package/package.json +28 -25
  74. package/dist/AngleConverter.d.ts +0 -3
  75. package/dist/AngleConverter.d.ts.map +0 -1
  76. package/dist/CommonInterfaces.d.ts +0 -17
  77. package/dist/CommonInterfaces.d.ts.map +0 -1
  78. package/dist/CommonInterfaces.js +0 -3
  79. package/dist/CommonInterfaces.js.map +0 -1
  80. package/dist/HexBuffer.d.ts.map +0 -1
  81. package/dist/HexBuffer.js +0 -71
  82. package/dist/HexBuffer.js.map +0 -1
  83. package/dist/W3Buffer.d.ts.map +0 -1
  84. package/dist/W3Buffer.js.map +0 -1
  85. package/dist/index.d.ts +0 -3
  86. package/dist/index.d.ts.map +0 -1
  87. package/dist/index.js +0 -15
  88. package/dist/index.js.map +0 -1
  89. package/dist/translators/CamerasTranslator.d.ts +0 -23
  90. package/dist/translators/CamerasTranslator.d.ts.map +0 -1
  91. package/dist/translators/CamerasTranslator.js.map +0 -1
  92. package/dist/translators/DoodadsTranslator.d.ts +0 -23
  93. package/dist/translators/DoodadsTranslator.d.ts.map +0 -1
  94. package/dist/translators/DoodadsTranslator.js +0 -146
  95. package/dist/translators/DoodadsTranslator.js.map +0 -1
  96. package/dist/translators/ImportsTranslator.d.ts +0 -16
  97. package/dist/translators/ImportsTranslator.d.ts.map +0 -1
  98. package/dist/translators/ImportsTranslator.js +0 -62
  99. package/dist/translators/ImportsTranslator.js.map +0 -1
  100. package/dist/translators/InfoTranslator.d.ts +0 -124
  101. package/dist/translators/InfoTranslator.d.ts.map +0 -1
  102. package/dist/translators/InfoTranslator.js +0 -422
  103. package/dist/translators/InfoTranslator.js.map +0 -1
  104. package/dist/translators/ObjectsTranslator.d.ts +0 -23
  105. package/dist/translators/ObjectsTranslator.d.ts.map +0 -1
  106. package/dist/translators/ObjectsTranslator.js +0 -208
  107. package/dist/translators/ObjectsTranslator.js.map +0 -1
  108. package/dist/translators/RegionsTranslator.d.ts.map +0 -1
  109. package/dist/translators/RegionsTranslator.js.map +0 -1
  110. package/dist/translators/SoundsTranslator.d.ts +0 -35
  111. package/dist/translators/SoundsTranslator.d.ts.map +0 -1
  112. package/dist/translators/SoundsTranslator.js +0 -183
  113. package/dist/translators/SoundsTranslator.js.map +0 -1
  114. package/dist/translators/StringsTranslator.d.ts +0 -7
  115. package/dist/translators/StringsTranslator.d.ts.map +0 -1
  116. package/dist/translators/StringsTranslator.js +0 -44
  117. package/dist/translators/StringsTranslator.js.map +0 -1
  118. package/dist/translators/TerrainTranslator.d.ts +0 -33
  119. package/dist/translators/TerrainTranslator.d.ts.map +0 -1
  120. package/dist/translators/TerrainTranslator.js +0 -221
  121. package/dist/translators/TerrainTranslator.js.map +0 -1
  122. package/dist/translators/UnitsTranslator.d.ts +0 -40
  123. package/dist/translators/UnitsTranslator.d.ts.map +0 -1
  124. package/dist/translators/UnitsTranslator.js +0 -199
  125. package/dist/translators/UnitsTranslator.js.map +0 -1
  126. package/dist/translators/index.d.ts +0 -11
  127. package/dist/translators/index.d.ts.map +0 -1
  128. package/dist/translators/index.js +0 -23
  129. package/dist/translators/index.js.map +0 -1
  130. /package/dist/{AngleConverter.js → src/AngleConverter.js} +0 -0
@@ -0,0 +1,521 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const HexBuffer_1 = require("../HexBuffer");
4
+ const W3Buffer_1 = require("../W3Buffer");
5
+ const CommonInterfaces_1 = require("../CommonInterfaces");
6
+ const PlayerBitfield_1 = require("../PlayerBitfield");
7
+ var UpgradeAvailability;
8
+ (function (UpgradeAvailability) {
9
+ UpgradeAvailability[UpgradeAvailability["Unavailable"] = 0] = "Unavailable";
10
+ UpgradeAvailability[UpgradeAvailability["Available"] = 1] = "Available";
11
+ UpgradeAvailability[UpgradeAvailability["Researched"] = 2] = "Researched";
12
+ })(UpgradeAvailability || (UpgradeAvailability = {}));
13
+ var PlayerType;
14
+ (function (PlayerType) {
15
+ PlayerType[PlayerType["Human"] = 1] = "Human";
16
+ PlayerType[PlayerType["Computer"] = 2] = "Computer";
17
+ PlayerType[PlayerType["Neutral"] = 3] = "Neutral";
18
+ PlayerType[PlayerType["Rescuable"] = 4] = "Rescuable";
19
+ })(PlayerType || (PlayerType = {}));
20
+ var PlayerRace;
21
+ (function (PlayerRace) {
22
+ PlayerRace[PlayerRace["Human"] = 1] = "Human";
23
+ PlayerRace[PlayerRace["Orc"] = 2] = "Orc";
24
+ PlayerRace[PlayerRace["Undead"] = 3] = "Undead";
25
+ PlayerRace[PlayerRace["NightElf"] = 4] = "NightElf";
26
+ })(PlayerRace || (PlayerRace = {}));
27
+ var FogType;
28
+ (function (FogType) {
29
+ FogType[FogType["Linear"] = 0] = "Linear";
30
+ FogType[FogType["Exponential1"] = 1] = "Exponential1";
31
+ FogType[FogType["Exponential2"] = 2] = "Exponential2";
32
+ })(FogType || (FogType = {}));
33
+ var GameDataSet;
34
+ (function (GameDataSet) {
35
+ GameDataSet[GameDataSet["Default"] = 0] = "Default";
36
+ GameDataSet[GameDataSet["Custom101"] = 1] = "Custom101";
37
+ GameDataSet[GameDataSet["MeleeLatestPath"] = 2] = "MeleeLatestPath";
38
+ })(GameDataSet || (GameDataSet = {}));
39
+ var GameDataVersion;
40
+ (function (GameDataVersion) {
41
+ GameDataVersion[GameDataVersion["ROC"] = 0] = "ROC";
42
+ GameDataVersion[GameDataVersion["TFT"] = 1] = "TFT";
43
+ })(GameDataVersion || (GameDataVersion = {}));
44
+ var ScriptLanguage;
45
+ (function (ScriptLanguage) {
46
+ ScriptLanguage[ScriptLanguage["JASS"] = 0] = "JASS";
47
+ ScriptLanguage[ScriptLanguage["Lua"] = 1] = "Lua";
48
+ })(ScriptLanguage || (ScriptLanguage = {}));
49
+ var SupportedModes;
50
+ (function (SupportedModes) {
51
+ SupportedModes[SupportedModes["SD"] = 1] = "SD";
52
+ SupportedModes[SupportedModes["HD"] = 2] = "HD";
53
+ SupportedModes[SupportedModes["Both"] = 3] = "Both";
54
+ })(SupportedModes || (SupportedModes = {}));
55
+ var RandomGroupType;
56
+ (function (RandomGroupType) {
57
+ RandomGroupType[RandomGroupType["Unit"] = 0] = "Unit";
58
+ RandomGroupType[RandomGroupType["Building"] = 1] = "Building";
59
+ RandomGroupType[RandomGroupType["Item"] = 2] = "Item";
60
+ })(RandomGroupType || (RandomGroupType = {}));
61
+ class InfoTranslator extends CommonInterfaces_1.ITranslator {
62
+ static jsonToWar(infoJson) {
63
+ const outBufferToWar = new HexBuffer_1.HexBuffer();
64
+ outBufferToWar.addInt(33);
65
+ outBufferToWar.addInt(infoJson.saves || 0);
66
+ outBufferToWar.addInt(infoJson.editorVersion || 0);
67
+ outBufferToWar.addInt(infoJson.gameVersion.major);
68
+ outBufferToWar.addInt(infoJson.gameVersion.minor);
69
+ outBufferToWar.addInt(infoJson.gameVersion.patch);
70
+ outBufferToWar.addInt(infoJson.gameVersion.build);
71
+ outBufferToWar.addString(infoJson.map.name);
72
+ outBufferToWar.addString(infoJson.map.author);
73
+ outBufferToWar.addString(infoJson.map.description);
74
+ outBufferToWar.addString(infoJson.map.recommendedPlayers);
75
+ for (let cbIndex = 0; cbIndex < 8; cbIndex++) {
76
+ outBufferToWar.addFloat(infoJson.camera.bounds[cbIndex]);
77
+ }
78
+ for (let ccIndex = 0; ccIndex < 4; ccIndex++) {
79
+ outBufferToWar.addInt(infoJson.camera.complements[ccIndex]);
80
+ }
81
+ outBufferToWar.addInt(infoJson.map.playableArea.width);
82
+ outBufferToWar.addInt(infoJson.map.playableArea.height);
83
+ let flags = 0;
84
+ if (infoJson.map.flags) {
85
+ if (infoJson.map.flags.hideMinimapInPreview)
86
+ flags |= 0x1;
87
+ if (infoJson.map.flags.modifyAllyPriorities)
88
+ flags |= 0x2;
89
+ if (infoJson.map.flags.isMeleeMap)
90
+ flags |= 0x4;
91
+ if (infoJson.map.flags.maskedPartiallyVisible)
92
+ flags |= 0x10;
93
+ if (infoJson.map.flags.fixedPlayerSetting)
94
+ flags |= 0x20;
95
+ if (infoJson.map.flags.useCustomForces)
96
+ flags |= 0x40;
97
+ if (infoJson.map.flags.useCustomTechtree)
98
+ flags |= 0x80;
99
+ if (infoJson.map.flags.useCustomAbilities)
100
+ flags |= 0x100;
101
+ if (infoJson.map.flags.useCustomUpgrades)
102
+ flags |= 0x200;
103
+ if (infoJson.map.flags.waterWavesOnCliffShores)
104
+ flags |= 0x800;
105
+ if (infoJson.map.flags.waterWavesOnRollingShores)
106
+ flags |= 0x1000;
107
+ if (infoJson.map.flags.useTerrainFog)
108
+ flags |= 0x2000;
109
+ if (infoJson.map.flags.useItemClassificationSystem)
110
+ flags |= 0x8000;
111
+ if (infoJson.map.flags.enableWaterTinting)
112
+ flags |= 0x10000;
113
+ if (infoJson.map.flags.useAccurateProbabilityForCalculations)
114
+ flags |= 0x20000;
115
+ if (infoJson.map.flags.useCustomAbilitySkins)
116
+ flags |= 0x40000;
117
+ if (infoJson.map.flags.disableDenyIcon)
118
+ flags |= 0x80000;
119
+ if (infoJson.map.flags.forceDefaultCameraZoom)
120
+ flags |= 0x100000;
121
+ if (infoJson.map.flags.forceMaxCameraZoom)
122
+ flags |= 0x200000;
123
+ if (infoJson.map.flags.forceMinCameraZoom)
124
+ flags |= 0x400000;
125
+ }
126
+ flags |= 0x8000;
127
+ flags |= 0x4000;
128
+ flags |= 0x400;
129
+ outBufferToWar.addInt(flags);
130
+ outBufferToWar.addChar(infoJson.map.mainTileType);
131
+ outBufferToWar.addInt(infoJson.loadingScreen.background);
132
+ outBufferToWar.addString(infoJson.loadingScreen.path);
133
+ outBufferToWar.addString(infoJson.loadingScreen.text);
134
+ outBufferToWar.addString(infoJson.loadingScreen.title);
135
+ outBufferToWar.addString(infoJson.loadingScreen.subtitle);
136
+ outBufferToWar.addInt(infoJson.gameDataSet);
137
+ outBufferToWar.addString(infoJson.prologue.path);
138
+ outBufferToWar.addString(infoJson.prologue.text);
139
+ outBufferToWar.addString(infoJson.prologue.title);
140
+ outBufferToWar.addString(infoJson.prologue.subtitle);
141
+ outBufferToWar.addInt(infoJson.fog.type);
142
+ outBufferToWar.addFloat(infoJson.fog.startHeight);
143
+ outBufferToWar.addFloat(infoJson.fog.endHeight);
144
+ outBufferToWar.addFloat(infoJson.fog.density);
145
+ outBufferToWar.addByte(infoJson.fog.color[0]);
146
+ outBufferToWar.addByte(infoJson.fog.color[1]);
147
+ outBufferToWar.addByte(infoJson.fog.color[2]);
148
+ outBufferToWar.addByte(255);
149
+ if (!infoJson.globalWeather || infoJson.globalWeather.toLowerCase() === 'none') {
150
+ outBufferToWar.addInt(0);
151
+ }
152
+ else {
153
+ outBufferToWar.addChars(infoJson.globalWeather);
154
+ }
155
+ outBufferToWar.addString(infoJson.customSoundEnvironment || '');
156
+ outBufferToWar.addChar(infoJson.customLightEnv || 'L');
157
+ outBufferToWar.addByte(infoJson.water[0]);
158
+ outBufferToWar.addByte(infoJson.water[1]);
159
+ outBufferToWar.addByte(infoJson.water[2]);
160
+ outBufferToWar.addByte(255);
161
+ outBufferToWar.addInt(infoJson.scriptLanguage);
162
+ outBufferToWar.addInt(infoJson.supportedModes);
163
+ outBufferToWar.addInt(infoJson.gameDataVersion);
164
+ outBufferToWar.addInt(infoJson.forceDefaultCameraZoom);
165
+ outBufferToWar.addInt(infoJson.forceMaxCameraZoom);
166
+ outBufferToWar.addInt(infoJson.forceMinCameraZoom);
167
+ const availablePlayerNums = infoJson.players.map((player) => player.playerNum);
168
+ outBufferToWar.addInt(infoJson.players.length);
169
+ for (const player of infoJson.players) {
170
+ outBufferToWar.addInt(player.playerNum);
171
+ outBufferToWar.addInt(player.type);
172
+ outBufferToWar.addInt(player.race);
173
+ outBufferToWar.addInt(player.startingPos.fixed ? 1 : 0);
174
+ outBufferToWar.addString(player.name);
175
+ outBufferToWar.addFloat(player.startingPos.x);
176
+ outBufferToWar.addFloat(player.startingPos.y);
177
+ outBufferToWar.addInt((0, PlayerBitfield_1.toPlayerBitfield)(player.allyLowPriorityFlags || [], availablePlayerNums));
178
+ outBufferToWar.addInt((0, PlayerBitfield_1.toPlayerBitfield)(player.allyHighPriorityFlags || [], availablePlayerNums));
179
+ outBufferToWar.addInt((0, PlayerBitfield_1.toPlayerBitfield)(player.enemyLowPriorityFlags || [], availablePlayerNums));
180
+ outBufferToWar.addInt((0, PlayerBitfield_1.toPlayerBitfield)(player.enemyHighPriorityFlags || [], availablePlayerNums));
181
+ }
182
+ outBufferToWar.addInt(infoJson.forces.length);
183
+ for (let i = 0; i < infoJson.forces.length; i++) {
184
+ const force = infoJson.forces[i];
185
+ let forceFlags = 0;
186
+ if (force.flags.allied)
187
+ forceFlags |= 0x1;
188
+ if (force.flags.alliedVictory)
189
+ forceFlags |= 0x2;
190
+ if (force.flags.shareVision)
191
+ forceFlags |= 0x8;
192
+ if (force.flags.shareUnitControl)
193
+ forceFlags |= 0x10;
194
+ if (force.flags.shareAdvUnitControl)
195
+ forceFlags |= 0x20;
196
+ outBufferToWar.addInt(forceFlags);
197
+ let forcePlayerBitfield = (0, PlayerBitfield_1.toPlayerBitfield)(force.players, availablePlayerNums);
198
+ if (i === 0) {
199
+ const nonExistentPlayerNums = new Set([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
200
+ .filter((playerNum) => !availablePlayerNums.includes(playerNum)));
201
+ for (const nonExistentPlayerNum of nonExistentPlayerNums) {
202
+ forcePlayerBitfield |= (0b1 << nonExistentPlayerNum);
203
+ }
204
+ }
205
+ outBufferToWar.addInt(forcePlayerBitfield);
206
+ outBufferToWar.addString(force.name);
207
+ }
208
+ outBufferToWar.addInt(infoJson.upgrades.length);
209
+ for (const upgrade of infoJson.upgrades) {
210
+ outBufferToWar.addInt((0, PlayerBitfield_1.toPlayerBitfield)(upgrade.players, availablePlayerNums));
211
+ outBufferToWar.addChars(upgrade.id);
212
+ outBufferToWar.addInt(upgrade.level);
213
+ outBufferToWar.addInt(upgrade.availability);
214
+ }
215
+ outBufferToWar.addInt(infoJson.techtree.length);
216
+ for (const techtree of infoJson.techtree) {
217
+ outBufferToWar.addInt((0, PlayerBitfield_1.toPlayerBitfield)(techtree.players, availablePlayerNums));
218
+ outBufferToWar.addChars(techtree.id);
219
+ }
220
+ outBufferToWar.addInt(infoJson.randomGroupTable.length);
221
+ for (const groupTable of infoJson.randomGroupTable) {
222
+ outBufferToWar.addInt(groupTable.number);
223
+ outBufferToWar.addString(groupTable.name);
224
+ outBufferToWar.addInt(groupTable.positions.length);
225
+ for (const position of groupTable.positions) {
226
+ outBufferToWar.addInt(position);
227
+ }
228
+ outBufferToWar.addInt(groupTable.rows.length);
229
+ for (const row of groupTable.rows) {
230
+ outBufferToWar.addInt(row.chance);
231
+ for (const entry of row.entries) {
232
+ outBufferToWar.addChars(entry);
233
+ }
234
+ }
235
+ }
236
+ outBufferToWar.addInt(infoJson.randomItemTable.length);
237
+ for (const itemTable of infoJson.randomItemTable) {
238
+ outBufferToWar.addInt(itemTable.number);
239
+ outBufferToWar.addString(itemTable.name);
240
+ outBufferToWar.addInt(itemTable.sets.length);
241
+ for (const itemSet of itemTable.sets) {
242
+ outBufferToWar.addInt(itemSet.length);
243
+ for (const item of itemSet) {
244
+ outBufferToWar.addInt(item.chance);
245
+ outBufferToWar.addChars(item.id);
246
+ }
247
+ }
248
+ }
249
+ return {
250
+ buffer: outBufferToWar.getBuffer()
251
+ };
252
+ }
253
+ static warToJson(buffer) {
254
+ const result = {
255
+ map: {
256
+ name: '',
257
+ author: '',
258
+ description: '',
259
+ recommendedPlayers: '',
260
+ playableArea: {
261
+ width: 64,
262
+ height: 64
263
+ },
264
+ mainTileType: '',
265
+ flags: {
266
+ hideMinimapInPreview: false,
267
+ modifyAllyPriorities: true,
268
+ isMeleeMap: false,
269
+ maskedPartiallyVisible: false,
270
+ fixedPlayerSetting: false,
271
+ useCustomForces: false,
272
+ useCustomTechtree: false,
273
+ useCustomAbilities: false,
274
+ useCustomUpgrades: false,
275
+ waterWavesOnCliffShores: false,
276
+ waterWavesOnRollingShores: false,
277
+ useTerrainFog: false,
278
+ useItemClassificationSystem: false,
279
+ enableWaterTinting: false,
280
+ useAccurateProbabilityForCalculations: false,
281
+ useCustomAbilitySkins: false,
282
+ disableDenyIcon: false,
283
+ forceDefaultCameraZoom: false,
284
+ forceMaxCameraZoom: false,
285
+ forceMinCameraZoom: false
286
+ }
287
+ },
288
+ loadingScreen: {
289
+ background: 0,
290
+ path: '',
291
+ text: '',
292
+ title: '',
293
+ subtitle: ''
294
+ },
295
+ prologue: {
296
+ path: '',
297
+ text: '',
298
+ title: '',
299
+ subtitle: ''
300
+ },
301
+ fog: {
302
+ type: FogType.Linear,
303
+ startHeight: 0,
304
+ endHeight: 0,
305
+ density: 0,
306
+ color: [0, 0, 0]
307
+ },
308
+ camera: {
309
+ bounds: [],
310
+ complements: []
311
+ },
312
+ players: [],
313
+ forces: [],
314
+ upgrades: [],
315
+ techtree: [],
316
+ randomGroupTable: [],
317
+ randomItemTable: [],
318
+ saves: 0,
319
+ editorVersion: 0,
320
+ gameDataVersion: GameDataVersion.TFT,
321
+ gameDataSet: GameDataSet.Default,
322
+ scriptLanguage: ScriptLanguage.JASS,
323
+ supportedModes: SupportedModes.Both,
324
+ gameVersion: {
325
+ major: 0,
326
+ minor: 0,
327
+ patch: 0,
328
+ build: 0
329
+ },
330
+ globalWeather: '',
331
+ customSoundEnvironment: '',
332
+ customLightEnv: '',
333
+ water: [],
334
+ forceDefaultCameraZoom: 0,
335
+ forceMaxCameraZoom: 0,
336
+ forceMinCameraZoom: 0
337
+ };
338
+ const outBufferToJSON = new W3Buffer_1.W3Buffer(buffer);
339
+ (0, CommonInterfaces_1.expectVersion)(33, outBufferToJSON.readInt());
340
+ result.saves = outBufferToJSON.readInt();
341
+ result.editorVersion = outBufferToJSON.readInt();
342
+ result.gameVersion = {
343
+ major: outBufferToJSON.readInt(),
344
+ minor: outBufferToJSON.readInt(),
345
+ patch: outBufferToJSON.readInt(),
346
+ build: outBufferToJSON.readInt()
347
+ };
348
+ result.map.name = outBufferToJSON.readString();
349
+ result.map.author = outBufferToJSON.readString();
350
+ result.map.description = outBufferToJSON.readString();
351
+ result.map.recommendedPlayers = outBufferToJSON.readString();
352
+ result.camera.bounds = [
353
+ outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat(),
354
+ outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat(), outBufferToJSON.readFloat()
355
+ ];
356
+ result.camera.complements = [
357
+ outBufferToJSON.readInt(), outBufferToJSON.readInt(), outBufferToJSON.readInt(), outBufferToJSON.readInt()
358
+ ];
359
+ result.map.playableArea = {
360
+ width: outBufferToJSON.readInt(),
361
+ height: outBufferToJSON.readInt()
362
+ };
363
+ const flags = outBufferToJSON.readInt();
364
+ result.map.flags = {
365
+ hideMinimapInPreview: !!(flags & 0x1),
366
+ modifyAllyPriorities: !!(flags & 0x2),
367
+ isMeleeMap: !!(flags & 0x4),
368
+ maskedPartiallyVisible: !!(flags & 0x10),
369
+ fixedPlayerSetting: !!(flags & 0x20),
370
+ useCustomForces: !!(flags & 0x40),
371
+ useCustomTechtree: !!(flags & 0x80),
372
+ useCustomAbilities: !!(flags & 0x100),
373
+ useCustomUpgrades: !!(flags & 0x200),
374
+ waterWavesOnCliffShores: !!(flags & 0x800),
375
+ waterWavesOnRollingShores: !!(flags & 0x1000),
376
+ useTerrainFog: !!(flags & 0x2000),
377
+ useItemClassificationSystem: !!(flags & 0x8000),
378
+ enableWaterTinting: !!(flags & 0x10000),
379
+ useAccurateProbabilityForCalculations: !!(flags & 0x20000),
380
+ useCustomAbilitySkins: !!(flags & 0x40000),
381
+ disableDenyIcon: !!(flags & 0x80000),
382
+ forceDefaultCameraZoom: !!(flags & 0x100000),
383
+ forceMaxCameraZoom: !!(flags & 0x200000),
384
+ forceMinCameraZoom: !!(flags & 0x400000)
385
+ };
386
+ result.map.mainTileType = outBufferToJSON.readChars();
387
+ result.loadingScreen.background = outBufferToJSON.readInt();
388
+ result.loadingScreen.path = outBufferToJSON.readString();
389
+ result.loadingScreen.text = outBufferToJSON.readString();
390
+ result.loadingScreen.title = outBufferToJSON.readString();
391
+ result.loadingScreen.subtitle = outBufferToJSON.readString();
392
+ result.gameDataSet = outBufferToJSON.readInt();
393
+ result.prologue = {
394
+ path: outBufferToJSON.readString(),
395
+ text: outBufferToJSON.readString(),
396
+ title: outBufferToJSON.readString(),
397
+ subtitle: outBufferToJSON.readString()
398
+ };
399
+ result.fog = {
400
+ type: outBufferToJSON.readInt(),
401
+ startHeight: outBufferToJSON.readFloat(),
402
+ endHeight: outBufferToJSON.readFloat(),
403
+ density: outBufferToJSON.readFloat(),
404
+ color: [outBufferToJSON.readByte(), outBufferToJSON.readByte(), outBufferToJSON.readByte()]
405
+ };
406
+ outBufferToJSON.readByte();
407
+ result.globalWeather = outBufferToJSON.readChars(4);
408
+ result.customSoundEnvironment = outBufferToJSON.readString();
409
+ result.customLightEnv = outBufferToJSON.readChars();
410
+ result.water = [outBufferToJSON.readByte(), outBufferToJSON.readByte(), outBufferToJSON.readByte()];
411
+ outBufferToJSON.readByte();
412
+ result.scriptLanguage = outBufferToJSON.readInt();
413
+ result.supportedModes = outBufferToJSON.readInt();
414
+ result.gameDataVersion = outBufferToJSON.readInt();
415
+ result.forceDefaultCameraZoom = outBufferToJSON.readInt();
416
+ result.forceMaxCameraZoom = outBufferToJSON.readInt();
417
+ result.forceMinCameraZoom = outBufferToJSON.readInt();
418
+ const numPlayers = outBufferToJSON.readInt();
419
+ for (let i = 0; i < numPlayers; i++) {
420
+ const playerNum = outBufferToJSON.readInt();
421
+ const type = outBufferToJSON.readInt();
422
+ const race = outBufferToJSON.readInt();
423
+ const isFixedStartPosition = outBufferToJSON.readInt() === 1;
424
+ const name = outBufferToJSON.readString();
425
+ const startingPos = {
426
+ x: outBufferToJSON.readFloat(),
427
+ y: outBufferToJSON.readFloat(),
428
+ fixed: isFixedStartPosition
429
+ };
430
+ const allyLowPriorityFlags = (0, PlayerBitfield_1.fromPlayerBitfield)(outBufferToJSON.readInt(), undefined);
431
+ const allyHighPriorityFlags = (0, PlayerBitfield_1.fromPlayerBitfield)(outBufferToJSON.readInt(), undefined);
432
+ const enemyLowPriorityFlags = (0, PlayerBitfield_1.fromPlayerBitfield)(outBufferToJSON.readInt(), undefined);
433
+ const enemyHighPriorityFlags = (0, PlayerBitfield_1.fromPlayerBitfield)(outBufferToJSON.readInt(), undefined);
434
+ result.players.push({ name, startingPos, playerNum, type, race, allyLowPriorityFlags, allyHighPriorityFlags, enemyLowPriorityFlags, enemyHighPriorityFlags });
435
+ }
436
+ const availablePlayerNums = result.players.map((player) => player.playerNum);
437
+ const numForces = outBufferToJSON.readInt();
438
+ for (let i = 0; i < numForces; i++) {
439
+ const forceFlag = outBufferToJSON.readInt();
440
+ const flags = {
441
+ allied: !!(forceFlag & 0x1),
442
+ alliedVictory: !!(forceFlag & 0x2),
443
+ shareVision: !!(forceFlag & 0x8),
444
+ shareUnitControl: !!(forceFlag & 0x10),
445
+ shareAdvUnitControl: !!(forceFlag & 0x20)
446
+ };
447
+ const players = (0, PlayerBitfield_1.fromPlayerBitfield)(outBufferToJSON.readInt(), availablePlayerNums);
448
+ const name = outBufferToJSON.readString();
449
+ result.forces.push({ name, flags, players });
450
+ }
451
+ const numUpgrades = outBufferToJSON.readInt();
452
+ for (let i = 0; i < numUpgrades; i++) {
453
+ const players = (0, PlayerBitfield_1.fromPlayerBitfield)(outBufferToJSON.readInt(), availablePlayerNums);
454
+ const id = outBufferToJSON.readChars(4);
455
+ const level = outBufferToJSON.readInt();
456
+ const availability = outBufferToJSON.readInt();
457
+ result.upgrades.push({ id, players, level, availability });
458
+ }
459
+ const numTech = outBufferToJSON.readInt();
460
+ for (let i = 0; i < numTech; i++) {
461
+ const players = (0, PlayerBitfield_1.fromPlayerBitfield)(outBufferToJSON.readInt(), availablePlayerNums);
462
+ const id = outBufferToJSON.readChars(4);
463
+ result.techtree.push({ players, id });
464
+ }
465
+ const numGroupTables = outBufferToJSON.readInt();
466
+ for (let i = 0; i < numGroupTables; i++) {
467
+ const group = {
468
+ number: outBufferToJSON.readInt(),
469
+ name: outBufferToJSON.readString(),
470
+ positions: [],
471
+ rows: []
472
+ };
473
+ const numPositions = outBufferToJSON.readInt();
474
+ for (let i = 0; i < numPositions; i++) {
475
+ const positionType = outBufferToJSON.readInt();
476
+ group.positions.push(positionType);
477
+ }
478
+ const numRows = outBufferToJSON.readInt();
479
+ for (let j = 0; j < numRows; j++) {
480
+ const chance = outBufferToJSON.readInt();
481
+ const entries = [];
482
+ for (let i = 0; i < numPositions; i++) {
483
+ entries.push(outBufferToJSON.readChars(4));
484
+ }
485
+ group.rows.push({ chance, entries });
486
+ }
487
+ result.randomGroupTable.push(group);
488
+ }
489
+ const numItemTable = outBufferToJSON.readInt();
490
+ for (let i = 0; i < numItemTable; i++) {
491
+ const number = outBufferToJSON.readInt();
492
+ const name = outBufferToJSON.readString();
493
+ const sets = [];
494
+ const itemSetsCurrentTable = outBufferToJSON.readInt();
495
+ for (let j = 0; j < itemSetsCurrentTable; j++) {
496
+ const itemSet = [];
497
+ const itemsInItemSet = outBufferToJSON.readInt();
498
+ for (let k = 0; k < itemsInItemSet; k++) {
499
+ const chance = outBufferToJSON.readInt();
500
+ const itemId = outBufferToJSON.readChars(4);
501
+ itemSet.push({ chance, id: itemId });
502
+ }
503
+ sets.push(itemSet);
504
+ }
505
+ result.randomItemTable.push({ name, number, sets });
506
+ }
507
+ return {
508
+ json: result
509
+ };
510
+ }
511
+ }
512
+ exports.default = InfoTranslator;
513
+ InfoTranslator.PlayerType = PlayerType;
514
+ InfoTranslator.PlayerRace = PlayerRace;
515
+ InfoTranslator.FogType = FogType;
516
+ InfoTranslator.GameDataSet = GameDataSet;
517
+ InfoTranslator.GameDataVersion = GameDataVersion;
518
+ InfoTranslator.ScriptLanguage = ScriptLanguage;
519
+ InfoTranslator.SupportedModes = SupportedModes;
520
+ InfoTranslator.UpgradeAvailability = UpgradeAvailability;
521
+ //# sourceMappingURL=InfoTranslator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InfoTranslator.js","sourceRoot":"","sources":["../../../src/translators/InfoTranslator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="node" />
3
+ import { WarResult, JsonResult, ITranslator } from '../CommonInterfaces';
4
+ declare enum ModificationType {
5
+ int = "int",
6
+ real = "real",
7
+ unreal = "unreal",
8
+ string = "string"
9
+ }
10
+ declare enum ObjectType {
11
+ Units = "units",
12
+ Items = "items",
13
+ Destructables = "destructables",
14
+ Doodads = "doodads",
15
+ Abilities = "abilities",
16
+ Buffs = "buffs",
17
+ Upgrades = "upgrades"
18
+ }
19
+ type ObjectTypeVal = `${ObjectType}`;
20
+ interface Modification {
21
+ id: string;
22
+ type: ModificationType;
23
+ value: number | string;
24
+ level?: number;
25
+ column?: number;
26
+ variation?: number;
27
+ }
28
+ type ModificationTableRecords = Record<string, Modification[]>;
29
+ interface ObjectModificationTable {
30
+ original: ModificationTableRecords;
31
+ custom: ModificationTableRecords;
32
+ }
33
+ export default abstract class ObjectsTranslator extends ITranslator {
34
+ static readonly ObjectType: typeof ObjectType;
35
+ static jsonToWar(type: ObjectTypeVal, json: ObjectModificationTable): WarResult;
36
+ static warToJson(type: ObjectTypeVal, buffer: Buffer, bufferSkin?: Buffer): JsonResult<ObjectModificationTable>;
37
+ }
38
+ export {};
39
+ //# sourceMappingURL=ObjectsTranslator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ObjectsTranslator.d.ts","sourceRoot":"","sources":["../../../src/translators/ObjectsTranslator.ts"],"names":[],"mappings":";;AAEA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAiB,MAAM,qBAAqB,CAAC;AAOxF,aAAK,gBAAgB;IACjB,GAAG,QAAQ;IACX,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;CACpB;AAED,aAAK,UAAU;IACX,KAAK,UAAU;IACf,KAAK,UAAU;IACf,aAAa,kBAAkB;IAC/B,OAAO,YAAY;IACnB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,QAAQ,aAAa;CACxB;AAED,KAAK,aAAa,GAAG,GAAG,UAAU,EAAE,CAAC;AAErC,UAAU,YAAY;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAKvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAQD,KAAK,wBAAwB,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;AAE/D,UAAU,uBAAuB;IAC7B,QAAQ,EAAE,wBAAwB,CAAC;IACnC,MAAM,EAAE,wBAAwB,CAAC;CACpC;AA2BD,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,iBAAkB,SAAQ,WAAW;IAI/D,gBAAuB,UAAU,oBAAc;WAEjC,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,uBAAuB,GAAG,SAAS;WAiKxE,SAAS,CAAC,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,uBAAuB,CAAC;CA4EzH"}