From 3023af8223bd7c40941f5881b25f82b9d167160b Mon Sep 17 00:00:00 2001 From: Major Cooke Date: Sat, 17 Dec 2016 12:46:40 -0600 Subject: [PATCH] - Added A_SetSize(double newradius, double newheight = -1). - Changes the calling actor's radius and height. --- src/p_actionfunctions.cpp | 16 ++++++++++++++++ wadsrc/static/zscript/actor.txt | 1 + 2 files changed, 17 insertions(+) diff --git a/src/p_actionfunctions.cpp b/src/p_actionfunctions.cpp index 6ddfd5281..8c222a4f6 100644 --- a/src/p_actionfunctions.cpp +++ b/src/p_actionfunctions.cpp @@ -6846,3 +6846,19 @@ DEFINE_ACTION_FUNCTION(AActor, A_CheckTerrain) } return 0; } + +DEFINE_ACTION_FUNCTION(AActor, A_SetSize) +{ + PARAM_SELF_PROLOGUE(AActor); + PARAM_FLOAT(newradius); + PARAM_FLOAT_DEF(newheight); + + if (newradius < 0.) newradius = self->radius; + if (newheight < 0.) newheight = self->Height; + + self->UnlinkFromWorld(); + self->radius = newradius; + self->Height = newheight; + self->LinkToWorld(); + return 0; +} diff --git a/wadsrc/static/zscript/actor.txt b/wadsrc/static/zscript/actor.txt index d804a434c..2a5d8c53d 100644 --- a/wadsrc/static/zscript/actor.txt +++ b/wadsrc/static/zscript/actor.txt @@ -793,6 +793,7 @@ class Actor : Thinker native native bool A_CopySpriteFrame(int from, int to, int flags = 0); native bool A_SetVisibleRotation(double anglestart = 0, double angleend = 0, double pitchstart = 0, double pitchend = 0, int flags = 0, int ptr = AAPTR_DEFAULT); native void A_SetTranslation(name transname); + native void A_SetSize(double newradius, double newheight = -1); native void A_RearrangePointers(int newtarget, int newmaster = AAPTR_DEFAULT, int newtracer = AAPTR_DEFAULT, int flags=0); native void A_TransferPointer(int ptr_source, int ptr_recepient, int sourcefield, int recepientfield=AAPTR_DEFAULT, int flags=0);