MCPcopy Create free account
hub / github.com/Shazbot/WH3-Mod-Manager / readPack

Function readPack

temp/readPacksWorker.js:173–444  ·  view source on GitHub ↗
(modPath_1)

Source from the content-addressed store, hash-verified

171 return [buffer.subarray(pos, pos + length * 2).toString("utf8"), pos + length * 2];
172};
173var readPack = function (modPath_1) {
174 var args_1 = [];
175 for (var _i = 1; _i < arguments.length; _i++) {
176 args_1[_i - 1] = arguments[_i];
177 }
178 return __awaiter(void 0, __spreadArray([modPath_1], args_1, true), void 0, function (modPath, skipParsingTables) {
179 var pack_files, packHeader, file, header, byteMask, refFileCount, pack_file_index_size, pack_file_count, packed_file_index_size, dependencyPacks, header_buffer_len, header_buffer, chunk_1, bufPos_1, lastDependencyStart, packIndexBuffer, name_1, dataStart, chunk, file_pos, headerSize, headerBuffer, bufPos, i, name_2, file_size, is_compressed, nameStartPos, dbPackFiles, startPos, startOfLastPack_1, endPos, buffer, currentPos, _loop_1, _a, pack_files_1, pack_file, e_1;
180 var _b, _c;
181 if (skipParsingTables === void 0) { skipParsingTables = false; }
182 return __generator(this, function (_d) {
183 switch (_d.label) {
184 case 0:
185 pack_files = [];
186 _d.label = 1;
187 case 1:
188 _d.trys.push([1, 18, 19, 22]);
189 file = new BinaryFile(modPath, "r", true);
190 return [4 /*yield*/, file.open()];
191 case 2:
192 _d.sent();
193 return [4 /*yield*/, file.read(4)];
194 case 3:
195 header = _d.sent();
196 if (header === null)
197 throw new Error("header missing");
198 return [4 /*yield*/, file.readInt32()];
199 case 4:
200 byteMask = _d.sent();
201 return [4 /*yield*/, file.readInt32()];
202 case 5:
203 refFileCount = _d.sent();
204 return [4 /*yield*/, file.readInt32()];
205 case 6:
206 pack_file_index_size = _d.sent();
207 return [4 /*yield*/, file.readInt32()];
208 case 7:
209 pack_file_count = _d.sent();
210 return [4 /*yield*/, file.readInt32()];
211 case 8:
212 packed_file_index_size = _d.sent();
213 dependencyPacks = [];
214 header_buffer_len = 4;
215 return [4 /*yield*/, file.read(4)];
216 case 9:
217 header_buffer = _d.sent();
218 packHeader = {
219 header: header,
220 byteMask: byteMask,
221 refFileCount: refFileCount,
222 pack_file_index_size: pack_file_index_size,
223 pack_file_count: pack_file_count,
224 header_buffer: header_buffer,
225 };
226 if (!(pack_file_index_size > 0)) return [3 /*break*/, 11];
227 bufPos_1 = 0;
228 lastDependencyStart = 0;
229 return [4 /*yield*/, file.read(pack_file_index_size)];
230 case 10:

Callers

nothing calls this directly

Calls 3

closeMethod · 0.80
readUTFStringFromBufferFunction · 0.70
parseTypeBufferFunction · 0.70

Tested by

no test coverage detected