Compare commits

...
25 changed files with 756 additions and 1998 deletions

No files matched your search

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.
Binary file not shown.
File diff suppressed because it is too large. Load diff
+534
View File
@@ -0,0 +1,534 @@
-- GENERATED -- DO NOT EDIT BY HAND.
-- Source: control_guide.nulm sprite 88 frames 0..649 @ 60 fps
-- Rows are {frame, tx, ty, sc, rot, a}: tx,ty = pivot (quad top-left before rotation), sc = uniform scale, rot = degrees clockwise; LINEAR between rows. meta.mirror = horizontal flip.
return {
movie = "control_guide.nulm",
clip = "#88",
fps = 60,
range = { 0, 649 },
fields = { "tx", "ty", "sc", "rot", "a" },
labels = {},
meta = {
["s/d0c84"] = { tex = "guide_84", add = false, mirror = false },
["s/d0c49"] = { tex = "guide_49", add = false, mirror = false },
["s/d1c70/d0c68m"] = { tex = "guide_68", add = false, mirror = true },
["s/d2c71/d0c68"] = { tex = "guide_68", add = false, mirror = false },
["s/d3c72/d0c49"] = { tex = "guide_49", add = false, mirror = false },
["s/d4c73/d0c49"] = { tex = "guide_49", add = false, mirror = false },
["s/d5c76/d0c74m"] = { tex = "guide_74", add = false, mirror = true },
["s/d6c77/d0c74"] = { tex = "guide_74", add = false, mirror = false },
["s/d7c80"] = { tex = "guide_80", add = false, mirror = false },
["s/d7c51"] = { tex = "guide_51", add = false, mirror = false },
["s/d8c78"] = { tex = "guide_78", add = false, mirror = false },
["s/d8c82"] = { tex = "guide_82", add = false, mirror = false },
["s/d8c86"] = { tex = "guide_86", add = false, mirror = false },
["s/d8c78m"] = { tex = "guide_78", add = false, mirror = true },
["s/d8c82m"] = { tex = "guide_82", add = false, mirror = true },
["s/d8c86m"] = { tex = "guide_86", add = false, mirror = true },
["s/d8c53m"] = { tex = "guide_53", add = false, mirror = true },
["s/d8c59m"] = { tex = "guide_59", add = false, mirror = true },
["s/d8c61m"] = { tex = "guide_61", add = false, mirror = true },
["s/d8c63m"] = { tex = "guide_63", add = false, mirror = true },
["s/d9c53"] = { tex = "guide_53", add = false, mirror = false },
["s/d9c59"] = { tex = "guide_59", add = false, mirror = false },
["s/d9c61"] = { tex = "guide_61", add = false, mirror = false },
["s/d9c63"] = { tex = "guide_63", add = false, mirror = false },
["s/d10c65"] = { tex = "guide_65", add = false, mirror = false },
["s/d11c57"] = { tex = "guide_57", add = false, mirror = false },
},
order = {
"s/d0c84",
"s/d0c49",
"s/d1c70/d0c68m",
"s/d2c71/d0c68",
"s/d3c72/d0c49",
"s/d4c73/d0c49",
"s/d5c76/d0c74m",
"s/d6c77/d0c74",
"s/d7c80",
"s/d7c51",
"s/d8c78",
"s/d8c82",
"s/d8c86",
"s/d8c78m",
"s/d8c82m",
"s/d8c86m",
"s/d8c53m",
"s/d8c59m",
"s/d8c61m",
"s/d8c63m",
"s/d9c53",
"s/d9c59",
"s/d9c61",
"s/d9c63",
"s/d10c65",
"s/d11c57",
},
tracks = {
["s/d0c84"] = {
{ 59, 75.5, 26.5, 0.8333, -0, 0 },
{ 60, 75.5, 26.5, 0.8333, -0, 1 },
{ 65, 55.5, 6.501, 1.25, -0, 1 },
{ 70, 43.5, -5.5, 1.5, -0, 0 },
{ 71, 43.5, -5.5, 1.5, -0, 0 },
{ 144, 75.5, 26.5, 0.8333, -0, 0 },
{ 145, 75.5, 26.5, 0.8333, -0, 1 },
{ 150, 55.5, 6.501, 1.25, -0, 1 },
{ 155, 43.5, -5.5, 1.5, -0, 0 },
{ 156, 43.5, -5.5, 1.5, -0, 0 },
{ 269, 178.5, 26.5, 0.8333, -0, 0 },
{ 270, 178.5, 26.5, 0.8333, -0, 1 },
{ 275, 158.5, 6.501, 1.25, -0, 1 },
{ 280, 146.5, -5.5, 1.5, -0, 0 },
{ 281, 146.5, -5.5, 1.5, -0, 0 },
{ 354, 178.5, 26.5, 0.8333, -0, 0 },
{ 355, 178.5, 26.5, 0.8333, -0, 1 },
{ 360, 158.5, 6.501, 1.25, -0, 1 },
{ 365, 146.5, -5.5, 1.5, -0, 0 },
{ 366, 146.5, -5.5, 1.5, -0, 0 },
},
["s/d0c49"] = {
{ 419, 47, 31, 1, 0, 0 },
{ 420, 47, 31, 1, 0, 1 },
{ 519, 47, 31, 1, 0, 1 },
{ 520, 52, 39.5, 0.9583, -0, 1 },
{ 525, 47, 31, 1, 0, 1 },
{ 649, 47, 31, 1, 0, 1 },
},
["s/d1c70/d0c68m"] = {
{ 0, 167, 27, 1, -0, 0 },
{ 210, 167, 27, 1, -0, 0 },
{ 211, 167, 27, 1, -0, 0.0658 },
{ 212, 167, 27, 1, -0, 0.1444 },
{ 213, 167, 27, 1, -0, 0.2322 },
{ 214, 167, 27, 1, -0, 0.334 },
{ 215, 167, 27, 1, -0, 0.4442 },
{ 217, 167, 27, 1, -0, 0.6984 },
{ 219, 167, 27, 1, -0, 1 },
{ 220, 167, 27, 1, -0, 1 },
{ 229, 167, 27, 1, -0, 0.5 },
{ 239, 167, 27, 1, -0, 1 },
{ 240, 167, 27, 1, -0, 1 },
{ 249, 167, 27, 1, -0, 0.5 },
{ 259, 167, 27, 1, -0, 1 },
{ 260, 167, 27, 1, -0, 1 },
{ 269, 167, 27, 1, -0, 0.5 },
{ 270, 166.1, 30.9, 0.98, -0, 0.5508 },
{ 275, 167, 27, 1, -0, 0.8008 },
{ 279, 167, 27, 1, -0, 1 },
{ 280, 167, 27, 1, -0, 1 },
{ 289, 167, 27, 1, -0, 0.5 },
{ 299, 167, 27, 1, -0, 1 },
{ 300, 167, 27, 1, -0, 1 },
{ 309, 167, 27, 1, -0, 0.5 },
{ 319, 167, 27, 1, -0, 1 },
{ 320, 167, 27, 1, -0, 1 },
{ 329, 167, 27, 1, -0, 0.5 },
{ 339, 167, 27, 1, -0, 1 },
{ 340, 167, 27, 1, -0, 1 },
{ 349, 167, 27, 1, -0, 0.5 },
{ 354, 167, 27, 1, -0, 0.75 },
{ 355, 166.1, 30.9, 0.98, -0, 0.8008 },
{ 359, 166.9, 27.74, 0.996, -0, 1 },
{ 360, 167, 27, 1, -0, 1 },
{ 369, 167, 27, 1, -0, 0.5 },
{ 379, 167, 27, 1, -0, 1 },
{ 380, 167, 27, 1, -0, 1 },
{ 389, 167, 27, 1, -0, 0.5 },
{ 399, 167, 27, 1, -0, 1 },
{ 400, 167, 27, 1, -0, 1 },
{ 409, 167, 27, 1, -0, 0.5 },
{ 410, 167, 27, 1, -0, 0.5508 },
{ 411, 167, 27, 1, -0, 0.5405 },
{ 412, 167, 27, 1, -0, 0.5193 },
{ 414, 167, 27, 1, -0, 0.4512 },
{ 415, 167, 27, 1, -0, 0.4004 },
{ 417, 167, 27, 1, -0, 0.2702 },
{ 419, 167, 27, 1, -0, 0.1016 },
{ 420, 167, 27, 1, -0, 0 },
{ 649, 167, 27, 1, -0, 0 },
},
["s/d2c71/d0c68"] = {
{ 0, 55, 27, 1, 0, 0 },
{ 1, 55, 27, 1, 0, 0.1034 },
{ 2, 55, 27, 1, 0, 0.1983 },
{ 3, 55, 27, 1, 0, 0.2763 },
{ 4, 55, 27, 1, 0, 0.3462 },
{ 5, 55, 27, 1, 0, 0.4008 },
{ 6, 55, 27, 1, 0, 0.4462 },
{ 8, 55, 27, 1, 0, 0.494 },
{ 9, 55, 27, 1, 0, 0.5 },
{ 19, 55, 27, 1, 0, 1 },
{ 20, 55, 27, 1, 0, 1 },
{ 29, 55, 27, 1, 0, 0.5 },
{ 39, 55, 27, 1, 0, 1 },
{ 40, 55, 27, 1, 0, 1 },
{ 49, 55, 27, 1, 0, 0.5 },
{ 59, 55, 27, 1, 0, 1 },
{ 60, 58.17, 30.91, 0.98, -0, 1 },
{ 65, 55, 27, 1, 0, 0.7227 },
{ 69, 55, 27, 1, 0, 0.5 },
{ 79, 55, 27, 1, 0, 1 },
{ 80, 55, 27, 1, 0, 1 },
{ 89, 55, 27, 1, 0, 0.5 },
{ 99, 55, 27, 1, 0, 1 },
{ 100, 55, 27, 1, 0, 1 },
{ 109, 55, 27, 1, 0, 0.5 },
{ 119, 55, 27, 1, 0, 1 },
{ 120, 55, 27, 1, 0, 1 },
{ 129, 55, 27, 1, 0, 0.5 },
{ 139, 55, 27, 1, 0, 1 },
{ 140, 55, 27, 1, 0, 1 },
{ 144, 55, 27, 1, 0, 0.7773 },
{ 145, 58.17, 30.91, 0.98, -0, 0.7227 },
{ 149, 55.64, 27.79, 0.996, -0, 0.5 },
{ 150, 55, 27, 1, 0, 0.5508 },
{ 159, 55, 27, 1, 0, 1 },
{ 160, 55, 27, 1, 0, 1 },
{ 169, 55, 27, 1, 0, 0.5 },
{ 179, 55, 27, 1, 0, 1 },
{ 180, 55, 27, 1, 0, 1 },
{ 189, 55, 27, 1, 0, 0.5 },
{ 199, 55, 27, 1, 0, 1 },
{ 200, 55, 27, 1, 0, 1 },
{ 201, 55, 27, 1, 0, 0.8419 },
{ 202, 55, 27, 1, 0, 0.6923 },
{ 203, 55, 27, 1, 0, 0.5558 },
{ 204, 55, 27, 1, 0, 0.4312 },
{ 205, 55, 27, 1, 0, 0.3218 },
{ 206, 55, 27, 1, 0, 0.2218 },
{ 207, 55, 27, 1, 0, 0.1357 },
{ 208, 55, 27, 1, 0, 0.06067 },
{ 209, 55, 27, 1, 0, 0 },
{ 649, 55, 27, 1, 0, 0 },
},
["s/d3c72/d0c49"] = {
{ 0, 47, 31, 1, 0, 0 },
{ 209, 47, 31, 1, 0, 0 },
{ 210, 47, 31, 1, 0, 1 },
{ 269, 47, 31, 1, 0, 1 },
{ 270, 48.48, 34.82, 0.98, -0, 1 },
{ 275, 47, 31, 1, 0, 1 },
{ 354, 47, 31, 1, 0, 1 },
{ 355, 48.48, 34.82, 0.98, -0, 1 },
{ 360, 47, 31, 1, 0, 1 },
{ 419, 47, 31, 1, 0, 1 },
{ 420, 47, 31, 1, 0, 0 },
{ 649, 47, 31, 1, 0, 0 },
},
["s/d4c73/d0c49"] = {
{ 0, 47, 31, 1, 0, 1 },
{ 59, 47, 31, 1, 0, 1 },
{ 60, 50.33, 34.83, 0.98, -0, 1 },
{ 65, 47, 31, 1, 0, 1 },
{ 144, 47, 31, 1, 0, 1 },
{ 145, 50.33, 34.83, 0.98, -0, 1 },
{ 150, 47, 31, 1, 0, 1 },
{ 209, 47, 31, 1, 0, 1 },
{ 210, 47, 31, 1, 0, 0 },
{ 649, 47, 31, 1, 0, 0 },
},
["s/d5c76/d0c74m"] = {
{ 0, 167, 27, 1, -0, 0 },
{ 210, 167, 27, 1, -0, 0 },
{ 211, 167, 27, 1, -0, 0.0658 },
{ 212, 167, 27, 1, -0, 0.1444 },
{ 213, 167, 27, 1, -0, 0.2322 },
{ 214, 167, 27, 1, -0, 0.334 },
{ 215, 167, 27, 1, -0, 0.4442 },
{ 217, 167, 27, 1, -0, 0.6984 },
{ 219, 167, 27, 1, -0, 1 },
{ 220, 167, 27, 1, -0, 1 },
{ 229, 167, 27, 1, -0, 0.5 },
{ 239, 167, 27, 1, -0, 1 },
{ 240, 167, 27, 1, -0, 1 },
{ 249, 167, 27, 1, -0, 0.5 },
{ 259, 167, 27, 1, -0, 1 },
{ 260, 167, 27, 1, -0, 1 },
{ 269, 167, 27, 1, -0, 0.5 },
{ 270, 166.1, 30.9, 0.98, -0, 0.5508 },
{ 275, 167, 27, 1, -0, 0.8008 },
{ 279, 167, 27, 1, -0, 1 },
{ 280, 167, 27, 1, -0, 1 },
{ 289, 167, 27, 1, -0, 0.5 },
{ 299, 167, 27, 1, -0, 1 },
{ 300, 167, 27, 1, -0, 1 },
{ 309, 167, 27, 1, -0, 0.5 },
{ 319, 167, 27, 1, -0, 1 },
{ 320, 167, 27, 1, -0, 1 },
{ 329, 167, 27, 1, -0, 0.5 },
{ 339, 167, 27, 1, -0, 1 },
{ 340, 167, 27, 1, -0, 1 },
{ 349, 167, 27, 1, -0, 0.5 },
{ 354, 167, 27, 1, -0, 0.75 },
{ 355, 166.1, 30.9, 0.98, -0, 0.8008 },
{ 359, 166.9, 27.74, 0.996, -0, 1 },
{ 360, 167, 27, 1, -0, 1 },
{ 369, 167, 27, 1, -0, 0.5 },
{ 379, 167, 27, 1, -0, 1 },
{ 380, 167, 27, 1, -0, 1 },
{ 389, 167, 27, 1, -0, 0.5 },
{ 399, 167, 27, 1, -0, 1 },
{ 400, 167, 27, 1, -0, 1 },
{ 409, 167, 27, 1, -0, 0.5 },
{ 410, 167, 27, 1, -0, 0.5508 },
{ 411, 167, 27, 1, -0, 0.5405 },
{ 412, 167, 27, 1, -0, 0.5193 },
{ 414, 167, 27, 1, -0, 0.4512 },
{ 415, 167, 27, 1, -0, 0.4004 },
{ 417, 167, 27, 1, -0, 0.2702 },
{ 419, 167, 27, 1, -0, 0.1016 },
{ 420, 167, 27, 1, -0, 0 },
{ 649, 167, 27, 1, -0, 0 },
},
["s/d6c77/d0c74"] = {
{ 0, 55, 27, 1, 0, 0 },
{ 1, 55, 27, 1, 0, 0.1034 },
{ 2, 55, 27, 1, 0, 0.1983 },
{ 3, 55, 27, 1, 0, 0.2763 },
{ 4, 55, 27, 1, 0, 0.3462 },
{ 5, 55, 27, 1, 0, 0.4008 },
{ 6, 55, 27, 1, 0, 0.4462 },
{ 8, 55, 27, 1, 0, 0.494 },
{ 9, 55, 27, 1, 0, 0.5 },
{ 19, 55, 27, 1, 0, 1 },
{ 20, 55, 27, 1, 0, 1 },
{ 29, 55, 27, 1, 0, 0.5 },
{ 39, 55, 27, 1, 0, 1 },
{ 40, 55, 27, 1, 0, 1 },
{ 49, 55, 27, 1, 0, 0.5 },
{ 59, 55, 27, 1, 0, 1 },
{ 60, 58.17, 30.91, 0.98, -0, 1 },
{ 65, 55, 27, 1, 0, 0.7227 },
{ 69, 55, 27, 1, 0, 0.5 },
{ 79, 55, 27, 1, 0, 1 },
{ 80, 55, 27, 1, 0, 1 },
{ 89, 55, 27, 1, 0, 0.5 },
{ 99, 55, 27, 1, 0, 1 },
{ 100, 55, 27, 1, 0, 1 },
{ 109, 55, 27, 1, 0, 0.5 },
{ 119, 55, 27, 1, 0, 1 },
{ 120, 55, 27, 1, 0, 1 },
{ 129, 55, 27, 1, 0, 0.5 },
{ 139, 55, 27, 1, 0, 1 },
{ 140, 55, 27, 1, 0, 1 },
{ 144, 55, 27, 1, 0, 0.7773 },
{ 145, 58.17, 30.91, 0.98, -0, 0.7227 },
{ 149, 55.64, 27.79, 0.996, -0, 0.5 },
{ 150, 55, 27, 1, 0, 0.5508 },
{ 159, 55, 27, 1, 0, 1 },
{ 160, 55, 27, 1, 0, 1 },
{ 169, 55, 27, 1, 0, 0.5 },
{ 179, 55, 27, 1, 0, 1 },
{ 180, 55, 27, 1, 0, 1 },
{ 189, 55, 27, 1, 0, 0.5 },
{ 199, 55, 27, 1, 0, 1 },
{ 200, 55, 27, 1, 0, 1 },
{ 201, 55, 27, 1, 0, 0.8419 },
{ 202, 55, 27, 1, 0, 0.6923 },
{ 203, 55, 27, 1, 0, 0.5558 },
{ 204, 55, 27, 1, 0, 0.4312 },
{ 205, 55, 27, 1, 0, 0.3218 },
{ 206, 55, 27, 1, 0, 0.2218 },
{ 207, 55, 27, 1, 0, 0.1357 },
{ 208, 55, 27, 1, 0, 0.06067 },
{ 209, 55, 27, 1, 0, 0 },
{ 649, 55, 27, 1, 0, 0 },
},
["s/d7c80"] = {
{ 34, 213, 61, 1, 0, 0 },
{ 35, 213, 61, 1, 0, 0 },
{ 40, 213, 61, 1, 0, 1 },
{ 55, 196, 1, 1, 0, 1 },
{ 95, 196, 1, 1, 0, 1 },
{ 100, 196, 1, 1, 0, 0 },
{ 124, 196, 1, 1, 0, 0 },
{ 125, 213, 61, 1, 0, 0 },
{ 130, 213, 61, 1, 0, 1 },
{ 145, 196, 1, 1, 0, 1 },
{ 180, 196, 1, 1, 0, 1 },
{ 190, 196, 1, 1, 0, 0 },
{ 210, 196, 1, 1, 0, 0 },
{ 243, 341, 221, 1, -180, 0 },
{ 244, 341, 221, 1, -180, 0 },
{ 250, 341, 221, 1, -180, 1 },
{ 265, 358, 281, 1, -180, 1 },
{ 310, 358, 281, 1, -180, 1 },
{ 315, 358, 281, 1, -180, 0 },
{ 334, 358, 281, 1, -180, 0 },
{ 335, 341, 221, 1, -180, 0 },
{ 340, 341, 221, 1, -180, 1 },
{ 354, 358, 281, 1, -180, 1 },
{ 390, 358, 281, 1, -180, 1 },
{ 400, 358, 281, 1, -180, 0 },
{ 420, 358, 281, 1, -180, 0 },
},
["s/d7c51"] = {
{ 419, 87, 51, 1, 0, 0 },
{ 420, 87, 51, 1, 0, 0 },
{ 440, 87, 51, 1, 0, 1 },
{ 450, 87, 51, 1, 0, 0.5 },
{ 460, 87, 51, 1, 0, 1 },
{ 470, 87, 51, 1, 0, 0.5 },
{ 480, 87, 51, 1, 0, 1 },
{ 490, 87, 51, 1, 0, 0.5 },
{ 500, 87, 51, 1, 0, 1 },
{ 510, 87, 51, 1, 0, 0.5 },
{ 520, 87, 51, 1, 0, 1 },
{ 525, 37, 5.376, 1.625, -0, 0.75 },
{ 540, 27, -3.749, 1.75, -0, 0 },
{ 649, 27, -3.749, 1.75, -0, 0 },
},
["s/d8c78"] = {
{ 0, 108, 83, 1, 0, 0 },
{ 20, 108, 83, 1, 0, 1 },
{ 40, 108, 83, 1, 0, 1 },
{ 54, 100.2, 55, 1, 0, 1 },
{ 55, 100.2, 55, 1, 0, 0 },
{ 64, 100, 53, 1, 0, 0 },
{ 65, 100, 53, 1, 0, 1 },
{ 139, 100, 53, 1, 0, 1 },
{ 140, 100, 53, 1, 0, 0 },
{ 149, 100, 53, 1, 0, 0 },
{ 150, 100, 53, 1, 0, 1 },
{ 180, 100, 53, 1, 0, 1 },
{ 190, 100, 53, 1, 0, 0 },
{ 210, 100, 53, 1, 0, 0 },
},
["s/d8c82"] = {
{ 54, 100, 53, 1, 0, 0 },
{ 55, 100, 53, 1, 0, 1 },
{ 59, 100, 53, 1, 0, 1 },
{ 60, 100, 53, 1, 0, 0 },
{ 139, 100, 53, 1, 0, 0 },
{ 140, 100, 53, 1, 0, 1 },
{ 144, 100, 53, 1, 0, 1 },
{ 145, 100, 53, 1, 0, 0 },
},
["s/d8c86"] = {
{ 59, 100, 53, 1, 0, 0 },
{ 60, 100, 53, 1, 0, 1 },
{ 64, 100, 53, 1, 0, 1 },
{ 65, 100, 53, 1, 0, 0 },
{ 144, 100, 53, 1, 0, 0 },
{ 145, 100, 53, 1, 0, 1 },
{ 149, 100, 53, 1, 0, 1 },
{ 150, 100, 53, 1, 0, 0 },
},
["s/d8c78m"] = {
{ 209, 178, 83, 1, -0, 0 },
{ 210, 178, 83, 1, -0, 0 },
{ 230, 178, 83, 1, -0, 1 },
{ 250, 178, 83, 1, -0, 1 },
{ 264, 185.5, 54.95, 1, -0, 1 },
{ 265, 185.5, 54.95, 1, -0, 0 },
{ 274, 186, 53, 1, -0, 0 },
{ 275, 186, 53, 1, -0, 1 },
{ 348, 186, 53, 1, -0, 1 },
{ 349, 186, 53, 1, -0, 0 },
{ 358, 186, 53, 1, -0, 0 },
{ 359, 186, 53, 1, -0, 1 },
{ 390, 186, 53, 1, -0, 1 },
{ 400, 186, 53, 1, -0, 0 },
{ 420, 186, 53, 1, -0, 0 },
},
["s/d8c82m"] = {
{ 264, 186, 53, 1, -0, 0 },
{ 265, 186, 53, 1, -0, 1 },
{ 269, 186, 53, 1, -0, 1 },
{ 270, 186, 53, 1, -0, 0 },
{ 348, 186, 53, 1, -0, 0 },
{ 349, 186, 53, 1, -0, 1 },
{ 353, 186, 53, 1, -0, 1 },
{ 354, 186, 53, 1, -0, 0 },
},
["s/d8c86m"] = {
{ 269, 186, 53, 1, -0, 0 },
{ 270, 186, 53, 1, -0, 1 },
{ 274, 186, 53, 1, -0, 1 },
{ 275, 186, 53, 1, -0, 0 },
{ 353, 186, 53, 1, -0, 0 },
{ 354, 186, 53, 1, -0, 1 },
{ 358, 186, 53, 1, -0, 1 },
{ 359, 186, 53, 1, -0, 0 },
},
["s/d8c53m"] = {
{ 419, 191, 119, 1, -0, 0 },
{ 420, 191, 119, 1, -0, 0 },
{ 440, 191, 119, 1, -0, 1 },
{ 490, 191, 119, 1, -0, 1 },
{ 503, 179.6, 106.8, 0.9994, -5.035, 1 },
{ 504, 178.6, 106, 0.9997, -5.527, 1 },
{ 505, 178.6, 106, 0.9997, -5.527, 0 },
},
["s/d8c59m"] = {
{ 504, 184, 99.5, 1, -0, 0 },
{ 505, 184, 99.5, 1, -0, 1 },
{ 514, 184, 99.5, 1, -0, 1 },
{ 515, 184, 99.5, 1, -0, 0 },
},
["s/d8c61m"] = {
{ 514, 184, 99.5, 1, -0, 0 },
{ 515, 184, 99.5, 1, -0, 1 },
{ 519, 184, 99.5, 1, -0, 1 },
{ 520, 184, 99.5, 1, -0, 0 },
},
["s/d8c63m"] = {
{ 519, 184, 99.5, 1, -0, 0 },
{ 520, 184, 99.5, 1, -0, 1 },
{ 619, 184, 99.5, 1, -0, 1 },
{ 630, 184, 99.5, 1, -0, 0 },
{ 649, 184, 99.5, 1, -0, 0 },
},
["s/d9c53"] = {
{ 419, 47, 119, 1, 0, 0 },
{ 420, 47, 119, 1, 0, 0 },
{ 440, 47, 119, 1, 0, 1 },
{ 490, 47, 119, 1, 0, 1 },
{ 496, 52.35, 109.5, 0.9997, 2.28, 1 },
{ 503, 58.78, 98.32, 0.9994, 5.034, 1 },
{ 504, 59.85, 96.65, 0.9997, 5.526, 1 },
{ 505, 59.85, 96.65, 0.9997, 5.526, 0 },
},
["s/d9c59"] = {
{ 504, 54, 99.5, 1, -0, 0 },
{ 505, 54, 99.5, 1, -0, 1 },
{ 514, 54, 99.5, 1, -0, 1 },
{ 515, 54, 99.5, 1, -0, 0 },
},
["s/d9c61"] = {
{ 514, 54, 99.5, 1, -0, 0 },
{ 515, 54, 99.5, 1, -0, 1 },
{ 519, 54, 99.5, 1, -0, 1 },
{ 520, 54, 99.5, 1, -0, 0 },
},
["s/d9c63"] = {
{ 519, 54, 99.5, 1, -0, 0 },
{ 520, 54, 99.5, 1, -0, 1 },
{ 619, 54, 99.5, 1, -0, 1 },
{ 630, 54, 99.5, 1, -0, 0 },
{ 649, 54, 99.5, 1, -0, 0 },
},
["s/d10c65"] = {
{ 519, 64.41, 202.8, 0.9499, -0, 0 },
{ 520, 64.41, 202.8, 0.9499, -0, 0 },
{ 525, 59, 201, 1, -0, 0.5 },
{ 530, 59, 201, 1, 0, 1 },
{ 540, 59, 201, 1, 0, 0.5 },
{ 550, 59, 201, 1, 0, 1 },
{ 570, 59, 201, 1, 0, 0 },
{ 649, 59, 201, 1, 0, 0 },
},
["s/d11c57"] = {
{ 469, 59, 201, 1, -0, 0 },
{ 470, 59, 201, 1, -0, 0 },
{ 490, 59, 201, 1, 0, 1 },
{ 519, 59, 201, 1, 0, 1 },
{ 520, 64.43, 202.8, 0.9497, -0, 1 },
{ 525, 59, 201, 1, 0, 1 },
{ 619, 59, 201, 1, 0, 1 },
{ 630, 59, 201, 1, -0, 0 },
{ 649, 59, 201, 1, -0, 0 },
},
},
}
+4 -9
View File
@@ -1,3 +1,5 @@
require("global/guide_panel")
Entry = {}
Entry.__index = Entry
@@ -45,23 +47,16 @@ function Entry.new()
self.cr_arcade = (arcade_cfg ~= nil and (arcade_cfg.x or 0) >= 1)
self.cr_pending_decide = nil
self.guide = tex.get_texture("global/indicator/background")
self.guide_t0 = self.cr_t0
self.guide = GuidePanel.new()
self.any_joined = false
return self
end
local GUIDE_STEP = 2
local GUIDE_SPLIT = math.floor(420 / GUIDE_STEP)
local GUIDE_END = math.floor(650 / GUIDE_STEP)
function Entry:draw_control_guide()
if not self.guide then return end
if self.any_joined then return end
local n = GUIDE_END - GUIDE_SPLIT
local f = GUIDE_SPLIT + math.floor((tex.get_current_ms() - self.guide_t0) * 0.06 / GUIDE_STEP) % n
tex.draw_texture(self.guide, { frame = f, x = 0, y = 0 })
self.guide:draw(GuidePanel.Loop.DECIDE, 0, 0, 1.0)
end
function Entry:update(current_ms)
+53
View File
@@ -0,0 +1,53 @@
-- Arcade control_guide panel (plate + drum + sticks), drawn from the layered Lumen clip
-- (control_guide.nulm sprite 88). Shared by Indicator, entry and song_select.
local sampler = require("anim/sampler")
local clip = sampler.load("anim/guide_layers")
local PILL_TEX, PILL_W, PILL_H = "guide_57", 216, 72 -- the 決定 pill (guide_65 is its blink); label is skin text
local ARCADE_FPS = 60
local ALL_LEN, DECIDE_START, DECIDE_LEN = 420, 420, 230 -- Lumen loops: both sticks, then 決定
GuidePanel = {}
GuidePanel.__index = GuidePanel
GuidePanel.Loop = { ALL = 1, DECIDE = 2 }
function GuidePanel.new()
local self = setmetatable({}, GuidePanel)
self.plate = tex.get_texture("global/indicator/guide_plate")
self.layers = {}
for i, path in ipairs(clip.order) do
local m = clip.meta[path]
self.layers[i] = { path = path, tex = tex.get_texture("global/indicator/" .. m.tex),
mirror = m.mirror and "horizontal" or "none", pill = (m.tex == PILL_TEX) }
end
self.t0 = tex.get_current_ms()
self.decide = text.create_raw_text(tex.skin_text("guide_decide_label"), 24, { 30, 30, 30, 255 },
{ 30, 30, 30, 255 }, false, 0, 1.0)
return self
end
function GuidePanel:draw(loop, x, y, fade)
local f = (tex.get_current_ms() - self.t0) * ARCADE_FPS / 1000
if loop == GuidePanel.Loop.ALL then
f = f % ALL_LEN
else
f = DECIDE_START + f % DECIDE_LEN
end
x, y, fade = x or 0, y or 0, fade or 1.0
tex.draw_texture(self.plate, { x = x, y = y, fade = fade })
for _, l in ipairs(self.layers) do
local tx, ty, sc, rot, a = clip:at(l.path, f)
if a and a > 0.002 then
tex.draw_texture(l.tex, { x = x + tx, y = y + ty, scale = sc, rotation = rot,
origin = { 0, 0 }, mirror = l.mirror, fade = a * fade })
if l.pill then
self.decide:draw({ x = x + tx + PILL_W / 2 - self.decide.width / 2,
y = y + 12 + ty + PILL_H / 2 - self.decide.height / 2, fade = a * fade })
end
end
end
end
return GuidePanel
+7 -15
View File
@@ -10,21 +10,17 @@ Indicator.State = {
WAIT = 3,
}
local FRAME_STEP = 2 -- arcade frames per baked frame
local ARCADE_FPS = 60
require("global/guide_panel")
function Indicator.new(state)
local self = setmetatable({}, Indicator)
self.state = state
self.background = tex.get_texture("global/indicator/background")
self.frame_count = tex.get_texture_info("indicator", "background").frame_count
self.t0 = tex.get_current_ms()
local self = setmetatable({}, Indicator)
self.state = state
self.panel = GuidePanel.new()
return self
end
function Indicator:update(current_ms) end
local SPLIT, DECIDE_END = math.floor(420 / FRAME_STEP), math.floor(650 / FRAME_STEP) -- cells 210..324 = both sticks + 決定
__hss_costume_panel = __hss_costume_panel or {}
__hss_entry_guide = __hss_entry_guide or nil -- { ms, phase = "side" | "mode", count } from the entry scripts
@@ -45,16 +41,12 @@ function Indicator:draw(x, y, fade)
if g.phase == "side" then return end
show_all = (g.phase == "mode") and (g.count or 1) > 1
end
local elapsed = tex.get_current_ms() - self.t0
local frame
local loop = GuidePanel.Loop.DECIDE
if (y or 0) >= 1 or show_all then
frame = math.floor(elapsed / 1000 * ARCADE_FPS / FRAME_STEP) % SPLIT
if (y or 0) >= 1 then y = y - 1 end
else
local n = DECIDE_END - SPLIT
frame = SPLIT + math.floor(elapsed / 1000 * ARCADE_FPS / FRAME_STEP) % n
loop = GuidePanel.Loop.ALL
end
tex.draw_texture(self.background, { frame = frame, x = x, y = y, fade = fade })
self.panel:draw(loop, x, y, fade)
end
-- DAN_SELECT's top draw slot: plays the shutter's open half.
+19
View File
@@ -0,0 +1,19 @@
NetworkMsg = {}
NetworkMsg.__index = NetworkMsg
function NetworkMsg.new()
local self = setmetatable({}, NetworkMsg)
return self
end
function NetworkMsg:show(label)
end
function NetworkMsg:hide()
end
function NetworkMsg:update(current_ms)
end
function NetworkMsg:draw()
end
+4 -9
View File
@@ -4,9 +4,7 @@ local STATE_DIFF_SORTING = 2
local STATE_SEARCHING = 3
local STATE_DAN_SELECTED = 4
-- global/indicator/background is the arcade control_guide loop, baked every GUIDE_STEP frames.
local GUIDE_STEP = 2
local GUIDE_RIM_FRAMES = math.floor(420 / GUIDE_STEP)
require("global/guide_panel")
SongSelect = {}
SongSelect.__index = SongSelect
@@ -49,10 +47,9 @@ function SongSelect.new()
self._id_footer = tex.get_texture("song_select/global/footer") or 0
self._id_song_select = get_any("global", "song_select") or 0 -- 352x80 header at (30,30)
self._id_difficulty_select = get_any("global", "difficulty_select") or 0
-- Arcade control_guide panel drawn here, under the header, from the global/indicator bake.
-- Arcade control_guide panel drawn here, under the header, from the layered control_guide clip (GuidePanel).
-- The engine's own Indicator is parked off-screen; the arcade hides it during course select.
self._id_guide_panel = tex.get_texture("global/indicator/background")
self._guide_t0 = tex.get_current_ms()
self._id_guide_panel = GuidePanel.new()
-- box
self._id_bar_genre = tex.get_texture("song_select/box/bar_genre") -- song boards, 960x352, frame = genre
@@ -177,9 +174,7 @@ function SongSelect:draw_overlays(state)
if self._id_guide_panel then
local panel_fade = (state == STATE_SONG_SELECTED) and (1 - label_fade) or 1.0
if panel_fade > 0 then
local elapsed = tex.get_current_ms() - self._guide_t0
local frame = math.floor(elapsed / 1000 * 60 / GUIDE_STEP) % GUIDE_RIM_FRAMES
tex.draw_texture(self._id_guide_panel, { frame = frame, x = 0, y = 0, fade = panel_fade })
self._id_guide_panel:draw(GuidePanel.Loop.ALL, 0, 0, panel_fade)
end
end
if state == STATE_SONG_SELECTED then
+22 -5
View File
@@ -4254,8 +4254,23 @@ e5752fffafa26574efd27de119b4dce2beb4cee7a7e1f6bb2bdddb9d3fe79ad5 *./Graphics/gam
415f444c8d806c65667736efb2f94f918a8efb31263eea37cf70a9ee537bc266 *./Graphics/game/song_info/genre.png
c984aaf8218804c3d4a581f93b098e78de9be12f8b38f61d556dc7a6e434b5ec *./Graphics/game/song_info/song_num_plate.png
e790b39345c10aa6cb9f27dbdd39a83e26c140f02c2caa65d141b2182ada24ae *./Graphics/game/song_info/texture.json
ae2d316a2defe70edc1bbaee5cc2a0489f3bae943c1fb02c27a574ecaa5250e2 *./Graphics/global/indicator/background.png
edad5f554a498e4c057890be8fb60f038e5af6d208c4e654dabfc93ee38b283f *./Graphics/global/indicator/texture.json
8db9a90dc672f5ae085c783d9df6af9b09fbd82395c51eadcd74621ed71fc509 *./Graphics/global/indicator/guide_49.png
ab0e5cf49669abb253de78efd73407a38a287e126bbf7cd0fa82a45a83ab8167 *./Graphics/global/indicator/guide_51.png
9bcc83003c9b5705cafb1141e0da958c636b84b6379e5cc909ac7e39fa829bf5 *./Graphics/global/indicator/guide_53.png
d899e7a39728479990fb772263efa57aee66c23f3cccb12cd304e6e6c182be58 *./Graphics/global/indicator/guide_57.png
abb92471680006db2fb1a660378caf53b8be657b3f9d5fb428f2797db979f21a *./Graphics/global/indicator/guide_59.png
f0eaabb785051b49a44ba77833949a6d945d25d911c0c8467c61b002f4a9b994 *./Graphics/global/indicator/guide_61.png
3d27035038b2a1101b9de3152b4d8366ae1e87766a7a14d0dc922c2ee38c135a *./Graphics/global/indicator/guide_63.png
791726722b011943dea7539f190e49eb4d7dd48089938f709dbf94e153ea2897 *./Graphics/global/indicator/guide_65.png
f29ef3339f0a9d9f1990b9caae460f210b8109e4c3f927e086f9f6821160d94b *./Graphics/global/indicator/guide_68.png
88b0a8b3db3c8d7e83d36da8278e2330fe0fe5b85efd3da61f215e390719770a *./Graphics/global/indicator/guide_74.png
224307250b5a003d939d33fc70fd68be7bb52141bc985fcd605beaa0c9236b2a *./Graphics/global/indicator/guide_78.png
f54503ba81c09d479d37e48d56dbce8fce41de885fb1a335401d8b0508c0288f *./Graphics/global/indicator/guide_80.png
751f24524091ec895e883cbcfe458395d19f8c9e17529bb33a8cf4ead339c89d *./Graphics/global/indicator/guide_82.png
b1fc97b65b1e3f8ad1e950280501f4e7434ece7ae1c33669c8d5ff5f523b850d *./Graphics/global/indicator/guide_84.png
30498b42f2efd7c862c3980f60cff84af3d68b4874a4cc4a8d733ae64b0f1623 *./Graphics/global/indicator/guide_86.png
077b84dd4082b8be857a32296431105a21f98e20daad971d9002a58e375413c1 *./Graphics/global/indicator/guide_plate.png
10be15cc0fd50a8874d7aca2bcce46aa513c1d5843ec6b6e504ccc0063e06bbb *./Graphics/global/indicator/texture.json
253f9ae093636ff89f19ad9e150bf3d816b8dbded9ca8a67bf0d73e3dc66fab6 *./Graphics/global/nameplate/1p.png
7330f5a47fad44cc374f8543cce2287cdc44e1cd133af5ac4e9bfe060bca939e *./Graphics/global/nameplate/2p.png
949961301acd02d32999441e9ebd59da62942059697088f10b750a09f5a6f9a7 *./Graphics/global/nameplate/ai.png
@@ -4846,6 +4861,7 @@ a15cc3fdb14a86fce5b4e91938c83da223d8703f97cc9a8110e2b0adc0df1511 *./Scripts/anim
f335546541d1383f5fecb53f8182ce562bd8ee22b7c89aeb4a78e13dced1a13b *./Scripts/anim/gauge_rainbow.lua
9b4ad7a652e04c5c9df02524b056192e3c30efcf6d24fac8362bc89cf64e8e9e *./Scripts/anim/genre_open.lua
0d84547bc592be8f4228bc0440d10f00e6b27b71ffce82491368b0bd9ec05530 *./Scripts/anim/gogo_fire.lua
4bcbadd59cf5ec2746fed764aa45fc79643d492bbfa847d49a51d0c8d199dfca *./Scripts/anim/guide_layers.lua
55c480ddfd8f10e7c899791379897abbcb37f51c465e1238db9a91d2adfbfb0e *./Scripts/anim/kuro_result.lua
a8cda73b8f6ca62638b51e49a07f6dd0046a4bad37e3a8f709732e56887c8212 *./Scripts/anim/loading_song.lua
f558d5f5401c31846cbea7aab570156c94ac4252ffdc5f5611f2bff8f69ed5ee *./Scripts/anim/mode_board.lua
@@ -5041,7 +5057,7 @@ f204455c907d3e0e7affb89db3649a709a27d528d84cc58d51a7d8cfaa1d3deb *./Scripts/back
6544c461e406cc22deda684b65793dcf78f8c808b4b3f1556624da960321bae7 *./Scripts/dan_select/dan_select.lua
f4debb503c757b88627e9011fa835ffc41596523829b619bf56ef0b64f1c16ce *./Scripts/entry/box.lua
0a941cea73b6a81f2c92219be139a43f5902067ce468ffd189520395b4739c91 *./Scripts/entry/costume_menu.lua
83fc6c160c85a68a75d146f455cb4e18fc962c23a0020d28ac6943a1843db504 *./Scripts/entry/entry.lua
87e713b60e20c0b9877cb46418c937afa9d0abc6d659f1f2cb4885342ad2d8c1 *./Scripts/entry/entry.lua
28715aa09accbe226c477c18231d22a95d4500ca97da62a4b706d2287eeafd6c *./Scripts/entry/player.lua
8a993e86d3d6e653d47bc6d9bae67e0648ad27ae89293959c26de04869ef0219 *./Scripts/game/clip_player.lua
13f6d670d95b75abcbbddeddcb442ab32e6c32afeefc8ebf1b8bc703b57a9827 *./Scripts/game/combo_announce.lua
@@ -5058,9 +5074,10 @@ f4de8faceba1417bbdf0c408275f36b91022c93539178bd2d59018623bac759b *./Scripts/game
1a2b3f478eea7ea15a74d4142293d8731916a64f845dfbc9c4bf7d5469b38720 *./Scripts/game/gauge.lua
53ac15fdeee0ffc98670e128ff3cddc0ba66e0e8cbd91ab440628b0fd7d804ff *./Scripts/game_over/game_over.lua
6e4a0e75474a06dc9181e4c1c6de9a7cb9f5019e155d7275ce84b39712f36aeb *./Scripts/global/allnet_indicator.lua
f7981d11cca0297e1306554be085e5509d345593692817fb7507ebc9ac27423f *./Scripts/global/guide_panel.lua
a24e5eb9ac289325facb2fe023b16a343ef1ecf7e57cbb988bb81e2514665cf3 *./Scripts/global/coin_overlay.lua
b8828910262c4b19f53589abdcf1f77faa0eb2d326eb524c6b46399548c260ae *./Scripts/global/entry_overlay.lua
5c9562b2bf9a3502b8a2e9b61cec4a187e45819a19f5e882e7548fe14d223032 *./Scripts/global/indicator.lua
0f3b8f1b733c3851312d58dbe70ec6f2842923bf416b9f47859f4e2c9b9a8dec *./Scripts/global/indicator.lua
8c51e468799275c017323400b092b77408db34213465813abbbad1bb446e004b *./Scripts/global/nameplate.lua
34645d4c05dcb582ddaad6e3d2e1075c476471c81e0ce68e33f7b0bbfa3c0f2b *./Scripts/global/result_transition.lua
97bc832add42c186d57dec5bc774b9c42424051124c6e754b0a32bcf711fff21 *./Scripts/global/timer.lua
@@ -5083,7 +5100,7 @@ eeec060b381c4d06071870f40972ee1c91d2255a6a94fd1b42b3f072c112c5a4 *./Scripts/song
89f3549fb980f615fdd052a999e6e7e4ffa6274ee4dc316e0764f237174cf03f *./Scripts/song_select/file_navigator/box_song.lua
c9ca418c0c89afd3bc317218d380edb2042716865e6c99697323dd2aa5f7cbd4 *./Scripts/song_select/modifier.lua
f1f68bd39d99da00b564167c0ba7e69582d6f0075c477cd4f3b7c41c246670a9 *./Scripts/song_select/selector.lua
a100a3b76331c5a60eaa1773ef2d6bc1d4d88423fe159626ad2aaf60df78bcb1 *./Scripts/song_select/song_select.lua
0f92b324d0aae8c285b02c0264f1f0bd567d54e6f5fcb754e96544f7c52fc2cb *./Scripts/song_select/song_select.lua
a4b7febf5d36106c41d957bfdb1e4f0f565782fb57c28e699b29960508578bd9 *./Scripts/title/warning_screen.lua
89047ab5b642696922ca2c6e098ca288580a9c0bb3e197a08f17b821a31fc519 *./.skin-repo
40c378cdcaea2e2c9ec3da4c7fa72911d13a849a5b51e9645300f9571a7e12c8 *./Sounds/dan_result/achieve_tamashii.ogg