From fe005b915926358e496f551999f44fbffc440f21 Mon Sep 17 00:00:00 2001 From: Rachael Alexanderson Date: Tue, 2 Jan 2024 13:08:17 -0500 Subject: [PATCH] - add two parameters to GetSpriteTexture: spritenum and framenum, since some states are "####" "#" --- src/p_states.cpp | 9 +++++++-- wadsrc/static/zscript/doombase.zs | 2 +- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/p_states.cpp b/src/p_states.cpp index 46a7d0e54..49c3fe71f 100644 --- a/src/p_states.cpp +++ b/src/p_states.cpp @@ -67,15 +67,20 @@ DEFINE_ACTION_FUNCTION(FState, GetSpriteTexture) PARAM_INT(skin); PARAM_FLOAT(scalex); PARAM_FLOAT(scaley); + PARAM_INT(spritenum); + PARAM_INT(framenum); + + int sprnum = (spritenum == -1) ? self->sprite : spritenum; + int frnum = (framenum == -1) ? self->GetFrame() : framenum; spriteframe_t *sprframe; if (skin == 0) { - sprframe = &SpriteFrames[sprites[self->sprite].spriteframes + self->GetFrame()]; + sprframe = &SpriteFrames[sprites[sprnum].spriteframes + frnum]; } else { - sprframe = &SpriteFrames[sprites[Skins[skin].sprite].spriteframes + self->GetFrame()]; + sprframe = &SpriteFrames[sprites[Skins[skin].sprite].spriteframes + frnum]; scalex = Skins[skin].Scale.X; scaley = Skins[skin].Scale.Y; } diff --git a/wadsrc/static/zscript/doombase.zs b/wadsrc/static/zscript/doombase.zs index b3f4610d5..141b2b0c2 100644 --- a/wadsrc/static/zscript/doombase.zs +++ b/wadsrc/static/zscript/doombase.zs @@ -581,7 +581,7 @@ struct State native native int DistanceTo(state other); native bool ValidateSpriteFrame(); - native TextureID, bool, Vector2 GetSpriteTexture(int rotation, int skin = 0, Vector2 scale = (0,0)); + native TextureID, bool, Vector2 GetSpriteTexture(int rotation, int skin = 0, Vector2 scale = (0,0), int spritenum = -1, int framenum = -1); native bool InStateSequence(State base); }