Animation string

From WTFwiki
Revision as of 14:10, 21 November 2009 by Andrew (talk | contribs) (Add some notes from cbm on the bp* tags)
Jump to navigation Jump to search

Basic format

Animation strings are of the form:

<frame descriptor 1>-<frame descriptor 2>-...-<frame descriptor n>

Frame descriptors are a sequence of lowercase tags followed by an uppercase frame letter and an integer frame duration:

zzA1

For instance:

x-5A3-x-3B2-x-2C1-x-1D1

divides up as:

Tags Frame Duration
x-5 A 3
x-3 B 2
x-2 C 1
x-1 D 1

Tags

There are a lot of available tags. Not all of them are understood. Some of them take numeric parameters, which are indicated in angle brackets below. Such parameters must match the regular expression:

 -?+\?[0-9]*

An omitted parameter is treated as 0.

Here's a complete list of all tags up to t. There are some other tags previously known at the end as well. Descriptions in italics may be unreliable.

Tag Notes
aa
ab
ac
ad
ae
af
ag
ai
am
ao
as
at
aw
ax
ar
al
b1
b2
ba<n>
bb<n> Screen shake with magnitude n
bc<n>
bd
be
bf<n> Blend finish with opacity n < 256
bg
bh
bi<n>
bj<n>
bk<n> crashes if not in arena?
bl<n>
bm<n>
bn
bo<n>
bpb<n> store n in a global I think the bp* tags relate to drawing lightning flashes
bpd<n> store n in a global
bpf if (some global flag) then bps48bpn48 else bps1bpf47
bpn<n> store n in a local value
bpo
bpp<n> bpp<n> sets the same value as bpb<n> but also sets another global
bps<n> store n in a local value
br Draw additively
bs<n> Blend start with opacity n < 256 (the sprite is drawn at this opacity at the start of the frame and gradually transitioned to whatever is set as the blend finish value)
bt
bu
bw
bx
by
bz
cf
cg
cl
cp Apply the damage for the current animation to opponent
cw
cx<n>
cy<n>
d<n> d1 is the animation string for the third to last frame in all the scrap metal damage bits that fall off of a HAR
e
f toggle flag Flip sprite verticially
g
h
i
jf2
jf
jg
jh
jj
jl
jm
jn<n>
jp
jz combination of all other j flags except jn
k<n>
l<n>
ma<n> if n == 1000 then n := random(360)
mc
md<n> Destroy animation n
mg<n>
mi<n>
mm<n> mm := n
mn<n>
mo something involving HARs, applied to object mm
mp<n>
mrx<n> mx := random(320 - 2*mm) + n
mry<n> my := random(200 - 2*mm) + n
ms my := -4 * (f1C - 188)
mu<n> similar to mo, n < 1024, applied to object mm
mx<n> mx := n
my<n> my := n
m<n> Create instance of animation n
n
ox<n> ox := n
oy<n> oy := n
p[...] all p tags have special cleanup code
pa
pb<n> n < 512
pc<n> n < 512
pd<n> n < 256
pe make pa, pb, pc, pd operate on the other HAR
ph disable pa, pb, pc, pd
pp<n>
ps update a color palette
ptd<n>
ptp<n>
ptr<n>
q
r toggle a global Flip sprite horizontally
s<n> Play sound n
sa
sb<n> same as se<n> plus setting one other value to n
sc<n> sc0 is different from other sc tags
sd
se<n> similar to sl<n+1> (the latter also clears the high byte of the value)
sf<n> Sound frequency n
sl<n> Sound loudness n
smf<n>
smo<n>
sp<n> Sound panning n?
sw<n> sw<n> sets an internal counter to max(current value, n). This counter is decreased at a rate of either 2 or 4 units per game tick, down to 0. If the counter gets to 100 or above, the game pauses for a little while.
t
sp<n>
ub motion blur
zz Player is invincible for this frame