@lewismoten/gamemaker-sandbox-archives 0.0.0-stage → 3.2.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.
@@ -0,0 +1,599 @@
1
+ import { normalize as K } from "@lewismoten/gamemaker-sandbox-engine/core/gameFiles";
2
+ import { parseGame as W, ADV_EXTS as E } from "@lewismoten/gamemaker-sandbox-engine/formats/game";
3
+ import { md5Hex as F } from "../player/md5.js";
4
+ import { fromCp437 as N } from "@lewismoten/gamemaker-sandbox-engine/text/cp437";
5
+ import { crc32 as V } from "../zip.js";
6
+ import { patchEntry as P, writePatch as H, writeStock as X, patchProblem as J, isStock as O } from "@lewismoten/gamemaker-sandbox-engine/player/patchRules";
7
+ import { extKind as G, extValueProblem as j, extId as I, withoutExtensions as S, renamedExtensions as U, EXT_KINDS as $, extensionClashes as _ } from "@lewismoten/gamemaker-sandbox-engine/player/fileExtensions";
8
+ import { r as nn, p as tn, t as en } from "../applyPatches-yRE1fvi0.js";
9
+ import { a as Tn } from "../applyPatches-yRE1fvi0.js";
10
+ import { rewriteNames as dn } from "./extensionNames.js";
11
+ const h = 128, M = [
12
+ {
13
+ id: "1.0",
14
+ size: 82803,
15
+ md5: "17ee7d6c3d3cc2fae33726e2589764a5",
16
+ owner: [77976, 40],
17
+ version: 78523,
18
+ about: [
19
+ 78497,
20
+ 78523,
21
+ 78549,
22
+ 78579,
23
+ 78609,
24
+ 78639,
25
+ 78670,
26
+ 78701,
27
+ 78732,
28
+ 78763,
29
+ 78794,
30
+ 78825,
31
+ 78856,
32
+ 78867,
33
+ 78898,
34
+ 78929,
35
+ 78960,
36
+ 78991,
37
+ 79022,
38
+ 79053,
39
+ 79084,
40
+ 79115
41
+ ],
42
+ text: {
43
+ "str.menu.play": [78327, 4],
44
+ "str.menu.instructions": [78332, 17],
45
+ "str.menu.storyline": [78350, 14],
46
+ "str.menu.credits": [78365, 11],
47
+ "str.menu.highScores": [78377, 18],
48
+ "str.menu.quit": [78396, 4],
49
+ "str.menu.noStoryline": [78245, 30, "No game-specific storyline. "],
50
+ "str.hiscore.title": [81544, 30, " Top Ten Scores"],
51
+ "str.hiscore.congrats": [81408, 21, " Congratulations!"],
52
+ "str.hiscore.enterName": [81482, 17, "Enter Your Name: "],
53
+ "str.invent.score": [79203, 14],
54
+ "str.invent.money": [79218, 13],
55
+ "str.invent.hitpoints": [79232, 13],
56
+ "str.invent.lives": [79246, 13],
57
+ "str.invent.time": [79260, 37],
58
+ "str.drop.title": [79824, 21],
59
+ "str.drop.help1": [79846, 25],
60
+ "str.drop.help2": [79872, 25],
61
+ "str.drop.help3": [79898, 25],
62
+ "str.text.missingTitle": [79301, 13],
63
+ "str.text.missingFile": [79315, 14],
64
+ "str.text.missingTail": [79330, 28]
65
+ },
66
+ ext: { gam: [78086], bkd: [80820], txt: [78240, 78281, 78322, 78406, 78416], his: [81400], sav: [78421, 78489] },
67
+ crc: "bbAzWAyz9kvjSn1XpebI2tN8mcTcV1bgEl0D6VrNWcGsevzvamrcxnhaZOm2tCMyQDy/FjjP0h09PHnv5Mxqcp8infqd+p36uwBK3xnQ/7W85Kby0wPLW7C5BMfiXYm1x2QxBcl/Tnqrji3mUBw6VnKYO2FgC01MxucmKF5AzBDnIQ2OqCIV2/sr8Npr0cMWV82c2d8sKLMboNDLye5M4WGCQqdafmFiOVThFkH3O4dbeMrmQCZbEi6qV9op2tTtkRofIeu0PUeD0dJjBWy9t7eUbs+IglW9LKV8GeXiJ4N7DFHNOIskGK1k097JZ4TvIYBE7X3b/QYEKQueOypn/mddNx6QTnhzgugrnEL3ZdrLZOpscf/MfR5FnpI1s2DV9ez7B86JaaZQomMn3qMDPytzb8xCwAUE4dXA4T4FnfqVRAo60scG/DYHlaiVL3ZT87p8HTpHPXRPpQcPRwmPlpGLmr9JtAE7lSdGR+r30Hcsgtf3TRS8e26A0JFRYRvcRWPagc+Q+iQW0QKxybjLWOU3MiNMD+ulQaSOIEuYokGw/9irGrfH3xFDgeYIK7Ia0FPr63ij7PqxYKQ417LKWNWt7yA1iVXS/DV81Au0BCAyLBH2l2gGBtBZZ/VzCBORnUHrV83cHo/qsS3M4IMrcBEVSLlUrGPz1u2ATTi+m9IIkMInnUgxvk3uokShmcjzhv9rHvUBpDi43Fui5WM+6tnE7duv3FVgSfTIiqesK+PFpgKVGgCjmMF9G/xFJU9EtJg9lNXiLOvLLJ10antnMLy4yiNkazeaqO9+/SJt+VSe+eRlYa6bVMshkHXaM1mxfXgBEqxYlJtyJeq2jKcQfABQDlg48DVgcbEE0Q+HdobI3WOz9bQjrfX2OKcfQPQJL9rw2sCycd8AH2CTK7DFtosxc0TTSRVqwrk8buOAA9CHbbDlChYnV5YJEhTdkeAswbe3JkCEzgWOKcuBDlKb8aEJgbguK6DH/eWwwHbca+00hckF0FiR9p/BJ7/ZmSEJJTYThMXfL6bV8+lptMUqfzghwwnswfnZHGBsPKUmr63Mh//iMdB9BQ7caBXwSJCFDxSiQUrhfXFpDB6VWEFSg0bC39SiiQCdCRmR3sqIOr6eHDj5lQCXwKoQhSY5s9ouBty9gRnYXg28U4W6/sCMl3QW3QhKHOC+a9rPePHpUg6bP3p8WWyOsR+2IRH1jtfYXI3BBx5soW5QuHcVohZpjSpOnLkcdkwskyL5mC0dRBBM1CQL5HbREDVe0kohwlWjPtL7dUbFXxYBlVWbqgnbEKGaqa98hSfPLbC1FEQbkoQtGaUd8ejOQ6SDNxT7QRYvfRa2ZHR9I7eoi1jOmggbLl6b29bn9LeWg7LuuGcbfuZV+jUF77dCjMKeygLOnzhITFgEgLhi5tOTVRSR/0myLtetB3uvxzBMjiuha+4Dfrolj8NXHp8MTxvvaNJ7/rZAQx02xG3HlXXTqWfdwoq4iRBYqpZd8Q9cIHkM94YfdElYtfuoRNY9RuBO0KkE0kZN9QU+dgCg3s/fV0G5gafHmnyQ58SaE2c+uWiryKnAL5zhy0vCmwqEfDExBZ0wU09KPRvdSZ8tFssebOPUnhui9VhT8lMQwfBbviRKHTRQ+vl+90jg2TpOl3PcXNGcPZHlANtFEuf+XGcixlIumqxbVWLX3Ao37A9kkSmGSeteXkee9SMXbWbaQOOQklKz+w=="
68
+ },
69
+ {
70
+ id: "1.04",
71
+ size: 83136,
72
+ md5: "e94cb3d4507ad2c3030677dd3a625e7f",
73
+ owner: [77955, 40],
74
+ version: 78542,
75
+ about: [
76
+ 78516,
77
+ 78542,
78
+ 78568,
79
+ 78598,
80
+ 78628,
81
+ 78658,
82
+ 78689,
83
+ 78720,
84
+ 78751,
85
+ 78782,
86
+ 78813,
87
+ 78844,
88
+ 78875,
89
+ 78886,
90
+ 78917,
91
+ 78948,
92
+ 78979,
93
+ 79010,
94
+ 79041,
95
+ 79072,
96
+ 79103,
97
+ 79134,
98
+ 79165
99
+ ],
100
+ text: {
101
+ "str.menu.play": [78346, 4],
102
+ "str.menu.instructions": [78351, 17],
103
+ "str.menu.storyline": [78369, 14],
104
+ "str.menu.credits": [78384, 11],
105
+ "str.menu.highScores": [78396, 18],
106
+ "str.menu.quit": [78415, 4],
107
+ "str.menu.noStoryline": [78264, 30, "No game-specific storyline. "],
108
+ "str.hiscore.title": [81878, 30, " Top Ten Scores"],
109
+ "str.hiscore.congrats": [81742, 21, " Congratulations!"],
110
+ "str.hiscore.enterName": [81816, 17, "Enter Your Name: "],
111
+ "str.invent.score": [79253, 14],
112
+ "str.invent.money": [79268, 13],
113
+ "str.invent.hitpoints": [79282, 13],
114
+ "str.invent.lives": [79296, 13],
115
+ "str.invent.time": [79310, 37],
116
+ "str.drop.title": [79874, 21],
117
+ "str.drop.help1": [79896, 25],
118
+ "str.drop.help2": [79922, 25],
119
+ "str.drop.help3": [79948, 25],
120
+ "str.text.missingTitle": [79351, 13],
121
+ "str.text.missingFile": [79365, 14],
122
+ "str.text.missingTail": [79380, 28]
123
+ },
124
+ ext: { gam: [78091], bkd: [80878], txt: [78259, 78300, 78341, 78425, 78435], his: [81734], sav: [78440, 78508] },
125
+ crc: "uxNdTeEJrPO8rV6Vxuh7TF92pgqXMISAE9YQP6Ghp2a4N5NyKTH19GgiST1wcayiEEise7+hBnsO0AL41pNLjWF9X3Cd+p36bqCOccmR/7VJTQJ2qHDiH3GHBMccvom130l85/dDs4sJUC3mUBxIY3KYO2FgC01MxucmKKh2zBBoYQ2OqCIV277Tct9r0cMWdjfRAArjEKKysUfKKcq2ItW9ZTpEnNmvOVTEX4lnrMsJotJ0S7LHQRF18EUp2rlutr6XNZn8Yc3WiZ6eX938yk6XcC3S/MAsNkd8GYtfXyVMDVQVOIv8L61kNaHK/O+WIYBE7c0O3UQEKQueurB7MGddnGqH6N4QgugrnEheKpp2EHMKcf/MfR5FYAd3VA43g27cylle0jYN+p5krF45cYF8EO7RejcNBQIQd7Fg+uKd+neXpnAC2a0HmqDG28CdqGPIDZIzhn/7PzyFTzXKj3bcQ7c5fVOgXrwzdD9tdxT4h5SrnZnHnW8Dxvfgl4HJuPx06D3dqN5uDjLTnQT86cdvGMAnVuov123//Bh4qsXDd2DYZ8ypLq/l3eJEzUkj01+C2Sh2j5JWi3bwxnr2OrEZz+XcjMUN9stpyl8kD/JFza8aDDP7t1jztiYHkPdZnrPHndsq1lGJZQ4O3CZP78AavZuQveIbmDc4DDaezSBRcMn8WBcoD//k/zYfRqMWGdWHrLQzSv73o1hyhXmWz4y40k8lZW+5y/aloyqSRluRPmuSkTUVlTc62C3qRUcdV2sbMjRXTLCjuEeKYU8mSmSDbiYv/APzbD4utof6Uevm9WFEnynVLEmrFV8Cmk7FzA6wU1MLP37+6ZCzYcdf3FSXx6sZnnP3yFlBgkju4DqrYRpJQDqTEXlYaWW9sJCzESA61ge8zfqwHJvGf0CMqesRLk7pkM4GM6j81t93h0vwxKoAqK9/7mi93w9WyN1J/VFz2w36MtaPdYomSvWL5CLTvJ+YkvmVh3Y2CFrJyYpvRo5nkyJA8lfqlZcHVRa+h8SHasbRbZNgmbI3doVLT2k+3xsADUzfe+eXpjmIwmXSXLnIm+AyuP1iJCapGe8v7Y0LPmoo80fm6DMlLibD1wNCuf5ahP1NvLuCPk+h1kInQisvK/RxsFeOOQ01219WEcms6013WcRNWkE0mTh1IpfTGdohFO5vdND6BIDN6IsDd5j/BbCyG/Cq7T21Gtd2LqjxfEoob7xoeMuqyz/lI+KKKh30+8Mh83eGlJDR17eGcY/IBe64Xl9w2fSp7kG4/6f8/TVR3sR6T39+NjG7PV2KwfmgY7P2iY1tRucTApiNzjh+5ZUOSnw3ure/8iJDuM96Fcq8PaDCn6orZTV1eOn4tRdxPGgK2l43y39gGdrM0FOIH1BePg6puXG98SituSUS/ZF/DwCmPpEyDYpx2I6r/KKp5wb7eSAig+7M/JZHfA+Nn6gnEq/i+kSiI7w7o4lCus0ipxbBwjB8T6iU/kiKGprh77jMnFhd0yLZKASNGxNap66aUKWrSdxvtSVPB2iwkRF4Zq0q956YAQALq3mwNY00aoPqSKPHX8GtdzuLl0zw3Vtptu859mZ1hWM2lrAObH+Ksit2rPSZwPh5F5meW31ofvDiXiXFN4nEzHNL9HFihUFTVsLvegRNCACmgMGJM17orTAEXIJkGfRlPFuCTUiOLeT3ppjWj9SuQN6hyspvN+oGpgfJUd86b9tcidpHIg=="
126
+ },
127
+ {
128
+ id: "2.00",
129
+ size: 154980,
130
+ md5: "6b80ef5f4ce8394e10d68334b6843f27",
131
+ owner: [6144, 52],
132
+ version: 129361,
133
+ about: [
134
+ 129335,
135
+ 129361,
136
+ 129387,
137
+ 129417,
138
+ 129447,
139
+ 129477,
140
+ 129508,
141
+ 129539,
142
+ 129570,
143
+ 129601,
144
+ 129632,
145
+ 129663,
146
+ 129694,
147
+ 129705,
148
+ 129736,
149
+ 129767,
150
+ 129798,
151
+ 129829,
152
+ 129860,
153
+ 129891,
154
+ 129922,
155
+ 129953,
156
+ 129984
157
+ ],
158
+ text: {
159
+ "str.menu.play": [129036, 4],
160
+ "str.menu.instructions": [129041, 17],
161
+ "str.menu.storyline": [129059, 14],
162
+ "str.menu.credits": [129074, 11],
163
+ "str.menu.highScores": [129086, 18],
164
+ "str.menu.quit": [129105, 4],
165
+ "str.menu.noStoryline": [128954, 30, "No game-specific storyline. "],
166
+ "str.hiscore.title": [153606, 30, " Top Ten Scores"],
167
+ "str.hiscore.congrats": [153470, 21, " Congratulations!"],
168
+ "str.hiscore.enterName": [153544, 17, "Enter Your Name: "],
169
+ "str.invent.score": [130073, 14],
170
+ "str.invent.money": [130088, 13],
171
+ "str.invent.hitpoints": [130102, 13],
172
+ "str.invent.lives": [130116, 13],
173
+ "str.invent.time": [130130, 37],
174
+ "str.load.done": [129175, 16],
175
+ "str.save.done": [129323, 11],
176
+ "str.save.failed": [129298, 24],
177
+ "str.drop.title": [130657, 21],
178
+ "str.drop.help1": [130679, 25],
179
+ "str.drop.help2": [130705, 25],
180
+ "str.drop.help3": [130731, 25],
181
+ "str.text.more": [130229, 7],
182
+ "str.text.missingTitle": [130171, 13],
183
+ "str.text.missingFile": [130185, 14],
184
+ "str.text.missingTail": [130200, 28],
185
+ "str.missing.title": [130855, 30]
186
+ },
187
+ ext: { gam: [128761], bkd: [152359], txt: [128949, 128990, 129031, 129125, 129135, 130027, 130037], voc: [132313], his: [153462], sav: [129140, 129290] },
188
+ crc: "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nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqi9536nfqd+p36nfqhRJ36nfqd+p36nfqd+qddTSf6E3kYMWZQ59KbdfBlvMXnkCarEKAS124MtnBJ9+IYa5RNCmTQyj2q/L6rC536nfqd+p36nfqd+p36KCzy+5TNIZCd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfprWZW+2Oh21LKdnfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36VHyDA0DYe4JgeBFqf/bqBRFclW4HKfVC6gRAK7gax19PMZ36nfqYgj8DbEss0Q=="
189
+ },
190
+ {
191
+ id: "2.02",
192
+ size: 155156,
193
+ md5: "03f0c0552a735ebb32430be18a85cb5e",
194
+ owner: [6144, 52],
195
+ version: 129537,
196
+ about: [
197
+ 129511,
198
+ 129537,
199
+ 129563,
200
+ 129593,
201
+ 129623,
202
+ 129653,
203
+ 129684,
204
+ 129715,
205
+ 129746,
206
+ 129777,
207
+ 129808,
208
+ 129839,
209
+ 129870,
210
+ 129881,
211
+ 129912,
212
+ 129943,
213
+ 129974,
214
+ 130005,
215
+ 130036,
216
+ 130067,
217
+ 130098,
218
+ 130129,
219
+ 130160
220
+ ],
221
+ text: {
222
+ "str.menu.play": [129212, 4],
223
+ "str.menu.instructions": [129217, 17],
224
+ "str.menu.storyline": [129235, 14],
225
+ "str.menu.credits": [129250, 11],
226
+ "str.menu.highScores": [129262, 18],
227
+ "str.menu.quit": [129281, 4],
228
+ "str.menu.noStoryline": [129130, 30, "No game-specific storyline. "],
229
+ "str.hiscore.title": [153782, 30, " Top Ten Scores"],
230
+ "str.hiscore.congrats": [153646, 21, " Congratulations!"],
231
+ "str.hiscore.enterName": [153720, 17, "Enter Your Name: "],
232
+ "str.invent.score": [130249, 14],
233
+ "str.invent.money": [130264, 13],
234
+ "str.invent.hitpoints": [130278, 13],
235
+ "str.invent.lives": [130292, 13],
236
+ "str.invent.time": [130306, 37],
237
+ "str.load.done": [129351, 16],
238
+ "str.save.done": [129499, 11],
239
+ "str.save.failed": [129474, 24],
240
+ "str.drop.title": [130833, 21],
241
+ "str.drop.help1": [130855, 25],
242
+ "str.drop.help2": [130881, 25],
243
+ "str.drop.help3": [130907, 25],
244
+ "str.text.more": [130405, 7],
245
+ "str.text.missingTitle": [130347, 13],
246
+ "str.text.missingFile": [130361, 14],
247
+ "str.text.missingTail": [130376, 28],
248
+ "str.missing.title": [131031, 30]
249
+ },
250
+ ext: { gam: [128937], bkd: [152535], txt: [129125, 129166, 129207, 129301, 129311, 130203, 130213], voc: [132489], his: [153638], sav: [129316, 129466] },
251
+ crc: "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nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+odZnfqd+p36nfqd+ofVnfqd+p36nfqd+p36nfopgoyjt8HpgJhF+SEg7X6EI8fPmfKrfFCAdzGgxJ4ANvXMDGdIsBZ/S7CikIPc1Hed+p36nfqd+p36nfqd+omTc3qwhsvgnfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+vYI8UswxPGTq8Kd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+ikcWaoAwqwdburRMj4KNogSgjTrlZiD7TnYK2hNBVZW8g+d+pGUcTsZuzJWZ+4="
252
+ },
253
+ {
254
+ id: "2.04",
255
+ size: 119074,
256
+ md5: "71db32c11731289ca92aace78a51acb3",
257
+ owner: [6144, 52],
258
+ version: 92881,
259
+ about: [
260
+ 92855,
261
+ 92881,
262
+ 92907,
263
+ 92937,
264
+ 92967,
265
+ 92997,
266
+ 93028,
267
+ 93059,
268
+ 93090,
269
+ 93121,
270
+ 93152,
271
+ 93183,
272
+ 93214,
273
+ 93225,
274
+ 93256,
275
+ 93287,
276
+ 93318,
277
+ 93349,
278
+ 93380,
279
+ 93411,
280
+ 93442,
281
+ 93473,
282
+ 93504
283
+ ],
284
+ text: {
285
+ "str.menu.play": [92556, 4],
286
+ "str.menu.instructions": [92561, 17],
287
+ "str.menu.storyline": [92579, 14],
288
+ "str.menu.credits": [92594, 11],
289
+ "str.menu.highScores": [92606, 18],
290
+ "str.menu.quit": [92625, 4],
291
+ "str.menu.noStoryline": [92474, 30, "No game-specific storyline. "],
292
+ "str.hiscore.title": [96972, 30, " Top Ten Scores"],
293
+ "str.hiscore.congrats": [96836, 21, " Congratulations!"],
294
+ "str.hiscore.enterName": [96910, 17, "Enter Your Name: "],
295
+ "str.invent.score": [93593, 14],
296
+ "str.invent.money": [93608, 13],
297
+ "str.invent.hitpoints": [93622, 13],
298
+ "str.invent.lives": [93636, 13],
299
+ "str.invent.time": [93650, 37],
300
+ "str.load.done": [92695, 16],
301
+ "str.save.done": [92843, 11],
302
+ "str.save.failed": [92818, 24],
303
+ "str.drop.title": [94177, 21],
304
+ "str.drop.help1": [94199, 25],
305
+ "str.drop.help2": [94225, 25],
306
+ "str.drop.help3": [94251, 25],
307
+ "str.text.more": [93749, 7],
308
+ "str.text.missingTitle": [93691, 13],
309
+ "str.text.missingFile": [93705, 14],
310
+ "str.text.missingTail": [93720, 28],
311
+ "str.missing.title": [94375, 30]
312
+ },
313
+ ext: { gam: [92281], bkd: [95725], txt: [92469, 92510, 92551, 92645, 92655, 93547, 93557], voc: [94754], his: [96828], sav: [92660, 92810] },
314
+ crc: "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"
315
+ },
316
+ {
317
+ id: "3.00",
318
+ size: 160598,
319
+ md5: "fcaf47d50ececa0b59cd22b3fae3cda3",
320
+ version: 153773,
321
+ about: [
322
+ 153747,
323
+ 153773,
324
+ 153799,
325
+ 153829,
326
+ 153859,
327
+ 153889,
328
+ 153920,
329
+ 153951,
330
+ 153982,
331
+ 154013,
332
+ 154044,
333
+ 154075,
334
+ 154106,
335
+ 154117,
336
+ 154148,
337
+ 154179,
338
+ 154210,
339
+ 154241,
340
+ 154272,
341
+ 154303,
342
+ 154334,
343
+ 154365
344
+ ],
345
+ crc: "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RMMimgxwHhuHhGBetHGC8CD8llOLhb4pMFhUzaezQuqXwXply9Ho251w7zGBtwLhQfTgYxEtZ/wJX1JviaQ8aDyl476W89duLtww/v1xh7JSTy5j5d/KBayOwALGVy0qHEVFnXGu6YcyVRSmueAw8d+s+fYAtITtEWctxVLKJg5tlE43rnBTPFd7vxgbq3RHxpk5s/mwZyGbgMfp55Kh5yuBIng9AvEaHuszlP4qcnq8/cDXFD5wXGtxBUHYRvzEdOv/C3MByviCIMOzmAareYeacKXcTROygxnrkQPBouTp+Tq0wtkU0y5GUtl11l0lx4vQgauIbNKMbK02GSyfWSt29DhJEA3wAWQ8pp36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfqd+p36nfp31PiuH8x+6beRG/BDwxXfGepj6bOv4qBZYEoJjv8u2G/LSdbYqCxf/vlJN3oIxN8xQZ9aNCdEQYCh5icdZ8MabZbJVjS9k+cLCuViYN3FBCLPLMB0qTBDmTiWZNho/2mj0gHq7+Gd+nVJnV9uGesyso4KcBGhpyBXh98Wd076WmyPDU4="
346
+ },
347
+ {
348
+ id: "3.00-playgame",
349
+ size: 163130,
350
+ md5: "118173fc449b85a7871895c231e299ab",
351
+ version: 156220,
352
+ about: [
353
+ 156194,
354
+ 156220,
355
+ 156246,
356
+ 156276,
357
+ 156306,
358
+ 156336,
359
+ 156367,
360
+ 156398,
361
+ 156429,
362
+ 156460,
363
+ 156491,
364
+ 156522,
365
+ 156553,
366
+ 156564,
367
+ 156595,
368
+ 156626,
369
+ 156657,
370
+ 156688,
371
+ 156719,
372
+ 156750,
373
+ 156781,
374
+ 156812
375
+ ],
376
+ crc: "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"
377
+ }
378
+ ], fn = "Recreational Software Designs", T = /^\s*Version (\d\.\d{1,2})\s*$/, pn = (n) => M.find((t) => t.id === n);
379
+ function m(n) {
380
+ return n === "3.00-playgame" ? "Game-Maker 3.00 (PLAYGAME.EXE)" : M.some((t) => t.id === n) ? `Game-Maker ${n}` : "an unknown Game-Maker build";
381
+ }
382
+ function y(n, t, f = 80) {
383
+ let s = "";
384
+ for (let o = t; o < n.length && n[o] && s.length < f; o++) s += String.fromCharCode(n[o]);
385
+ return s;
386
+ }
387
+ function sn(n, t) {
388
+ n: for (let f = 0; f + t.length <= n.length; f++) {
389
+ for (let s = 0; s < t.length; s++) if (n[f + s] !== t.charCodeAt(s)) continue n;
390
+ return f;
391
+ }
392
+ return -1;
393
+ }
394
+ function Q(n, t) {
395
+ const f = n.slice();
396
+ return t.owner && f.fill(0, t.owner[0], t.owner[0] + t.owner[1]), f;
397
+ }
398
+ function R(n, t) {
399
+ return t.about.map((f) => y(n, f, 40));
400
+ }
401
+ function rn(n) {
402
+ for (const t of n) {
403
+ const f = /(?:copyright|\(c\))\s*\d{4}\s+by\s+(.+)/i.exec(t);
404
+ if (f) return f[1].trim();
405
+ }
406
+ return n.map((t) => t.trim()).find((t) => /[A-Za-z]{2}/.test(t));
407
+ }
408
+ function x(n, t) {
409
+ const f = Uint8Array.from(atob(t.crc), (r) => r.charCodeAt(0)), s = Q(n, t), o = [];
410
+ for (let r = 0; r * h < s.length; r++) {
411
+ const d = V(s.subarray(r * h, (r + 1) * h));
412
+ ((d & 255) !== f[r * 2] || (d >> 8 & 255) !== f[r * 2 + 1]) && o.push(r);
413
+ }
414
+ return o;
415
+ }
416
+ function on(n, t) {
417
+ const f = new Set(t);
418
+ return n.about.some((s) => f.has(Math.floor(s / h)));
419
+ }
420
+ function qn(n) {
421
+ const t = String.fromCharCode(...n.subarray(0, 120));
422
+ return /PKLITE|PKlite|LZ09|LZ91/.test(t);
423
+ }
424
+ function cn(n) {
425
+ const t = [], f = sn(n, fn), s = f >= 26 ? y(n, f - 26, 30) : void 0, o = s !== void 0 ? T.exec(s)?.[1] : void 0, r = M.filter((d) => d.size === n.length);
426
+ for (const d of r)
427
+ if (F(Q(n, d)) === d.md5)
428
+ return t.push(
429
+ `${n.length.toLocaleString("en-US")} bytes and every byte as ${m(d.id)}’s own copy has it${d.owner ? " (its owner field aside)" : ""}`
430
+ ), { build: d.id, label: m(d.id), confidence: "high", reasons: t, stock: !0, versionLine: y(n, d.version, 30).trim() };
431
+ if (r.length) {
432
+ const d = r[0], e = y(n, d.version, 30), p = e.trim();
433
+ t.push(`${n.length.toLocaleString("en-US")} bytes, the size of ${m(d.id)}’s player`), t.push(`${x(n, d).length} of its ${Math.ceil(n.length / h)} 128-byte blocks differ from the stock copy`);
434
+ const i = { build: d.id, label: m(d.id), confidence: "medium", reasons: t, stock: !1, versionLine: p };
435
+ return f === d.version + 26 && T.exec(e)?.[1] === d.id.replace("-playgame", "") ? (t.push(`its About text says “${p}” where that build has it`), i.confidence = "high") : o ? t.push(`its About text says “${N(s).trim()}”${f === d.version + 26 ? ", an edited version line" : " at another offset"}`) : (i.aboutAuthor = rn(R(n, d)), t.push(
436
+ `RSD’s About text is replaced${i.aboutAuthor ? ` (by ${N(i.aboutAuthor)}, as the new text says)` : ""}, so no version line backs the size`
437
+ )), i;
438
+ }
439
+ if (o) {
440
+ const d = M.find((e) => e.id === o);
441
+ return t.push(`no known build is ${n.length.toLocaleString("en-US")} bytes, but its About text says “${s.trim()}”`), {
442
+ build: "unknown",
443
+ label: d ? `${m(d.id)} (a copy of another size)` : m("unknown"),
444
+ confidence: "low",
445
+ reasons: t,
446
+ stock: !1,
447
+ versionLine: s.trim()
448
+ };
449
+ }
450
+ return t.push(
451
+ qn(n) ? "it is compressed (PKLITE or LZEXE), so its size and text can’t be compared" : `no known build is ${n.length.toLocaleString("en-US")} bytes and it has no Game-Maker version line`
452
+ ), { build: "unknown", label: m("unknown"), confidence: "low", reasons: t, stock: !1 };
453
+ }
454
+ function xn(n, t) {
455
+ const f = [], s = t.some((e) => e.length > 4 && e[0] === 71 && e[1] === 77), o = (e) => e.toLowerCase().replace(/^.*\./, ""), r = n.some((e) => o(e) === "cmf"), d = n.some((e) => /(^|[\\/])gmtitle\.gif$/i.test(e));
456
+ return s ? (f.push("its .gam starts with the “GM” header Game-Maker 3.00 writes"), { estimate: "3.00", confidence: "high", reasons: f }) : (t.length && f.push("its .gam has the pre-3.00 layout, which every build from 1.0 to 2.04 wrote alike"), r && f.push("it has CMF songs, which the 1.0 and 1.04 players can’t play (they have no FM music code)"), d && f.push("it has gmtitle.gif, the title picture the players before 3.00 show first"), r ? { estimate: "2.00 or later, before 3.00", confidence: t.length ? "medium" : "low", reasons: f } : t.length || d ? { estimate: "before 3.00", confidence: "medium", reasons: f } : (f.push("nothing in the folder names a build"), { estimate: "unknown", confidence: "low", reasons: f }));
457
+ }
458
+ function an(n, t) {
459
+ const f = {}, s = n.slice();
460
+ for (const [o, [r, d, e]] of Object.entries(t.text ?? {})) {
461
+ const p = P(o);
462
+ if (!p || p.kind !== "text" && p.kind !== "format") continue;
463
+ const i = e ?? p.stock.padEnd(d, " ");
464
+ let c = !0;
465
+ for (let q = 0; q < d; q++) c &&= n[r + q] === i.charCodeAt(q);
466
+ if (c) continue;
467
+ let u = "";
468
+ for (let q = 0; q < d && n[r + q]; q++) u += String.fromCharCode(n[r + q]);
469
+ const a = e ? u.trim() : u.trimEnd();
470
+ if (!J(p, a)) {
471
+ O(p, a) || (f[o] = a);
472
+ for (let q = 0; q < d; q++) s[r + q] = i.charCodeAt(q);
473
+ }
474
+ }
475
+ for (const [o, r] of Object.entries(t.ext ?? {})) {
476
+ const d = r.map((e) => n[e] === 46 ? String.fromCharCode(n[e + 1], n[e + 2], n[e + 3]).toLowerCase() : "");
477
+ if (!(!d[0] || d.some((e) => e !== d[0]) || d[0] === o || j(o, d[0]))) {
478
+ f[I(o)] = d[0];
479
+ for (const e of r) for (let p = 0; p < 3; p++) s[e + 1 + p] = o.charCodeAt(p);
480
+ }
481
+ }
482
+ return { patches: f, reverted: s };
483
+ }
484
+ function ln(n, t) {
485
+ const f = n.slice(), s = n.slice();
486
+ for (const [o, r] of Object.entries(t)) {
487
+ const d = P(o);
488
+ if (!d) continue;
489
+ H(s, d, r);
490
+ const e = tn(o);
491
+ e.every((p) => s[p] === n[p]) && X(f, d);
492
+ for (const p of e) s[p] = n[p];
493
+ }
494
+ for (const o of Object.keys(t)) {
495
+ const r = G(o);
496
+ if (r) for (const d of r.offsets) for (let e = 0; e < 3; e++) f[d + 1 + e] = r.ext.charCodeAt(e);
497
+ }
498
+ return f;
499
+ }
500
+ function un(n, t) {
501
+ let f = {}, s = n;
502
+ t.id === "3.00" ? (f = nn(n)?.patches ?? {}, s = ln(n, f)) : t.text && ({ patches: f, reverted: s } = an(n, t));
503
+ const o = Q(n, t), r = [];
504
+ let d = [];
505
+ const e = () => {
506
+ if (!d.length) return;
507
+ const p = d[0] * h;
508
+ r.push({ offset: p, data: en(o.subarray(p, Math.min(o.length, (d[d.length - 1] + 1) * h))) }), d = [];
509
+ };
510
+ for (const p of x(s, t))
511
+ d.length && p !== d[d.length - 1] + 1 && e(), d.push(p);
512
+ return e(), { patches: f, regions: r };
513
+ }
514
+ const C = (n) => (/\.([^.]*)$/.exec(n)?.[1] ?? "").toLowerCase(), L = (n) => K(n).replace(/\.[^.]*$/, "");
515
+ function mn(n, t) {
516
+ return n === 0 ? t === 1 || t === 3 || t === 5 ? "cmf" : t === 11 ? "rec" : void 0 : n === 1 ? t === 1 || t === 3 ? "cmf" : void 0 : t < 9 ? E[t] : void 0;
517
+ }
518
+ const hn = /* @__PURE__ */ new Set(["gam", "pal", "map", "bbl", "mon", "mbl", "chr", "cbl", "snd", "cmf", "gif", "bkd", "fli", "txt", "lst", "voc", "rec", "his", "sav"]);
519
+ function gn(n, t) {
520
+ return n === "fli" ? t.length >= 6 && t[5] === 175 && (t[4] === 17 || t[4] === 18) : n === "gif" ? t.length >= 4 && String.fromCharCode(...t.subarray(0, 4)) === "GIF8" : !0;
521
+ }
522
+ function bn(n, t) {
523
+ const f = /* @__PURE__ */ new Map();
524
+ for (const [e, p] of Object.entries(t)) p && f.set(p.slice(1), e.slice(1));
525
+ const s = t[".gam"] === "", o = n.names().filter((e) => f.get(C(e)) === "gam" || s && !e.includes(".")), r = /* @__PURE__ */ new Map();
526
+ for (const e of o)
527
+ try {
528
+ W(n.get(e)).scenes.forEach(
529
+ (p, i) => p.files.forEach((c, u) => {
530
+ const a = C(c), q = mn(i, u);
531
+ c && q && !hn.has(a) && !f.has(a) && (r.get(a) ?? r.set(a, /* @__PURE__ */ new Set()).get(a)).add(q);
532
+ })
533
+ );
534
+ } catch {
535
+ }
536
+ for (const [e, p] of r) p.size === 1 && f.set(e, [...p][0]);
537
+ const d = /* @__PURE__ */ new Map();
538
+ for (const e of n.names()) {
539
+ const p = C(e), i = f.get(p) ?? (s && o.includes(e) ? "gam" : void 0);
540
+ i && gn(i, n.get(e)) && d.set(e, p ? `${e.slice(0, -p.length)}${i}` : `${e}.gam`);
541
+ }
542
+ for (const [e, p] of d) {
543
+ const i = n.get(e);
544
+ n.delete(e), n.set(p, i);
545
+ }
546
+ for (const e of n.names()) /\.(gam|lst|bkd)$/.test(e) && n.set(e, dn(n.get(e), f));
547
+ return f;
548
+ }
549
+ const yn = (n) => Object.fromEntries(
550
+ Object.entries(n).filter(([t]) => G(t)).map(([t, f]) => [`.${G(t).ext}`, `.${f}`])
551
+ );
552
+ function Bn(n, t) {
553
+ if (!t.length) return;
554
+ const f = t.map((l) => ({ p: l, id: cn(l.bytes) })), s = f.filter((l) => l.id.build !== "unknown"), o = new Set(n.names().map(L)), r = (l) => (o.has(L(l.p.name)) ? 0 : 2) + (l.id.build === "3.00" ? 0 : 1), d = [...s.length ? s : f].sort((l, w) => r(l) - r(w))[0];
555
+ if (!s.length && !d.id.versionLine) return;
556
+ const e = d.p, p = e.name.replace(/^.*[\\/]/, "").toUpperCase(), i = pn(d.id.build), c = i && !d.id.stock && i.id !== "3.00-playgame" ? un(e.bytes, i) : { patches: {}, regions: [] }, u = i && !d.id.stock ? x(e.bytes, i) : [], a = {
557
+ ...d.id,
558
+ exe: p,
559
+ size: e.bytes.length,
560
+ md5: F(e.bytes),
561
+ regions: c.regions,
562
+ importPatches: c.patches,
563
+ ...i && on(i, u) ? { about: R(e.bytes, i) } : {}
564
+ };
565
+ if (d.id.stock || !i) return { exe: p, patches: {}, message: "", origin: a };
566
+ const q = [], Z = i.id !== "3.00" ? ` (Game-Maker ${i.id}’s, read by its 3.00 equivalents)` : "", v = Object.keys(S(c.patches)).length;
567
+ v && q.push(
568
+ `${p} is a hand-edited Game-Maker player: ${v} change${v === 1 ? "" : "s"} to its words, colors or timings${Z} are in the DOS player panel now.`
569
+ );
570
+ let g = c.patches;
571
+ const k = i.id === "3.00" ? U(e.bytes) : yn(c.patches);
572
+ if (Object.keys(k).length) {
573
+ const l = bn(n, k), w = Object.values(k).filter(Boolean).slice(0, 2), b = { ...g };
574
+ for (const [B, z] of l) {
575
+ const A = $.find((D) => D.ext === z && !D.offsets.length);
576
+ A && !j(A.ext, B) && (b[I(A.ext)] = B);
577
+ }
578
+ g = _(b).size ? S(b) : b;
579
+ const Y = Object.keys(g).length > Object.keys(S(g)).length;
580
+ q.push(
581
+ `${p} was changed to look for its files under other extensions (${w.join(", ")}…). Their ${l.size} kinds of file are renamed back to Game-Maker’s own, so they open here.${Y ? " The DOS player panel’s Files tab keeps their extensions, so the DOS download renames them again." : ""}`
582
+ );
583
+ }
584
+ return c.regions.length && q.push(
585
+ i.id === "3.00" ? "Its other changes (such as an About page of its own) are kept as they were: the project’s Player file shows them, and the DOS download writes them back." : "Its other changes (such as an About page of its own) are kept read-only in the project’s Player file; the DOS download uses Game-Maker 3.00’s player, so they aren’t in it."
586
+ ), { exe: p, patches: g, message: q.join(" "), origin: a };
587
+ }
588
+ export {
589
+ h as BLOCK,
590
+ M as BUILD_DATA,
591
+ R as aboutLines,
592
+ Bn as adoptPlayer,
593
+ pn as buildData,
594
+ m as buildLabel,
595
+ xn as estimateFromFolder,
596
+ cn as identifyPlayer,
597
+ un as preservePlayer,
598
+ Tn as regionText
599
+ };