diff --git a/src/k_objects.h b/src/k_objects.h index b7f699c07..bab9e5d06 100644 --- a/src/k_objects.h +++ b/src/k_objects.h @@ -360,7 +360,6 @@ void Obj_TrickBalloonTouchSpecial(mobj_t* special, mobj_t* toucher); /* AHZ/AGZ/SSZ Clouds */ void Obj_CloudSpawn(mobj_t *mobj); -void Obj_CloudClusterThink(mobj_t *mobj); void Obj_TulipSpawnerThink(mobj_t *mobj); void Obj_PlayerCloudThink(player_t *player); void Obj_PlayerBulbThink(player_t *player); diff --git a/src/objects/cloud.c b/src/objects/cloud.c index a8795c976..636a66827 100644 --- a/src/objects/cloud.c +++ b/src/objects/cloud.c @@ -25,16 +25,26 @@ void Obj_CloudSpawn(mobj_t *mobj) { + mobjtype_t cloudtype; + + switch (mobj->type) + { + case MT_AHZ_CLOUDCLUSTER: + cloudtype = MT_AHZ_CLOUD; + break; + case MT_AGZ_CLOUDCLUSTER: + cloudtype = MT_AGZ_CLOUD; + break; + case MT_SSZ_CLOUDCLUSTER: + cloudtype = MT_SSZ_CLOUD; + break; + default: + return; + } + mobj->destscale = mapobjectscale * 4; P_SetScale(mobj, mobj->destscale); -} -void Obj_CloudClusterThink(mobj_t *mobj) -{ - if (mobj->extravalue1) - return; - - mobjtype_t cloudtype = mobj->type; mobj_t *cloud = P_SpawnMobj(mobj->x, mobj->y, mobj->z, cloudtype); angle_t ang = mobj->angle; UINT8 dist = 128; @@ -57,8 +67,6 @@ void Obj_CloudClusterThink(mobj_t *mobj) ang += ANGLE_90; } - - mobj->extravalue1 = 1; } void Obj_TulipSpawnerThink(mobj_t *mobj) diff --git a/src/p_mobj.c b/src/p_mobj.c index 3fe4f048f..17e115b17 100644 --- a/src/p_mobj.c +++ b/src/p_mobj.c @@ -10272,12 +10272,6 @@ static boolean P_MobjRegularThink(mobj_t *mobj) Obj_GPZSeasawThink(mobj); break; - case MT_AHZ_CLOUDCLUSTER: - case MT_AGZ_CLOUDCLUSTER: - case MT_SSZ_CLOUDCLUSTER: - Obj_CloudClusterThink(mobj); - break; - case MT_AGZ_BULB: Obj_TulipSpawnerThink(mobj); break; @@ -11814,6 +11808,7 @@ mobj_t *P_SpawnMobj(fixed_t x, fixed_t y, fixed_t z, mobjtype_t type) Obj_WPZTurbineSpawn(mobj); break; case MT_AHZ_CLOUDCLUSTER: + case MT_AGZ_CLOUDCLUSTER: case MT_SSZ_CLOUDCLUSTER: Obj_CloudSpawn(mobj); break;