pico-8 cartridge // http://www.pico-8.com
version 41
__lua__
-- snow dogs
-- by yoyodyne


function _init()
	create_particles()
	mode = "title"
	goal = 10000
	start_time = 0
	music(0)
end

function _update()
	update_snow()
	if mode == "title" then
		title_upd()
	elseif mode == "cast" then
		cast_upd()
	elseif mode == "game" then
		music(-1, 300)
		sled_upd()
		trees_upd()
		npc_upd()
	end
end

function _draw()
	if mode == "title" then
		title_dr()
		draw_snow()
	elseif mode == "cast" then
		cast_dr()
		draw_snow()
	elseif mode == "game" then
		draw_game()
		draw_snow()
		draw_hud()
		--draw_bounds()
	elseif mode == "gameover" then
		draw_flag(true)
	elseif mode == "win" then
		draw_flag(false)
	end
end

function snowbg()
	cls(6)
	-- grey transparency
	palt(0b000001000000000)
end

function draw_game()
	snowbg()
	trees_dr()
	sled_dr()
	if npc.draw != nil then
		npc.draw(npc.x, npc_y())
	end
end

-->8
-- title
title_y = 0
title_stretch = 0
title_rainbow = 0
title_susan = -40
title_89 = 40

function title_upd()
	if title_y < 50 then
		title_y += 1
	elseif title_stretch < 16 then
		title_stretch += 1
	end 
	if title_stretch == 16 and title_susan < 30 then
		title_susan += 1
		title_89 -= 1
	end
	
	if btnp(4) then
		mode = "game"
		start_time = t()
	end

	if t() > 10 and t() < 20 then
		mode = "cast"
	end
end

function title_dr()
	cls(0)
	palt()

	
	if title_susan then
		print("susan butcher's", title_susan, title_susan + 10, 12)
	end
	
	pal(8, 8+t()%6)
	pal(12, 8+(t()+4)%6)
	sspr(48, 24, 54, 16,
	 40-title_stretch, title_y,
	 54+title_stretch*2, 16+title_stretch)
	sspr(104, 24, 16, 16,
	 70+title_89, 100+title_89,
	 48, 48)
	 pal(8, 8)
	 pal(12, 12)
end	


function cast_dr()
	snowbg()
	print("dogs", 38, 110, 1)
	sled_dr()

	print("❎ to mush", 45, 75, 1)

	draw_heart(100, 80)
	draw_fan(100, 90)
	print("the fan", 90, 120)

	draw_tree(110, 0)
	draw_tree(115, 11)
	draw_tree(118, 12)
	draw_siren(110, 20)
	draw_yeti(111, 40)
	draw_tree(90, 16)
	draw_tree(100, 20)
	draw_tree(110, 24)
	draw_tree(93, 28)
	print("yeti", 100, 58)

	draw_tree(20, 20)
	draw_tree(30, 20)
	draw_tree(40, 20)
	draw_moose(41, 30)
	draw_tree(20, 40)
	draw_tree(30, 40)
	draw_tree(40, 40)
	print("moose", 15, 60)

end

function cast_upd()
	if btnp(4) then
		mode = "game"
	end

	if t() > 20 then
		mode = "title"
	end
end
-->8
-- snow

particles = {}
max_x = 200
	
function create_particles()
	for i=1,300 do
		particles[i] = {
			y=rnd(128)-128,
			x=rnd(max_x),
			dir=rnd(2)-1
		}
	end
end

function draw_snow()
	for p in all(particles) do
		pset(p.x, p.y, 7)
	end
end

function update_snow()
	for p in all(particles) do
		p.x += p.dir - steering
		p.y += 1 + speed
		if p.y > 128 or p.x < 0 then
			p.y = 0
			p.x = rnd(max_x)
		end
	end
end

-->8
-- game entities

function disp_time()
	return flr(t() - start_time) 
end

function draw_hud()
	rectfill(14,0,114,4,7)
	local d = 14+distance/goal*100
	rectfill(14,1,d,3,11)
	rectfill(d,1,d,3,4)
	for l=1,dogs do
		print("🐱", 1, (l-1)*7, 7)
	end
	print(disp_time(), 3, 45)
	print("▒", 108, 0, 0)

	if distance >= goal then
		mode = "win"
	-- if distance is near multiple of 1000
	elseif distance%1000 < 100 then
		local mtg = ceil((goal-distance)/1000)*100
		print(mtg.." miles to go!", 30, 64)
	end
end

function draw_bounds()
	sl, sr = sled_bounds()
	rect(screenx(sl), sled_top(), screenx(sr), 128)
	tl, tr = tree_bounds()
	rect(screenx(tl), 100, screenx(tr), 128)

	if npc.collide != nil then
		rect(npc.x-8, npc_y(), npc.x+8, npc_y()+16)
	end
end 
-->8
-- sled

steering = 0
speed = 1
distance = 0 -- 10ths of mile
sled_x = 64
dogs = 6
mush_time = 0

function sled_top()
	return 128-16*ceil(dogs/2)
end	

function sled_upd()
	if btn(0) then
		steering = -1
	elseif btn(1) then
		steering = 1
	else
		steering = 0
	end


	speed = 2 + (distance / 3000)
	
	if btnp(4) and t() - mush_time > 1 then
		mush_time = t()
		sfx(2)
		--steering = rnd({-2, 2})
	end

	if t() - mush_time < 0.3 then
		speed *= 3
	end
	if btn(3) then
		speed *= 0.2
	end
	
	distance += speed
	sled_x += steering * speed
	
	sl, sr = sled_bounds()
	tl, tr = tree_bounds()
	if sl < tl or sr > tr then
		crash()
	end
	
	if distance >= goal then
		state = "win"
		end_time = disp_time()
		music(0)
	end
end

function sled_bounds()
	if dogs % 2 == 0 then
		return sled_x-8, sled_x+8
	else
		return sled_x-8, sled_x
	end
end

function crash()
	sfx(4)
	dogs -= 1
	if dogs == 0 then
		mode = "gameover"
	end
	local ti = (cur_tree() + 8) % #tree_wall + 1
	l, r = tree_bounds()
	sled_x = (l + r) / 2

	-- reset npc
	--npc.draw = nil
	npc.collide = nil
end

function heart()
	npc.draw = draw_heart
	if dogs < 6 then
		dogs += 1
	end
	npc.collide = nil
end

function sled_dr()
	local d = {[0]=5, 6, 5, 7, 7, 6}
	for x=0,1 do
		for y=0,2 do
			if y*2+x < dogs then
				-- draw dogs centered
				local dx = screenx(sled_x + steering*4*y) + (8 * (x-1))
				spr(d[y*2+x], dx, 128-(16*(y+1)), 1, 2)
			end
		end
	end
end


-->8
-- trees

-- left & width
tree_wall = {
	{l=5, w=80}, 
	{l=5, w=80},
	{l=5, w=80},
	{l=5, w=80},
	{l=10, w=80},
	{l=15, w=80},
	{l=20, w=80},
	{l=17, w=80},
	{l=23, w=80},
	{l=25, w=80},
} -- 1..10

function draw_tree(x, y)
	spr(11, x, y, 1, 2)
end

function screenx(x)
	-- world x to screen x
	return x + 64 - sled_x
end

function cur_tree()
	-- tree at top of screen right now (cycles)
	return #tree_wall - flr((distance / 16) % #tree_wall)
end

function trees_dr()
	local ct=cur_tree()
	for i=-2,8 do
		tree = tree_wall[(ct+i) % #tree_wall + 1]
		draw_tree(
			screenx(tree.l),
			i*16 + (distance % 16)
		)
		draw_tree(
			screenx(tree.l + tree.w),
			i*16 + (distance % 16)
		)
	end
end

function trees_upd()
	local new_dist = distance + speed
	if flr(new_dist / 16) > flr(distance / 16) then
		add_next_tree()
	end
end

function add_next_tree()
	local pct = distance / goal
	-- TODO: adjust difficulty
	local minw = 70 - (45 * pct)
	local maxw = 90 - (50 * pct)
	--printh(pct .. "% "..minw.."  "..maxw)
	local nw = tree_wall[1].w + rnd(8)-4
	local idx = cur_tree() - 1
	if idx == 0 then
		idx = #tree_wall
	end

	tree_wall[idx] = 
 	{
		l=tree_wall[cur_tree()].l + rnd(8)-4 + steering,
		w=max(min(nw, maxw), minw)
	}
end

function tree_bounds()
	-- return left, right
	-- use wall based on dogs
	-- remaining
	local ti = cur_tree()
	if dogs >= 5 then
		ti += 5
	elseif dogs >= 3 then
		ti += 6
	else
		ti += 7
	end
	if ti > #tree_wall then
		ti -= #tree_wall
	end
	l = tree_wall[ti].l
	-- middle of tree is bound
	return l+8, l+tree_wall[ti].w+8
end

-->8
--npcs

npc = {
	x=0,
	dx=0,
	dy=0,
	last=0,
	draw=nil,
	collide=nil,
	sound=nil,
}

function npc_y()
	return  (distance - npc.last)
end

function npc_upd()
	-- every 200, roll for new npc
	if distance - npc.last > 200 then
		local r = rnd()
		if r < 0.03 then
			npc.draw = draw_siren
			npc.collide = crash
			npc.sound = 6
		elseif r < 0.1 then
			npc.draw = draw_yeti
			npc.collide = crash
			npc.sound = 3
		elseif r < 0.2 then
			npc.draw = draw_moose
			npc.collide = crash
			npc.sound = 4
		elseif r < 0.4 then
			npc.draw = draw_fan
			npc.collide = heart
			npc.sound = 7
		else
			npc.draw = nil
			npc.collide = nil
		end
		npc.last = distance
		npc.x = -10
		npc.dx = rnd(1)+1
		npc.dy = rnd(2)
		if rnd() < 0.5 then
			npc.x += 140
			npc.dx *= -1
		end
		if npc_y() > 120 then
			npc.collide = nil
		end
	end

	-- update npc
	npc.x += npc.dx

	-- check collision
	l, r = sled_bounds()
	if npc_y()+16 > sled_top() and npc.x+8 > l and npc.x < r and npc.collide != nil then
		printh("collide ")
		npc.collide()
		npc.collide = nil
		sfx(npc.sound)
	end
end

function draw_fan(x, y)
	spr(flr(1+(t() % 2)), x, y, 1, 2, flr(t()) % 3 == 1)
	spr(33, x, y+16)
end

function draw_heart(x, y)
	spr(36, x, y)
end

function draw_yeti(x, y)
	spr(35, x, y, 1, 2)
	spr(35, x-8, y, 1, 2, true)
end

function draw_siren(x, y)
	spr(3, x, y, 1, 2)
end

function draw_moose(x, y)
	spr(13, x, y, 2, 2, true)
end


-->8
--end screens

function draw_flag(loser)
	cls()
	
	for x=0,128,1 do
		for y=10,100,1 do
			pset(x, y+sin(t()+(x/128))*5, 1)
		end
	end
	stars = {
		{x=20, y=50},
		{x=40, y=55},
		{x=50, y=65},
		{x=60, y=75},
		{x=55, y=92},
		{x=75, y=98},
		{x=85, y=80},
		{x=105, y=30},
	}
	for star in all(stars) do
		print("★", star.x, star.y + sin(t()+((star.x+4)/128)) * 5-10, 9)
	end

	if loser then
		print("better luck next year", 20, 115, 9)
	else
		local scale = (sin(t()) + 2)*2.5 * 8 
		sspr(32, 24, 8, 8, 80-scale/2, 48-scale/2, scale, scale)
		print(end_time .. " !!! a world record!", 20, 110, 9)
		print("see you again in '84!", 20, 120, 9)
	end
end	

__gfx__
00000000644444466444444667c7c7c6666666666666666666666666666666660000000000033000666666666666666600000000666666666666666600000000
000000006499994664999946c777777c666666666666666666666666556666550000000000033000666336666663766600000000466666646666666600000000
00700700693993966939939677077077666666666666666666666666565555650000000000333300666336666663366600000000446666444666666600000000
00077000699999966999999d77777777666666666466664660066776665555660000000000333300663333666633776600000000444664446666666600000000
0007700069999996699999dd77788777666666666444444666007766655555560000000003333330663333666637736600000000646666466666666600000000
00700700699ee996699ee9dd67777776666666666644446666777066655555560000000000044000663333666633336600000000664444666666666600000000
0000000066999966669999dd66777766666666666644446666070066665555660000000000044000633333366333777600000000660440666666666600000000
0000000066699666666996dd67777776666666666664466666677666666556660000000000044000633333366377733600000000664444444444446600000000
000000006dd99dd66dd99ddd77777777666666666664466666707766665555660000000000000000633333366333333600000000664444044444444600000000
00000000ddddddddddddddd677677677666666666644446666077766655555560000000000000000333333333333777700000000666440044444444400000000
00000000dd2222dddd22222677677677666666666644446666770066655555560000000000000000333333337777733300000000666440444444444400000000
00000000dd2222dddd222226cc67766c666666666644446666770766655555560000000000000000666446666664466600000000666666444444444600000000
00000000dd2222dddd22222666677766666666666644446666077766655555560000000000000000666446666664466600000000666666446666644600000000
00000000dd2222dddd22222666777776666666666644446666077766655555560000000000000000666446666664466600000000666666446666644600000000
00000000d222222dd222222667777776666666666644446666677666665555660000000000000000666446666664466600000000666666446666644600000000
00000000622222266222222667c7c7c6666666666664466666607666666556660000000000000000666446666664466600000000666666046666604600000000
00000000622222266666666677666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000622662266666666677766666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000622662266666666671776666688688660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000622662266666666677776666888888860000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000622662266666666688776666688888660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000622662266666666677876666668886660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000666666666666666676666566666866660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000666666666666666677765566666666660000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000666666666666666677677566669999660000000077770777700077770777700077000677677000077000777700000000080000000000000000000000
0000000066666666666666667777766669aaaa960000000066660666670066670666700600700660000700766700666670000000800888800088880000000000
000000006666666666666666577776669aa99aa90000000006600660067006600066006600670660000706600670660067000000008000080000008000000000
000000006666666666666666577766669aaa9aa90000000006600660006006600066006600660666666606600660660006000000008000080000008000000000
000000006666666666666666777666669aaa9aa90000000006600660006006600066006667660666660006600660660006000000000888800088888000000000
000000006666666666666666777666669aa999a90000000006600660066006600066006600660660660006600660660066000000008000080000008000000000
0000000066666666666666666776666669aaaa960000000066660667760066670066006600660660066000666600666660000000008000080000008000000000
00000000666666666666666665566666669999660000000066660666600066660066006600660660006600066000666600000000000888800088880000000000
__label__
00000000000000700000000007000070000000700000000000000700000000000000000000000000000000000000000000000000007000000000000000000007
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000700000000700000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000007700000000000007000000000000700000000000000000070000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000070000000000000000000000000000700000000000000000070000000000007000000070000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000000077000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000007000000000700070000700000000000000000000000000000000000000000000000000000000000000077700000000000000000000000700000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000007000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000000000000000000000000000000007000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000070000070000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000070000000000000700000000000700000000000000000000000000000000000000000000000000070000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000070000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000000700000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000770000000000000000000000000000000000000000000000000000000000000000000000000000000000000700000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000070000000000000000000000000000000000000000000000070700000000000000000007000000000070000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000070000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000cc0c0c00cc0ccc0cc000000ccc0c0c0ccc00cc0c0c0ccc0ccc07c007cc000000000070070000000000000000000700000
000000000000000000000000000000c000c0c0c000c0c0c0c00000c0c0c0c00c00c000c0c0c000c0c0c000c00000000000000000000000000000000000000000
000000000000000000000000000007ccc0c7c0ccc0ccc0c0c00000cc00c0c00c00c000c7c07c00cc000000ccc000000000000000000000000000000000000000
00000000000000000000000000000000c0c0c000c0c0c0c0c00000c0c0c0c00c00c000c0c0c000c0c0000000c000000000000000000000000000000000000000
007000000000000700000000000000cc000c70cc00c0c0c0c00000ccc00cc007000cc0c0c0ccc0c0c00000cc0070000000000007000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000700000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000066666600766666000006666660066666600000666000006666666666000000666000006666660000000000000000000000000000
00000000000000000000000066666600666666000006666660066666600000666000006666666666000000666000006666660000000000000000000000000000
00000000007000000000000066666600666666660006666660066666600706000660006660000000600006666660006666666600000000000000000000000000
00000000000000000000000066666600666666660006666660066666600006000660006660000000600006666660006666666600000000000000000000000000
00000000000000000000000000666000666000666600066600000666000666000666606660000000600666000666006660006666000000000000000000000000
00000000000000000000000000666000666000666600066600000666000666000666606660000000600666000666006660006666000000000000000000000000
00000000000000000000700000666000666000006600066600000666000666000666606666666666600666000666006660000066000000000000000000070000
00000000000000000000000000666000666000006600066600000666000666000666606666666666600666000666006660000066000000000000000000000000
00000000000000000000000000666000676700006600066600000666000666666666606676666600000666000666006660000066000000000000000000000000
00000000000000000000000000666000666000006600066600000666000666666666606666666600000666000666006660000066000000000000000000000000
00000000070070000000000000666000666700666600066600000666070666000666606660066670000666000666006660006666000000000000000000000000
00000000000000000000000000666000666000666600066600000666000666000666606660066600000666000666006660006666000000000000000000000000
00007000000007000000000066666600666666660006666670000666000666007666606660000666000006666660006666666600000000000000000000000000
00000000000000000000000066666600666666660006666660000666000666000666606660000666000006666660006666666600000000000000000000000000
00000000000000000000000066666600666666700006666660000666000666000666606660000076600000666000007666660000000000000000000070000000
00000000000000000000000066666600666666000006666660000666000666000666606660000066600000666000006666660000000000000000000000000000
00000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000700000000070000000000000000000000000000700000007000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000700000008880000000000000000000000000000000000070000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000008880000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000008870000070000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000008880000008888888888880000000008888888888880000000000000000000000000000000000000000000000
00000000000000070000000000000000000000008880000008888888888887000000008888888888880000700000000000000000000000700007000000000000
00000000000000000000000000000000000000008880000008888888888880000000008888888888880000000000000000000000000000000000000000000000
00000000000000000000007007070000000000000000008880000000000008880000000000000000008880000000000000000000007000000000000000000000
00000000000000000000000000000000000000000000008880000000000008880000000000000000008880000000000000000000000000000000000000000000
00000000000007000000000000000000000000000000008880000000000008880000000000000000708880000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000008880000000000008880000000000000000008880000000000000000000000000000000000000000000
00000000000000000000000070000000000000000000008880000000000008880000000000000000008880000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000008880000000000008880000000000000000008880000000000000000000000000000000000000000000
00000000007000000000000000000000000000000000000008888888888880000000078888888888888880000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000008888888888880000000008888888888888880000000000000000000000000000000000000000000
00000000000000070000000000000000000000000000000008888888888880000000008888888888888880000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000008880000000000008880000000000000000008880000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000008880000000000008880000000000000000008880070000000000000000000000000000070000000000
00000000000000000000000000000000000000000000008880000000000008880000000000000000008880000000000000000000000000000000000000000000
00000000000000000000000070000000000000007000008880000000000008880000000000007700008880000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000008880000000000008880000000000000000008880000000000000000000000000000000000000000000
00000000000000000000000000000000000700000000008880000000007008880000000000000000008880000007007000000000000000000000000000000000
00000000000000000000000000000000000000000000000008888888888880000000008888888888880000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000700008888888888880000000008888888888780000000000000000000000000000700000000000000000
00000000000000000000000000000000000000000000000008888888888880000000008888888888880000000000000000000000000000000000000000000000
00000000000000000000700000000000000000000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000700700000000000000000700700000000000000000000000000000000000000000000000000000000070000007000700
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000070000000707000000000000000000000000000000000000000000000000007007000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000070000000000000000000070000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000007000000000000000000000000000000000000000000000000000000700000000000000000000000000000700000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
07000000000000000000000000000000000000000000000000070000000000000000000000000000000700000000000000000000000000000000000000000070
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000700000000000000000000000000000000000070000000000000000000700000000007000000070000000007000000007000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000070000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000700000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00007000000000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000070000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000007000000000000000000000000000000000000000000000000000000007000000700
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007000000000070000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000070000000000000000007000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

__map__
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__sfx__
001200001d0501f0502203024030270302703027030220302203022030240302703027030240302203024030290302903027030240302203024030290302b030270302403022030290302b0302b0302703022030
301200001340227402274022953227402274022740229532004020000200002295320000200002295322953200002000020000229532000020000200002295320000200002000022953200002000022953229532
000200000000000000000000000000000011500215002150041500515006150081500c1500e150101501315017150191501d1502015021150261502c1502f1500000000000000000000000000000000000000000
0003000000107001070010700107001070a157095570a157085570a157095570a1570b5570c1570d5570f15710557131571155718157145571805717557190571355700107001070010700107001070010700107
0004000000600006000060000600186501d65022650276502b6502f6502f6502c6502c6502c6502b6502b6502965027650236501e6501c6500060000600006000060000600006000060000600006000060000600
21060000005001655016550165501b5501b55018550185501d5501d55016550165501b5501b5501655016550225502255024550245501d5501d55027550275501d5501d550275502755018550185501b5501b550
000600000070200702007020f75213752187521c75220752327522375223752207521d7521a7521775214752127523075216752197521c75222752277522a7522c7523475223752207521e752007020070200702
010600000000018722186221862218622277302a7302773018622186221862218622297302b7302973019622196221962219622277302a73027730176221762217622176222f732307303173031730307302e730
__music__
01 00404344
02 00014344