// if using the September 2006 release if(ship.x + ship.sclX > camera.XEdgeAt(ship.z)) { ship.x = camera.XEdgeAt(ship.z) - ship.sclX; } else if(ship.x - ship.sclX < -camera.XEdgeAt(ship.z)) { ship.x = -camera.XEdgeAt(ship.z) + ship.sclX; } // if using before the September 2006 release float distanceValue = (ship.z - camera.z)/100.0f; if(ship.x + ship.sclX > camera.xEdge * distanceValue) { ship.x = camera.xEdge * distanceValue - ship.sclX; } else if(ship.x - ship.sclX < -camera.XEdgeAt * distanceValue) { ship.x = -camera.xEdge * distanceValue + ship.sclX; }