Index: trunk/src/game/g_cmds.c =================================================================== --- trunk/src/game/g_cmds.c (revision 1100) +++ trunk/src/game/g_cmds.c (working copy) @@ -1639,7 +1639,7 @@ } // find what the new origin would be on a level surface - newOrigin[ 2 ] += fabs( toMins[ 2 ] ) - fabs( fromMins[ 2 ] ); + newOrigin[ 2 ] -= toMins[ 2 ] - fromMins[ 2 ]; //compute a place up in the air to start the real trace VectorCopy( newOrigin, temp ); @@ -2225,7 +2225,7 @@ G_TriggerMenu( ent->client->ps.clientNum, MN_H_NOROOMBSUITON ); return; } - VectorCopy( newOrigin, ent->s.pos.trBase ); + VectorCopy( newOrigin, ent->client->ps.origin ); ent->client->ps.stats[ STAT_CLASS ] = PCL_HUMAN_BSUIT; ent->client->pers.classSelection = PCL_HUMAN_BSUIT; ent->client->ps.eFlags ^= EF_TELEPORT_BIT; @@ -2326,7 +2326,7 @@ G_TriggerMenu( ent->client->ps.clientNum, MN_H_NOROOMBSUITOFF ); return; } - VectorCopy( newOrigin, ent->s.pos.trBase ); + VectorCopy( newOrigin, ent->client->ps.origin ); ent->client->ps.stats[ STAT_CLASS ] = PCL_HUMAN; ent->client->pers.classSelection = PCL_HUMAN; ent->client->ps.eFlags ^= EF_TELEPORT_BIT; @@ -2387,7 +2387,7 @@ G_TriggerMenu( ent->client->ps.clientNum, MN_H_NOROOMBSUITOFF ); continue; } - VectorCopy( newOrigin, ent->s.pos.trBase ); + VectorCopy( newOrigin, ent->client->ps.origin ); ent->client->ps.stats[ STAT_CLASS ] = PCL_HUMAN; ent->client->pers.classSelection = PCL_HUMAN; ent->client->ps.eFlags ^= EF_TELEPORT_BIT;