touhou-reimpl/research/stgenm04.tanm

549 lines
10 KiB
Plaintext

#pragma mapfile "utils/v4.anmm"
entry {
path: "stgenm/stg4enm.png",
img_width: 256,
img_height: 256,
img_format: FORMAT_ARGB_4444,
sprites: {
sprite0: {x: 0.0, y: 0.0, w: 48.0, h: 64.0},
sprite1: {x: 48.0, y: 0.0, w: 48.0, h: 64.0},
sprite2: {x: 96.0, y: 0.0, w: 48.0, h: 64.0},
sprite3: {x: 144.0, y: 0.0, w: 48.0, h: 64.0},
sprite4: {x: 0.0, y: 64.0, w: 48.0, h: 64.0},
sprite5: {x: 48.0, y: 64.0, w: 48.0, h: 64.0},
sprite6: {x: 96.0, y: 64.0, w: 48.0, h: 64.0},
sprite7: {x: 144.0, y: 64.0, w: 48.0, h: 64.0},
sprite8: {x: 0.0, y: 128.0, w: 48.0, h: 64.0},
sprite9: {x: 48.0, y: 128.0, w: 48.0, h: 64.0},
sprite10: {x: 96.0, y: 128.0, w: 48.0, h: 64.0},
sprite11: {x: 144.0, y: 128.0, w: 48.0, h: 64.0},
},
}
script 0 script0 {
loop {
sprite(sprite0);
+8: // 8
sprite(sprite1);
+8: // 16
sprite(sprite2);
+8: // 24
sprite(sprite3);
+8: // 32
sprite(sprite4);
+8: // 40
sprite(sprite5);
+8: // 48
sprite(sprite6);
+8: // 56
sprite(sprite7);
+8: // 64
}
}
script 1 script1 {
flipX();
sprite(sprite8);
+8: // 8
sprite(sprite9);
loop {
+8: // 16
sprite(sprite10);
+8: // 24
sprite(sprite11);
}
stop();
}
script 2 script2 {
sprite(sprite8);
+8: // 8
sprite(sprite9);
loop {
+8: // 16
sprite(sprite10);
+8: // 24
sprite(sprite11);
}
stop();
}
script 3 script3 {
flipX();
sprite(sprite10);
+8: // 8
sprite(sprite9);
+8: // 16
sprite(sprite8);
loop {
sprite(sprite0);
+8: // 24
sprite(sprite1);
+8: // 32
sprite(sprite2);
+8: // 40
sprite(sprite3);
+8: // 48
sprite(sprite4);
+8: // 56
sprite(sprite5);
+8: // 64
sprite(sprite6);
+8: // 72
sprite(sprite7);
+8: // 80
}
}
script 4 script4 {
sprite(sprite10);
+8: // 8
sprite(sprite9);
+8: // 16
sprite(sprite8);
loop {
sprite(sprite0);
+8: // 24
sprite(sprite1);
+8: // 32
sprite(sprite2);
+8: // 40
sprite(sprite3);
+8: // 48
sprite(sprite4);
+8: // 56
sprite(sprite5);
+8: // 64
sprite(sprite6);
+8: // 72
sprite(sprite7);
+8: // 80
}
}
script 5 script5 {
flipX();
sprite(sprite0);
+6: // 6
sprite(sprite1);
+6: // 12
sprite(sprite0);
+6: // 18
sprite(sprite1);
loop {
+40: // 58
}
}
script 6 script6 {
sprite(sprite1);
blendMode(1);
scaleTime(20, 1, 0.0, 6.0);
+30: // 30
scale(6.0, 0.0);
scaleTime(20, 1, 1.0, 1.0);
+20: // 50
blendMode(0);
stop();
}
entry {
path: "stgenm/stg4enm2.png",
img_width: 256,
img_height: 256,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {
sprite12: {x: 0.0, y: 0.0, w: 48.0, h: 48.0},
sprite13: {x: 48.0, y: 0.0, w: 48.0, h: 48.0},
sprite14: {x: 0.0, y: 48.0, w: 48.0, h: 48.0},
sprite15: {x: 48.0, y: 48.0, w: 48.0, h: 48.0},
sprite16: {x: 96.0, y: 48.0, w: 48.0, h: 48.0},
sprite17: {x: 144.0, y: 48.0, w: 48.0, h: 48.0},
},
}
script 7 script7 {
loop {
sprite(sprite12);
+3: // 3
sprite(sprite13);
+3: // 6
}
}
script 8 script8 {
flipX();
sprite(sprite14);
+6: // 6
sprite(sprite15);
+6: // 12
sprite(sprite16);
stop();
}
script 9 script9 {
sprite(sprite14);
+6: // 6
sprite(sprite15);
+6: // 12
sprite(sprite16);
stop();
}
script 10 script10 {
flipX();
sprite(sprite17);
+6: // 6
sprite(sprite14);
+16: // 22
nop();
loop {
sprite(sprite12);
+3: // 25
sprite(sprite13);
+3: // 28
}
}
script 11 script11 {
sprite(sprite17);
+6: // 6
sprite(sprite14);
+16: // 22
nop();
loop {
sprite(sprite12);
+3: // 25
sprite(sprite13);
+3: // 28
}
}
entry {
path: "face/enemy4/face04no.png",
img_width: 256,
img_height: 128,
memory_priority: 0,
sprites: {sprite18: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/dummy.png",
img_width: 8,
img_height: 8,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite19: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/dummy.png",
img_width: 8,
img_height: 8,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite20: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/dummy.png",
img_width: 8,
img_height: 8,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite21: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/dummy.png",
img_width: 8,
img_height: 8,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite22: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/enemy4/face04dp.png",
img_width: 256,
img_height: 128,
memory_priority: 0,
sprites: {sprite23: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/enemy4/face04pr.png",
img_width: 256,
img_height: 128,
memory_priority: 0,
sprites: {sprite24: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/dummy.png",
img_width: 8,
img_height: 8,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite25: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/enemy4/face04lo.png",
img_width: 256,
img_height: 128,
memory_priority: 0,
sprites: {sprite26: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/enemy4/face04no.png",
img_width: 256,
img_height: 128,
offset_y: 128,
memory_priority: 0,
sprites: {
sprite27: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
sprite28: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
sprite29: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
sprite30: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
sprite31: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
sprite32: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
sprite33: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
sprite34: {x: 0.0, y: 0.0, w: 256.0, h: 128.0},
},
}
entry {
path: "face/enemy4/face04lo.png",
img_width: 256,
img_height: 128,
offset_y: 128,
memory_priority: 0,
sprites: {sprite35: {x: 0.0, y: 0.0, w: 256.0, h: 128.0}},
}
entry {
path: "face/enemy4/face04no.png",
img_width: 256,
img_height: 64,
offset_y: 256,
memory_priority: 0,
sprites: {
sprite36: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite37: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite38: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite39: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite40: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite41: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite42: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite43: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
sprite44: {x: 0.0, y: 0.0, w: 256.0, h: 64.0},
},
}
entry {
path: "card/cdbg04a.png",
img_width: 512,
img_height: 512,
img_format: FORMAT_RGB_565,
memory_priority: 0,
sprites: {sprite45: {x: 0.0, y: 0.0, w: 384.0, h: 448.0}},
}
script 12 script12 {
sprite(sprite45);
pos(224.0, 240.0, 0.0);
type(1);
alpha(0);
alphaTime(60, 0, 255);
scrollX(0.0016666667);
loop {
colorTime(60, 9, 255, 128, 128);
+60: // 60
colorTime(60, 9, 128, 128, 255);
+60: // 120
}
stop();
}
entry {
path: "card/cdbg04b.png",
img_width: 256,
img_height: 256,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite46: {x: 0.0, y: 0.0, w: 256.0, h: 256.0}},
}
script 13 script13 {
sprite(sprite46);
type(1);
pos(224.0, 240.0, 0.0);
alpha(0);
alphaTime(60, 0, 192);
angleVel(0.0, 0.0, 0.006544985);
stop();
}
entry {
path: "face/enemy4/ename04.png",
img_width: 128,
img_height: 64,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite47: {x: 0.0, y: 0.0, w: 128.0, h: 64.0}},
}
script 14 script14 {
ins_85(1);
randMode(1);
anchor(0, 2);
pos(288.0, 374.0, 0.0);
layer(16);
sprite(sprite47);
alpha(0);
alphaTime(30, 0, 255);
+300: // 300
nop();
interrupt[1]:
alphaTime(20, 0, 0);
+20: // 320
delete();
}
entry {
path: "face/enemy4/face04ct.png",
img_width: 256,
img_height: 512,
img_format: FORMAT_ARGB_4444,
memory_priority: 0,
sprites: {sprite48: {x: 0.0, y: 0.0, w: 256.0, h: 512.0}},
}
script 15 script15 {
sprite(sprite48);
layer(5);
anchor(0, 1);
type(2);
pos(608.0, -160.0, 0.0);
color(0, 0, 0);
colorTime(30, 0, 255, 255, 255);
posTime(30, 0, 224.0, -16.0, 0.0);
+30: // 30
posTime(90, 0, 192.0, 0.0, 0.0);
+90: // 120
posTime(30, 0, -192.0, 160.0, 0.0);
colorTime(30, 0, 0, 0, 0);
+30: // 150
delete();
}
entry {
path: "stgenm/stg4enm3.png",
img_width: 128,
img_height: 128,
memory_priority: 0,
sprites: {sprite49: {x: 0.0, y: 0.0, w: 128.0, h: 128.0}},
}
script 16 script16 {
sprite(sprite49);
type(1);
blendMode(1);
alpha(0);
alphaTime(20, 0, 192);
rotate(0.0, 0.0, RANDRAD);
scale(1.0, 1.0);
scaleTime(60, 0, 0.0, 0.0);
F1 = RANDF2 * 8.0;
F2 = RANDF2 * 8.0;
pos(F1, F2, 0.0);
posTime(60, 0, 0.0, 0.0, 0.0);
+40: // 40
alphaTime(20, 0, 0);
+60: // 100
delete();
}
script 17 script17 {
alpha(0);
+1: // 1
alpha(0);
loop {
scriptNewRoot(script16);
+4: // 5
}
}
script 18 script18 {
isetRand(I0, 4);
sprite(sprite49);
type(1);
rotate(0.0, 0.0, RANDRAD);
alpha(0);
alphaTime(10, 0, 128);
F0 = RANDF * 1.0;
F0 += 1.0;
scale(F0, F0);
scaleTime(20, 4, 0.3, 0.3);
F1 = RANDF2 * 128.0;
F2 = RANDF2 * 128.0;
pos(F1, F2, 0.0);
posTime(60, 0, 0.0, 0.0, 0.0);
blendMode(1);
+60: // 60
delete();
}
script 19 script19 {
alpha(0);
+1: // 1
I4 = 60;
do {
scriptNewRoot(script18);
+1: // 2
} while (--I4);
}