void P_SetSlopes () { int i, s; for (i = 0; i < numlines; i++) { if (lines[i].special == Plane_Align) { lines[i].special = 0; if (lines[i].backsector != NULL) { // args[0] is for floor, args[1] is for ceiling // // As a special case, if args[1] is 0, // then args[0], bits 2-3 are for ceiling. for (s = 0; s < 2; s++) { int bits = lines[i].args[s] & 3; if (s == 1 && bits == 0) bits = (lines[i].args[0] >> 2) & 3; if (bits == 1) // align front side to back P_AlignPlane (lines[i].frontsector, lines + i, s); else if (bits == 2) // align back side to front P_AlignPlane (lines[i].backsector, lines + i, s); } } } }
void P_SetSlopes () { int s; for (auto &line : level.lines) { if (line.special == Plane_Align) { line.special = 0; if (line.backsector != nullptr) { // args[0] is for floor, args[1] is for ceiling // // As a special case, if args[1] is 0, // then args[0], bits 2-3 are for ceiling. for (s = 0; s < 2; s++) { int bits = line.args[s] & 3; if (s == 1 && bits == 0) bits = (line.args[0] >> 2) & 3; if (bits == 1) // align front side to back P_AlignPlane (line.frontsector, &line, s); else if (bits == 2) // align back side to front P_AlignPlane (line.backsector, &line, s); } } } }