From 341e635559141a46a89510c0fc5e7e49ae6aa3e6 Mon Sep 17 00:00:00 2001 From: Nyeogmi Date: Thu, 29 Dec 2022 14:54:08 -0800 Subject: [PATCH 1/3] Fix more known rope bugs --- chameleonic.p8 | 85 +++++++++++++++++++++++++++++++++----------------- 1 file changed, 56 insertions(+), 29 deletions(-) diff --git a/chameleonic.p8 b/chameleonic.p8 index 4453da8..8efd2a0 100644 --- a/chameleonic.p8 +++ b/chameleonic.p8 @@ -7,6 +7,7 @@ real_modules={} frame=0 function _init() + -- printh("restarting") _doall("init") end function _update() frame+=1 @@ -398,7 +399,10 @@ function level:reanchor() end shellsort(self._anch_keys) for point in self:anchor_points() do - if (point.ax_old and player.rope) player.rope:be_pushed_by(point,point.ax_old,point.ay_old) + if point.ax_old and player.rope and (point.ax_old != point.ax or point.ay_old != point.ay) then + -- printh("moving: "..tostring({point.ax_old,point.ay_old}).."=>"..tostring({point.ax,point.ay})) + player.rope:be_pushed_by(point,point.ax_old,point.ay_old) + end point.ax_old,point.ay_old=nil,nil end @@ -967,8 +971,9 @@ function rope:draw(artificial_px,artificial_py) if (n1.associated_with.ady>0) y-=1 end rectfill(x-1,y-1,x+1,y+1,12) - print("ax="..n1.ax..",ay="..n1.ay,0,sy) - sy+=7 + print("ax="..n1.ax..",ay="..n1.ay,72,sy) + print(tostring(n1.associated_with and (not n1.associated_with.dropped and n1.associated_with.ax==n1.ax and n1.associated_with.ay==n1.ay)),76,sy+7) + sy+=14 local n0=n1.prev local n2=n1.next @@ -1002,7 +1007,7 @@ function rope:draw(artificial_px,artificial_py) pset(x+p.adx,y,11) pset(x,y+p.ady,11) end - ]]-- + ]] end function rope:drag_dst(x,y) @@ -1021,6 +1026,21 @@ function rope:drag(n1,ax_new,ay_new) end function rope:relax() + local n0=self.src + while true do + if (n0==nil) break + if n0.associated_with and n0.associated_with.dropped then + for i in level:anchor_points() do + if i.ax==n0.ax and i.ay==n0.ay then + n0.associated_with=i + break + end + end + end + + n0=n0.next + end + local n0=self.src while true do local n1=n0.next @@ -1056,8 +1076,9 @@ function rope:relax() local would,x1_new,y1_new=would_stick(x0,y0,n1.associated_with,x2,y2) if not would and not (n1.ax==x1_new and n1.ay==y1_new) then + -- printh("dragging: "..tostring{n1.associated_with, {x1_new, y1_new}}) -- printh("relaxing: "..tostring(n0.associated_with).."->"..tostring(n1.associated_with).."->"..tostring(n2.associated_with)) - self:_drag(n1,x1_new,y1_new) + self:_drag(n1,x1_new,y1_new,n1.ax,n1.ay) n0=n1.prev n2=n1.next n0.next=n2 @@ -1143,13 +1164,8 @@ function would_stick(x0,y0,anchor,x2,y2) local dx=x2-x0 local dy=y2-y0 - -- there is no reason for an acute angle to stick around in this world - --[[ - local ang0=atan2(x2-x1,y2-y1) - local ang2=atan2(x0-x1,y0-y1) - local diff=abs((ang0-ang2 + 0.5)%1-0.5) - if (diff<0.25) return false,x0,y0,0,0 - ]]-- + if (x1==x0 and y1==y0) return false + if (x1==x2 and y1==y2) return false local adx,ady local x1_new,y1_new @@ -1186,25 +1202,28 @@ function rope:be_pushed_by(anchor,ax_old,ay_old) local nx0,ny0=n0.ax,n0.ay local nx1,ny1=n1.ax,n1.ay + local nxmn,nxmx = _mnmx(nx0,nx1) + local nymn,nymx = _mnmx(ny0,ny1) + -- printh(tostring({anchor,nxmn,nxmx,nymn,nymx})) + if - (ax_new==ax_old and nx0<=anchor.ax and anchor.ax<=nx1) and - (ay_new==ay_old and ny0<=anchor.ay and anchor.ay<=ny1) and - not (anchor.ax==nx0 and anchor.ay==ny0) and - not (anchor.ax==nx1 and anchor.ay==ny1) and + (ax_new!=ax_old or (nxmn<=anchor.ax and anchor.ax<=nxmx)) and + (ay_new!=ay_old or (nymn<=anchor.ay and anchor.ay<=nymx)) and (_which_side(ax_old,ay_old,nx0,ny0,nx1,ny1)!= _which_side(ax_new,ay_new,nx0,ny0,nx1,ny1) ) and would_stick(nx0,ny0,anchor,nx1,ny1) then + -- printh("found (in): "..tostring({{nx0,ny0},{nx1,ny1}, anchor})) local nx05,ny05 if ax_new==ax_old then nx05=anchor.ax ny05=ny0+(nx05-nx0)/(nx1-nx0) * (ny1-ny0) - --printh("found (x): "..tostring({nx05,ny05})) + -- printh("found (x): "..tostring({nx05,ny05})) elseif ay_new==ay_old then ny05=anchor.ay nx05=nx0+(ny05-ny0)/(ny1-ny0) * (nx1-nx0) - --printh("found (y): "..tostring({nx05,ny05})) + -- printh("found (y): "..tostring({nx05,ny05})) else assert(false,"wtf?") end @@ -1222,8 +1241,14 @@ function rope:be_pushed_by(anchor,ax_old,ay_old) end end -function rope:_drag(n1,ax1_new,ay1_new) - local function _sweep_radar(ax_pivot,ay_pivot,ax_far0,ay_far0,ax_far1,ay_far1) +function rope:_drag(n1,ax1_new,ay1_new,ax_removing,ay_removing) + local function _sweep_radar(ax_lhs,ay_lhs,ax_rhs,ay_rhs,ax_pivot,ay_pivot,ax_far0,ay_far0,ax_far1,ay_far1) + local function _uncreatable(anchor) + return (anchor.ax==ax_lhs and anchor.ay==ay_lhs) or + (anchor.ax==ax_rhs and anchor.ay==ay_rhs) or + (anchor.ax==ax_removing and anchor.ay==ay_removing) + end + if (ax_far0==ax_far1 and ay_far0==ay_far1) return nil if ax_far0==ax_far1 then @@ -1234,9 +1259,7 @@ function rope:_drag(n1,ax1_new,ay1_new) for ay_far_new in _stepfrom(ay_far0,ay_far1) do for anchor in level:anchor_points() do if - not (anchor.ax==ax_pivot and anchor.ay==ay_pivot) and - -- not (anchor.ax==ax_far0 and anchor.ay==ay_far0) and - not (anchor.ax==ax_far1 and anchor.ay==ay_far1) and + not _uncreatable(anchor) and (ax0<=anchor.ax and anchor.ax<=ax1) and would_stick(ax_pivot,ay_pivot,anchor,ax_far,ay_far_new) and ( @@ -1257,11 +1280,9 @@ function rope:_drag(n1,ax1_new,ay1_new) for ax_far_new in _stepfrom(ax_far0,ax_far1) do for anchor in level:anchor_points() do if - not (anchor.ax==ax_pivot and anchor.ay==ay_pivot) and - -- not (anchor.ax==ax_far0 and anchor.ay==ay_far0) and - not (anchor.ax==ax_far1 and anchor.ay==ay_far1) and - would_stick(ax_pivot,ay_pivot,anchor,ax_far_new,ay_far) and + not _uncreatable(anchor) and (ay0<=anchor.ay and anchor.ay<=ay1) and + would_stick(ax_pivot,ay_pivot,anchor,ax_far_new,ay_far) and ( _which_side(anchor.ax,anchor.ay,ax_pivot,ay_pivot,ax_far_old,ay_far) != _which_side(anchor.ax,anchor.ay,ax_pivot,ay_pivot,ax_far_new,ay_far) @@ -1282,7 +1303,10 @@ function rope:_drag(n1,ax1_new,ay1_new) local n0=n1.prev while true do if (n0==nil) break - local anch=_sweep_radar(n0.ax,n0.ay,ax1_old,ay1_old,ax1_new,ay1_new) + local anch=_sweep_radar( + n0.ax,n0.ay,n1.ax,n1.ay, + n0.ax,n0.ay,ax1_old,ay1_old,ax1_new,ay1_new + ) if (anch==nil) break local n05={ax=anch.ax,ay=anch.ay,associated_with=anch,prev=n0,next=n1} -- printh("creating pre: "..tostring(n0.associated_with).."->"..tostring(n05.associated_with).."->"..tostring(n1.associated_with)) @@ -1294,7 +1318,10 @@ function rope:_drag(n1,ax1_new,ay1_new) local n2=n1.next while true do if (n2==nil) break - local anch=_sweep_radar(n2.ax,n2.ay,ax1_old,ay1_old,ax1_new,ay1_new) + local anch=_sweep_radar( + n1.ax,n1.ay,n2.ax,n2.ay, + n2.ax,n2.ay,ax1_old,ay1_old,ax1_new,ay1_new + ) if (anch==nil) break local n15={ax=anch.ax,ay=anch.ay,associated_with=anch,prev=n1,next=n2} -- printh("creating post: "..tostring(n1.associated_with).."->"..tostring(n15.associated_with).."->"..tostring(n2.associated_with)) -- 2.34.1 From fd585c97d91053d7c1b8c00d6f22737573ae5aba Mon Sep 17 00:00:00 2001 From: Pyrex Date: Fri, 30 Dec 2022 04:12:39 +0000 Subject: [PATCH 2/3] Add a prettier tileset (#16) Tileset fuckery First servicable Better, black BG Redo crate graphics Make debug wall a less confusing color Redo first few levels Do another level! Tile the whole intro Merge branch 'main' into tiles (bad) Fix bad merge Co-authored-by: Nyeogmi Reviewed-on: https://git.chromaticdragon.app/pyrex/chameleonic/pulls/16 --- chameleonic.p8 | 164 ++++++++++++++++++++++++++----------------------- 1 file changed, 88 insertions(+), 76 deletions(-) diff --git a/chameleonic.p8 b/chameleonic.p8 index 8efd2a0..9a9d489 100644 --- a/chameleonic.p8 +++ b/chameleonic.p8 @@ -138,6 +138,7 @@ function _rast( _add() end + -->8 -- input kbd={} @@ -197,7 +198,7 @@ blinkcol=10 function title:draw() cls(0) -- this is right for 72x32 - spr(3,28,56,9,2) + spr(96,28,56,9,2) print("pyrex",32,73,7) print("[nyeogmi]",62,73,7) print("kistaro",32,79,7) @@ -248,24 +249,35 @@ function level:advance() self:reinit(self.ix+1) end -pitpal = {[0]=1,[7]=0,[6]=1,[4]=1} +normpal = {[1]=0,[8]=0,[14]=0} +pitpal = {[8]=0,[13]=3,[4]=3,[7]=3} function level:draw() - cls(1) - pal(1,0) + fillp(0b1111111110111111) + rectfill(0,0,127,127,0x55) + fillp() + pal(normpal) map( self.bigx*16,self.bigy*16, 0,0,16,16, 64 -- flag 6: visible ) + for _,pit in pairs(self._pits) do - spr(pit.s,pit.px,pit.py) + local px,py=pit.px,pit.py + local pr=self._pits[_mix(px+1,py)] + + spr(pit.s,px,py) if pit.contents then pal(pitpal) palt(0,false) - spr(pit.contents,pit.px,pit.py) + --spr(pit.contents,pit.px,pit.py) + spr(79,pit.px,pit.py) pal() - pal(1,0) + pal(normpal) end + palt(8,true) + spr(pit.s,px,py) + palt() end for _,crate in pairs(self._crates) do spr(crate.s,crate.px,crate.py) @@ -328,7 +340,7 @@ function level:load_dynobjs() end -- pit - if (s==28) self._pits[mxy]={s=s,mx=mx,my=my,px=px,py=py} + if (fget(s,5)) self._pits[mxy]={s=s,mx=mx,my=my,px=px,py=py} end end end @@ -1682,45 +1694,45 @@ function level_text:draw() end end __gfx__ -000030000000002200003000000cc0cc0cccccccccccccccccccccccccccccccc0bb0000000000000000000000000000dddddddd000000000005000000000000 -003333300000332200333330000cc0cc0000cc0000000000000000000cc0000000bb0bb0bbbb0bbbbb0bbbbb0bbb0000dddddddd000000000000500000000000 -099333990039932009333339000cc0cc0cc0cc0cc0cccccccc0ccccc0cc0ccccc0bb0bb000bb0000bb0bb0bb0bb0b000dddddddd000000000000000000000000 -09a333a9033a932009333339000cc0cc0cc0cc0cc0cc0cc0cc0000cc0cc0cc0cc0bb0bb0bb000bbbbb0bbb000bb0b000dddddddd000000005005005000000000 -023333323333320000222220000cc0cc0cc0cc0cc0cc0cc0cc0ccccc0cc0ccccc0bb0bb0bbbb0bbbbb0bb0bb0bbbb000dddddddd000000000500500500000000 -002222200000220000222220000cc0cc0cc0000cc0cc0cc0cc0cc0cc0cc0cc0000bb0000000000000000000000000000dddddddd000000000000000000000000 -000222c002222c0000022200000ccccc0ccccc0cc0cc0cc0cc0ccccc0cc0ccccc0bbbbbbbbbbbbbbbbbbbbbbbbbbb000dddddddd000000000005000000000000 -00000cc00000cc0000000cc0000000000000000000000000000000000000000000000000000000000000000000000000dddddddd000000000000500000000000 -0000ff00000000000000000088888888888888888888880aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa11111111000000000000000000000000 -000f00f0000000000aa00aa00088000000088000000000000000000000000aa00000000000000000aa0000000000000011111111000000000000000000000000 -00d0000f000000000aaaaaa000880888880880888880880aaa00aaa0aaaa0aa0aaaaa0aa0a0aaaa0aa0aa0aaaaa0aaa011111111000000000000000000000000 -00d0d00f00c040500aaaaaa000880880880880000880880aa0a0aa00aa000aa0aa0aa0aa0a0aa000aa0aa0aa0aa0aa0a11111111000000000000000000000000 -00dd00ee00c445500099990000880880880880888880880aa0a0aa0000aa0aa0aaa000aa0a0aa000aa0aa0aa0aa0aa0a11111111000000000000000000000000 -00000ee00c44455500aaaa0000880880880880880880880aaaa0aaa0aaaa0aa0aa0aa0aaaa0aaaa0aa0aa0aaaaa0aa0a11111111000000000000000000000000 -00eeee000c004005000aa00000880888880880888880880000000000000000000000000000000000000000000000000011111111000000000000000000000000 -eeee0000cc0440550044440000000000000000000000888888800000000000000000000000000000000000000000000011111111000000000000000000000000 -00000000000a90000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000aaaaaaa91000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0000aaaaaa1a91100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0aaaaaaaaa1a91110000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0aaaaaaaa41a91a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -0a000aa4441a91a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00a0044449a110a10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000aa111991111100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000009910000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00ddddddddddddddddddddddddddd -000000009900000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00ddddddddddddddddddddddddddd -000000009900000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd77ddddddddddddddddddddddddddd -000000000900000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00dddddd00700ddd00ddd00700ddd -00000000aa00000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddd00dddddd00700ddd00ddd00700ddd -0000000077a0000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddddddddd77ddddddddddd -00000007777a000000000000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddddddddd00ddddddddddd -000444444444440000000000000000000000000000000000000000000000000000000000000000000000000000000000ddddddddddddddddddd00ddddddddddd +000030000000002200003000eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeff1ff1ff1fffffff1ffffff1fffffff1dddddddd111111110005000000000000 +003333300000332200333330eeffffffffffffffffffffeee5e555e55e555e5eff1ff1ffffffffffffffffffffffffffdddddddd111111110000500000000000 +099333990039932009333339effeeeeeeeeeeeeeeeeeeffee5eeeeeeeeeeee5eff1ff1ffff111111ff1111ff111111ffdddddddd111111110000000000000000 +09a333a9033a932009333339efee33e3333e333e3333eefee5e333e333333e5eff1ff1ffff1fffffff1ff1fffffff1ffdddddddd111111115005005000000000 +023333323333320000222220efe333e3333e333e33333efee5e333e333333e5eff1ff1ffff1fffffff1ff1fffffff1ffdddddddd111111110500500500000000 +002222200000220000222220efe33eeeeeeeeeeeeee33efeeee33eeeeee33eeeff1111ffff111111ff1ff1ff111111ffdddddddd111111110000000000000000 +000222c002222c0000022200efeeee555e555e55e5eeeefee5eeeeffffeeee5effffffffffffffffff1ff1ffffffffffdddddddd111111110005000000000000 +00000cc00000cc0000000cc0efe33e5eeeeeeeeee5e33efee5e33efeefe33e5e1ffffff11fffffffff1ff1fffffffff1dddddddd111111110000500000000000 +0000ff000000000000000000efe33e5e11111111e5e33efee5e33efeefe33e5eff1ff1ffffffffffffffffffffffffff88888888555555555555555588888888 +000f00f0000000000aa00aa0efe33eee11ffff11eee33efeeee33effffe33e5eff1ff1ffffffffffffffffffffffffff88888888558855885588558888888888 +00d0000f000000000aaaaaa0efe33e5e1ff11ff1e5e33efee5e33eeeeee33eeeff1ff1fffff11111ffffffff11111fff88888888888888888888888888888888 +00d0d00f00c040500aaaaaa0efeeee5e1f1111f1e5eeeefee5e333e333333e5eff1ff1fffff1ffffff1111ffffff1fff88888888888888888888888888888888 +00dd00ee00c4455000999900efe33e5e1f1111f1e5e33efee5e333e333333e5eff1111fffff1ffffff1ff1ffffff1fff88888888888888888888888888888888 +00000ee00c44455500aaaa00efe33eee1ff11ff1eee33efeeeeeeeeeeeeeee5efffffffffff11111ff1ff1ff11111fff88888888888888888888888888888888 +00eeee000c004005000aa000efe33e5e11ffff11e5e33efee5555e555e555e5effffffffffffffffff1ff1ffffffffff88888888888888888855885588558855 +eeee0000cc04405500444400efeeee5e11111111e5eeeefeeeeeeeeeeeeeeeeeffffffffffffffffff1ff1ffffffffff88888888888888885555555555555555 +00000000000a900000000000efe33eeeeeeeeeeeeee33efeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +00000aaaaaaa910000000000efe33e5555e555e555e33efeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +0000aaaaaa1a911000000000efe33eeeeeeeeeeeeee33efeff1ff1ff111111110000000000000000000000000000000000000000000000000000000000000000 +0aaaaaaaaa1a911100000000efe333e3333e333e33333efeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +0aaaaaaaa41a91a100000000efee33e3333e333e3333eefeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +0a000aa4441a91a100000000effeeeeeeeeeeeeeeeeeeffeff1ff1ff111111110000000000000000000000000000000000000000000000000000000000000000 +00a0044449a110a100000000eeffffffffffffffffffffeeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +000aa1119911111000000000eeeeeeeeeeeeeeeeeeeeeeeeff1ff1ffffffffff0000000000000000000000000000000000000000000000000000000000000000 +00000000991000000000000000000000000000000000000000000000000000000000000000000000000000000000000011111111111111111999999111111111 +00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999999911999999119999999 +00000000990000000000000000000000000000000000000000000000000000000000000000000000000000000000000019977991999999911999999119999999 +00000000090000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999 +00000000aa0000000000000000000000000000000000000000000000000000000000000000000000000000000000000019911991999117111991199111711999 +0000000077a000000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911997799119999999 +00000007777a00000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991999999911991199119999999 +00044444444444000000000000000000000000000000000000000000000000000000000000000000000000000000000019999991111111111111111111111111 44444444444004444444444444400444444444444440044444444444444004444444444444400444444444444440044444444444444004444444444444400444 -47766774477007744776677447700774477667744770077447766774477007744776677447700774477667744770077447766774477007744776677447700774 +477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774477dd77447711774 47777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774 -46700764467007644670070046700700467007644670076446700700467007000070076400700764007007000070070000700764007007640070070000700700 -46700764467007644670070046700700467007644670076446700700467007000070076400700764007007000070070000700764007007640070070000700700 +4d7117d44d7117d44d7117104d7117104d7117d44d7117d44d7117104d711710017117d4017117d40171171001711710017117d4017117d40171171001711710 +4d7117d44d7117d44d7117104d7117104d7117d44d7117d44d7117104d711710017117d4017117d40171171001711710017117d4017117d40171171001711710 47777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774477777744777777447777774 -47766774477667744776677447766774477007744770077447700774477007744776677447766774477667744776677447700774477007744770077447700774 +477dd774477dd774477dd774477dd77447711774477117744771177447711774477dd774477dd774477dd774477dd77447711774477117744771177447711774 44444444444444444444444444444444444004444440044444400444444004444444444444444444444444444444444444400444444004444440044444400444 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -1730,22 +1742,22 @@ eeee0000cc0440550044440000000000000000000000888888800000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000cc0cc0cccccccccccccccccccccccccccccccc0bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000cc0cc0000cc0000000000000000000cc0000000bb0bb0bbbb0bbbbb0bbbbb0bbb000000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0cc0cc0cccccccc0ccccc0cc0ccccc0bb0bb000bb0000bb0bb0bb0bb0b00000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0cc0cc0cc0cc0cc0000cc0cc0cc0cc0bb0bb0bb000bbbbb0bbb000bb0b00000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0cc0cc0cc0cc0cc0ccccc0cc0ccccc0bb0bb0bbbb0bbbbb0bb0bb0bbbb00000000000000000000000000000000000000000000000000000000000 +000cc0cc0cc0000cc0cc0cc0cc0cc0cc0cc0cc0000bb000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +000ccccc0ccccc0cc0cc0cc0cc0ccccc0cc0ccccc0bbbbbbbbbbbbbbbbbbbbbbbbbbb00000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 -00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +88888888888888888888880aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa00000000000000000000000000000000000000000000000000000000 +0088000000088000000000000000000000000aa00000000000000000aa0000000000000000000000000000000000000000000000000000000000000000000000 +00880888880880888880880aaa00aaa0aaaa0aa0aaaaa0aa0a0aaaa0aa0aa0aaaaa0aaa000000000000000000000000000000000000000000000000000000000 +00880880880880000880880aa0a0aa00aa000aa0aa0aa0aa0a0aa000aa0aa0aa0aa0aa0a00000000000000000000000000000000000000000000000000000000 +00880880880880888880880aa0a0aa0000aa0aa0aaa000aa0a0aa000aa0aa0aa0aa0aa0a00000000000000000000000000000000000000000000000000000000 +00880880880880880880880aaaa0aaa0aaaa0aa0aa0aa0aaaa0aaaa0aa0aa0aaaaa0aa0a00000000000000000000000000000000000000000000000000000000 +00880888880880888880880000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +00000000000000000000888888800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 @@ -1941,25 +1953,25 @@ __label__ 77777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777 __gff__ -000000000808080808080808c00000000000000008080808080808080000000040400000080808080808080800000000404000000808080808080808c0c0c0c000000000080808080808080800000000000000000808080808080808000000000000000008080808080808080000000000000000080808080808080800000000 +000000c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c0c0c0c020202020004000c0c0c0c0c00008080800000000404000080808080808080808c0c0c0c000000000080808080808080800000008000000000808080808080808000000000008080808080808080808080000000000080808080808080808080800000000 0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 __map__ -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3e0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c00000000000000000c0c000c004f00000c000000000000000c0c0c0c0c0c0c0000000c000c0000000c0c0c0c0c0c0c0c0c0c00000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000001c00004f00000000000c0c00001c0000000c000000000000000c0c0c0c0c0c0c0000000c000c0000000c0c000000000000000000000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c1c001c0c0c0c0c00000c0c0c000000000000000c0c000000000c0000000c000c0000000c0c0000000000000000421c000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c1c001c0c0c0000000000000c000000000000000c0c00001c1c000000000c000c0000000c0c000000000000000000000c0000410c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0000000c0c0000000000000c000000000000000c0c00001c480c004200001c430000000c0c0c0c0c000c0c0c0c00000c00001c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000e0e000000000000000e00000000000e0e0e0e000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0000000c0c0000000000000c000000000000000c0c000000000c0000000000000000000c3d00001c001c00003f0c0c0c0c0c000c0c0c0c1c1c1c1c1c1c1c1c1c1c0c0c0c0e00000000000e0000000000000000000e00000000000000000e000000000000 -0c0c0000000000000c00000000000c0c01000000000000000000000c0000000c0c0c0c00000c0c0c000000000000000c0c000000000c0c0c0c0000000c0c0c0c0c00001c1c1c00000c0c0c0c0c0c000c0c0c00001c1c1c1c1c1c1c1c00003f0c0e00000000000e0e0e000000000000000e000000000000000e00000000000000 -01000000000000004f000000000000120c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c00001c1c004f0c000000000000000c0c000000000c00000c0c0c0c0c00000c0c00001c401c00000c0000000000000c010000001c1c1c1c1c1c1c1c000000120e00000000000e00000e0000000000000e0000000000000e0000000000000000 -0c0c0000000000000c00000000000c0c0c000000000000000c0000000000000c0c0000000000000c0000004f0000000c0c000000000c0000000000000000000c0c000000000000000c00481c0000000c0c0c00001c1c1c1c1c1c1c1c00003f0c0e0000000000000e0e000000000000000e0000000000000e0000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000c0000000000000c0c0000000000000c0000001c0000000c0c000000430c0000000000000000000c0c000000000000000c0c0c000c0c0c0c0c0c0c1c1c1c1c1c1c1c1c1c1c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000c0000000000000c0c0c0c00000c0c0c00000c000c00000c0c00000000004d00000000000000000c0c000000000000000c0000000c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000c0c000c0c0c0c0c0c1c0c0c0c0c4f001c1c00000c0c0c0c000c0c0c0c0c0c0c0c0c0c0000000000000000000c0c000000000000000c00001c1c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000c1c4f1c000000000c4f0c000c0c00000000000000000000000000000c0c0c0c0c0c0c0000000000000000000c0c000000000000000c000040440c000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c1c1c1c00000000000000000c0c00000000000000000000000000000c0c0c0c0c0c0c00000c0c000c0c00000c0c0c0c0c000c0c0c0c000000000c00120c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d1203040404050d0d0d0d010d0d0d0d0d0d0d0d0d0d0d0d0d0d120d0d0d0d0d0d0d0d0d0d0d0d0d03043e0a040404050d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0a0d0d0d0d0a0d0304040405140013004f00150d0d0d1400140d0d0d0d0d0d0d0d0d0d0d0d1400140d0d0d0d0d0304040404040417000026000000150d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d03042604040404260417000000151400001e0000150304040400040404050d0d0d0d0d03040404050003040404050d1300000000000000000018000000150d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0a0d0d0d0d0d0d0d14130018000000001800000000001514141300000015130000000000000015030404040513000000160017000000150d1300000000000000421e00000000150d0d0d0d0d0d0d0d0d0a0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d010000001e0000004f000000000000150d031700000015130000000000000015130000001513004200001e43000000150d130000000000000000001a000041150d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0d1413001a000000001a0000000000150d13000000001513000000000000001513001d1d0000000000000000000000150d232424002424240700002600001e150d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000e0e000000000000000e00000000000e0e0e0e000000000000 +0d0d0d0d03040404042604050d0d0d0d0d0d232426242424242624071e001e150d13000000001513000000000000001513001f481523242424070006242424250d0304040004040523242408242400250d0d0d0d03040404041804050d0d0d0d0e00000000000e0000000000000000000e00000000000000000e000000000000 +0d14141413000000001800151414140d0d0d0d0d080d0d0d0d080d23240024250d23240000242513000000000000001513000000150d0d0d0d2324250d0d0d0d0d3d001c001c003f03040404040400050d1414141300001d1d1d003f1414140d0e00000000000e0e0e000000000000000e000000000000000e00000000000000 +0100000000000000004f0000000000120d0d0304040404050d0d0d0d1400140d0d030400000405130000004f000000151300000015030404050d0d0d030404050d13001c1d1c00151300000000000015010000000000001c1c1c0000000000120e00000000000e00000e0000000000000e0000000000000e0000000000000000 +0d14141413000000001a00151414140d0d0d1300000000150d0304040400050d0d13001e1e4f15130000001e00000015130000001513000016040404170000150d13001f401f00151300481e000000150d1414141300001f1f1f003f1414140d0e0000000000000e0e000000000000000e0000000000000e0000000000000000 +0d0d0d0d23242424242624250d0d0d0d0d0d1300000000150d1300000000150d0d130000000015130000150013000015130000431513000000000000000000150d1300000000001523242400242424250d0d0d0d23242424241a24250d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0d091b00191b00192727271b1e19270b0d2324240024252324242500232424251300000000004d0000000000000000150d1300000000001503040000040514140d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0d0d1300001e4f1e000000004f00150d0d0d03040004050d0d0d1400140d0d0d232424242513000000000000000000150d130000000000151300001d1d0000140d0d0d0d0d0d0d0d0d260d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d080d0d0d0d0d0d0d0d230024242425141300000000150d0d0d134f1e00151414141400140d0d0d0d0d0d0d0d13000006240024070000150d2324240024242513000040441500140d0d0d0d0d0d0d0d0d080d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d1400140d0d0d0d2324242424250d0d0d13000000000000000000140d0d0d0d0d0d0d0d23242425140014232424250d0d0d1400140d0d13000000001500120d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 +0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d120d0d0d0d0d0d0d0d0d0d0d0d0d0d23242424251414141414140d0d0d0d0d0d0d0d0d0d0d0d0d010d0d0d0d0d0d0d0d0d010d0d0d232424242425140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e 0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c0c0c0e000000000000000000000000000000 0c004f000000000c001c1c000c0c000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3e0c0c0c0c0c0c0c0c000c000c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -- 2.34.1 From da1d5e3ce6bc27073463d1a5e4e2daa40a8f9405 Mon Sep 17 00:00:00 2001 From: Kistaro Windrider Date: Fri, 30 Dec 2022 00:01:43 -0800 Subject: [PATCH 3/3] Add a level to slot 15. Slot 15 is now a full-screen level that does not require any techniques not included directly in the tutorial, but it is not immediately obvious what goes where. This is too difficult to be the immediate successor to the tutorial and too sloppy to be considered finished, but I think it can be refined into a reasonable midgame full-screen-ish puzzle. (It is structurally sequential enough that it could and possibly should be broken into multiple smaller puzzles; an ideal full-screen puzzle is more structurally coherent.) --- chameleonic.p8 | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/chameleonic.p8 b/chameleonic.p8 index 9a9d489..1957a3a 100644 --- a/chameleonic.p8 +++ b/chameleonic.p8 @@ -1972,22 +1972,22 @@ __map__ 0d0d0d0d0d0d0d0d0d080d0d0d0d0d0d0d0d230024242425141300000000150d0d0d134f1e00151414141400140d0d0d0d0d0d0d0d13000006240024070000150d2324240024242513000040441500140d0d0d0d0d0d0d0d0d080d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d1400140d0d0d0d2324242424250d0d0d13000000000000000000140d0d0d0d0d0d0d0d23242425140014232424250d0d0d1400140d0d13000000001500120d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d120d0d0d0d0d0d0d0d0d0d0d0d0d0d23242424251414141414140d0d0d0d0d0d0d0d0d0d0d0d0d010d0d0d0d0d0d0d0d0d010d0d0d232424242425140d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0e0000000000000000000000000000000e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e -0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c004f000000000c001c1c000c0c000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3e0c0c0c0c0c0c0c0c000c000c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c0000000000000000000000000c000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c00000000000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c0000000c0c0000000c000000001c120100000000000000004f000000000012010000000000001c004f0000000000120100000000000000004f1c000000001201000000000000000047000000000012010000000000000000401c00000000120c0c0c00001c1c1c0c0c0c0c0c0c0c0c0e000000000e00000e0e0e0000000000 -0c000c000c0c0000000c0c0c0000000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c0000004a000c0c0c0c0c0c0c0c0e000000000e00000e00000000000000 -0c000c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3c0c0c0c0c0c0c0c0c0c00000c000c0c0c0c0c0c0c0c0e000000000e00000e0e0e0000000000 -01000c0c00000000000c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000e000000000e0000000000 -0c0000000000000c00000c000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000e000000000e0000000000 -0c00004f0000000c0c000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000e00000e0e0e0000000000 -0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c000c0c0c0000000c0c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c00000000001c00000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0e000000000000000000000000000000 -0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e0e +0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c010c0c0c0c0c0c0c0c0c0c0c0c03040404043e04040404040404040405 +0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c00000000000c0c0c0c0c0c0c0c130c0c0c0000001c00001c1c0c0c0c15 +0c004f000000000c001c1c000c0c000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3e0c0c0c0c0c0c0c0c000c000c000c0c0c0c0c0c0c0c130c0c0c0000001c1c1c1c4800000c15 +0c0000000000000000000000000c000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c00000000000c0c0c0c0c0c0c0c131c0c0c0c1c1c1c0000001c00000c15 +0c0000000c0c0000000c000000001c120100000000000000004f000000000012010000000000001c004f0000000000120100000000000000004f1c000000001201000000000000000047000000000012010000000000000000401c00000000120c0c0c00001c1c1c0c0c0c0c0c0c0c0c131c1c000000000c1c00000c0c000015 +0c000c000c0c0000000c0c0c0000000c0c00000000000000000c00000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000000000000000000000c0c0c0c0c0c0000000000000000000c000000000c0c000000000000000000001c0000000c0c0c0c0000004a000c0c0c0c0c0c0c0c1300001c1c000000001c000c0c000015 +0c000c0000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000000000c0c0c0c0c0c0c0c0c0c0c0c00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c3c0c0c0c0c0c0c0c0c0c00000c000c0c0c0c0c0c0c0c130000001c0000001c1c000c00000c15 +01000c0c00000000000c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0000001c0000000c00000c15 +0c0000000000000c00000c000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c0100000c0000000c0c0c0c0c0c000015 +0c00004f0000000c0c000c0000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0000000c0000000000000015 +0c00000000000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c4f00000c0040000000000015 +0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0c1c3c0c1c1c1c1c1c1c3c15 +0c000c0c0c0000000c0c0c004f00000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c13000000001c0c0c00001c1c1c1c4c15 +0c00000c00000000000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c00000c0c42001c1c001c003f +0c00000000001c00000000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c000c0c0c0c0c0c0c0c1300000c0c4f0c3d41001c1c001c0015 +0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c120c0c0c0c0c0c0c0c2324242424242424243c242412242425 __sfx__ 00110000250002500025030250302503000000230350000023030230302303023030230302303023030230302103021030210302103021030210300000000000177401774017740177311e7501e7501e7501e750 00110000290202a0212a0202a0202a0202a02025030250052503025030250302503025030250302503025030250302503025030250302503225030230322504526030260302a040000002d0402d0402d0402d040 -- 2.34.1