diff --git a/src/p_floor.c b/src/p_floor.c index 1a8bac488..818ad1f35 100644 --- a/src/p_floor.c +++ b/src/p_floor.c @@ -1749,8 +1749,9 @@ void EV_DoFloorOLD(mtag_t tag, line_t *line, floor_e floortype) // chained linedef executing ability // Only set it on one of the moving sectors (the smallest numbered) - if (line->args[4]) - dofloor->tag = firstone ? (INT16)line->args[3] : -1; + // and only if arg 4 is positive, indicating a valid tag. + if (firstone && line->args[4]) + dofloor->tag = firstone ? (INT16)(line->args[4] - 32769) : -1; // flat changing ability dofloor->texture = line->args[5] ? line->frontsector->floorpic : -1; diff --git a/src/p_spec.c b/src/p_spec.c index 4ca222114..ba62c3553 100644 --- a/src/p_spec.c +++ b/src/p_spec.c @@ -2637,6 +2637,15 @@ boolean P_ProcessSpecial(activator_t *activator, INT16 special, INT32 *args, cha return false; } + if (mapnamespace == MNS_SRB2KART) + { + if (line->args[2] != TMP_CEILING) + EV_DoFloor(line->args[1], line, moveFloorByFrontSector); + if (line->args[2] != TMP_FLOOR) + EV_DoCeiling(line->args[1], line, moveCeilingByFrontSector); + break; + } + copySector = line->frontsector; } else