Compare commits

..
Author SHA1 Message Date
TaikoZhongandClaude Opus 5.5 68e07f3c22 Tutorial: crisp wave rows
- Pixels tinted by the green filler take the nearest clean pixel's colour and
  keep their own coverage (the neighbourhood average smeared the joints)
- The background layers are drawn at whole pixels: between pixels, filtering
  softened them and darkened their edges

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:42:02 +08:00
TaikoZhong 4acb5411c7 Update checksums.sha256 2026-11-02 14:22:58 +08:00
GanYiZhong b8dcef4fe0 Merge pull request 'Tutorial: fill the wave rows' joints' (#82) from GanYiZhong/YataiDONNijiiro:fix/tutorial-wave-joints into main 2026-11-02 07:22:37 +01:00
TaikoZhongandClaude Opus 5.5 32aa418dc5 Tutorial: fill the wave rows' joints
The green filler pixels were cut out, leaving small holes where the fans
meet; they are now repainted from the neighbouring colours.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 14:22:00 +08:00
TaikoZhong 8d7218769e Update checksums.sha256 2026-11-02 13:33:37 +08:00
GanYiZhong be5df5662c Merge pull request 'Song select: a howto board for the tutorial folder' (#81) from GanYiZhong/YataiDONNijiiro:feat/howto-box into main 2026-11-02 06:33:02 +01:00
GanYiZhong cd577573ba Merge pull request 'Tutorial: Chinese captions, narration, background and sounds' (#80) from GanYiZhong/YataiDONNijiiro:feat/tutorial into main 2026-11-02 06:32:51 +01:00
TaikoZhongandClaude Opus 5.5 ef06a424e4 Song select: a howto board for the tutorial folder
The tutorial folder (GENRE:TUTORIAL) uses the recent board's colours with its
own characters (box_chara frame 10).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:31:14 +08:00
TaikoZhongandClaude Opus 5.5 e3e2ef9903 Tutorial: Chinese captions, narration, background and sounds
- Japanese narration in scene order, Chinese (zh) captions, skip and clear text
- New tutorial background: pattern, mountains, clouds and four wave rows on
  their own scroll/bob timelines, still floor
- Tutorial music and sound effects (side hit, balloon, clear, burn)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 13:30:48 +08:00
TaikoZhongandClaude Opus 5.5 5edb380f2a Update checksums.sha256
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 10:11:05 +08:00
GanYiZhong eed50218de Merge pull request 'GOGO fireworks: arcade placement and fan-out' (#79) from GanYiZhong/YataiDONNijiiro:fix/gogo-explosion into main 2026-11-02 03:10:44 +01:00
TaikoZhongandClaude Opus 5.5 bcb986f401 GOGO fireworks: arcade placement and fan-out
The six gogo_time/explosion fountains used the arcade's splash positions
as absolute screen coordinates. Those positions are relative to the lane
(+276), so the fountains stood 657 px too high and covered the lane. They
are now centred where the arcade puts them, rising from the bottom of the
screen, and game_gogo_explosion_tilt fans them out by the arcade's angles
(+-5.89 / +-11.78 deg, the outer pairs mirrored).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 10:08:11 +08:00
TaikoZhongandClaude Opus 5.5 20dc837442 Update checksums.sha256
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-02 09:46:11 +08:00
GanYiZhong 930160395a Merge pull request 'Loading transition: glow without additive blend, curtains open on the game' (#78) from GanYiZhong/YataiDONNijiiro:fix/loading-transition into main 2026-11-02 02:45:36 +01:00
32 changed files with 315 additions and 102 deletions

No files matched your search

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,10 @@
{
"pat": {},
"mtn": {},
"cloud": {},
"w13": {},
"w16": {},
"w21": {},
"w24": {},
"floor": {}
}
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+12 -12
View File
@@ -1,8 +1,8 @@
{
"explosion": [
{
"x": -46,
"y": 336,
"x": 150,
"y": 993,
"crop": [
[
0,
@@ -187,24 +187,24 @@
]
},
{
"x": 276,
"y": 333
"x": 472,
"y": 990
},
{
"x": 599,
"y": 333
"x": 795,
"y": 990
},
{
"x": 921,
"y": 333
"x": 1117,
"y": 990
},
{
"x": 1244,
"y": 333
"x": 1440,
"y": 990
},
{
"x": 1566,
"y": 336
"x": 1762,
"y": 993
}
],
"fire": {
+95 -2
View File
@@ -31,7 +31,7 @@
"text": {
"ja": "フチを5回叩くと説明がおわるよ",
"en": "Hit the rim 5 times to skip",
"zh": "敲击鼓边5次即可跳过说明",
"zh": "敲击5次鼓边即可结束说明",
"ko": "테두리를 5번 치면 설명이 끝나"
}
},
@@ -40,10 +40,100 @@
"text": {
"ja": "ココをこえれば\nクリア",
"en": "Get past here\nto clear",
"zh": "超过这里\n就能通关",
"zh": "超过这个位置\n就算通关了!",
"ko": "여기를 넘으면\n클리어"
}
},
"tutorial_caption_1": {
"font_size": 38,
"text": {
"ja": "このゲームのあそびかたをおしえるよ",
"en": "This is how to play!",
"zh": "现在开始讲解游戏的玩法",
"ko": "이 게임의 플레이 방법을 알려줄게"
}
},
"tutorial_caption_2": {
"font_size": 38,
"text": {
"ja": "流れてくる音符が\nワクにかさなったら\nバチで太鼓をたたこう",
"en": "When a note flows in\nand reaches the frame,\nhit the drum with your sticks!",
"zh": "注意画面\n当音符移动至与敲击框重合\n便敲击太鼓吧!",
"ko": "흘러오는 음표가\n틀에 겹쳐지면\n북채로 북을 치자"
}
},
"tutorial_caption_3": {
"font_size": 38,
"text": {
"ja": "太鼓のどうの部分は\nキケンだからたたかないでね",
"en": "Don't hit the side of the drum,\nit's dangerous!",
"zh": "为避免危险\n请不要敲击鼓身",
"ko": "북의 몸통 부분은\n위험하니까 치지 마"
}
},
"tutorial_caption_4": {
"font_size": 38,
"text": {
"ja": "赤い音符{don}は面をたたこう",
"en": "Red notes {don} : hit the face!",
"zh": "{don} 敲打鼓面吧",
"ko": "빨간 음표{don}는 면을 치자"
}
},
"tutorial_caption_5": {
"font_size": 38,
"text": {
"ja": "青い音符{kat}はフチをたたこう",
"en": "Blue notes {kat} : hit the rim!",
"zh": "{kat} 敲打鼓边吧",
"ko": "파란 음표{kat}는 테를 치자"
}
},
"tutorial_caption_6": {
"font_size": 38,
"text": {
"ja": "大きな音符{big_don}{big_kat}は\n強くたたくと高得点!",
"en": "Big notes {big_don}{big_kat}\nscore more when hit hard!",
"zh": "{big_don}{big_kat} 用双手用力敲打!",
"ko": "큰 음표{big_don}{big_kat}는\n세게 치면 고득점!"
}
},
"tutorial_caption_7": {
"font_size": 38,
"text": {
"ja": "黄色い音符{roll}は\nひたすら連打!",
"en": "Yellow notes {roll}\nhit them as fast as you can!",
"zh": "{roll} 不停连续敲打!",
"ko": "노란 음표{roll}는\n계속 연타!"
}
},
"tutorial_caption_8": {
"font_size": 38,
"text": {
"ja": "ふうせん音符{balloon}と\nくすだま音符{kusudama}もとにかく連打ー!",
"en": "Balloon notes {balloon} and\nkusudama notes {kusudama}: keep drumming!",
"zh": "{balloon}{kusudama} 总之连续敲打吧!",
"ko": "풍선 음표{balloon}와\n쿠스다마 음표{kusudama}도 무조건 연타!"
}
},
"tutorial_caption_9": {
"font_size": 38,
"text": {
"ja": "タイミングよくたたけば\n魂(たましい)ゲージがアップ!",
"en": "Hit with good timing\nto fill the soul gauge!",
"zh": "时机把握得好,\n就能积累魂槽哦!",
"ko": "타이밍 좋게 치면\n혼 게이지가 올라가!"
}
},
"tutorial_caption_10": {
"font_size": 38,
"text": {
"ja": "うまくたたいてクリアをめざそう!",
"en": "Play well and aim for a clear!",
"zh": "尽情击打,争取过关吧!",
"ko": "잘 쳐서 클리어를 노리자!"
}
},
"screen": {
"parent": "PyTaikoGreen",
"width": 1920,
@@ -523,6 +613,9 @@
"game_gogo_fire_anim": {
"x": 68
},
"game_gogo_explosion_tilt": {
"x": 5.8875
},
"game_gogo_explosion_slots": {
"x": 6,
"y": 4
Binary file not shown.
+57 -81
View File
@@ -1,92 +1,58 @@
-- YataiDON-HSS override of PyTaikoGreen/background/bg_collabs/tutorial.lua: tile steps/scroll period use x2[1]; +40/-80/+30 px literals *sc
local DonBG = require("background/bg_objects/donbg")
local DonBGBase = require("background/bg_objects/donbg/base")
-- YataiDONNijiiro tutorial background: the layers in Graphics/background/tutorial_ac on their
-- own timelines (bg_data/tutorial_ac): pattern, mountains, clouds and four wave rows scroll left
-- (loop 320 frames), the clouds and waves bob (120 frames), the floor stands still. The screen
-- keeps a black band above (y < 60) and below (y >= 1020) the art.
local TutorialDonBG = setmetatable({}, { __index = DonBGBase })
TutorialDonBG.__index = TutorialDonBG
local TRACKS = require("background/bg_data/tutorial_ac")
local L = TRACKS.layers
function TutorialDonBG.new(index, player_num, path)
local self = setmetatable({}, TutorialDonBG)
local base = DonBGBase.new(index, player_num, path)
for k, v in pairs(base) do
self[k] = v
end
self.move = anim.move(6000, { total_distance = -self.bg_texture.x2[1], loop = true })
self.move:start()
self.overlay_move = tex.get_animation(2, "background")
self.overlay_texture = tex.get_texture_info(self.name, "overlay")
self.footer_texture = tex.get_texture_info(self.name, "footer")
self._id_overlay = tex.get_texture(self.path .. "/" .. self.name .. "/overlay") or 0
self._id_footer = tex.get_texture(self.path .. "/" .. self.name .. "/footer") or 0
return self
end
function TutorialDonBG:update(current_time_ms)
DonBGBase.update(self, current_time_ms)
self.overlay_move:update(current_time_ms)
end
function TutorialDonBG:draw_textures(fade, y, frame)
local sc = tex.get_screen_scale()
y = y + 40 * sc
for i = 0, 4 do
tex.draw_texture(self._id_bg, {
frame = 0,
fade = fade,
x = (i * self.bg_texture.x2[1]) + self.move.attribute,
y = y
})
tex.draw_texture(self._id_bg, {
frame = 1,
fade = fade,
x = (i * self.bg_texture.x2[1]) + self.move.attribute,
y = y
})
end
for i = 0, 5 do
tex.draw_texture(self._id_overlay, {
frame = frame,
fade = fade,
x = (i * self.overlay_texture.x2[1]) +
self.move.attribute * (self.overlay_texture.width / self.bg_texture.width),
y = y + self.overlay_move.attribute
})
end
for i = 0, 4 do
tex.draw_texture(self._id_footer, {
frame = 0,
fade = fade,
x = (i * self.footer_texture.x2[1]) +
self.move.attribute * (self.footer_texture.width / self.bg_texture.width),
y = y + self.overlay_move.attribute
})
tex.draw_texture(self._id_footer, {
frame = 1,
fade = fade,
x = (i * (self.footer_texture.x2[1] - 80 * sc)) +
self.move.attribute * (self.footer_texture.width / self.bg_texture.width),
y = (y + 30 * sc) + self.overlay_move.attribute
})
end
end
local FOLDER = "tutorial_ac"
local PATH = "background/" .. FOLDER
local FRAME_MS = 1000.0 / 60.0
local BAND_TOP = 60
local CLOUD_X0, CLOUD_PITCH, CLOUD_COUNT = 600, 744, 5 -- the clouds' places inside their strip
local CLOUD_Y0 = 30 -- the cloud's own offset in its exported frame
TutorialBackground = {}
TutorialBackground.__index = TutorialBackground
local COLLAB_PATH = "background/collab/tutorial"
function TutorialBackground.new(player_num, bpm)
local self = setmetatable({}, TutorialBackground)
tex.load_folder(COLLAB_PATH, "bg_normal/bg_0")
self.donbg = TutorialDonBG.new(1, player_num, COLLAB_PATH)
self._id_bg_0 = tex.get_texture(COLLAB_PATH .. "/bg_0/background") or 0
tex.load_folder("background", FOLDER)
self.id = {}
for _, name in ipairs({ "pat", "mtn", "cloud", "w13", "w16", "w21", "w24", "floor" }) do
self.id[name] = tex.get_texture(PATH .. "/" .. name) or 0
end
self.t0 = nil
self.f = 0
return self
end
function TutorialBackground:update(current_ms, bpm)
self.donbg:update(current_ms)
if not self.t0 then self.t0 = current_ms end
self.f = math.max(0, math.floor((current_ms - self.t0) / FRAME_MS))
end
local function at(track, list, f, n)
return track[list][(f % n) + 1]
end
-- whole pixels: drawn between pixels, the filtered layers came out soft
local function px(v)
return math.floor(v + 0.5)
end
-- a strip whose x / y follow its track; rows above the top band are cut off
function TutorialBackground:strip(name, track_name, f)
local tr = TRACKS[track_name]
local x = px(at(tr, "x", f, tr.n))
local y = name == "pat" and 0 or (name == "mtn" and 0 or at(tr, "y", f, 120))
local top = px(y + L[name].ytop)
local cut = math.max(0, BAND_TOP - top)
tex.draw_texture(self.id[name], {
x = x, y = top + cut, y2 = -cut,
src = { x = 0, y = cut, width = L[name].w, height = L[name].h - cut },
})
end
function TutorialBackground:handle_good(player_num) end
@@ -102,15 +68,25 @@ function TutorialBackground:handle_balloon(player_num) end
function TutorialBackground:handle_gauge(player_num, progress, is_clear, is_rainbow) end
function TutorialBackground:draw_back()
self.donbg:draw()
tex.draw_texture(self._id_bg_0)
local f = self.f
tex.draw_texture(self.id.floor, { y = L.floor.y })
self:strip("pat", "pat", f)
self:strip("mtn", "mtn", f)
local cx = at(TRACKS.cloud, "x", f, TRACKS.cloud.n)
local cy = at(TRACKS.c9, "y", f, 120) - CLOUD_Y0
for k = 0, CLOUD_COUNT - 1 do
tex.draw_texture(self.id.cloud, { x = px(cx + CLOUD_X0 + CLOUD_PITCH * k + L.cloud.dx), y = px(cy + L.cloud.dy) })
end
self:strip("w13", "w13", f)
self:strip("w16", "w16", f)
self:strip("w21", "w21", f)
self:strip("w24", "w24", f)
end
function TutorialBackground:draw_fore() end
function TutorialBackground:destroy()
self.donbg:destroy()
tex.unload_folder(COLLAB_PATH, "bg_normal/bg_0")
tex.unload_folder("background", FOLDER)
end
return TutorialBackground
@@ -0,0 +1,21 @@
-- GENERATED: the tutorial background's layer tracks.
-- x/y per 60 fps frame; x tracks loop at their wrap.
return {
pat = { n = 320, x = { 0, -2.3, -4.65, -6.95, -9.25, -11.55, -13.9, -16.2, -18.5, -20.85, -23.15, -25.45, -27.75, -30.1, -32.4, -34.7, -37, -39.35, -41.65, -43.95, -46.3, -48.6, -50.9, -53.2, -55.55, -57.85, -60.15, -62.45, -64.75, -67.1, -69.4, -71.7, -74.05, -76.35, -78.65, -80.95, -83.3, -85.6, -87.9, -90.2, -92.55, -94.85, -97.15, -99.5, -101.8, -104.1, -106.4, -108.75, -111.05, -113.35, -115.65, -118, -120.3, -122.6, -124.95, -127.25, -129.55, -131.85, -134.2, -136.5, -138.8, -141.1, -143.45, -145.75, -148.05, -150.4, -152.7, -155, -157.3, -159.6, -161.95, -164.25, -166.55, -168.9, -171.2, -173.5, -175.85, -178.15, -180.45, -182.75, -185.05, -187.4, -189.7, -192, -194.35, -196.65, -198.95, -201.25, -203.6, -205.9, -208.2, -210.5, -212.85, -215.15, -217.5, -219.8, -222.1, -224.4, -226.7, -229.05, -231.35, -233.65, -235.95, -238.3, -240.6, -242.9, -245.25, -247.55, -249.85, -252.15, -254.5, -256.8, -259.1, -261.4, -263.75, -266.05, -268.35, -270.7, -273, -275.3, -277.6, -279.95, -282.25, -284.55, -286.85, -289.2, -291.5, -293.8, -296.15, -298.45, -300.75, -303.05, -305.35, -307.7, -310, -312.35, -314.65, -316.95, -319.25, -321.55, -323.9, -326.2, -328.5, -330.85, -333.15, -335.45, -337.75, -340.1, -342.4, -344.7, -347, -349.35, -351.65, -353.95, -356.25, -358.6, -360.9, -363.2, -365.55, -367.85, -370.15, -372.45, -374.8, -377.1, -379.4, -381.75, -384.05, -386.35, -388.65, -391, -393.3, -395.6, -397.9, -400.25, -402.55, -404.85, -407.15, -409.5, -411.8, -414.1, -416.45, -418.75, -421.05, -423.35, -425.7, -428, -430.3, -432.6, -434.95, -437.25, -439.55, -441.85, -444.2, -446.5, -448.8, -451.1, -453.45, -455.75, -458.1, -460.4, -462.7, -465, -467.3, -469.65, -471.95, -474.25, -476.6, -478.9, -481.2, -483.5, -485.85, -488.15, -490.45, -492.75, -495.1, -497.4, -499.7, -502.05, -504.35, -506.65, -508.95, -511.3, -513.6, -515.9, -518.2, -520.55, -522.85, -525.15, -527.45, -529.8, -532.1, -534.4, -536.75, -539.05, -541.35, -543.65, -546, -548.3, -550.6, -552.95, -555.25, -557.55, -559.85, -562.15, -564.5, -566.8, -569.1, -571.45, -573.75, -576.05, -578.4, -580.7, -583, -585.3, -587.6, -589.95, -592.25, -594.55, -596.9, -599.2, -601.5, -603.8, -606.15, -608.45, -610.75, -613.05, -615.4, -617.7, -620, -622.35, -624.65, -626.95, -629.25, -631.6, -633.9, -636.2, -638.5, -640.85, -643.15, -645.45, -647.8, -650.1, -652.4, -654.7, -657.05, -659.35, -661.65, -663.95, -666.3, -668.6, -670.9, -673.25, -675.55, -677.85, -680.15, -682.45, -684.8, -687.1, -689.4, -691.75, -694.05, -696.35, -698.65, -701, -703.3, -705.6, -707.9, -710.25, -712.55, -714.85, -717.2, -719.5, -721.8, -724.1, -726.45, -728.75, -731.05, -733.35, -735.7, -738 },
y = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
mtn = { n = 320, x = { 0, -2.35, -4.65, -7, -9.35, -11.65, -14, -16.35, -18.65, -21, -23.3, -25.65, -28, -30.35, -32.65, -35, -37.3, -39.65, -42, -44.3, -46.65, -48.95, -51.3, -53.65, -56, -58.3, -60.65, -62.95, -65.3, -67.65, -69.95, -72.3, -74.65, -76.95, -79.3, -81.6, -83.95, -86.3, -88.65, -90.95, -93.3, -95.65, -97.95, -100.3, -102.6, -104.95, -107.3, -109.6, -111.95, -114.3, -116.6, -118.95, -121.3, -123.6, -125.95, -128.25, -130.6, -132.95, -135.3, -137.6, -139.95, -142.25, -144.6, -146.95, -149.25, -151.6, -153.95, -156.25, -158.6, -160.9, -163.25, -165.6, -167.95, -170.25, -172.6, -174.9, -177.25, -179.6, -181.9, -184.25, -186.6, -188.9, -191.25, -193.6, -195.9, -198.25, -200.6, -202.9, -205.25, -207.55, -209.9, -212.25, -214.55, -216.9, -219.25, -221.55, -223.9, -226.25, -228.55, -230.9, -233.2, -235.55, -237.9, -240.25, -242.55, -244.9, -247.2, -249.55, -251.9, -254.2, -256.55, -258.9, -261.2, -263.55, -265.85, -268.2, -270.55, -272.9, -275.2, -277.55, -279.9, -282.2, -284.55, -286.85, -289.2, -291.55, -293.85, -296.2, -298.55, -300.85, -303.2, -305.55, -307.85, -310.2, -312.55, -314.85, -317.2, -319.55, -321.85, -324.2, -326.5, -328.85, -331.2, -333.5, -335.85, -338.2, -340.5, -342.85, -345.15, -347.5, -349.85, -352.2, -354.5, -356.85, -359.15, -361.5, -363.85, -366.15, -368.5, -370.85, -373.15, -375.5, -377.85, -380.15, -382.5, -384.85, -387.15, -389.5, -391.8, -394.15, -396.5, -398.85, -401.15, -403.5, -405.8, -408.15, -410.5, -412.8, -415.15, -417.5, -419.8, -422.15, -424.45, -426.8, -429.15, -431.5, -433.8, -436.15, -438.45, -440.8, -443.15, -445.45, -447.8, -450.15, -452.45, -454.8, -457.15, -459.45, -461.8, -464.15, -466.45, -468.8, -471.1, -473.45, -475.8, -478.1, -480.45, -482.8, -485.1, -487.45, -489.8, -492.1, -494.45, -496.8, -499.1, -501.45, -503.75, -506.1, -508.45, -510.75, -513.1, -515.45, -517.75, -520.1, -522.45, -524.75, -527.1, -529.45, -531.75, -534.1, -536.45, -538.75, -541.1, -543.4, -545.75, -548.1, -550.4, -552.75, -555.1, -557.4, -559.75, -562.1, -564.4, -566.75, -569.1, -571.4, -573.75, -576.05, -578.4, -580.75, -583.1, -585.4, -587.75, -590.05, -592.4, -594.75, -597.05, -599.4, -601.75, -604.05, -606.4, -608.7, -611.05, -613.4, -615.75, -618.05, -620.4, -622.7, -625.05, -627.4, -629.7, -632.05, -634.4, -636.7, -639.05, -641.4, -643.7, -646.05, -648.4, -650.7, -653.05, -655.35, -657.7, -660.05, -662.4, -664.7, -667.05, -669.35, -671.7, -674.05, -676.35, -678.7, -681.05, -683.35, -685.7, -688, -690.35, -692.7, -695.05, -697.35, -699.7, -702, -704.35, -706.7, -709, -711.35, -713.7, -716, -718.35, -720.7, -723, -725.35, -727.65, -730, -732.35, -734.65, -737, -739.35, -741.65, -744 },
y = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
cloud = { n = 320, x = { -744, -746.35, -748.65, -751, -753.35, -755.65, -758, -760.35, -762.65, -765, -767.3, -769.65, -772, -774.35, -776.65, -779, -781.3, -783.65, -786, -788.3, -790.65, -792.95, -795.3, -797.65, -800, -802.3, -804.65, -806.95, -809.3, -811.65, -813.95, -816.3, -818.65, -820.95, -823.3, -825.6, -827.95, -830.3, -832.65, -834.95, -837.3, -839.65, -841.95, -844.3, -846.6, -848.95, -851.3, -853.6, -855.95, -858.3, -860.6, -862.95, -865.3, -867.6, -869.95, -872.25, -874.6, -876.95, -879.3, -881.6, -883.95, -886.25, -888.6, -890.95, -893.25, -895.6, -897.95, -900.25, -902.6, -904.9, -907.25, -909.6, -911.95, -914.25, -916.6, -918.9, -921.25, -923.6, -925.9, -928.25, -930.6, -932.9, -935.25, -937.6, -939.9, -942.25, -944.6, -946.9, -949.25, -951.55, -953.9, -956.25, -958.55, -960.9, -963.25, -965.55, -967.9, -970.25, -972.55, -974.9, -977.2, -979.55, -981.9, -984.25, -986.55, -988.9, -991.2, -993.55, -995.9, -998.2, -1000.5, -1002.9, -1005.2, -1007.5, -1009.8, -1012.2, -1014.5, -1016.9, -1019.2, -1021.5, -1023.9, -1026.2, -1028.6, -1030.8, -1033.2, -1035.6, -1037.8, -1040.2, -1042.6, -1044.8, -1047.2, -1049.6, -1051.8, -1054.2, -1056.6, -1058.8, -1061.2, -1063.6, -1065.8, -1068.2, -1070.5, -1072.8, -1075.2, -1077.5, -1079.8, -1082.2, -1084.5, -1086.8, -1089.2, -1091.5, -1093.8, -1096.2, -1098.5, -1100.8, -1103.2, -1105.5, -1107.8, -1110.2, -1112.5, -1114.8, -1117.2, -1119.5, -1121.8, -1124.2, -1126.5, -1128.8, -1131.2, -1133.5, -1135.8, -1138.2, -1140.5, -1142.8, -1145.2, -1147.5, -1149.8, -1152.2, -1154.5, -1156.8, -1159.2, -1161.5, -1163.8, -1166.2, -1168.4, -1170.8, -1173.2, -1175.5, -1177.8, -1180.2, -1182.4, -1184.8, -1187.2, -1189.4, -1191.8, -1194.2, -1196.4, -1198.8, -1201.2, -1203.4, -1205.8, -1208.2, -1210.4, -1212.8, -1215.1, -1217.4, -1219.8, -1222.1, -1224.4, -1226.8, -1229.1, -1231.4, -1233.8, -1236.1, -1238.4, -1240.8, -1243.1, -1245.4, -1247.8, -1250.1, -1252.4, -1254.8, -1257.1, -1259.4, -1261.8, -1264.1, -1266.4, -1268.8, -1271.1, -1273.4, -1275.8, -1278.1, -1280.4, -1282.8, -1285.1, -1287.4, -1289.8, -1292.1, -1294.4, -1296.8, -1299.1, -1301.4, -1303.8, -1306.1, -1308.4, -1310.8, -1313.1, -1315.4, -1317.8, -1320.1, -1322.4, -1324.8, -1327.1, -1329.4, -1331.8, -1334.1, -1336.4, -1338.8, -1341.1, -1343.4, -1345.8, -1348.1, -1350.4, -1352.7, -1355.1, -1357.4, -1359.8, -1362.1, -1364.4, -1366.7, -1369.1, -1371.4, -1373.7, -1376.1, -1378.4, -1380.7, -1383.1, -1385.4, -1387.7, -1390.1, -1392.4, -1394.7, -1397.1, -1399.3, -1401.7, -1404.1, -1406.4, -1408.7, -1411.1, -1413.3, -1415.7, -1418.1, -1420.3, -1422.7, -1425.1, -1427.3, -1429.7, -1432, -1434.3, -1436.7, -1439.1, -1441.3, -1443.7, -1446, -1448.3, -1450.7, -1453, -1455.3, -1457.7, -1460, -1462.3, -1464.7, -1467, -1469.3, -1471.7, -1474, -1476.3, -1478.7, -1481, -1483.3, -1485.7, -1488 },
y = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 } },
w13 = { n = 320, x = { 0, -2.35, -4.65, -7, -9.35, -11.65, -14, -16.35, -18.65, -21, -23.3, -25.65, -28, -30.35, -32.65, -35, -37.3, -39.65, -42, -44.3, -46.65, -48.95, -51.3, -53.65, -56, -58.3, -60.65, -62.95, -65.3, -67.65, -69.95, -72.3, -74.65, -76.95, -79.3, -81.6, -83.95, -86.3, -88.65, -90.95, -93.3, -95.65, -97.95, -100.3, -102.6, -104.95, -107.3, -109.6, -111.95, -114.3, -116.6, -118.95, -121.3, -123.6, -125.95, -128.25, -130.6, -132.95, -135.3, -137.6, -139.95, -142.25, -144.6, -146.95, -149.25, -151.6, -153.95, -156.25, -158.6, -160.9, -163.25, -165.6, -167.95, -170.25, -172.6, -174.9, -177.25, -179.6, -181.9, -184.25, -186.6, -188.9, -191.25, -193.6, -195.9, -198.25, -200.6, -202.9, -205.25, -207.55, -209.9, -212.25, -214.55, -216.9, -219.25, -221.55, -223.9, -226.25, -228.55, -230.9, -233.2, -235.55, -237.9, -240.25, -242.55, -244.9, -247.2, -249.55, -251.9, -254.2, -256.55, -258.9, -261.2, -263.55, -265.85, -268.2, -270.55, -272.9, -275.2, -277.55, -279.9, -282.2, -284.55, -286.85, -289.2, -291.55, -293.85, -296.2, -298.55, -300.85, -303.2, -305.55, -307.85, -310.2, -312.55, -314.85, -317.2, -319.55, -321.85, -324.2, -326.5, -328.85, -331.2, -333.5, -335.85, -338.2, -340.5, -342.85, -345.15, -347.5, -349.85, -352.2, -354.5, -356.85, -359.15, -361.5, -363.85, -366.15, -368.5, -370.85, -373.15, -375.5, -377.85, -380.15, -382.5, -384.85, -387.15, -389.5, -391.8, -394.15, -396.5, -398.85, -401.15, -403.5, -405.8, -408.15, -410.5, -412.8, -415.15, -417.5, -419.8, -422.15, -424.45, -426.8, -429.15, -431.5, -433.8, -436.15, -438.45, -440.8, -443.15, -445.45, -447.8, -450.15, -452.45, -454.8, -457.15, -459.45, -461.8, -464.15, -466.45, -468.8, -471.1, -473.45, -475.8, -478.1, -480.45, -482.8, -485.1, -487.45, -489.8, -492.1, -494.45, -496.8, -499.1, -501.45, -503.75, -506.1, -508.45, -510.75, -513.1, -515.45, -517.75, -520.1, -522.45, -524.75, -527.1, -529.45, -531.75, -534.1, -536.45, -538.75, -541.1, -543.4, -545.75, -548.1, -550.4, -552.75, -555.1, -557.4, -559.75, -562.1, -564.4, -566.75, -569.1, -571.4, -573.75, -576.05, -578.4, -580.75, -583.1, -585.4, -587.75, -590.05, -592.4, -594.75, -597.05, -599.4, -601.75, -604.05, -606.4, -608.7, -611.05, -613.4, -615.75, -618.05, -620.4, -622.7, -625.05, -627.4, -629.7, -632.05, -634.4, -636.7, -639.05, -641.4, -643.7, -646.05, -648.4, -650.7, -653.05, -655.35, -657.7, -660.05, -662.4, -664.7, -667.05, -669.35, -671.7, -674.05, -676.35, -678.7, -681.05, -683.35, -685.7, -688, -690.35, -692.7, -695.05, -697.35, -699.7, -702, -704.35, -706.7, -709, -711.35, -713.7, -716, -718.35, -720.7, -723, -725.35, -727.65, -730, -732.35, -734.65, -737, -739.35, -741.65, -744 },
y = { 339, 338.8, 338.6, 338.4, 338.2, 338, 337.8, 337.6, 337.35, 337.15, 336.95, 336.75, 336.55, 336.35, 336.15, 335.95, 335.75, 335.55, 335.35, 335.15, 334.95, 334.75, 334.55, 334.3, 334.1, 333.9, 333.7, 333.5, 333.3, 333.1, 332.9, 332.7, 332.5, 332.3, 332.1, 331.9, 331.7, 331.45, 331.25, 331.05, 330.85, 330.65, 330.45, 330.25, 330.05, 329.85, 329.65, 329.45, 329.25, 329.05, 328.85, 328.65, 328.4, 328.2, 328, 327.8, 327.6, 327.4, 327.2, 327, 327.2, 327.4, 327.6, 327.8, 328, 328.2, 328.4, 328.6, 328.8, 329, 329.2, 329.4, 329.6, 329.8, 330, 330.2, 330.4, 330.6, 330.8, 331, 331.2, 331.4, 331.6, 331.8, 332, 332.2, 332.4, 332.6, 332.8, 333, 333.2, 333.4, 333.6, 333.8, 334, 334.2, 334.4, 334.6, 334.8, 335, 335.2, 335.4, 335.6, 335.8, 336, 336.2, 336.4, 336.6, 336.8, 337, 337.2, 337.4, 337.6, 337.8, 338, 338.2, 338.4, 338.6, 338.8, 339 } },
w16 = { n = 320, x = { 0, -2.35, -4.65, -7, -9.35, -11.65, -14, -16.35, -18.65, -21, -23.3, -25.65, -28, -30.35, -32.65, -35, -37.3, -39.65, -42, -44.3, -46.65, -48.95, -51.3, -53.65, -56, -58.3, -60.65, -62.95, -65.3, -67.65, -69.95, -72.3, -74.65, -76.95, -79.3, -81.6, -83.95, -86.3, -88.65, -90.95, -93.3, -95.65, -97.95, -100.3, -102.6, -104.95, -107.3, -109.6, -111.95, -114.3, -116.6, -118.95, -121.3, -123.6, -125.95, -128.25, -130.6, -132.95, -135.3, -137.6, -139.95, -142.25, -144.6, -146.95, -149.25, -151.6, -153.95, -156.25, -158.6, -160.9, -163.25, -165.6, -167.95, -170.25, -172.6, -174.9, -177.25, -179.6, -181.9, -184.25, -186.6, -188.9, -191.25, -193.6, -195.9, -198.25, -200.6, -202.9, -205.25, -207.55, -209.9, -212.25, -214.55, -216.9, -219.25, -221.55, -223.9, -226.25, -228.55, -230.9, -233.2, -235.55, -237.9, -240.25, -242.55, -244.9, -247.2, -249.55, -251.9, -254.2, -256.55, -258.9, -261.2, -263.55, -265.85, -268.2, -270.55, -272.9, -275.2, -277.55, -279.9, -282.2, -284.55, -286.85, -289.2, -291.55, -293.85, -296.2, -298.55, -300.85, -303.2, -305.55, -307.85, -310.2, -312.55, -314.85, -317.2, -319.55, -321.85, -324.2, -326.5, -328.85, -331.2, -333.5, -335.85, -338.2, -340.5, -342.85, -345.15, -347.5, -349.85, -352.2, -354.5, -356.85, -359.15, -361.5, -363.85, -366.15, -368.5, -370.85, -373.15, -375.5, -377.85, -380.15, -382.5, -384.85, -387.15, -389.5, -391.8, -394.15, -396.5, -398.85, -401.15, -403.5, -405.8, -408.15, -410.5, -412.8, -415.15, -417.5, -419.8, -422.15, -424.45, -426.8, -429.15, -431.5, -433.8, -436.15, -438.45, -440.8, -443.15, -445.45, -447.8, -450.15, -452.45, -454.8, -457.15, -459.45, -461.8, -464.15, -466.45, -468.8, -471.1, -473.45, -475.8, -478.1, -480.45, -482.8, -485.1, -487.45, -489.8, -492.1, -494.45, -496.8, -499.1, -501.45, -503.75, -506.1, -508.45, -510.75, -513.1, -515.45, -517.75, -520.1, -522.45, -524.75, -527.1, -529.45, -531.75, -534.1, -536.45, -538.75, -541.1, -543.4, -545.75, -548.1, -550.4, -552.75, -555.1, -557.4, -559.75, -562.1, -564.4, -566.75, -569.1, -571.4, -573.75, -576.05, -578.4, -580.75, -583.1, -585.4, -587.75, -590.05, -592.4, -594.75, -597.05, -599.4, -601.75, -604.05, -606.4, -608.7, -611.05, -613.4, -615.75, -618.05, -620.4, -622.7, -625.05, -627.4, -629.7, -632.05, -634.4, -636.7, -639.05, -641.4, -643.7, -646.05, -648.4, -650.7, -653.05, -655.35, -657.7, -660.05, -662.4, -664.7, -667.05, -669.35, -671.7, -674.05, -676.35, -678.7, -681.05, -683.35, -685.7, -688, -690.35, -692.7, -695.05, -697.35, -699.7, -702, -704.35, -706.7, -709, -711.35, -713.7, -716, -718.35, -720.7, -723, -725.35, -727.65, -730, -732.35, -734.65, -737, -739.35, -741.65, -744 },
y = { 345, 345.5, 346, 346.55, 347.05, 347.55, 348.05, 348.55, 349.05, 349.6, 350.1, 350.6, 351.1, 351.6, 352.1, 352.65, 353.15, 353.65, 354.15, 354.65, 355.15, 355.7, 356.2, 356.7, 357.2, 357.7, 358.2, 358.75, 359.25, 359.75, 360.25, 360.75, 361.25, 361.8, 362.3, 362.8, 363.3, 363.8, 364.3, 364.85, 365.35, 365.85, 366.35, 366.85, 367.35, 367.9, 368.4, 368.9, 369.4, 369.9, 370.4, 370.95, 371.45, 371.95, 372.45, 372.95, 373.45, 374, 374.5, 375, 374.5, 374, 373.5, 373, 372.5, 372, 371.5, 371, 370.5, 370, 369.5, 369, 368.5, 368, 367.5, 367, 366.5, 366, 365.5, 365, 364.5, 364, 363.5, 363, 362.5, 362, 361.5, 361, 360.5, 360, 359.5, 359, 358.5, 358, 357.5, 357, 356.5, 356, 355.5, 355, 354.5, 354, 353.5, 353, 352.5, 352, 351.5, 351, 350.5, 350, 349.5, 349, 348.5, 348, 347.5, 347, 346.5, 346, 345.5, 345 } },
w21 = { n = 320, x = { 0, -2.35, -4.65, -7, -9.35, -11.65, -14, -16.35, -18.65, -21, -23.3, -25.65, -28, -30.35, -32.65, -35, -37.3, -39.65, -42, -44.3, -46.65, -48.95, -51.3, -53.65, -56, -58.3, -60.65, -62.95, -65.3, -67.65, -69.95, -72.3, -74.65, -76.95, -79.3, -81.6, -83.95, -86.3, -88.65, -90.95, -93.3, -95.65, -97.95, -100.3, -102.6, -104.95, -107.3, -109.6, -111.95, -114.3, -116.6, -118.95, -121.3, -123.6, -125.95, -128.25, -130.6, -132.95, -135.3, -137.6, -139.95, -142.25, -144.6, -146.95, -149.25, -151.6, -153.95, -156.25, -158.6, -160.9, -163.25, -165.6, -167.95, -170.25, -172.6, -174.9, -177.25, -179.6, -181.9, -184.25, -186.6, -188.9, -191.25, -193.6, -195.9, -198.25, -200.6, -202.9, -205.25, -207.55, -209.9, -212.25, -214.55, -216.9, -219.25, -221.55, -223.9, -226.25, -228.55, -230.9, -233.2, -235.55, -237.9, -240.25, -242.55, -244.9, -247.2, -249.55, -251.9, -254.2, -256.55, -258.9, -261.2, -263.55, -265.85, -268.2, -270.55, -272.9, -275.2, -277.55, -279.9, -282.2, -284.55, -286.85, -289.2, -291.55, -293.85, -296.2, -298.55, -300.85, -303.2, -305.55, -307.85, -310.2, -312.55, -314.85, -317.2, -319.55, -321.85, -324.2, -326.5, -328.85, -331.2, -333.5, -335.85, -338.2, -340.5, -342.85, -345.15, -347.5, -349.85, -352.2, -354.5, -356.85, -359.15, -361.5, -363.85, -366.15, -368.5, -370.85, -373.15, -375.5, -377.85, -380.15, -382.5, -384.85, -387.15, -389.5, -391.8, -394.15, -396.5, -398.85, -401.15, -403.5, -405.8, -408.15, -410.5, -412.8, -415.15, -417.5, -419.8, -422.15, -424.45, -426.8, -429.15, -431.5, -433.8, -436.15, -438.45, -440.8, -443.15, -445.45, -447.8, -450.15, -452.45, -454.8, -457.15, -459.45, -461.8, -464.15, -466.45, -468.8, -471.1, -473.45, -475.8, -478.1, -480.45, -482.8, -485.1, -487.45, -489.8, -492.1, -494.45, -496.8, -499.1, -501.45, -503.75, -506.1, -508.45, -510.75, -513.1, -515.45, -517.75, -520.1, -522.45, -524.75, -527.1, -529.45, -531.75, -534.1, -536.45, -538.75, -541.1, -543.4, -545.75, -548.1, -550.4, -552.75, -555.1, -557.4, -559.75, -562.1, -564.4, -566.75, -569.1, -571.4, -573.75, -576.05, -578.4, -580.75, -583.1, -585.4, -587.75, -590.05, -592.4, -594.75, -597.05, -599.4, -601.75, -604.05, -606.4, -608.7, -611.05, -613.4, -615.75, -618.05, -620.4, -622.7, -625.05, -627.4, -629.7, -632.05, -634.4, -636.7, -639.05, -641.4, -643.7, -646.05, -648.4, -650.7, -653.05, -655.35, -657.7, -660.05, -662.4, -664.7, -667.05, -669.35, -671.7, -674.05, -676.35, -678.7, -681.05, -683.35, -685.7, -688, -690.35, -692.7, -695.05, -697.35, -699.7, -702, -704.35, -706.7, -709, -711.35, -713.7, -716, -718.35, -720.7, -723, -725.35, -727.65, -730, -732.35, -734.65, -737, -739.35, -741.65, -744 },
y = { 384, 383.85, 383.75, 383.6, 383.45, 383.3, 383.2, 383.05, 382.9, 382.8, 382.65, 382.5, 382.35, 382.25, 382.1, 381.95, 381.85, 381.7, 381.55, 381.4, 381.3, 381.15, 381, 380.9, 380.75, 380.6, 380.45, 380.35, 380.2, 380.05, 379.95, 379.8, 379.65, 379.55, 379.4, 379.25, 379.1, 379, 378.85, 378.7, 378.6, 378.45, 378.3, 378.15, 378.05, 377.9, 377.75, 377.65, 377.5, 377.35, 377.2, 377.1, 376.95, 376.8, 376.7, 376.55, 376.4, 376.25, 376.15, 376, 376.15, 376.25, 376.4, 376.55, 376.65, 376.8, 376.95, 377.05, 377.2, 377.35, 377.45, 377.6, 377.75, 377.85, 378, 378.15, 378.25, 378.4, 378.55, 378.65, 378.8, 378.95, 379.05, 379.2, 379.35, 379.45, 379.6, 379.75, 379.85, 380, 380.15, 380.25, 380.4, 380.55, 380.65, 380.8, 380.95, 381.05, 381.2, 381.35, 381.45, 381.6, 381.75, 381.85, 382, 382.15, 382.25, 382.4, 382.55, 382.65, 382.8, 382.95, 383.05, 383.2, 383.35, 383.45, 383.6, 383.75, 383.85, 384 } },
w24 = { n = 320, x = { 0, -2.35, -4.65, -7, -9.35, -11.65, -14, -16.35, -18.65, -21, -23.3, -25.65, -28, -30.35, -32.65, -35, -37.3, -39.65, -42, -44.3, -46.65, -48.95, -51.3, -53.65, -56, -58.3, -60.65, -62.95, -65.3, -67.65, -69.95, -72.3, -74.65, -76.95, -79.3, -81.6, -83.95, -86.3, -88.65, -90.95, -93.3, -95.65, -97.95, -100.3, -102.6, -104.95, -107.3, -109.6, -111.95, -114.3, -116.6, -118.95, -121.3, -123.6, -125.95, -128.25, -130.6, -132.95, -135.3, -137.6, -139.95, -142.25, -144.6, -146.95, -149.25, -151.6, -153.95, -156.25, -158.6, -160.9, -163.25, -165.6, -167.95, -170.25, -172.6, -174.9, -177.25, -179.6, -181.9, -184.25, -186.6, -188.9, -191.25, -193.6, -195.9, -198.25, -200.6, -202.9, -205.25, -207.55, -209.9, -212.25, -214.55, -216.9, -219.25, -221.55, -223.9, -226.25, -228.55, -230.9, -233.2, -235.55, -237.9, -240.25, -242.55, -244.9, -247.2, -249.55, -251.9, -254.2, -256.55, -258.9, -261.2, -263.55, -265.85, -268.2, -270.55, -272.9, -275.2, -277.55, -279.9, -282.2, -284.55, -286.85, -289.2, -291.55, -293.85, -296.2, -298.55, -300.85, -303.2, -305.55, -307.85, -310.2, -312.55, -314.85, -317.2, -319.55, -321.85, -324.2, -326.5, -328.85, -331.2, -333.5, -335.85, -338.2, -340.5, -342.85, -345.15, -347.5, -349.85, -352.2, -354.5, -356.85, -359.15, -361.5, -363.85, -366.15, -368.5, -370.85, -373.15, -375.5, -377.85, -380.15, -382.5, -384.85, -387.15, -389.5, -391.8, -394.15, -396.5, -398.85, -401.15, -403.5, -405.8, -408.15, -410.5, -412.8, -415.15, -417.5, -419.8, -422.15, -424.45, -426.8, -429.15, -431.5, -433.8, -436.15, -438.45, -440.8, -443.15, -445.45, -447.8, -450.15, -452.45, -454.8, -457.15, -459.45, -461.8, -464.15, -466.45, -468.8, -471.1, -473.45, -475.8, -478.1, -480.45, -482.8, -485.1, -487.45, -489.8, -492.1, -494.45, -496.8, -499.1, -501.45, -503.75, -506.1, -508.45, -510.75, -513.1, -515.45, -517.75, -520.1, -522.45, -524.75, -527.1, -529.45, -531.75, -534.1, -536.45, -538.75, -541.1, -543.4, -545.75, -548.1, -550.4, -552.75, -555.1, -557.4, -559.75, -562.1, -564.4, -566.75, -569.1, -571.4, -573.75, -576.05, -578.4, -580.75, -583.1, -585.4, -587.75, -590.05, -592.4, -594.75, -597.05, -599.4, -601.75, -604.05, -606.4, -608.7, -611.05, -613.4, -615.75, -618.05, -620.4, -622.7, -625.05, -627.4, -629.7, -632.05, -634.4, -636.7, -639.05, -641.4, -643.7, -646.05, -648.4, -650.7, -653.05, -655.35, -657.7, -660.05, -662.4, -664.7, -667.05, -669.35, -671.7, -674.05, -676.35, -678.7, -681.05, -683.35, -685.7, -688, -690.35, -692.7, -695.05, -697.35, -699.7, -702, -704.35, -706.7, -709, -711.35, -713.7, -716, -718.35, -720.7, -723, -725.35, -727.65, -730, -732.35, -734.65, -737, -739.35, -741.65, -744 },
y = { 401, 401.5, 402, 402.55, 403.05, 403.55, 404.05, 404.55, 405.05, 405.6, 406.1, 406.6, 407.1, 407.6, 408.1, 408.65, 409.15, 409.65, 410.15, 410.65, 411.15, 411.7, 412.2, 412.7, 413.2, 413.7, 414.2, 414.75, 415.25, 415.75, 416.25, 416.75, 417.25, 417.8, 418.3, 418.8, 419.3, 419.8, 420.3, 420.85, 421.35, 421.85, 422.35, 422.85, 423.35, 423.9, 424.4, 424.9, 425.4, 425.9, 426.4, 426.95, 427.45, 427.95, 428.45, 428.95, 429.45, 430, 430.5, 431, 430.5, 430, 429.5, 429, 428.5, 428, 427.5, 427, 426.5, 426, 425.5, 425, 424.5, 424, 423.5, 423, 422.5, 422, 421.5, 421, 420.5, 420, 419.5, 419, 418.5, 418, 417.5, 417, 416.5, 416, 415.5, 415, 414.5, 414, 413.5, 413, 412.5, 412, 411.5, 411, 410.5, 410, 409.5, 409, 408.5, 408, 407.5, 407, 406.5, 406, 405.5, 405, 404.5, 404, 403.5, 403, 402.5, 402, 401.5, 401 } },
c9 = { n = 120, x = { -144, -146.35, -148.65, -151, -153.35, -155.65, -158, -160.35, -162.65, -165, -167.3, -169.65, -172, -174.35, -176.65, -179, -181.3, -183.65, -186, -188.3, -190.65, -192.95, -195.3, -197.65, -200, -202.3, -204.65, -206.95, -209.3, -211.65, -213.95, -216.3, -218.65, -220.95, -223.3, -225.6, -227.95, -230.3, -232.65, -234.95, -237.3, -239.65, -241.95, -244.3, -246.6, -248.95, -251.3, -253.6, -255.95, -258.3, -260.6, -262.95, -265.3, -267.6, -269.95, -272.25, -274.6, -276.95, -279.3, -281.6, -283.95, -286.25, -288.6, -290.95, -293.25, -295.6, -297.95, -300.25, -302.6, -304.9, -307.25, -309.6, -311.95, -314.25, -316.6, -318.9, -321.25, -323.6, -325.9, -328.25, -330.6, -332.9, -335.25, -337.6, -339.9, -342.25, -344.6, -346.9, -349.25, -351.55, -353.9, -356.25, -358.55, -360.9, -363.25, -365.55, -367.9, -370.25, -372.55, -374.9, -377.2, -379.55, -381.9, -384.25, -386.55, -388.9, -391.2, -393.55, -395.9, -398.2, -400.55, -402.9, -405.2, -407.55, -409.85, -412.2, -414.55, -416.9, -419.2, -421.55 },
y = { 282, 280.8, 279.65, 278.5, 277.35, 276.25, 275.2, 274.1, 273.05, 272.05, 271.05, 270.05, 269.1, 268.15, 267.2, 266.3, 265.45, 264.55, 263.7, 262.9, 262.1, 261.3, 260.55, 259.8, 259.1, 258.4, 257.7, 257.05, 256.4, 255.8, 255.2, 254.6, 254.05, 253.5, 253, 252.5, 252, 251.6, 251.2, 250.75, 250.35, 250, 249.65, 249.3, 249, 248.7, 248.4, 248.15, 247.95, 247.7, 247.5, 247.35, 247.2, 247.05, 246.95, 246.85, 246.8, 246.75, 246.7, 246.7, 246.75, 246.8, 246.85, 246.9, 247, 247.1, 247.25, 247.4, 247.55, 247.75, 247.95, 248.15, 248.4, 248.65, 248.95, 249.25, 249.6, 249.95, 250.3, 250.7, 251.1, 251.5, 251.95, 252.4, 252.9, 253.4, 253.9, 254.45, 255, 255.6, 256.2, 256.8, 257.45, 258.1, 258.8, 259.5, 260.2, 260.95, 261.7, 262.45, 263.25, 264.05, 264.8, 265.65, 266.55, 267.45, 268.35, 269.25, 270.25, 271.2, 272.2, 273.2, 274.25, 275.3, 276.35, 277.45, 278.55, 279.7, 280.85, 282 } },
layers = {pat = {ytop = 0, w = 2664, h = 416}, mtn = {ytop = 148, w = 2664, h = 202}, w13 = {ytop = -44, w = 2664, h = 96}, w16 = {ytop = -44, w = 2664, h = 96}, w21 = {ytop = -44, w = 2664, h = 96}, w24 = {ytop = -44, w = 2664, h = 96}, cloud = {dx = -288, dy = -161, w = 575, h = 383}, floor = {y = 668, h = 352}},
}
@@ -26,6 +26,15 @@ local SORT_FOLDER_NAMES = { ["曲検索"] = true, ["Search Song"] = true, ["搜
["むずかしさからえらぶ"] = true, ["Diff Sort"] = true }
local FOLDER_FRAME_EVENT, FOLDER_FRAME_SORT, FOLDER_FRAME_DANI = 11, 12, 10
-- The tutorial folder (GENRE:TUTORIAL, genre index 0) is a howto board: the recent
-- board's colours with its own characters (box_chara frame 10).
local GENRE_TUTORIAL = 0
local FOLDER_FRAME_HOWTO, CHARA_FRAME_HOWTO = 9, 10
local function is_tutorial(box)
return box.genre_index ~= nil and box:genre_index() == GENRE_TUTORIAL
end
local SORT_COLLECTIONS = { SEARCH = true, DIFFICULTY = true }
local EVENT_COLLECTIONS = { NEW = true, RECOMMENDED = true }
@@ -39,6 +48,7 @@ local function folder_frame(box)
end
if box.kind and box:kind() == "dan" then return FOLDER_FRAME_DANI, false end
if n and SORT_FOLDER_NAMES[n] then return FOLDER_FRAME_SORT, false end
if is_tutorial(box) then return FOLDER_FRAME_HOWTO, false end
return box:genre_frame(), false
end
@@ -115,7 +125,7 @@ function SongSelect:draw_folder_board(box, pb, ch_alpha, ch_off, ta, glow_a)
-- characters: texture has L at x=510 and R at x=1410
if ch_alpha > 0 then
local slide = 450.0 - ch_off
local gframe = box:genre_frame()
local gframe = is_tutorial(box) and CHARA_FRAME_HOWTO or box:genre_frame()
tex.draw_texture(self._id_box_chara, { frame = gframe, x = bx - 960 + slide, y = by - 240, x2 = 960 - 1920, fade = fade * ch_alpha,
src = { x = 0, y = 0, width = 960, height = 480 } })
tex.draw_texture(self._id_box_chara, { frame = gframe, x = bx - slide, y = by - 240, x2 = 960 - 1920, fade = fade * ch_alpha,
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+34 -6
View File
@@ -3884,7 +3884,7 @@ a6dea25ec50ac8784fe096c717f91d24807a8a22b16082541e9b915a9b31bc7d *./Graphics/gam
b3f3073a122e5b731f262489db6adbf7d9ffaefab5afefd370e8bd18cc510cc4 *./Graphics/game/gogo_time/explosion.png
eca6c501cbfd81c7b33b46ab81db554626ff2be54c1dd183e3493276dcaaccbf *./Graphics/game/gogo_time/fire.png
797528e413b3427959312db5d8537fdce6331ba43a5b49903da0670211ebf2fa *./Graphics/game/gogo_time/lane_effect.png
e3fb796cacd9ad7bf0769e8f6d19f55c9c61742b8a59a854fb45acdd406efc5e *./Graphics/game/gogo_time/texture.json
cad8ea0282b4ec6d53c2b88e4094ec82c23fa235a466f4c20ea896ff0cfd0778 *./Graphics/game/gogo_time/texture.json
72a272b7ec8c5efec469401cab07a43f9dcbcae81d1e2092c3e49078cdfd36a1 *./Graphics/game/hit_effect/firework.png
3fc1ee33edfb7e99a61dae79d2abd0e018dbc1719a80c6834dcf697998b81c1e *./Graphics/game/hit_effect/hit_effect_good_big.png
ffc4d9da64b8075ba6534644b97a8bb7cf3bac1a42d1703549bb236f60592956 *./Graphics/game/hit_effect/hit_effect_good.png
@@ -4091,7 +4091,7 @@ f4e6929412e834eec85242488ef833e8cff6b00e5ccde229c1f2184716fa69a7 *./Graphics/glo
f46030ebe3247b49b4dfb7ec802812da33572de002989063b3585c2b75bcdbc7 *./Graphics/global/rainbow_transition/rainbow_bg.png
f86a7ffaafc3038e1b14080c151c5703366a66707d250be9bea9359db6586f81 *./Graphics/global/rainbow_transition/rainbow_bg_top.png
e0f89dc98bc3cd5e36fe43afbf3d9ce142f69be881931e0a9733700e0df30628 *./Graphics/global/rainbow_transition/text_bg.png
88d30f57a386ecd80881e8663a558ff6aba444fc9a08d92c793992b44c574877 *./Graphics/global/rainbow_transition/texture.json
f48a123f5649930323140601000702a5aae53e0e9399b6fd217e82e4f5b1a33e *./Graphics/global/rainbow_transition/texture.json
8ba0a29f03932b94c47a5155f7ec96ae605e4195c60dea7df2d5391cf7bb8070 *./Graphics/global/result_transition/1p_shutter.png
8ba0a29f03932b94c47a5155f7ec96ae605e4195c60dea7df2d5391cf7bb8070 *./Graphics/global/result_transition/2p_shutter.png
8ba0a29f03932b94c47a5155f7ec96ae605e4195c60dea7df2d5391cf7bb8070 *./Graphics/global/result_transition/4p_shutter.png
@@ -4209,7 +4209,7 @@ d21dc53600bab83b80352bad38cd598d216c6e1279a4d54a0a085ad82ad1430d *./Graphics/res
684c22481d2a0e4bb2d6dd67b5df87650e081edfeadffcc70c377c393334c06d *./Graphics/result/score/score_shinuchi_en.png
1c160a1a14016ea3a5f761b040db433420476363224011d615613af660e7d0e1 *./Graphics/result/score/score_shinuchi_ja.png
89c4d6afafb8010ec4da0b9f72f10f677ec8c87677fcb3d2c9edde923a5b5f9f *./Graphics/result/score/texture.json
368236cf9d2049a0cfe98de0b823608904beae31b3b2ed2c1521a8c0864c01b7 *./Graphics/skin_config.json
83aded38cb2f6cfcaa6643be49d34afb9f4064af5558c886682ceffcd5494749 *./Graphics/skin_config.json
a05d23f0997446d4db2b745602bff7fc3d2cdce968a1c24e078684d41cf2982c *./Graphics/song_select/animation.json
b74432db46ec6d7ec080fbee6df6029c1451e243d30813fcf597a21704de4e74 *./Graphics/song_select/box/background/0.png
c6514d44a9bc8e15e8523c5ede7663be3f7ab34f370ea364263ebf73998d0ab8 *./Graphics/song_select/box/background/1.png
@@ -4595,7 +4595,7 @@ e514657c28c18d6b913e24b416694cd9e0dc4f61d229b42e423ea62ac5ff69a3 *./Scripts/back
d6a27cd79db76d7cdb3fcf70134fadae0679e728f2b2bd615ce4b8c465b44c28 *./Scripts/background/bg_collabs/imas_sidem.lua
faf1051b2de0e879b03bf27ceb4241b7536f92571ce8ed828c318089895fda35 *./Scripts/background/bg_collabs/oshiri.lua
ea6d17fba190ecd605106d9b12e6fa79311ee637a00c0345f9c425f4286c1b27 *./Scripts/background/bg_collabs/practice.lua
db1861b6bd344a022b11e1865104ae76b762e8c8b81cfc7b424c3ab6d2584e47 *./Scripts/background/bg_collabs/tutorial.lua
c90eca632c14a4a7d66cd03540ddce2a0dda492e0ab2654b759abf252a9590be *./Scripts/background/bg_collabs/tutorial.lua
08d45ec56e2c7fd5e0842d3fda7997c843ac1a1971a3d41255d618799899a508 *./Scripts/background/bg_data/bg_anim/b_001_dai.lua
e2f18975cf78f3de351f8459be4c4f6b7b6db54f5efd4589991672c7daf1fa6d *./Scripts/background/bg_data/bg_anim/b_001_f.lua
f3b7b0c83c369de1e7cf81aed87354e282819324f12340b612661abbed455d45 *./Scripts/background/bg_data/bg_anim/b_001_n.lua
@@ -4791,7 +4791,7 @@ de52279393c43fd2b1f880919597ae6d8802174e0ab6d0db06126b2b090a77b9 *./Scripts/glob
92c9865f21ff18185b60011f12bd97d30fa0a4c3145b4f71347e68ccb5e24a87 *./Scripts/global/network_msg.lua
34645d4c05dcb582ddaad6e3d2e1075c476471c81e0ce68e33f7b0bbfa3c0f2b *./Scripts/global/result_transition.lua
1eb98ab1463795c77e2f80aa49eaa1aa73e2e4509b739f00ac53d07cbf40fed7 *./Scripts/global/timer.lua
e0841261cc4dc5bd22c42392708819e9c8d3e25ef1a153d5b7fcae1328347d55 *./Scripts/global/transition.lua
a116d115e2330ed953ef7d5dd3d32ad8f17f969a891a2ed5aa0b6f124c0f9281 *./Scripts/global/transition.lua
b458c0c88c2544c93f1402b7506e51c0ca47b67aee2573e130d57c20079c7260 *./Scripts/result/bottom_characters.lua
63056cb46b73fcdfcbfb0b51b3afedc3131913935705c6c5d15655db83dde850 *./Scripts/result/dan_result_draw.lua
5100bbdacb2464227ad50262c5c9daf56ca4ca17dc0aa121fd64bc72946dab8a *./Scripts/result/high_score_indicator.lua
@@ -4806,7 +4806,7 @@ dcc7b7d655cf5d2ea0fc95764bacf7f08f40a35942f8fd5329303a2c11589a3c *./Scripts/resu
49d6b0e063c3afbeb304a1f60d228c2bf7229d4604f08f50ba1382049259592e *./Scripts/song_select/file_navigator/box_back.lua
47b10e73852684884a19efecce94fbfd066b90bedbe4251495da3f1759d0abb4 *./Scripts/song_select/file_navigator/box_base.lua
6bf1a5c3117ae2cdb62add55f1848ffef0b5f3969ae4ea3aa4bd708039c0bf9a *./Scripts/song_select/file_navigator/box_dan.lua
26d5bcde2e33a29d2d88728cdcccd13ec299f235e1cfb759d9d109e4a0a7678b *./Scripts/song_select/file_navigator/box_folder.lua
efcfa8c68806bd443c8e64209c77f0af558d2e2956b141b780019171c66441af *./Scripts/song_select/file_navigator/box_folder.lua
db062d44c9b1b15e66f23c525bd2bc68262c0b4db11a2dc9532bf99a721fd848 *./Scripts/song_select/file_navigator/box_song.lua
6df8f4fc78403635889409829d681dae340df45423f019d717d4d8c72aa39c2b *./Scripts/song_select/modifier.lua
e7867c13a618c6f970eaee2826ac6d0efb5539f8b13488dfe5d1c2ece5a81b49 *./Scripts/song_select/option_panel.lua
@@ -5099,3 +5099,31 @@ c567acc69bf6e9a239e66a195f2d65a7ec6455acff3ee248f4302477d01c193d *./Videos/attra
3ae7d8f807a3bd693fd4a380e6f6ebedae4d443d796049880f69bc23456a9f85 *./Videos/attract_videos/attractdemo_en_us.mp4
54f561d89b48feff2fa31999e7485e370f2c55b9f360102b2014310078d20fc3 *./Videos/attract_videos/attractdemo_kor.mp4
3801f84ff85f56376828abef0b12bd8a1e336b4bc739557bc0ccfa386d79668e *./Videos/op_videos/title.mp4
311b9d56a813d76e2f1885d640f5f497af9c7e58740f55f591150567cca85a9c *./Graphics/global/rainbow_transition/rainbow_glow.png
7dae02df0392ce513668e4929dee0362f3e3279c097b74dbcbac2a3ef36f706b *./Graphics/background/tutorial_ac/cloud.png
d6b007e4fdb3e8dfe259ce8a591956bd3a8073dbfb8eded5c28a6d02b8dba4c9 *./Graphics/background/tutorial_ac/floor.png
f8a44f4dc7386da694b3749f1a7b77c88b79bec584bc0cf48bc93a12742be8ab *./Graphics/background/tutorial_ac/mtn.png
ff76783f5f03ca095e12b005cad93ef1c91748ddcf27755f16ff53c899851d15 *./Graphics/background/tutorial_ac/pat.png
7c4957cbb71eb25e0b09964af536be1ed6d20c673cf4bb2c8e6452dd3b2ae879 *./Graphics/background/tutorial_ac/texture.json
14537a9b48e59051eb02ac41cfdbd77afdc5b81eae0ebc1d29cc76c439734d35 *./Graphics/background/tutorial_ac/w13.png
abc4af84c1af148b9d245cb2815ca17be12fd44e6d619048a6d8df914bc117d9 *./Graphics/background/tutorial_ac/w16.png
14537a9b48e59051eb02ac41cfdbd77afdc5b81eae0ebc1d29cc76c439734d35 *./Graphics/background/tutorial_ac/w21.png
1b587c30c522042a6c04290b4998dca36ef84496810bac4ae12648c5337f7eba *./Graphics/background/tutorial_ac/w24.png
8bcf5446e8bee1b1e13e7778a875b27771d736b55bc616434e7bc9668f504084 *./Graphics/song_select/box/box_chara/10.png
393113431aefde1f2ca5c580295cd15fc744fb8190c0b28ffce57379889616db *./Scripts/background/bg_data/tutorial_ac.lua
7a438cb70361275daed4356d23a504ab38d4ac105bf09bd8c1db0e0577dce775 *./Sounds/game/tutorial/balloon.ogg
a8c29f3995ecd5b17d0c2fa15f3109d5bae9b9a6c1dbeecf68fa3503beafd94e *./Sounds/game/tutorial/bgm.ogg
394eb2c302cc05b99c5f429d6577f766e70bd0dc5b8d3e42cdfbe5b09cc43adf *./Sounds/game/tutorial/burn.ogg
7e9aa96b627d633b4d4fc6c82895154626e6a887389c9996cf794967ea3c33d3 *./Sounds/game/tutorial/clear.ogg
feb85dd227f4163a0d52aff2c24055b05180a12e21b131a67672dbed5242f4a1 *./Sounds/game/tutorial/sidebody.ogg
985cead13844bee272d8ca4fa553c71e8a9ea71bf96cb5ed00521767ff5916a9 *./Sounds/game/tutorial/voice_1.ogg
8b8c89e385b77e63c47526a80c8ddb49d189dadf37cedbaeb04149134e7184d0 *./Sounds/game/tutorial/voice_10.ogg
03944a76a6df43a6884de10de3600befd1e1681d2190cde9f2b1db1fa808f0c3 *./Sounds/game/tutorial/voice_11.ogg
833e6631c8d0eed92b70dbc72d7b5ad4ac17cd23a32177043709e4a48e0f29b0 *./Sounds/game/tutorial/voice_2.ogg
2c3e69994a23ac11a234a58395ec8519235cfaa8a92750ac501fc73af8207ab3 *./Sounds/game/tutorial/voice_3.ogg
b957627819e2dd9a7b67c47ade85db6e0a6fd7b0842f948b2c5be71ab023e258 *./Sounds/game/tutorial/voice_4.ogg
c2a7a67d8a34d56c2dd637272914eb18f74b146dce5f37d1db6835682c2123b7 *./Sounds/game/tutorial/voice_5.ogg
a4046d2db366818ac35714ce87f07a6585dc0dcccff6f39657e289abd371e388 *./Sounds/game/tutorial/voice_6.ogg
66e028dc414e630b7a81d71c2d8945d4a94a32d8412dedeeb9da08635312ab3f *./Sounds/game/tutorial/voice_7.ogg
1ab675193468d54873225537c4cdcbee633c719196f11b88ba97c32358f4def6 *./Sounds/game/tutorial/voice_8.ogg
dece64f0558b78944e1df7151ba82d4cf64c19c756eef75852d5b64276c5ba49 *./Sounds/game/tutorial/voice_9.ogg