Spaces:
Running
Running
Publish MASSFRONT web 1.33.80 (part 2)
Browse files- assets/data/exploration-pack-remote.json +4 -4
- assets/data/runtime-compatibility.json +49 -49
- boot.js +14 -35
- index.html +0 -0
assets/data/exploration-pack-remote.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
| 1 |
{
|
| 2 |
"schema": "MassfrontExplorationPackRemoteV2",
|
| 3 |
"kind": "ExplorationPackRemote",
|
| 4 |
-
"version": "1.33.
|
| 5 |
-
"base": "https://massfront-update.jasondixon1994.workers.dev/f/1.33.
|
| 6 |
-
"manifest": "https://massfront-update.jasondixon1994.workers.dev/f/1.33.
|
| 7 |
-
"manifestSha256": "
|
| 8 |
"manifestBytes": 241496,
|
| 9 |
"downloadQuery": ""
|
| 10 |
}
|
|
|
|
| 1 |
{
|
| 2 |
"schema": "MassfrontExplorationPackRemoteV2",
|
| 3 |
"kind": "ExplorationPackRemote",
|
| 4 |
+
"version": "1.33.80",
|
| 5 |
+
"base": "https://massfront-update.jasondixon1994.workers.dev/f/1.33.80/content-r1/",
|
| 6 |
+
"manifest": "https://massfront-update.jasondixon1994.workers.dev/f/1.33.80/content-r1/exploration-content-manifest-v2.json",
|
| 7 |
+
"manifestSha256": "cf335988b9caaf13af45a80cc05f1f7f4ae57d28c37d70fe18631e6853c99014",
|
| 8 |
"manifestBytes": 241496,
|
| 9 |
"downloadQuery": ""
|
| 10 |
}
|
assets/data/runtime-compatibility.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
{
|
| 2 |
"schema": "massfront.runtime-compatibility",
|
| 3 |
"schemaVersion": 1,
|
| 4 |
-
"buildVersion": "1.33.
|
| 5 |
"channel": "packaged-www",
|
| 6 |
"identityScheme": "massfront.canonical-source.v1",
|
| 7 |
"transportScheme": "massfront.emitted-bytes.v1",
|
| 8 |
-
"manifestHash": "
|
| 9 |
-
"balanceHash": "
|
| 10 |
"algorithm": {
|
| 11 |
"leaf": "sha256(raw-artifact-bytes)",
|
| 12 |
"root": "sha256(domain\\0 + utf8ByteLength(path):path\\0decimalSize\\0leaf\\n for each ordered entry)",
|
|
@@ -20,18 +20,18 @@
|
|
| 20 |
"manifestEntries": [
|
| 21 |
{
|
| 22 |
"path": "index.html",
|
| 23 |
-
"size":
|
| 24 |
-
"sha256": "
|
| 25 |
},
|
| 26 |
{
|
| 27 |
"path": "boot.js",
|
| 28 |
-
"size":
|
| 29 |
-
"sha256": "
|
| 30 |
},
|
| 31 |
{
|
| 32 |
"path": "sw.js",
|
| 33 |
"size": 11191,
|
| 34 |
-
"sha256": "
|
| 35 |
},
|
| 36 |
{
|
| 37 |
"path": "src/styles/ui.css",
|
|
@@ -360,8 +360,8 @@
|
|
| 360 |
},
|
| 361 |
{
|
| 362 |
"path": "src/game/sim.js",
|
| 363 |
-
"size":
|
| 364 |
-
"sha256": "
|
| 365 |
},
|
| 366 |
{
|
| 367 |
"path": "src/game/airwarfare.js",
|
|
@@ -390,8 +390,8 @@
|
|
| 390 |
},
|
| 391 |
{
|
| 392 |
"path": "src/ui/input.js",
|
| 393 |
-
"size":
|
| 394 |
-
"sha256": "
|
| 395 |
},
|
| 396 |
{
|
| 397 |
"path": "src/ui/facticons.js",
|
|
@@ -400,8 +400,8 @@
|
|
| 400 |
},
|
| 401 |
{
|
| 402 |
"path": "src/ui/hud.js",
|
| 403 |
-
"size":
|
| 404 |
-
"sha256": "
|
| 405 |
},
|
| 406 |
{
|
| 407 |
"path": "src/ui/render3d.js",
|
|
@@ -410,8 +410,8 @@
|
|
| 410 |
},
|
| 411 |
{
|
| 412 |
"path": "src/ui/orderfx.js",
|
| 413 |
-
"size":
|
| 414 |
-
"sha256": "
|
| 415 |
},
|
| 416 |
{
|
| 417 |
"path": "src/airlift.js",
|
|
@@ -541,7 +541,7 @@
|
|
| 541 |
{
|
| 542 |
"path": "src/updater.js",
|
| 543 |
"size": 164739,
|
| 544 |
-
"sha256": "
|
| 545 |
},
|
| 546 |
{
|
| 547 |
"path": "src/intro.js",
|
|
@@ -610,8 +610,8 @@
|
|
| 610 |
},
|
| 611 |
{
|
| 612 |
"path": "src/ui/hotslots.js",
|
| 613 |
-
"size":
|
| 614 |
-
"sha256": "
|
| 615 |
},
|
| 616 |
{
|
| 617 |
"path": "src/ui/unit-stack-hotbar.js",
|
|
@@ -620,8 +620,8 @@
|
|
| 620 |
},
|
| 621 |
{
|
| 622 |
"path": "src/galactic-operations.js",
|
| 623 |
-
"size":
|
| 624 |
-
"sha256": "
|
| 625 |
},
|
| 626 |
{
|
| 627 |
"path": "src/onboarding.js",
|
|
@@ -707,8 +707,8 @@
|
|
| 707 |
},
|
| 708 |
{
|
| 709 |
"path": "src/game/sim.js",
|
| 710 |
-
"size":
|
| 711 |
-
"sha256": "
|
| 712 |
},
|
| 713 |
{
|
| 714 |
"path": "src/game/airwarfare.js",
|
|
@@ -807,27 +807,27 @@
|
|
| 807 |
},
|
| 808 |
{
|
| 809 |
"path": "src/galactic-operations.js",
|
| 810 |
-
"size":
|
| 811 |
-
"sha256": "
|
| 812 |
}
|
| 813 |
],
|
| 814 |
-
"transportManifestHash": "
|
| 815 |
-
"transportBalanceHash": "
|
| 816 |
"transportManifestEntries": [
|
| 817 |
{
|
| 818 |
"path": "index.html",
|
| 819 |
-
"size":
|
| 820 |
-
"sha256": "
|
| 821 |
},
|
| 822 |
{
|
| 823 |
"path": "boot.js",
|
| 824 |
-
"size":
|
| 825 |
-
"sha256": "
|
| 826 |
},
|
| 827 |
{
|
| 828 |
"path": "sw.js",
|
| 829 |
"size": 11191,
|
| 830 |
-
"sha256": "
|
| 831 |
},
|
| 832 |
{
|
| 833 |
"path": "src/styles/ui.css",
|
|
@@ -1156,8 +1156,8 @@
|
|
| 1156 |
},
|
| 1157 |
{
|
| 1158 |
"path": "src/game/sim.js",
|
| 1159 |
-
"size":
|
| 1160 |
-
"sha256": "
|
| 1161 |
},
|
| 1162 |
{
|
| 1163 |
"path": "src/game/airwarfare.js",
|
|
@@ -1186,8 +1186,8 @@
|
|
| 1186 |
},
|
| 1187 |
{
|
| 1188 |
"path": "src/ui/input.js",
|
| 1189 |
-
"size":
|
| 1190 |
-
"sha256": "
|
| 1191 |
},
|
| 1192 |
{
|
| 1193 |
"path": "src/ui/facticons.js",
|
|
@@ -1196,8 +1196,8 @@
|
|
| 1196 |
},
|
| 1197 |
{
|
| 1198 |
"path": "src/ui/hud.js",
|
| 1199 |
-
"size":
|
| 1200 |
-
"sha256": "
|
| 1201 |
},
|
| 1202 |
{
|
| 1203 |
"path": "src/ui/render3d.js",
|
|
@@ -1206,8 +1206,8 @@
|
|
| 1206 |
},
|
| 1207 |
{
|
| 1208 |
"path": "src/ui/orderfx.js",
|
| 1209 |
-
"size":
|
| 1210 |
-
"sha256": "
|
| 1211 |
},
|
| 1212 |
{
|
| 1213 |
"path": "src/airlift.js",
|
|
@@ -1337,7 +1337,7 @@
|
|
| 1337 |
{
|
| 1338 |
"path": "src/updater.js",
|
| 1339 |
"size": 164739,
|
| 1340 |
-
"sha256": "
|
| 1341 |
},
|
| 1342 |
{
|
| 1343 |
"path": "src/intro.js",
|
|
@@ -1406,8 +1406,8 @@
|
|
| 1406 |
},
|
| 1407 |
{
|
| 1408 |
"path": "src/ui/hotslots.js",
|
| 1409 |
-
"size":
|
| 1410 |
-
"sha256": "
|
| 1411 |
},
|
| 1412 |
{
|
| 1413 |
"path": "src/ui/unit-stack-hotbar.js",
|
|
@@ -1416,8 +1416,8 @@
|
|
| 1416 |
},
|
| 1417 |
{
|
| 1418 |
"path": "src/galactic-operations.js",
|
| 1419 |
-
"size":
|
| 1420 |
-
"sha256": "
|
| 1421 |
},
|
| 1422 |
{
|
| 1423 |
"path": "src/onboarding.js",
|
|
@@ -1503,8 +1503,8 @@
|
|
| 1503 |
},
|
| 1504 |
{
|
| 1505 |
"path": "src/game/sim.js",
|
| 1506 |
-
"size":
|
| 1507 |
-
"sha256": "
|
| 1508 |
},
|
| 1509 |
{
|
| 1510 |
"path": "src/game/airwarfare.js",
|
|
@@ -1603,8 +1603,8 @@
|
|
| 1603 |
},
|
| 1604 |
{
|
| 1605 |
"path": "src/galactic-operations.js",
|
| 1606 |
-
"size":
|
| 1607 |
-
"sha256": "
|
| 1608 |
}
|
| 1609 |
],
|
| 1610 |
"excluded": [
|
|
|
|
| 1 |
{
|
| 2 |
"schema": "massfront.runtime-compatibility",
|
| 3 |
"schemaVersion": 1,
|
| 4 |
+
"buildVersion": "1.33.80",
|
| 5 |
"channel": "packaged-www",
|
| 6 |
"identityScheme": "massfront.canonical-source.v1",
|
| 7 |
"transportScheme": "massfront.emitted-bytes.v1",
|
| 8 |
+
"manifestHash": "efbd76875ce8b3a22014e99ebf961136d8090517ab4f2a8e0bf5353875930e0d",
|
| 9 |
+
"balanceHash": "c5e65018fcefce1625a416bf44e14aa832839b69b1af3a372cccd9f10b30bea6",
|
| 10 |
"algorithm": {
|
| 11 |
"leaf": "sha256(raw-artifact-bytes)",
|
| 12 |
"root": "sha256(domain\\0 + utf8ByteLength(path):path\\0decimalSize\\0leaf\\n for each ordered entry)",
|
|
|
|
| 20 |
"manifestEntries": [
|
| 21 |
{
|
| 22 |
"path": "index.html",
|
| 23 |
+
"size": 636688,
|
| 24 |
+
"sha256": "2f527f79756f18f08581aa5c3b204420c5dc419faedf3120c51fbb7e014172cf"
|
| 25 |
},
|
| 26 |
{
|
| 27 |
"path": "boot.js",
|
| 28 |
+
"size": 49636,
|
| 29 |
+
"sha256": "42d6167edbf2c0df49176fb3928cef850ffe6969f4bd37f0ec38b0c4b6ec7a5c"
|
| 30 |
},
|
| 31 |
{
|
| 32 |
"path": "sw.js",
|
| 33 |
"size": 11191,
|
| 34 |
+
"sha256": "2f3533d63d20b623a0345c19ed9f2a5dbf935f8d48734b2899f21ab94a769b83"
|
| 35 |
},
|
| 36 |
{
|
| 37 |
"path": "src/styles/ui.css",
|
|
|
|
| 360 |
},
|
| 361 |
{
|
| 362 |
"path": "src/game/sim.js",
|
| 363 |
+
"size": 554100,
|
| 364 |
+
"sha256": "49786873ac6f2c9913e7c007b0e9aa76867337f5bf70ec0924a66347e5b40b9c"
|
| 365 |
},
|
| 366 |
{
|
| 367 |
"path": "src/game/airwarfare.js",
|
|
|
|
| 390 |
},
|
| 391 |
{
|
| 392 |
"path": "src/ui/input.js",
|
| 393 |
+
"size": 90592,
|
| 394 |
+
"sha256": "7b18f3970339674ff00845754094f2643fa8a73a512b7ebd31bba95bee74da7b"
|
| 395 |
},
|
| 396 |
{
|
| 397 |
"path": "src/ui/facticons.js",
|
|
|
|
| 400 |
},
|
| 401 |
{
|
| 402 |
"path": "src/ui/hud.js",
|
| 403 |
+
"size": 207228,
|
| 404 |
+
"sha256": "962b9f5adc994e7d47446a8db2034a13baeff97a13fd98dd2cc0e12ccfe3772b"
|
| 405 |
},
|
| 406 |
{
|
| 407 |
"path": "src/ui/render3d.js",
|
|
|
|
| 410 |
},
|
| 411 |
{
|
| 412 |
"path": "src/ui/orderfx.js",
|
| 413 |
+
"size": 8274,
|
| 414 |
+
"sha256": "732c0b1c5bc8532a0b93ea74bb34f09e5a9bfb939a3cbe6fdc486683a2892a8d"
|
| 415 |
},
|
| 416 |
{
|
| 417 |
"path": "src/airlift.js",
|
|
|
|
| 541 |
{
|
| 542 |
"path": "src/updater.js",
|
| 543 |
"size": 164739,
|
| 544 |
+
"sha256": "da40acc187eff27eafbcd19945873a8d4458df0aee743a7c155113bd304cb9e6"
|
| 545 |
},
|
| 546 |
{
|
| 547 |
"path": "src/intro.js",
|
|
|
|
| 610 |
},
|
| 611 |
{
|
| 612 |
"path": "src/ui/hotslots.js",
|
| 613 |
+
"size": 26914,
|
| 614 |
+
"sha256": "da9b59abe5598db08c134304a41eb511a03310283504e49817e475f7c26e040c"
|
| 615 |
},
|
| 616 |
{
|
| 617 |
"path": "src/ui/unit-stack-hotbar.js",
|
|
|
|
| 620 |
},
|
| 621 |
{
|
| 622 |
"path": "src/galactic-operations.js",
|
| 623 |
+
"size": 73553,
|
| 624 |
+
"sha256": "41dc62a138601fa2f49d3c4be60f508f30721aa1591f3f4ba9b3fa049ad2f3c7"
|
| 625 |
},
|
| 626 |
{
|
| 627 |
"path": "src/onboarding.js",
|
|
|
|
| 707 |
},
|
| 708 |
{
|
| 709 |
"path": "src/game/sim.js",
|
| 710 |
+
"size": 554100,
|
| 711 |
+
"sha256": "49786873ac6f2c9913e7c007b0e9aa76867337f5bf70ec0924a66347e5b40b9c"
|
| 712 |
},
|
| 713 |
{
|
| 714 |
"path": "src/game/airwarfare.js",
|
|
|
|
| 807 |
},
|
| 808 |
{
|
| 809 |
"path": "src/galactic-operations.js",
|
| 810 |
+
"size": 73553,
|
| 811 |
+
"sha256": "41dc62a138601fa2f49d3c4be60f508f30721aa1591f3f4ba9b3fa049ad2f3c7"
|
| 812 |
}
|
| 813 |
],
|
| 814 |
+
"transportManifestHash": "efbd76875ce8b3a22014e99ebf961136d8090517ab4f2a8e0bf5353875930e0d",
|
| 815 |
+
"transportBalanceHash": "c5e65018fcefce1625a416bf44e14aa832839b69b1af3a372cccd9f10b30bea6",
|
| 816 |
"transportManifestEntries": [
|
| 817 |
{
|
| 818 |
"path": "index.html",
|
| 819 |
+
"size": 636688,
|
| 820 |
+
"sha256": "2f527f79756f18f08581aa5c3b204420c5dc419faedf3120c51fbb7e014172cf"
|
| 821 |
},
|
| 822 |
{
|
| 823 |
"path": "boot.js",
|
| 824 |
+
"size": 49636,
|
| 825 |
+
"sha256": "42d6167edbf2c0df49176fb3928cef850ffe6969f4bd37f0ec38b0c4b6ec7a5c"
|
| 826 |
},
|
| 827 |
{
|
| 828 |
"path": "sw.js",
|
| 829 |
"size": 11191,
|
| 830 |
+
"sha256": "2f3533d63d20b623a0345c19ed9f2a5dbf935f8d48734b2899f21ab94a769b83"
|
| 831 |
},
|
| 832 |
{
|
| 833 |
"path": "src/styles/ui.css",
|
|
|
|
| 1156 |
},
|
| 1157 |
{
|
| 1158 |
"path": "src/game/sim.js",
|
| 1159 |
+
"size": 554100,
|
| 1160 |
+
"sha256": "49786873ac6f2c9913e7c007b0e9aa76867337f5bf70ec0924a66347e5b40b9c"
|
| 1161 |
},
|
| 1162 |
{
|
| 1163 |
"path": "src/game/airwarfare.js",
|
|
|
|
| 1186 |
},
|
| 1187 |
{
|
| 1188 |
"path": "src/ui/input.js",
|
| 1189 |
+
"size": 90592,
|
| 1190 |
+
"sha256": "7b18f3970339674ff00845754094f2643fa8a73a512b7ebd31bba95bee74da7b"
|
| 1191 |
},
|
| 1192 |
{
|
| 1193 |
"path": "src/ui/facticons.js",
|
|
|
|
| 1196 |
},
|
| 1197 |
{
|
| 1198 |
"path": "src/ui/hud.js",
|
| 1199 |
+
"size": 207228,
|
| 1200 |
+
"sha256": "962b9f5adc994e7d47446a8db2034a13baeff97a13fd98dd2cc0e12ccfe3772b"
|
| 1201 |
},
|
| 1202 |
{
|
| 1203 |
"path": "src/ui/render3d.js",
|
|
|
|
| 1206 |
},
|
| 1207 |
{
|
| 1208 |
"path": "src/ui/orderfx.js",
|
| 1209 |
+
"size": 8274,
|
| 1210 |
+
"sha256": "732c0b1c5bc8532a0b93ea74bb34f09e5a9bfb939a3cbe6fdc486683a2892a8d"
|
| 1211 |
},
|
| 1212 |
{
|
| 1213 |
"path": "src/airlift.js",
|
|
|
|
| 1337 |
{
|
| 1338 |
"path": "src/updater.js",
|
| 1339 |
"size": 164739,
|
| 1340 |
+
"sha256": "da40acc187eff27eafbcd19945873a8d4458df0aee743a7c155113bd304cb9e6"
|
| 1341 |
},
|
| 1342 |
{
|
| 1343 |
"path": "src/intro.js",
|
|
|
|
| 1406 |
},
|
| 1407 |
{
|
| 1408 |
"path": "src/ui/hotslots.js",
|
| 1409 |
+
"size": 26914,
|
| 1410 |
+
"sha256": "da9b59abe5598db08c134304a41eb511a03310283504e49817e475f7c26e040c"
|
| 1411 |
},
|
| 1412 |
{
|
| 1413 |
"path": "src/ui/unit-stack-hotbar.js",
|
|
|
|
| 1416 |
},
|
| 1417 |
{
|
| 1418 |
"path": "src/galactic-operations.js",
|
| 1419 |
+
"size": 73553,
|
| 1420 |
+
"sha256": "41dc62a138601fa2f49d3c4be60f508f30721aa1591f3f4ba9b3fa049ad2f3c7"
|
| 1421 |
},
|
| 1422 |
{
|
| 1423 |
"path": "src/onboarding.js",
|
|
|
|
| 1503 |
},
|
| 1504 |
{
|
| 1505 |
"path": "src/game/sim.js",
|
| 1506 |
+
"size": 554100,
|
| 1507 |
+
"sha256": "49786873ac6f2c9913e7c007b0e9aa76867337f5bf70ec0924a66347e5b40b9c"
|
| 1508 |
},
|
| 1509 |
{
|
| 1510 |
"path": "src/game/airwarfare.js",
|
|
|
|
| 1603 |
},
|
| 1604 |
{
|
| 1605 |
"path": "src/galactic-operations.js",
|
| 1606 |
+
"size": 73553,
|
| 1607 |
+
"sha256": "41dc62a138601fa2f49d3c4be60f508f30721aa1591f3f4ba9b3fa049ad2f3c7"
|
| 1608 |
}
|
| 1609 |
],
|
| 1610 |
"excluded": [
|
boot.js
CHANGED
|
@@ -30,7 +30,7 @@
|
|
| 30 |
otherwise reuse a stale source even after the installer or local preview
|
| 31 |
has changed, which made new settings appear to be missing until cache was
|
| 32 |
cleared manually. Patch bundles keep their content-addressed Blob URLs. */
|
| 33 |
-
var PACKAGED_REV='1.33.
|
| 34 |
/* Source-cache revision is deliberately independent from the user-facing
|
| 35 |
release number. Local/hotfix rebuilds of the same release must not reuse
|
| 36 |
an older gl.js merely because its ?v= version string is unchanged. */
|
|
@@ -549,28 +549,16 @@
|
|
| 549 |
});
|
| 550 |
}
|
| 551 |
|
| 552 |
-
var bootStartedAt=Date.now(),bootSourceLabel='Checking installed content',bootElapsedTimer=0;
|
| 553 |
function bootText(id,value){var el=document.getElementById(id);if(el)el.textContent=value;}
|
| 554 |
-
function bootElapsed(){
|
| 555 |
-
bootElapsedTimer=0;
|
| 556 |
-
if(!document.getElementById('mfBootCover'))return;
|
| 557 |
-
var seconds=Math.max(0,Math.floor((Date.now()-bootStartedAt)/1000));
|
| 558 |
-
bootText('mfBootElapsed',seconds+'s elapsed');
|
| 559 |
-
if(seconds<120)bootElapsedTimer=setTimeout(bootElapsed,1000);
|
| 560 |
-
}
|
| 561 |
function bootProgress(done,total,path,stage){
|
| 562 |
-
// innerHTML shell swaps do not execute inline scripts. Restore the same
|
| 563 |
-
// existing title art there too, without generating or fetching a new logo.
|
| 564 |
-
var title=document.getElementById('mfBootTitleArt'),original=document.getElementById('menuBrand');
|
| 565 |
-
if(title&&original&&!title.getAttribute('src'))title.src=original.getAttribute('src');
|
| 566 |
var verifying=stage==='verify',finished=total>0&&done>=total&&!verifying;
|
| 567 |
var clean=String(path||'').replace(/^\.\//,'').split('?')[0];
|
| 568 |
-
var phase=finished?'
|
| 569 |
-
/engine\/gl\.js/.test(clean)?'
|
| 570 |
-
/engine\/|assets\/data\//.test(clean)?'
|
| 571 |
-
/audio|factions|story|tutorial/.test(clean)?'
|
| 572 |
-
/ui\/|intro|launcher|main\.js/.test(clean)?'
|
| 573 |
-
bootText('mfBootPct',total?Math.
|
| 574 |
bootText('mfBootPhase',phase);
|
| 575 |
var detail=/glrecover/.test(clean)?'Preparing graphics recovery and reconnect controls.':
|
| 576 |
/engine\//.test(clean)?'Loading terrain, models and visual systems.':
|
|
@@ -579,16 +567,12 @@
|
|
| 579 |
/ui\/|intro|launcher|main\.js/.test(clean)?'Preparing menus and command controls.':
|
| 580 |
/assets\/data\//.test(clean)?'Loading world and unit definitions.':'Preparing game rules and career systems.';
|
| 581 |
bootText('mfBootDetail',finished?'Preparing the first frame and launch interface.':verifying?'Checking the integrity of stored runtime files.':detail);
|
| 582 |
-
bootText('mfBootCount',done+' / '+total+' scripts '+(verifying?'verified':'loaded'));
|
| 583 |
-
bootText('mfBootSource',bootSourceLabel);
|
| 584 |
var bar=document.getElementById('mfBootBar'),fill=document.getElementById('mfBootFill');
|
| 585 |
-
if(bar&&bar.setAttribute){bar.setAttribute('aria-valuemin','0');bar.setAttribute('aria-valuemax',String(total||1));bar.setAttribute('aria-valuenow',String(done));bar.setAttribute('aria-valuetext',finished?'
|
| 586 |
if(fill&&fill.style)fill.style.width=(total?Math.max(0,Math.min(100,done/total*100)):0)+'%';
|
| 587 |
var cover=document.getElementById('mfBootCover');
|
| 588 |
-
if(cover
|
| 589 |
-
if(!document.getElementById('mfBootCover')){if(bootElapsedTimer)clearTimeout(bootElapsedTimer);bootElapsedTimer=0;}
|
| 590 |
}
|
| 591 |
-
bootElapsed();
|
| 592 |
function rendererGateIndex(order){
|
| 593 |
for(var i=0;i<order.length;i++)
|
| 594 |
if(String(order[i]||'').replace(/^\.\//,'')==='src/engine/gl.js') return i;
|
|
@@ -611,12 +595,12 @@
|
|
| 611 |
left--;
|
| 612 |
if(src)failedCount++;
|
| 613 |
bootProgress(total-left-failedCount,total,order&&order[i]);
|
| 614 |
-
if(failedCount){bootText('mfBootPhase','
|
| 615 |
if(src) console.error('boot: failed',src);
|
| 616 |
if(i===gate){
|
| 617 |
gateFailed=!!src||window.__MF_GL_BOOT_FAILED===true;
|
| 618 |
if(gateFailed){
|
| 619 |
-
bootText('mfBootPhase','
|
| 620 |
bootText('mfBootDetail','Use the graphics retry control to continue.');
|
| 621 |
console.warn('boot: renderer phase stopped after WebGL2 initialization failed');
|
| 622 |
clearBootShield();
|
|
@@ -644,7 +628,6 @@
|
|
| 644 |
appendRange(0,Math.min(total,gate+1));
|
| 645 |
}
|
| 646 |
function runPackaged(){
|
| 647 |
-
if(bootSourceLabel==='Checking installed content')bootSourceLabel='Packaged game';
|
| 648 |
injectScripts(function(s,i){ s.src=MANIFEST[i]+'?v='+PACKAGED_SRC_REV; },
|
| 649 |
MANIFEST.length,rendererGateIndex(MANIFEST),MANIFEST);
|
| 650 |
}
|
|
@@ -661,8 +644,7 @@
|
|
| 661 |
function rangeFailure(path,reason){
|
| 662 |
if(stopped) return;
|
| 663 |
stopped=true;
|
| 664 |
-
|
| 665 |
-
bootText('mfBootPhase','Recovering installed game');
|
| 666 |
console.error('boot: failed',path,reason||'stored artifact unavailable');
|
| 667 |
clearBootShield();
|
| 668 |
try{if(typeof window.__MASSFRONT_CLEAR_INPUT_GUARD==='function')
|
|
@@ -716,7 +698,7 @@
|
|
| 716 |
var current=index++; executed++;
|
| 717 |
bootProgress(index,total,path);
|
| 718 |
if(current===gate&&window.__MF_GL_BOOT_FAILED===true){
|
| 719 |
-
bootText('mfBootPhase','
|
| 720 |
console.warn('boot: renderer phase stopped after WebGL2 initialization failed');
|
| 721 |
clearBootShield();
|
| 722 |
try{if(typeof window.__MASSFRONT_CLEAR_INPUT_GUARD==='function')
|
|
@@ -767,7 +749,6 @@
|
|
| 767 |
return actual;
|
| 768 |
});
|
| 769 |
}).then(function(){
|
| 770 |
-
bootSourceLabel='Verified update '+(b.version||'');
|
| 771 |
index=0;bootProgress(0,total);next();
|
| 772 |
}).catch(function(error){ rangeFailure('__runtime__',error&&error.message); });
|
| 773 |
return;
|
|
@@ -797,7 +778,6 @@
|
|
| 797 |
preflight(0);
|
| 798 |
}
|
| 799 |
function runBundle(b){
|
| 800 |
-
bootSourceLabel='Installed update '+(b.version||'');
|
| 801 |
/* Blob URLs rather than inline text: the browser keeps a real filename for
|
| 802 |
each source, so a stack trace from a patched build is still readable. */
|
| 803 |
var order=b.order&&b.order.length? b.order : MANIFEST;
|
|
@@ -846,7 +826,6 @@
|
|
| 846 |
}
|
| 847 |
if(decision.failedVersion)
|
| 848 |
console.warn('boot: patch '+decision.failedVersion+' rejected, using packaged build');
|
| 849 |
-
if(decision.failedVersion)bootSourceLabel='Recovery · packaged game';
|
| 850 |
runPackaged();
|
| 851 |
});
|
| 852 |
}).catch(runPackaged);
|
|
@@ -886,7 +865,7 @@
|
|
| 886 |
if(!secure) return;
|
| 887 |
window.__mfPwaDiag={supported:true,registered:false,controlled:!!navigator.serviceWorker.controller,error:null,updateError:null};
|
| 888 |
window.addEventListener('load',function(){
|
| 889 |
-
navigator.serviceWorker.register('./sw.js?v=1.33.
|
| 890 |
.then(function(reg){
|
| 891 |
window.__mfPwaDiag.registered=true;
|
| 892 |
window.__mfPwaDiag.scope=reg.scope;
|
|
|
|
| 30 |
otherwise reuse a stale source even after the installer or local preview
|
| 31 |
has changed, which made new settings appear to be missing until cache was
|
| 32 |
cleared manually. Patch bundles keep their content-addressed Blob URLs. */
|
| 33 |
+
var PACKAGED_REV='1.33.80';
|
| 34 |
/* Source-cache revision is deliberately independent from the user-facing
|
| 35 |
release number. Local/hotfix rebuilds of the same release must not reuse
|
| 36 |
an older gl.js merely because its ?v= version string is unchanged. */
|
|
|
|
| 549 |
});
|
| 550 |
}
|
| 551 |
|
|
|
|
| 552 |
function bootText(id,value){var el=document.getElementById(id);if(el)el.textContent=value;}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 553 |
function bootProgress(done,total,path,stage){
|
|
|
|
|
|
|
|
|
|
|
|
|
| 554 |
var verifying=stage==='verify',finished=total>0&&done>=total&&!verifying;
|
| 555 |
var clean=String(path||'').replace(/^\.\//,'').split('?')[0];
|
| 556 |
+
var phase=finished?'STARTING MASSFRONT':verifying?'VERIFYING INSTALLED UPDATE':
|
| 557 |
+
/engine\/gl\.js/.test(clean)?'INITIALIZING GRAPHICS':
|
| 558 |
+
/engine\/|assets\/data\//.test(clean)?'PREPARING WORLD SYSTEMS':
|
| 559 |
+
/audio|factions|story|tutorial/.test(clean)?'PREPARING GAME CONTENT':
|
| 560 |
+
/ui\/|intro|launcher|main\.js/.test(clean)?'PREPARING COMMAND INTERFACE':'PREPARING COMMAND SYSTEMS';
|
| 561 |
+
bootText('mfBootPct',total?Math.max(0,Math.min(total,done))+' / '+total:'STARTING');
|
| 562 |
bootText('mfBootPhase',phase);
|
| 563 |
var detail=/glrecover/.test(clean)?'Preparing graphics recovery and reconnect controls.':
|
| 564 |
/engine\//.test(clean)?'Loading terrain, models and visual systems.':
|
|
|
|
| 567 |
/ui\/|intro|launcher|main\.js/.test(clean)?'Preparing menus and command controls.':
|
| 568 |
/assets\/data\//.test(clean)?'Loading world and unit definitions.':'Preparing game rules and career systems.';
|
| 569 |
bootText('mfBootDetail',finished?'Preparing the first frame and launch interface.':verifying?'Checking the integrity of stored runtime files.':detail);
|
|
|
|
|
|
|
| 570 |
var bar=document.getElementById('mfBootBar'),fill=document.getElementById('mfBootFill');
|
| 571 |
+
if(bar&&bar.setAttribute){bar.setAttribute('aria-valuemin','0');bar.setAttribute('aria-valuemax',String(total||1));bar.setAttribute('aria-valuenow',String(done));bar.setAttribute('aria-valuetext',finished?'Game systems loaded; starting MASSFRONT':done+' of '+total+' game systems '+(verifying?'verified':'loaded'));}
|
| 572 |
if(fill&&fill.style)fill.style.width=(total?Math.max(0,Math.min(100,done/total*100)):0)+'%';
|
| 573 |
var cover=document.getElementById('mfBootCover');
|
| 574 |
+
if(cover){cover.setAttribute('data-progress','determinate');cover.setAttribute('aria-busy','true');}
|
|
|
|
| 575 |
}
|
|
|
|
| 576 |
function rendererGateIndex(order){
|
| 577 |
for(var i=0;i<order.length;i++)
|
| 578 |
if(String(order[i]||'').replace(/^\.\//,'')==='src/engine/gl.js') return i;
|
|
|
|
| 595 |
left--;
|
| 596 |
if(src)failedCount++;
|
| 597 |
bootProgress(total-left-failedCount,total,order&&order[i]);
|
| 598 |
+
if(failedCount){bootText('mfBootPhase','GAME FILE FAILED TO LOAD');bootText('mfBootDetail','Restart to retry loading installed content.');}
|
| 599 |
if(src) console.error('boot: failed',src);
|
| 600 |
if(i===gate){
|
| 601 |
gateFailed=!!src||window.__MF_GL_BOOT_FAILED===true;
|
| 602 |
if(gateFailed){
|
| 603 |
+
bootText('mfBootPhase','GRAPHICS INITIALIZATION NEEDS ATTENTION');
|
| 604 |
bootText('mfBootDetail','Use the graphics retry control to continue.');
|
| 605 |
console.warn('boot: renderer phase stopped after WebGL2 initialization failed');
|
| 606 |
clearBootShield();
|
|
|
|
| 628 |
appendRange(0,Math.min(total,gate+1));
|
| 629 |
}
|
| 630 |
function runPackaged(){
|
|
|
|
| 631 |
injectScripts(function(s,i){ s.src=MANIFEST[i]+'?v='+PACKAGED_SRC_REV; },
|
| 632 |
MANIFEST.length,rendererGateIndex(MANIFEST),MANIFEST);
|
| 633 |
}
|
|
|
|
| 644 |
function rangeFailure(path,reason){
|
| 645 |
if(stopped) return;
|
| 646 |
stopped=true;
|
| 647 |
+
bootText('mfBootPhase','RECOVERING PACKAGED GAME');
|
|
|
|
| 648 |
console.error('boot: failed',path,reason||'stored artifact unavailable');
|
| 649 |
clearBootShield();
|
| 650 |
try{if(typeof window.__MASSFRONT_CLEAR_INPUT_GUARD==='function')
|
|
|
|
| 698 |
var current=index++; executed++;
|
| 699 |
bootProgress(index,total,path);
|
| 700 |
if(current===gate&&window.__MF_GL_BOOT_FAILED===true){
|
| 701 |
+
bootText('mfBootPhase','GRAPHICS INITIALIZATION NEEDS ATTENTION');
|
| 702 |
console.warn('boot: renderer phase stopped after WebGL2 initialization failed');
|
| 703 |
clearBootShield();
|
| 704 |
try{if(typeof window.__MASSFRONT_CLEAR_INPUT_GUARD==='function')
|
|
|
|
| 749 |
return actual;
|
| 750 |
});
|
| 751 |
}).then(function(){
|
|
|
|
| 752 |
index=0;bootProgress(0,total);next();
|
| 753 |
}).catch(function(error){ rangeFailure('__runtime__',error&&error.message); });
|
| 754 |
return;
|
|
|
|
| 778 |
preflight(0);
|
| 779 |
}
|
| 780 |
function runBundle(b){
|
|
|
|
| 781 |
/* Blob URLs rather than inline text: the browser keeps a real filename for
|
| 782 |
each source, so a stack trace from a patched build is still readable. */
|
| 783 |
var order=b.order&&b.order.length? b.order : MANIFEST;
|
|
|
|
| 826 |
}
|
| 827 |
if(decision.failedVersion)
|
| 828 |
console.warn('boot: patch '+decision.failedVersion+' rejected, using packaged build');
|
|
|
|
| 829 |
runPackaged();
|
| 830 |
});
|
| 831 |
}).catch(runPackaged);
|
|
|
|
| 865 |
if(!secure) return;
|
| 866 |
window.__mfPwaDiag={supported:true,registered:false,controlled:!!navigator.serviceWorker.controller,error:null,updateError:null};
|
| 867 |
window.addEventListener('load',function(){
|
| 868 |
+
navigator.serviceWorker.register('./sw.js?v=1.33.80-shell1',{scope:'./',updateViaCache:'none'})
|
| 869 |
.then(function(reg){
|
| 870 |
window.__mfPwaDiag.registered=true;
|
| 871 |
window.__mfPwaDiag.scope=reg.scope;
|
index.html
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|