sprite prototype

This commit is contained in:
Kistaro Windrider 2024-02-05 09:25:06 -08:00
parent 135d6ea4eb
commit 3870e3882e
Signed by: kistaro
SSH Key Fingerprint: SHA256:TBE2ynfmJqsAf0CP6gsflA0q5X5wD5fVKWPsZ7eVUg8

View File

@ -377,7 +377,8 @@ end
-- dolphin sprite renderer -- dolphin sprite renderer
phinstate_nrm = { phinstate_nrm = {
s={4, 36, 4, 9}, --s={4, 36, 4, 9},
s={4},
ws=3, ws=3,
hs=2, hs=2,
idle=true, idle=true,
@ -464,11 +465,11 @@ function toyphin:update()
-- button handling -- button handling
if self.entered and not self.exiting then if self.entered and not self.exiting then
if y >= 61 and y <= 67 and dy < 1 and dy > -1 then if y >= 61 and y <= 67 then
if (btn(2)) then if (btn(2)) and dy < 1 then
splash:jump_splash(x) splash:jump_splash(x)
dy=-3.8 dy=-3.8
elseif (btn(3)) then elseif (btn(3)) and dy > -1 then
splash:dive_splash(x) splash:dive_splash(x)
dy=3.8 dy=3.8
end end
@ -494,7 +495,7 @@ function toyphin:update()
end end
else else
-- brake -- brake
if dy > -1 then if dy > -0.75 then
--stabilize --stabilize
new_y = 64 new_y = 64
dy = 0 dy = 0
@ -515,7 +516,7 @@ function toyphin:update()
end end
else else
--brake --brake
if dy < 1 then if dy < 0.75 then
--stabilize --stabilize
new_y = 64 new_y = 64
dy = 0 dy = 0
@ -603,8 +604,9 @@ end
-- 1: black (for sprites) -- 1: black (for sprites)
-- 2: dolphin shading -- 2: dolphin shading
-- 3: azure water, maybe score display? (140) -- 3: azure water, maybe score display? (140)
-- 4, 5, 6: unassigned, layer-specific -- 4, 5: unassigned, layer-specific
-- 7: dolphin highlights -- 6: dolphin specular highlights
-- 7: dolphin white paint
-- 8, 9: unassigned, layer specific -- 8, 9: unassigned, layer specific
-- 10: word primary (yellow 10?) -- 10: word primary (yellow 10?)
-- 11: word shadow (wood 132?) -- 11: word shadow (wood 132?)
@ -626,13 +628,13 @@ end
-- document what colors those -- document what colors those
-- are (nrm_pal) if so. -- are (nrm_pal) if so.
game_nrm_pal = { game_nrm_pal = {
[0] = 1, 0, 2, 140, 4, 5, 6, 7, 8, 9, 10, 132, 12, 12, 14, 7 [0] = 1, 0, 2, 140, 4, 5, 7, 7, 8, 9, 10, 132, 12, 12, 14, 7
} }
-- undersea palette local decisions: -- undersea palette local decisions:
-- 4: deeper sea blue (129) -- 4: deeper sea blue (129)
game_uw_pal = { game_uw_pal = {
[0]=1, 0, 130, 140, 129, 5, 6, 13, 8, 9, 10, 132, 131, 12, 141, 7 [0]=1, 0, 130, 140, 129, 5, 141, 13, 8, 9, 10, 132, 131, 12, 141, 7
} }
function setup_arcade_pal() function setup_arcade_pal()
@ -660,9 +662,9 @@ mknew(sea)
function sea:draw() function sea:draw()
local w = wave() local w = wave()
rectfill(0, 72+w, 128, 80+w, 0) rectfill(0, 66+w, 128, 77+w, 0)
poke2(0x5f78, 0xFF00.00FF <<> w) poke2(0x5f78, 0xff00.00ff <<> w)
rectfill(0, 81+w, 128, 89+w, 0x1040.a842) rectfill(0, 78+w, 128, 89+w, 0x1040.a842)
rectfill(0, 90+w, 128, 97+(w>>1), 0x1004.e169) rectfill(0, 90+w, 128, 97+(w>>1), 0x1004.e169)
rectfill(0, 98+(w>>1), 128, 104+(w>>2), 0x1004.a842) rectfill(0, 98+(w>>1), 128, 104+(w>>2), 0x1004.a842)
rectfill(0, 104+(w>>2), 128, 110+(w>>2), 0x1004) rectfill(0, 104+(w>>2), 128, 110+(w>>2), 0x1004)
@ -715,7 +717,7 @@ mknew(arcade_level, function(x)
-- Switch to small font -- Switch to small font
-- (Dogica is too large to ever miss!) -- (Dogica is too large to ever miss!)
?"\^@56000800\0\0\0\0\0\0\0\0\0`w\0g \0aw\0\0\0\0\0\0fw\0\0\0`'\0\0\0 \0pp\0\0\0`\0 \0!\0\0q333333wf\0V\0ヨu◆gw☉vP●\"s◝◆◝◝◝メ◝▒◝◆▒☉ヲ\0◝◆◝◝◝モ◝☉☉☉▒☉☉ユ\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\n\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\t\t\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\t\t\0\0\0\0\0\0\0\0\0\r\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t \r\t\0\0\0\t\t\t\0\0\0\0\0\0\t\t\r\0\0\0\0\0\0\0\0\0\0\0\t\t\t\t\0\0\0\t\t\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0U*U*U*\0\0A]]>\0\0\0>ccw>\0\0\0DDD\0\0\0\0\0\0\0\0\0\0\06w6\0\0\0\n\0\0\0>*:\0\0\0>gcg>\0\0\0?-?!?\0\0\0\0\0\0>ckc>\0\0\0\0\0\0\0\0U\0\0\0\0\0>scs>\0\0\0>\"\0\0\0\0\0\0>wcc>\0\0\0\0R \0\0\0\0\0*D\0\0\0\0>kwk>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \0\0\0\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\r\t\0\0\0\0\0\0\0\0\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0 \n\n\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\t\0\0\0\0\t*9 \0\0\t\t\0\0!\nUr@\0\0\0\0\0\0\0\0\0\0\0\0\n\0\0\0\0\0\0\0\0\0 \r\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\n\0\t\t\0\0\0\0\0\0\0\0\0\0\0\n\0\t\0\0\0\0\0\0\0\0\0\0\0\r\0\0\0\0\t\t\0\0\0\t\t\0\0\t\0\t\t\0\0\t\0\0\t\t\0\0\0\0 \0\0\t\t\0\0\0\0\0\0\0\0\0\n\t\t\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\t\t\0\0\n\t \r\t\0\0\t\t\0\0\t\t\0\0\t\t\0\0\n\t\t\0\0\t\0\t\t\0\0\0\0\0\0\0\t\r\0\0\0\t\t\t\0\0\t\t\t\0\0\t\t\0\0\t\0\t\t\t\0\0\0\0\t\t\0\0\0\0" ?"\^@56000800⁴⁵⁷\0\0¹\0\0\0\0\0\0\0`w\0g \0aw\0⁶⁶\0\0\0\0\0fw⁷¹\0\0\0`⁷'\0\0\0▮ \0pp\0\0\0¹▮`\0 ■▮\0▮!\0\0⁶q33⁙■⁙3□⁙3▮33■wf\0V\0ヨu◆▶g○w☉vP●「\"s◝◆◝¹◝◝メ◝▒◝◆○▒☉ヲ\0◝◆◝¹◝◝モ◝☉☉☉⁸▒☉☉ユ\0⁷⁷⁷⁷⁷\0\0\0\0⁷⁷⁷\0\0\0\0\0⁷⁵⁷\0\0\0\0\0⁵²⁵\0\0\0\0\0⁵\0⁵\0\0\0\0\0⁵⁵⁵\0\0\0\0⁴⁶⁷⁶⁴\0\0\0¹³⁷³¹\0\0\0⁷¹¹¹\0\0\0\0\0⁴⁴⁴⁷\0\0\0⁵⁷²⁷²\0\0\0\0\0¹\0\0\0\0\0\0\0\0¹²\0\0\0\0\0\0³³\0\0\0⁵⁵\0\0\0\0\0\0²⁵²\0\0\0\0\0\0\0\0\0\0\0\0\0¹¹¹\0¹\0\0\0⁵⁵\0\0\0\0\0\0\n゜\n゜\n\0\0\0²⁷³⁶⁷²\0\0⁵⁴²¹⁵\0\0\0²⁵ᵉ⁵ᵉ\0\0\0¹¹\0\0\0\0\0\0²¹¹¹²\0\0\0¹²²²¹\0\0\0⁵²⁷²⁵\0\0\0\0²⁷²\0\0\0\0\0\0\0\0¹¹\0\0\0\0⁷\0\0\0\0\0\0\0\0\0¹\0\0\0⁴⁴²¹¹\0\0\0²⁵⁵⁵²\0\0\0²³²²⁷\0\0\0³⁴²¹⁷\0\0\0³⁴²⁴³\0\0\0⁵⁵⁷⁴⁴\0\0\0⁷¹³⁴³\0\0\0⁶¹³⁵²\0\0\0⁷⁴⁴²²\0\0\0²⁵²⁵²\0\0\0²⁵⁶⁴³\0\0\0\0¹\0¹\0\0\0\0\0\0¹\0¹¹\0\0\0²¹²\0\0\0\0\0³\0³\0\0\0\0\0¹²¹\0\0\0\0³⁴²\0²\0\0\0⁶\t\r¹⁶\0\0\0\0³⁶⁵⁷\0\0\0¹³⁵⁵³\0\0\0\0⁶¹¹⁶\0\0\0⁴⁶⁵⁵⁶\0\0\0\0²⁵³⁶\0\0\0⁴²⁷²²\0\0\0\0⁶⁵⁶⁴³\0\0¹¹³⁵⁵\0\0\0¹\0¹¹¹\0\0\0²\0²²²¹\0\0¹⁵³⁵⁵\0\0\0¹¹¹¹²\0\0\0\0ᶠ‖‖‖\0\0\0\0³⁵⁵⁵\0\0\0\0²⁵⁵²\0\0\0\0³⁵⁵³¹\0\0\0⁶⁵⁵⁶⁴\0\0\0³⁵¹¹\0\0\0\0⁶³⁶³\0\0\0²⁷²²⁶\0\0\0\0\t\t\t⁶\0\0\0\0⁵⁵⁵³\0\0\0\0■■‖\n\0\0\0\0⁵²⁵⁵\0\0\0\0⁵⁵⁵⁶³\0\0\0⁷⁶³⁷\0\0\0³¹¹¹³\0\0\0¹²²²⁴\0\0\0³²²²³\0\0\0²⁵\0\0\0\0\0\0\0\0\0\0⁷\0\0\0²⁴\0\0\0\0\0\0²⁵⁷⁵⁵\0\0\0³⁵³⁵³\0\0\0⁶¹¹¹⁶\0\0\0⁷\t\t\t⁷\0\0\0⁷¹³¹⁷\0\0\0⁷¹³¹¹\0\0\0ᵉ¹\r\t⁶\0\0\0⁵⁵⁷⁵⁵\0\0\0¹¹¹¹¹\0\0\0⁴⁴⁴⁴⁵²\0\0⁵⁵³⁵⁵\0\0\0¹¹¹¹⁷\0\0\0■•‖■■\0\0\0\tᵇᶠ\r\t\0\0\0⁶\t\t\t⁶\0\0\0³⁵³¹¹\0\0\0⁶\t\t\r⁶⁸\0\0³⁵³⁵⁵\0\0\0⁶¹²⁴³\0\0\0⁷²²²²\0\0\0\t\t\t\t⁶\0\0\0\t\t\t⁵³\0\0\0■■‖•■\0\0\0⁵⁵²⁵⁵\0\0\0⁵⁵²²²\0\0\0⁷⁴²¹⁷\0\0\0⁶²¹²⁶\0\0\0¹¹\0¹¹\0\0\0³²⁴²³\0\0\0\0\0\n⁵\0\0\0\0³³\0\0\0\0\0\0○○○○○○\0\0U*U*U*\0\0A○]]>\0\0\0>ccw>\0\0\0■D■D■D\0\0²゛ᵉᶠ⁸\0\0\0ᵉ▶゜゜ᵉ\0\0\0•゜゜ᵉ⁴\0\0\0、6w6、\0\0\0ᵉᵉ゜ᵉ\n\0\0\0、>○*:\0\0\0>gcg>\0\0\0?-?!?\0\0\0、⁴⁴⁷⁷\0\0\0>ckc>\0\0\0⁴ᵉ゜ᵉ⁴\0\0\0\0\0U\0\0\0\0\0>scs>\0\0\0⁸、○>\"\0\0\0゜ᵉ⁴ᵉ゜\0\0\0>wcc>\0\0\0\0⁵R \0\0\0\0\0■*D\0\0\0\0>kwk>\0\0\0゜\0゜\0゜\0\0\0‖‖‖‖‖\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0¹\0¹¹¹\0\0\0⁴ᵉ⁵ᵉ⁴\0\0ᶜ²⁷²ᶠ\0\0\0■ᵉ\nᵉ■\0\0\0⁵⁵²⁷²\0\0\0¹¹\0¹¹\0\0\0⁶³⁵⁶³\0\0\0⁵\0\0\0\0\0\0\0⁶\t\r\t⁶\0\0\0³⁶⁵⁷\0\0\0\0\0□\t□\0\0\0\0\0\0⁷⁴\0\0\0\0\0\0\0\0\0\0\0\0³⁵³⁵\0\0\0\0⁷\0\0\0\0\0\0\0²⁵²\0\0\0\0\0²⁷²\0⁷\0\0\0³²¹³\0\0\0\0¹³²¹\0\0\0\0²¹\0\0\0\0\0\0\0\0⁵⁵³¹\0\0ᶠᵇᵇ\n\n\0\0\0\0\0¹\0\0\0\0\0\0\0\0\0²³\0\0²³²²\0\0\0\0²⁵²\0\0\0\0\0\0\t□\t\0\0\0\0■\t⁵*9 \0\0■\t。□\t「\0\0!⁙\nUr@\0\0\0²\0²¹⁶\0\0²⁴³⁶⁵⁷\0\0²¹³⁶⁵⁷\0\0²⁵³⁶⁵⁷\0\0\n⁵³⁶⁵⁷\0\0⁵\0³⁶⁵⁷\0\0²\0³⁶⁵⁷\0\0\0ᵇ◀\r゜\0\0\0\0\0ᵉ¹ᵉ⁴\0\0²⁴²⁵³⁶\0\0²¹²⁵³⁶\0\0²⁵²⁵³⁶\0\0⁵\0²⁵³⁶\0\0¹²\0\0²²\0\0²¹\0\0¹¹\0\0²⁵\0\0²²\0\0⁵\0\0\0²²\0\0ᵉ□▶□ᵉ\0\0\0\n⁵\0⁷\t\t\0\0¹²\0²⁵²\0\0⁴²\0²⁵²\0\0²⁵\0²⁵²\0\0\n⁵\0⁶\t⁶\0\0⁵\0\0²⁵²\0\0\0⁵²⁵\0\0\0\0▮ᵉ‖□\r\0\0\0²⁴\0\t\t⁶\0\0⁴²\0\t\t⁶\0\0⁶\t\0\t\t⁶\0\0\t\0\0\t\t⁶\0\0⁴²\0⁵⁵⁶³\0¹⁵ᵇᵇ⁵¹\0\0⁶\t⁵\t⁵\0\0\0²⁴²⁵⁷⁵\0\0²¹²⁵⁷⁵\0\0²⁵²⁵⁷⁵\0\0\n⁵⁶\tᶠ\t\0\0⁵\0²⁵⁷⁵\0\0²\0²⁵⁷⁵\0\0゛⁵ᶠ⁵。\0\0\0ᵉ¹¹¹ᵉ⁴\0\0²⁴⁷³¹⁷\0\0²¹⁷³¹⁷\0\0²⁵⁷³¹⁷\0\0⁵\0⁷³¹⁷\0\0¹²\0²²²\0\0²¹\0¹¹¹\0\0²⁵\0²²²\0\0⁵\0\0²²²\0\0²⁵ᵉ\t\t⁶\0\0\n⁵\tᵇ\r\t\0\0²⁴⁶\t\t⁶\0\0⁴²⁶\t\t⁶\0\0²⁵⁶\t\t⁶\0\0\n⁵⁶\t\t⁶\0\0\t\0⁶\t\t⁶\0\0²\0⁷\0²\0\0\0◀\t‖□\r\0\0\0²⁴\t\t\t⁶\0\0⁴²\t\t\t⁶\0\0²⁵⁸\t\t⁶\0\0\t\0\t\t\t⁶\0\0⁴²⁵⁵²²\0\0¹⁷\t\t⁷¹\0\0⁵\0⁵⁵²²\0"
poke(0x5f58,0x81) -- enable custom font poke(0x5f58,0x81) -- enable custom font
end) end)
@ -766,7 +768,7 @@ function arcade_level:draw()
end end
function arcade_level:draw_splash(x, force) function arcade_level:draw_splash(x, force)
if (force < 1) return if (force < 0.5) return
local n = (force + rnd(force)) & 0x7FF local n = (force + rnd(force)) & 0x7FF
for i=0,n do for i=0,n do
local d = droplet.new{x=x, force=force, y=72+wave(), f=i/n-0.5} local d = droplet.new{x=x, force=force, y=72+wave(), f=i/n-0.5}
@ -824,35 +826,35 @@ end
-->8 -->8
-- game sequencer -- game sequencer
__gfx__ __gfx__
00888800777777777777777777777777777777777777777777777777777777777777777777777777777777777777777700000000000000000000000000000000 00888800777777777777777777777777000000000000000000000000777777777777777700000000000000000000000000000000000000000000000000000000
0888e780700000000000000000000007700000000000000000000007700000000000000770000000000000000000000700000000000000000000000000000000 0888e780700000000000000000000007000000000000000000000000700000000000000700000000000000000000000000000000000000000000000000000000
88888878700000000000000000000007700000000000000000000007700002222220000770000000000000000000000700000000000000000000000000000000 88888878700000000000000000000007000000000000000000000000700002222220000700000000000000000000000000000000000000000000000000000000
88a8a8e8700000000000000000000007700000000000000000000007700002eeee20000770000000000000000000000700000000000000000000000000000000 88a8a8e8700000000000000000000007000000000000000000000000700002eeee2000070000000000ee00000000000000000000000000000000000000000000
888a888870000000000000000000000770000000000000000000000770000222e220000770222200000000000000000700000000000000000000000000000000 888a888870000000000000000000000700000000022260000000000070000222e22000070000000000e7e00000000000000000000eee70000000000000000000
88a8a888700000000000000000000007702222022222222222222207700002eeee200007702ee222222222222222220700000000000000000000000000000000 88a8a888700000000000000000000007000000000022260000000000700002eeee20000700000000002e7e00000000000000000000eee7000000000000000000
08888880700000000000000000000007702ee222e22e22ee22e2e2077000022222200007702e2e22e22e22ee22e2e20700000000000000000000000000000000 08888880700000000000000000000007000000000002222600000000700002222220000700000000000ee7ee0000000000000000000eeee70000000000000000
00888800700000000000000000000007702e2e2e2e2e22e2e2e2e2077000022e22000007702e2e2e2e2e22e2e2e2e20700000000000000000000000000000000 008888007000000000000000000000070220000000266222662000007000022e2200000700000000e7eee7e77ee000000ee0000000ee7eee77e0000000000000
00000000700000000000000000000007702e2e2e2e2e22ee22eee207700002e2e2200007702eee2e2e2e22ee22eee20700000000000000000000000000000000 00000000700000000000000000000007226200002662222222222000700002e2e22000070e00000eee7eeeeeeeeee000ee7e0000e77eeeeeeeeee00000000000
00000000702222022222222222222207702eee22e22ee2e222e2e207700002eeee20000770222222e22ee2e222e2e20700000000000000000000000000000000 00000000702222022222222222222207022626622222222227772620700002eeee200007e77e0e7eeeee77eee777e7e00e77eeeeeeeeeeeee777e7e000000000
00000000702ee222e22e22ee22e2e207702222222222222202222207700002222220000770000022222222220222220700000000000000000000000000000000 00000000702ee222e22e22ee22e2e2070e2622222222222227c122627000022222200007eee7eee7e222eeeee7c1ee7e02e7ee77eeeeeeeee7c1ee7e00000000
00000000702e2e2e2e2e22e2e2e2e207700000000000000000000007700002222e20000770000000000000000000000700000000000000000000000000000000 00000000702e2e2e2e2e22e2e2e2e207222222eee222222222eee262700002222e20000702eeeee2222222eeee222e7eeeeeee222eeeeeeeee222e7e00000000
00000000702e2e2e2e2e22ee22eee207700000000000000000000007700002eeee20000770000000000000000000000700000000000000000000000000000000 00000000702e2e2e2e2e22ee22eee207222eeeeeeeeee2222eeeeee0700002eeee2000072e7ee20000022eeee2222220eee2222222222eeee222222000000000
00000000702eee22e22ee2e222e2e207700000000000000000000007700002222220000770000000000000000000000700000000000000000000000000000000 00000000702eee22e22ee2e222e2e2072eee0000eeee22262eeee0007000022222200007eeee20000000ee7e22222000e22200002222ee7e2222200000000000
000000007022222222222222022222077000000000000000000000077000022ee220000770000000000000000000000700000000000000000000000000000000 00000000702222222222222202222207ee00000000022262000000007000022ee2200007ee220000000eeee70000000022000000000eeee70000000000000000
00000000700000000000000000000007777777777777777777777777700002e22e20000777777777777777777777777700000000000000000000000000000000 00000000700000000000000000000007000000000022220000000000700002e22e200007020000000eee220000000000000000000eee22000000000000000000
000000007000000000000000000000077777777777777777777777777000022ee220000700000000000000000000000000000000000000000000000000000000 000000007000000000000000000000070000000000000000000000007000022ee220000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700000222220000700000000000000000000000000000000000000000000000000000000 00000000700000000000000000000007000000000000000000000000700000222220000700000000000000000000000000000000000000000000000000000000
000000007000000000000000000000077000000000000000000000077000022eee20000700000000000000000000000000000000000000000000000000000000 000000007000000000000000000000070000000000000000000000007000022eee20000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700002e22e20000700000000000000000000000000000000000000000000000000000000 000000007000000000000000000000070000000000ee000000000000700002e22e20000700000000000000000000000000000000000000000000000000000000
00000000700000000000000000000007700000000000000000000007700002eeee20000700000000000000000000000000000000000000000000000000000000 000000007000000000000000000000070000000000e7e00000000000700002eeee200007000000000222e0000000000000000000022270000000000000000000
00000000700000000000000000000007700000022222222222222207700002222220000700000000000000000000000000000000000000000000000000000000 0000000070000000000000000000000700e00000002e7e000000000070000222222000070000000000222e000000000000000000002227000000000000000000
0000000070000000000000000000000770222222e22e22ee22e2e207700000000000000700000000000000000000000000000000000000000000000000000000 000000007000000000000000000000070eee0000000ee7ee000000007000000000000007000000000002222e0000000000000000000222270000000000000000
00000000777777777777777777777777702ee22e2e2e22e2e2e2e207777777777777777700000000000000000000000000000000000000000000000000000000 000000007777777777777777777777770e7e0000002ee7e77ee000007777777777777777022000000022e222ee20000002200000002272227720000000000000
00000000000000000000000000000000702e2e2e2e2e22ee22eee207000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000002e7ee0002ee7eeeeeeee000000000000000000022e200002ee222222222200022720000277222222222200000000000
00000000000000000000000000000000702e2e22e22ee2e222e2e207000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000eeeee7eeee777eeee777e7e0000000000000000002ee22222222222227772e2002772222222222222777272000000000
00000000000000000000000000000000702eee222222222202222207000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000eee22e77eeeeeeeee7c1ee7e0000000000000000022e22ee2222222227c122e20e2722772222222227c1227200000000
00000000000000000000000000000000702222200000000000000007000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000220022222eeeeeeeee222e7e00000000000000002222227772222222227772e2222222eee222222222eee27200000000
00000000000000000000000000000000700000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000 000000000000000000000000000000000000002222222eeee22222200000000000000000222777777777722227777770222eeeeeeeeee2222eeeeee000000000
00000000000000000000000000000000700000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000002222ee7e22222000000000000000000027770000777722e2777770002eee0000eeee2272eeeee00000000000
00000000000000000000000000000000700000000000000000000007000000000000000000000000000000000000000000000000000000000000000000000000 0000000000000000000000000000000000000000000eeee7000000000000000000000000770000000002222e00000000ee000000000222270000000000000000
00000000000000000000000000000000777777777777777777777777000000000000000000000000000000000000000000000000000000000000000000000000 00000000000000000000000000000000000000000eee2200000000000000000000000000000000000222770000000000000000000222ee000000000000000000