rem: if (scale_amt && scale_amt != MAP_HEIGHT)
add: if (scale_amt && scale_amt != base)
context: RotatePlanet (int x, int dx, int dy, COUNT scale_amt, UBYTE zoom_from, PRECT zoomr){	STAMP s;	FRAME pFrame[2];	COUNT i, num_frames;	RECT *rp = NULL;	CONTEXT OldContext;	num_frames = (pSolarSysState->ShieldFrame == 0) ? 1 : 2;	pFrame[0] = SetAbsFrameIndex (pSolarSysState->PlanetFrameArray, (COUNT)(x + 1));	if (num_frames == 2)		pFrame[1] = pSolarSysState->ShieldFrame;	if (scale_amt)	{			if(zoomr->extent.width)			rp = zoomr;		//  we're zooming in, take care of scaling the frames		for (i=0; i < num_frames; i++)			pFrame[i] = pSolarSysState->ScaleFrame[i];		//Translate the planet so it comes from the bottom right corner		dx += ((zoom_from & 0x01) ? 1 : -1) * dx * (MAP_HEIGHT - scale_amt) / MAP_HEIGHT;		dy += ((zoom_from & 0x02) ? 1 : -1) * dy * (MAP_HEIGHT - scale_amt) / MAP_HEIGHT;	}	//SetSemaphore (GraphicsSem);	// PauseRotate needs to be checked twice.   It is first	// checked at the rotate_planet_task function to bypass	// rendering the planet (and thus slowinng down other	// parts of te code.  It is checked here because it is possile	// that PauseRotate was set between then and now, and we don't	// want too push anything onto the DrawQueue in that case.	// If the setSemaphore is moved before the RenderLevelMasks call,	// one of the two PauseRotate checks can be removed.	//if (((PSOLARSYS_STATE volatile)pSolarSysState)->PauseRotate !=1)	{		OldContext = SetContext (SpaceContext);		BatchGraphics ();		if (rp)			RepairBackRect (rp);		s.origin.x = dx;		s.origin.y = dy;		for (i = 0; i < num_frames; i++)		{			s.frame = pFrame[i];			DrawStamp (&s);		}		UnbatchGraphics ();		SetContext (OldContext);	}	//ClearSemaphore (GraphicsSem);	if (scale_amt && scale_amt != MAP_HEIGHT)	{		GetFrameRect (pFrame[num_frames - 1], zoomr);		zoomr->corner.x += dx;		zoomr->corner.y += dy;		return zoomr;	}	return NULL;}