ich hab mal wieder ein Problem und sthe aufm Schlauch

Folgende Situation
Ich habe in einem Raum ein SetviewPort Scrolling (nach oben) eingebaut wenn der Charater eine Region betritt, weil der Character nicht weiter nach oben gehen kann, ich aber zeigen will was dort ist:
int ypos = GetViewportY();
while (ypos > 0) {
SetViewport(GetViewportX(), ypos);
Wait(1);
ypos--;
}
Funktioniert gut (auch wenn es etwas langsam ist und mit eBlock)
Mein Problem
Aber ich bekomme es nicht hin, zurück zu scrollen auf die aktuelle Setviewport Position, wenn er die Region wieder verlässt.
Mit ReleaseViewport springt das Bild plötzlich einfach ein Stück, was unschön ist.
Hat jemand eine Idee?
Danke euch schonmal
Grüße
Dave