mirror of
https://github.com/ZDoom/Raze.git
synced 2025-02-20 10:32:27 +00:00
- call ScaleSectorObject directly.
It's the only PreMoveAnimator so a bool can be used as easily as the full pointer.
This commit is contained in:
parent
20b39c6a0d
commit
5e64d6c7aa
5 changed files with 11 additions and 15 deletions
|
@ -1211,7 +1211,7 @@ extern TRACK Track[MAX_TRACKS];
|
|||
|
||||
struct SECTOR_OBJECT
|
||||
{
|
||||
soANIMATORp PreMoveAnimator;
|
||||
bool PreMoveScale;
|
||||
soANIMATORp PostMoveAnimator;
|
||||
soANIMATORp Animator;
|
||||
TObjPtr<DSWActor*> controller;
|
||||
|
|
|
@ -37,8 +37,6 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms
|
|||
|
||||
BEGIN_SW_NS
|
||||
|
||||
void ScaleSectorObject(SECTOR_OBJECT*);
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
//
|
||||
|
@ -57,7 +55,7 @@ short DoSectorObjectSetScale(short match)
|
|||
if (sop->match_event == match)
|
||||
{
|
||||
sop->flags |= (SOBJ_DYNAMIC);
|
||||
sop->PreMoveAnimator = ScaleSectorObject;
|
||||
sop->PreMoveScale = true;
|
||||
|
||||
switch (sop->scale_active_type)
|
||||
{
|
||||
|
@ -539,10 +537,8 @@ void SpikeFloor(SECTOR_OBJECT* sop)
|
|||
|
||||
static saveable_code saveable_morph_code[] =
|
||||
{
|
||||
SAVE_CODE(ScaleSectorObject),
|
||||
SAVE_CODE(MorphTornado),
|
||||
SAVE_CODE(MorphFloor),
|
||||
SAVE_CODE(SpikeFloor),
|
||||
};
|
||||
|
||||
saveable_module saveable_morph =
|
||||
|
|
|
@ -691,9 +691,10 @@ FSerializer& Serialize(FSerializer& arc, const char* keyname, SECTOR_OBJECT& w,
|
|||
("morph_z_speed", w.morph_z_speed, def->morph_z_speed)
|
||||
("morph_off", w.morph_off, def->morph_off)
|
||||
("limit_ang_center", w.limit_ang_center, def->limit_ang_center)
|
||||
("limit_ang_delta", w.limit_ang_delta, def->limit_ang_delta);
|
||||
("limit_ang_delta", w.limit_ang_delta, def->limit_ang_delta)
|
||||
("premovescale", w.PreMoveScale, def->PreMoveScale);
|
||||
|
||||
|
||||
SerializeCodePtr(arc, "preanimator", (void**)&w.PreMoveAnimator);
|
||||
SerializeCodePtr(arc, "postanimator", (void**)&w.PostMoveAnimator);
|
||||
SerializeCodePtr(arc, "animator", (void**)&w.Animator);
|
||||
|
||||
|
|
|
@ -391,7 +391,7 @@ void SectorSetup(void)
|
|||
memset(&SectorObject[ndx].sectp, 0, sizeof(SectorObject[0].sectp));
|
||||
memset(&SectorObject[ndx].so_actors, 0, sizeof(SectorObject[0].so_actors));
|
||||
SectorObject[ndx].match_event_actor = nullptr;
|
||||
SectorObject[ndx].PreMoveAnimator = nullptr;
|
||||
SectorObject[ndx].PreMoveScale = false;
|
||||
SectorObject[ndx].PostMoveAnimator = nullptr;
|
||||
SectorObject[ndx].Animator = nullptr;
|
||||
SectorObject[ndx].controller = nullptr;
|
||||
|
|
|
@ -932,7 +932,6 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
|||
void DoTornadoObject(SECTOR_OBJECT* sop);
|
||||
void MorphTornado(SECTOR_OBJECT* sop);
|
||||
void MorphFloor(SECTOR_OBJECT* sop);
|
||||
void ScaleSectorObject(SECTOR_OBJECT* sop);
|
||||
void DoAutoTurretObject(SECTOR_OBJECT* sop);
|
||||
|
||||
memset(sop->sectp, 0, sizeof(sop->sectp));
|
||||
|
@ -987,7 +986,7 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
|||
sop->morph_dist = 0;
|
||||
sop->morph_off = { 0,0 };
|
||||
|
||||
sop->PreMoveAnimator = nullptr;
|
||||
sop->PreMoveScale = false;
|
||||
sop->PostMoveAnimator = nullptr;
|
||||
sop->Animator = nullptr;
|
||||
}
|
||||
|
@ -1089,7 +1088,7 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
|||
sop->last_ang = sop->ang;
|
||||
// animators
|
||||
sop->Animator = DoTornadoObject;
|
||||
sop->PreMoveAnimator = ScaleSectorObject;
|
||||
sop->PreMoveScale = true;
|
||||
sop->PostMoveAnimator = MorphTornado;
|
||||
// clip
|
||||
sop->clipdist = 156.25;
|
||||
|
@ -1117,7 +1116,7 @@ void SetupSectorObject(sectortype* sectp, short tag)
|
|||
sop->flags |= (SOBJ_DYNAMIC);
|
||||
//sop->scale_type = SO_SCALE_CYCLE;
|
||||
sop->scale_type = SO_SCALE_RANDOM_POINT;
|
||||
sop->PreMoveAnimator = ScaleSectorObject;
|
||||
sop->PreMoveScale = true;
|
||||
|
||||
memset(sop->scale_point_dist,0,sizeof(sop->scale_point_dist));;
|
||||
sop->scale_point_base_speed = 0.25 + RandomRangeF(0.5);
|
||||
|
@ -1769,8 +1768,8 @@ void RefreshPoints(SECTOR_OBJECT* sop, const DVector2& move, bool dynamic)
|
|||
DAngle delta_ang_from_orig;
|
||||
|
||||
// do scaling
|
||||
if (dynamic && sop->PreMoveAnimator)
|
||||
(*sop->PreMoveAnimator)(sop);
|
||||
if (dynamic && sop->PreMoveScale)
|
||||
ScaleSectorObject(sop);
|
||||
|
||||
sectortype** sectp;
|
||||
int j;
|
||||
|
|
Loading…
Reference in a new issue