pico-8 cartridge // http://www.pico-8.com version 41 __lua__ function _init() start_ampm() end function _draw() cls() if state == "ampm" then ampm_draw() elseif state == "level" then level_draw() elseif state == "gameover" then gameover_draw() elseif state == "winscreen" then winscreen_draw() elseif state == "explainer" then explainer_draw() end end function _update() if state == "ampm" then ampm_upd() toomgis_upd() elseif state == "level" then toomgis_upd() level_upd() elseif state == "gameover" then gameover_upd() elseif state == "winscreen" then winscreen_upd() elseif state == "explainer" then explainer_upd() end end function sprm(n, x, y, w, h) -- mirrored sprite draw spr(n, x, y, w, h) spr(n, x+w*8, y, w, h, true) end -->8 -- ampm logo function start_ampm() state = "ampm" music(0) ampm_t = 0 px = 0 py = 0 vx = 0 vy = 0 yacc = 0 for i=2, 14 do add2body(i) add2body(i) add2body(i) add2body(i) end end function ampm_draw() local tx = 300 - ampm_t local fx = 78 toomgis_draw(tx, 50) fx = min(tx, 78) shift = max(ampm_t - 64, 0) width = max(128 - shift, 64) if width > tx then width = tx end for y=0,min(ampm_t, 64) do tline(0, 64-y, width, 64-y, 0, (64-y)/64, 2/width, 0) tline(0, 64+y, width, 64+y, 0, (64+y)/64, 2/width, 0) end if ampm_t > 120 then print("presents", fx, 20, 13) end if ampm_t > 150 then print("toomgis", fx, 30, 12) end if ampm_t > 180 then print("in", fx, 80, 13) end if ampm_t > 210 then print("rise of", fx, 90, 12) print("toomgis", fx, 100, 12) end end function ampm_upd() ampm_t += 1 if ampm_t > 350 then start_explainer() ampm_t = 0 end tangle -= 0.02 if btnp(❎) then start_explainer() end end -->8 -- toomgis tangle = 0 tbody = {} -- array of items in body last_guitar = 0 do_guitar_reset = false GOAL = 100 MAX_PIECES = 200 GUITAR_DELAY = 0.2 -- time before clearing items GUITAR_DURATION = 0.5 GUITAR_COOLDOWN = 2 function toomgis_radius() return 8 + (#tbody / MAX_PIECES) * 40 end function add2body(n) if #tbody < MAX_PIECES then add(tbody, {n=n, r=toomgis_radius() + rnd(9), off=rnd(4), ejecting=false}) end end function hitbody() for piece in all(tbody) do if rnd() < 0.2 then piece.ejecting = true end end end function toomgis_draw(x, y) for i=1,#tbody do -- rotate drawing order local bs = tbody[(i+flr(tangle)) % #tbody + 1] spr(bs.n, x+4+bs.r*sin(tangle+bs.off), y+4+bs.r*cos(tangle+bs.off) ) end sprm(0, x, y, 1, 2) end function toomgis_upd() tangle += vx * 0.01 px += vx py = max(0, py+vy) if px >= 10000 then px = 0 reset_items() end vy += yacc local to_remove = {} for idx, piece in pairs(tbody) do if piece.ejecting then piece.r += 5 if piece.r > 90 then add(to_remove, idx) end end end for idx in all(to_remove) do deli(tbody, idx) end end -->8 -- level levels = { { name="store aisle", sky=7, gnd=5, mapy=2, bad_item_ratio=0.12, unit="CM", time=300, next=2, }, { name="city nights", sky=2, gnd=5, mapy=5, bad_item_ratio=0.16, unit="M", time=240, next=nil, }, } horizon = 64 function start_level(n) state = "level" music(-1, 1000) -- toomgis reset tbody = {} px = 0 py = 0 vx = 0 vy = 0 yacc = 0 streak = 0 -- level reset lvl = levels[n] lvl_start_time = time() reset_items() end function reset_items() items = {} for i=0,10 do add(items, {x=0, y=0, n=0}) end end function level_draw() -- background --rectfill(0, 0, 128, horizon, lvl.sky) --rectfill(0, horizon, 128, 128, lvl.gnd) --map(0, lvl.y, 0, 32, 16, 8) -- each level is 3tl/24px cls(lvl.sky) --- zoom should go from 16 to 2 w/ growth local zoom = 16 - (14 * (#tbody / MAX_PIECES)) local h=24 * zoom for y=0,h do tline(0, 128-h+y, 128, 128-h+y, -- screen coordinates (entire screen scanlines) px/80, 2+y/(8*zoom), 1/(8*zoom), 0) -- don't scale x start with zoom, since position is not dependent end toomgis_draw(20, 96-py) -- percentage of way through guitar duration local gdp = (time() - last_guitar) / GUITAR_DURATION; if gdp < 1 then circ(20, 104-py, 16+(gdp*100), 11) circ(20, 104-py, 16+(gdp*75), 11) circ(20, 104-py, 16+(gdp*50), 11) circ(20, 104-py, 16+(gdp*25), 11) else spr(35, 20, 104-py, 2, 2) end -- draw item shadows shadow_pal() for item in all(items) do if item.n != 0 then spr(item.n, item.x-px+1, item.y+1) end end -- reset pal() for item in all(items) do if item.n != 0 then spr(item.n, item.x-px, item.y) -- collider -- circ(item.x-px+4, item.y+4, 4, 8) -- stink if item.n > 16 then draw_stink(item.x-px, item.y) end end end -- hud local streak_str = streak2mult() if streak_str == 1 then streak_str = "" else streak_str = streak_str.."X" end rectfill(0, 0, 128, 8, 2) print("SIZE "..#tbody..lvl.unit.." "..streak_str.." ", 1, 1, 9) print(time_left().."S", 60, 1, 9) print("GOAL "..GOAL..lvl.unit, 88, 1, 9) end function time_left() return flr(max(0, (lvl.time+lvl_start_time)-time())) end function streak2mult() if streak > 20 then return 5 elseif streak > 10 then return 3 elseif streak > 5 then return 2 else return 1 end end function draw_stink(x, y) local step = flr(2*time()) % 3 - 1 line(x+1, y-2, x+1 + step, y-7, 3) line(x+3, y-2, x+3 + step, y-7, 3) line(x+6, y-2, x+5 + step, y-7, 3) end function level_upd() if time_left() <= 0 then if #tbody < GOAL then start_gameover() elseif lvl.next != nil then start_level(lvl.next) else start_winscreen() end end if btn(➡️) then vx += 0.1 end if btn(⬅️) then vx -= 0.05 end if vx < 0 then vx = 0 elseif vx > 4 then vx = 4 end -- jump if btnp(❎) and py == 0 then yacc = 6 elseif py > 0 then yacc = -1 elseif py == 0 and yacc < 0 then -- on ground yacc = 0 vy = 0 end -- guitar local guitar_elapsed = time() - last_guitar if btnp(🅾️) and guitar_elapsed > GUITAR_COOLDOWN then last_guitar = time() -- now with three amazing jams sfx(rnd({14,15,16})) do_guitar_reset = true elseif (guitar_elapsed > GUITAR_DELAY) and do_guitar_reset then reset_items() do_guitar_reset = false end -- check for falling off back of screen and player collision for item in all(items) do if item.x < (px-20) then item.n = 0 end local d = dist(20+8, 96-py+8, item.x+4-px, item.y+4) --printh(item.n.." "..(item.x+4-px)..","..(item.y+4).." d="..d) if d < toomgis_radius() and item.n != 0 then -- item collision if item.n > 16 then sfx(5, 0) hitbody() streak = 0 else sfx(6, 0, 0, 4*streak2mult()) for i=1,streak2mult() do add2body(item.n) end streak += 1 end item.n = 0 end end -- add item if inactive (chance increases as more slots inactive) to_check = rnd(items) if to_check != nil and to_check.n == 0 then -- good items 2-14, bad items 18-30 if rnd() < lvl.bad_item_ratio then to_check.n = flr(rnd(12)+18) else to_check.n = flr(rnd(12)+2) end to_check.x = px + 128 + rnd(100) to_check.y = rnd(90) end end -->8 -- utils function dist(x0,y0,x1,y1) -- scale inputs down by 6 bits local dx=(x0-x1)/64 local dy=(y0-y1)/64 -- get distance squared local dsq=dx*dx+dy*dy -- in case of overflow/wrap if(dsq<0) return 32767.99999 -- scale output back up by 6 bits return sqrt(dsq)*64 end function shadow_pal() for i=0,16 do pal(i, 1) end end -- gameover function start_gameover() state = "gameover" py = 0 px = 64 tbody = {} music(4) for i=18,26 do add2body(i) add2body(i) add2body(i) end end function gameover_draw() cls(1) toomgis_draw(px, py) shadow_pal() sprm(32, px+1, py+13, 1, 2) pal() sprm(32, px, py+12, 1, 2) -- gritpy sprm(15, px-20, py-70, 1, 4) -- grimace is backwards spr(64, px+30, py-85, 2, 4) spr(64, px+30-16, py-85, 2, 4, true) print("WE RUN THIS TOWN", px-45, py-80, 9) print("CRUSH HIM", px+20, py-95, 2) print("GAME OVER", 50, py-110, 8) end function gameover_upd() px += rnd(2) - 1 py += 0.3 if py > 200 then start_gameover() end end -- winscreen function start_winscreen() music(0) state = "winscreen" px = 64 py = -100 tbody = {} for i=2,18 do add2body(i) add2body(i) add2body(i) add2body(i) end for i=129,190 do add2body(i) end end function winscreen_draw() cls(1) toomgis_draw(px, py) -- gritty sprm(15, px-20, py+70, 1, 4) -- grimace is backwards spr(64, px+30, py+85, 2, 4) spr(64, px+30-16, py+85, 2, 4, true) print("WE REGRET EVERYTHING", px-45, py+60, 9) print("I REPENT", px+20, py+75, 2) print("YOU WIN", 50, py-60, 8) print("TOOMGIS WILL RETURN", 20, py-100, 8) end function winscreen_upd() py += 0.5 end function start_explainer() state = "explainer" scene_start = time() tbody = {} -- for i=2, 14 do -- add2body(i) -- add2body(i) -- end end function explainer_draw() cls(2) rectfill(0, 40, 128, 80, 0) print("toomgis loves snacks", 20, 1, 9) for n=0,14 do local ix = 10*n spr(n+2, ix, 20+10*sin(t()+n/14)) local iy = 100+10*cos(t()+n/14) spr(n+18, ix, iy) draw_stink(ix, iy) end toomgis_draw(50, 50) spr(35, 50, 60, 2, 2) for n=0,14 do end print("toomgis hates stinky food", 7, 120, 9) print("❎ jump\n🅾️ shred\n⬅️ move ➡️", 5, 50) print("\"too much good\n stuff\"", 70, 55) end function explainer_upd() if time() - scene_start > 10 then start_level(1) end if btnp(❎) then start_level(1) end end -- __gfx__ 000022220000000000444400000ee000aaaaaaaa0000000000555500045454000099990000087000000000000cccccc00077700000000a0000ffff0000005555 000222220000000004eee440009ea9000aa77aa0060000000088880004545400099999900007400009f9f9f0cc1111cc06444660000a0a000fff4ff000055555 00224444000000004e444e44009ae9000aa778a000666600008ff800055555000aaaa8a00044470099999999c1111f1c064446660a0aaaa0ff4ff4ff00055555 00224554000000004e4004e4009aa9000a8888a00088880000ffff0004545400088aaaa000477700aaaaaaaac1f1ff1c0644460600aaaa004fffffff00099999 00225c74000000004e4004e4009ae9000a877aa00087870000f44f0004545400008aa80000ffff004a444a44c1ff111c0644466600888880fff4ff4f00099999 022247440000000044e444e4009ea9000aaaaaa000787800008ff8000555550000aa880000ffff00bbb88abbc1fff11c0644466000899880f4ffffff00997799 0222244400000000044eee40009ae9000aaaaaa0008787000088880004545400000aa000000ff00099998999cc1111cc06644600008989800ff4f4f000977779 022224770000000000444400000ee00000aaaa000088880000088000045454000008a000000ff000099999900cccccc0006666000008880000ffff0009977079 02202944000000000006000000333300000033000000000000033000000330000003300000000000000000000033330000000330000030000033330009997799 202029990000000000666660030330300000033000330300023333300099990003333330000000300333333003ffff300030330000023300033ee33009999999 20202099000000000063336030300303000999330000300022233320099a9a90033bb33000000b300377773003ffff30000330000002220033eeee3309999999 202024090000000000633360030330300099990300888800023202229999999933bbbb330000b330037997300333333000030000002222003edeede30a990000 2020404f00000000006333600330033000999900088888800322232099999a9933bbbb33000b3300037997300333333000222000002222003eeeeee30a999000 0020040f00000000006333600003300009999000088888800202020099999999333bb33300b330000377773003333330022222000022220033edee330aaa9999 0000000000000000006333600003300099900000088888802220222009999990033333300333000003333330033333300022200000222200033ee33000aa9999 00000000000000000006660000033000990000000088880002000200009999000030030000000000000000000033330000020000000220000033330000aaaaaa 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000aaaaaa 00000000000000000000000000000000000006440000000000000000099999099099099000000000000000000000000000000011000000000000000000a0aaaa 0700077700000000000000000000000000006444000000000000000099909909999999900000000000000000000000000000011100000000000000000000aaaa 00707700000000000000000000000000000044540000000000000000999099099099099000000000000000000000000000001111000000000000000000009aaa 0007077700000000000000000000000000044546000000000000000088808808808808800000000000000000000000000000066600000000000000000009999a 000777000000000000000000000000000044540000000000000000000880880880880880000000000000000000000000000006b6000000000000000000999999 0007777700000000000000000000000bb44540000000000000000000008888088088088800000000000000000000000000000166000000000000000009999999 00007000000000000000000000000bbbb55400000000000000000000000000000000000000000000000000000000000000000016000000000000000009999999 000077770000000000000000000bbbbb5b5400000000000000000000000000000000000000000000000000000000000000111001000000000000000099999999 0000000700000000000000000bbbb77575bb00000000000000000000022220022022022000000000000000000000000006611111000000000000000099999999 000000770000000000000000bbbb775757bb00000000000000000000020222022222222000000000000000000000000000001111000000000000000099999999 000007700000000000000000bbbbbbb577bb00000000000000000000020222022022022000000000000000000000000000011111000000000000000099999999 000000700000000000000000000000b77bb000000000000000000000011110011011011000000000000000000000000000111111000000000000000099999999 000007000000000000000000000000b7bb0000000000000000000000011000011011011000000000000000000000000000111111000000000000000099999999 000077000000000000000000000000bbb00000000000000000000000011000011011011100000000000000000000000000111111000000000000000099999999 000770000000000000000000000000bb000000000000000000000000011000000000000000000000000000000000000000000440000000000000000009999999 22000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22722200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 27772220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 20072222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22022222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222220000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 22222222222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00222000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00222220544444445666666656666666566666665666666656666666066666660005500000000000000000000000000000000000000000000000000000000000 0022222054a4a4a456aa6aa656aa65565666666656556aa656556aa6565555560056650000000000000000000000000000000000000000000007700000000000 0000000054444444566666665666666656666666566666665666666656555556056666500000000000000000000000000000000000000000007dd70000000000 0000000054a4a4a456aa6aa656aa6aa6566666665655655656aa65565655555600566500000000000000000000000000000000000000000007dddd7000000000 0000000054444444566666665666666656666666566666665666666656555556000550000000000000000000000000000000000000000000dddddddd00000000 0000000054a444a45666666656aa6aa65666666656556aa656aa655656555556005665000000000000000000000000000000000000000000dddddddd00000000 0000000054445444566656665666666656666666566666665666666656555556005665000000000000000000000000000000000000000000dddddddd00000000 00000000bbbbbbbbbbbbbbbb56aa6aa65666666656aa655656aa655656666666055665500000000000000000000000000000000000000000dddddddd00000000 00000000000000000004400000044000000443330004400000044000000330000004400000044000000330000004400000044000000000000000000000000000 0000000000000000000440000004400000044433003433000334433000333300400440000334433000333000000440000033430000000000000dd00000000000 000000000000000000044000330440000004403303333330033333300033330004444000003333000033300033344000000333000000000000dddd0000000000 00000000000000000004400034444033000440000333333000044000033333300404400000044000033333333334400400044000000000000dddddd0ddddd000 0000000000000000000440003304433300044000033333330333333003333330000440040034430003333330030444400334433000000ddddddddddddddddd00 00000000000440000004400000044433000433303334433300044000333333330004444000033000000340000004400003333330000dddddddddddddddddddd0 000000000004400000044000000440000004433033343333033333303333333300044000000440000033400000044000003333000ddddddddddddddddddddddd 00000000bbbbbbbbbbbbbbbb00044000000440000033400000044000000440000004400000044000003440000004400000044000dddddddddddddddddddddddd 00000000000000000000000000000000030000000000000000333300000000000000000000000000000000000000000000600000566666660000000000000000 00000000000000000000000000044000333000000099990033333830066666600044440000000000000007000000000006860000566666660000000000000000 000000000000000000000000004444000400000009aaaa903834333006655660044444400000eee0000076700000000008880000566666660000000000000000 00000000000000000000000004cccc40333000000acaaca00334383006566560055555500000ece000007670000cc00008886660566666660000000000000000 0000000000000000000000004cccccc4040033300aaaaaa00034330006666660044444400eeeeee0077776700006600006668880566666660000000000000000 0000000000000000000000000ccc8cc0333034300aa55aa00004000006566560055555500ecce4e00757767000cccc0008888480566666660000000000000000 0000000000000000707070700ccc8cc0040004000aa55aa00004000006566560044554400eeee4e0075777700666666008888480566666660000000000000000 00000000bbbbbbbb7b7b7b7bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb0000000000000000 00000000666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666600000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000880880d0009909900d0d0880099000000bb0bb000000000008b9ec00000000000000700007d7d7d000000000000fff00cc0cc0cc0550555000000000 00000000880880c0009909900c0c0880099000000ba0ba000bbbbb900ce8b9e000000000000707000d7d7d700a0a0a000ffffff0cc0cc0cc0440444000000000 00000000880880c0090990990c0c0880909909900ba0ba000b999990089beac000000000007070700d7d7d700a9a9a900eeeeef0ff0ff0ff0440444000000000 00000000880880c0090990990c0c0880909909900bb0bb000bbbbb900ed88ed000000000070707070d7d7d700a9a9a900ffffff0cc0cc0cc0550555000000000 00000000666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666600000000 00000000555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555500000000 __label__ 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 00009999999999999999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000ddd0ddd0ddd00dd0ddd0dd00ddd00dd00000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000d0d0d0d0d000d000d000d0d00d00d0000000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000ddd0dd00dd00ddd0dd00d0d00d00ddd00000000000000000000000000000000000 99999999999900009999999900009999999999999999999999999999999000d000d0d0d00000d0d000d0d00d0000d00000000000000000000000000000000000 99999999999900009999999900009999999000099999999000099999999000d000d0d0ddd0dd00ddd0d0d00d00dd000000000000000000000000000000000000 99999999999900009999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999000099999999000099999999000000000000000000000000000000000000000000000000000000000000000000000 99999999999900009999999900009999999000099999999000099999999000000000000000a00000000000000000000000000000000000000000000000000000 999999999999000099999999000099999990000999999990000999999990000000000000a0affff0000000000000000000000000000000000000000000000000 99999999999900009999999900009999999000099999999000099999999000ccc00cc0accaccc4fcc0ccc00cc000000000000000000000000000000000000000 999999999999000099999999000099999990000999999990000999999990000c00c0c0cacacccfcff00c00c00000000000000000000000000000000000000000 888888888888000088888888000088888880000888888880000888888880000c00c0c0c8c8c8cfcff00c00ccc000000000000000000000000000000000000000 888888888888000088888888000088888880000888888880000888888880000c00c0c0c8c9c8cfc4c00c0000c000000000000000000000000000000000000000 888888888888000088888888000088888880000888888880000888888880087c00cc09cc98c8cfccc0ccc0cc0000000000000000000000000000000000000000 88888888888800008888888800008888888000088888888000088888888008700000996488864f74000000000000000000000000000000000000000000000000 88888888888800008888888800008888888000088888888000088888888047470000aa6444666444700000000000000000000000000000000000000000000000 888888888888000088888888000088888880000888888880000888888880444700554a6444646477700000000000000000000000000000000000000000000000 88888888888800008888888800008888888000088888888000088888888047770088bb6444666ffff00000000000000000000000000000000000000000000000 888888888888000088888888000088888880000888888880000888888889ffff008f996444666ffcccccc0000000000000000000000000000000000000000000 000088888888000088888888000088888880000888888880000888888889ffff00ff9966446f9fcc1111cc000000000000000000000000000000000000000000 00008888888800008888888800008888888000088888888000088888888aaffa00f4aaa6666999c1111f1c000000000000000000000000000000000000000000 00008888888800008888888800008888888000088888888ccc7888888888affa008f4a4aaaaaaac1f1ff1c000000000000000000000000000000000000000000 000088888888000088888888000088888880000888888881164888888888aa800088bbb4a444a4c1ff111c000000000000000000000000000000000000000000 00008888888800008888888800008888888000088888888116488888888aa8800008999bbb88abc1fff11c000000000000000000000000000000000000000000 00008888888800008888888800008888888000088888888f164888888880aa0000000999999899cc1111cc000000000000000000000000000000000000000000 00008888888800008888888800008888888000088888888ff648888888808a00000000aa9999995cccccc0000000000000000000000000000000000000000000 00008888888800008888888800008888888000088888888ff648888888800000000000aaaa454544545400000000000000000000000000000000000000000000 00000000888888888888888800008888888000088888888116688888888888800000000aaa454545555500000000000000000000000000000000000000000000 00000000888888888888888800008888888000088888888ccc688888888888800000000000000004545444000000000000000000000000000000000000000000 00000000888888888888888800008888888000088888888000a888888888888000222222220000045454e4400000000000000000000000000000000000000000 00000000888888888888888800008888888000088888888000a888888888888002222222222000004e444e440000000000000000000000000000000000000000 00000000888888888888888800008888888000088888888000a888888888888022444444442200004e4004e40000000000000000000000000000000000000000 000000008888888888888888000088888880000888888880000888888888888022455445542200004e4004e40000000000000000000000000000000000000000 0000000088888888888888880000888888800008888888800008888888888880225c7447c522000044e444e40000000000000000000000000000000000000000 00000000888888888888888800008888888000088888888000088888888888822247444474222000044eee400000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000004545400000022224444442222000004447770000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000005555500000022224777742222000000064446600000000000000000000000000000000000000 00000000000000000000000000000000000000000000000005554545400000022029444492022000000064446660000000000000000000000000000000000000 00000000000000000000000000000000000000000000000ff8884545400000202029999992020200000064446060000000000000000000000000000000000000 0000000000000000000000000000000000000000000000fff8f87555500000202020999902020204444064446660000000000000000000000000000000000000 000000000000000000000000000000000000000000000ffafff7454540000020202409904202024eee4464446600000000000000000000000000000000000000 000000000000000000000000000000000000000000000afaff4447454000002020404ff404e202e444e46644600a000000000000000000000000000000000000 0000000000000000000000000000000000000000000a0aaaa84777999000000020040ff049e294e4004e46666a0a000000000000000000000000000000000000 00000000000000000000000000000000000000000000aaaaf8ffff9999060000000aaaaaaaae6666004e400a0aaaa00000000000000000000000000000000000 0000000000000000000000000000000000000000000088888fffffaa8a0066660009aa77aaaa4545444e4000aaaa000000000000000000000000000000000000 0000000000000000000000000000000000000000000089988ffff8aaaa0088880009aa778aae45459999aaa08888800000000000000000000000000000000000 000000000000000000000000000000000000000000008989800ff8aa800087870009a8888aea5cccccc99aff8998800000000000000000000000000000000000 00000000000000000000000000000000000000000000088800000aa8800078780009a877aaaecc1111ccaaf48989800000000000000000000000000000000000 000000000000000000000000000000000000000000000000000000aa055a57870009aaaaaaeec1111f1caaff4888000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000008a0a8a88880009aaaaaa04c1f1ff1caafffff0000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000a0aaaa0000000eaaaa004c1ff111caa4ff4f0000000000000000000000000000000000000 00002222222222222222000000002222222000022222222000022222222af000000000000004c1fff11c9f9ffff0000000000000000000000000000000000000 0000222222222222222200000000222222200002222222200002222222288000099990000004cc1111cc99999f00000000000000000000000000000000000000 00002222222222222222000000002222222000022222222000022222222880009999990000004ccccccaaaaaa000000000000000000000000000000000000000 0000222222222222222200000000222222200002222222200002222222298000aaaa8a000000044444a444a44000000000000000000000000000000000000000 000022222222222222220000000022222220000222222220000222222228000088aaaa00777000000bbb88abb000000000000000000000000000000000000000 00002222222222222222000000002222222000022222222000022222222f000008aa800644466000099998999000000000000000000000000000000000000000 00002222222222222222000000002222222000022222222000022222222f00000aa8800644466600009999990000000000000000000000000000000000000000 00002222222222222222000000002222222000022222222000022222222f000000aa000644460600000000000000000000000000000000000000000000000000 00002222000022222222222200002222222222222222222222222222222000ddd0dd000644466600000000000000000000000000000000000000000000000000 000022220000222222222222000022222222222222222222222222222220000d00d0d00644466000000000000000000000000000000000000000000000000000 000022220000222222222222000022222222222222222222222222222220000d00d0d00664460000000000000000000000000000000000000000000000000000 000022220000222222222222000022222222222222222222222222222220000d00d0d00066660000000000000000000000000000000000000000000000000000 00002222000022222222222200002222222222222222222222222222222000ddd0d0d00000000000000000000000000000000000000000000000000000000000 00002222000022222222222200002222222222222222222222222222222000000000000000000000000000000000000000000000000000000000000000000000 00002222000022222222222200002222222222222222222222222222222000000000000000000000000000000000000000000000000000000000000000000000 00002222000022222222222200002222222222222222222222222222222000000000000000000000000000000000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000000000000000000000000000000000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000000000000000000000000000000000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000ccc0ccc00cc0ccc000000cc0ccc000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000c0c00c00c000c0000000c0c0c00000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000cc000c00ccc0cc000000c0c0cc0000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000c0c00c0000c0c0000000c0c0c00000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000c0c0ccc0cc00ccc00000cc00c00000000000000000000000000000000000000000 00002222000022222222222200002222222000022222222000022222222000000000000000000000000000000000000000000000000000000000000000000000 00001111111111111111000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111111111111000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111111111111000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111111111111000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111111111111000000001111111000011111111000011111111000ccc00cc00cc0ccc00cc0ccc00cc000000000000000000000000000000000000000 000011111111111111110000000011111110000111111110000111111110000c00c0c0c0c0ccc0c0000c00c00000000000000000000000000000000000000000 000011111111111111110000000011111110000111111110000111111110000c00c0c0c0c0c0c0c0000c00ccc000000000000000000000000000000000000000 000011111111111111110000000011111110000111111110000111111110000c00c0c0c0c0c0c0c0c00c0000c000000000000000000000000000000000000000 000011111111000000000000000011111110000111111110000111111110000c00cc00cc00c0c0ccc0ccc0cc0000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000001111111000011111111000011111111111100000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00001111111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __map__ 272800000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8b8b8b800000000000000000000000000000000000000000000000000 3738000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000b8b8b8b8b4b8b8bdb3bdb8b8b8b8b3b1b1b3b8b8b8b8bebebebebebebebeb8b2b8b8bdb8b8beb8b6b8b8b1b4b8b8b8b8b8b8b8b8b8b8b8b8bcb8b9b8bebebebdb1b8b9beb4b8b3b1b8bdb2b8b1b8 b9b9b9b5b1b5b2b5b8b8b8b8b8b8b8b8b8bdbbb8b8b8b5b3b7bdbcbcb2b8b5b5b5bdbabdb2b8b8b6b8bebebcbcbcbcbcbcbcb6b3b5b4b4b8b5bdb3bdb5bbb5b5b3b1b1b3b8b2b8babdb2babebebebabeb7b8b5b6b4b8b7b5bdb8b7b4b1b7b8b5bbbbbbb7b7b7b5b5bdb8bcbcb9b9bebebeb8b3b6beb8b9b6b6b2bdb4bab4bebd b7b5b5b2babbbab5bdb2b1b3b6b6b2b8b8bdbbb9b5b6b4b3b8b7b4b7b8b8b5b8b5bdbabdb8b6b2b8b6bebeb5b5b5b5b5b5b5b6b3b3b5b8b5b8bdb3bdb5bbb5b5b3b1b3b3b8b2b8babdb2bab5bdb2babeb8b1beb8b8b4beb8b6b3b2b8b8b8b8b5bbbbbbb7b7b8b8b5bdb8b8bcb9b9beb8beb8b2b4b8bdb7bcb8b7b8b1b8b2b8b8 b1b2b5b2babbbab5b2b2b3b5b5b5b2b8b8bdbbb9b6b2b4b3b4b4b8b7b5b4b5b5b5bdbabdb2b8b8b2b8bebeb1b1b1b1b1b1b1b6b8b9b8b5b8b9bdb3bdb5bbb5b5b3b1b3b3b8bab8babdb2bab5bdb2babeb8b7b1b8b4b8b8b8b4b8b8b3b3b8b8b5bbbbbbb7b7b7b5b5bdb8bcbcb9b9bebebeb1b7bcb2beb8bdbab8b9b8bdb8b3b4 000000003a3a3a00000101010000000000000000009b9700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000097009c00000000000087888500870000000000000000988790009700000000000000000084008500009a000000000000000000008700870085 000000003a3a3a3a00013a0100000000000000000098969a000000000000000000000000000000000000000000000000000000000000000000000000970000000000000000009394959b000000000000858585908500880088960000009b83870096000000000000000000850085000095000000000000000087008600860085 000000003a3a3a3a000101010100000000000000009c96940000000000000000000000000000000000000000000000000000000000000000000000009c00000000000000830093969598000000000000858385878500848884940000009886838795000000878787878700850085000095000000000000000083008600850085 a7a2a3a4a2a5a1a6aba6a5a181a1a2a2a2acaba2a2929292a1a4a9a1a6a1a1a7a2a2aaa1a2a3a2a3a2a3a6a5a6a5a2a5a2a8a8a2a2a6a4a6a6aba4a492a6a2aca7a4a8a4828192929292aba4a6a9a6a18282828282abad82ad92a2a7a19282828292a1aaa68281828182a182a482a1ab9291a281a2a281a6a182a682a182a182 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000009a979a00000000000000000085860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 009000009494960094000093009b000085860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 8b9400009694940098000093009b000085860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00930000949696009400009b00930000838500000000008d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 a192a1a1929292a192a1a192a192a1a18282a19d9e9f9d9e9f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000008f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000008f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000000000870000000000850085000089000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0000008300848583008700830086000083000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0082008200828282008200820082008182008100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __sfx__ 000100000050013160155601516018560181601b560191601d5601c1601f5601d1601f5601e1601f5601d1601d5601a160185600f1601056011160145601416018560181601b5601a1601b560191601b56017160 001400000010000150001500015000100001500010002150001000015000150001500010000150001000215000100001500015000150001000015000100021500010000150001500015000100001500010005150 001400000a0500c0500c0500a050050500705007050050500a0500c0500c0500a0500c0500f0500f0500c05011050130501305011050130501605016050130501d0501b0501b0501d0501b05018050180501b050 361400000050200502275520050200502275520050200502275522455027552005022755227500275522455227550275002755227500275002755227500275002755224550275522750027552245522455222552 001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 0003000000503165531d5532155324553265532655325553225531e5531a5531855317553195531e5532055323553255532555325553255532555324553235532355322553215531d5531a5531a5531a55319553 000100000c5600e5600e5600c5600e56010560105600e56010560115601156010560115601356013560115601356015560155601356017560185601856017560185601a5601a560185601c5601d5601d5601c560 011400002e4542e4542e4542e45400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 01180000220522205227052240522405229052270522705216052160521b05218052180521d0521b0521b052220522205227052240522405229052270522705216052160521b05218052180521d0521b0521b052 011800000670006700067500675000700067500670006750007000070006750067500070006750067000675006700067000675006750007000675006700067500070000700067500675000700067500670006750 081400002375220752217521e7521f7521c7521d7521a7521b75218752197521775217752157521375213752117521275210752107520e7520e7520b7520c752097520a752077520875207752067520575205752 30100000002000225202200022520220002252042520b2000225204252092520b20002252042520925209200022000e252022000e252022000e25210252092000e25210252152520b2000e252102521525200200 081400002315220152211521e1521f1521c1521d1521a1521b15218152191521715217152151521315213152111521215210152101520e1520e1520b1520c152091520a152071520815207152061520515205152 081400002345120451214511e4511f4511c4511d4511a4511b45118451194511745117451154511345113451114511245110451104510e4510e4510b4510c451094510a451074510845107451064510545105451 660400000f1611316118161131610f1610f16116161181611b1611b1611616111161131611b1611f161221611d1611b161181611d1612216124161241611f1611b1611f161271612916127161221611d16122161 60040000071410a1410a141071410a1410c1410c1410a1410c1410f1410f1410c141071410a1410a141071410a1410c1410c1410a1410a1410c1410c1410a141071410a1410a14107141071410a1410a14107141 600400000925200252042520225207252092520025204252022520725209252002520425202252072520925200252042520225207252092520025204252022520725209252002520425202252092520025210252 __music__ 01 01424344 00 01024344 02 01024344 00 01020344 01 0a4b4344 00 0a0c4d44 00 0a0c0d44 02 0d0c4d44 00 41424344 00 41424344 00 0f105044 02 4f4f5044