diff --git a/src/p_ceilng.c b/src/p_ceilng.c index 59f433f5..7d16457f 100644 --- a/src/p_ceilng.c +++ b/src/p_ceilng.c @@ -92,6 +92,7 @@ void T_MoveCeiling (ceiling_t* ceiling) // handle reaching destination height if (res == pastdest) { + S_StopLoop((mobj_t *)&ceiling->sector->soundorg); switch(ceiling->type) { // plain movers are just removed @@ -155,6 +156,7 @@ void T_MoveCeiling (ceiling_t* ceiling) // handle reaching destination height if (res == pastdest) { + S_StopLoop((mobj_t *)&ceiling->sector->soundorg); switch(ceiling->type) { // 02/09/98 jff change slow crushers' speed back to normal diff --git a/src/p_floor.c b/src/p_floor.c index 28650b1b..43a91b66 100644 --- a/src/p_floor.c +++ b/src/p_floor.c @@ -258,6 +258,7 @@ void T_MoveFloor(floormove_t* floor) if (res == pastdest) // if destination height is reached { + S_StopLoop((mobj_t *)&floor->sector->soundorg); if (floor->direction == 1) // going up { switch(floor->type) // handle texture/type changes @@ -405,6 +406,7 @@ void T_MoveElevator(elevator_t* elevator) if (res == pastdest) // if destination height acheived { + S_StopLoop((mobj_t *)&elevator->sector->soundorg); elevator->sector->floordata = NULL; //jff 2/22/98 elevator->sector->ceilingdata = NULL; //jff 2/22/98 P_RemoveThinker(&elevator->thinker); // remove elevator from actives diff --git a/src/p_plats.c b/src/p_plats.c index 6a91c79f..12b9858b 100644 --- a/src/p_plats.c +++ b/src/p_plats.c @@ -76,6 +76,7 @@ void T_PlatRaise(plat_t* plat) { if (res == pastdest) // end of stroke { + S_StopLoop((mobj_t *)&plat->sector->soundorg); // if not an instant toggle type, wait, make plat stop sound if (plat->type!=toggleUpDn) { @@ -112,6 +113,7 @@ void T_PlatRaise(plat_t* plat) // handle reaching end of down stroke if (res == pastdest) { + S_StopLoop((mobj_t *)&plat->sector->soundorg); // if not an instant toggle, start waiting, make plat stop sound if (plat->type!=toggleUpDn) //jff 3/14/98 toggle up down { // is silent, instant, no waiting @@ -407,6 +409,7 @@ void P_AddActivePlat(plat_t* plat) void P_RemoveActivePlat(plat_t* plat) { platlist_t *list = plat->list; + S_StopLoop((mobj_t *)&plat->sector->soundorg); plat->sector->floordata = NULL; //jff 2/23/98 multiple thinkers P_RemoveThinker(&plat->thinker); if ((*list->prev = list->next))