pico8-moonbus/moonbus.p8
2024-08-10 16:22:13 +02:00

672 lines
48 KiB
Lua
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

pico-8 cartridge // http://www.pico-8.com
version 42
__lua__
-- MoonBus
-- by Dejvino
function reset()
plr_money=0
plr_level=1
plr_target={}
levels={
{map_start=0,map_height=8},
{map_start=8,map_height=8},
{map_start=16,map_height=16},
{map_start=16,map_height=15,gravity=0}
}
flag_solid=0
flag_start=1
flag_dock=7
cam={}
load_level()
menuitem(1, "Next level", function()
plr_win=true
make_progress()
end)
menuitem(2, "Prev level", function()
plr_win=true
plr_level-=2
make_progress()
end)
end
function load_level()
plr_alive=true
plr_win=false
plr_docked=false
plr_speed={x=0,y=0.5}
plr_static=false
plr_engine=-1
plr_fuel=1
plr_landings=0
plr_transed=0
local maplevel=levels[plr_level]
mapy=maplevel.map_start
maph=maplevel.map_height
gravity=maplevel.gravity or 0.01
engine_power=0.1
fuel_cons=0.01
land_speed_limit=1
bonus_docked=1
transed_per_level=5
plr_pos=find_random_point_by_flag(1)
telem_spd={}
next_target()
end
function _init()
reset()
end
function _update()
debug_points={}
if not plr_alive and btn() then
load_level()
end
-- controlls
plr_engine=-1
if plr_alive and plr_fuel>0 then
if not plr_docked then
if btn(🅾) and dist(plr_speed)>0.01 then
if abs(plr_speed.x) > abs(plr_speed.y) then
plr_engine=(plr_speed.x>0) and or
else
plr_engine=(plr_speed.y<0) and or
end
end
if btn() then plr_engine= end
if btn() then plr_engine= end
if btn() then plr_engine= end
if btn() then plr_engine= end
end
if plr_docked and btn() then
plr_docked=false
plr_static=false
plr_engine=
plr_speed={x=0,y=0.5}
if not plr_win then
sfx(4)
else
--
end
make_progress()
end
end
-- engine
if plr_engine== then
plr_speed.y+=engine_power
elseif plr_engine== then
plr_speed.y-=engine_power
elseif plr_engine== then
plr_speed.x-=engine_power
elseif plr_engine== then
plr_speed.x+=engine_power
end
if plr_engine != -1 then
sfx(2,2)
plr_fuel=max(0,plr_fuel-fuel_cons)
else
sfx(-1,2)
end
if plr_docked then
plr_fuel=min(1,plr_fuel+fuel_cons)
end
-- move objects
move(plr_pos,plr_speed,0.1)
plr_pos.x=plr_pos.x%128
-- gravity pull
if not plr_static then
plr_speed.y-=gravity
end
-- crash detection
local pc=plus(plr_pos,{x=0.5,y=-0.5})
local crashed=false
if plr_alive and (plr_pos.y<=0 or plr_pos.y>17) then
crashed=true
elseif pc.y <= maph+1 and not plr_static then
for p in all({plus(pc,clearx(unit(plr_speed,0.4))), plus(pc,cleary(unit(plr_speed,0.4)))}) do
local pmaps=0
if (p.y>=0 and p.y<=maph) then
pmaps=mget(p.x,mapy+maph-p.y)
end
local dock=fget(pmaps,7)
local target=dist(plr_pos,plr_target)<=1
local solid=fget(pmaps,0)
local slow=dist(plr_speed) < land_speed_limit
if dock and slow and p.y < pc.y then
plr_speed={x=0,y=0}
plr_pos={x=flr(plr_pos.x+0.5),y=flr(plr_pos.y+0.5)}
plr_docked=true
plr_static=true
plr_landings+=1
if target then
plr_money+=bonus_docked
plr_transed+=1
check_progress()
end
sfx(1)
break
elseif solid then
crashed=true
break
end
end
end
if crashed then
plr_speed.y*=-0.75
plr_speed.x*=0.5
plr_alive=false
if (dist(plr_speed) > 1) then
sfx(0)
else
plr_speed.x=0
plr_speed.y=0
plr_static=true
sfx(3)
end
end
if plr_alive then
telem_spd=mul(plr_speed,1)
end
cam={x=plr_pos.x*8-60, y=0}
end
function _draw()
cls()
camera(cam.x,cam.y)
local lvl=mapy
map(0,lvl, 0, 128-maph*8)
map(0,lvl, -128*8, 128-maph*8)
map(0,lvl, 128*8, 128-maph*8)
local px,py=to_scrn(plr_pos)
local img=0
if plr_docked then
img=5
elseif not plr_alive then
img=4
elseif plr_engine== then
img=2
elseif plr_engine== then
img=2
elseif plr_engine== then
img=3
elseif plr_engine== then
img=1
end
spr(img,px,py)
for p in all(debug_points) do
local px,py=to_scrn(p)
pset(px,py,8)
end
-- target
if plr_alive then
local tg={x=plr_target.x,y=plr_target.y}
if plr_target.x-plr_pos.x>64 then
tg.x-=128
elseif plr_target.x-plr_pos.x<-64 then
tg.x+=128
end
local tx,ty=to_scrn(tg)
local dst=dist(plr_pos,tg)
local c=flr(t())%2==0 and 3 or 11
if dst > 8 then
local dir=atan2(tx-px,ty-py)
line(px+4+cos(dir)*10,py+4+sin(dir)*10,tx+4,ty+4,c)
end
if dst > 3 then
print("",tx,ty+2,c)
else
print("__",tx,ty+4,c)
end
end
--
-- HUD
--
camera(0,0)
-- fuel
local fw=20
local fh=6
local fx=85
local fy=0
rect(fx,fy,fx+fw,fy+fh,5)
rectfill(fx+1,fy+1,fx+plr_fuel*(fw-1),fy+fh-1,plr_fuel > 0.25 and 13 or 8)
print("fuel", fx+3,fy+1,1)
-- telemetry
local cr=10
local cp={x=127-cr,y=cr}
local spd={x=limit(telem_spd.x,1),y=limit(telem_spd.y,1)}
circ(cp.x,cp.y,cr,3)
line(cp.x,cp.y,cp.x+spd.x*cr,cp.y,11)
line(cp.x,cp.y,cp.x,cp.y-spd.y*cr,11)
circ(cp.x+spd.x*cr,cp.y-spd.y*cr,1,dist(telem_spd)<land_speed_limit and 3 or 8)
if not plr_alive then
line(cp.x+(-0.3*cr),cp.y+(-0.6*cr),cp.x,cp.y,5)
line(cp.x+(-0.7*cr),cp.y+(-0.3*cr),cp.x,cp.y,5)
line(cp.x,cp.y,cp.x+0.6*cr,cp.y+0.3*cr,5)
line(cp.x+0.6*cr,cp.y+0.3*cr,cp.x+0.2*cr,cp.y+0.8*cr,5)
end
if plr_alive then
if plr_docked then
if plr_win then
print("wohoo! level complete.", 0,0,3)
print("press ❎ to advance.", 32,60,11)
else
print("smooth! you docked.", 0,0,3)
print("press ❎ to undock.", 32,60,11)
end
else
print("land gently to dock.", 0,0,3)
end
else
print("oops! you crashed.", 0,0,8)
print("press ❎ to reset.", 32,60,11)
end
print(""..plr_landings, fx,fy+fh+2+0,3)
print(""..plr_transed.."/"..transed_per_level, fx,fy+fh+2+8,3)
print(""..plr_money, fx,fy+fh+2+16,3)
print("lvl "..plr_level, fx+20,fy+fh+2+16,3)
end
function get_new_level()
return max(1,min(#levels,plr_level + 1))
end
function check_progress()
if plr_transed >= transed_per_level then
plr_win=true
end
end
function make_progress()
if (plr_win) then
plr_level=get_new_level()
load_level()
else
next_target()
end
end
function find_random_point_by_flag(f)
local pts={}
for x=0,127 do
for y=0,maph-1 do
local m=mget(x,mapy+y)
local pt=fget(m,f)
if pt then
add(pts,{x=x,y=y})
end
end
end
local di=flr(rnd(#pts))+1
local mp=pts[di]
return {x=mp.x,y=maph-mp.y}
end
function next_target()
local docks={}
for x=0,127 do
for y=0,maph-1 do
local m=mget(x,mapy+y)
local dock=fget(m,7)
local new=x!=plr_target.x and y!=plr_target.y
if dock and new then
add(docks,{x=x,y=y})
end
end
end
local di=flr(rnd(#docks))+1
local mp=docks[di]
plr_target={x=mp.x,y=maph-mp.y+1}
end
function to_scrn(p)
local x=p.x*8
local y=128-p.y*8
return x,y
end
function move(p,d,a)
a=a or 1
p.x+=d.x*a
p.y+=d.y*a
end
function plus(p,d,a)
a=a or 1
return {
x=p.x+d.x*a,
y=p.y+d.y*a
}
end
function clearx(p)
return {
x=0,
y=p.y
}
end
function cleary(p)
return {
x=p.x,
y=0
}
end
function mul(p,a)
return {
x=p.x*a,
y=p.y*a
}
end
function neg(p)
return mul(p,-1)
end
function dist(p,p2)
p2=p2 or {x=0,y=0}
return abs(p.x-p2.x) + abs(p.y-p2.y)
end
function unit(p,u)
u=u or 1
local x = 0
local y = 0
if p.x>0 then x=u end
if p.x<0 then x=-u end
if p.y>0 then y=u end
if p.y<0 then y=-u end
return {x=x,y=y}
end
function limit(val,lim)
if (abs(val) > lim) then
return val*lim/abs(val)
end
return val
end
__gfx__
000000000000000000000000000000000000aa00000000005000000500000000000b300000000000000000000000000000000000000000000000000000000000
00a9a90000a9a90000a9a90000a9a90000a9000000a9a90000000000000000000033330000000000000000000000000000000000000000000000000000000000
001111000011110000111100001111000001000000111100000000000000000000b3430000000000000000000000000000000000000000000000000000000000
01111110011111100111111001111110010010100111111000000000000000000035bb3000000000000000000000000000000000000000000000000000000000
0a9999400a9999400a9999400a9999400a9990400a776540000000000000000003b3433000000000000000000800009000000000000000000000000000000000
5a9999458a9999455a9999455a999948000909555a7c564500000000000000000b343b30000b3000000000000a0000a000000000000000000000000000000000
5949444589494445594944455949444859490440596715450000000000000000b3b4533300b3b300030303000400004000000000000000000000000000000000
0055550000555500008888000055550050555500007c5600500000050000000000045000000b3000033003030400004000000000000000000000000000000000
66566665000000000000000560000000d8ddddbd0000000000566660000000000003333333333333333330007766776600000000000000000000000000000000
666666660000000000000006660000005d7c56d5000000000666666600000000003d3343433d3343433d33007665766500000000000000000000000000000000
56666657000000000000005756600000566715570000000006666657000000000434465354344653543446505446545400000000000000000000000000000000
66756666000000000000066666750000667c5666000000006675666600000000444454d4444454d4444454d4446454d400000000000000000000000000000000
66666666000000000000666666666000666715660000000066666666000000000644444446444444464444404444444400000000000000000000000000000000
66666665006600000006666566666600667c5565000000006666666500000000d4454445d4454445d4454445d454544500000000000000000000000000000000
65666657076567600066665765666650656556570000000065666650000000005444445454444454544444505444545400000000000000000000000000000000
67656666666666566765666667656666666566660000000007656600000000000445464444454644444546404654564400000000000000000000000000000000
00000007777777777d8ddbd77000000006566665665666600000000000000000454445444544454445444544000000000000000eeeeeeeeee000000000000000
000000767676767676dddd766500000000666666666666000000000000000000044d4446444d4446444d44400000000000000088888888888200000000000000
00000077666666666661166665000000000666575666600000000000000000005444465454444654544446540000000000000e22222222222220000000000000
0000007661116116616d16165500000000006666667500000000000000000000444454d4444454d4444454d00000000000008888888888888882000000000000
000000776d161dd66d166dd6650000000000066666600000000000000000000004444444464444444644440000000000000e2222222222222222200000000000
000000766666666666666666550000000000006566000000000000000000000000454445d4454445d44544450000000000888888888888888888820000000000
0000007665656565656565656500000000000007600000000000000000000000544444545444445454444450000000000e222222222222222222222000000000
00000005555555555555555550000000000000000000000000000000000000000445464444454644444546400000000088888888888888888888888200000000
6460000677c000000000000000000000000000000000000000000000000000004544454445444544454445440000000054444544544445445444454400000000
545646666611cc00000000000000000000000000000000000000000000000000444d4446444de446444dbb460000000055455555555555555545555500000000
6555456661d1115000000000000000000000000000000000000000000000000054464654544e8854544b3314000000004444544444c414d44445444400000000
5455556661dd1565000000000000000000000000000000000000000000000000446554d4444882d4444411d40000000055555545555554555555555500000000
65554566666656550000000000000000000000000000000000000000000000004465144446442644464444440000000045444444444445444444444400000000
5455556666656555000000000000000000000000000000000000000000000000d4414445d4464445d44544450000000055545555555455555545554500000000
555111665656555000000000000000000000000000000000000000000000000054444454544445445444445400000000444445444414d5144445d54400000000
11100006555555000000000000000000000000000000000000000000000000004445464444454644444546440000000054554555545555555545554500000000
__label__
30003330330033000000033033303300333030003030000033300330000033000330033030300000000005555555555555555555550000000033333330000000
30003030303030300000300030003030030030003030000003003030000030303030300030300000000005dd111d1d1d11101000050000003300000003300000
30003330303030300000300033003030030030003330000003003030000030303030300033000000000005dd1ddd1d1d10001000050000030000000000030000
30003030303030300000303030003030030030000030000003003030000030303030300030300000000005dd11dd1d1d11001000050000300000000000003000
33303030303033300000333033303030030033303330000003003300000033303300033030300300000005dd1ddd1d1d10001000050003000000000000000300
00000000000000000000000000000000000000000000000000000000000000000000000000000000000005dd1dddd11d11101110050030000000000000000030
00000000000000000000000000000000000000000000000000000000000000000000000000000000000005555555555555555555550030000000000000000030
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000003
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000033300033300000000000300000000000000000003
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000333330030300000000000300000000000000000003
000000000000000000000000000000000000000000000000000000000000000000000000000000000000033333330303000000000003000000000bbbbbbbbbb8
000000000000000000000000000000000000000000000000000000000000000000000000000000000000003030300303000000000003000000000b0000000083
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000303330033300000000000300000000000000000008
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000000000000000003
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000030
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000000000000000030
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000033300033300030333000003000000000000000300
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000033300030300300300000000300000000000003000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000333330030300300333000000030000000000030000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000033300030300300003000000003300000003300000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000030300033303000333000000000033333330000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000030000033300000000030003030300000003300000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000033330030300000000030003030300000000300000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000033300030300000000030003030300000000300000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000333300030300000000030003330300000000300000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300033300000000033300300333000003330000
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
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000a9a900000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000111100000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000001111110000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000a999940000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000005a999945000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000059494445000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000555500000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000000
00000000000000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000000
006600000000000000660000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000000
0765676000000000076567600000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000000
66666656000000006666665600000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000000
66566665d8ddddbd66566665000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000000
666666665d7c56d5666666660000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000000
56666657566715575666665700000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000000
66756666667c566666756666000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000000
6666666666671566666666660000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000
66666665667c5565666666650000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000000
65666657656556576566665700000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000000
676566666665666667656666000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000000
6656666566566665665666650000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000000
66666666666666666666666600000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000000
566666575666665756666657000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000000
6675666666756666667566660000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000000
66666666666666666666666600000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000000
666666656666666566666665000000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000000
6566665765666657656666570000000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000
6765666667656666676566660000000000000000000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000
66566665665666656656666560000000000000000000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000
666666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000
5666665756666657566666575660000000000000000000000000000000000000000000000000000000000000000000000000000000bbb0000000000000000000
6675666666756666667566666675000000000000000000000000000000000000000000000000000000000000000000000000000000bbb0000000000000000000
666666666666666666666666666660000000000000000000000000000000000000000000000000000000000000000000000000000bbbbb000000000000000000
6666666566666665666666656666660000000000000000000000000000000000000000000000000000000000000000000000000000bbb0000000000000000000
6566665765666657656666576566665000000000000000000000000000000000000000000000000000000000000000000000000000b0b0000000000000000000
67656666676566666765666667656666000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
66566665665666656656666566566665600000000000000000000000000000000000000000000000000000000000000000000005d8ddddbd6000000000000000
666666666666666666666666666666666600000000000000000000000000000000000000000000000000000000000000000000065d7c56d56600000000000000
56666657566666575666665756666657566000000000000000000000000000000000000000000000000000000000000000000057566715575660000000000000
66756666667566666675666666756666667500000000000000000000000000000000000000000000000000000000000000000666667c56666675000000000000
66666666666666666666666666666666666660000000000000000000000000000000000000000000000000000000000000006666666715666666600000000000
66666665666666656666666566666665666666000000000000660000000000000000000000000000000000000000000000066665667c55656666660000000000
65666657656666576566665765666657656666500000000007656760000000000000000000000000000000000000000000666657656556576566665000000000
67656666676566666765666667656666676566660000000066666656000000000000000000000000000000000000000067656666666566666765666600000000
66566665665666656656666566566665665666656656666566566665665666656656666566566665665666656656666566566665665666656656666566566665
66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
56666657566666575666665756666657566666575666665756666657566666575666665756666657566666575666665756666657566666575666665756666657
66756666667566666675666666756666667566666675666666756666667566666675666666756666667566666675666666756666667566666675666666756666
66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
66666665666666656666666566666665666666656666666566666665666666656666666566666665666666656666666566666665666666656666666566666665
65666657656666576566665765666657656666576566665765666657656666576566665765666657656666576566665765666657656666576566665765666657
67656666676566666765666667656666676566666765666667656666676566666765666667656666676566666765666667656666676566666765666667656666
__gff__
0000000000000200010000000000000001000000810001000101018100000000000181000000000001010100000100000101000000000000010101000101010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
__map__
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000011001100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000011110000000000000000000000000000000000001210141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000111100000000060000001210101300000000000000000000000000000000121010101000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001100000000000000000000000000110000000000000000000000000000110000
0012101013000000000000121010101000000000000000000000000000000012101010101013000000000000000000000000000000000000000000000000000011000000000000000000000020212123202123000000000000000000110000121010130000000000000000202122101300000000000000000000000012101300
1210101010130000000012101010101011001100000000110000000000121010101010101010130011000000000012141300000000000000000000000000001110130000000000000000000020212121212123000000000011001210101010101010101300001100000000202121101013000012101300000000001210101013
1010101010101010141010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010141010101010101010101010101010101010101010101010101010101010101010101010101010101010101010212221101010101010
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000b09000000000000003d3d191a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
000000060000000000080a090000000000000000181b1a000000000000000000282a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000b000008091829292a00000000080a090a28392a002c2d2e0000000000282a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
08000a1b091819192929392a0a0a0a181919191929292a0a3c3d3e0a0a091b08282a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1919191919192929392929291919192929292929292929292929292929382929292929291010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000016000000000000000000000000000000000000001600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000121413000000000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000001100000000000000000000000600000016000000000030223100000000000000000000003022212300000000000000101010000000000016000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000121013000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000241025000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1300000000162500000000001100000020212223000000000000000000000000000000000000302121222300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1013000000000000000000121013000000000000000000000016000000000000000000000000302121213100000000000000160000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1010130000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
1010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010
__sfx__
000400002c2501f250132503365036660396503764035630316202f6202c620246201d6101b6101b61019610126100e61010610116100c6000d6000e6000c6000a60007600016000060000000000000000000000
010800003d0202d0203d0203d61421620216201d6101c6101a6150000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0001002005750087500b7500b7500a750067500375005750087500a7500b7500a75009750047500475006750097500a7500a75009750087500675006750087500a7500a75008750067500675008750097500a750
00020000226502265026150241501d150161500e1500c150061500315001150001500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
010800002605000000260502163021610216102161600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
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
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
002000001885000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000