You probably can't. GZDoom source code doesn't have a decorate property exposed from the source. But A_SpriteOffset IS available. So you can call this in your frames.
The problem is that it is difficult to run this action before State frame #1 renders. But it is really easy to run this action in one of the provided virtual functions that happen before the first frame ever renders.
In this case, I'm reusing an actor sprite from Hexen that I don't want to copy and manually redo all of the offsets. The actual change happens in PostBeginPlay(). I'm using a pretty extreme 50, but you could work this however you want.
Code: Select all
class MageWandSunMissile : Actor
{
Default
{
Speed 10;
Radius 12;
Height 8;
Damage 10;
Projectile;
+CANNOTPUSH +NODAMAGETHRUST
+SPAWNSOUNDSOURCE
Obituary "$OB_MPMWEAPWAND";
Scale 2.0;
DamageType "Fire";
SeeSound "TreeExplode";
}
States
{
Spawn:
FDMB B 4 Bright Light("YellowSunSmall");
Loop;
Death:
FDMB B 6 Bright Light("YellowSunBig") A_SunExplode;
FDMB C 3 Bright Light("YellowSunBigFade1");
FDMB C 3 Bright Light("YellowSunBigFade2");
FDMB D 3 Bright Light("YellowSunBigFade3");
FDMB D 3 Bright Light("YellowSunBigFade4");
FDMB E 3 Bright Light("YellowSunBigFade5");
Stop;
}
override void PostBeginPlay()
{
A_SpriteOffset(0, 50);
}
action void A_SunExplode()
{
A_Explode(65, 150);
A_StartSound("Fireball", CHAN_BODY);
}
}