pico-8 cartridge // http://www.pico-8.com version 8 __lua__ -- todo ---------- -- ball disappears and new one drops -- timer for cracks -- after a while cracked tile breaks down ------------- -- done ---------- -- pressing down -- -�ball -> fill the cracks -- -�fire -> fix filled cracks -- ?? destroy broken? -- map tiles somehow, state tree? --�randomly generate cracks -- players touching causes ball to turn static -- f = 0 step = 0 frames = {7, 7, 23, 23, 39, 39} --mov = {0, 1, 1, 1, 0, -1, -1, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} --frames = {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1} --mov = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0} ball = {} ball.y = 60 ball.x = 60 ball.speed = {} ball.speed.x = 0 ball.speed.y = 0 ball.acc = {} ball.acc.y = 0 ball.jumping = false ball.left = false ball.right = false ball.crouch = false ball.visible = true ball.respawn_start = 0 ball.respawn_time = 2 ball.life = 3 fire = {} fire.y = 50 fire.x = 50 fire.speed = {} fire.speed.x = 0 fire.speed.y = 0 fire.acc = {} fire.acc.y = 0 fire.jumping = false fire.left = false fire.right = false fire.crouch = false fire.frame = 0 fire.frame_step = 0 fire.visible = true fire.respawn_start = 0 fire.respawn_time = 2 fire.life = 3 fire.action_time = time() level = {} floors = {} -- {x, y, tile} cracks = {} -- {x, y, tile} start_time = 0 crack_freq = 10 crack_time = 0 last_crack = 0 action_time = 0.5 integrity = 10 intro = true score = 0 gameover = false dried_ball = {} dried_ball.visible = false dried_ball.start_time = 0 dried_ball.duration = 10 dried_ball.x = 10 dried_ball.y = 10 dried_ball.tile = 5 debug_text = "" local normal1 = { crack = crack11, tile = 64 } local fixed1 = { wear = 666, dry = normal1, tile = 67 } local crack11 = { fix = fixed1, tile = 66 } local crack12 = { wear = crack13, fix = fixed1, tile = 69 } crack11.wear = crack12 local crack13 = { fix = fixed1, tile = 70 } crack12.wear = crack13 local crack14 = { fix = fixed1, tile = 71 } crack13.wear = crack14 local broken1 = { tile = 72, broken = true } crack14.wear = broken1 local normal2 = { crack = crack21, tile = 80 } local fixed2 = { wear = 666, dry = normal2, tile = 83 } local crack21 = { fix = fixed2, tile = 82 } local crack22 = { fix = fixed2, tile = 85 } crack21.wear = crack22 local crack23 = { fix = fixed2, tile = 86 } crack22.wear = crack23 local crack24 = { fix = fixed2, tile = 87 } crack23.wear = crack24 local broken2 = { tile = 88, broken = true } crack24.wear = broken2 local normal3 = { crack = crack31, tile = 96 } local fixed3 = { wear = 666, dry = normal3, tile = 99 } local crack31 = { fix = fixed3, tile = 98 } local crack32 = { fix = fixed3, tile = 101 } crack31.wear = crack32 local crack33 = { fix = fixed3, tile = 102 } crack32.wear = crack33 local crack34 = { fix = fixed3, tile = 103 } crack33.wear = crack34 local broken3 = { tile = 104, broken = true } crack34.wear = broken3 local tile_map = {} tile_map[64] = normal1 tile_map[67] = fixed1 tile_map[66] = crack11 tile_map[69] = crack12 tile_map[70] = crack13 tile_map[71] = crack14 tile_map[72] = broken1 tile_map[80] = normal2 tile_map[83] = fixed2 tile_map[82] = crack21 tile_map[85] = crack22 tile_map[86] = crack23 tile_map[87] = crack24 tile_map[88] = broken2 tile_map[96] = normal3 tile_map[99] = fixed3 tile_map[98] = crack31 tile_map[101] = crack32 tile_map[102] = crack33 tile_map[103] = crack34 tile_map[104] = broken3 function _init() cls() for y=0,13 do for x=0,15 do i = x+(16*y)+1 local tile = mget(x, y) level[i] = tile if(fget(tile, 0)) then add(floors, {x = x, y = y, tile = tile}) end if(fget(tile, 1)) then add(cracks, {x = x, y = y, tile = tile}) end end end end --[[function _update() local current_time = time() if(current_time - last_crack >= crack_freq) then last_crack = current_time local tile = floors[flr(rnd(#floors-1))] --mset_(tile.x, tile.y, 44) add_crack(tile.x, tile.y, tile.tile) --crack(tile.x, tile.y, mget(tile.x, tile.y)) for y=0,13 do for x=0,15 do tile = mget(x, y) wear(x, y, tile) end end end ball_update() fire_update() end]] function _update() if intro then start_time = time() last_crack = start_time+10 if(btn() > 0) then intro = false music(0) end elseif gameover then --nop else local current_time = time() if(integrity <= 0) then gameover = true end if(score > 150) then crack_freq = 5 elseif(score > 125) then crack_freq = 6 elseif(score > 100) then crack_freq = 7 ball.respawn_time = 1.5 elseif(score > 50) then crack_freq = 8 end --create cracks, wear out old ones if(current_time - last_crack >= crack_freq) then last_crack = current_time local floorlist = {} for y=0,13 do for x=0,15 do local tile = mget(x, y) if(tile_map[tile] == normal1 or tile_map[tile] == normal2 or tile_map[tile] == normal3) then add(floorlist, {x = x, y = y, tile = tile}) else wear(x, y, tile) end end end local crack_amount = 1 if score >= 75 then crack_amount = 4 elseif score >= 25 then crack_amount = 3 elseif score >= 10 then crack_amount = 2 end for i=1,crack_amount do local tobecrack = floorlist[flr(rnd(#floorlist-1))] if tobecrack == nil then --stupid bug else add_crack(tobecrack.x, tobecrack.y, tobecrack.tile) end end end --hide dried ball after a while if(dried_ball.visible) then if(current_time - dried_ball.start_time >= dried_ball.duration) then dried_ball.visible = false end end --respawn new ball if(ball.visible == false and (current_time - ball.respawn_start >= ball.respawn_time)) then ball.visible = true ball.x = 7*8 ball.y = 4 end --respawn new fire if(fire.visible == false and (current_time - fire.respawn_start >= fire.respawn_time)) then fire.visible = true fire.x = 2*8 fire.y = 4 end ball_update() fire_update() end end function ball_update() if ball.visible == false then ball.speed.x = 0 ball.speed.y = 0 else ball.crouch = false if(ball.x <= -1 ) then ball.x = 123 elseif(ball.x >= 124) then ball.x = 0 end if(btn(0, 0)) then ball.speed.x = -2 ball.left = true elseif(btn(1, 0)) then ball.speed.x = 2 ball.right = true elseif(btn(3,0) and not ball.jumping) then ball.crouch = true ball.speed.x = 0 crouch(ball, 1, 1) else ball.speed.x = 0 end if(fire.x > (ball.x - 5) and fire.x < (ball.x+5)) then if(fire.y > (ball.y - 5) and fire.y < (ball.y+5)) then ball_respawn(true) end end if(btnp(2,0) and not ball.jumping) then ball.speed.y = 5 ball.jumping = true end if(ball.y >= 16*8) then ball_respawn(true) end ball_gravity() ball.x = ball.x + ball.speed.x ball.y = ball.y - ball.speed.y end end function fire_update() fire.crouch = false if(fire.x <= -1 ) then fire.x = 123 elseif(fire.x >= 124) then fire.x = 0 end if(btn(0, 1)) then fire.speed.x = -2 fire.left = true elseif(btn(1, 1)) then fire.speed.x = 2 fire.right = true elseif(btn(3,1) and not fire.jumping) then fire.crouch = true fire.speed.x = 0 crouch(fire, 2, -3) crouch(fire, 1, -1) else fire.speed.x = 0 end if(btnp(2,1) and not fire.jumping) then fire.speed.y = 5 fire.jumping = true end --debug_text = fire.y if(fire.y >= 16*8) then fire_respawn() end fire_gravity() fire.x = fire.x + fire.speed.x fire.y = fire.y - fire.speed.y end function ball_gravity() --local tile_below_left = mget((ball.x+2)/8, (ball.y+4)/8) local tile_below_right = mget((ball.x+4)/8, (ball.y+4)/8) --local flag_bl = fget(tile_below_left, 0) local flag_br = fget(tile_below_right, 0) --if(flag_bl or flag_br) then if(flag_br) then if(ball.speed.y == 0 or ball.speed.y < 0) then ball.speed.y = 0 ball.y = flr((ball.y+4)/8)*8-4 ball.jumping = false end else ball.speed.y = ball.speed.y-1 --debug_text = ball.x end end function fire_gravity() local tile_below_left = mget((fire.x+2)/8, (fire.y+4)/8) local tile_below_right = mget((fire.x+4)/8, (fire.y+4)/8) local flag_bl = fget(tile_below_left, 0) local flag_br = fget(tile_below_right, 0) if(flag_bl or flag_br) then if(fire.speed.y == 0 or fire.speed.y < 0) then fire.speed.y = 0 fire.y = flr((fire.y+4)/8)*8-4 fire.jumping = false end else fire.speed.y = fire.speed.y-1 end end function ball_respawn(show_dried) ball.visible = false if(show_dried) then dried_ball.visible = true dried_ball.x = ball.x dried_ball.y = ball.y dried_ball.start_time = time() end ball.x = 100--7*8 ball.y = 100--4 ball.speed.x = 0 ball.speed.y = 0 ball.respawn_start = time() ball.life = 3 end function fire_respawn() fire.visible = false fire.x = 2*8--7*8 fire.y = 4--4 fire.speed.x = 0 fire.speed.y = 0 fire.respawn_start = time() fire.life = 3 end function crouch(obj, flag, sprite_add) local tile_lx = flr((obj.x+2)/8) local tile_ly = flr((obj.y+4)/8) local tile_below_left = mget(tile_lx, tile_ly) local flag_bl = fget(tile_below_left, flag) local tile_rx = flr((obj.x+4)/8) local tile_ry = flr((obj.y+4)/8) local tile_below_right = mget(tile_rx, tile_ry) local flag_br = fget(tile_below_right, flag) --if flag_bl then -- mset_(tile_lx, tile_ly, tile_below_left+sprite_add) --elseif flag_br then -- mset_(tile_rx, tile_ry, tile_below_right+sprite_add) --end if(obj == ball) then fix(tile_lx, tile_ly, tile_below_left) --crack(tile_lx, tile_ly, tile_below_left) elseif(obj == fire) then dry(tile_lx, tile_ly, tile_below_left) if(time()-fire.action_time > action_time) then wear(tile_lx, tile_ly, tile_below_left) fire.action_time = time() end end end function mset_(x, y, tile) level[x+(16*y)+1] = tile mset(x, y, tile) --debug_text = x..","..y end --add a crack that replaces 'tile' function add_crack(x, y, tile) local new_tile = tile+2 mset_(x, y, new_tile) delete_floor(x, y) add(cracks, {x = x, y = y, tile = new_tile}) end function delete_crack(x, y) end function add_floor(x, y, tile) end function delete_floor(x, y) for floor in all(floors) do if(floor.x == x and floor.y == y) then del(floors, floor) end end end function _draw() if intro then cls() map(16, 0, 0, 4, 20, 20) print("press any key to start", 21, 78, 8) print("arrows and esdf for controls", 9, 86, 3) print("fix cracks or integrity drops", 8, 95, 3) print("cement first, fire to dry", 16, 102, 3) print("code & graphics by m2tias", 16, 110, 7) print("music by bradur", 36, 121, 7) else cls() map(0, 0, 0, 4, 20, 20) --print(fget(mget(ball.x/8, ball.y/8)), 5, 5) if(dried_ball.visible) then spr(dried_ball.tile, dried_ball.x, dried_ball.y) end if(ball.visible) then draw_ball() end if(fire.visible) then draw_fire() end -- spr(frames[f+1]+2, 50, 50) -- spr(13+16*step, 50, 45-f) f = (f + 1) % 6 step = (step + 1) for y=0,13 do for x=0,15 do i = x+(16*y)+1 --print(level[i], x*8, y*8+4, 7) end end local int = flr(integrity/2) for i=1,int do local int_color = i if (int_color >= 4) then int_color = 4 else int_color = i end pal(7, 7+int_color) spr(76, (4+i)*8, 14.5*8) end if(integrity % 2 == 1) then spr(78, (5+int)*8, 14.5*8) end pal(7, 7) print(score, 111, 117, 7) print(debug_text, 6, 100, 7) --print(time(), 6, 10, 7) --print(#floors, 16, 4, 7) if gameover then print("game over!", 44, 50) print("restart game to start again", 10, 60) end end end function draw_ball() local hmov = 0 local vmov = 0 if(ball.speed.x < 0) then hmov = 16 elseif(ball.speed.x > 0) then hmov = 32 elseif(ball.crouch and ball.speed.y == 0) then hmov = 3 end if(ball.speed.y < 0) then vmov = 2 elseif(ball.speed.y > 0) then vmov = 1 end --draw ball on the other side of the screen if(ball.x > 128-8) then spr(1+hmov+vmov, (ball.x-128), ball.y) elseif(ball.x < 0) then spr(1+hmov+vmov, (ball.x+128), ball.y) end spr(1+hmov+vmov, ball.x, ball.y) end function draw_fire() fire.frame_step = (fire.frame_step + 1) % 2 fire.frame = (fire.frame + fire.frame_step)%3 local hmov = 0 local vmov = 0 if(fire.speed.y == 0) then if(fire.speed.x < 0) then hmov = 1 elseif(fire.speed.x > 0) then hmov = 2 elseif(fire.crouch) then hmov = 5 end --draw fire on the other side of the screen if(fire.x > 128-8) then spr(7+hmov+16*fire.frame, (fire.x-128), fire.y) elseif(fire.x < 0) then spr(7+hmov+16*fire.frame, (fire.x+128), fire.y) end spr(7+hmov+16*fire.frame, fire.x, fire.y) else if(fire.speed.y < 0) then vmov = 1 else vmov = 0 end if(fire.speed.x < 0) then hmov = 16 elseif(fire.speed.x > 0) then hmov = 32 else hmov = 0 end --draw fire on the other side of the screen if(fire.x > 128-8) then spr(10+hmov+vmov, (fire.x-128), fire.y) elseif(fire.x < 0) then spr(10+hmov+vmov, (fire.x+128), fire.y) end spr(10+hmov+vmov, fire.x, fire.y) end end function crack(x, y, tile) local obj = tile_map[tile] if(tile ~= nil) then --debug_text = x .. ", " .. y .. ", " ..tile else --debug_text = "fuck" end if(obj ~= nil and obj.crack ~= nil) then mset(x, y, obj.crack.tile) end end function fix(x, y, tile) local obj = tile_map[tile] if(obj ~= nil and obj.fix ~= nil) then mset(x, y, obj.fix.tile) --ball.visible = false ball.life = ball.life - 1 if(ball.life == 0) then ball_respawn(false) end end end function dry(x, y, tile) local obj = tile_map[tile] if(obj ~= nil and obj.dry ~= nil) then mset(x, y, obj.dry.tile) score = score + 1 end end function wear(x, y, tile) local obj = tile_map[tile] if(obj ~= nil and obj.wear ~= nil) then if(obj.wear == 666) then --debug_text = "mese" else mset(x, y, obj.wear.tile) if(obj.wear.broken == true) then integrity = integrity-1 end end end end __gfx__ 00000000000000000066660000066000000000000000000000000000008800000000080088880000008888000000a00000000000055000000000000000000000 0000000000000000067666600067660000000000000000000000000000088000000008000089800008999980000aa00000000000055000000000000000000000 007007000066660006766660007666000000000000dddd0000000000000088000000880000899800089aa980000aa00000000000000000000000000000000000 00077000067766600666666006666660007766000d66ddd00000000000089800000899800089a800089aa980009aa90000888800000005000000000000000000 00077000067666600666665006666660067666600d6dddd0000000000089a9800089a980089aa980009aa90009aaaa9008899880005000000000000000000000 00700700066666500066660006666650666666550ddddd5000000000089aa980089aa980089aa980008aa800089aa980889aa988000000000000000000000000 00000000066665500066650006666550666665550dddd55000000000089aa980089aa980089aa980000a80000089980089a77a98000550000000000000000000 00000000005555000005500000555500055555500055550000000000008888000088880000888800000000000008800089a77a98000550000000000000000000 000000000000000000666600000066000000000000000000000000000000800000000880088000000888800000000a0000000000000000000000000000000000 00000000000000000676666000067660000000000000000000000000000880000000880000880000899998000000aa0000000000000005500000000000000000 0000000006666000067666600067666000000000000000000000000000080000000898000089800089aa9800000aa00000888800000005500000000000000000 00000000677766000666666000666660000000000000000000000000008988000008a980089a980089aa9980009aa90008999980000500000000000000000000 00000000676666600066665006666660000000000000000000000000008a99800089a980089aa980089aa98009aaa980899aa988000000000000000000000000 00000000666666500066665006666650000000000000000000000000089aa980089aa980089aa980009aa90089aa988089a77a98055000000000000000000000 00000000666665500006655006666550000000000000000000000000089aa980089aa980089aa9800089a8008899880089777798055005000000000000000000 000000000555550000005500005555000000000000000000000000000088880000888800008888000000800008888000089aa980000000000000000000000000 000000000000000000666600006600000000000000000000000000000000880000000888000000000008888000a0000000000000000000000000000000000000 000000000000000006766660067660000000000000000000000000000008800000008800008000000089999800aa000000000000000050000000000000000000 000000000006666006766660067666000000000000000000000000000088000000088000008800000089aa98000aa00000888800000000000000000000000000 000000000067766606666660066666000000000000000000000000000089800000899800089980000899aa98009aa90008999980055000500000000000000000 00000000067666660666650006666660000000000000000000000000089a9800089aa98008aa9800089aa980089aaa9089a77a98055000000000000000000000 00000000066666550666650006666650000000000000000000000000089aa980089aa98089aaa980009aa9000889aa9889777798000005500000000000000000 00000000066665550666500006666550000000000000000000000000089aa980089aa98089aaa980008a98000088998888777788000005500000000000000000 000000000055555000550000005555000000000000000000000000000088880000888800088888000008000000088880089aa980000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 44404440111011104050054046566546556666774050054040500540500005454410111000000000101177700777101100000000000000000000000000000000 44404440111011104545045045456456556666774505005045000050450000504110111000000000000777700777700007700770077000000770000000000000 00000000000000000500550505005505550000770500050505000505050000050000000000000000111770000007711007700770077000000770000000000000 40444044101110114044404440444044500000074054005440500054405000541011101100000000110770000007701007700770077007700770000000000000 40444044101110114044404440444044055566704545454445450544450005444011101400000000000770000007700007700770077007700770000000000000 00000000000000000000000000000000000000000000000000505000005050000000000000000000100770000007700107700770077000000770000000000000 44404440111011104440444044404440110111014440444044404440445054404110111000000000001777700777701007700770077000000770000000000000 44404440111011104440444044404440110111014440444044404440444544404410111000000000000077700777000000000000000000000000000000000000 00000000000000000550005005566650556666770550005005500050055000500000000000000000101110111011101110111011101110110000000000000000 40444044101110114505050445656564556666774505050445000504450005041011101400000000000000000000000000000000000000000000000000000000 40444044101110115044504550445045555555775050504550500005505000054011101400000000070700707770777077707700707777070000000000000000 00000000000000000000500000005000556766570500505005005050050000500000000000000000070770700700700070007070700707070000000000000000 44404440111011104440444044404440056665704440444044500540445005404410111000000000070707700700770070707700700700700000000000000000 44404440111011104440444044404440000550004440444044505440445050404110111000000000070700700700777077707070700700700000000000000000 00000000000000000000000000000000110111010000000000000000000505000000000000000000000000000000000000000000000000000000000000000000 40444044101110114044404440444044110111014044404440444044404450444011101100000000000000000000000000000000000000000000000000000000 40444044101110114050550546565565556666774050050540500505405055051011104400000000101110111011101110111011101177000000007700000000 00000000000000000050005000566650556666770050005000500050005000500000000000000000000000000000000000000000000070000000000700000000 44404440111011104545054045456540550550774545054045050040450000004110111000000000011001100770077007007700777000000000000000000000 44404440111011105440445054404450505666075450055054500550505005504110111000000000110010107000700070707070700000000000000000000000 00000000000000000000000000000000056766700000500000050050000500500000000000000000000000000770700070707700770000000000000000000000 40444044101110114044404440444044067766504044404440540544405005441011104400000000001100017770077007007070777070000000000700000000 40444044101110114044404440444044116555014044404440444044404500544011101400000000100010100000000000000000000077000000007700000000 00000000000000000000000000000000110111010000000000000000000050000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000880000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008800800000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008008800000000000000 00440444000000000000000000044404400000000000000000000000000000000000000000000000000000000000000000000000000008908800000000000000 00440444000000000000000000044404400000000000000000000000000000000000000000000000000000000000000000000000000089a08000800000000000 00000000000000000000000000000000000000000000000000000000044400000000000000000000000000000000000000000000000089a08900800000000000 00044404000000000000000000040444000000000000000000000000004400000000000000000000000000000000000000000000000088aa8990080000000000 000444040000000000000000000404440000000000000000000000000044000000000000000000000000000000000000000000000000088980aa998000000000 0000000000000000000000000000000000000000000000000000000000440000000000000000000000000000000000000000000000000089a99aa98000000000 000044404000000044400000004044400000440000440044000044000044044000044440044000440004444400044000000000000000008090a9a80000000000 000044404000000044400000004044400044444000444444400444400044444400444444044000440044444400444400000000000000089a9aa9880000000000 00000000000000000000000000000000004400400004440040440044004440444044004404400044004400000440044000000000000089aaa0a9800000000000 00000044404000444044400040444000044000440004400000444440004400044044004404400044000444400444440000000000000089a8aff4f40000000000 0000004440400044404440004044400004400444000440000044400000440004404400440444044400000004044400000000000000008989ffffff4f00000000 0000000000000000000000000000000004404444400440000004444400440004404444440044444440444444004444400000000000000888f8fffff400000000 000000004440444000004440444000000044400440044000000044400444000440044440000444044004444400044400000000000000008ff888ffff00000000 000000004440444000004440444000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffff88ff000000000 000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff8f000000000 00000000004440000000004440000000000000000000000000000000000000000000000000000000000000000000000000000000000000fffffffff000000000 000000000044400000000044400000000000000000000000000000000000000000000000000000000000000000000000000000000000fff88ffffff000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffff88ffff000000000 0000000000000000000000000000000000000008888800000000000000000000000000000000000000000000000000000000000000ffffffff48ff0000000000 00000000000000000000000000000000000000888888880000000000000000000000000000000000000000000000000000000000004ffffff444400000000000 00000000000000000000000000000000000000888000888000000000000000000000080000000000000088800000008880000000000f4ff44455400000000000 0000000000000000000000000000000000000088800008800000000000000008800088800008800000888888000008888800000000000f444556550000000000 00000000000000000000000000000000000000888000088000000888000000888800888000888800088888888000088888000000000000044065666000000000 00000000000000000000000000000000000000888000888000008888800000888800888000888800088800088000088888000000000000000656565600000000 00000000000000000000000000000000000000888888880000088808880000888880888000888800888800000000888880000000000000006066666000000000 00000000000000000000000000000000000000888888000000088000880000888880088000888800888000000000888880000000000000000000000000000000 00000000000000000000000000000000000000888000000000888800880000888888088000888000888000000000888800000000000000000000000000000000 00000000000000000000000000000000000000888000000000888888880000888088888000888000888000000000888000000000000000000000000000000000 00000000000000000000000000000000000000888000000008888888880000888008888000888000888000088000080000000000000000000000000000000000 00000000000000000000000000000000000000888000000008880008880000888008888008888000088800888000000000000000000000000000000000000000 00000000000000000000000000000000000000888000000000800008880008880000880008888000088888880000000000000000000000000000000000000000 00000000000000000000000000000000000000080000000000000000800008800000000000880000008888800008800000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000008880000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __gff__ 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000305000303030000000000000000010003050003030300000000000000000100030500030303000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __map__ 41414141414141444141414141414141d381d3d3d3d3d3d3d3898ad3d300008f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 51515151515151515151515151515151d3d3d3d3d3d3d3d3d3d3d3d39c000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 60626060616160606060616160606260a0d3808182838485868788898a8b8c00008f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 41414141414141414141414141414141b0b1909192939495969798999a9b9c00009f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 51505050525050515150505050515151c0c1a0a1a2a3a4a5a6a7a8a9aaabac0000af00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 61616161616161616161616161616161d0d1008d8e00b4b5b6b7b8b9babbbc0000bf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 42404041404040414141414040404240e0e1009d9ea0c4c5c6c7c8c9cacbcccdcecf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 51515151515151515151515151515151f0f100adaeb0d4d5d6d7d8d9dadbdcdddedf00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 60606061616060606161606060616161000000bdbec0e4e5e6e7e8e9eaebecedeeef00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 414141414141414141414141414141410000f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 515052505051515050525050515150500000f0f1f2f3f4f5f6f7f8f9fafbfcfdfeff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 6161616161616161616161616161616100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 4040404041404040414141404042404000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 5151515151515151515151515151515100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 5a5b5c5d4a00000000004b6b6c6d006e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __sfx__ 011000201f7151f715237152371426715267152871528714267152671523715237141f7151f71523715237141e7151e7152371523714267152671528715287142a7152a715287152871426715267152871528714 011000000775507755075050730613705137050770007700077050770407700077000755507555077000770006755067550670006700127051270406700067000670506704067000670006555065550670006700 011000002b3122b3122b3112b3112b3151530215302000000000000000000000000000000000002d3122d3152f3122f3122f3122f3112f3150000000000000000000000000000000000000000000000000000000 01100000340103401034011340113401500000000000000000000000000000000000320103201132015000002f0122f0122f0112f0112f0150000000000000000000000000000000000000000000000000000000 011000202171521715247122471228715287152a7122a7122d7152d7152a7122a71228715287152471224712237152371528712287122a7152a7152d7122d7122f7152f7152d7122d7122a7152a7152871228712 0110000009755097550c000000001575515755000000000009745097450000000000157551575500000000000b7450b7450000000000177551775500000000000b7550b755000000000017755177550000000000 011000000c0230c02318615000000c743000000c615136000c73300000186150c7430c7030c7430c6150c6150c7230c72318615036000c743000000c615000000c75300000186150c7430c7030c7430c6150c615 011000000c713006053c605006050c713006053c605006050c713006053c605006050c713186053c605006050c713000003c605006050c713000003c605006050c713000003c605006050c713000003c60500605 011000000000018605186151860500000186051861518605000001860518615186050000018605186151860500000186051861518605000001860518615186050000018605186151860500000186051861518605 011000001351413514135151351513514135141351513515135141351413515135151351413514135151351512514125141251512515125141251412515125151251412514125151251512514125141251512515 011000001c5141c5141c5151c5151c5141c5141c5151c5151c5141c5141c5151c5151c5141c5141c5151c5151a5141a5141a5151a5151a5141a5141a5151a5151a5141a5141a5151a5151a5141a5141a5151a515 01100000135151f5142b515135141f5152b514135151f5142b515135141f5152b514135151f5142b515135141e5152a514125151e5142a515125141e5152a514125151e5142a515125141e5152a514125151e514 011000001c51528514345151c51428515345141c51528514345151c51428515345141c51528514345151c5142f5153b514235152f5143b515235142f5153b514235152f5143b515235142f5153b514235152f514 01100000047550475500000000000000000000000000000000000000000000000000047550475500000000000b7550b755000000000000000000000000000000000000000000000000000b7550b7550000000000 011000000c51518514245150c51418515245140c515185142d51515514215152d51415515215142d515155141c51528514105151c51428515105141c5152851417515235142f51517514235152f5141751523514 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __music__ 00 00414344 00 00404344 00 00024344 00 00034244 00 00024244 00 00034344 00 00010b47 00 00010b46 00 00010b02 00 000d0c03 00 0b000644 00 0b000641 00 0b020601 00 0c03060d 00 0b020601 00 0c03060d 00 0406450e 00 0406450e 00 41020b44 00 41030c44 02 00060144 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344 00 41424344