- Added DavidPH's AProp_ScaleX/Y / A_SetScale submission.

SVN r3000 (trunk)
This commit is contained in:
Christoph Oelckers 2010-11-08 00:01:21 +00:00
parent 2f06007ad4
commit 1f43f4e961
5 changed files with 41 additions and 3 deletions

View file

@ -312,6 +312,7 @@ static void ReadArrayVars (PNGHandle *png, FWorldGlobalArray *vars, size_t count
{
SDWORD key, val;
key = arc.ReadCount();
val = arc.ReadCount();
vars[i].Insert (key, val);
}
@ -2537,8 +2538,10 @@ enum
APROP_MasterTID = 25,
APROP_TargetTID = 26,
APROP_TracerTID = 27,
APROP_WaterLevel = 28
};
APROP_WaterLevel = 28,
APROP_ScaleX = 29,
APROP_ScaleY = 30,
};
// These are needed for ACS's APROP_RenderStyle
static const int LegacyRenderStyleIndices[] =
@ -2718,6 +2721,14 @@ void DLevelScript::DoSetActorProperty (AActor *actor, int property, int value)
DoSetMaster (actor, other);
break;
case APROP_ScaleX:
actor->scaleX = value;
break;
case APROP_ScaleY:
actor->scaleY = value;
break;
default:
// do nothing.
break;
@ -2780,6 +2791,9 @@ int DLevelScript::GetActorProperty (int tid, int property)
case APROP_TargetTID: return (actor->target != NULL)? actor->target->tid : 0;
case APROP_TracerTID: return (actor->tracer != NULL)? actor->tracer->tid : 0;
case APROP_WaterLevel: return actor->waterlevel;
case APROP_ScaleX: return actor->scaleX;
case APROP_ScaleY: return actor->scaleY;
default: return 0;
}
}

View file

@ -2020,6 +2020,23 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_FadeTo)
}
}
//===========================================================================
//
// A_Scale(float scalex, optional float scaley)
//
// Scales the actor's graphics. If scaley is 0, use scalex.
//
//===========================================================================
DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_SetScale)
{
ACTION_PARAM_START(2);
ACTION_PARAM_FIXED(scalex, 0);
ACTION_PARAM_FIXED(scaley, 1);
self->scaleX = scalex;
self->scaleY = scaley ? scaley : scalex;
}
//===========================================================================
//
// A_SpawnDebris
@ -2632,6 +2649,7 @@ DEFINE_ACTION_FUNCTION_PARAMS(AActor, A_JumpIfTargetInLOS)
if (an > (fov / 2) && an < (ANGLE_MAX - (fov / 2)))
{
return; // [KS] Outside of FOV - return
}

View file

@ -77,6 +77,8 @@ DEFINE_MEMBER_VARIABLE(velz, AActor)
DEFINE_MEMBER_VARIABLE_ALIAS(momx, velx, AActor)
DEFINE_MEMBER_VARIABLE_ALIAS(momy, vely, AActor)
DEFINE_MEMBER_VARIABLE_ALIAS(momz, velz, AActor)
DEFINE_MEMBER_VARIABLE(scaleX, AActor)
DEFINE_MEMBER_VARIABLE(scaleY, AActor)
DEFINE_MEMBER_VARIABLE(Damage, AActor)
DEFINE_MEMBER_VARIABLE(Score, AActor)
@ -675,6 +677,7 @@ FxExpression *FxUnaryNotBoolean::Resolve(FCompileContext& ctx)
{
CHECKRESOLVED();
if (Operand)
{
Operand = Operand->ResolveAsBoolean(ctx);
}

View file

@ -80,7 +80,7 @@
#if SVN_REVISION_NUMBER < MINSAVEVER
// If we don't know the current revision write something very high to ensure that
// the reesulting executable can read its own savegames but no regular engine can.
#define SAVEVER 9999
#define SAVEVER 999999
#define SAVESIG MakeSaveSig()
static inline const char *MakeSaveSig()
{

View file

@ -47,6 +47,8 @@ ACTOR Actor native //: Thinker
native fixed_t momx; // alias for velx
native fixed_t momy; // alias for vely
native fixed_t momz; // alias for velz
native fixed_t scaleX;
native fixed_t scaleY;
native int score;
// Meh, MBF redundant functions. Only for DeHackEd support.
@ -204,6 +206,7 @@ ACTOR Actor native //: Thinker
action native A_FadeIn(float reduce = 0.1);
action native A_FadeOut(float reduce = 0.1, bool remove = true);
action native A_FadeTo(float target, float amount = 0.1, bool remove = false);
action native A_SetScale(float scalex, float scaley = 0);
action native A_SpawnDebris(class<Actor> spawntype, bool transfer_translation = false, float mult_h = 1, float mult_v = 1);
action native A_CheckSight(state label);
action native A_ExtChase(bool usemelee, bool usemissile, bool playactive = true, bool nightmarefast = false);