Mercurial > touhou
view data/ST/make_ecl.py @ 222:5cac48b328ad
Refactor rendering code a bit.
Move duplicated camera setup code to a new “setup_camera” method,
and move common methods to a new “Renderer” module in order to make
individual sprite rendering easier.
author | Thibaut Girka <thib@sitedethib.com> |
---|---|
date | Sun, 18 Dec 2011 20:47:48 +0100 |
parents | 1bc0ad774ed4 |
children |
line wrap: on
line source
from pytouhou.formats.ecl import ECL from math import pi # Frame, sub, opcode, args main = [(120, 0, 0, (-30.0, 80.0, 0.0, 160, 0, 0, 0)), (140, 0, 0, (-30.0, 130.0, 0.0, 160, 0, 0, 0)), (160, 0, 2, (192*2+30.0, 80.0, 0.0, 160, 0, 0, 0)), (180, 0, 2, (192*2+30.0, 130.0, 0.0, 160, 0, 0, 0)), (220, 0, 0, (-30.0, 80.0, 0.0, 16, 0, 0, 0)), (220, 0, 0, (-30.0, 130.0, 0.0, 16, 0, 0, 0)), (260, 0, 2, (192*2+30.0, 80.0, 0.0, 16, 0, 0, 0)), (260, 0, 2, (192*2+30.0, 130.0, 0.0, 16, 0, 0, 0)), (560, 2, 0, (0, -10, 0.0, 120, 0, 0, 0)), (780, 2, 0, (0, -10, 0.0, 120, 0, 0, 0)), (900, 2, 0, (0, -10, 0.0, 120, 0, 0, 0)), (1500, 3, 0, (192, -10, 0.0, 2000, 0, 0, 0)), (2100, 4, 0, (-30.0, 80.0, 0.0, 6500, 0, 0, 0))] subs = [ # Frame, opcode, rank_mask, param_mask, args [(0, 97, 0xff00, 256, (0,)), (0, 108, 0xff00, 256, (1,)), (0, 107, 0xff00, 256, (1,)), (0, 45, 0xff00, 256, (-0.3, 0.8)), (0, 48, 0xff00, 256, (0.01,)), (0, 46, 0xff00, 256, (0.001,)), (0, 5, 0xff00, 256, (-10005, pi-0.3)), (0, 68, 0xff00, 256, (2, 6, 1, 1, 2.0, 0.0, -10005.0, 0.0, 1)), (2, 21, 0xff00, 256, (-10005, -10005, 0.2)), (2, 2, 0xff00, 256, (0, 7))], [(0, 75, 0xff00, 256, (1, 2, 10, 10, 2.0, 4.0, -pi, pi, 0)), (5, 1, 0xff00, 256, (0,))], [(0, 97, 0xff00, 256, (3,)), (0, 4, 0xff00, 256, (-10001, 15)), (0, 57, 0xff00, 256, (60, 192.0, 80.0, 0.0)), (0, 78, 0xff00, 256, ()), (0, 67, 0xff00, 256, (2, 6, 1, 4, 2.0, 4.0, 0.0, 0.0, 1)), (0, 79, 0xff00, 256, ()), (0, 77, 0xff00, 256, (20,)), (60, 65, 0xff00, 256, (20, 20, 192*2-20, 120)), (60, 47, 0xff00, 256, (8.0,)), (60, 50, 0xff00, 256, (-pi, pi)), (80, 3, 0xff00, 256, (60, 9, -10001)), (80, 66, 0xff00, 256, ()), (80, 76, 0xff00, 256, (0,)), (80, 51, 0xff00, 256, (0, 8.0))], [(0, 97, 0xff00, 256, (0,)), (0, 57, 0xff00, 256, (60, 192.0, 80.0, 0.0)), (60, 82, 0xff00, 256, (40, 15, -1, -1, 0.0, 6.0, -1, -1)), (60, 75, 0xff00, 256, (1, 3, 20, 1, 3.0, 6.0, -pi, pi, 1| 128)), (60, 76, 0xff00, 256, (110,))], [(0, 97, 0xff00, 256, (0,)), (0, 105, 0xff00, 256, (0,)), # Set damageable: False (0, 126, 0xff00, 256, (0,)), # One life # Set callback (0, 113, 0xff00, 256, (1000,)), (0, 114, 0xff00, 256, (5,)), (0, 111, 0xff00, 256, (6000,)), (0, 101, 0xff00, 256, (0,)), (0, 57, 0xff00, 256, (60, 192.0, 80.0, 0.0)), (60, 102, 0xff00, 256, (10, -0.3, 0.7, 0.3, 48.0)), # Nice little effect (80, 105, 0xff00, 256, (1,)), # Set damageable: True (80, 119, 0xff00, 256, (10,)), # Drop bonus :) (80, 82, 0xff00, 256, (800, 1, -1, -1, 0.02, 0.02, 0.0, 0.0)), (80, 70, 0xff00, 256, (2, 2, 30, 4, 0.1, 4.1, 0.0, 0.0, 1|32)), (80, 82, 0xff00, 256, (800, 1, -1, -1, 0.02, -0.02, 0.0, 0.0)), (80, 70, 0xff00, 256, (2, 6, 30, 4, 0.6, 4.6, 0.0, 0.0, 1|32)), (120, 67, 0xff00, 256, (2, 4, 3, 30, 1.0, 5.0, 0.0, 4.0, 0)), (200, 2, 0xff00, 256, (80, 11)) ], [(0, 93, 0xff00, 256, (2, 0, "THE END ~")), (20, 81, 0xff00, 256, (-100.0-20, 50.0, 0.0)), (20, 85, 0xff00, 256, (0, 6, 0.0, 0, 0.0, 60.0, 60.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 85, 0xff00, 256, (0, 6, pi / 2., 0, 0.0, 40.0, 40.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 81, 0xff00, 256, (-100.0-20, 100.0, 0.0)), (20, 85, 0xff00, 256, (0, 6, 0.0, 0, 0.0, 60.0, 60.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 85, 0xff00, 256, (0, 6, pi / 2., 0, 0.0, 40.0, 40.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 81, 0xff00, 256, (-100.0-20, 150.0, 0.0)), (20, 85, 0xff00, 256, (0, 6, 0.0, 0, 0.0, 60.0, 60.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 81, 0xff00, 256, (0.0-20, 20+50.0, 0.0)), (20, 85, 0xff00, 256, (0, 6, pi / 2., 0, 0.0, 80.0, 80.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 85, 0xff00, 256, (0, 6, pi / 4., 0, 0.0, 100.0, 100.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 81, 0xff00, 256, (80.0-20, 20+80+50.0, 0.0)), (20, 85, 0xff00, 256, (0, 6, -pi / 2., 0, 0.0, 80.0, 80.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 81, 0xff00, 256, (120.0-20, 20+50.0, 0.0)), (20, 85, 0xff00, 256, (0, 6, pi / 2., 0, 0.0, 80.0, 80.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 85, 0xff00, 256, (0, 6, pi / 4., 0, 0.0, 60.0, 60.0, 16.0, 90, 120, 16, 70, 14, 0)), (20, 81, 0xff00, 256, (120.0-20, 20+50.0+80.0, 0.0)), (20, 85, 0xff00, 256, (0, 6, -pi / 4., 0, 0.0, 60.0, 60.0, 16.0, 90, 120, 16, 70, 14, 0)), (40, 81, 0xff00, 256, (0, 0, 0)), (40, 75, 0xff00, 256, (9, 1, 8, 1, 0.5, 3.0, -pi, pi, 0)), (40, 76, 0xff00, 256, (40,)), (120, 4, 0xff00, 256, (-10001, 314)), (120, 87, 0xff00, 256, (1,)), (120, 85, 0xff00, 256, (0, 2, 0.0, 0, 0.0, 500.0, 500.0, 32.0, 90, 400, 16, 70, 14, 0)), (122, 88, 0xff00, 256, (1, 0.01)), (123, 3, 0xff00, 256, (122, 25, -10001)), (200, 94, 0xff00, 256, ()), ] ] ecl = ECL() ecl.subs = subs ecl.main = main with open('ecldata1.ecl', 'wb') as file: ecl.write(file)