If the connected maps have the same orientation, then you could save the player's angle at the moment before map transport, then apply it after entering the new map. This might require hacking a display event to prevent showing the wrong angle for a frame, though, I'm not sure.
EDIT: Okay, so it's not that simple. After the map transition, the game seems to set the player angle to the angle of the green starting arrow of the new map, and apparently this happens *after* the logical place where you would want to insert your own angle override. So I'm trying to figure out where to put the angle override. (I have tried putting it in EVENT_ENTERLEVEL and it didn't work)
EDIT2: I have a hack now that sort of does the job. It's not pretty and I hope that a real solution is available. But here it is, in case you want to use it:
gamevar SAVEDANG 0 131073
gamevar SAVEDANGCOUNT 0 131073
This assumes that the maps are oriented the same way. (I.e. north in one map is the same as north in the other). If not you will need to compensate. In the same block of code where you use savemapstate, but before that command is issued, do this:
getp[].ang SAVEDANG
set SAVEDANGCOUNT 7
Now, also add this event code somewhere:
appendevent EVENT_DISPLAYROOMS
ifn SAVEDANGCOUNT 0
{
set cameraang SAVEDANG
setp[].ang SAVEDANG
}
endevent
Finally, decrement the var so it goes down once per tic (this could be in the player actor for example):
ifn SAVEDANGCOUNT 0
sub SAVEDANGCOUNT 1
The result of all this is the angle is forced to be the same as when the transition started, during the entire time when it would show the player turning to the start angle. Note that setting the player's actual angle in the display event is not good practice; this could happen when the count var is decremented instead but with current interpolation code I wasn't sure if that would lead to jittering.