Brues a0082b9f35 Fit wide emotes to their own aspect
A source wider than it is tall was squeezed into a square 32x32 cell, so it
rendered as a letterboxed sliver in a 28x28 box. The frame cell now follows
the source - 32 tall, as wide as its aspect wants - and the payload carries
a matching display size. Cinema (298x112) goes from a 32x12 strip with
transparent bands to an 85x32 cell filling a 28x74 box.

Notes on the payload: it reads HEIGHT first then width, per ParseIcon in
ClassicAPI's InlineTexture.cpp. A square still frame keeps its bare :28:28
with no crop; anything else needs one to pick its cell out of the texture.
Non-square cells stay single-column, since the animator derives its column
count as imageWidth / frameWidth, which only holds when the cell tiles the
texture width exactly. layout() also checks the 16:1 limit both ways now - a
very wide sheet can bust it as easily as a tall one.

--file decouples the texture basename from the trigger word, so a :token:
emote is possible at all: ':Cinema:.tga' is not a legal filename.
2026-09-04 02:44:33 -05:00
2026-09-04 02:27:12 -05:00
2026-08-31 20:32:24 -05:00
2026-09-04 02:44:33 -05:00
2026-08-31 20:32:24 -05:00
2026-09-04 02:27:12 -05:00
2026-09-04 02:27:12 -05:00
S
Description
No description provided
25 MiB
v6
Latest
2026-09-14 19:21:34 +00:00
Languages
Lua 98.6%
Python 1.4%