Skip to content

Commit

Permalink
- call ScaleSectorObject directly.
Browse files Browse the repository at this point in the history
It's the only PreMoveAnimator so a bool can be used as easily as the full pointer.
  • Loading branch information
coelckers committed May 28, 2023
1 parent 20b39c6 commit 5e64d6c
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 15 deletions.
2 changes: 1 addition & 1 deletion source/games/sw/src/game.h
Expand Up @@ -1211,7 +1211,7 @@ extern TRACK Track[MAX_TRACKS];

struct SECTOR_OBJECT
{
soANIMATORp PreMoveAnimator;
bool PreMoveScale;
soANIMATORp PostMoveAnimator;
soANIMATORp Animator;
TObjPtr<DSWActor*> controller;
Expand Down
6 changes: 1 addition & 5 deletions source/games/sw/src/morph.cpp
Expand Up @@ -37,8 +37,6 @@ Prepared for public release: 03/28/2005 - Charlie Wiederhold, 3D Realms

BEGIN_SW_NS

void ScaleSectorObject(SECTOR_OBJECT*);

//---------------------------------------------------------------------------
//
//
Expand All @@ -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)
{
Expand Down Expand Up @@ -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 =
Expand Down
5 changes: 3 additions & 2 deletions source/games/sw/src/save.cpp
Expand Up @@ -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);

Expand Down
2 changes: 1 addition & 1 deletion source/games/sw/src/sector.cpp
Expand Up @@ -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;
Expand Down
11 changes: 5 additions & 6 deletions source/games/sw/src/track.cpp
Expand Up @@ -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));
Expand Down Expand Up @@ -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;
}
Expand Down Expand Up @@ -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;
Expand Down Expand Up @@ -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);
Expand Down Expand Up @@ -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;
Expand Down

0 comments on commit 5e64d6c

Please sign in to comment.