1[[block]]
2struct buf0 {
3  resolution : vec2<f32>;
4};
5
6var<private> gl_FragCoord : vec4<f32>;
7
8[[group(0), binding(0)]] var<uniform> x_7 : buf0;
9
10var<private> map : array<i32, 256>;
11
12var<private> x_GLF_color : vec4<f32>;
13
14fn main_1() {
15  var pos : vec2<f32>;
16  var ipos : vec2<i32>;
17  var i : i32;
18  var p : vec2<i32>;
19  var canwalk : bool;
20  var v : i32;
21  var directions : i32;
22  var j : i32;
23  var d : i32;
24  let x_59 : vec4<f32> = gl_FragCoord;
25  let x_62 : vec2<f32> = x_7.resolution;
26  pos = (vec2<f32>(x_59.x, x_59.y) / x_62);
27  let x_65 : f32 = pos.x;
28  let x_69 : f32 = pos.y;
29  ipos = vec2<i32>(i32((x_65 * 16.0)), i32((x_69 * 16.0)));
30  i = 0;
31  loop {
32    let x_77 : i32 = i;
33    if ((x_77 < 256)) {
34    } else {
35      break;
36    }
37    let x_80 : i32 = i;
38    map[x_80] = 0;
39
40    continuing {
41      let x_82 : i32 = i;
42      i = (x_82 + 1);
43    }
44  }
45  p = vec2<i32>(0, 0);
46  canwalk = true;
47  v = 0;
48  loop {
49    var x_104 : bool;
50    var x_124 : bool;
51    var x_144 : bool;
52    var x_164 : bool;
53    var x_105_phi : bool;
54    var x_125_phi : bool;
55    var x_145_phi : bool;
56    var x_165_phi : bool;
57    let x_88 : i32 = v;
58    v = (x_88 + 1);
59    directions = 0;
60    let x_91 : i32 = p.x;
61    let x_92 : bool = (x_91 > 0);
62    x_105_phi = x_92;
63    if (x_92) {
64      let x_96 : i32 = p.x;
65      let x_99 : i32 = p.y;
66      let x_103 : i32 = map[((x_96 - 2) + (x_99 * 16))];
67      x_104 = (x_103 == 0);
68      x_105_phi = x_104;
69    }
70    let x_105 : bool = x_105_phi;
71    if (x_105) {
72      let x_108 : i32 = directions;
73      directions = (x_108 + 1);
74    }
75    let x_111 : i32 = p.y;
76    let x_112 : bool = (x_111 > 0);
77    x_125_phi = x_112;
78    if (x_112) {
79      let x_116 : i32 = p.x;
80      let x_118 : i32 = p.y;
81      let x_123 : i32 = map[(x_116 + ((x_118 - 2) * 16))];
82      x_124 = (x_123 == 0);
83      x_125_phi = x_124;
84    }
85    let x_125 : bool = x_125_phi;
86    if (x_125) {
87      let x_128 : i32 = directions;
88      directions = (x_128 + 1);
89    }
90    let x_131 : i32 = p.x;
91    let x_132 : bool = (x_131 < 14);
92    x_145_phi = x_132;
93    if (x_132) {
94      let x_136 : i32 = p.x;
95      let x_139 : i32 = p.y;
96      let x_143 : i32 = map[((x_136 + 2) + (x_139 * 16))];
97      x_144 = (x_143 == 0);
98      x_145_phi = x_144;
99    }
100    let x_145 : bool = x_145_phi;
101    if (x_145) {
102      let x_148 : i32 = directions;
103      directions = (x_148 + 1);
104    }
105    let x_151 : i32 = p.y;
106    let x_152 : bool = (x_151 < 14);
107    x_165_phi = x_152;
108    if (x_152) {
109      let x_156 : i32 = p.x;
110      let x_158 : i32 = p.y;
111      let x_163 : i32 = map[(x_156 + ((x_158 + 2) * 16))];
112      x_164 = (x_163 == 0);
113      x_165_phi = x_164;
114    }
115    let x_165 : bool = x_165_phi;
116    if (x_165) {
117      let x_168 : i32 = directions;
118      directions = (x_168 + 1);
119    }
120    var x_229 : bool;
121    var x_242 : bool;
122    var x_281 : bool;
123    var x_288 : i32;
124    var x_289 : i32;
125    var x_295 : i32;
126    var x_296 : i32;
127    var x_303 : array<i32, 256>;
128    var x_304 : array<i32, 256>;
129    var x_315 : i32;
130    var x_316 : i32;
131    var x_359 : bool;
132    var x_372 : bool;
133    var x_411 : bool;
134    var x_424 : bool;
135    var x_230_phi : bool;
136    var x_243_phi : bool;
137    var x_282_phi : bool;
138    var x_290_phi : i32;
139    var x_297_phi : i32;
140    var x_305_phi : array<i32, 256>;
141    var x_317_phi : i32;
142    var x_360_phi : bool;
143    var x_373_phi : bool;
144    var x_412_phi : bool;
145    var x_425_phi : bool;
146    let x_170 : i32 = directions;
147    if ((x_170 == 0)) {
148      canwalk = false;
149      i = 0;
150      loop {
151        let x_179 : i32 = i;
152        if ((x_179 < 8)) {
153        } else {
154          break;
155        }
156        j = 0;
157        loop {
158          let x_186 : i32 = j;
159          if ((x_186 < 8)) {
160          } else {
161            break;
162          }
163          let x_189 : i32 = j;
164          let x_191 : i32 = i;
165          let x_196 : i32 = map[((x_189 * 2) + ((x_191 * 2) * 16))];
166          if ((x_196 == 0)) {
167            let x_200 : i32 = j;
168            p.x = (x_200 * 2);
169            let x_203 : i32 = i;
170            p.y = (x_203 * 2);
171            canwalk = true;
172          }
173
174          continuing {
175            let x_206 : i32 = j;
176            j = (x_206 + 1);
177          }
178        }
179
180        continuing {
181          let x_208 : i32 = i;
182          i = (x_208 + 1);
183        }
184      }
185      let x_211 : i32 = p.x;
186      let x_213 : i32 = p.y;
187      map[(x_211 + (x_213 * 16))] = 1;
188    } else {
189      let x_217 : i32 = v;
190      let x_218 : i32 = directions;
191      d = (x_217 % x_218);
192      let x_220 : i32 = directions;
193      let x_221 : i32 = v;
194      v = (x_221 + x_220);
195      let x_223 : i32 = d;
196      let x_224 : bool = (x_223 >= 0);
197      x_230_phi = x_224;
198      if (x_224) {
199        let x_228 : i32 = p.x;
200        x_229 = (x_228 > 0);
201        x_230_phi = x_229;
202      }
203      let x_230 : bool = x_230_phi;
204      x_243_phi = x_230;
205      if (x_230) {
206        let x_234 : i32 = p.x;
207        let x_237 : i32 = p.y;
208        let x_241 : i32 = map[((x_234 - 2) + (x_237 * 16))];
209        x_242 = (x_241 == 0);
210        x_243_phi = x_242;
211      }
212      let x_243 : bool = x_243_phi;
213      if (x_243) {
214        let x_246 : i32 = d;
215        d = (x_246 - 1);
216        let x_249 : i32 = p.x;
217        let x_251 : i32 = p.y;
218        map[(x_249 + (x_251 * 16))] = 1;
219        let x_256 : i32 = p.x;
220        let x_259 : i32 = p.y;
221        map[((x_256 - 1) + (x_259 * 16))] = 1;
222        let x_264 : i32 = p.x;
223        let x_267 : i32 = p.y;
224        map[((x_264 - 2) + (x_267 * 16))] = 1;
225        let x_272 : i32 = p.x;
226        p.x = (x_272 - 2);
227      }
228      let x_275 : i32 = d;
229      let x_276 : bool = (x_275 >= 0);
230      x_282_phi = x_276;
231      if (x_276) {
232        let x_280 : i32 = p.y;
233        x_281 = (x_280 > 0);
234        x_282_phi = x_281;
235      }
236      let x_282 : bool = x_282_phi;
237      if (x_282) {
238        x_288 = p.x;
239        x_290_phi = x_288;
240      } else {
241        x_289 = 0;
242        x_290_phi = x_289;
243      }
244      let x_290 : i32 = x_290_phi;
245      if (x_282) {
246        x_295 = p.y;
247        x_297_phi = x_295;
248      } else {
249        x_296 = 0;
250        x_297_phi = x_296;
251      }
252      let x_297 : i32 = x_297_phi;
253      let x_299 : i32 = ((x_297 - 2) * 16);
254      if (x_282) {
255        x_303 = map;
256        x_305_phi = x_303;
257      } else {
258        x_304 = array<i32, 256>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
259        x_305_phi = x_304;
260      }
261      let x_305 : array<i32, 256> = x_305_phi;
262      if (x_282) {
263        map = array<i32, 256>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
264      }
265      if (x_282) {
266        map = x_305;
267      }
268      if (x_282) {
269        x_315 = map[(x_290 + x_299)];
270        x_317_phi = x_315;
271      } else {
272        x_316 = 0;
273        x_317_phi = x_316;
274      }
275      let x_317 : i32 = x_317_phi;
276      let x_318 : bool = (x_317 == 0);
277      if (select(x_282, x_318, x_282)) {
278        let x_323 : i32 = d;
279        d = (x_323 - 1);
280        let x_326 : i32 = p.x;
281        let x_328 : i32 = p.y;
282        map[(x_326 + (x_328 * 16))] = 1;
283        let x_333 : i32 = p.x;
284        let x_335 : i32 = p.y;
285        map[(x_333 + ((x_335 - 1) * 16))] = 1;
286        let x_341 : i32 = p.x;
287        let x_343 : i32 = p.y;
288        let x_345 : array<i32, 256> = map;
289        map = array<i32, 256>(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
290        map = x_345;
291        map[(x_341 + ((x_343 - 2) * 16))] = 1;
292        let x_350 : i32 = p.y;
293        p.y = (x_350 - 2);
294      }
295      let x_353 : i32 = d;
296      let x_354 : bool = (x_353 >= 0);
297      x_360_phi = x_354;
298      if (x_354) {
299        let x_358 : i32 = p.x;
300        x_359 = (x_358 < 14);
301        x_360_phi = x_359;
302      }
303      let x_360 : bool = x_360_phi;
304      x_373_phi = x_360;
305      if (x_360) {
306        let x_364 : i32 = p.x;
307        let x_367 : i32 = p.y;
308        let x_371 : i32 = map[((x_364 + 2) + (x_367 * 16))];
309        x_372 = (x_371 == 0);
310        x_373_phi = x_372;
311      }
312      let x_373 : bool = x_373_phi;
313      if (x_373) {
314        let x_376 : i32 = d;
315        d = (x_376 - 1);
316        let x_379 : i32 = p.x;
317        let x_381 : i32 = p.y;
318        map[(x_379 + (x_381 * 16))] = 1;
319        let x_386 : i32 = p.x;
320        let x_389 : i32 = p.y;
321        map[((x_386 + 1) + (x_389 * 16))] = 1;
322        let x_394 : i32 = p.x;
323        let x_397 : i32 = p.y;
324        map[((x_394 + 2) + (x_397 * 16))] = 1;
325        let x_402 : i32 = p.x;
326        p.x = (x_402 + 2);
327      }
328      let x_405 : i32 = d;
329      let x_406 : bool = (x_405 >= 0);
330      x_412_phi = x_406;
331      if (x_406) {
332        let x_410 : i32 = p.y;
333        x_411 = (x_410 < 14);
334        x_412_phi = x_411;
335      }
336      let x_412 : bool = x_412_phi;
337      x_425_phi = x_412;
338      if (x_412) {
339        let x_416 : i32 = p.x;
340        let x_418 : i32 = p.y;
341        let x_423 : i32 = map[(x_416 + ((x_418 + 2) * 16))];
342        x_424 = (x_423 == 0);
343        x_425_phi = x_424;
344      }
345      let x_425 : bool = x_425_phi;
346      if (x_425) {
347        let x_428 : i32 = d;
348        d = (x_428 - 1);
349        let x_431 : i32 = p.x;
350        let x_433 : i32 = p.y;
351        map[(x_431 + (x_433 * 16))] = 1;
352        let x_438 : i32 = p.x;
353        let x_440 : i32 = p.y;
354        map[(x_438 + ((x_440 + 1) * 16))] = 1;
355        let x_446 : i32 = p.x;
356        let x_448 : i32 = p.y;
357        map[(x_446 + ((x_448 + 2) * 16))] = 1;
358        let x_454 : i32 = p.y;
359        p.y = (x_454 + 2);
360      }
361    }
362    let x_458 : i32 = ipos.y;
363    let x_461 : i32 = ipos.x;
364    let x_464 : i32 = map[((x_458 * 16) + x_461)];
365    if ((x_464 == 1)) {
366      x_GLF_color = vec4<f32>(1.0, 1.0, 1.0, 1.0);
367      return;
368    }
369
370    continuing {
371      let x_468 : bool = canwalk;
372      if (x_468) {
373      } else {
374        break;
375      }
376    }
377  }
378  x_GLF_color = vec4<f32>(0.0, 0.0, 0.0, 1.0);
379  return;
380}
381
382struct main_out {
383  [[location(0)]]
384  x_GLF_color_1 : vec4<f32>;
385};
386
387[[stage(fragment)]]
388fn main([[builtin(position)]] gl_FragCoord_param : vec4<f32>) -> main_out {
389  gl_FragCoord = gl_FragCoord_param;
390  main_1();
391  return main_out(x_GLF_color);
392}
393