This is what I came up with. The code will check if there is nullspace just off to the side of the camera, and if so, move it to the other side. Originally I had it checking/moving a distance of 256, but Eddy found that 64 build units was sufficient. It seems to work well, and everyone is free to use this code, of course.
define CAMERAMOVEDIST 64 gamevar temp 0 0 gamevar angvar 0 0 gamevar x 0 0 gamevar mx 0 0 gamevar my 0 0 // note that the vars camerax, cameray etc are hardcoded onevent EVENT_DISPLAYROOMS ifvare player[THISACTOR].over_shoulder_on 1 { setvarvar x camerax setvarvar angvar cameraang addvar angvar 512 addvar x CAMERAMOVEDIST rotatepoint camerax cameray x cameray angvar mx my updatesectorz mx my cameraz temp ifvare temp -1 { setvarvar angvar cameraang subvar angvar 512 rotatepoint camerax cameray x cameray angvar mx my updatesectorz mx my cameraz temp ifvarn temp -1 { setvarvar camerasect temp setvarvar camerax mx setvarvar cameray my } } else { subvar angvar 1024 rotatepoint camerax cameray x cameray angvar mx my updatesectorz mx my cameraz temp ifvare temp -1 { setvarvar angvar cameraang addvar angvar 512 rotatepoint camerax cameray x cameray angvar mx my updatesectorz mx my cameraz temp ifvarn temp -1 { setvarvar camerasect temp setvarvar camerax mx setvarvar cameray my } } } } endevent