-
Notifications
You must be signed in to change notification settings - Fork 0
/
harbinger-xmas.p8
839 lines (744 loc) · 36.7 KB
/
harbinger-xmas.p8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
pico-8 cartridge // http://www.pico-8.com
version 33
__lua__
-- init
--[[
ideas for later:
* make enemies randomly spawn.
should they spawn anywhere?
or only where placed on map?
maybe they should only spawn
when you reveal them on the
map? unclear.
* energy bar on banner right.
apples/etc increase energy.
what uses energy up? maybe
running? throwing swords?
we'd also need to have apples
respawn so you don't run out
of energy for basic needs.
* turn the blue treasure chest
into a cape since sarah thinks
it looks like one when the guy
walks over it.
what can it do? maybe fly over
solid objects for 400 ticks?
--]]
hero = {
hp=3,
x=0,
y=0,
dx=0,
dy=1,
vx=0,
vy=0,
maxv=2,
maxv1=1,
maxv2=2,
movv=0.5,
moving=false,
blinkmode=0,
invincible=false,
}
fairie=nil
items={}
debug=true
heartanim=0
t=0
shot=nil
message = nil
function _init()
get_initial()
load_items()
music()
end
function get_initial()
for x = 0, 127 do
for y = 0, 63 do
local s = mget(x,y)
if s == 1 then
local rs = mget(x+1,y)
mset(x,y,rs)
hero.x = x * 8
hero.y = y * 8
return
end
end
end
end
function load_items()
for x = 0, 127 do
for y = 0, 63 do
local s = mget(x,y)
if fget(s, 2) then
local rs = mget(x+1,y)
mset(x,y,rs)
add(items,{
x=x*8,
y=y*8,
t='heart',
s1=s,
s2=s+1,
})
elseif fget(s, 3) then
local rs = mget(x+1,y)
mset(x,y,rs)
add(items,{
x=x*8,
y=y*8,
dx=0,
dy=0,
t='enemy',
s1=s,
s2=s+1,
})
elseif fget(s, 4) then
local rs = mget(x+1,y)
mset(x,y,rs)
add(items,{
x=x*8,
y=y*8,
t='powerup',
s1=s,
s2=s+1,
})
elseif fget(s, 7) then
local rs = mget(x+1,y)
mset(x,y,rs)
add(items,{
x=x*8,
y=y*8,
t='portal',
s1=s,
s2=s+1,
})
end
end
end
end
-->8
-- draw
function _draw()
local mx = mid(0, hero.x-60, (128-16)*8)
local my = mid(-8, hero.y-60, (64 -16)*8)
camera(mx,my)
cls(3)
map(0,0,0,0,128,64)
for i=1,#items do
local s = items[i]
local sp = s.s1
if time() % 1 < .5 then sp=s.s2 end
spr(sp, s.x, s.y)
end
if shot then
spr(4,shot.x,shot.y)
end
drawguy()
if fairie then
local x1 = fairie.x+sin(fairie.t/30)*10
local y1 = fairie.y+cos(fairie.t/20)*10
local x2 = fairie.x+sin(fairie.t/(30*1.1))*10
local y2 = fairie.y+cos(fairie.t/(20*1.1))*10
spr(fairie.s+2, x2, y2)
spr(fairie.s, x1, y1)
end
camera()
drawbanner()
drawmessage()
end
function drawbanner()
color(0)
rectfill(0,0,127,7)
for i = 1,hero.hp do
local s = 10
local p = false
if heartanim>0 and i==hero.hp then
pal(8, 2)
p = true
if heartanim % 2 == 0 then
s = 9
end
end
spr(s,(i-1)*7,0)
if p then pal() end
end
end
function drawguy()
local fl=false
local s = 1
if (hero.dx==-1) fl=true
if hero.moving then
s=32
if (hero.dy==-1) s=48
if (t%15<8) s+=1
else
if (hero.dy==-1) s=17
end
if hero.invincible then
if t % 15 < 5 then
for i=1,15 do
pal(i,(i+3)%3+10)
end
end
spr(s,hero.x,hero.y,1,1,fl)
pal()
elseif hero.blinkmode > 0 then
if t % 3 < 1 then
spr(s,hero.x,hero.y,1,1,fl)
end
else
spr(s,hero.x,hero.y,1,1,fl)
end
end
function drawmessage()
if (not message) return
local x1=20
local y1=20
local x2=108
local w = x2-x1-4
local h = 8
local lines = ceil(#message*4 / w)
local y2=y1+(h*lines)+2
rectfill(x1,y1,x2,y2,1)
rect(x1,y1,x2,y2,6)
local m = message
for i=1,lines do
local idx = flr(w/4)
local msg = sub(m, 0, idx)
m = sub(m, idx+1)
local y = h*(i-1)
print(msg,x1+3,y1+3+y,7)
end
end
-->8
-- update
function _update()
t+=1
if t == 30 then t = 0 end
handlecontrols()
moveenemies()
docollide()
hero.maxv=hero.maxv1
if btn(❎) then
hero.maxv=hero.maxv2
end
if btnp(🅾️) then
shot = {
x=hero.x,
y=hero.y,
dx=hero.dx,
dy=hero.dy,
t=30,
}
end
if shot then
shot.x += shot.dx
shot.y += shot.dy
shot.t -= 1
if shot.t == 0 then
shot = nil
end
end
if heartanim > 0 then
if t % 3 == 0 then
heartanim-=1
end
end
if hero.blinkmode > 0 then
hero.blinkmode -= 1
if hero.blinkmode==0 and hero.invincible then
hero.invincible=false
music()
end
end
end
function pick_enemy_dir(e)
repeat
local s = 1
if rnd() < .5 then s=-1 end
if rnd() < .5 then
e.dx=s
e.dy=0
else
e.dx=0
e.dy=s
end
until notsolidat(e.x + e.dx*8,
e.y + e.dy*8)
end
function notsolidat(x,y)
local s = _sprat(x,y)
return air(s)
end
function moveenemies()
if t == 0 then
for i = 1, #items do
local e = items[i]
if e.t == 'enemy' then
pick_enemy_dir(e)
end
end
elseif t > 29-8 then
for i = 1, #items do
local e = items[i]
if e.t == 'enemy' then
e.x += e.dx
e.y += e.dy
end
end
end
end
function handlecontrols()
handlemoving()
end
function handlemoving()
hero.moving=false
if btn(⬆️) or btn(⬇️) or
btn(⬅️) or btn(➡️) then
if btn(⬅️) then hero.dx=-1
elseif btn(➡️) then hero.dx=1
else hero.dx=0 end
if btn(⬆️) then hero.dy=-1
elseif btn(⬇️) then hero.dy=1
else hero.dy=0 end
end
if btn(⬅️) then
hero.vx -= hero.movv
if (hero.vx<-hero.maxv) hero.vx=-hero.maxv
elseif btn(➡️) then
hero.vx += hero.movv
if (hero.vx>hero.maxv) hero.vx=hero.maxv
else
if hero.vx != 0 then
hero.vx -= hero.movv * sgn(hero.vx)
end
end
if hero.vx < 0 then
local canskirt =
not btn(⬆️) and not btn(⬇️)
for i = 1,ceil(-hero.vx) do
local s1 = sprat(-1,0)
local s2 = sprat(-1,7)
trymove(s1,s2,-1,0,canskirt)
end
elseif hero.vx > 0 then
local canskirt =
not btn(⬆️) and not btn(⬇️)
for i = 1,flr(hero.vx) do
local s1 = sprat(8,0)
local s2 = sprat(8,7)
trymove(s1,s2,1,0,canskirt)
end
end
if btn(⬆️) then
hero.vy -= hero.movv
if (hero.vy<-hero.maxv) hero.vy=-hero.maxv
elseif btn(⬇️) then
hero.vy += hero.movv
if (hero.vy>hero.maxv) hero.vy=hero.maxv
else
if hero.vy != 0 then
hero.vy -= hero.movv * sgn(hero.vy)
end
end
if hero.vy < 0 then
local canskirt =
not btn(⬅️) and not btn(➡️)
for i = 1, ceil(-hero.vy) do
local s1 = sprat(0,-1)
local s2 = sprat(7,-1)
trymove(s1,s2,0,-1,canskirt)
end
elseif hero.vy > 0 then
local canskirt =
not btn(⬅️) and not btn(➡️)
for i = 1, flr(hero.vy) do
local s1 = sprat(0,8)
local s2 = sprat(7,8)
trymove(s1,s2,0,1,canskirt)
end
end
end
function trymove(s1,s2,x,y,canskirt)
local moved = false
if slowarea() then
x/=2
y/=2
end
local gotsign = onsign()
if gotsign then
local sx, sy =
gotsign[1], gotsign[2]
if sx == 14 and sy == 7 then
message = 'hai how are you doing sarah girl?'
elseif sx == 11 and sy == 11 then
message = 'hi'
elseif sx == 23 and sy == 10 then
message = 'this is a super long message with lots of really long words and things'
elseif sx == 21 and sy == 22 then
message = '😐 < wanted: link the wanted soldier!'
end
else
message = nil
end
if air(s1) and air(s2) then
moved = true
hero.x += x
hero.y += y
elseif canskirt then
if air(s1) then
moved=true
if x==0 then hero.x-=1
elseif y==0 then hero.y-=1
end
elseif air(s2) then
moved=true
if x==0 then hero.x+=1
elseif y==0 then hero.y+=1
end
end
end
if moved then
hero.moving=true
end
end
-->8
-- util
function getitem()
for i = 1, #items do
local item = items[i]
local x1 = item.x-4
local y1 = item.y-4
local x2 = item.x+4
local y2 = item.y+4
if hero.x>=x1 and hero.x<=x2 and
hero.y>=y1 and hero.y<=y2 then
return item, i
end
end
end
function sprat(x,y)
local tx = flr((hero.x+x) / 8)
local ty = flr((hero.y+y) / 8)
return mget(tx,ty), tx, ty
end
function _sprat(x,y)
local tx = flr(x / 8)
local ty = flr(y / 8)
return mget(tx,ty)
end
function slowarea()
return slow(sprat(0,0))
or slow(sprat(7,0))
or slow(sprat(0,7))
or slow(sprat(7,7))
end
function onsign()
return issign(sprat(0,0))
or issign(sprat(7,0))
or issign(sprat(0,7))
or issign(sprat(7,7))
end
function issign(s, x, y)
if s == 14 then
return {x, y}
end
end
function slow(s)
return fget(s,1)
end
function air(s)
return not fget(s,0)
end
function heart(s)
return fget(s,2)
end
-->8
-- collide
function docollide()
local f, fi = getitem()
if f then
if f.t == 'heart' then
hero.hp += 1
del(items, f)
sfx(0)
heartanim=7
elseif f.t == 'powerup' then
music(1)
hero.blinkmode = 400
hero.invincible=true
del(items, f)
sfx(0)
elseif f.t == 'portal' then
if hero.blinkmode==0 then
local i = fi
local nxt
repeat
i+=1
if (i > #items) i = 1
nxt=items[i]
until nxt.t=='portal'
sfx(5)
--[[
for i=0,3 do
for j=1,4 do
pal(i*4+j,0)
_draw()
flip()
end
end
pal()
--]]
for i=1,90 do
circ(64,64,90-i,1)
if (i%5==0) flip()
end
hero.x=nxt.x+8
hero.y=nxt.y
for i=1,90 do
_draw()
for j=i,90 do
circ(64,64,j,1)
end
if (i%5==0) flip()
end
hero.blinkmode=30
end
elseif f.t == 'enemy' then
if hero.blinkmode == 0 then
hero.hp -= 1
if hero.hp == 0 then
music(-1)
sfx(10)
for i=1,2 do
for x=-1,1 do
for y=-1,0 do
hero.dx=x
hero.dy=y
_draw()
flip()
flip()
flip()
end
end
end
for i=1,15 do flip() end
fairie={
x=hero.x,
y=hero.y,
t=0,
s=53,
}
for i=1,7 do
sfx(9)
hero.hp+=1
for j=1,10 do
heartanim=0
if (j<=5) heartanim=2
_draw()
fairie.t += 1
fairie.s = 53
if (j<5) fairie.s=54
flip()
end
end
fairie=nil
heartanim=0
hero.blinkmode=30
music()
else
hero.blinkmode=15
sfx(4)
local x = 0
if(hero.x<f.x-2) x=-1
if(hero.x>f.x+2) x=1
local y = 0
if(hero.y<f.y-2) y=-1
if(hero.y>f.y+2) y=1
hero.vx = x*4
hero.vy = y*4
end
end
end
end
end
__gfx__
555555550066660000000000000000001550000055555555aaaaaaaa00717000aaaaaaaa04400440000000000000000000000000000080001111111100000000
5555555506818160088888200b5000001155000058888885a555555a01571700addddd4a4114414400d00d0000000000000a0000000088001ee4e4e100000000
55a55a55088888800822222005500b500115500055555555a555555a01775750ad44444a414444440d99d9d00001110000ddd0000000100014eeee4100000000
555aa5550089980008222220000005500011559055888888a555555a07775170ad44444a444444440d9dddd00000e1100d55dd00000888001ee44ee100000000
555aa55500eeee0008222220000000000001199055555555a55aa55a00577700ad44444a444444440dddddd00040e0000d5ddd00008aa8801111111100000000
55a55a55090ee0900822222000b00b500000992088888855a555555a00044000ad44444a0444444000dddd00000e00000ddddd00008a88800001100000000000
55555555000bb00002222220055005500000022255555555a555555a00044000a444444a00444400000dd000000e000000ddd000008888800001100000000000
555555550090090000000000000000000000002288888888a555555a00444400aaaaaaaa00044000000000000000e00000000000000888000001100000000000
00000000005555001100000078877887000000000000000000000000000ba9a000000000000000000000022255000000dd666d66ddddddddaa22222222222255
000000000555555011aaa0007237788700000000000000000000000009ab9b9bbabbb000000000000002222255555000d6666d66dd111ddda222222222222225
000000000d5555d0ee676a0073377237000000000eaeeae0099999900bbabab8a9abab0000555000002aaaaaaa555500d6666d66111111112222222222222222
0000000000dddd00ee767a007887733700dddd000e6ee6e0096996900abaa9a9ba99bb000559000002aaaaaaaaaa5550d66d6d66111111112222222222222222
0000000000555500eeaaa000788778870dd77dd00ee99ee00989989009b99b9b99baa9000009099022aaa22aaaaaa555d66d6d66d1dddddd2222222222222222
0000000006055060ee000000782772370d9999d00eeeeee0099999900bab8ba9aa9b9b000000909022aa222255aaaa55dd6d6666111111112222222222222222
00000000000dd000ee000000733773370d9779d00e1111e0095555900a99baba9b8abb00000090002aaa22aaa555aaa5d6666d661ddddd112222222222222222
0000000000900900ee000000777777770d9999d00eeeeee0099999900baba9b9b9abb000000900002aaa22aaaaa55aa5dd666666111111112222222222222222
004444000000000000000000000070000001000000000000000000000096996959590000bbbbbbbb6bbbb6bb8888282255555555777777ffaaaaaaaabbbbbbbb
041414400077770000000000000400000000100000000000000000000009999699990000bbbbbbbb66bbb6bb88822822ee5eee557777f7ffaaaaaaaabbbbbbbb
011111100726267000000000000040000009990000fff000000000000000009900000000bbbbbbbb66bbb66b882288225555555577f7f77faaaaaaaabbbbbbbb
00188100022222200000000000011100009444900ff80000005550000000009900000000bbbbbbbb06bbbb6622288222eeee5ee577f7f77faaaaaaaabbbbbbbb
0fcccc000028820000000000001555100944444900080550055200000000009900000000bbbbbbbb066bbbbb888882205555555577f7777faaaaaaaabbbbbbbb
000ccf000055557000000000015555510946446900008050000208800000099900000000bbbbbbbb0006bbbb888822005555555577f7f77faaaaaaaabbbbbbbb
00044000007aa00000000000015955910945555900008000000020800000999940000000bbbbbbbb000666662222200055eeee557777f7ff3aaaaaaabbbbbbb2
005050000005050000000000015666610000000000080000000200000000999944000000bbbbbbbb0000066622000000eeeeeeee7777f7ff33aaaaaabbbbbb22
00dddd0000000000000000000022220000eeee000011111000eeeee0000e00000000900000000000000000000000000000000000000000000000000000000000
0dddddd0007777000000000002aaaa200e6666e0005c5c50005757f0e0000e000000000900000000000000000000000000000000000000000000000000000000
0adddda007777770000000002a666aa2e6aa666e6615551600e555e00000000e9090900000000000000000000000000000000000000000000000000000000000
00aaaa0005777750000000002a6aaaa2e6a6666e6615d5160ee565e0000e00000000000000000000000000000000000000000000000000000000000000000000
0966660000555500000000002aaaaaa2e6a6666e06fffff6ee95559e000000e00900000900000000000000000000000000000000000000000000000000000000
0006690000777720000000002aaaaaa2e666666e0006f600eee959ee0e0000000009000000000000000000000000000000000000000000000000000000000000
00011000002aa0000000000002aaaa200e6666e0000fff00000555000000e00e9000090000000000000000000000000000000000000000000000000000000000
0090900000050500000000000022220000eeee0000fffff000555550e00000000009000000000000000000000000000000000000000000000000000000000000
00444440666666661111111166666666666666660000000000000000a00000000000000000000000000000000000000000000000000000000000000000000000
00fcfcf0666666661ee4e4e1644444444444444655555555dddddddd500000000000000000000000000000000000000000000000000000000000000000000000
664fff466666666614eeee4164555555555555465d6d6d65d8d8d8dd500000000000000000000000000000000000000000000000000000000000000000000000
664f8f46666666661ee44ee164444444444444465ddd6d65d888d8dd500000000000000000000000000000000000000000000000000000000000000000000000
06fcccf6666666661111111164555555555555465d6d6d65d8d8d8dd500000000000000000000000000000000000000000000000000000000000000000000000
004fcf406666666600011000644444444444444655555555dddddddd500000000000000000000000000000000000000000000000000000000000000000000000
004ccc406666666600011000645555555555554600055000000dd000500000000000000000000000000000000000000000000000000000000000000000000000
00ccccc06666666600011000644444444444444600055000000dd000500000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000064444444444444460000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000066666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000644446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000644446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000644446000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000b644446b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000b6b4bb6b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000bbbbbbbb00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070
70707000000000000000000000000000000000000070707070707070000000000000000000007070707070707070707070707070707070707070700000700000
00000000000000000000000070700000000000000070707070707000707000000000000000007070000070707070700070707070000000000000000000007070
70707070707070707070707070707070707070707070707070000070707070707070707070707070700070007070007070007070000000707070707070707070
70707070707070707070707070707070707070707070000000007070707070707070707070707070707070707070707070700070707070707070707070707070
__gff__
0000010200000001000400000400000000000001000800010100020202020101000000080010000101010202020201010000008000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0707070707070707070707070707070707070707070707070707070707070707070700070707070707070000000007070707070707070000000000000707070700070707070707070707070707070707070707000000000000000007070707070707070707070707070707070707070707070707070707070707070000070707
0707070707070707070707070017180000000000001718070000000000000007070707070707000000000707070700000000000007070707070707070000000007000000000000000000000000000000000000070707070707070700000000000000000007070707070000000000000000000000000000000000000707070007
0703030303030303030303030327281500000009002728000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070707
07030309030303030303030203000000000c0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
07030303030303030303020203330001000000000000190b190b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
070303030303030303000203030000000202020202000b191925000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070700
07020202020203030302030300000000060509050200190b190b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000
07330017180000000002000000000e0002050505020000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000
07000027280000000007000300000000020802020200001200230000000b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000
0700001718000000000700030303000000000202020000000000000000000000001900000000330000000000000000000000000000000000220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000
07000027281718000707000000030300000002150002000e0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
07000000002728000000000e0000000003000202000200000019000000000000000017180000000000001a1d1d1b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
07000000000000000000000000000000000300000000000000000000000000000000272800000000001a1e29291f1b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
070000000000250000000000000000000000000300000000000000000000000000000000000000001a1e292929291f1b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
070000000000000000001313131313130000000000000003000000000000000000000000000000001c2929292929292d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
070000190000000000001314000000131313131300000000000300000000000000000000000000001c2929292929292d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
070000000000000000001300000000130000001313131313000003000003000000000000000000002a2e292929292f2b0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
07070000000000000000131313130000000000000000001313000000000303030000000000000000001c292929292d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
07070000000000002500000000131313130000130000001413000000000000000303030303030300001c292929292d000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
07070000000000000000000000001300131300130000000013000000000000000000000000000000002a2e29292f2b000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
0707000000000000000000000000130000000000130000001300000000000000000000000000030000002a2c2c2b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
0700000000000000000000330000000000000000131313130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
0700000000000000000000000000130000000000000e13000000000000000000000000000000000003030303030303000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
0700000000000000000000000000131300000000001313000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
0700000000000000000000000000001313000000001300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
0700000000000000000000000000000000131313130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000707
0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000707
0700000000000000000000000000000000000000004242424200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000707
0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
0707000000000000000000000000000000000000004543444600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
0707000000000000000000000000000000000000004553544600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000700
0700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007
__sfx__
000200000a0500f05015050190501c0501e0501c05018050160501605017050170501a0501e050210502405026050270502705023050210501f0501f0501f05022050260502a0502c0502f05035050380503e050
0010000018010180100000000000210102101000000000001c0101c01000000000002401024010000000000022010230100000000000270102701000000000002501026010250000000029010290102900000000
0010000000010000100001000010000000000000000000000501005010050100501000000000000000004000040100401004010040100000000000150001400007010070100701007010070000b0000b00000000
001000000151001510006000560000000000000151001510186001c60001510015102b6002e600316003660000510005103c60000000000000000001510015100000000000005100051000000000000000000000
00010000291502c1502e1502e1502e1502c15029150231502115021150221502415025150261502515024150201501b150171501315011150111501115013150141501515014150131500f1500b1500915004150
00030000090500b0500d0500f0500e05009050080500a0501105015050180501905017050130501305014050160501a05020050250502605024050210501f0501e0501f05023050270502a0502e0503105034050
300800001d0201d0201d0201d02024020240202402024020200202002020020200202502025020250202502020020200202002020020240202402024020240202202022020220202202027020270202702027020
310800003015030150231502315030150301502315023150302503025023250232502f2502f25023250232501a3501a3500e3500e35019350193500d3500d35019450194500d4500d45018450184500d4500d450
010800001105011050110501105011050110501105011050050500505005050050500505005050050500505016050160501605016050160501605016050160501305013050130501305013050130501305013050
010100003655036550365503655036550005002e5502e5502e5502e5502e5502e5002855028550285502855028550285002155021550215502155021550215002150021500215000040000400004000040000400
00050000335503455034550325502d5502e5502f5502d5502655028550295502955023550245502555026550235501e5501b5501c5501c5501a55014550165501655015550105500e5500f5500c5500955003550
__music__
02 01020344
03 06084344