switch(type)
{
case raiseToNearestAndChange: plat->speed = PLATSPEED/2;
sec->floorpic = sides[line->sidenum[0]].sector->floorpic; plat->high = P_FindNextHighestFloor(sec,sec->floorheight); plat->wait = 0;
plat->status = up;
// NO MORE DAMAGE, IF APPLICABLE sec->special = 0;
S_StartSound((mobj_t *)&sec->soundorg,sfx_stnmov); break;
case raiseAndChange: plat->speed = PLATSPEED/2;
sec->floorpic = sides[line->sidenum[0]].sector->floorpic; plat->high = sec->floorheight + amount*FRACUNIT; plat->wait = 0;
plat->status = up;
S_StartSound((mobj_t *)&sec->soundorg,sfx_stnmov); break;
case downWaitUpStay: plat->speed = PLATSPEED * 4;
plat->low = P_FindLowestFloorSurrounding(sec);
if (plat->low > sec->floorheight) plat->low = sec->floorheight;
plat->high = sec->floorheight; plat->wait = 35*PLATWAIT; plat->status = down;
S_StartSound((mobj_t *)&sec->soundorg,sfx_pstart); break;
case blazeDWUS:
plat->speed = PLATSPEED * 8;
plat->low = P_FindLowestFloorSurrounding(sec);
if (plat->low > sec->floorheight) plat->low = sec->floorheight;
plat->high = sec->floorheight; plat->wait = 35*PLATWAIT; plat->status = down;
S_StartSound((mobj_t *)&sec->soundorg,sfx_pstart); break;
case perpetualRaise: plat->speed = PLATSPEED;
plat->low = P_FindLowestFloorSurrounding(sec);
if (plat->low > sec->floorheight) plat->low = sec->floorheight;
plat->high = P_FindHighestFloorSurrounding(sec);
if (plat->high < sec->floorheight) plat->high = sec->floorheight;
plat->wait = 35*PLATWAIT; plat->status = P_Random()&1;