Hardcoding: fix cloud scaling, correct improperly assigned momentum

This commit is contained in:
wolfy852 2023-12-30 00:52:52 -06:00 committed by James R
parent 55761769cf
commit 8ef91c1f49

View file

@ -53,7 +53,10 @@ void Obj_CloudSpawn(mobj_t *mobj)
UINT8 dist = 128; UINT8 dist = 128;
if (cloudtype == MT_AGZ_CLOUD) if (cloudtype == MT_AGZ_CLOUD)
cloud->scale *= 2; {
cloud->destscale = cloud->scale * 2;
P_SetScale(cloud, cloud->destscale);
}
for (UINT8 i = 0; i < 4; i++) for (UINT8 i = 0; i < 4; i++)
{ {
@ -64,7 +67,8 @@ void Obj_CloudSpawn(mobj_t *mobj)
if (cloudtype == MT_AGZ_CLOUD) if (cloudtype == MT_AGZ_CLOUD)
{ {
cloud->scale *= 2; cloud->destscale = cloud->scale * 2;
P_SetScale(cloud, cloud->destscale);
cloud->frame = P_RandomRange(PR_DECORATION, 0, 3); cloud->frame = P_RandomRange(PR_DECORATION, 0, 3);
} }
@ -98,7 +102,8 @@ void Obj_TulipSpawnerThink(mobj_t *mobj)
{ {
P_MoveOrigin(part, mobj->x, mobj->y, mobj->z); P_MoveOrigin(part, mobj->x, mobj->y, mobj->z);
part->angle = a; part->angle = a;
part->scale = mobj->scale; part->destscale = mobj->scale;
P_SetScale(part, part->destscale);
part->flags2 = mobj->flags2; part->flags2 = mobj->flags2;
part->eflags = mobj->eflags; part->eflags = mobj->eflags;
a += ANG1*90; a += ANG1*90;
@ -108,7 +113,8 @@ void Obj_TulipSpawnerThink(mobj_t *mobj)
mobj_t *b = mobj->tracer; mobj_t *b = mobj->tracer;
P_MoveOrigin(b, mobj->x, mobj->y, mobj->z); P_MoveOrigin(b, mobj->x, mobj->y, mobj->z);
b->scale = mobj->scale; b->destscale = mobj->scale;
P_SetScale(b, b->destscale);
b->flags2 = mobj->flags2; b->flags2 = mobj->flags2;
b->eflags = mobj->eflags; b->eflags = mobj->eflags;
b->color = SKINCOLOR_MAGENTA; b->color = SKINCOLOR_MAGENTA;
@ -153,18 +159,17 @@ void Obj_PlayerCloudThink(player_t *player)
switch(mo->tracer->type) switch(mo->tracer->type)
{ {
case MT_AHZ_CLOUD: case MT_AHZ_CLOUD:
P_SetObjectMomZ(mo, CLOUD_ZTHRUST, false); P_SetObjectMomZ(mo, CLOUDB_ZTHRUST, false);
break; break;
case MT_AGZ_CLOUD: case MT_AGZ_CLOUD:
mo->momz = FixedMul(mapobjectscale, CLOUD_ZTHRUST * P_MobjFlip(mo->tracer)); mo->momz = FixedMul(mapobjectscale, CLOUD_ZTHRUST * P_MobjFlip(mo->tracer));
break; break;
case MT_SSZ_CLOUD: case MT_SSZ_CLOUD:
P_SetObjectMomZ(mo, CLOUDB_ZTHRUST, false); P_SetObjectMomZ(mo, CLOUD_ZTHRUST, false);
break; break;
default: default:
break; break;
} }
P_SetObjectMomZ(mo, CLOUD_ZTHRUST, false);
player->cloudlaunch = TICRATE; player->cloudlaunch = TICRATE;
P_InstaThrust(mo, mo->cusval, mo->cvmem); P_InstaThrust(mo, mo->cusval, mo->cvmem);